mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-06 09:12:45 +01:00
Merge remote-tracking branch 'origin/2.4/dev' into 2.4/soupchanges
This commit is contained in:
@@ -206,7 +206,7 @@ if [[ $EXCLUDE_KNOWN_ERRORS == 'Y' ]]; then
|
|||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|detect-parse" # Suricata encountering a malformed rule
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|detect-parse" # Suricata encountering a malformed rule
|
||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|integrity check failed" # Detections: Exclude false positive due to automated testing
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|integrity check failed" # Detections: Exclude false positive due to automated testing
|
||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|syncErrors" # Detections: Not an actual error
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|syncErrors" # Detections: Not an actual error
|
||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Provided Grok expressions do not match field value\\: \\[unprovisioned\\]" # SOC log: before fields.status was changed to fields.licenseStatus
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Initialized license manager" # SOC log: before fields.status was changed to fields.licenseStatus
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RESULT=0
|
RESULT=0
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
. /usr/sbin/so-common
|
. /usr/sbin/so-common
|
||||||
|
|
||||||
|
software_raid=("SOSMN" "SOSMN-DE02" "SOSSNNV" "SOSSNNV-DE02" "SOS10k-DE02" "SOS10KNV" "SOS10KNV-DE02" "SOS10KNV-DE02" "SOS2000-DE02" "SOS-GOFAST-LT-DE02" "SOS-GOFAST-MD-DE02" "SOS-GOFAST-HV-DE02")
|
||||||
|
hardware_raid=("SOS1000" "SOS1000F" "SOSSN7200" "SOS5000" "SOS4000")
|
||||||
|
|
||||||
{%- if salt['grains.get']('sosmodel', '') %}
|
{%- if salt['grains.get']('sosmodel', '') %}
|
||||||
{%- set model = salt['grains.get']('sosmodel') %}
|
{%- set model = salt['grains.get']('sosmodel') %}
|
||||||
model={{ model }}
|
model={{ model }}
|
||||||
@@ -16,33 +19,42 @@ model={{ model }}
|
|||||||
if [[ $model =~ ^(SO2AMI01|SO2AZI01|SO2GCI01)$ ]]; then
|
if [[ $model =~ ^(SO2AMI01|SO2AZI01|SO2GCI01)$ ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for i in "${software_raid[@]}"; do
|
||||||
|
if [[ "$model" == $i ]]; then
|
||||||
|
is_softwareraid=true
|
||||||
|
is_hwraid=false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in "${hardware_raid[@]}"; do
|
||||||
|
if [[ "$model" == $i ]]; then
|
||||||
|
is_softwareraid=false
|
||||||
|
is_hwraid=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
{%- else %}
|
{%- else %}
|
||||||
echo "This is not an appliance"
|
echo "This is not an appliance"
|
||||||
exit 0
|
exit 0
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
if [[ $model =~ ^(SOS10K|SOS500|SOS1000|SOS1000F|SOS4000|SOSSN7200|SOSSNNV|SOSMN)$ ]]; then
|
|
||||||
is_bossraid=true
|
|
||||||
fi
|
|
||||||
if [[ $model =~ ^(SOSSNNV|SOSMN)$ ]]; then
|
|
||||||
is_swraid=true
|
|
||||||
fi
|
|
||||||
if [[ $model =~ ^(SOS10K|SOS500|SOS1000|SOS1000F|SOS4000|SOSSN7200)$ ]]; then
|
|
||||||
is_hwraid=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_nsm_raid() {
|
check_nsm_raid() {
|
||||||
PERCCLI=$(/opt/raidtools/perccli/perccli64 /c0/v0 show|grep RAID|grep Optl)
|
PERCCLI=$(/opt/raidtools/perccli/perccli64 /c0/v0 show|grep RAID|grep Optl)
|
||||||
MEGACTL=$(/opt/raidtools/megasasctl |grep optimal)
|
MEGACTL=$(/opt/raidtools/megasasctl |grep optimal)
|
||||||
|
if [[ "$model" == "SOS500" || "$model" == "SOS500-DE02" ]]; then
|
||||||
if [[ $APPLIANCE == '1' ]]; then
|
#This doesn't have raid
|
||||||
|
HWRAID=0
|
||||||
|
else
|
||||||
if [[ -n $PERCCLI ]]; then
|
if [[ -n $PERCCLI ]]; then
|
||||||
HWRAID=0
|
HWRAID=0
|
||||||
elif [[ -n $MEGACTL ]]; then
|
elif [[ -n $MEGACTL ]]; then
|
||||||
HWRAID=0
|
HWRAID=0
|
||||||
else
|
else
|
||||||
HWRAID=1
|
HWRAID=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -50,17 +62,27 @@ check_nsm_raid() {
|
|||||||
check_boss_raid() {
|
check_boss_raid() {
|
||||||
MVCLI=$(/usr/local/bin/mvcli info -o vd |grep status |grep functional)
|
MVCLI=$(/usr/local/bin/mvcli info -o vd |grep status |grep functional)
|
||||||
MVTEST=$(/usr/local/bin/mvcli info -o vd | grep "No adapter")
|
MVTEST=$(/usr/local/bin/mvcli info -o vd | grep "No adapter")
|
||||||
|
BOSSNVMECLI=$(/usr/local/bin/mnv_cli info -o vd -i 0 | grep Functional)
|
||||||
|
|
||||||
# Check to see if this is a SM based system
|
# Is this NVMe Boss Raid?
|
||||||
if [[ -z $MVTEST ]]; then
|
if [[ "$model" =~ "-DE02" ]]; then
|
||||||
if [[ -n $MVCLI ]]; then
|
if [[ -n $BOSSNVMECLI ]]; then
|
||||||
BOSSRAID=0
|
BOSSRAID=0
|
||||||
else
|
else
|
||||||
BOSSRAID=1
|
BOSSRAID=1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# This doesn't have boss raid so lets make it 0
|
# Check to see if this is a SM based system
|
||||||
BOSSRAID=0
|
if [[ -z $MVTEST ]]; then
|
||||||
|
if [[ -n $MVCLI ]]; then
|
||||||
|
BOSSRAID=0
|
||||||
|
else
|
||||||
|
BOSSRAID=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# This doesn't have boss raid so lets make it 0
|
||||||
|
BOSSRAID=0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,14 +101,13 @@ SWRAID=0
|
|||||||
BOSSRAID=0
|
BOSSRAID=0
|
||||||
HWRAID=0
|
HWRAID=0
|
||||||
|
|
||||||
if [[ $is_hwraid ]]; then
|
if [[ "$is_hwraid" == "true" ]]; then
|
||||||
check_nsm_raid
|
check_nsm_raid
|
||||||
|
check_boss_raid
|
||||||
fi
|
fi
|
||||||
if [[ $is_bossraid ]]; then
|
if [[ "$is_softwareraid" == "true" ]]; then
|
||||||
check_boss_raid
|
|
||||||
fi
|
|
||||||
if [[ $is_swraid ]]; then
|
|
||||||
check_software_raid
|
check_software_raid
|
||||||
|
check_boss_raid
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sum=$(($SWRAID + $BOSSRAID + $HWRAID))
|
sum=$(($SWRAID + $BOSSRAID + $HWRAID))
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ elastalert:
|
|||||||
description: You can enable or disable Elastalert.
|
description: You can enable or disable Elastalert.
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert.html
|
||||||
alerter_parameters:
|
alerter_parameters:
|
||||||
title: Alerter Parameters
|
title: Custom Configuration Parameters
|
||||||
description: Optional configuration parameters for additional alerters that can be enabled for all Sigma rules. Filter for 'Alerter' in this Configuration screen to find the setting that allows these alerters to be enabled within the SOC ElastAlert module. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
description: Optional configuration parameters made available as defaults for all rules and alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available configuration parameters. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ elasticfleet:
|
|||||||
- symantec_endpoint
|
- symantec_endpoint
|
||||||
- system
|
- system
|
||||||
- tcp
|
- tcp
|
||||||
|
- tenable_io
|
||||||
- tenable_sc
|
- tenable_sc
|
||||||
- ti_abusech
|
- ti_abusech
|
||||||
- ti_anomali
|
- ti_anomali
|
||||||
|
|||||||
@@ -9282,6 +9282,190 @@ elasticsearch:
|
|||||||
set_priority:
|
set_priority:
|
||||||
priority: 50
|
priority: 50
|
||||||
min_age: 30d
|
min_age: 30d
|
||||||
|
so-logs-tenable_io_x_asset:
|
||||||
|
index_sorting: False
|
||||||
|
index_template:
|
||||||
|
index_patterns:
|
||||||
|
- "logs-tenable_io.asset-*"
|
||||||
|
template:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
lifecycle:
|
||||||
|
name: so-logs-tenable_io.asset-logs
|
||||||
|
number_of_replicas: 0
|
||||||
|
composed_of:
|
||||||
|
- "logs-tenable_io.asset@package"
|
||||||
|
- "logs-tenable_io.asset@custom"
|
||||||
|
- "so-fleet_globals-1"
|
||||||
|
- "so-fleet_agent_id_verification-1"
|
||||||
|
priority: 501
|
||||||
|
data_stream:
|
||||||
|
hidden: false
|
||||||
|
allow_custom_routing: false
|
||||||
|
ignore_missing_component_templates:
|
||||||
|
- logs-tenable_io.asset@custom
|
||||||
|
policy:
|
||||||
|
phases:
|
||||||
|
cold:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 0
|
||||||
|
min_age: 30d
|
||||||
|
delete:
|
||||||
|
actions:
|
||||||
|
delete: {}
|
||||||
|
min_age: 365d
|
||||||
|
hot:
|
||||||
|
actions:
|
||||||
|
rollover:
|
||||||
|
max_age: 30d
|
||||||
|
max_primary_shard_size: 50gb
|
||||||
|
set_priority:
|
||||||
|
priority: 100
|
||||||
|
min_age: 0ms
|
||||||
|
warm:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 50
|
||||||
|
min_age: 30d
|
||||||
|
so-logs-tenable_io_x_plugin:
|
||||||
|
index_sorting: False
|
||||||
|
index_template:
|
||||||
|
index_patterns:
|
||||||
|
- "logs-tenable_io.plugin-*"
|
||||||
|
template:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
lifecycle:
|
||||||
|
name: so-logs-tenable_io.plugin-logs
|
||||||
|
number_of_replicas: 0
|
||||||
|
composed_of:
|
||||||
|
- "logs-tenable_io.plugin@package"
|
||||||
|
- "logs-tenable_io.plugin@custom"
|
||||||
|
- "so-fleet_globals-1"
|
||||||
|
- "so-fleet_agent_id_verification-1"
|
||||||
|
priority: 501
|
||||||
|
data_stream:
|
||||||
|
hidden: false
|
||||||
|
allow_custom_routing: false
|
||||||
|
ignore_missing_component_templates:
|
||||||
|
- logs-tenable_io.plugin@custom
|
||||||
|
policy:
|
||||||
|
phases:
|
||||||
|
cold:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 0
|
||||||
|
min_age: 30d
|
||||||
|
delete:
|
||||||
|
actions:
|
||||||
|
delete: {}
|
||||||
|
min_age: 365d
|
||||||
|
hot:
|
||||||
|
actions:
|
||||||
|
rollover:
|
||||||
|
max_age: 30d
|
||||||
|
max_primary_shard_size: 50gb
|
||||||
|
set_priority:
|
||||||
|
priority: 100
|
||||||
|
min_age: 0ms
|
||||||
|
warm:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 50
|
||||||
|
min_age: 30d
|
||||||
|
so-logs-tenable_io_x_scan:
|
||||||
|
index_sorting: False
|
||||||
|
index_template:
|
||||||
|
index_patterns:
|
||||||
|
- "logs-tenable_io.scan-*"
|
||||||
|
template:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
lifecycle:
|
||||||
|
name: so-logs-tenable_io.scan-logs
|
||||||
|
number_of_replicas: 0
|
||||||
|
composed_of:
|
||||||
|
- "logs-tenable_io.scan@package"
|
||||||
|
- "logs-tenable_io.scan@custom"
|
||||||
|
- "so-fleet_globals-1"
|
||||||
|
- "so-fleet_agent_id_verification-1"
|
||||||
|
priority: 501
|
||||||
|
data_stream:
|
||||||
|
hidden: false
|
||||||
|
allow_custom_routing: false
|
||||||
|
ignore_missing_component_templates:
|
||||||
|
- logs-tenable_io.scan@custom
|
||||||
|
policy:
|
||||||
|
phases:
|
||||||
|
cold:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 0
|
||||||
|
min_age: 30d
|
||||||
|
delete:
|
||||||
|
actions:
|
||||||
|
delete: {}
|
||||||
|
min_age: 365d
|
||||||
|
hot:
|
||||||
|
actions:
|
||||||
|
rollover:
|
||||||
|
max_age: 30d
|
||||||
|
max_primary_shard_size: 50gb
|
||||||
|
set_priority:
|
||||||
|
priority: 100
|
||||||
|
min_age: 0ms
|
||||||
|
warm:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 50
|
||||||
|
min_age: 30d
|
||||||
|
so-logs-tenable_io_x_vulnerability:
|
||||||
|
index_sorting: False
|
||||||
|
index_template:
|
||||||
|
index_patterns:
|
||||||
|
- "logs-tenable_io.vulnerability-*"
|
||||||
|
template:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
lifecycle:
|
||||||
|
name: so-logs-tenable_io.vulnerability-logs
|
||||||
|
number_of_replicas: 0
|
||||||
|
composed_of:
|
||||||
|
- "logs-tenable_io.vulnerability@package"
|
||||||
|
- "logs-tenable_io.vulnerability@custom"
|
||||||
|
- "so-fleet_globals-1"
|
||||||
|
- "so-fleet_agent_id_verification-1"
|
||||||
|
priority: 501
|
||||||
|
data_stream:
|
||||||
|
hidden: false
|
||||||
|
allow_custom_routing: false
|
||||||
|
ignore_missing_component_templates:
|
||||||
|
- logs-tenable_io.vulnerability@custom
|
||||||
|
policy:
|
||||||
|
phases:
|
||||||
|
cold:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 0
|
||||||
|
min_age: 30d
|
||||||
|
delete:
|
||||||
|
actions:
|
||||||
|
delete: {}
|
||||||
|
min_age: 365d
|
||||||
|
hot:
|
||||||
|
actions:
|
||||||
|
rollover:
|
||||||
|
max_age: 30d
|
||||||
|
max_primary_shard_size: 50gb
|
||||||
|
set_priority:
|
||||||
|
priority: 100
|
||||||
|
min_age: 0ms
|
||||||
|
warm:
|
||||||
|
actions:
|
||||||
|
set_priority:
|
||||||
|
priority: 50
|
||||||
|
min_age: 30d
|
||||||
so-logs-tenable_sc_x_asset:
|
so-logs-tenable_sc_x_asset:
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
|
|||||||
@@ -62,6 +62,7 @@
|
|||||||
{ "split": { "if": "ctx.event?.dataset != null && ctx.event.dataset.contains('.')", "field": "event.dataset", "separator": "\\.", "target_field": "dataset_tag_temp" } },
|
{ "split": { "if": "ctx.event?.dataset != null && ctx.event.dataset.contains('.')", "field": "event.dataset", "separator": "\\.", "target_field": "dataset_tag_temp" } },
|
||||||
{ "append": { "if": "ctx.dataset_tag_temp != null", "field": "tags", "value": "{{dataset_tag_temp.1}}" } },
|
{ "append": { "if": "ctx.dataset_tag_temp != null", "field": "tags", "value": "{{dataset_tag_temp.1}}" } },
|
||||||
{ "grok": { "if": "ctx.http?.response?.status_code != null", "field": "http.response.status_code", "patterns": ["%{NUMBER:http.response.status_code:long} %{GREEDYDATA}"]} },
|
{ "grok": { "if": "ctx.http?.response?.status_code != null", "field": "http.response.status_code", "patterns": ["%{NUMBER:http.response.status_code:long} %{GREEDYDATA}"]} },
|
||||||
|
{ "set": { "if": "ctx?.metadata?.kafka != null" , "field": "kafka.id", "value": "{{metadata.kafka.partition}}{{metadata.kafka.offset}}{{metadata.kafka.timestamp}}", "ignore_failure": true } },
|
||||||
{ "remove": { "field": [ "message2", "type", "fields", "category", "module", "dataset", "dataset_tag_temp", "event.dataset_temp" ], "ignore_missing": true, "ignore_failure": true } }
|
{ "remove": { "field": [ "message2", "type", "fields", "category", "module", "dataset", "dataset_tag_temp", "event.dataset_temp" ], "ignore_missing": true, "ignore_failure": true } }
|
||||||
{%- endraw %}
|
{%- endraw %}
|
||||||
{%- if HIGHLANDER %}
|
{%- if HIGHLANDER %}
|
||||||
|
|||||||
@@ -466,6 +466,13 @@ elasticsearch:
|
|||||||
so-logs-sonicwall_firewall_x_log: *indexSettings
|
so-logs-sonicwall_firewall_x_log: *indexSettings
|
||||||
so-logs-snort_x_log: *indexSettings
|
so-logs-snort_x_log: *indexSettings
|
||||||
so-logs-symantec_endpoint_x_log: *indexSettings
|
so-logs-symantec_endpoint_x_log: *indexSettings
|
||||||
|
so-logs-tenable_io_x_asset: *indexSettings
|
||||||
|
so-logs-tenable_io_x_plugin: *indexSettings
|
||||||
|
so-logs-tenable_io_x_scan: *indexSettings
|
||||||
|
so-logs-tenable_io_x_vulnerability: *indexSettings
|
||||||
|
so-logs-tenable_sc_x_asset: *indexSettings
|
||||||
|
so-logs-tenable_sc_x_plugin: *indexSettings
|
||||||
|
so-logs-tenable_sc_x_vulnerability: *indexSettings
|
||||||
so-logs-ti_abusech_x_malware: *indexSettings
|
so-logs-ti_abusech_x_malware: *indexSettings
|
||||||
so-logs-ti_abusech_x_malwarebazaar: *indexSettings
|
so-logs-ti_abusech_x_malwarebazaar: *indexSettings
|
||||||
so-logs-ti_abusech_x_threatfox: *indexSettings
|
so-logs-ti_abusech_x_threatfox: *indexSettings
|
||||||
|
|||||||
@@ -10,10 +10,16 @@
|
|||||||
|
|
||||||
{%- for index, settings in ES_INDEX_SETTINGS.items() %}
|
{%- for index, settings in ES_INDEX_SETTINGS.items() %}
|
||||||
{%- if settings.policy is defined %}
|
{%- if settings.policy is defined %}
|
||||||
|
{%- if index == 'so-logs-detections.alerts' %}
|
||||||
echo
|
echo
|
||||||
echo "Setting up {{ index }}-logs policy..."
|
echo "Setting up so-logs-detections.alerts-so policy..."
|
||||||
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -s -k -L -X PUT "https://localhost:9200/_ilm/policy/{{ index }}-logs" -H 'Content-Type: application/json' -d'{ "policy": {{ settings.policy | tojson(true) }} }'
|
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -s -k -L -X PUT "https://localhost:9200/_ilm/policy/{{ index }}-so" -H 'Content-Type: application/json' -d'{ "policy": {{ settings.policy | tojson(true) }} }'
|
||||||
echo
|
echo
|
||||||
|
{%- else %}
|
||||||
|
echo "Setting up {{ index }}-logs policy..."
|
||||||
|
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -s -k -L -X PUT "https://localhost:9200/_ilm/policy/{{ index }}-logs" -H 'Content-Type: application/json' -d'{ "policy": {{ settings.policy | tojson(true) }} }'
|
||||||
|
echo
|
||||||
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
echo
|
echo
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
{%- import_yaml 'elasticfleet/defaults.yaml' as ELASTICFLEETDEFAULTS %}
|
{%- import_yaml 'elasticfleet/defaults.yaml' as ELASTICFLEETDEFAULTS %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{%- set SUPPORTED_PACKAGES = salt['pillar.get']('elasticfleet:packages', default=ELASTICFLEETDEFAULTS.elasticfleet.packages, merge=True) %}
|
|
||||||
|
|
||||||
STATE_FILE_INITIAL=/opt/so/state/estemplates_initial_load_attempt.txt
|
STATE_FILE_INITIAL=/opt/so/state/estemplates_initial_load_attempt.txt
|
||||||
STATE_FILE_SUCCESS=/opt/so/state/estemplates.txt
|
STATE_FILE_SUCCESS=/opt/so/state/estemplates.txt
|
||||||
@@ -68,9 +67,9 @@ if [ ! -f $STATE_FILE_SUCCESS ]; then
|
|||||||
echo -n "Waiting for ElasticSearch..."
|
echo -n "Waiting for ElasticSearch..."
|
||||||
retry 240 1 "so-elasticsearch-query / -k --output /dev/null --silent --head --fail" || fail "Connection attempt timed out. Unable to connect to ElasticSearch. \nPlease try: \n -checking log(s) in /var/log/elasticsearch/\n -running 'sudo docker ps' \n -running 'sudo so-elastic-restart'"
|
retry 240 1 "so-elasticsearch-query / -k --output /dev/null --silent --head --fail" || fail "Connection attempt timed out. Unable to connect to ElasticSearch. \nPlease try: \n -checking log(s) in /var/log/elasticsearch/\n -running 'sudo docker ps' \n -running 'sudo so-elastic-restart'"
|
||||||
{% if GLOBALS.role != 'so-heavynode' %}
|
{% if GLOBALS.role != 'so-heavynode' %}
|
||||||
SESSIONCOOKIE=$(curl -s -K /opt/so/conf/elasticsearch/curl.config -c - -X GET http://localhost:5601/ | grep sid | awk '{print $7}')
|
TEMPLATE="logs-endpoint.alerts@package"
|
||||||
INSTALLED=$(elastic_fleet_package_is_installed endpoint }} )
|
INSTALLED=$(so-elasticsearch-query _component_template/$TEMPLATE | jq -r .component_templates[0].name)
|
||||||
if [ "$INSTALLED" != "installed" ]; then
|
if [ "$INSTALLED" != "$TEMPLATE" ]; then
|
||||||
echo
|
echo
|
||||||
echo "Packages not yet installed."
|
echo "Packages not yet installed."
|
||||||
echo
|
echo
|
||||||
|
|||||||
@@ -103,12 +103,95 @@ soc:
|
|||||||
description: Show AI summaries for ElastAlert rules.
|
description: Show AI summaries for ElastAlert rules.
|
||||||
global: True
|
global: True
|
||||||
additionalAlerters:
|
additionalAlerters:
|
||||||
title: Additional Alerters
|
title: "Notifications: Sev 0/Default Alerters"
|
||||||
description: Specify additional alerters to enable for all Sigma rules, one alerter name per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. Note that the configuration parameters for these alerters must be provided in the ElastAlert configuration section. Filter for 'Alerter' to find this related setting. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
description: "Specify default alerters to enable for outbound notifications. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: sigma.html
|
helpLink: notifications.html
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
|
additionalSev0AlertersParams:
|
||||||
|
title: "Notifications: Sev 0/Default Parameters"
|
||||||
|
description: Optional configuration parameters for default alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
|
additionalSev1Alerters:
|
||||||
|
title: "Notifications: Sev 1/Informational Alerters"
|
||||||
|
description: "Specify specific alerters to use when alerting at the info severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
|
global: True
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
additionalSev1AlertersParams:
|
||||||
|
title: "Notifications: Sev 1/Informational Parameters"
|
||||||
|
description: Optional configuration parameters for informational severity alerters. Info level is less severe than 'Low Severity'. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
|
additionalSev2Alerters:
|
||||||
|
title: "Notifications: Sev 2/Low Alerters"
|
||||||
|
description: "Specify specific alerters to use when alerting at the low severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
|
global: True
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
additionalSev2AlertersParams:
|
||||||
|
title: "Notifications: Sev 2/Low Parameters"
|
||||||
|
description: Optional configuration parameters for low severity alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
|
additionalSev3Alerters:
|
||||||
|
title: "Notifications: Sev 3/Medium Alerters"
|
||||||
|
description: "Specify specific alerters to use when alerting at the medium severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
|
global: True
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
additionalSev3AlertersParams:
|
||||||
|
title: "Notifications: Sev 3/Medium Parameters"
|
||||||
|
description: Optional configuration parameters for medium severity alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
|
additionalSev4Alerters:
|
||||||
|
title: "Notifications: Sev 4/High Alerters"
|
||||||
|
description: "Specify specific alerters to use when alerting at the high severity level or critical severity level. These alerters will be used unless overridden by critical severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
|
global: True
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
additionalSev4AlertersParams:
|
||||||
|
title: "Notifications: Sev 4/High Parameters"
|
||||||
|
description: Optional configuration parameters for high severity alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
|
additionalSev5Alerters:
|
||||||
|
title: "Notifications: Sev 5/Critical Alerters"
|
||||||
|
description: "Specify specific alerters to use when alerting at the critical severity level. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
|
global: True
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
additionalSev5AlertersParams:
|
||||||
|
title: "Notifications: Sev 5/Critical Parameters"
|
||||||
|
description: Optional configuration parameters for critical severity alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available alerters and their required configuration parameters. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key.
|
||||||
|
global: True
|
||||||
|
multiline: True
|
||||||
|
syntax: yaml
|
||||||
|
helpLink: notifications.html
|
||||||
|
forcedType: string
|
||||||
autoEnabledSigmaRules:
|
autoEnabledSigmaRules:
|
||||||
default: &autoEnabledSigmaRules
|
default: &autoEnabledSigmaRules
|
||||||
description: 'Sigma rules to automatically enable on initial import. Format is $Ruleset+$Level - for example, for the core community ruleset and critical level rules: core+critical. These will be applied based on role if defined and default if not.'
|
description: 'Sigma rules to automatically enable on initial import. Format is $Ruleset+$Level - for example, for the core community ruleset and critical level rules: core+critical. These will be applied based on role if defined and default if not.'
|
||||||
|
|||||||
Reference in New Issue
Block a user