From 4de809ecbda0ea1f768c7afbe3c788c1443ae8a8 Mon Sep 17 00:00:00 2001 From: Jason Ertel Date: Wed, 17 Mar 2021 16:13:50 -0400 Subject: [PATCH 1/2] Automatically hide SOC tools that are not installed. Resolves #1643. --- salt/soc/files/soc/soc.json | 21 +++++++++++++++++++++ salt/soc/files/soc/tools.json | 9 +++++++++ 2 files changed, 30 insertions(+) create mode 100644 salt/soc/files/soc/tools.json diff --git a/salt/soc/files/soc/soc.json b/salt/soc/files/soc/soc.json index f04cf36b9..63dc248de 100644 --- a/salt/soc/files/soc/soc.json +++ b/salt/soc/files/soc/soc.json @@ -1,6 +1,10 @@ {%- set MANAGERIP = salt['pillar.get']('global:managerip', '') %} {%- set SENSORONIKEY = salt['pillar.get']('global:sensoronikey', '') %} {%- set THEHIVEKEY = salt['pillar.get']('global:hivekey', '') %} +{%- set PLAYBOOK = salt['pillar.get']('manager:playbook', '0') %} +{%- set THEHIVE = salt['pillar.get']('manager:thehive', '0') %} +{%- set OSQUERY = salt['pillar.get']('manager:osquery', '0') %} +{%- set GRAFANA = salt['pillar.get']('manager:grafana', '0') %} {%- set ISAIRGAP = salt['pillar.get']('global:airgap', 'False') %} {%- set API_TIMEOUT = salt['pillar.get']('sensoroni:api_timeout_ms', 0) %} {%- set WEBSOCKET_TIMEOUT = salt['pillar.get']('sensoroni:websocket_timeout_ms', 0) %} @@ -12,6 +16,7 @@ {%- import_json "soc/files/soc/hunt.queries.json" as hunt_queries %} {%- import_json "soc/files/soc/hunt.actions.json" as hunt_actions %} {%- import_json "soc/files/soc/hunt.eventfields.json" as hunt_eventfields %} +{%- import_json "soc/files/soc/tools.json" as tools %} {%- set DNET = salt['pillar.get']('global:dockernet', '172.17.0.0') %} { @@ -74,6 +79,22 @@ "webSocketTimeoutMs": {{ WEBSOCKET_TIMEOUT }}, "tipTimeoutMs": {{ TIP_TIMEOUT }}, "cacheExpirationMs": {{ CACHE_EXPIRATION }}, + "inactiveTools": [ + {%- if PLAYBOOK == '0' %} + 'toolPlaybook', + {%- endif %} + {%- if THEHIVE == '0' %} + 'toolTheHive', + {%- endif %} + {%- if OSQUERY == '0' %} + 'toolFleet', + {%- endif %} + {%- if GRAFANA == '0' %} + 'toolGrafana', + {%- endif %} + 'toolUnused' + ], + "tools": {{ tools | json }}, "hunt": { "advanced": true, "groupItemsPerPage": 10, diff --git a/salt/soc/files/soc/tools.json b/salt/soc/files/soc/tools.json new file mode 100644 index 000000000..96d9a3f50 --- /dev/null +++ b/salt/soc/files/soc/tools.json @@ -0,0 +1,9 @@ +[ + { "name": "toolKibana", "description": "toolKibanaHelp", "icon": "fa-external-link-alt", "target": "so-kibana", "link": "/kibana/" }, + { "name": "toolGrafana", "description": "toolGrafanaHelp", "icon": "fa-external-link-alt", "target": "so-grafana", "link": "/grafana/d/so_overview" }, + { "name": "toolCyberchef", "description": "toolCyberchefHelp", "icon": "fa-external-link-alt", "target": "so-cyberchef", "link": "/cyberchef/" }, + { "name": "toolPlaybook", "description": "toolPlaybookHelp", "icon": "fa-external-link-alt", "target": "so-playbook", "link": "/playbook/projects/detection-playbooks/issues/" }, + { "name": "toolFleet", "description": "toolFleetHelp", "icon": "fa-external-link-alt", "target": "so-fleet", "link": "/fleet/" }, + { "name": "toolTheHive", "description": "toolTheHiveHelp", "icon": "fa-external-link-alt", "target": "so-thehive", "link": "/thehive/" }, + { "name": "toolNavigator", "description": "toolNavigatorHelp", "icon": "fa-external-link-alt", "target": "so-navigator", "link": "/navigator/" } +] \ No newline at end of file From 4e9f6292314870ff7f48fa770e329ad712372175 Mon Sep 17 00:00:00 2001 From: Jason Ertel Date: Wed, 17 Mar 2021 18:25:05 -0400 Subject: [PATCH 2/2] Reformat inactiveTools list in JSON format --- salt/soc/files/soc/soc.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/salt/soc/files/soc/soc.json b/salt/soc/files/soc/soc.json index 63dc248de..5620a190c 100644 --- a/salt/soc/files/soc/soc.json +++ b/salt/soc/files/soc/soc.json @@ -80,19 +80,19 @@ "tipTimeoutMs": {{ TIP_TIMEOUT }}, "cacheExpirationMs": {{ CACHE_EXPIRATION }}, "inactiveTools": [ - {%- if PLAYBOOK == '0' %} - 'toolPlaybook', + {%- if PLAYBOOK == 0 %} + "toolPlaybook", {%- endif %} - {%- if THEHIVE == '0' %} - 'toolTheHive', + {%- if THEHIVE == 0 %} + "toolTheHive", {%- endif %} - {%- if OSQUERY == '0' %} - 'toolFleet', + {%- if OSQUERY == 0 %} + "toolFleet", {%- endif %} - {%- if GRAFANA == '0' %} - 'toolGrafana', + {%- if GRAFANA == 0 %} + "toolGrafana", {%- endif %} - 'toolUnused' + "toolUnused" ], "tools": {{ tools | json }}, "hunt": {