mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-04-25 14:07:49 +02:00
Compare commits
139 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fc649a565c | |||
| 113b38056b | |||
| 559276534d | |||
| 4acd9f8816 | |||
| a7417a7242 | |||
| d18ff69ec9 | |||
| 465a1a82d7 | |||
| 292f66138b | |||
| 0087768946 | |||
| 712340a027 | |||
| 1caac3f0b0 | |||
| 54a5dd6cbd | |||
| 6570177b0c | |||
| f7ed992f24 | |||
| 4a18f8d18a | |||
| b8884b6ac9 | |||
| 05e271af47 | |||
| 58e80a9db8 | |||
| e16fc3605e | |||
| 2127ba90ee | |||
| 3373aef87d | |||
| fa45e8ded7 | |||
| 6d0ead7b5b | |||
| a2a6625f3b | |||
| 0d807d20f4 | |||
| f4042263a3 | |||
| a930f8233d | |||
| 7401008523 | |||
| 5199ea483e | |||
| 454a7a4799 | |||
| 6fb7733d8c | |||
| ab17cbee31 | |||
| 9991f0cf95 | |||
| 44d46b06a2 | |||
| ba7231f07d | |||
| 8dc11ea23a | |||
| 116a6a0acd | |||
| 311b69dc4a | |||
| fd59acce5d | |||
| 956d3e4345 | |||
| b8355b3a03 | |||
| 535b9f86db | |||
| 97c66a5404 | |||
| 6553beec99 | |||
| e171dd52b8 | |||
| 27a837369d | |||
| 043b9f78e2 | |||
| 2f260a785f | |||
| 001b2dc6cc | |||
| b13eedfbc2 | |||
| dd70ef17b9 | |||
| 82dff3e9da | |||
| d9cfd92b8f | |||
| 33cb771780 | |||
| 76cca8594d | |||
| 5c9c95ba1f | |||
| e62bebeafe | |||
| 8a0e92cc6f | |||
| 3f9259dd0a | |||
| 30b9868de1 | |||
| e88243c306 | |||
| 2128550df2 | |||
| db67c0ed94 | |||
| 2e32c0d236 | |||
| 4b1ad1910d | |||
| c337145b2c | |||
| bd7b4c92bc | |||
| 33ebed3468 | |||
| 616bc40412 | |||
| f00d9074ff | |||
| 9a692288e2 | |||
| fea2b481e3 | |||
| c17f0081ef | |||
| fbf0803906 | |||
| 5deda45b66 | |||
| 3b8d8163b3 | |||
| 2dfd41bd3c | |||
| 49eead1d55 | |||
| 54cb3c3a5a | |||
| 9f2b920454 | |||
| 604af45661 | |||
| 3f435c5c1a | |||
| 7769af4541 | |||
| 9903be8120 | |||
| 991a601a3d | |||
| 86519d43dc | |||
| 179f669acf | |||
| a02f878dcc | |||
| 32c29b28eb | |||
| 7bf2603414 | |||
| 4003876465 | |||
| 4c677961c4 | |||
| e950d865d8 | |||
| fd7a118664 | |||
| d7906945df | |||
| cb384ae024 | |||
| 7caead2387 | |||
| 4827c9e0d4 | |||
| 3b62fc63c9 | |||
| ad32c2b1a5 | |||
| f02f431dab | |||
| 812964e4d8 | |||
| 99805cc326 | |||
| 8d2b3f3dfe | |||
| 15f7fd8920 | |||
| 50460bf91e | |||
| ee654f767a | |||
| 8c694a7ca3 | |||
| 9ac640fa67 | |||
| db8d9fff2c | |||
| 811063268f | |||
| f2b10a5a86 | |||
| c69cac0e5f | |||
| fed4433088 | |||
| 839cfcaefa | |||
| 3123407ef0 | |||
| d24125c9e6 | |||
| 64dc278c95 | |||
| 626a824cd6 | |||
| 10ba3b4b5a | |||
| 1d059fc96e | |||
| 4c1585f8d8 | |||
| e235957c00 | |||
| 2cc665bac6 | |||
| d6e118dcd3 | |||
| 1d2534b2a1 | |||
| 484aa7b207 | |||
| 6986448239 | |||
| f1d74dcd67 | |||
| dd48d66c1c | |||
| 440f4e75c1 | |||
| c795a70e9c | |||
| 340dbe8547 | |||
| 52a5e743e9 | |||
| 5ceff52796 | |||
| f3a0ab0b2d | |||
| 4a7c994b66 | |||
| 07b8785f3d | |||
| 9a1092ab01 |
@@ -1,6 +1,6 @@
|
|||||||
## Security Onion 2.3.140
|
## Security Onion 2.3.182
|
||||||
|
|
||||||
Security Onion 2.3.140 is here!
|
Security Onion 2.3.182 is here!
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
|
|||||||
+11
-11
@@ -1,18 +1,18 @@
|
|||||||
### 2.3.140-20220718 ISO image built on 2022/07/18
|
### 2.3.182-20221109 ISO image built on 2022/11/09
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Download and Verify
|
### Download and Verify
|
||||||
|
|
||||||
2.3.140-20220718 ISO image:
|
2.3.182-20221109 ISO image:
|
||||||
https://download.securityonion.net/file/securityonion/securityonion-2.3.140-20220718.iso
|
https://download.securityonion.net/file/securityonion/securityonion-2.3.182-20221109.iso
|
||||||
|
|
||||||
MD5: 9570065548DBFA6230F28FF623A8B61A
|
MD5: E472D5A7C64662435F84FD56491D8967
|
||||||
SHA1: D48B2CC81DF459C3EBBC0C54BD9AAFAB4327CB75
|
SHA1: D2069317553AF0A1FB4FB6FE15583FF4E8CB2973
|
||||||
SHA256: 0E31E15EDFD3392B9569FCCAF1E4518432ECB0D7A174CCA745F2F22CDAC4A034
|
SHA256: A074EB38B88C0A00BDFD7FB75B4ECB7C46CB0B4CC993CAB81EFDC708B0075D2C
|
||||||
|
|
||||||
Signature for ISO image:
|
Signature for ISO image:
|
||||||
https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.3.140-20220718.iso.sig
|
https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.3.182-20221109.iso.sig
|
||||||
|
|
||||||
Signing key:
|
Signing key:
|
||||||
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/master/KEYS
|
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/master/KEYS
|
||||||
@@ -26,22 +26,22 @@ wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/ma
|
|||||||
|
|
||||||
Download the signature file for the ISO:
|
Download the signature file for the ISO:
|
||||||
```
|
```
|
||||||
wget https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.3.140-20220718.iso.sig
|
wget https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.3.182-20221109.iso.sig
|
||||||
```
|
```
|
||||||
|
|
||||||
Download the ISO image:
|
Download the ISO image:
|
||||||
```
|
```
|
||||||
wget https://download.securityonion.net/file/securityonion/securityonion-2.3.140-20220718.iso
|
wget https://download.securityonion.net/file/securityonion/securityonion-2.3.182-20221109.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify the downloaded ISO image using the signature file:
|
Verify the downloaded ISO image using the signature file:
|
||||||
```
|
```
|
||||||
gpg --verify securityonion-2.3.140-20220718.iso.sig securityonion-2.3.140-20220718.iso
|
gpg --verify securityonion-2.3.182-20221109.iso.sig securityonion-2.3.182-20221109.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
||||||
```
|
```
|
||||||
gpg: Signature made Mon 18 Jul 2022 10:16:05 AM EDT using RSA key ID FE507013
|
gpg: Signature made Wed 09 Nov 2022 07:30:32 AM EST using RSA key ID FE507013
|
||||||
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
||||||
gpg: WARNING: This key is not certified with a trusted signature!
|
gpg: WARNING: This key is not certified with a trusted signature!
|
||||||
gpg: There is no indication that the signature belongs to the owner.
|
gpg: There is no indication that the signature belongs to the owner.
|
||||||
|
|||||||
+171
-43
@@ -203,7 +203,7 @@ check_airgap() {
|
|||||||
|
|
||||||
check_local_mods() {
|
check_local_mods() {
|
||||||
local salt_local=/opt/so/saltstack/local
|
local salt_local=/opt/so/saltstack/local
|
||||||
|
local_ignore_arr=("/opt/so/saltstack/local/salt/zeek/policy/intel/intel.dat")
|
||||||
local_mod_arr=()
|
local_mod_arr=()
|
||||||
|
|
||||||
while IFS= read -r -d '' local_file; do
|
while IFS= read -r -d '' local_file; do
|
||||||
@@ -211,8 +211,10 @@ check_local_mods() {
|
|||||||
default_file="${DEFAULT_SALT_DIR}${stripped_path}"
|
default_file="${DEFAULT_SALT_DIR}${stripped_path}"
|
||||||
if [[ -f $default_file ]]; then
|
if [[ -f $default_file ]]; then
|
||||||
file_diff=$(diff "$default_file" "$local_file" )
|
file_diff=$(diff "$default_file" "$local_file" )
|
||||||
if [[ $(echo "$file_diff" | grep -c "^<") -gt 0 ]]; then
|
if [[ ! " ${local_ignore_arr[*]} " =~ " ${local_file} " ]]; then
|
||||||
local_mod_arr+=( "$local_file" )
|
if [[ $(echo "$file_diff" | grep -c "^<") -gt 0 ]]; then
|
||||||
|
local_mod_arr+=( "$local_file" )
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done< <(find $salt_local -type f -print0)
|
done< <(find $salt_local -type f -print0)
|
||||||
@@ -223,11 +225,24 @@ check_local_mods() {
|
|||||||
echo " $file_str"
|
echo " $file_str"
|
||||||
done
|
done
|
||||||
echo ""
|
echo ""
|
||||||
echo "To reference this list later, check $SOUP_LOG"
|
echo "To reference this list later, check $SOUP_LOG".
|
||||||
sleep 10
|
echo
|
||||||
|
if [[ -z $UNATTENDED ]] && ! [[ "${1}" == "skip-prompt" ]]; then
|
||||||
|
while true; do
|
||||||
|
read -p "Please review the local modifications shown above as they may cause problems during or after the update.
|
||||||
|
|
||||||
|
Would you like to proceed with the update anyway?
|
||||||
|
|
||||||
|
If so, type 'YES'. Otherwise, type anything else to exit SOUP. " yn
|
||||||
|
|
||||||
|
case $yn in
|
||||||
|
[yY][eE][sS] ) echo "Local modifications accepted. Continuing..."; break;;
|
||||||
|
* ) exit 0;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# {% endraw %}
|
# {% endraw %}
|
||||||
|
|
||||||
check_pillar_items() {
|
check_pillar_items() {
|
||||||
@@ -371,6 +386,81 @@ clone_to_tmp() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
elastalert_indices_check() {
|
||||||
|
echo "Checking Elastalert indices for compatibility..."
|
||||||
|
# Wait for ElasticSearch to initialize
|
||||||
|
echo -n "Waiting for ElasticSearch..."
|
||||||
|
COUNT=0
|
||||||
|
ELASTICSEARCH_CONNECTED="no"
|
||||||
|
while [[ "$COUNT" -le 240 ]]; do
|
||||||
|
so-elasticsearch-query / -k --output /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
ELASTICSEARCH_CONNECTED="yes"
|
||||||
|
echo "connected!"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
((COUNT+=1))
|
||||||
|
sleep 1
|
||||||
|
echo -n "."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Unable to connect to Elasticsearch
|
||||||
|
if [ "$ELASTICSEARCH_CONNECTED" == "no" ]; then
|
||||||
|
echo
|
||||||
|
echo -e "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'"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MAJOR_ES_VERSION=$(so-elasticsearch-query / | jq -r .version.number | cut -d '.' -f1)
|
||||||
|
if [[ "$MAJOR_ES_VERSION" -lt "8" ]]; then
|
||||||
|
|
||||||
|
# Stop Elastalert to prevent Elastalert indices from being re-created
|
||||||
|
if grep -q "^so-elastalert$" /opt/so/conf/so-status/so-status.conf ; then
|
||||||
|
so-elastalert-stop || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check Elastalert indices
|
||||||
|
echo "Deleting Elastalert indices to prevent issues with upgrade to Elastic 8..."
|
||||||
|
CHECK_COUNT=0
|
||||||
|
while [[ "$CHECK_COUNT" -le 2 ]]; do
|
||||||
|
# Delete Elastalert indices
|
||||||
|
for i in $(so-elasticsearch-query _cat/indices | grep elastalert | awk '{print $3}'); do
|
||||||
|
so-elasticsearch-query $i -XDELETE;
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check to ensure Elastalert indices are deleted
|
||||||
|
COUNT=0
|
||||||
|
ELASTALERT_INDICES_DELETED="no"
|
||||||
|
while [[ "$COUNT" -le 240 ]]; do
|
||||||
|
RESPONSE=$(so-elasticsearch-query "elastalert*")
|
||||||
|
if [[ "$RESPONSE" == "{}" ]]; then
|
||||||
|
ELASTALERT_INDICES_DELETED="yes"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
((COUNT+=1))
|
||||||
|
sleep 1
|
||||||
|
echo -n "."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
((CHECK_COUNT+=1))
|
||||||
|
done
|
||||||
|
|
||||||
|
# If we were unable to delete the Elastalert indices, exit the script
|
||||||
|
if [ "$ELASTALERT_INDICES_DELETED" == "yes" ]; then
|
||||||
|
echo "Elastalert indices successfully deleted."
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo -e "Unable to connect to delete Elastalert indices. Exiting."
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Major Elasticsearch version is 8 or greater...skipping Elastalert index maintenance."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
enable_highstate() {
|
enable_highstate() {
|
||||||
echo "Enabling highstate."
|
echo "Enabling highstate."
|
||||||
salt-call state.enable highstate -l info --local
|
salt-call state.enable highstate -l info --local
|
||||||
@@ -380,7 +470,7 @@ enable_highstate() {
|
|||||||
es_version_check() {
|
es_version_check() {
|
||||||
CHECK_ES=$(echo $INSTALLEDVERSION | awk -F. '{print $3}')
|
CHECK_ES=$(echo $INSTALLEDVERSION | awk -F. '{print $3}')
|
||||||
|
|
||||||
if [ "$CHECK_ES" -lt "110" ]; then
|
if [[ "$CHECK_ES" -lt "110" ]]; then
|
||||||
echo "You are currently running Security Onion $INSTALLEDVERSION. You will need to update to version 2.3.130 before updating to 2.3.140 or higher."
|
echo "You are currently running Security Onion $INSTALLEDVERSION. You will need to update to version 2.3.130 before updating to 2.3.140 or higher."
|
||||||
echo ""
|
echo ""
|
||||||
echo "If your deployment has Internet access, you can use the following command to update to 2.3.130:"
|
echo "If your deployment has Internet access, you can use the following command to update to 2.3.130:"
|
||||||
@@ -454,6 +544,12 @@ preupgrade_changes() {
|
|||||||
[[ "$INSTALLEDVERSION" == 2.3.110 ]] && up_to_2.3.120
|
[[ "$INSTALLEDVERSION" == 2.3.110 ]] && up_to_2.3.120
|
||||||
[[ "$INSTALLEDVERSION" == 2.3.120 ]] && up_to_2.3.130
|
[[ "$INSTALLEDVERSION" == 2.3.120 ]] && up_to_2.3.130
|
||||||
[[ "$INSTALLEDVERSION" == 2.3.130 ]] && up_to_2.3.140
|
[[ "$INSTALLEDVERSION" == 2.3.130 ]] && up_to_2.3.140
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.140 ]] && up_to_2.3.150
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.150 ]] && up_to_2.3.160
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.160 ]] && up_to_2.3.170
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.170 ]] && up_to_2.3.180
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.180 ]] && up_to_2.3.181
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.3.181 ]] && up_to_2.3.182
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,7 +566,12 @@ postupgrade_changes() {
|
|||||||
[[ "$POSTVERSION" == 2.3.110 ]] && post_to_2.3.120
|
[[ "$POSTVERSION" == 2.3.110 ]] && post_to_2.3.120
|
||||||
[[ "$POSTVERSION" == 2.3.120 ]] && post_to_2.3.130
|
[[ "$POSTVERSION" == 2.3.120 ]] && post_to_2.3.130
|
||||||
[[ "$POSTVERSION" == 2.3.130 ]] && post_to_2.3.140
|
[[ "$POSTVERSION" == 2.3.130 ]] && post_to_2.3.140
|
||||||
|
[[ "$POSTVERSION" == 2.3.140 ]] && post_to_2.3.150
|
||||||
|
[[ "$POSTVERSION" == 2.3.150 ]] && post_to_2.3.160
|
||||||
|
[[ "$POSTVERSION" == 2.3.160 ]] && post_to_2.3.170
|
||||||
|
[[ "$POSTVERSION" == 2.3.170 ]] && post_to_2.3.180
|
||||||
|
[[ "$POSTVERSION" == 2.3.180 ]] && post_to_2.3.181
|
||||||
|
[[ "$POSTVERSION" == 2.3.181 ]] && post_to_2.3.182
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@@ -554,7 +655,35 @@ post_to_2.3.140() {
|
|||||||
POSTVERSION=2.3.140
|
POSTVERSION=2.3.140
|
||||||
}
|
}
|
||||||
|
|
||||||
|
post_to_2.3.150() {
|
||||||
|
echo "Nothing to do for .150"
|
||||||
|
POSTVERSION=2.3.150
|
||||||
|
}
|
||||||
|
|
||||||
|
post_to_2.3.160() {
|
||||||
|
echo "Nothing to do for .160"
|
||||||
|
POSTVERSION=2.3.160
|
||||||
|
}
|
||||||
|
|
||||||
|
post_to_2.3.170() {
|
||||||
|
echo "Nothing to do for .170"
|
||||||
|
POSTVERSION=2.3.170
|
||||||
|
}
|
||||||
|
|
||||||
|
post_to_2.3.180() {
|
||||||
|
echo "Nothing to do for .180"
|
||||||
|
POSTVERSION=2.3.180
|
||||||
|
}
|
||||||
|
|
||||||
|
post_to_2.3.181() {
|
||||||
|
echo "Nothing to do for .181"
|
||||||
|
POSTVERSION=2.3.181
|
||||||
|
}
|
||||||
|
|
||||||
|
post_to_2.3.182() {
|
||||||
|
echo "Nothing to do for .182"
|
||||||
|
POSTVERSION=2.3.182
|
||||||
|
}
|
||||||
|
|
||||||
stop_salt_master() {
|
stop_salt_master() {
|
||||||
# kill all salt jobs across the grid because the hang indefinitely if they are queued and salt-master restarts
|
# kill all salt jobs across the grid because the hang indefinitely if they are queued and salt-master restarts
|
||||||
@@ -825,44 +954,41 @@ up_to_2.3.130() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
up_to_2.3.140() {
|
up_to_2.3.140() {
|
||||||
## Deleting Elastalert indices to prevent issues with upgrade to Elastic 8 ##
|
elastalert_indices_check
|
||||||
echo "Deleting Elastalert indices to prevent issues with upgrade to Elastic 8..."
|
|
||||||
# Wait for ElasticSearch to initialize
|
|
||||||
echo -n "Waiting for ElasticSearch..."
|
|
||||||
COUNT=0
|
|
||||||
ELASTICSEARCH_CONNECTED="no"
|
|
||||||
while [[ "$COUNT" -le 240 ]]; do
|
|
||||||
so-elasticsearch-query / -k --output /dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
ELASTICSEARCH_CONNECTED="yes"
|
|
||||||
echo "connected!"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
((COUNT+=1))
|
|
||||||
sleep 1
|
|
||||||
echo -n "."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ "$ELASTICSEARCH_CONNECTED" == "no" ]; then
|
|
||||||
echo
|
|
||||||
echo -e "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'"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Delete Elastalert indices
|
|
||||||
for i in $(so-elasticsearch-query _cat/indices | grep elastalert | awk '{print $3}'); do so-elasticsearch-query $i -XDELETE; done
|
|
||||||
# Check to ensure Elastalert indices have been deleted
|
|
||||||
RESPONSE=$(so-elasticsearch-query elastalert*)
|
|
||||||
if [[ "$RESPONSE" == "{}" ]]; then
|
|
||||||
echo "Elastalert indices have been deleted."
|
|
||||||
else
|
|
||||||
fail "Something went wrong. Could not delete the Elastalert indices. Exiting."
|
|
||||||
fi
|
|
||||||
##
|
##
|
||||||
INSTALLEDVERSION=2.3.140
|
INSTALLEDVERSION=2.3.140
|
||||||
}
|
}
|
||||||
|
|
||||||
|
up_to_2.3.150() {
|
||||||
|
echo "Upgrading to 2.3.150"
|
||||||
|
INSTALLEDVERSION=2.3.150
|
||||||
|
}
|
||||||
|
|
||||||
|
up_to_2.3.160() {
|
||||||
|
echo "Upgrading to 2.3.160"
|
||||||
|
INSTALLEDVERSION=2.3.160
|
||||||
|
}
|
||||||
|
|
||||||
|
up_to_2.3.170() {
|
||||||
|
echo "Upgrading to 2.3.170"
|
||||||
|
INSTALLEDVERSION=2.3.170
|
||||||
|
}
|
||||||
|
|
||||||
|
up_to_2.3.180() {
|
||||||
|
echo "Upgrading to 2.3.180"
|
||||||
|
INSTALLEDVERSION=2.3.180
|
||||||
|
}
|
||||||
|
|
||||||
|
up_to_2.3.181() {
|
||||||
|
echo "Upgrading to 2.3.181"
|
||||||
|
INSTALLEDVERSION=2.3.181
|
||||||
|
}
|
||||||
|
|
||||||
|
up_to_2.3.182() {
|
||||||
|
echo "Upgrading to 2.3.182"
|
||||||
|
INSTALLEDVERSION=2.3.182
|
||||||
|
}
|
||||||
|
|
||||||
verify_upgradespace() {
|
verify_upgradespace() {
|
||||||
CURRENTSPACE=$(df -BG / | grep -v Avail | awk '{print $4}' | sed 's/.$//')
|
CURRENTSPACE=$(df -BG / | grep -v Avail | awk '{print $4}' | sed 's/.$//')
|
||||||
if [ "$CURRENTSPACE" -lt "10" ]; then
|
if [ "$CURRENTSPACE" -lt "10" ]; then
|
||||||
@@ -1178,10 +1304,12 @@ main() {
|
|||||||
verify_latest_update_script
|
verify_latest_update_script
|
||||||
es_version_check
|
es_version_check
|
||||||
es_indices_check
|
es_indices_check
|
||||||
|
elastalert_indices_check
|
||||||
echo ""
|
echo ""
|
||||||
set_palette
|
set_palette
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
echo ""
|
echo ""
|
||||||
|
check_local_mods
|
||||||
check_os_updates
|
check_os_updates
|
||||||
|
|
||||||
echo "Generating new repo archive"
|
echo "Generating new repo archive"
|
||||||
@@ -1346,7 +1474,7 @@ main() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Checking for local modifications."
|
echo "Checking for local modifications."
|
||||||
check_local_mods
|
check_local_mods skip-prompt
|
||||||
|
|
||||||
echo "Checking sudoers file."
|
echo "Checking sudoers file."
|
||||||
check_sudoers
|
check_sudoers
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ LOG="/opt/so/log/curator/so-curator-closed-delete.log"
|
|||||||
|
|
||||||
overlimit() {
|
overlimit() {
|
||||||
|
|
||||||
[[ $(du -hs --block-size=1GB /nsm/elasticsearch/nodes | awk '{print $1}' ) -gt "{{LOG_SIZE_LIMIT}}" ]]
|
[[ $(du -hs --block-size=1GB /nsm/elasticsearch/indices | awk '{print $1}' ) -gt "{{LOG_SIZE_LIMIT}}" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
closedindices() {
|
closedindices() {
|
||||||
|
|||||||
@@ -55,6 +55,10 @@ elasticsearch:
|
|||||||
indices:
|
indices:
|
||||||
id_field_data:
|
id_field_data:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
ingest:
|
||||||
|
geoip:
|
||||||
|
downloader:
|
||||||
|
enabled: false
|
||||||
logger:
|
logger:
|
||||||
org:
|
org:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
|||||||
@@ -9,61 +9,70 @@
|
|||||||
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.category", "value": "host,process", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.category", "value": "host,process", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.category", "value": "host,driver", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.category", "value": "host,driver", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.category", "value": "network", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.category", "value": "network", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '1'", "field": "event.dataset", "value": "process_creation", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '1'", "field": "event.dataset", "value": "process_creation", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '2'", "field": "event.dataset", "value": "process_changed_file", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '2'", "field": "event.dataset", "value": "process_changed_file", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '3'", "field": "event.dataset", "value": "network_connection", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '3'", "field": "event.dataset", "value": "network_connection", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.dataset", "value": "process_terminated", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.dataset", "value": "process_terminated", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.dataset", "value": "driver_loaded", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.dataset", "value": "driver_loaded", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '7'", "field": "event.dataset", "value": "image_loaded", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '7'", "field": "event.dataset", "value": "image_loaded", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '8'", "field": "event.dataset", "value": "create_remote_thread", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '8'", "field": "event.dataset", "value": "create_remote_thread", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '9'", "field": "event.dataset", "value": "raw_file_access_read", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '9'", "field": "event.dataset", "value": "raw_file_access_read", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '10'", "field": "event.dataset", "value": "process_access", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '10'", "field": "event.dataset", "value": "process_access", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '11'", "field": "event.dataset", "value": "file_create", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '11'", "field": "event.dataset", "value": "file_create", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '12'", "field": "event.dataset", "value": "registry_create_delete", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '12'", "field": "event.dataset", "value": "registry_create_delete", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '13'", "field": "event.dataset", "value": "registry_value_set", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '13'", "field": "event.dataset", "value": "registry_value_set", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '14'", "field": "event.dataset", "value": "registry_key_value_rename", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '14'", "field": "event.dataset", "value": "registry_key_value_rename", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '15'", "field": "event.dataset", "value": "file_create_stream_hash", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '15'", "field": "event.dataset", "value": "file_create_stream_hash", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '16'", "field": "event.dataset", "value": "config_change", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '16'", "field": "event.dataset", "value": "config_change", "override": true } },
|
||||||
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.dataset", "value": "dns_query", "override": true } },
|
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.dataset", "value": "dns_query", "override": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
|
{ "kv": {"field": "winlog.event_data.Hashes", "target_field": "file.hash", "field_split": ",", "value_split": "=", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.DestinationHostname", "target_field": "destination.hostname", "ignore_missing": true } },
|
{ "kv": {"field": "winlog.event_data.Hash", "target_field": "file.hash", "field_split": ",", "value_split": "=", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.DestinationIp", "target_field": "destination.ip", "ignore_missing": true } },
|
{ "rename": { "field": "file.hash.IMPHASH", "target_field": "hash.imphash", "ignore_missing":true } },
|
||||||
{ "rename": { "field": "winlog.event_data.DestinationPort", "target_field": "destination.port", "ignore_missing": true } },
|
{ "rename": { "field": "file.hash.MD5", "target_field": "hash.md5", "ignore_missing":true } },
|
||||||
{ "rename": { "field": "winlog.event_data.image", "target_field": "process.executable", "ignore_missing": true } },
|
{ "rename": { "field": "file.hash.SHA256", "target_field": "hash.sha256", "ignore_missing":true } },
|
||||||
{ "rename": { "field": "winlog.event_data.Image", "target_field": "process.executable", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.processID", "target_field": "process.pid", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.DestinationHostname", "target_field": "destination.hostname", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ProcessId", "target_field": "process.pid", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.DestinationIp", "target_field": "destination.ip", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.processGuid", "target_field": "process.entity_id", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.DestinationPort", "target_field": "destination.port", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ProcessGuid", "target_field": "process.entity_id", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.image", "target_field": "process.executable", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.commandLine", "target_field": "process.command_line", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.Image", "target_field": "process.executable", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.CommandLine", "target_field": "process.command_line", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.processID", "target_field": "process.pid", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.currentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ProcessId", "target_field": "process.pid", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.CurrentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.processGuid", "target_field": "process.entity_id", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.description", "target_field": "process.pe.description", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ProcessGuid", "target_field": "process.entity_id", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.Description", "target_field": "process.pe.description", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.commandLine", "target_field": "process.command_line", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.product", "target_field": "process.pe.product", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.CommandLine", "target_field": "process.command_line", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.Product", "target_field": "process.pe.product", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.currentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.company", "target_field": "process.pe.company", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.CurrentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.Company", "target_field": "process.pe.company", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.description", "target_field": "process.pe.description", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.originalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.Description", "target_field": "process.pe.description", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.OriginalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.product", "target_field": "process.pe.product", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.fileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.Product", "target_field": "process.pe.product", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.FileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.company", "target_field": "process.pe.company", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.parentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.Company", "target_field": "process.pe.company", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ParentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.originalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.parentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.OriginalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ParentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.fileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.parentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.FileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ParentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.parentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.parentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ParentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.ParentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.parentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.Protocol", "target_field": "network.transport", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ParentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.User", "target_field": "user.name", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.parentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.SourceHostname", "target_field": "source.hostname", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ParentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.SourceIp", "target_field": "source.ip", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.parentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.SourcePort", "target_field": "source.port", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.ParentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.targetFilename", "target_field": "file.target", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.Protocol", "target_field": "network.transport", "ignore_missing": true } },
|
||||||
{ "rename": { "field": "winlog.event_data.TargetFilename", "target_field": "file.target", "ignore_missing": true } },
|
{ "rename": { "field": "winlog.event_data.User", "target_field": "user.name", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.SourceHostname", "target_field": "source.hostname", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.SourceIp", "target_field": "source.ip", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.SourcePort", "target_field": "source.port", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.targetFilename", "target_field": "file.target", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.TargetFilename", "target_field": "file.target", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.QueryResults", "target_field": "dns.answers.name", "ignore_missing": true } },
|
||||||
|
{ "rename": { "field": "winlog.event_data.QueryName", "target_field": "dns.query.name", "ignore_missing": true } },
|
||||||
|
{ "remove": { "field": "winlog.event_data.Hash", "ignore_missing": true } },
|
||||||
|
{ "remove": { "field": "winlog.event_data.Hashes", "ignore_missing": true } },
|
||||||
{ "community_id": {} }
|
{ "community_id": {} }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,10 +62,40 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"elf": {
|
||||||
|
"properties": {
|
||||||
|
"sections": {
|
||||||
|
"properties": {
|
||||||
|
"entropy": {
|
||||||
|
"type": "long"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3085,12 +3085,6 @@ grafana:
|
|||||||
y: 16
|
y: 16
|
||||||
h: 8
|
h: 8
|
||||||
w: 24
|
w: 24
|
||||||
elasticsearch_pipeline_time_nontc_graph:
|
|
||||||
gridPos:
|
|
||||||
x: 0
|
|
||||||
y: 24
|
|
||||||
h: 8
|
|
||||||
w: 24
|
|
||||||
|
|
||||||
|
|
||||||
pipeline_overview_tc:
|
pipeline_overview_tc:
|
||||||
@@ -3140,9 +3134,3 @@ grafana:
|
|||||||
y: 16
|
y: 16
|
||||||
h: 8
|
h: 8
|
||||||
w: 24
|
w: 24
|
||||||
elasticsearch_pipeline_time_tc_graph:
|
|
||||||
gridPos:
|
|
||||||
x: 0
|
|
||||||
y: 24
|
|
||||||
h: 8
|
|
||||||
w: 24
|
|
||||||
|
|||||||
@@ -31,11 +31,11 @@
|
|||||||
{%- elif RULESET == 'ETPRO' %}
|
{%- elif RULESET == 'ETPRO' %}
|
||||||
--etpro={{ OINKCODE }}
|
--etpro={{ OINKCODE }}
|
||||||
{%- elif RULESET == 'TALOS' %}
|
{%- elif RULESET == 'TALOS' %}
|
||||||
--url=https://www.snort.org/rules/snortrules-snapshot-2983.tar.gz?oinkcode={{ OINKCODE }}
|
--url=https://www.snort.org/rules/snortrules-snapshot-29200.tar.gz?oinkcode={{ OINKCODE }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if URLS != None %}
|
{%- if URLS != None %}
|
||||||
{%- for URL in URLS %}
|
{%- for URL in URLS %}
|
||||||
--url={{ URL }}
|
--url={{ URL }}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ update() {
|
|||||||
|
|
||||||
IFS=$'\r\n' GLOBIGNORE='*' command eval 'LINES=($(cat $1))'
|
IFS=$'\r\n' GLOBIGNORE='*' command eval 'LINES=($(cat $1))'
|
||||||
for i in "${LINES[@]}"; do
|
for i in "${LINES[@]}"; do
|
||||||
RESPONSE=$({{ ELASTICCURL }} -X PUT "localhost:5601/api/saved_objects/config/8.3.2" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d " $i ")
|
RESPONSE=$({{ ELASTICCURL }} -X PUT "localhost:5601/api/saved_objects/config/8.4.3" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d " $i ")
|
||||||
echo $RESPONSE; if [[ "$RESPONSE" != *"\"success\":true"* ]] && [[ "$RESPONSE" != *"updated_at"* ]] ; then RETURN_CODE=1;fi
|
echo $RESPONSE; if [[ "$RESPONSE" != *"\"success\":true"* ]] && [[ "$RESPONSE" != *"updated_at"* ]] ; then RETURN_CODE=1;fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"attributes": {"buildNum": 39457,"defaultIndex": "2289a0c0-6970-11ea-a0cd-ffa0f6a1bc29","defaultRoute": "/app/dashboards#/view/a8411b30-6d03-11ea-b301-3d6c35840645","discover:sampleSize": 100,"theme:darkMode": true,"timepicker:timeDefaults": "{\n \"from\": \"now-24h\",\n \"to\": \"now\"\n}"},"coreMigrationVersion": "8.3.2","id": "8.3.2","migrationVersion": {"config": "7.13.0"},"references": [],"type": "config","updated_at": "2021-10-10T10:10:10.105Z","version": "WzI5NzUsMl0="}
|
{"attributes": {"buildNum": 39457,"defaultIndex": "2289a0c0-6970-11ea-a0cd-ffa0f6a1bc29","defaultRoute": "/app/dashboards#/view/a8411b30-6d03-11ea-b301-3d6c35840645","discover:sampleSize": 100,"theme:darkMode": true,"timepicker:timeDefaults": "{\n \"from\": \"now-24h\",\n \"to\": \"now\"\n}"},"coreMigrationVersion": "8.4.3","id": "8.4.3","migrationVersion": {"config": "7.13.0"},"references": [],"type": "config","updated_at": "2021-10-10T10:10:10.105Z","version": "WzI5NzUsMl0="}
|
||||||
|
|||||||
+13
-4
@@ -81,11 +81,20 @@ set_log_levels:
|
|||||||
- "log_level: error"
|
- "log_level: error"
|
||||||
- "log_level_logfile: error"
|
- "log_level_logfile: error"
|
||||||
|
|
||||||
salt_minion_service_unit_file:
|
delete_pre_150_start_delay:
|
||||||
file.managed:
|
file.line:
|
||||||
- name: {{ SYSTEMD_UNIT_FILE }}
|
- name: {{ SYSTEMD_UNIT_FILE }}
|
||||||
- source: salt://salt/service/salt-minion.service.jinja
|
- match: ^ExecStartPre=*
|
||||||
|
- mode: delete
|
||||||
|
- onchanges_in:
|
||||||
|
- module: systemd_reload
|
||||||
|
|
||||||
|
salt_minion_service_start_delay:
|
||||||
|
file.managed:
|
||||||
|
- name: /etc/systemd/system/salt-minion.service.d/start-delay.conf
|
||||||
|
- source: salt://salt/service/start-delay.conf.jinja
|
||||||
- template: jinja
|
- template: jinja
|
||||||
|
- makedirs: True
|
||||||
- defaults:
|
- defaults:
|
||||||
service_start_delay: {{ service_start_delay }}
|
service_start_delay: {{ service_start_delay }}
|
||||||
- onchanges_in:
|
- onchanges_in:
|
||||||
@@ -109,7 +118,7 @@ salt_minion_service:
|
|||||||
- file: mine_functions
|
- file: mine_functions
|
||||||
{% if INSTALLEDSALTVERSION|string == SALTVERSION|string %}
|
{% if INSTALLEDSALTVERSION|string == SALTVERSION|string %}
|
||||||
- file: set_log_levels
|
- file: set_log_levels
|
||||||
- file: salt_minion_service_unit_file
|
- file: salt_minion_service_start_delay
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- order: last
|
- order: last
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=The Salt Minion
|
|
||||||
Documentation=man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltstack.com/en/latest/contents.html
|
|
||||||
After=network.target salt-master.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
KillMode=process
|
|
||||||
Type=notify
|
|
||||||
NotifyAccess=all
|
|
||||||
LimitNOFILE=8192
|
|
||||||
ExecStart=/usr/bin/salt-minion
|
|
||||||
ExecStartPre=/bin/sleep {{ salt['pillar.get']('salt:minion:service_start_delay', service_start_delay) }}
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[Service]
|
||||||
|
ExecStartPre=/bin/sleep {{ salt['pillar.get']('salt:minion:service_start_delay', service_start_delay) }}
|
||||||
@@ -2,10 +2,15 @@
|
|||||||
{ "name": "Overview", "description": "Overview of all events", "query": "* | groupby -sankey event.dataset event.category* | groupby -pie event.category | groupby -bar event.module | groupby event.dataset | groupby event.module | groupby event.category | groupby observer.name | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
{ "name": "Overview", "description": "Overview of all events", "query": "* | groupby -sankey event.dataset event.category* | groupby -pie event.category | groupby -bar event.module | groupby event.dataset | groupby event.module | groupby event.category | groupby observer.name | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
||||||
{ "name": "SOC Auth", "description": "Show all SOC authentication logs", "query": "event.module:kratos AND event.dataset:audit AND msg:authenticated | groupby http_request.headers.x-real-ip | groupby identity_id | groupby http_request.headers.user-agent"},
|
{ "name": "SOC Auth", "description": "Show all SOC authentication logs", "query": "event.module:kratos AND event.dataset:audit AND msg:authenticated | groupby http_request.headers.x-real-ip | groupby identity_id | groupby http_request.headers.user-agent"},
|
||||||
{ "name": "Elastalerts", "description": "Elastalert logs", "query": "_index: \"*:elastalert*\" | groupby rule_name | groupby alert_info.type"},
|
{ "name": "Elastalerts", "description": "Elastalert logs", "query": "_index: \"*:elastalert*\" | groupby rule_name | groupby alert_info.type"},
|
||||||
{ "name": "Alerts", "description": "Show all alerts", "query": "event.dataset: alert | groupby event.module | groupby rule.name | groupby event.severity | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
{ "name": "Alerts", "description": "Show all alerts", "query": "event.dataset:alert | groupby event.module | groupby rule.name | groupby event.severity | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
||||||
{ "name": "NIDS Alerts", "description": "NIDS alerts", "query": "event.category: network AND event.dataset: alert | groupby rule.category | groupby rule.gid | groupby rule.uuid | groupby rule.name | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
{ "name": "NIDS Alerts", "description": "NIDS alerts", "query": "event.category:network AND event.dataset:alert | groupby rule.category | groupby rule.gid | groupby rule.uuid | groupby rule.name | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
||||||
{ "name": "Wazuh/OSSEC", "description": "Wazuh/OSSEC HIDS alerts and logs", "query": "event.module:ossec | groupby rule.category | groupby rule.uuid | groupby rule.name | groupby agent.id | groupby agent.name | groupby log.full"},
|
{ "name": "Wazuh/OSSEC", "description": "Wazuh/OSSEC HIDS alerts and logs", "query": "event.module:ossec | groupby rule.category | groupby rule.uuid | groupby rule.name | groupby agent.id | groupby agent.name | groupby log.full"},
|
||||||
{ "name": "Sysmon", "description": "Sysmon logs", "query": "event.module:sysmon | groupby event.dataset | groupby user.name | groupby process.executable | groupby process.command_line | groupby process.parent.command_line"},
|
{ "name": "Sysmon Overview", "description": "Overview of all Sysmon data types", "query": "event.module:sysmon | groupby -sankey event.dataset winlog.computer_name | groupby -sankey winlog.computer_name user.name | groupby winlog.computer_name | groupby event.dataset | groupby user.name | groupby dns.query.name | groupby process.executable | groupby winlog.event_data.TargetObject | groupby file.target | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
||||||
|
{ "name": "Sysmon Registry", "description": "Registry changes captured by Sysmon", "query": "(event.dataset:registry_create_delete OR event.dataset:registry_value_set OR event.dataset:registry_key_value_rename) | groupby -sankey event.dataset winlog.computer_name | groupby winlog.computer_name | groupby event.dataset | groupby process.executable | groupby winlog.event_data.TargetObject | groupby process.executable winlog.event_data.TargetObject"},
|
||||||
|
{ "name": "Sysmon DNS", "description": "DNS queries captured by Sysmon", "query": "event.dataset:dns_query | groupby -sankey winlog.computer_name dns.query.name | groupby winlog.computer_name | groupby process.executable | groupby dns.query.name | groupby dns.answers.name"},
|
||||||
|
{ "name": "Sysmon Process", "description": "Process activity captured by Sysmon", "query": "(event.dataset:process_creation OR event.dataset:process_terminated OR event.dataset:process_access) | groupby -sankey winlog.computer_name user.name | groupby winlog.computer_name | groupby user.name | groupby event.dataset | groupby process.working_directory | groupby process.executable | groupby process.command_line | groupby process.parent.executable | groupby process.parent.command_line | groupby -sankey process.parent.executable process.executable"},
|
||||||
|
{ "name": "Sysmon File", "description": "File activity captured by Sysmon", "query": "(event.dataset:file_create OR event.dataset:file_create_stream_hash OR event.dataset:process_changed_file) | groupby -sankey winlog.computer_name process.executable | groupby winlog.computer_name | groupby event.dataset | groupby file.target | groupby process.executable"},
|
||||||
|
{ "name": "Sysmon Network", "description": "Network activity captured by Sysmon", "query": "event.dataset:network_connection | groupby -sankey winlog.computer_name destination.ip destination.port | groupby winlog.computer_name | groupby user.name | groupby process.executable | groupby source.ip | groupby destination.ip | groupby destination.port | groupby destination_geo.organization_name"},
|
||||||
{ "name": "Strelka", "description": "Strelka logs", "query": "event.module:strelka | groupby file.mime_type | groupby file.name | groupby file.source"},
|
{ "name": "Strelka", "description": "Strelka logs", "query": "event.module:strelka | groupby file.mime_type | groupby file.name | groupby file.source"},
|
||||||
{ "name": "Zeek Notice", "description": "Zeek Notice logs", "query": "event.dataset:notice | groupby notice.note | groupby notice.message | groupby notice.sub_message | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
{ "name": "Zeek Notice", "description": "Zeek Notice logs", "query": "event.dataset:notice | groupby notice.note | groupby notice.message | groupby notice.sub_message | groupby source.ip | groupby destination.ip | groupby destination.port"},
|
||||||
{ "name": "Connections", "description": "Connection logs", "query": "event.dataset:conn | groupby source.ip | groupby destination.ip | groupby destination.port | groupby network.protocol | groupby network.transport | groupby connection.history | groupby connection.state | groupby connection.state_description | groupby source.geo.country_name | groupby destination.geo.country_name | groupby client.ip_bytes | groupby server.ip_bytes"},
|
{ "name": "Connections", "description": "Connection logs", "query": "event.dataset:conn | groupby source.ip | groupby destination.ip | groupby destination.port | groupby network.protocol | groupby network.transport | groupby connection.history | groupby connection.state | groupby connection.state_description | groupby source.geo.country_name | groupby destination.geo.country_name | groupby client.ip_bytes | groupby server.ip_bytes"},
|
||||||
|
|||||||
@@ -49,5 +49,13 @@
|
|||||||
"::syscollector": ["soc_timestamp", "host.name", "metadata.ip_address", "wazuh.data.type", "log.full", "event.dataset", "event.module" ],
|
"::syscollector": ["soc_timestamp", "host.name", "metadata.ip_address", "wazuh.data.type", "log.full", "event.dataset", "event.module" ],
|
||||||
":syslog:syslog": ["soc_timestamp", "host.name", "metadata.ip_address", "real_message", "syslog.priority", "syslog.application" ],
|
":syslog:syslog": ["soc_timestamp", "host.name", "metadata.ip_address", "real_message", "syslog.priority", "syslog.application" ],
|
||||||
":aws:": ["soc_timestamp", "aws.cloudtrail.event_category", "aws.cloudtrail.event_type", "event.provider", "event.action", "event.outcome", "cloud.region", "user.name", "source.ip", "source.geo.region_iso_code" ],
|
":aws:": ["soc_timestamp", "aws.cloudtrail.event_category", "aws.cloudtrail.event_type", "event.provider", "event.action", "event.outcome", "cloud.region", "user.name", "source.ip", "source.geo.region_iso_code" ],
|
||||||
":squid:": ["soc_timestamp", "url.original", "destination.ip", "destination.geo.country_iso_code", "user.name", "source.ip" ]
|
":squid:": ["soc_timestamp", "url.original", "destination.ip", "destination.geo.country_iso_code", "user.name", "source.ip" ],
|
||||||
}
|
"::process_terminated": ["soc_timestamp", "process.executable", "process.pid", "winlog.computer_name"],
|
||||||
|
"::file_create": ["soc_timestamp", "file.target", "process.executable", "process.pid", "winlog.computer_name"],
|
||||||
|
"::registry_value_set": ["soc_timestamp", "winlog.event_data.TargetObject", "process.executable", "process.pid", "winlog.computer_name"],
|
||||||
|
"::process_creation": ["soc_timestamp","process.command_line", "process.pid", "process.parent.executable", "process.working_directory"],
|
||||||
|
"::registry_create_delete": ["soc_timestamp", "winlog.event_data.TargetObject", "process.executable", "process.pid", "winlog.computer_name"],
|
||||||
|
"::dns_query": ["soc_timestamp", "dns.query.name", "dns.answers.name", "process.executable", "winlog.computer_name"],
|
||||||
|
"::file_create_stream_hash": ["soc_timestamp", "file.target", "hash.md5", "hash.sha256", "process.executable", "process.pid", "winlog.computer_name"]
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
"/joblookup?esid={:soc_id}&time={:@timestamp}",
|
"/joblookup?esid={:soc_id}&time={:@timestamp}",
|
||||||
"/joblookup?ncid={:network.community_id}&time={:@timestamp}"
|
"/joblookup?ncid={:network.community_id}&time={:@timestamp}"
|
||||||
],
|
],
|
||||||
"categories": ["hunt", "alerts"]},
|
"categories": ["hunt", "alerts", "dashboards"]},
|
||||||
{ "name": "actionCyberChef", "description": "actionCyberChefHelp", "icon": "fas fa-bread-slice", "target": "_blank",
|
{ "name": "actionCyberChef", "description": "actionCyberChefHelp", "icon": "fas fa-bread-slice", "target": "_blank",
|
||||||
"links": [
|
"links": [
|
||||||
"/cyberchef/#input={value|base64}"
|
"/cyberchef/#input={value|base64}"
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
"red"
|
"red"
|
||||||
],
|
],
|
||||||
"customEnabled": false
|
"customEnabled": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"labels": [
|
"labels": [
|
||||||
"white",
|
"clear",
|
||||||
"green",
|
"green",
|
||||||
"amber",
|
"amber",
|
||||||
|
"amber+strict",
|
||||||
"red"
|
"red"
|
||||||
],
|
],
|
||||||
"customEnabled": false
|
"customEnabled": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
strelka:
|
strelka:
|
||||||
ignore:
|
ignore:
|
||||||
|
- apt_flame2_orchestrator.yar
|
||||||
|
- apt_tetris.yar
|
||||||
|
- gen_susp_js_obfuscatorio.yar
|
||||||
|
- gen_webshells.yar
|
||||||
- generic_anomalies.yar
|
- generic_anomalies.yar
|
||||||
- general_cloaking.yar
|
- general_cloaking.yar
|
||||||
- thor_inverse_matches.yar
|
- thor_inverse_matches.yar
|
||||||
- yara_mixed_ext_vars.yar
|
- yara_mixed_ext_vars.yar
|
||||||
- gen_susp_js_obfuscatorio.yar
|
|
||||||
- apt_flame2_orchestrator.yar
|
|
||||||
- apt_tetris.yar
|
|
||||||
|
|||||||
@@ -84,7 +84,9 @@ base:
|
|||||||
{%- if STRELKA %}
|
{%- if STRELKA %}
|
||||||
- strelka
|
- strelka
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
{%- if FILEBEAT %}
|
||||||
- filebeat
|
- filebeat
|
||||||
|
{%- endif %}
|
||||||
{%- if FLEETMANAGER or FLEETNODE %}
|
{%- if FLEETMANAGER or FLEETNODE %}
|
||||||
- fleet.install_package
|
- fleet.install_package
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
@@ -433,7 +435,9 @@ base:
|
|||||||
- redis
|
- redis
|
||||||
- fleet
|
- fleet
|
||||||
- fleet.install_package
|
- fleet.install_package
|
||||||
|
{%- if FILEBEAT %}
|
||||||
- filebeat
|
- filebeat
|
||||||
|
{%- endif %}
|
||||||
- schedule
|
- schedule
|
||||||
- docker_clean
|
- docker_clean
|
||||||
|
|
||||||
@@ -507,7 +511,9 @@ base:
|
|||||||
{%- endif %}
|
{%- endif %}
|
||||||
- schedule
|
- schedule
|
||||||
- docker_clean
|
- docker_clean
|
||||||
|
{%- if FILEBEAT %}
|
||||||
- filebeat
|
- filebeat
|
||||||
|
{%- endif %}
|
||||||
- idh
|
- idh
|
||||||
|
|
||||||
'J@workstation:gui:enabled:^[Tt][Rr][Uu][Ee]$ and ( G@saltversion:{{saltversion}} and G@os:CentOS )':
|
'J@workstation:gui:enabled:^[Tt][Rr][Uu][Ee]$ and ( G@saltversion:{{saltversion}} and G@os:CentOS )':
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user