Compare commits

...

605 Commits

Author SHA1 Message Date
Mike Reeves bee429fe29 Merge pull request #10868 from Security-Onion-Solutions/2.4/dev
2.4.4
2023-07-28 16:00:45 -04:00
Mike Reeves ed21b94c28 Merge pull request #10867 from Security-Onion-Solutions/2.4.4
2.4.4
2023-07-28 14:53:23 -04:00
Mike Reeves 2a282a29c3 2.4.4 2023-07-28 14:49:50 -04:00
Mike Reeves bc09b418ca Merge pull request #10866 from Security-Onion-Solutions/rockyepel
Rockyepel
2023-07-28 14:06:36 -04:00
m0duspwnens 6f6db61a69 remove epel-next 2023-07-28 14:04:27 -04:00
m0duspwnens 9fce80dba3 install epel-next after epel-release 2023-07-28 14:01:14 -04:00
Mike Reeves abfec85e28 Merge pull request #10863 from Security-Onion-Solutions/TOoSmOotH-patch-3
Update so-functions
2023-07-28 12:21:20 -04:00
Mike Reeves 9aa655365b Update so-functions 2023-07-28 12:20:15 -04:00
Mike Reeves 9a3760951a Merge pull request #10861 from Security-Onion-Solutions/TOoSmOotH-patch-2
Update so-functions
2023-07-28 11:35:49 -04:00
Mike Reeves 0bb5db2e72 Update so-functions 2023-07-28 11:34:30 -04:00
Mike Reeves 2dbc7d8485 Merge pull request #10859 from Security-Onion-Solutions/ordesk
Ordesk
2023-07-28 10:56:15 -04:00
Mike Reeves 858e884ec2 Fix Desktop ISO install 2023-07-28 10:52:37 -04:00
Mike Reeves 4672eeb99b Fix Desktop ISO install 2023-07-28 10:51:45 -04:00
Mike Reeves aa824e7b6c Merge pull request #10857 from Security-Onion-Solutions/ordesk
Oracle Desktop
2023-07-28 09:58:46 -04:00
Mike Reeves bb2a1b9521 Fix Desktop ISO install 2023-07-28 09:46:27 -04:00
Mike Reeves a1fa87c150 Merge pull request #10853 from Security-Onion-Solutions/TOoSmOotH-patch-1
Don't restart suricata if it doesn't exist
2023-07-27 16:38:45 -04:00
Mike Reeves 0c553633b1 Don't restart suricata if it doesn't exist 2023-07-27 16:16:46 -04:00
Josh Patterson f9850025ea Merge pull request #10852 from Security-Onion-Solutions/2.4/debian
2.4/debian
2023-07-27 15:05:23 -04:00
Mike Reeves 65b76d72ca Merge pull request #10850 from Security-Onion-Solutions/ordesk
Fix packages for desktop
2023-07-27 14:44:44 -04:00
Mike Reeves afca15f444 Fix packages for desktop 2023-07-27 14:17:43 -04:00
Mike Reeves 65b9843f14 Fix packages for desktop 2023-07-27 14:11:53 -04:00
m0duspwnens 653e2d8205 Merge remote-tracking branch 'origin/2.4/dev' into 2.4/debian 2023-07-27 10:26:12 -04:00
Josh Patterson bbaf6df914 Merge pull request #10849 from Security-Onion-Solutions/iptables
Iptables
2023-07-27 10:00:46 -04:00
m0duspwnens bc182c1c43 only run firewalld states if os_family is RedHat 2023-07-27 09:24:41 -04:00
m0duspwnens fe9b934af6 Merge remote-tracking branch 'origin/2.4/dev' into iptables 2023-07-26 16:32:03 -04:00
m0duspwnens 373298430b only run iptables-restore if config file is valid 2023-07-26 16:31:22 -04:00
Mike Reeves 4a18eb02f3 Merge pull request #10847 from Security-Onion-Solutions/ordesk
SO Desktop
2023-07-26 15:53:40 -04:00
m0duspwnens 0aab3e185e dont manage interfaces listed in /etc/network/interfaces for debian 2023-07-26 15:16:44 -04:00
Josh Brower b1fb05dd28 Merge pull request #10841 from Security-Onion-Solutions/2.4/eqlfields
Fix formatting
2023-07-26 11:25:20 -04:00
Josh Brower 9437a47946 Fix formatting 2023-07-26 10:54:24 -04:00
Josh Brower bdf4f6190d Merge pull request #10829 from Security-Onion-Solutions/2.4/heavynoderedux
Heavy Node fixes
2023-07-26 10:41:42 -04:00
Josh Brower f24a3a51ce Heavy Node fixes 2023-07-25 18:28:41 -04:00
m0duspwnens ba6043392c reorder whiptail text 2023-07-25 16:18:01 -04:00
m0duspwnens 60eb1611ea upgrade packages for debian and reboot prior to so installation 2023-07-25 16:06:38 -04:00
Josh Brower 3ef6ea9155 Merge pull request #10826 from Security-Onion-Solutions/2.4/navfix
Upgrade Nav
2023-07-25 12:26:07 -04:00
Josh Brower 2b38bc778d Upgrade Nav 2023-07-25 12:24:23 -04:00
m0duspwnens e334d44c95 need quotes for logCmd 2023-07-25 11:03:10 -04:00
m0duspwnens 39662ccf14 import rpm logic change 2023-07-25 10:21:44 -04:00
m0duspwnens fd69d1c714 remove quotes so sed will work in logCmd 2023-07-25 09:59:02 -04:00
m0duspwnens 63eebdf6ac installer_prereq_packages is run for debian during detect_os so not needed again 2023-07-25 09:58:26 -04:00
Josh Brower e19845e41d Merge pull request #10819 from Security-Onion-Solutions/fix/elasticsearch_endpoint
Add endpoint to defaults
2023-07-25 09:11:06 -04:00
Josh Patterson c1190064ad Merge pull request #10823 from Security-Onion-Solutions/2.4/dockerips
2.4/dockerips
2023-07-25 08:39:49 -04:00
Josh Brower 4f94d953c9 Merge remote-tracking branch 'origin/2.4/dev' into fix/elasticsearch_endpoint 2023-07-25 07:42:59 -04:00
Josh Brower 71a83c1fe9 Merge pull request #10815 from Security-Onion-Solutions/2.4/SigmaMappings
2.4/sigma mappings
2023-07-25 07:23:25 -04:00
Wes 5553be02ac Change how tags are added 2023-07-24 21:31:28 +00:00
m0duspwnens b20fad2839 add missing do 2023-07-24 17:08:01 -04:00
m0duspwnens 16edca7834 fix failed copy paste 2023-07-24 17:06:49 -04:00
m0duspwnens 2545f9907f dont allow 172.17.0.0/24 for custom dockernet 2023-07-24 17:00:20 -04:00
Wes 4efc951eaf Add tags 2023-07-24 20:57:39 +00:00
Doug Burks d75191d679 Merge pull request #10820 from Security-Onion-Solutions/dougburks-patch-1
Update README.md
2023-07-24 15:35:34 -04:00
Doug Burks ee667a48c9 Update README.md 2023-07-24 15:33:50 -04:00
Josh Brower 067a83a87c Merge pull request #10818 from Security-Onion-Solutions/2.4/fixnavigator
Update & Fix Navigator
2023-07-24 15:13:09 -04:00
Wes d84dbf9535 Add fleet 2023-07-24 18:53:52 +00:00
m0duspwnens d71254ad29 only add custom docker net to pillar 2023-07-24 14:47:14 -04:00
Wes de7b7ff989 Add endpoint 2023-07-24 18:35:02 +00:00
Josh Brower 510900e640 Update & Fix Navigator 2023-07-24 13:56:22 -04:00
m0duspwnens 00483018ca change docker bip to gateway 2023-07-24 13:38:14 -04:00
Mike Reeves 9416a14971 Merge pull request #10816 from Security-Onion-Solutions/gpgoracle
add oracle key
2023-07-24 11:02:10 -04:00
Mike Reeves c9faa1a340 Add gui 2023-07-24 11:00:26 -04:00
m0duspwnens 9bda01bd29 change ranges 2023-07-24 10:40:23 -04:00
Josh Brower eead0c42d4 Merge remote-tracking branch 'origin/2.4/dev' into 2.4/SigmaMappings 2023-07-24 09:27:14 -04:00
Josh Brower 741e6039c1 Cleanup for Sigma Rules 2023-07-24 09:25:58 -04:00
m0duspwnens db09b465bd change default docker net/range 2023-07-24 09:23:13 -04:00
Doug Burks a59f2ded38 Merge pull request #10813 from Security-Onion-Solutions/2.4/fix-packages-sls
Update packages.sls
2023-07-24 08:08:11 -04:00
Doug Burks e2fe04dadc Update packages.sls 2023-07-24 07:10:48 -04:00
Doug Burks 563bf2ff3a Merge pull request #10812 from Security-Onion-Solutions/fuse
Update packages.sls
2023-07-24 06:48:47 -04:00
Mike Reeves 07eeb4e2a0 Update packages.sls 2023-07-23 21:07:19 -04:00
Mike Reeves 5dc5b99b05 Add gui 2023-07-21 18:00:01 -04:00
Mike Reeves ba69c67dc2 Add gui 2023-07-21 17:30:17 -04:00
Mike Reeves d1d5f8a2b6 Add gui 2023-07-21 17:28:09 -04:00
Mike Reeves 48324911ce Add gui 2023-07-21 17:18:03 -04:00
m0duspwnens 4b0126a2e7 fix split 2023-07-21 17:10:51 -04:00
Mike Reeves 8a3c2e7242 Add gui 2023-07-21 17:06:38 -04:00
m0duspwnens f55c1a4078 DOCKERBIP change 2023-07-21 16:59:22 -04:00
m0duspwnens c4d81a249a remove /24 from DOCKERBIP 2023-07-21 16:36:03 -04:00
m0duspwnens 4c9d172721 sorange to range 2023-07-21 16:21:18 -04:00
m0duspwnens 36a936d3d6 docker ips changes 2023-07-21 16:06:52 -04:00
coreyogburn d6164446c6 Merge pull request #10809 from Security-Onion-Solutions/cogburn/8655
Added ReverseLookup Option
2023-07-21 13:38:38 -06:00
Corey Ogburn bb7a918a16 Added ReverseLookup Option
Defaults to false, has metadata to show up in the config section of soc.
2023-07-21 13:18:08 -06:00
weslambert be254b15f2 Merge pull request #10804 from Security-Onion-Solutions/fix/fleet_logging
Fleet logging
2023-07-20 15:51:56 -04:00
weslambert 83e1e3efdc Merge pull request #10788 from Security-Onion-Solutions/fix/elastic_mappings
Fix user name mapping and remove security subfield
2023-07-20 15:51:42 -04:00
Mike Reeves 7c48f9d6ec Merge pull request #10806 from Security-Onion-Solutions/newrhel
For Phil
2023-07-20 14:41:05 -04:00
Mike Reeves f2947de0ca Add epel-next 2023-07-20 12:13:36 -04:00
Wes d07c46f27e Change playbook and sysmon 2023-07-20 16:08:50 +00:00
Mike Reeves 47e418a441 Add epel-next 2023-07-20 12:07:26 -04:00
Mike Reeves 87b1207ac0 Merge pull request #10805 from Security-Onion-Solutions/alma
Test Alma
2023-07-20 10:57:19 -04:00
Mike Reeves a86cbaa6fa Merge pull request #10803 from Security-Onion-Solutions/TOoSmOotH-patch-1
Update needs_restarting.py
2023-07-20 10:55:11 -04:00
Wes c68cd6cf33 Fix typo 2023-07-20 14:39:35 +00:00
Josh Patterson 3071a1de41 Update map.jinja 2023-07-20 08:42:27 -04:00
Josh Patterson e75d0c8094 Update needs_restarting.py 2023-07-20 08:36:27 -04:00
Mike Reeves 14c685ab10 Update needs_restarting.py 2023-07-20 08:32:19 -04:00
Mike Reeves 54082858dc Update needs_restarting.py 2023-07-20 08:25:13 -04:00
Wes 4b7e7978ef Add final pipeline 2023-07-19 19:56:54 +00:00
Josh Patterson 066de70638 Merge pull request #10799 from Security-Onion-Solutions/2.4/mysql
whiptails for ubuntu focal
2023-07-19 15:55:32 -04:00
m0duspwnens 19c6796927 only allow existing deployment for focal 2023-07-19 15:38:18 -04:00
m0duspwnens 77c9b4fb54 remove OTHER 2023-07-19 15:35:28 -04:00
m0duspwnens 3104137190 install type whiptail for focal 2023-07-19 15:31:09 -04:00
Josh Patterson c8b65ecca0 Merge pull request #10798 from Security-Onion-Solutions/2.4/mysql
2.4/mysql
2023-07-19 14:55:35 -04:00
Mike Reeves 555c881235 Test Alma 2023-07-19 14:48:12 -04:00
m0duspwnens 0ac9a1f9cc Merge remote-tracking branch 'origin/2.4/dev' into 2.4/mysql 2023-07-19 14:41:03 -04:00
m0duspwnens 3c0554a42c queue states during so-playbook-reset 2023-07-19 14:40:29 -04:00
Wes 0b19179630 Add logrotate 2023-07-19 15:17:42 +00:00
Wes 30a14f8aaf Add logging 2023-07-19 15:00:20 +00:00
Wes 877fc36013 Add log dir 2023-07-19 14:57:24 +00:00
Mike Reeves a892adb66f Merge pull request #10668 from Security-Onion-Solutions/centos
CentOS Stream Support
2023-07-19 10:41:38 -04:00
Mike Reeves a49b05661d Merge pull request #10794 from Security-Onion-Solutions/2.4/mysql
2.4/mysql
2023-07-19 10:40:37 -04:00
Jason Ertel 266fc4e866 Merge pull request #10792 from Security-Onion-Solutions/regup
upgrade registry version
2023-07-19 10:00:40 -04:00
Wes b738325880 Remove keyword 2023-07-19 13:55:12 +00:00
m0duspwnens ad7821391d Merge remote-tracking branch 'origin/2.4/dev' into 2.4/mysql 2023-07-19 09:54:54 -04:00
m0duspwnens 1b0c146b54 get rid of mysql error: mbind: Operation not permitted 2023-07-19 09:54:00 -04:00
Wes 1848a835f5 Remove keyword 2023-07-19 13:52:15 +00:00
Jason Ertel 23cc75c68d upgrade registry version 2023-07-19 09:51:07 -04:00
weslambert 17fcf12608 Merge pull request #10791 from Security-Onion-Solutions/fix/elastic_clear
Set delete for interactive
2023-07-19 08:27:00 -04:00
Wes 6a8737e9a2 Set delete for interactive 2023-07-19 12:21:47 +00:00
m0duspwnens 9543058a2c Merge remote-tracking branch 'origin/2.4/dev' into 2.4/mysql 2023-07-18 16:51:52 -04:00
m0duspwnens b66cd82110 fix depreciations 2023-07-18 16:50:34 -04:00
weslambert 41ebb403ca Merge pull request #10787 from Security-Onion-Solutions/fix/elastic_clear
Use new agent scripts for Elastic clear command
2023-07-18 16:15:27 -04:00
Mike Reeves c94436fcbd fix other OS installs 2023-07-18 15:19:10 -04:00
Wes a59eda319e Remove security subfield 2023-07-18 19:00:50 +00:00
Wes 8a76975d8c Use new agent scripts 2023-07-18 18:43:57 +00:00
Mike Reeves 737da45e7f fix other OS installs 2023-07-18 14:02:13 -04:00
m0duspwnens df1bf8e67b restart mysql container if config or pass changes 2023-07-18 13:41:26 -04:00
Mike Reeves f95757c551 fix other OS installs 2023-07-18 11:58:49 -04:00
Mike Reeves 5e46138961 fix other OS installs 2023-07-18 11:55:51 -04:00
Mike Reeves dc8aa4d923 fix other OS installs 2023-07-18 11:53:55 -04:00
Wes 1d3e39b6bd Map user name to keyword and remove security subfield generation 2023-07-18 14:46:47 +00:00
Mike Reeves 9ad7303cf2 fix other OS installs 2023-07-17 16:44:55 -04:00
Mike Reeves b1daa22dfc fix other OS installs 2023-07-17 16:40:35 -04:00
Mike Reeves 49c4edbcbe fix other OS installs 2023-07-17 16:33:47 -04:00
Mike Reeves f4c3103f84 fix other OS installs 2023-07-17 16:24:51 -04:00
Mike Reeves a2aea5530b Merge pull request #10779 from Security-Onion-Solutions/palletethings
Palletethings
2023-07-17 16:20:44 -04:00
Mike Reeves 01234f87f9 fix other OS installs 2023-07-17 16:20:32 -04:00
m0duspwnens 5d4186ac07 different whiptail warning if ubuntu 20.04 2023-07-17 15:56:29 -04:00
m0duspwnens 425ca35a22 Merge remote-tracking branch 'origin/centos' into palletethings 2023-07-17 13:58:00 -04:00
m0duspwnens fe5ca3a0c8 set palette after detecting os and before whiptail 2023-07-17 13:51:14 -04:00
Mike Reeves 7fad710ca1 fix other OS installs 2023-07-17 13:51:01 -04:00
Mike Reeves 8d6c2600c9 fix other OS installs 2023-07-17 13:49:08 -04:00
Mike Reeves 38c7ea0801 fix other OS installs 2023-07-17 13:44:02 -04:00
Mike Reeves abe0a9ec27 fix other OS installs 2023-07-17 11:03:28 -04:00
Mike Reeves f0f8513370 fix other OS installs 2023-07-17 11:02:34 -04:00
Mike Reeves bffd24e0d5 fix other OS installs 2023-07-17 10:55:04 -04:00
Mike Reeves 71cbab8fcc fix other OS installs 2023-07-17 10:47:24 -04:00
weslambert 6816d06710 Merge pull request #10766 from Security-Onion-Solutions/fix/elastic-agent-scripts
Add agent scripts
2023-07-17 10:46:54 -04:00
Wes d19615f743 Fix typo 2023-07-17 14:42:27 +00:00
Mike Reeves 894e009b95 fix other OS installs 2023-07-17 10:34:14 -04:00
Wes 1a4515fc8a Split restart into stop and start 2023-07-17 14:30:51 +00:00
Wes 31696803e1 Use correct name 2023-07-17 14:28:12 +00:00
Wes e715dfa354 Remove sbin 2023-07-17 14:27:39 +00:00
Wes c723a09107 Remove agent installer generation script 2023-07-14 21:45:25 +00:00
Wes 8cf3ceeb71 Update agent scripts 2023-07-14 21:43:03 +00:00
Mike Reeves 921fc95668 Fix logic 2023-07-14 14:35:51 -04:00
Doug Burks 9e42fb927d Add RPM-GPG-KEY-oracle 2023-07-14 14:04:36 -04:00
Mike Reeves 87d72e852c Fix logic 2023-07-14 13:45:31 -04:00
m0duspwnens ba2782c5e7 patch x509_v2.py 2023-07-14 13:22:40 -04:00
Mike Reeves 9169fca9f8 Merge branch '2.4/dev' into centos 2023-07-14 13:17:52 -04:00
Mike Reeves 1028fb1346 Fix ISO install 2023-07-14 13:17:20 -04:00
Josh Brower 6846487909 Merge pull request #10765 from Security-Onion-Solutions/2.4/FleetEnhancements
Retry install
2023-07-14 13:07:25 -04:00
Josh Brower 2cc0c4c0ac Automatically Update ES URLs 2023-07-14 12:07:32 -04:00
Mike Reeves 5a5b643155 Fix ISO install 2023-07-14 12:04:30 -04:00
Josh Patterson e97bec2bc1 Merge pull request #10769 from Security-Onion-Solutions/wtinstalltype
Wtinstalltype
2023-07-14 09:22:40 -04:00
Josh Brower 78db64a419 Auto-managed Fleet Server URLs 2023-07-14 08:40:26 -04:00
m0duspwnens 55d32c5b98 merge and fix conflicts 2023-07-14 08:37:03 -04:00
Mike Reeves 333213d1dd Multi OS Support 2023-07-13 18:40:48 -04:00
Mike Reeves 03b16a5582 Multi OS Support 2023-07-13 18:29:02 -04:00
Mike Reeves 20c76abac4 Multi OS Support 2023-07-13 18:27:21 -04:00
m0duspwnens 4158e18675 warn of unsupported os 2023-07-13 16:38:51 -04:00
Mike Reeves f0c391e801 Multi OS Support 2023-07-13 15:05:51 -04:00
weslambert 922a77ac55 Merge pull request #10762 from Security-Onion-Solutions/fix/integration_elasticsearch
Allow Elasticsearch integration policy
2023-07-13 14:42:23 -04:00
weslambert a62f96595c Merge pull request #10763 from Security-Onion-Solutions/fix/strelka_pe
Strelka entropy and pe fixes
2023-07-13 14:42:12 -04:00
Josh Brower fb8a79e112 Retry install 2023-07-13 13:15:01 -04:00
Mike Reeves 782a3eccfe Initial Oracle support 2023-07-13 11:29:18 -04:00
Mike Reeves 2c996fe7ad Initial Oracle support 2023-07-13 10:54:04 -04:00
weslambert 0c177ec923 Allow Elasticsearch integration policy 2023-07-13 10:46:59 -04:00
Wes 41f00c0aa1 Add agent scripts 2023-07-13 14:32:22 +00:00
Mike Reeves 05b30771c5 Initial Oracle support 2023-07-13 10:29:06 -04:00
Wes e3249c8e4c Wrap values in quotes for proper conversion 2023-07-13 14:18:57 +00:00
Mike Reeves a0b6e1076f Initial Oracle support 2023-07-13 10:04:55 -04:00
weslambert 85bb5a327c Fix long vs float for pe version 2023-07-13 09:38:09 -04:00
Mike Reeves 68f5c9965a Initial Oracle support 2023-07-13 09:24:01 -04:00
Mike Reeves 727d0443a2 Merge pull request #10757 from Security-Onion-Solutions/TOoSmOotH-patch-5
Update VERSION
2023-07-13 08:53:35 -04:00
Mike Reeves b915cea52f Initial Oracle support 2023-07-13 08:44:20 -04:00
Mike Reeves d98a1d5ae5 Initial Oracle support 2023-07-13 08:40:09 -04:00
Josh Brower 6f5bb136ff Merge pull request #10753 from Security-Onion-Solutions/2.4/integrationfixes
Update Integration JSON
2023-07-13 07:34:32 -04:00
Mike Reeves 695ec149f1 Initial Oracle support 2023-07-12 15:07:26 -04:00
Mike Reeves 50103aebb3 Initial Oracle support 2023-07-12 14:59:36 -04:00
Mike Reeves 6f81e234cd Initial Oracle support 2023-07-12 14:52:23 -04:00
Mike Reeves 7732435b64 Initial Oracle support 2023-07-12 14:49:59 -04:00
Mike Reeves 2cf36f1e8f Initial Oracle support 2023-07-12 14:12:24 -04:00
Mike Reeves 43d63a3187 Update VERSION 2023-07-12 10:59:12 -04:00
Mike Reeves 37116a9bdd Merge pull request #10755 from Security-Onion-Solutions/2.4/dev
2.4.3
2023-07-12 10:57:42 -04:00
Jason Ertel 6297a2632b Merge pull request #10756 from Security-Onion-Solutions/kilo
catch up branch
2023-07-12 10:38:18 -04:00
Jason Ertel 5cc752f128 Merge branch '2.4/main' into 2.4/dev 2023-07-12 10:19:39 -04:00
Mike Reeves 68d95cd1cb Merge pull request #10754 from Security-Onion-Solutions/2.4.3
2.4.3
2023-07-12 10:05:31 -04:00
Mike Reeves 1a68c3cd24 2.4.3 2023-07-12 10:02:19 -04:00
Josh Brower 40294e2762 Update Integration JSON 2023-07-12 08:49:36 -04:00
Josh Patterson 87eec4ae88 Merge pull request #10751 from Security-Onion-Solutions/yararules
Yararules
2023-07-11 15:55:00 -04:00
m0duspwnens 676696b24a restart strelka backend if rules change 2023-07-11 15:48:22 -04:00
m0duspwnens da27fce95f run so-yara-download/update if scripts change 2023-07-11 13:48:26 -04:00
weslambert 8acc37a7d1 Merge pull request #10749 from Security-Onion-Solutions/fix/yara_update
Fix syntax for conditional
2023-07-11 13:41:38 -04:00
weslambert 5f1b467e64 Fix syntax for conditional 2023-07-11 13:37:50 -04:00
weslambert fe7fb7f54d Merge pull request #10748 from Security-Onion-Solutions/fix/elasticsearch_strelka
Update logic for YARA matches
2023-07-11 13:02:24 -04:00
Wes 577bfac886 Update logic for YARA matches 2023-07-11 17:00:13 +00:00
Josh Patterson 468b6e4831 Merge pull request #10741 from Security-Onion-Solutions/m0duspwnens-patch-1
import ELASTICFLEETMERGED
2023-07-11 11:04:26 -04:00
Josh Patterson c75d209d7f import ELASTICFLEETMERGED 2023-07-11 11:01:27 -04:00
Josh Brower b29b264d5c Merge pull request #10740 from Security-Onion-Solutions/2.4/removecomments
Remove Comments
2023-07-11 10:28:41 -04:00
Josh Brower c99e7da5a7 Remove Comments 2023-07-11 10:26:18 -04:00
Josh Patterson 60d66b973c Merge pull request #10739 from Security-Onion-Solutions/yararules
include *.yara
2023-07-11 10:21:35 -04:00
m0duspwnens 304830d2ee remove old rules prior to copy 2023-07-11 10:20:04 -04:00
m0duspwnens d7285d69a7 include *.yara 2023-07-11 09:59:13 -04:00
weslambert 7cdd1f89d7 Merge pull request #10736 from Security-Onion-Solutions/fix/strelka_path
Change path to old one
2023-07-11 09:13:36 -04:00
weslambert b7cab1d118 Change path to old one 2023-07-11 09:10:20 -04:00
weslambert f03a472ee5 Merge pull request #10731 from Security-Onion-Solutions/fix/kibana_file_search
Kibana dashboard changes
2023-07-11 08:50:03 -04:00
Mike Reeves c7a0801eed Merge pull request #10725 from Security-Onion-Solutions/yararules
Yararules
2023-07-11 08:49:20 -04:00
Josh Brower 5e0015e9ac Merge pull request #10735 from Security-Onion-Solutions/2.4/TagPlaybookAlerts
2.4/tag playbook alerts
2023-07-11 08:37:37 -04:00
Josh Brower 5a72c558cb Tag at top level 2023-07-11 08:35:47 -04:00
Josh Brower a6e907f76c Tag Playbook Alerts 2023-07-11 08:03:15 -04:00
Mike Reeves a3f79850fe Initial Oracle support 2023-07-10 20:31:49 -04:00
Josh Brower 2d3eb22057 Merge pull request #10732 from Security-Onion-Solutions/2.4/autogenfix
Exclude Import and Eval from autoupdate
2023-07-10 17:18:10 -04:00
Josh Brower 8437fcd94c Exclude Import and Eval from autoupdate 2023-07-10 17:10:08 -04:00
Josh Brower 1b25db4573 Merge pull request #10680 from Security-Onion-Solutions/2.4/fleetautogen
Automatically manage Fleet Logstash Config
2023-07-10 16:26:20 -04:00
m0duspwnens f8ed2e6e8e make parent dirs 2023-07-10 16:11:45 -04:00
m0duspwnens f22c61a0a2 use su instead of runuser since logCmd has issues with runuser 2023-07-10 15:19:41 -04:00
m0duspwnens 5069d1163c only *.yar files 2023-07-10 14:36:34 -04:00
Josh Brower 31edf2e8ea Tighten & Document Pipelines 2023-07-10 14:17:42 -04:00
Wes 6b8893ded5 Update saved objects 2023-07-10 18:13:34 +00:00
m0duspwnens 1f8b7bda89 fix output_dir var 2023-07-10 13:39:31 -04:00
Mike Reeves b9204cbe99 Initial RHEL support 2023-07-10 12:57:59 -04:00
m0duspwnens 59233d6550 use full path 2023-07-10 11:43:56 -04:00
m0duspwnens 1ac72e5b24 ensure /nsm/rules/yara directory exists 2023-07-10 11:10:37 -04:00
Josh Brower 7805ca8beb Add Failover Support 2023-07-10 10:38:14 -04:00
m0duspwnens 47b2481cdd nothing in strelka/tools/sbin_jinja to file.recurse 2023-07-10 10:29:19 -04:00
m0duspwnens fa933d3f53 use file_mode 2023-07-10 10:26:30 -04:00
Mike Reeves 6f7914f3c4 Initial RHEL support 2023-07-10 10:18:09 -04:00
Mike Reeves 0c9e230294 Initial RHEL support 2023-07-10 10:14:47 -04:00
m0duspwnens f4dc73a206 yara download and update 2023-07-10 09:42:37 -04:00
Doug Burks 437c9cab68 Merge pull request #10726 from Security-Onion-Solutions/dougburks-patch-1
Update README.md
2023-07-10 09:07:11 -04:00
Wes 6da96a733f Use tags instead of dataset 2023-07-10 13:06:38 +00:00
Doug Burks 82796370ce Update README.md 2023-07-10 09:04:55 -04:00
Josh Brower 8c16feb772 Rename Fleet pipelines 2023-07-09 12:22:55 -04:00
Josh Brower ce1f363424 Allow base_url 2023-07-08 13:30:19 -04:00
Josh Brower e8860a7d2c Fix perms 2023-07-08 09:04:55 -04:00
Josh Brower beb26596fd Merge remote-tracking branch 'origin/2.4/dev' into 2.4/fleetautogen 2023-07-07 19:12:47 -04:00
m0duspwnens 6a5ff04804 remove unneeded function 2023-07-07 16:45:51 -04:00
Josh Brower ff3bb11fbb Elastic Fleet Certs Refactor 2023-07-07 16:44:16 -04:00
m0duspwnens 8be5082b60 yara scripts 2023-07-07 16:43:26 -04:00
coreyogburn 5faa4f0a30 Merge pull request #10720 from Security-Onion-Solutions/cogburn/8908
Allow an additional kratos endpoint through
2023-07-07 13:17:32 -06:00
Corey Ogburn da7770a900 Allow an additional kratos endpoint through
The /auth/self-service/errors route is used to lookup auth issues so the route must also be proxied to kratos.
2023-07-07 12:47:55 -06:00
weslambert 8178338971 Merge pull request #10717 from Security-Onion-Solutions/fix/strelka_rules
Change path
2023-07-07 13:45:02 -04:00
weslambert 79ed17b506 Change path 2023-07-07 13:31:43 -04:00
Mike Reeves fa1d53a309 Add Debian 2023-07-07 13:00:39 -04:00
Mike Reeves a41b0dbfea Add Debian 2023-07-07 12:59:41 -04:00
Mike Reeves d28375b304 Add Debian 2023-07-07 12:54:47 -04:00
Mike Reeves 07c0b539d7 Add Debian 2023-07-07 12:53:23 -04:00
Mike Reeves d18ebd6e36 Add Debian 2023-07-07 12:52:45 -04:00
Mike Reeves 5a642b151b Add Debian 2023-07-07 12:51:17 -04:00
Mike Reeves 0aa4ea3e87 Add Debian 2023-07-07 12:49:11 -04:00
Mike Reeves efcef90ead Add Debian 2023-07-07 11:37:33 -04:00
Mike Reeves af56aa4f16 Add Debian 2023-07-07 11:35:11 -04:00
Mike Reeves d5257468eb Add Debian 2023-07-07 11:31:18 -04:00
Mike Reeves a3b0db7949 Add Debian 2023-07-07 11:27:42 -04:00
Mike Reeves 5f509eb2d8 Add Debian 2023-07-07 11:24:59 -04:00
Mike Reeves a38d561684 Add Debian 2023-07-07 11:21:47 -04:00
Mike Reeves 4b559ec182 Add Debian 2023-07-07 11:19:36 -04:00
Mike Reeves 0b209d69e5 Add Debian 2023-07-07 11:02:26 -04:00
Josh Patterson 2785587840 Merge pull request #10714 from Security-Onion-Solutions/remove_so-logstash-get-unparsed
remove so-logstash-get-unparsed, use so-redis-count instead
2023-07-07 09:53:54 -04:00
weslambert 9f95306458 Merge pull request #10708 from Security-Onion-Solutions/fix/elasticsearch_templates_hn
Fix heavy node Elasticsearch template load
2023-07-07 09:52:54 -04:00
m0duspwnens 55bed0771b remove so-logstash-get-unparsed, use so-redis-count instead 2023-07-07 09:52:21 -04:00
Wes 0b5ee49873 Fix inverted logic for component template 2023-07-06 20:46:35 +00:00
Jason Ertel 1646459052 Merge pull request #10707 from Security-Onion-Solutions/kilo
add default pillar file
2023-07-06 14:49:40 -04:00
Jason Ertel 8ec003d89f add default pillar file 2023-07-06 14:47:21 -04:00
Jason Ertel 224f0606c2 Merge pull request #10706 from Security-Onion-Solutions/kilo
incorporate features pillar
2023-07-06 14:04:12 -04:00
Wes 910125f13a Restructure logic 2023-07-06 17:49:06 +00:00
Jason Ertel 5eca1acbeb incorporate features pillar 2023-07-06 13:24:45 -04:00
Wes d551faeb16 Heavy node template considerations 2023-07-06 17:19:28 +00:00
Josh Patterson 6a6afeef75 Merge pull request #10704 from Security-Onion-Solutions/patch/x509_v2
Patch/x509 v2
2023-07-06 11:43:33 -04:00
m0duspwnens 869f60ccaa cipher deprecated for x509_+v2 2023-07-06 10:51:44 -04:00
m0duspwnens 12c82d2812 bits deprecation to keysize 2023-07-06 10:49:32 -04:00
m0duspwnens a2b50c6d40 remove quote 2023-07-06 10:25:19 -04:00
m0duspwnens ab7ae6cddd fix cp for x509_v2.py 2023-07-06 10:17:14 -04:00
m0duspwnens 7a9a12ae3d fix cp for x509_v2.py 2023-07-06 10:03:12 -04:00
m0duspwnens b49a296276 we can remove the unless in ssl state since x509_v2 is patched 2023-07-06 09:44:58 -04:00
Josh Patterson 9b9321d23a Merge pull request #10698 from Security-Onion-Solutions/issue/10468
disable salt schedule after highstate then enable later in setup
2023-07-05 14:56:31 -04:00
m0duspwnens 1922ad95d5 disable salt schedule after highstate then enable later in setup 2023-07-05 13:43:54 -04:00
Josh Patterson 11493cb615 Merge pull request #10697 from Security-Onion-Solutions/jppcentos
Jppcentos
2023-07-05 09:52:01 -04:00
m0duspwnens 0def41f03c Merge remote-tracking branch 'origin/centos' into jppcentos 2023-07-05 08:44:49 -04:00
Mike Reeves 1c191e426f Add some Ubuntu 2023-07-03 16:20:44 -04:00
m0duspwnens de98baaad4 Merge remote-tracking branch 'origin/centos' into jppcentos 2023-07-03 15:46:30 -04:00
m0duspwnens df0e19ff80 update-alternatives for python3.10 2023-07-03 15:44:51 -04:00
Mike Reeves d22d864ba6 Add some Ubuntu 2023-07-03 15:23:56 -04:00
Mike Reeves 898b352af9 Add some Ubuntu 2023-07-03 15:16:12 -04:00
Mike Reeves 76a8e315b7 Add some Ubuntu 2023-07-03 15:12:56 -04:00
Mike Reeves edaf695463 Add some Ubuntu 2023-07-03 15:12:55 -04:00
Mike Reeves 53fcac4a02 Add some Ubuntu 2023-07-03 15:12:55 -04:00
Mike Reeves 44054ba95f Add some Ubuntu 2023-07-03 15:12:54 -04:00
Mike Reeves 10aa77977e Add some Ubuntu 2023-07-03 15:12:54 -04:00
Mike Reeves 8e90658856 Add some Ubuntu 2023-07-03 15:12:54 -04:00
Mike Reeves 965d0543f4 Add some Ubuntu 2023-07-03 15:12:53 -04:00
Mike Reeves e353855855 Add some Ubuntu 2023-07-03 15:12:53 -04:00
Mike Reeves c54217a8cb Add some Ubuntu 2023-07-03 15:12:52 -04:00
Mike Reeves 710b3bac3d fix repo state 2023-07-03 15:12:52 -04:00
Mike Reeves 8a90579df7 fix repo state 2023-07-03 15:12:51 -04:00
Mike Reeves 39c8766914 fix repo state 2023-07-03 15:12:51 -04:00
Mike Reeves 694ea743cc add more OS logic 2023-07-03 15:12:51 -04:00
Mike Reeves 3d9e7d1e97 add fuse 2023-07-03 15:12:50 -04:00
Mike Reeves ca71c00f1c add fuse 2023-07-03 15:12:50 -04:00
Mike Reeves 2f2394dca2 add OS logic 2023-07-03 15:12:49 -04:00
Mike Reeves fee4c20912 add OS logic 2023-07-03 15:12:49 -04:00
Mike Reeves 03342fd477 Add more packages 2023-07-03 15:12:49 -04:00
Mike Reeves 6dbff3b9df Add more packages 2023-07-03 15:12:48 -04:00
Mike Reeves 2f375b89a8 Add more packages 2023-07-03 15:12:48 -04:00
Mike Reeves f67ac80c56 Add more packages 2023-07-03 15:12:47 -04:00
Mike Reeves b06a35099f Add more packages 2023-07-03 15:12:47 -04:00
Mike Reeves 087099b9b6 Fix keys 2023-07-03 15:12:47 -04:00
Mike Reeves 04fe2ca996 Fix gpg things 2023-07-03 15:12:46 -04:00
Mike Reeves bdb5748b44 Fix whiptail logic 2023-07-03 15:12:46 -04:00
Mike Reeves 1cbe5580a6 Fix whiptail logic 2023-07-03 15:12:45 -04:00
Mike Reeves b57674a7cc Fix syntax error 2023-07-03 15:12:45 -04:00
Mike Reeves 53bd7bcc29 Initial Support 2023-07-03 15:12:45 -04:00
Mike Reeves 6787b97c6a Initial Support 2023-07-03 15:12:44 -04:00
m0duspwnens 0d43f9aaf4 add repo noninteractively 2023-07-03 14:23:24 -04:00
Mike Reeves 40540f47bf Add some Ubuntu 2023-07-03 13:51:01 -04:00
Mike Reeves 24e05c9491 Add some Ubuntu 2023-07-03 13:45:04 -04:00
Mike Reeves 02c9465dfb Add some Ubuntu 2023-07-03 12:30:53 -04:00
Mike Reeves a4d484ea47 Add some Ubuntu 2023-07-03 12:00:57 -04:00
Mike Reeves c9d650f4c8 Add some Ubuntu 2023-07-03 11:59:07 -04:00
Josh Patterson 9de8814412 Merge pull request #10692 from Security-Onion-Solutions/issue/10545
Issue/10545
2023-07-03 11:05:55 -04:00
Josh Brower 35e7659904 Merge remote-tracking branch 'remotes/origin/2.4/dev' into 2.4/fleetautogen 2023-07-03 10:36:29 -04:00
Mike Reeves ed1d2d0a8b Add some Ubuntu 2023-07-03 10:06:16 -04:00
Mike Reeves 903de330c2 Add some Ubuntu 2023-07-03 09:49:24 -04:00
Mike Reeves 8621352701 Add some Ubuntu 2023-07-03 09:38:23 -04:00
Mike Reeves 564ab105ba Add some Ubuntu 2023-07-02 09:34:14 -04:00
Mike Reeves b637e27c8d Merge branch '2.4/dev' of github.com:Security-Onion-Solutions/securityonion into centos 2023-07-02 09:13:06 -04:00
weslambert d31ea4097d Merge pull request #10683 from Security-Onion-Solutions/fix/kibana_http_search
Kibana dashboard changes
2023-06-30 17:17:37 -04:00
Wes c277b7acfa Change Zeek file from evet dataset to tags 2023-06-30 20:24:10 +00:00
m0duspwnens 97a9e0989d Merge remote-tracking branch 'origin/2.4/dev' into issue/10545 2023-06-30 15:46:41 -04:00
Wes 6bdccec6b1 Add asterisk back to Modbus search 2023-06-30 19:01:53 +00:00
m0duspwnens 35945ed224 create local logrotate pillar dir 2023-06-30 14:43:00 -04:00
m0duspwnens 7319d7ae9b replace . with _x_ 2023-06-30 14:18:20 -04:00
Wes 8b38cbe8cf Fix Modbus since the previous fix was reverted 2023-06-30 17:38:05 +00:00
Wes 35ea084466 Update from exported saved objects again 2023-06-30 16:55:00 +00:00
Jason Ertel c89582ffb6 Merge pull request #10685 from Security-Onion-Solutions/kilo
remove use of pipe
2023-06-30 12:23:48 -04:00
Jason Ertel d6db94a4d4 reset ver 2023-06-30 12:11:32 -04:00
Wes e2acf027a9 Update from exported saved objects 2023-06-30 16:01:50 +00:00
m0duspwnens d6d8ba7479 Merge remote-tracking branch 'origin/2.4/dev' into issue/10545 2023-06-30 11:29:25 -04:00
m0duspwnens 41a4321b03 configure logrotate through soc 2023-06-30 11:26:55 -04:00
Jason Ertel 2ae049071d Merge branch '2.4t/dev' into kilo 2023-06-30 11:10:01 -04:00
Jason Ertel e82df53997 switch version to kilo 2023-06-30 11:08:42 -04:00
Wes 273e78da94 Modbus dashboard - use asterisk 2023-06-30 15:03:20 +00:00
Wes 446376395e Modbus dashboard - use tags 2023-06-30 13:56:08 +00:00
Wes a13001dce0 PE dashboard - use tags 2023-06-30 13:40:36 +00:00
Wes 8819e1d4d6 HTTP search - use tags 2023-06-30 13:02:00 +00:00
Josh Brower 1baea3bcd5 Add Fleet to Logstash Nodes 2023-06-29 17:24:52 -04:00
Josh Patterson 1c37c05824 Merge pull request #10682 from Security-Onion-Solutions/addbackunless
add back unless in ssl state
2023-06-29 16:13:39 -04:00
m0duspwnens cd1db36c13 add back unless in ssl state 2023-06-29 15:26:16 -04:00
m0duspwnens 5898c9ef31 start of logrotate configurable via ui 2023-06-29 12:54:37 -04:00
Jason Ertel 951f04c265 remove use of pipe 2023-06-29 12:10:12 -04:00
Josh Brower 4b069d91ab Check the correct pillar 2023-06-29 11:00:34 -04:00
Mike Reeves 34ab949dfc fix repo state 2023-06-29 08:56:38 -04:00
Mike Reeves 59191008a0 fix repo state 2023-06-29 08:55:00 -04:00
Mike Reeves 17a04a75c9 fix repo state 2023-06-29 08:53:00 -04:00
Josh Brower 7561ec0512 Automatically manage Fleet Logstash Config 2023-06-29 08:52:51 -04:00
Mike Reeves 884d669ae9 add more OS logic 2023-06-29 08:48:46 -04:00
Mike Reeves 8a88b16b9e add fuse 2023-06-28 16:16:59 -04:00
Mike Reeves 6545ae588d add fuse 2023-06-28 16:10:23 -04:00
Mike Reeves 5ab54fcfc5 add OS logic 2023-06-28 16:02:25 -04:00
Mike Reeves ae4befe377 add OS logic 2023-06-28 15:57:43 -04:00
Mike Reeves 0c320e3501 Add more packages 2023-06-28 15:46:29 -04:00
Mike Reeves 933f4fa6c8 Add more packages 2023-06-28 15:45:32 -04:00
Mike Reeves d80c88f613 Add more packages 2023-06-28 15:43:56 -04:00
Mike Reeves 6d2e851a43 Add more packages 2023-06-28 15:36:51 -04:00
Mike Reeves 209aae50bc Add more packages 2023-06-28 15:32:01 -04:00
Josh Patterson eef1b40436 Merge pull request #10677 from Security-Onion-Solutions/issue/10533
Issue/10533
2023-06-28 15:17:42 -04:00
m0duspwnens 34db6fb823 dont need the unless for ssl since using x509v2 now 2023-06-28 15:06:13 -04:00
m0duspwnens eeaf077baf dont need the unless for ssl since using x509v2 now 2023-06-28 15:02:09 -04:00
m0duspwnens 120d21c0da use minion id instead of hostname for ca_server in nginx state 2023-06-28 13:52:30 -04:00
Mike Reeves 6fc988740d Fix keys 2023-06-28 13:46:25 -04:00
m0duspwnens 66457ad8f8 use watch_in instead of watch 2023-06-28 12:27:14 -04:00
m0duspwnens 69670c481d fix require logic for nginx container 2023-06-28 11:32:08 -04:00
m0duspwnens cae011babb force bool for nginx ssl replace_cert 2023-06-28 11:30:36 -04:00
m0duspwnens 02ea939abc watch crt and key for nginx container 2023-06-28 11:11:20 -04:00
m0duspwnens be028aa23e define ca_server for nginx.ssl 2023-06-28 10:58:13 -04:00
m0duspwnens 24b7f7a7ce move replace_cert under ssl for nginx defaults 2023-06-28 10:32:16 -04:00
m0duspwnens 12cce111db custom crt and key for nginx 2023-06-28 10:28:50 -04:00
weslambert add72d7a5c Merge pull request #10670 from Security-Onion-Solutions/fix/kibana_dashboards
Kibana Dashboards - Remove Wazuh reference and use tags
2023-06-28 09:41:19 -04:00
Josh Brower c7a1d4758b Merge pull request #10598 from Security-Onion-Solutions/2.4/fix-naming
Remove old var
2023-06-28 07:09:37 -04:00
Wes 8436b647dd Remove Wazuh and use tags 2023-06-27 18:05:04 +00:00
Mike Reeves 387ce22385 Fix gpg things 2023-06-27 13:57:53 -04:00
Mike Reeves cc3c28135d Fix whiptail logic 2023-06-27 12:53:18 -04:00
Mike Reeves 6b6724afcf Fix whiptail logic 2023-06-27 12:52:53 -04:00
Mike Reeves c37a179a3c Fix syntax error 2023-06-27 12:46:13 -04:00
Doug Burks 77e6ee3c36 Merge pull request #10669 from Security-Onion-Solutions/dougburks-patch-1
Update so-desktop-install
2023-06-27 09:26:44 -04:00
Doug Burks 3e71663669 Update so-desktop-install 2023-06-27 09:24:47 -04:00
Mike Reeves d519369c6f Initial Support 2023-06-26 19:22:33 -04:00
Mike Reeves 883d9560a0 Initial Support 2023-06-26 19:20:40 -04:00
Mike Reeves 984971c63c Merge pull request #10667 from Security-Onion-Solutions/desktop
Fix some installs
2023-06-26 18:51:55 -04:00
Mike Reeves 6adef20a06 Fix the rest of the analyst entries 2023-06-26 16:26:55 -04:00
Mike Reeves cb8faf7c5f Fix the rest of the analyst entries 2023-06-26 16:14:04 -04:00
Mike Reeves 740723ecd6 Fix some installs 2023-06-26 16:01:58 -04:00
Mike Reeves d70371c540 Merge pull request #10665 from Security-Onion-Solutions/desktop
Desktop Install
2023-06-26 15:42:14 -04:00
Mike Reeves b6986d5c61 Merge branch '2.4/dev' into desktop 2023-06-26 15:36:48 -04:00
Mike Reeves 02e6e11be7 so-desktop-install 2023-06-26 15:34:48 -04:00
Mike Reeves d26484fe1a so-desktop-install 2023-06-26 15:27:18 -04:00
Mike Reeves 12d10d7d42 Merge branch '2.4/dev' into desktop 2023-06-26 15:20:43 -04:00
Mike Reeves 7ea37ac2dd Merge pull request #10663 from Security-Onion-Solutions/TOoSmOotH-patch-3
Update packages.sls
2023-06-26 11:25:14 -04:00
Mike Reeves 7aae72cfcf Update packages.sls 2023-06-26 11:23:02 -04:00
Mike Reeves ec427cde08 Merge pull request #10662 from Security-Onion-Solutions/desktop
Desktop State
2023-06-26 10:48:41 -04:00
weslambert c2efd7ef64 Merge pull request #10655 from Security-Onion-Solutions/feature/supported_integrations
Restructure Elasticsearch templates for supported integrations
2023-06-26 09:43:10 -04:00
Mike Reeves 77c58e665e Merge pull request #10654 from Security-Onion-Solutions/24soup
soup updates
2023-06-26 09:26:47 -04:00
Mike Reeves 9530901d1d Remove local file check 2023-06-26 09:09:55 -04:00
Doug Burks e83afa3e30 Merge pull request #10660 from Security-Onion-Solutions/dougburks-patch-1
Update README.md
2023-06-26 08:33:22 -04:00
Doug Burks 70fb28a8b3 Update README.md 2023-06-26 08:31:41 -04:00
Josh Brower 8355432356 Merge pull request #10657 from Security-Onion-Solutions/2.4/policy-name-fix
2.4/policy name fix
2023-06-24 19:00:00 -04:00
Josh Brower 2247cafe5f Change policy name 2023-06-24 17:13:28 -04:00
Josh Brower 85a8da6331 Change policy name 2023-06-24 16:58:36 -04:00
Josh Brower ddabab253c Merge pull request #10653 from Security-Onion-Solutions/2.4/heavynode
2.4/heavynode
2023-06-23 19:55:24 -04:00
Jason Ertel 2e42eddbc2 Merge pull request #10656 from Security-Onion-Solutions/jertel/fix-import
fix agent extract error during install; simplify logic
2023-06-23 17:21:39 -04:00
Jason Ertel 07a590dda8 fix agent extract error during install; simplify logic 2023-06-23 17:17:59 -04:00
Mike Reeves ec8eac3430 soup fix 2023-06-23 17:05:41 -04:00
weslambert 05b84327b8 Fix typo 2023-06-23 16:32:57 -04:00
Mike Reeves 0607532e4a soup fix 2023-06-23 16:20:41 -04:00
Mike Reeves 3018886f72 soup fix 2023-06-23 16:13:04 -04:00
weslambert e02bdffe34 Fix typos 2023-06-23 16:10:22 -04:00
Mike Reeves 5073d62ee8 soup fix 2023-06-23 16:09:57 -04:00
weslambert e2ff48164b Only load if so-elastic-fleet-common exists 2023-06-23 16:03:58 -04:00
Mike Reeves 43832f9c34 soup fix 2023-06-23 16:03:51 -04:00
Mike Reeves 5da5a04025 soup fix 2023-06-23 16:00:02 -04:00
Mike Reeves 25b51135fc soup fix 2023-06-23 15:58:20 -04:00
weslambert aa91c1fef2 Add empty object for index_settings 2023-06-23 15:57:30 -04:00
Mike Reeves 801a5a6824 soup fix 2023-06-23 15:56:15 -04:00
Mike Reeves f63c26b7f2 soup fix 2023-06-23 15:50:54 -04:00
Josh Brower 336a40d646 Merge remote-tracking branch 'remotes/origin/2.4/dev' into 2.4/heavynode 2023-06-23 15:50:14 -04:00
Josh Brower bb0cfc5253 Create & assign Heavy Node Fleet Policy 2023-06-23 15:49:03 -04:00
coreyogburn 106aaa9c3e Merge pull request #10652 from Security-Onion-Solutions/cogburn/10122
FIX: Exclude System logs from Hunt/Dashboard Queries.
2023-06-23 13:48:17 -06:00
weslambert ff7db0be63 Remove old index settings 2023-06-23 15:31:11 -04:00
Wes b96d3473f2 Fix indentation 2023-06-23 18:38:04 +00:00
Corey Ogburn fb27e7c479 Also add to dashboard
Duplicate new queryToggleFilter from hunt to dashboard.
2023-06-23 11:30:26 -06:00
Corey Ogburn 261acee8a0 New Hunt queryToggleFilter
New filter to exclude soc logs from hunt results.
2023-06-23 11:30:26 -06:00
Josh Brower a9585b2a7f Fix Elastic Agent for Heavy 2023-06-23 10:45:58 -04:00
Wes 62fa15c63e Add more templates 2023-06-23 14:43:15 +00:00
weslambert e995576b1d Remove extra templates 2023-06-23 09:41:49 -04:00
Jason Ertel d247c9d704 Merge pull request #10648 from Security-Onion-Solutions/jertel/fix-import
use cluster-unique password for import encryption
2023-06-23 09:40:26 -04:00
Jason Ertel b21b545756 use cluster-unique password for import encryption 2023-06-23 09:37:41 -04:00
Wes 5e8748c436 Load Elasticsearch templates 2023-06-23 13:28:01 +00:00
Wes e2cca917c1 Add package load command to Fleet setup 2023-06-23 13:26:06 +00:00
Wes d8700137d2 Add updated so-elasticsearch-templates-load 2023-06-23 13:23:29 +00:00
Wes 2c42d4b19e Add package check to so-elasticsearch-templates-load 2023-06-23 13:22:51 +00:00
Wes a3c7e40c40 Add package load command 2023-06-23 13:20:05 +00:00
Wes 94fe456e28 Add package functions 2023-06-23 13:19:20 +00:00
Wes 662db41857 Add default packages 2023-06-23 13:17:38 +00:00
Jason Ertel 7623dd20b9 Merge pull request #10644 from Security-Onion-Solutions/cogburn/salt-relay-fix
WIP: Fix `salt cmd.run` commands for importing
2023-06-22 20:31:19 -04:00
Corey Ogburn 2b323ab661 Fix salt cmd.run commands for importing
Functional and easy to read.
2023-06-22 17:30:56 -06:00
Josh Brower 8de01625a8 Add Elastic Agent container for Heavy Nodes 2023-06-22 16:02:42 -04:00
Josh Brower d0d7ab57ca Add Elastic Agent container for Heavy Nodes 2023-06-22 16:02:17 -04:00
Jason Ertel f4cbe20ddf Merge pull request #10641 from Security-Onion-Solutions/jertel/fix-import
fix quotations
2023-06-22 14:46:41 -04:00
Jason Ertel 0d92a1594a fix quotations 2023-06-22 14:41:39 -04:00
m0duspwnens daaead618e Merge remote-tracking branch 'origin/2.4/dev' into 2.4/heavynode 2023-06-22 13:26:56 -04:00
m0duspwnens 19469205e1 include eval and import in so-elasticsearch-cluster-settings 2023-06-22 13:12:47 -04:00
Jason Ertel cae9e6230f Merge pull request #10638 from Security-Onion-Solutions/cogburn/import-fix
Change upload path
2023-06-22 13:04:22 -04:00
m0duspwnens 6c4c815683 change so-elasticsearch-cluster settings to include heavynode, and only run on managers 2023-06-22 13:04:20 -04:00
Corey Ogburn 6769386c86 Change upload path 2023-06-22 10:59:24 -06:00
m0duspwnens 36272efda7 create ES_LOGSTASH_NODES which removes heavynodes 2023-06-22 09:46:42 -04:00
weslambert 6b97d07a89 Merge pull request #10629 from Security-Onion-Solutions/fix/elasticsearch_ingest_suricata_xff_ip
Parse xff
2023-06-22 08:45:58 -04:00
coreyogburn da82395dcf Merge pull request #10633 from Security-Onion-Solutions/cogburn/10413
Cogburn/10413
2023-06-21 15:48:53 -06:00
Corey Ogburn b5e5bd57ad Fix for Upload Import
Needed to mount /nsm/soc/uploads into soc container.

Made the upload route configurable.

Added gpg logging to salt-relay.
2023-06-21 15:41:16 -06:00
Josh Patterson ad4fb52b81 Merge pull request #10631 from Security-Onion-Solutions/2.4/repos
2.4/repos
2023-06-21 16:06:30 -04:00
m0duspwnens 4e849ecc90 issues with exclude rocky-repos 2023-06-21 15:14:53 -04:00
weslambert 7e37cd0f05 Parse xff 2023-06-21 14:29:54 -04:00
Mike Reeves 3952c1a9b7 Fix desktop state 2023-06-21 13:52:10 -04:00
Mike Reeves c13c37f406 Fix desktop state 2023-06-21 13:49:01 -04:00
Mike Reeves 9240c3c6f0 Fix desktop package list 2023-06-21 13:42:51 -04:00
Mike Reeves 2aa01280e7 Fix desktop package list 2023-06-21 13:34:47 -04:00
m0duspwnens 1675b787bf exclude rocky-repos and remove files 2023-06-21 13:27:34 -04:00
Mike Reeves 4866eb2315 Fix desktop package list 2023-06-21 12:52:42 -04:00
Mike Reeves f785fb2772 Fix desktop package list 2023-06-21 12:27:15 -04:00
Mike Reeves 8c9f863808 Fix desktop package list 2023-06-21 12:22:03 -04:00
Mike Reeves 1751e35121 Fix desktop package list 2023-06-21 12:20:57 -04:00
Mike Reeves 6676afc7de Fix desktop package list 2023-06-21 12:19:48 -04:00
Mike Reeves 699ea1ac3e Fix desktop package list 2023-06-21 11:48:37 -04:00
Mike Reeves 90fdb9c465 Update paths 2023-06-21 11:47:22 -04:00
Mike Reeves 48291f5271 Merge branch '2.4/dev' of https://github.com/Security-Onion-Solutions/securityonion into desktop 2023-06-21 11:43:05 -04:00
Mike Reeves 3a41b090c1 Update paths 2023-06-21 11:42:51 -04:00
Josh Brower 139b36b189 Merge pull request #10627 from Security-Onion-Solutions/2.4/import-evtx
Refactor EVTX Import
2023-06-21 11:42:10 -04:00
Josh Brower 6ddf887342 Refactor EVTX Import 2023-06-21 09:32:42 -04:00
Josh Brower 6ba9e057a9 Merge pull request #10600 from Security-Onion-Solutions/fix/dataset_tags
Change format of event dataset and assign dataset to tags
2023-06-21 09:22:40 -04:00
Mike Reeves 6600484f8e Update Docker 2023-06-21 09:15:31 -04:00
Mike Reeves b02c38175c Merge pull request #10624 from Security-Onion-Solutions/TOoSmOotH-patch-2
Salt Defunct Workaround
2023-06-20 17:44:53 -04:00
Mike Reeves 4497f6561f Salt Defunct Workaround
This can be removed once they patch salt
2023-06-20 17:27:02 -04:00
Mike Reeves 0fc03baf58 Desktop Packages 2023-06-20 13:41:10 -04:00
coreyogburn fb81c6e2e3 Merge pull request #10601 from Security-Onion-Solutions/cogburn/10413
Cogburn/10413
2023-06-20 11:08:53 -06:00
Corey Ogburn ad28ea275f Better state management
When salt-cp runs it's course and finds it can't send a file, it outputs a report saying as much but the exit code will be zero. Now we remove the filename and node from the response and look for `True` to know if it succeeded. Also, respect the cleanup flag on success or failure.

Check the status of the decryption process before importing.

No longer decrypt locally, issue salt command for the remote client to do the decrypting.
2023-06-20 09:41:14 -06:00
Corey Ogburn 41951659ec Use importer's new --json flag.
Using the new --json flag is not only more reliable than using a regex, the way the import script was written even re-imports will provide a url. This means that in more cases we can provide the results to the users (even if nothing changed).
2023-06-20 09:41:14 -06:00
Corey Ogburn 451a4784a1 send-file and import-file security
Encrypt the file with a passphrase before sending and decrypt the file with the same passphrase before importing.
2023-06-20 09:41:14 -06:00
Corey Ogburn 1b7095fa81 Improved import-file url regex
sed doesn't remove ALL whitespace, only newlines. It's better to stop at the first whitespace than to stop at a particular, maybe-not-last query string parameter.
2023-06-20 09:41:14 -06:00
Corey Ogburn 89d789fe0f New folder for salt to maintain
This folder is where a manager will initially store uploaded PCAP/EVTX files before sending to sensors. Sensors will store uploads in this folder on their own system.
2023-06-20 09:41:14 -06:00
Corey Ogburn 49055e260f salt-relay import-file reporting
On successful import, return dashboard URL
2023-06-20 09:41:14 -06:00
Corey Ogburn a465039887 2 new capabilities: send-file and import-file 2023-06-20 09:41:14 -06:00
Doug Burks b60cf29598 Merge pull request #10618 from Security-Onion-Solutions/dougburks-patch-1
Resolve conflicts with dataset PR
2023-06-20 07:42:30 -04:00
Doug Burks 0e09d73aa0 Resolve conflicts with dataset PR 2023-06-20 07:40:10 -04:00
Doug Burks 520a5671ca Merge pull request #10617 from Security-Onion-Solutions/dougburks-patch-1
Fix SOC Auth queries in Dashboards and Hunt
2023-06-20 07:32:46 -04:00
Doug Burks fc824359ed Update default fields for kratos.audit 2023-06-20 07:30:56 -04:00
Doug Burks 7caa7cec6b Fix SOC Auth queries in Dashboards and Hunt
Change `event.dataset:audit` to `event.dataset:kratos.audit`.
2023-06-20 07:13:33 -04:00
Josh Patterson 0695140f83 Merge pull request #10611 from Security-Onion-Solutions/2.4/ubuntu
2.4/ubuntu
2023-06-16 14:00:52 -04:00
m0duspwnens ed1e2c8908 ignore failure notification for Ubuntu Failed to restart snapd 2023-06-16 13:58:45 -04:00
Jason Ertel 594900a8d4 Merge pull request #10609 from Security-Onion-Solutions/kilo
webauthn for SOC
2023-06-16 13:15:25 -04:00
Jason Ertel 6894fa4e4d Update VERSION 2023-06-16 13:09:01 -04:00
m0duspwnens 2334d82d36 fix salt install for ubuntu 2023-06-16 11:13:34 -04:00
Josh Patterson c0a2ea3138 Merge pull request #10604 from Security-Onion-Solutions/2.4/receiver
2.4/receiver
2023-06-15 15:42:34 -04:00
m0duspwnens d4acb1a33a Merge remote-tracking branch 'origin/2.4/dev' into 2.4/receiver 2023-06-15 15:32:49 -04:00
m0duspwnens 5de9e5baf4 allow sensor to logstash on receiver 2023-06-15 14:46:46 -04:00
Wes 3a34da354f Use append instead of set 2023-06-15 16:35:43 +00:00
m0duspwnens 469390696e 2.4 receiver changes 2023-06-15 11:04:16 -04:00
Josh Brower 0a4a48b61e Remove old var 2023-06-15 10:24:50 -04:00
Wes 58a63e0765 Remove extra comma 2023-06-15 14:22:37 +00:00
Doug Burks 251bc6f45e Merge pull request #10597 from Security-Onion-Solutions/dougburks-patch-1
Update so_motd.jinja
2023-06-15 09:59:25 -04:00
Doug Burks b84d997f87 Update so_motd.jinja 2023-06-15 09:54:23 -04:00
Wes b5bccc5e05 Use module in dataset name and add dataset tag 2023-06-15 13:06:57 +00:00
Jason Ertel b4e5ac9796 Add note to advise against changing settings 2023-06-14 16:11:50 -04:00
m0duspwnens 2db95fe1b4 fw rules for receiver to managers 2023-06-14 15:24:14 -04:00
m0duspwnens 934b0f45a1 allow receiver to connect to salt manager 2023-06-14 15:08:07 -04:00
Jason Ertel a88227d13f Merge branch '2.4/dev' into kilo 2023-06-14 13:34:15 -04:00
Jason Ertel 21a7b76352 webauthn 2023-06-14 13:33:31 -04:00
weslambert 03082339ca Merge pull request #10592 from Security-Onion-Solutions/fix/analyzer_dependencies
Update analyzer dependencies
2023-06-14 12:22:06 -04:00
m0duspwnens 8f6226b531 Merge remote-tracking branch 'origin/2.4/dev' into 2.4/heavynode 2023-06-14 10:40:22 -04:00
m0duspwnens 2c4eccd7e0 2.4 heavynode changes 2023-06-14 10:40:05 -04:00
Josh Brower fa57494694 Merge pull request #10584 from Security-Onion-Solutions/2.4/elasticagent-renaming
Change Elastic Fleet Tarball naming
2023-06-14 09:42:57 -04:00
weslambert 3f1741e75a Merge pull request #10585 from Security-Onion-Solutions/fix/elasticsearch_templates
Update Elasticsearch templates for Fleet
2023-06-14 09:33:23 -04:00
Wes 48331ce35b Add system.system component templates 2023-06-14 13:29:11 +00:00
Wes c2ac60b82e Add system.system template and add event-mappings 2023-06-14 13:28:00 +00:00
Josh Brower fedfbe9fec Fix tarball output name 2023-06-14 08:52:56 -04:00
Josh Brower 9947f9def4 Rework tarball naming schema 2023-06-14 07:38:03 -04:00
Wes c205438771 Update dependencies 2023-06-14 02:35:29 +00:00
Wes 8cde05807c Remove elastic-agent dir 2023-06-13 21:33:04 +00:00
Wes 2ac0aba916 Add osquery files 2023-06-13 21:32:02 +00:00
Wes af003cc2a1 Add osquery templates 2023-06-13 20:43:39 +00:00
Josh Brower 0d4f6b4fe6 Change Elastic Fleet Tarball naming 2023-06-13 16:32:19 -04:00
Jason Ertel 7093254439 Merge pull request #10582 from Security-Onion-Solutions/jertel/pcap
ensure status line shows dates for new and existing imports
2023-06-13 15:16:43 -04:00
Wes bd7644a557 Add another template 2023-06-13 19:13:20 +00:00
Jason Ertel 90b740a997 ensure status line shows dates for new and existing imports 2023-06-13 15:11:13 -04:00
Wes 5547a1b7ab Add event mappings 2023-06-13 18:23:50 +00:00
Wes 1b90fd8581 Add custom component templates 2023-06-13 18:21:45 +00:00
Doug Burks bbdf7bb5a7 Merge pull request #10580 from Security-Onion-Solutions/dougburks-patch-1
Set START and END variables earlier in so-import-pcap
2023-06-13 13:31:16 -04:00
Doug Burks fb8ad71b27 Set START and END variables earlier in so-import-pcap 2023-06-13 13:19:18 -04:00
Wes e43b7607bb Add more component templates 2023-06-13 17:04:03 +00:00
Wes a265c06e31 Add other component templates 2023-06-13 15:47:25 +00:00
Wes 2aa954cb0a Add component templates 2023-06-13 15:25:23 +00:00
Wes 73812b11a3 Allow ingest node pipelines that start with a period 2023-06-13 13:37:56 +00:00
Wes 38ab426470 Add final Fleet pipeline 2023-06-13 13:36:26 +00:00
Wes d0a6881c2c Add event mappings and remove meta information for now 2023-06-13 13:35:46 +00:00
m0duspwnens c7c4e65df1 single-node for heavynode 2023-06-13 09:22:17 -04:00
m0duspwnens 49b150797d 2.4 heavynode changes 2023-06-12 16:25:51 -04:00
Wes 57268ba934 Change priority of templates 2023-06-12 14:29:45 +00:00
Wes 1208915896 Remove Elastic Agent package templates 2023-06-12 14:24:59 +00:00
Wes 42f5ad9939 Add templates for system.auth and systen.syslog 2023-06-12 14:23:24 +00:00
Doug Burks 8e0d895afb Merge pull request #10572 from Security-Onion-Solutions/dougburks-patch-1
FIX: Add more Zeek logs to excluded list #10569
2023-06-12 09:33:13 -04:00
Doug Burks 998c85e3f8 Update defaults.yaml 2023-06-12 09:31:19 -04:00
weslambert 32f3ee0b01 Merge pull request #10564 from Security-Onion-Solutions/fix/elasticsearch_templates
Update templates for integrations
2023-06-12 09:05:31 -04:00
Doug Burks a90aed25fb Merge pull request #10570 from Security-Onion-Solutions/dougburks-patch-1
FIX: Add Zeek ocsp.log to excluded list #10569
2023-06-12 08:46:49 -04:00
Doug Burks ae14e4870d Add ocsp to logging.zeek.exclued in defaults.yaml 2023-06-12 08:44:46 -04:00
Doug Burks 273a1d7e9c Merge pull request #10568 from Security-Onion-Solutions/2.4/fix-suricata-dhcp
FIX: Suricata DHCP logs not ingesting #10565
2023-06-12 07:50:44 -04:00
Doug Burks b3f8ed7dcd FIX: Suricata DHCP logs not ingesting #10565 2023-06-10 11:42:41 -04:00
Wes ad5a424c03 Update templates for integrations 2023-06-09 18:32:50 +00:00
Jason Ertel e06787445c Merge pull request #10561 from Security-Onion-Solutions/jertel/pcap
Node description config setting should not accept a grid-wide value
2023-06-09 12:02:51 -04:00
Jason Ertel 8a4f5d6dcb Merge branch '2.4/dev' into jertel/pcap 2023-06-09 11:51:37 -04:00
Doug Burks 81dd951064 Merge pull request #10560 from Security-Onion-Solutions/dougburks-patch-1
FIX: Setup re-runs when SSH'ing into a successfully installed minion …
2023-06-09 11:49:54 -04:00
Doug Burks c12f138899 FIX: Setup re-runs when SSH'ing into a successfully installed minion node #10498 2023-06-09 11:20:54 -04:00
Jason Ertel 884a7041af Merge branch '2.4/dev' into jertel/pcap 2023-06-09 10:47:26 -04:00
Jason Ertel 023008c54c do not allow node_description to be set at global grid-wide level 2023-06-09 10:46:56 -04:00
Jason Ertel 6f7de954d9 Merge pull request #10559 from Security-Onion-Solutions/jertel/pcap
Telegraf should monitor all mount points
2023-06-09 09:18:54 -04:00
Jason Ertel 46371aaaf5 Monitor all mount points for simplicity 2023-06-09 09:14:36 -04:00
Doug Burks 1fde2e2755 Merge pull request #10553 from Security-Onion-Solutions/2.4/update-readme
2.4/update readme
2023-06-08 13:44:39 -04:00
Doug Burks 1aad9d1b2f Update README.md 2023-06-08 13:41:08 -04:00
Doug Burks 9703e70163 Update README.md 2023-06-08 13:38:11 -04:00
Doug Burks f6735207d7 Merge pull request #10552 from Security-Onion-Solutions/2.4/fix-suricata-dataset
FIX: Suricata dataset values for certain types of metadata#10551
2023-06-08 13:33:53 -04:00
Doug Burks e5f76a9c6e change suricata parsers from dataset to event.dataset 2023-06-08 12:31:31 -04:00
weslambert d1c86cb9ff Merge pull request #10550 from Security-Onion-Solutions/kilo
Elastalert and EQL
2023-06-08 11:21:18 -04:00
weslambert 8ccb24dda2 Update version to 2.4.3 2023-06-08 11:05:05 -04:00
weslambert 932054e9da Update version to 2.4.0 2023-06-08 11:04:45 -04:00
Josh Brower 8b35002169 EQL Refactor 2023-06-07 13:44:37 -04:00
weslambert f68527d366 Merge pull request #10541 from Security-Onion-Solutions/fix/curator_action_ignore_empty_list
Use ignore_empty_list
2023-06-07 10:36:38 -04:00
Wes 81e3d26540 Ignore empty list 2023-06-07 13:14:52 +00:00
weslambert 96b60fa39a Restore original URL syntax, but use data stream 2023-06-06 20:53:05 -04:00
weslambert f172a74fbc Remove EQL setting 2023-06-06 20:51:29 -04:00
weslambert c4be56ec7b Update host syntax 2023-06-06 20:51:03 -04:00
weslambert 96195806ab Update version to 2.4.0-kilo 2023-06-06 20:50:10 -04:00
weslambert 88bbd3440d Merge pull request #10522 from Security-Onion-Solutions/fix/playbook_index
Change Playbook index to a data stream and update mapping for event.severity_label
2023-06-06 09:03:49 -04:00
Wes 495a9c0783 Add mapping for event.severity_label 2023-06-05 21:19:37 +00:00
Wes 905bc564fc Change data stream name 2023-06-05 21:18:47 +00:00
Wes f6f387428f Update Playbook alerter to write to a data stream 2023-06-05 21:17:10 +00:00
Jason Ertel db5abcb3cf Merge pull request #10503 from Security-Onion-Solutions/jertel/pcap
add ability to output PCAP import results in JSON format
2023-06-05 14:32:32 -04:00
Jason Ertel 27e310c2a1 add json output option to so-import-evtx; clean up other issues 2023-06-05 13:54:44 -04:00
weslambert 236eb0cbcc Merge pull request #10515 from Security-Onion-Solutions/fix/analyzers
Update requests and whoisit
2023-06-05 12:12:59 -04:00
Wes 841d0b4b1f Update dependencies after git add 2023-06-05 15:42:55 +00:00
Wes 272f97e2d7 Update dependencies 2023-06-05 15:42:38 +00:00
Wes eac9a3fc86 Update requests and whoisit 2023-06-05 15:41:01 +00:00
Doug Burks 32dc26f2e7 Merge pull request #10514 from Security-Onion-Solutions/2.4/fix-VERIFY_ISO
Rename VERIFY_ISO.md to DOWNLOAD_AND_VERIFY_ISO.md
2023-06-05 10:12:43 -04:00
Doug Burks 1b14142e4c Rename VERIFY_ISO.md to DOWNLOAD_AND_VERIFY_ISO.md 2023-06-05 10:08:20 -04:00
Jason Ertel 2fef1d5fa7 silence grep output 2023-06-02 15:43:48 -04:00
Jason Ertel 3bbfc3865d use proper URL spacing 2023-06-02 15:26:14 -04:00
Jason Ertel 6947fd6414 add ability to output PCAP import results in JSON format 2023-06-02 15:21:41 -04:00
Doug Burks d3e5be78fd Merge pull request #10500 from Security-Onion-Solutions/dougburks-patch-1
Update soc_zeek.yaml
2023-06-02 07:54:11 -04:00
Doug Burks 09e005127e Update soc_zeek.yaml 2023-06-02 07:41:55 -04:00
Mike Reeves d3ea596deb Merge pull request #10491 from Security-Onion-Solutions/TOoSmOotH-patch-1
Update VERSION
2023-06-01 09:44:13 -04:00
Mike Reeves d6d315e8d5 Update VERSION 2023-06-01 09:43:32 -04:00
Jason Ertel 162a32fd08 Merge branch '2.4/dev' into kilo 2023-05-30 11:51:57 -04:00
Jason Ertel f765dc23ea kilofy version 2023-05-26 09:54:50 -04:00
503 changed files with 28021 additions and 38862 deletions
+12 -12
View File
@@ -1,18 +1,18 @@
### 2.4.2-20230531 ISO image built on 2023/05/31 ### 2.4.4-20230728 ISO image built on 2023/07/28
### Download and Verify ### Download and Verify
2.4.2-20230531 ISO image: 2.4.4-20230728 ISO image:
https://download.securityonion.net/file/securityonion/securityonion-2.4.2-20230531.iso https://download.securityonion.net/file/securityonion/securityonion-2.4.4-20230728.iso
MD5: EB861EFB7F7DA6FB418075B4C452E4EB MD5: F63E76245F3E745B5BDE9E6E647A7CB6
SHA1: 479A72DBB0633CB23608122F7200A24E2C3C3128 SHA1: 6CE4E4A3399CD282D4F8592FB19D510388AB3EEA
SHA256: B69C1AE4C576BBBC37F4B87C2A8379903421E65B2C4F24C90FABB0EAD6F0471B SHA256: BF8FEB91B1D94B67C3D4A79D209B068F4A46FEC7C15EEF65B0FCE9851D7E6C9F
Signature for ISO image: Signature for ISO image:
https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.2-20230531.iso.sig https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.4-20230728.iso.sig
Signing key: Signing key:
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS
@@ -26,22 +26,22 @@ wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.
Download the signature file for the ISO: Download the signature file for the ISO:
``` ```
wget https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.2-20230531.iso.sig wget https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.4-20230728.iso.sig
``` ```
Download the ISO image: Download the ISO image:
``` ```
wget https://download.securityonion.net/file/securityonion/securityonion-2.4.2-20230531.iso wget https://download.securityonion.net/file/securityonion/securityonion-2.4.4-20230728.iso
``` ```
Verify the downloaded ISO image using the signature file: Verify the downloaded ISO image using the signature file:
``` ```
gpg --verify securityonion-2.4.2-20230531.iso.sig securityonion-2.4.2-20230531.iso gpg --verify securityonion-2.4.4-20230728.iso.sig securityonion-2.4.4-20230728.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 Wed 31 May 2023 05:01:41 PM EDT using RSA key ID FE507013 gpg: Signature made Tue 11 Jul 2023 06:23:37 PM EDT 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.
@@ -49,4 +49,4 @@ Primary key fingerprint: C804 A93D 36BE 0C73 3EA1 9644 7C10 60B7 FE50 7013
``` ```
Once you've verified the ISO image, you're ready to proceed to our Installation guide: Once you've verified the ISO image, you're ready to proceed to our Installation guide:
https://docs.securityonion.net/en/2.4/installation.html https://docs.securityonion.net/en/2.4/installation.html
+13 -7
View File
@@ -1,20 +1,26 @@
## Security Onion 2.4 Beta 3 ## Security Onion 2.4 Release Candidate 1 (RC1)
Security Onion 2.4 Beta 3 is here! Security Onion 2.4 Release Candidate 1 (RC1) is here!
## Screenshots ## Screenshots
Alerts Alerts
![Alerts](./assets/images/screenshots/alerts.png) ![Alerts](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/50_alerts.png)
Dashboards Dashboards
![Dashboards](./assets/images/screenshots/dashboards.png) ![Dashboards](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/51_dashboards.png)
Hunt Hunt
![Hunt](./assets/images/screenshots/hunt.png) ![Hunt](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/52_hunt.png)
Cases PCAP
![Cases](./assets/images/screenshots/cases-comments.png) ![PCAP](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/53_pcap.png)
Grid
![Grid](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/57_grid.png)
Config
![Config](https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion-docs/2.4/images/61_config.png)
### Release Notes ### Release Notes
+1 -1
View File
@@ -1 +1 @@
2.4.2 2.4.4
-13
View File
@@ -1,13 +0,0 @@
logrotate:
conf: |
daily
rotate 14
missingok
copytruncate
compress
create
extension .log
dateext
dateyesterday
group_conf: |
su root socore
+1 -1
View File
@@ -2,7 +2,7 @@
{% set cached_grains = salt.saltutil.runner('cache.grains', tgt='*') %} {% set cached_grains = salt.saltutil.runner('cache.grains', tgt='*') %}
{% for minionid, ip in salt.saltutil.runner( {% for minionid, ip in salt.saltutil.runner(
'mine.get', 'mine.get',
tgt='G@role:so-manager or G@role:so-managersearch or G@role:so-standalone or G@role:so-searchnode or G@role:so-heavynode or G@role:so-receiver or G@role:so-helix ', tgt='G@role:so-manager or G@role:so-managersearch or G@role:so-standalone or G@role:so-searchnode or G@role:so-heavynode or G@role:so-receiver or G@role:so-fleet ',
fun='network.ip_addrs', fun='network.ip_addrs',
tgt_type='compound') | dictsort() tgt_type='compound') | dictsort()
%} %}
+14
View File
@@ -0,0 +1,14 @@
# Copyright Jason Ertel (github.com/jertel).
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with
# the Elastic License 2.0.
# Note: Per the Elastic License 2.0, the second limitation states:
#
# "You may not move, change, disable, or circumvent the license key functionality
# in the software, and you may not remove or obscure any functionality in the
# software that is protected by the license key."
# This file is generated by Security Onion and contains a list of license-enabled features.
features: []
+4
View File
@@ -40,6 +40,7 @@ base:
- logstash.adv_logstash - logstash.adv_logstash
- soc.soc_soc - soc.soc_soc
- soc.adv_soc - soc.adv_soc
- soc.license
- soctopus.soc_soctopus - soctopus.soc_soctopus
- soctopus.adv_soctopus - soctopus.adv_soctopus
- kibana.soc_kibana - kibana.soc_kibana
@@ -103,6 +104,7 @@ base:
- idstools.adv_idstools - idstools.adv_idstools
- soc.soc_soc - soc.soc_soc
- soc.adv_soc - soc.adv_soc
- soc.license
- soctopus.soc_soctopus - soctopus.soc_soctopus
- soctopus.adv_soctopus - soctopus.adv_soctopus
- kibana.soc_kibana - kibana.soc_kibana
@@ -161,6 +163,7 @@ base:
- manager.adv_manager - manager.adv_manager
- soc.soc_soc - soc.soc_soc
- soc.adv_soc - soc.adv_soc
- soc.license
- soctopus.soc_soctopus - soctopus.soc_soctopus
- soctopus.adv_soctopus - soctopus.adv_soctopus
- kibana.soc_kibana - kibana.soc_kibana
@@ -258,6 +261,7 @@ base:
- manager.adv_manager - manager.adv_manager
- soc.soc_soc - soc.soc_soc
- soc.adv_soc - soc.adv_soc
- soc.license
- soctopus.soc_soctopus - soctopus.soc_soctopus
- soctopus.adv_soctopus - soctopus.adv_soctopus
- kibana.soc_kibana - kibana.soc_kibana
+3 -3
View File
@@ -3,14 +3,14 @@ import subprocess
def check(): def check():
os = __grains__['os'] osfam = __grains__['os_family']
retval = 'False' retval = 'False'
if os == 'Ubuntu': if osfam == 'Debian':
if path.exists('/var/run/reboot-required'): if path.exists('/var/run/reboot-required'):
retval = 'True' retval = 'True'
elif os == 'Rocky': elif osfam == 'RedHat':
cmd = 'needs-restarting -r > /dev/null 2>&1' cmd = 'needs-restarting -r > /dev/null 2>&1'
try: try:
+3 -19
View File
@@ -46,23 +46,7 @@
'pcap', 'pcap',
'suricata', 'suricata',
'healthcheck', 'healthcheck',
'schedule', 'elasticagent',
'tcpreplay',
'docker_clean'
],
'so-helixsensor': [
'salt.master',
'ca',
'ssl',
'registry',
'telegraf',
'firewall',
'idstools',
'suricata.manager',
'zeek',
'redis',
'elasticsearch',
'logstash',
'schedule', 'schedule',
'tcpreplay', 'tcpreplay',
'docker_clean' 'docker_clean'
@@ -203,7 +187,7 @@
'schedule', 'schedule',
'docker_clean' 'docker_clean'
], ],
'so-workstation': [ 'so-desktop': [
], ],
}, grain='role') %} }, grain='role') %}
@@ -244,7 +228,7 @@
{% do allowed_states.append('playbook') %} {% do allowed_states.append('playbook') %}
{% endif %} {% endif %}
{% if grains.role in ['so-helixsensor', 'so-manager', 'so-standalone', 'so-searchnode', 'so-managersearch', 'so-heavynode', 'so-receiver'] %} {% if grains.role in ['so-manager', 'so-standalone', 'so-searchnode', 'so-managersearch', 'so-heavynode', 'so-receiver'] %}
{% do allowed_states.append('logstash') %} {% do allowed_states.append('logstash') %}
{% endif %} {% endif %}
-1
View File
@@ -20,7 +20,6 @@ pki_private_key:
- name: /etc/pki/ca.key - name: /etc/pki/ca.key
- keysize: 4096 - keysize: 4096
- passphrase: - passphrase:
- cipher: aes_256_cbc
- backup: True - backup: True
{% if salt['file.file_exists']('/etc/pki/ca.key') -%} {% if salt['file.file_exists']('/etc/pki/ca.key') -%}
- prereq: - prereq:
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
/usr/sbin/logrotate -f /opt/so/conf/log-rotate.conf > /dev/null 2>&1
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
/usr/sbin/logrotate -f /opt/so/conf/sensor-rotate.conf > /dev/null 2>&1
-79
View File
@@ -1,79 +0,0 @@
The following GUI tools are available on the analyst workstation:
chromium
url: https://www.chromium.org/Home
To run chromium, click Applications > Internet > Chromium Web Browser
Wireshark
url: https://www.wireshark.org/
To run Wireshark, click Applications > Internet > Wireshark Network Analyzer
NetworkMiner
url: https://www.netresec.com
To run NetworkMiner, click Applications > Internet > NetworkMiner
The following CLI tools are available on the analyst workstation:
bit-twist
url: http://bittwist.sourceforge.net
To run bit-twist, open a terminal and type: bittwist -h
chaosreader
url: http://chaosreader.sourceforge.net
To run chaosreader, open a terminal and type: chaosreader -h
dnsiff
url: https://www.monkey.org/~dugsong/dsniff/
To run dsniff, open a terminal and type: dsniff -h
foremost
url: http://foremost.sourceforge.net
To run foremost, open a terminal and type: foremost -h
hping3
url: http://www.hping.org/hping3.html
To run hping3, open a terminal and type: hping3 -h
netsed
url: http://silicone.homelinux.org/projects/netsed/
To run netsed, open a terminal and type: netsed -h
ngrep
url: https://github.com/jpr5/ngrep
To run ngrep, open a terminal and type: ngrep -h
scapy
url: http://www.secdev.org/projects/scapy/
To run scapy, open a terminal and type: scapy
ssldump
url: http://www.rtfm.com/ssldump/
To run ssldump, open a terminal and type: ssldump -h
sslsplit
url: https://github.com/droe/sslsplit
To run sslsplit, open a terminal and type: sslsplit -h
tcpdump
url: http://www.tcpdump.org
To run tcpdump, open a terminal and type: tcpdump -h
tcpflow
url: https://github.com/simsong/tcpflow
To run tcpflow, open a terminal and type: tcpflow -h
tcpstat
url: https://frenchfries.net/paul/tcpstat/
To run tcpstat, open a terminal and type: tcpstat -h
tcptrace
url: http://www.tcptrace.org
To run tcptrace, open a terminal and type: tcptrace -h
tcpxtract
url: http://tcpxtract.sourceforge.net/
To run tcpxtract, open a terminal and type: tcpxtract -h
whois
url: http://www.linux.it/~md/software/
To run whois, open a terminal and type: whois -h
+2 -4
View File
@@ -1,13 +1,11 @@
{%- set DOCKERRANGE = salt['pillar.get']('docker:range', '172.17.0.0/24') %}
{%- set DOCKERBIND = salt['pillar.get']('docker:bip', '172.17.0.1/24') %}
{ {
"registry-mirrors": [ "registry-mirrors": [
"https://:5000" "https://:5000"
], ],
"bip": "{{ DOCKERBIND }}", "bip": "172.17.0.1/24",
"default-address-pools": [ "default-address-pools": [
{ {
"base": "{{ DOCKERRANGE }}", "base": "172.17.0.0/24",
"size": 24 "size": 24
} }
] ]
-37
View File
@@ -1,37 +0,0 @@
{%- set logrotate_conf = salt['pillar.get']('logrotate:conf') %}
{%- set group_conf = salt['pillar.get']('logrotate:group_conf') %}
/opt/so/log/aptcacher-ng/*.log
/opt/so/log/idstools/*.log
/opt/so/log/nginx/*.log
/opt/so/log/soc/*.log
/opt/so/log/kratos/*.log
/opt/so/log/kibana/*.log
/opt/so/log/influxdb/*.log
/opt/so/log/elastalert/*.log
/opt/so/log/soctopus/*.log
/opt/so/log/curator/*.log
/opt/so/log/fleet/*.log
/opt/so/log/suricata/*.log
/opt/so/log/mysql/*.log
/opt/so/log/telegraf/*.log
/opt/so/log/redis/*.log
/opt/so/log/sensoroni/*.log
/opt/so/log/stenographer/*.log
/opt/so/log/salt/so-salt-minion-check
/opt/so/log/salt/minion
/opt/so/log/salt/master
/opt/so/log/logscan/*.log
/nsm/idh/*.log
{
{{ logrotate_conf | indent(width=4) }}
}
# Playbook's log directory needs additional configuration
# because Playbook requires a more permissive directory
/opt/so/log/playbook/*.log
{
{{ logrotate_conf | indent(width=4) }}
{{ group_conf | indent(width=4) }}
}
-22
View File
@@ -1,22 +0,0 @@
/opt/so/log/sensor_clean.log
{
daily
rotate 2
missingok
nocompress
create
sharedscripts
}
/nsm/strelka/log/strelka.log
{
daily
rotate 14
missingok
copytruncate
compress
create
extension .log
dateext
dateyesterday
}
+6 -51
View File
@@ -10,6 +10,10 @@ include:
- manager.elasticsearch # needed for elastic_curl_config state - manager.elasticsearch # needed for elastic_curl_config state
{% endif %} {% endif %}
net.core.wmem_default:
sysctl.present:
- value: 26214400
# Remove variables.txt from /tmp - This is temp # Remove variables.txt from /tmp - This is temp
rmvariablesfile: rmvariablesfile:
file.absent: file.absent:
@@ -147,56 +151,8 @@ so-sensor-clean:
- daymonth: '*' - daymonth: '*'
- month: '*' - month: '*'
- dayweek: '*' - dayweek: '*'
sensorrotatescript:
file.managed:
- name: /usr/local/bin/sensor-rotate
- source: salt://common/cron/sensor-rotate
- mode: 755
sensorrotateconf:
file.managed:
- name: /opt/so/conf/sensor-rotate.conf
- source: salt://common/files/sensor-rotate.conf
- mode: 644
sensor-rotate:
cron.present:
- name: /usr/local/bin/sensor-rotate
- identifier: sensor-rotate
- user: root
- minute: '1'
- hour: '0'
- daymonth: '*'
- month: '*'
- dayweek: '*'
{% endif %} {% endif %}
commonlogrotatescript:
file.managed:
- name: /usr/local/bin/common-rotate
- source: salt://common/cron/common-rotate
- mode: 755
commonlogrotateconf:
file.managed:
- name: /opt/so/conf/log-rotate.conf
- source: salt://common/files/log-rotate.conf
- template: jinja
- mode: 644
common-rotate:
cron.present:
- name: /usr/local/bin/common-rotate
- identifier: common-rotate
- user: root
- minute: '1'
- hour: '0'
- daymonth: '*'
- month: '*'
- dayweek: '*'
# Create the status directory # Create the status directory
sostatusdir: sostatusdir:
file.directory: file.directory:
@@ -239,7 +195,7 @@ soversionfile:
{% endif %} {% endif %}
{% if GLOBALS.so_model and GLOBALS.so_model not in ['SO2AMI01', 'SO2AZI01', 'SO2GCI01'] %} {% if GLOBALS.so_model and GLOBALS.so_model not in ['SO2AMI01', 'SO2AZI01', 'SO2GCI01'] %}
{% if GLOBALS.os == 'Rocky' %} {% if GLOBALS.os == 'OEL' %}
# Install Raid tools # Install Raid tools
raidpkgs: raidpkgs:
pkg.installed: pkg.installed:
@@ -261,8 +217,7 @@ so-raid-status:
- month: '*' - month: '*'
- dayweek: '*' - dayweek: '*'
{% endif %} {% endif %}
{% else %} {% else %}
{{sls}}_state_not_allowed: {{sls}}_state_not_allowed:
+39 -20
View File
@@ -1,6 +1,6 @@
{% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'vars/globals.map.jinja' import GLOBALS %}
{% if GLOBALS.os == 'Ubuntu' %} {% if GLOBALS.os_family == 'Debian' %}
commonpkgs: commonpkgs:
pkg.installed: pkg.installed:
- skip_suggestions: True - skip_suggestions: True
@@ -14,16 +14,24 @@ commonpkgs:
- software-properties-common - software-properties-common
- apt-transport-https - apt-transport-https
- openssl - openssl
- netcat - netcat-openbsd
- sqlite3 - sqlite3
- libssl-dev - libssl-dev
- python3-dateutil - python3-dateutil
- python3-docker
- python3-packaging - python3-packaging
- python3-watchdog - python3-watchdog
- python3-lxml - python3-lxml
- git - git
- rsync
- vim - vim
- tar
- unzip
{% if grains.oscodename != 'focal' %}
- python3-rich
{% endif %}
{% if grains.oscodename == 'focal' %}
# since Ubuntu requires and internet connection we can use pip to install modules # since Ubuntu requires and internet connection we can use pip to install modules
python3-pip: python3-pip:
pkg.installed pkg.installed
@@ -34,34 +42,45 @@ python-rich:
- target: /usr/local/lib/python3.8/dist-packages/ - target: /usr/local/lib/python3.8/dist-packages/
- require: - require:
- pkg: python3-pip - pkg: python3-pip
{% endif %}
{% endif %}
{% elif GLOBALS.os == 'Rocky' %} {% if GLOBALS.os_family == 'RedHat' %}
commonpkgs: commonpkgs:
pkg.installed: pkg.installed:
- skip_suggestions: True - skip_suggestions: True
- pkgs: - pkgs:
- wget
- jq
- tcpdump
- httpd-tools
- net-tools
- curl - curl
- sqlite
- mariadb-devel
- python3-dnf-plugin-versionlock
- nmap-ncat
- yum-utils
- device-mapper-persistent-data - device-mapper-persistent-data
- lvm2 - fuse
- openssl - fuse-libs
- fuse-overlayfs
- fuse-common
- fuse3
- fuse3-libs
- git - git
- httpd-tools
- jq
- lvm2
{% if GLOBALS.os == 'CentOS Stream' %}
- MariaDB-devel
{% else %}
- mariadb-devel
{% endif %}
- net-tools
- nmap-ncat
- openssl
- python3-dnf-plugin-versionlock
- python3-docker - python3-docker
- python3-m2crypto - python3-m2crypto
- rsync
- python3-rich
- python3-pyyaml
- python3-watchdog
- python3-packaging - python3-packaging
- python3-pyyaml
- python3-rich
- python3-watchdog
- rsync
- sqlite
- tcpdump
- unzip - unzip
- wget
- yum-utils
{% endif %} {% endif %}
+11 -2
View File
@@ -8,6 +8,15 @@ soup_scripts:
- source: salt://common/tools/sbin - source: salt://common/tools/sbin
- include_pat: - include_pat:
- so-common - so-common
- so-firewall
- so-image-common - so-image-common
- soup
soup_manager_scripts:
file.recurse:
- name: /usr/sbin
- user: root
- group: root
- file_mode: 755
- source: salt://manager/tools/sbin
- include_pat:
- so-firewall
- soup
+34 -18
View File
@@ -5,6 +5,7 @@
# https://securityonion.net/license; you may not use this file except in compliance with the # https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0. # Elastic License 2.0.
ELASTIC_AGENT_TARBALL_VERSION="8.7.1"
DEFAULT_SALT_DIR=/opt/so/saltstack/default DEFAULT_SALT_DIR=/opt/so/saltstack/default
DOC_BASE_URL="https://docs.securityonion.net/en/2.4" DOC_BASE_URL="https://docs.securityonion.net/en/2.4"
@@ -198,19 +199,20 @@ get_random_value() {
} }
gpg_rpm_import() { gpg_rpm_import() {
if [[ "$OS" == "rocky" ]]; then if [[ $is_oracle ]]; then
if [[ "$WHATWOULDYOUSAYYAHDOHERE" == "setup" ]]; then if [[ "$WHATWOULDYOUSAYYAHDOHERE" == "setup" ]]; then
local RPMKEYSLOC="../salt/repo/client/files/rocky/keys" local RPMKEYSLOC="../salt/repo/client/files/$OS/keys"
else else
local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/rocky/keys" local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/$OS/keys"
fi fi
RPMKEYS=('RPM-GPG-KEY-oracle' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub' 'MariaDB-Server-GPG-KEY')
RPMKEYS=('RPM-GPG-KEY-rockyofficial' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub') for RPMKEY in "${RPMKEYS[@]}"; do
for RPMKEY in "${RPMKEYS[@]}"; do
rpm --import $RPMKEYSLOC/$RPMKEY rpm --import $RPMKEYSLOC/$RPMKEY
echo "Imported $RPMKEY" echo "Imported $RPMKEY"
done done
elif [[ $is_rpm ]]; then
info "Importing the security onion GPG key"
rpm --import ../salt/repo/client/files/oracle/keys/securityonion.pub
fi fi
} }
@@ -242,7 +244,7 @@ is_manager_node() {
is_sensor_node() { is_sensor_node() {
# Check to see if this is a sensor (forward) node # Check to see if this is a sensor (forward) node
is_single_node_grid && return 0 is_single_node_grid && return 0
grep "role: so-" /etc/salt/grains | grep -E "sensor|heavynode|helix" &> /dev/null grep "role: so-" /etc/salt/grains | grep -E "sensor|heavynode" &> /dev/null
} }
is_single_node_grid() { is_single_node_grid() {
@@ -300,6 +302,17 @@ lookup_role() {
echo ${pieces[1]} echo ${pieces[1]}
} }
is_feature_enabled() {
feature=$1
enabled=$(lookup_salt_value features)
for cur in $enabled; do
if [[ "$feature" == "$cur" ]]; then
return 0
fi
done
return 1
}
require_manager() { require_manager() {
if is_manager_node; then if is_manager_node; then
echo "This is a manager, so we can proceed." echo "This is a manager, so we can proceed."
@@ -383,19 +396,22 @@ salt_minion_count() {
} }
set_cron_service_name() {
if [[ "$OS" == "rocky" ]]; then
cron_service_name="crond"
else
cron_service_name="cron"
fi
}
set_os() { set_os() {
if [ -f /etc/redhat-release ]; then if [ -f /etc/redhat-release ]; then
OS=rocky if grep -q "Rocky Linux release 9" /etc/redhat-release; then
OS=rocky
OSVER=9
is_rocky=true
elif grep -q "CentOS Stream release 9" /etc/redhat-release; then
OS=centos
OSVER=9
is_centos=true
fi
cron_service_name="crond"
else else
OS=ubuntu OS=ubuntu
is_ubuntu=true
cron_service_name="cron"
fi fi
} }
@@ -404,7 +420,7 @@ set_minionid() {
} }
set_palette() { set_palette() {
if [ "$OS" == ubuntu ]; then if [[ $is_deb ]]; then
update-alternatives --set newt-palette /etc/newt/palette.original update-alternatives --set newt-palette /etc/newt/palette.original
fi fi
} }
@@ -6,17 +6,17 @@
# Elastic License 2.0. # Elastic License 2.0.
{# we only want the script to install the workstation if it is Rocky -#} {# we only want the script to install the desktop if it is Rocky -#}
{% if grains.os == 'Rocky' -%} {% if grains.os == 'Rocky' -%}
{# if this is a manager -#} {# if this is a manager -#}
{% if grains.master == grains.id.split('_')|first -%} {% if grains.master == grains.id.split('_')|first -%}
source /usr/sbin/so-common source /usr/sbin/so-common
doc_workstation_url="$DOC_BASE_URL/analyst-vm.html" doc_desktop_url="$DOC_BASE_URL/desktop.html"
pillar_file="/opt/so/saltstack/local/pillar/minions/{{grains.id}}.sls" pillar_file="/opt/so/saltstack/local/pillar/minions/{{grains.id}}.sls"
if [ -f "$pillar_file" ]; then if [ -f "$pillar_file" ]; then
if ! grep -q "^workstation:$" "$pillar_file"; then if ! grep -q "^desktop:$" "$pillar_file"; then
FIRSTPASS=yes FIRSTPASS=yes
while [[ $INSTALL != "yes" ]] && [[ $INSTALL != "no" ]]; do while [[ $INSTALL != "yes" ]] && [[ $INSTALL != "no" ]]; do
@@ -26,7 +26,7 @@ if [ -f "$pillar_file" ]; then
echo "## _______________________________ ##" echo "## _______________________________ ##"
echo "## ##" echo "## ##"
echo "## Installing the Security Onion ##" echo "## Installing the Security Onion ##"
echo "## analyst node on this device will ##" echo "## Desktop on this device will ##"
echo "## make permanent changes to ##" echo "## make permanent changes to ##"
echo "## the system. ##" echo "## the system. ##"
echo "## A system reboot will be required ##" echo "## A system reboot will be required ##"
@@ -42,40 +42,40 @@ if [ -f "$pillar_file" ]; then
done done
if [[ $INSTALL == "no" ]]; then if [[ $INSTALL == "no" ]]; then
echo "Exiting analyst node installation." echo "Exiting desktop node installation."
exit 0 exit 0
fi fi
# Add workstation pillar to the minion's pillar file # Add desktop pillar to the minion's pillar file
printf '%s\n'\ printf '%s\n'\
"workstation:"\ "desktop:"\
" gui:"\ " gui:"\
" enabled: true"\ " enabled: true"\
"" >> "$pillar_file" "" >> "$pillar_file"
echo "Applying the workstation state. This could take some time since there are many packages that need to be installed." echo "Applying the desktop state. This could take some time since there are many packages that need to be installed."
if salt-call state.apply workstation -linfo queue=True; then # make sure the state ran successfully if salt-call state.apply desktop -linfo queue=True; then # make sure the state ran successfully
echo "" echo ""
echo "Analyst workstation has been installed!" echo "Security Onion Desktop has been installed!"
echo "Press ENTER to reboot or Ctrl-C to cancel." echo "Press ENTER to reboot or Ctrl-C to cancel."
read pause read pause
reboot; reboot;
else else
echo "There was an issue applying the workstation state. Please review the log above or at /opt/so/log/salt/minion." echo "There was an issue applying the desktop state. Please review the log above or at /opt/so/log/salt/minion."
fi fi
else # workstation is already added else # desktop is already added
echo "The workstation pillar already exists in $pillar_file." echo "The desktop pillar already exists in $pillar_file."
echo "To enable/disable the gui, set 'workstation:gui:enabled' to true or false in $pillar_file." echo "To enable/disable the gui, set 'desktop:gui:enabled' to true or false in $pillar_file."
echo "Additional documentation can be found at $doc_workstation_url." echo "Additional documentation can be found at $doc_desktop_url."
fi fi
else # if the pillar file doesn't exist else # if the pillar file doesn't exist
echo "Could not find $pillar_file and add the workstation pillar." echo "Could not find $pillar_file and add the desktop pillar."
fi fi
{#- if this is not a manager #} {#- if this is not a manager #}
{% else -%} {% else -%}
echo "Since this is not a manager, the pillar values to enable analyst workstation must be set manually. Please view the documentation at $doc_workstation_url." echo "Since this is not a manager, the pillar values to enable Security Onion Desktop must be set manually. Please view the documentation at $doc_desktop_url."
{#- endif if this is a manager #} {#- endif if this is a manager #}
{% endif -%} {% endif -%}
@@ -83,7 +83,7 @@ echo "Since this is not a manager, the pillar values to enable analyst workstati
{#- if not Rocky #} {#- if not Rocky #}
{%- else %} {%- else %}
echo "The Analyst Workstation can only be installed on Rocky. Please view the documentation at $doc_workstation_url." echo "The Security Onion Desktop can only be installed on Rocky Linux. Please view the documentation at $doc_desktop_url."
{#- endif grains.os == Rocky #} {#- endif grains.os == Rocky #}
{% endif -%} {% endif -%}
+111 -41
View File
@@ -14,19 +14,56 @@
{%- set ES_PASS = salt['pillar.get']('elasticsearch:auth:users:so_elastic_user:pass', '') %} {%- set ES_PASS = salt['pillar.get']('elasticsearch:auth:users:so_elastic_user:pass', '') %}
INDEX_DATE=$(date +'%Y.%m.%d') INDEX_DATE=$(date +'%Y.%m.%d')
RUNID=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
LOG_FILE=/nsm/import/evtx-import.log LOG_FILE=/nsm/import/evtx-import.log
. /usr/sbin/so-common . /usr/sbin/so-common
function usage { function usage {
cat << EOF cat << EOF
Usage: $0 <evtx-file-1> [evtx-file-2] [evtx-file-*] Usage: $0 [options] <evtx-file-1> [evtx-file-2] [evtx-file-*]
Imports one or more evtx files into Security Onion. The evtx files will be analyzed and made available for review in the Security Onion toolset. Imports one or more evtx files into Security Onion. The evtx files will be analyzed and made available for review in the Security Onion toolset.
Options:
--json Outputs summary in JSON format. Implies --quiet.
--quiet Silences progress information to stdout.
EOF EOF
} }
quiet=0
json=0
INPUT_FILES=
while [[ $# -gt 0 ]]; do
param=$1
shift
case "$param" in
--json)
json=1
quiet=1
;;
--quiet)
quiet=1
;;
-*)
echo "Encountered unexpected parameter: $param"
usage
exit 1
;;
*)
if [[ "$INPUT_FILES" != "" ]]; then
INPUT_FILES="$INPUT_FILES $param"
else
INPUT_FILES="$param"
fi
;;
esac
done
function status {
msg=$1
[[ $quiet -eq 1 ]] && return
echo "$msg"
}
function evtx2es() { function evtx2es() {
EVTX=$1 EVTX=$1
@@ -42,31 +79,30 @@ function evtx2es() {
} }
# if no parameters supplied, display usage # if no parameters supplied, display usage
if [ $# -eq 0 ]; then if [ "$INPUT_FILES" == "" ]; then
usage usage
exit 1 exit 1
fi fi
# ensure this is a Manager node # ensure this is a Manager node
require_manager require_manager @> /dev/null
# verify that all parameters are files # verify that all parameters are files
for i in "$@"; do for i in $INPUT_FILES; do
if ! [ -f "$i" ]; then if ! [ -f "$i" ]; then
usage
echo "\"$i\" is not a valid file!" echo "\"$i\" is not a valid file!"
exit 2 exit 2
fi fi
done done
# track if we have any valid or invalid evtx
INVALID_EVTXS="no"
VALID_EVTXS="no"
# track oldest start and newest end so that we can generate the Kibana search hyperlink at the end # track oldest start and newest end so that we can generate the Kibana search hyperlink at the end
START_OLDEST="2050-12-31" START_OLDEST="2050-12-31"
END_NEWEST="1971-01-01" END_NEWEST="1971-01-01"
INVALID_EVTXS_COUNT=0
VALID_EVTXS_COUNT=0
SKIPPED_EVTXS_COUNT=0
touch /nsm/import/evtx-start_oldest touch /nsm/import/evtx-start_oldest
touch /nsm/import/evtx-end_newest touch /nsm/import/evtx-end_newest
@@ -74,27 +110,39 @@ echo $START_OLDEST > /nsm/import/evtx-start_oldest
echo $END_NEWEST > /nsm/import/evtx-end_newest echo $END_NEWEST > /nsm/import/evtx-end_newest
# paths must be quoted in case they include spaces # paths must be quoted in case they include spaces
for EVTX in "$@"; do for EVTX in $INPUT_FILES; do
EVTX=$(/usr/bin/realpath "$EVTX") EVTX=$(/usr/bin/realpath "$EVTX")
echo "Processing Import: ${EVTX}" status "Processing Import: ${EVTX}"
# generate a unique hash to assist with dedupe checks # generate a unique hash to assist with dedupe checks
HASH=$(md5sum "${EVTX}" | awk '{ print $1 }') HASH=$(md5sum "${EVTX}" | awk '{ print $1 }')
HASH_DIR=/nsm/import/${HASH} HASH_DIR=/nsm/import/${HASH}
echo "- assigning unique identifier to import: $HASH" status "- assigning unique identifier to import: $HASH"
if [[ "$HASH_FILTERS" == "" ]]; then
HASH_FILTERS="import.id:${HASH}"
HASHES="${HASH}"
else
HASH_FILTERS="$HASH_FILTERS%20OR%20import.id:${HASH}"
HASHES="${HASHES} ${HASH}"
fi
if [ -d $HASH_DIR ]; then if [ -d $HASH_DIR ]; then
echo "- this EVTX has already been imported; skipping" status "- this EVTX has already been imported; skipping"
INVALID_EVTXS="yes" SKIPPED_EVTXS_COUNT=$((SKIPPED_EVTXS_COUNT + 1))
else else
VALID_EVTXS="yes"
EVTX_DIR=$HASH_DIR/evtx EVTX_DIR=$HASH_DIR/evtx
mkdir -p $EVTX_DIR mkdir -p $EVTX_DIR
# import evtx and write them to import ingest pipeline # import evtx and write them to import ingest pipeline
echo "- importing logs to Elasticsearch..." status "- importing logs to Elasticsearch..."
evtx2es "${EVTX}" $HASH evtx2es "${EVTX}" $HASH
if [[ $? -ne 0 ]]; then
INVALID_EVTXS_COUNT=$((INVALID_EVTXS_COUNT + 1))
status "- WARNING: This evtx file may not have fully imported successfully"
else
VALID_EVTXS_COUNT=$((VALID_EVTXS_COUNT + 1))
fi
# compare $START to $START_OLDEST # compare $START to $START_OLDEST
START=$(cat /nsm/import/evtx-start_oldest) START=$(cat /nsm/import/evtx-start_oldest)
@@ -118,38 +166,60 @@ for EVTX in "$@"; do
fi # end of valid evtx fi # end of valid evtx
echo status
done # end of for-loop processing evtx files done # end of for-loop processing evtx files
# remove temp files
echo "Cleaning up:"
for TEMP_EVTX in ${TEMP_EVTXS[@]}; do
echo "- removing temporary evtx $TEMP_EVTX"
rm -f $TEMP_EVTX
done
# output final messages # output final messages
if [ "$INVALID_EVTXS" = "yes" ]; then if [[ $INVALID_EVTXS_COUNT -gt 0 ]]; then
echo status
echo "Please note! One or more evtx was invalid! You can scroll up to see which ones were invalid." status "Please note! One or more evtx was invalid! You can scroll up to see which ones were invalid."
fi fi
START_OLDEST_FORMATTED=`date +%Y-%m-%d --date="$START_OLDEST"` START_OLDEST_FORMATTED=`date +%Y-%m-%d --date="$START_OLDEST"`
START_OLDEST_SLASH=$(echo $START_OLDEST_FORMATTED | sed -e 's/-/%2F/g') START_OLDEST_SLASH=$(echo $START_OLDEST_FORMATTED | sed -e 's/-/%2F/g')
END_NEWEST_SLASH=$(echo $END_NEWEST | sed -e 's/-/%2F/g') END_NEWEST_SLASH=$(echo $END_NEWEST | sed -e 's/-/%2F/g')
if [ "$VALID_EVTXS" = "yes" ]; then if [[ $VALID_EVTXS_COUNT -gt 0 ]] || [[ $SKIPPED_EVTXS_COUNT -gt 0 ]]; then
cat << EOF URL="https://{{ URLBASE }}/#/dashboards?q=$HASH_FILTERS%20%7C%20groupby%20-sankey%20event.dataset%20event.category%2a%20%7C%20groupby%20-pie%20event.category%20%7C%20groupby%20-bar%20event.module%20%7C%20groupby%20event.dataset%20%7C%20groupby%20event.module%20%7C%20groupby%20event.category%20%7C%20groupby%20observer.name%20%7C%20groupby%20source.ip%20%7C%20groupby%20destination.ip%20%7C%20groupby%20destination.port&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM&z=UTC"
Import complete! status "Import complete!"
status
You can use the following hyperlink to view data in the time range of your import. You can triple-click to quickly highlight the entire hyperlink and you can then copy it into your browser: status "Use the following hyperlink to view the imported data. Triple-click to quickly highlight the entire hyperlink and then copy it into a browser:"
https://{{ URLBASE }}/#/dashboards?q=import.id:${RUNID}%20%7C%20groupby%20-sankey%20event.dataset%20event.category%2a%20%7C%20groupby%20-pie%20event.category%20%7C%20groupby%20-bar%20event.module%20%7C%20groupby%20event.dataset%20%7C%20groupby%20event.module%20%7C%20groupby%20event.category%20%7C%20groupby%20observer.name%20%7C%20groupby%20source.ip%20%7C%20groupby%20destination.ip%20%7C%20groupby%20destination.port&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM&z=UTC status
status "$URL"
or you can manually set your Time Range to be (in UTC): status
From: $START_OLDEST_FORMATTED To: $END_NEWEST status "or, manually set the Time Range to be (in UTC):"
status
Please note that it may take 30 seconds or more for events to appear in Security Onion Console. status "From: $START_OLDEST_FORMATTED To: $END_NEWEST"
EOF status
status "Note: It can take 30 seconds or more for events to appear in Security Onion Console."
RESULT=0
else
START_OLDEST=
END_NEWEST=
URL=
RESULT=1
fi fi
if [[ $json -eq 1 ]]; then
jq -n \
--arg success_count "$VALID_EVTXS_COUNT" \
--arg fail_count "$INVALID_EVTXS_COUNT" \
--arg skipped_count "$SKIPPED_EVTXS_COUNT" \
--arg begin_date "$START_OLDEST" \
--arg end_date "$END_NEWEST" \
--arg url "$URL" \
--arg hashes "$HASHES" \
'''{
success_count: $success_count,
fail_count: $fail_count,
skipped_count: $skipped_count,
begin_date: $begin_date,
end_date: $end_date,
url: $url,
hash: ($hashes / " ")
}'''
fi
exit $RESULT
+125 -51
View File
@@ -15,12 +15,51 @@
function usage { function usage {
cat << EOF cat << EOF
Usage: $0 <pcap-file-1> [pcap-file-2] [pcap-file-N] Usage: $0 [options] <pcap-file-1> [pcap-file-2] [pcap-file-N]
Imports one or more PCAP files onto a sensor node. The PCAP traffic will be analyzed and made available for review in the Security Onion toolset. Imports one or more PCAP files onto a sensor node. The PCAP traffic will be analyzed and made available for review in the Security Onion toolset.
Options:
--json Outputs summary in JSON format. Implies --quiet.
--quiet Silences progress information to stdout.
EOF EOF
} }
quiet=0
json=0
INPUT_FILES=
while [[ $# -gt 0 ]]; do
param=$1
shift
case "$param" in
--json)
json=1
quiet=1
;;
--quiet)
quiet=1
;;
-*)
echo "Encountered unexpected parameter: $param"
usage
exit 1
;;
*)
if [[ "$INPUT_FILES" != "" ]]; then
INPUT_FILES="$INPUT_FILES $param"
else
INPUT_FILES="$param"
fi
;;
esac
done
function status {
msg=$1
[[ $quiet -eq 1 ]] && return
echo "$msg"
}
function pcapinfo() { function pcapinfo() {
PCAP=$1 PCAP=$1
ARGS=$2 ARGS=$2
@@ -84,7 +123,7 @@ function zeek() {
} }
# if no parameters supplied, display usage # if no parameters supplied, display usage
if [ $# -eq 0 ]; then if [ "$INPUT_FILES" == "" ]; then
usage usage
exit 1 exit 1
fi fi
@@ -96,31 +135,30 @@ if [ ! -d /opt/so/conf/suricata ]; then
fi fi
# verify that all parameters are files # verify that all parameters are files
for i in "$@"; do for i in $INPUT_FILES; do
if ! [ -f "$i" ]; then if ! [ -f "$i" ]; then
usage
echo "\"$i\" is not a valid file!" echo "\"$i\" is not a valid file!"
exit 2 exit 2
fi fi
done done
# track if we have any valid or invalid pcaps
INVALID_PCAPS="no"
VALID_PCAPS="no"
# track oldest start and newest end so that we can generate the Kibana search hyperlink at the end # track oldest start and newest end so that we can generate the Kibana search hyperlink at the end
START_OLDEST="2050-12-31" START_OLDEST="2050-12-31"
END_NEWEST="1971-01-01" END_NEWEST="1971-01-01"
INVALID_PCAPS_COUNT=0
VALID_PCAPS_COUNT=0
SKIPPED_PCAPS_COUNT=0
# paths must be quoted in case they include spaces # paths must be quoted in case they include spaces
for PCAP in "$@"; do for PCAP in $INPUT_FILES; do
PCAP=$(/usr/bin/realpath "$PCAP") PCAP=$(/usr/bin/realpath "$PCAP")
echo "Processing Import: ${PCAP}" status "Processing Import: ${PCAP}"
echo "- verifying file" status "- verifying file"
if ! pcapinfo "${PCAP}" > /dev/null 2>&1; then if ! pcapinfo "${PCAP}" > /dev/null 2>&1; then
# try to fix pcap and then process the fixed pcap directly # try to fix pcap and then process the fixed pcap directly
PCAP_FIXED=`mktemp /tmp/so-import-pcap-XXXXXXXXXX.pcap` PCAP_FIXED=`mktemp /tmp/so-import-pcap-XXXXXXXXXX.pcap`
echo "- attempting to recover corrupted PCAP file" status "- attempting to recover corrupted PCAP file"
pcapfix "${PCAP}" "${PCAP_FIXED}" pcapfix "${PCAP}" "${PCAP_FIXED}"
# Make fixed file world readable since the Suricata docker container will runas a non-root user # Make fixed file world readable since the Suricata docker container will runas a non-root user
chmod a+r "${PCAP_FIXED}" chmod a+r "${PCAP_FIXED}"
@@ -131,33 +169,44 @@ for PCAP in "$@"; do
# generate a unique hash to assist with dedupe checks # generate a unique hash to assist with dedupe checks
HASH=$(md5sum "${PCAP}" | awk '{ print $1 }') HASH=$(md5sum "${PCAP}" | awk '{ print $1 }')
HASH_DIR=/nsm/import/${HASH} HASH_DIR=/nsm/import/${HASH}
echo "- assigning unique identifier to import: $HASH" status "- assigning unique identifier to import: $HASH"
if [ -d $HASH_DIR ]; then pcap_data=$(pcapinfo "${PCAP}")
echo "- this PCAP has already been imported; skipping" if ! echo "$pcap_data" | grep -q "First packet time:" || echo "$pcap_data" |egrep -q "Last packet time: 1970-01-01|Last packet time: n/a"; then
INVALID_PCAPS="yes" status "- this PCAP file is invalid; skipping"
elif pcapinfo "${PCAP}" |egrep -q "Last packet time: 1970-01-01|Last packet time: n/a"; then INVALID_PCAPS_COUNT=$((INVALID_PCAPS_COUNT + 1))
echo "- this PCAP file is invalid; skipping"
INVALID_PCAPS="yes"
else else
VALID_PCAPS="yes" if [ -d $HASH_DIR ]; then
status "- this PCAP has already been imported; skipping"
SKIPPED_PCAPS_COUNT=$((SKIPPED_PCAPS_COUNT + 1))
else
VALID_PCAPS_COUNT=$((VALID_PCAPS_COUNT + 1))
PCAP_DIR=$HASH_DIR/pcap PCAP_DIR=$HASH_DIR/pcap
mkdir -p $PCAP_DIR mkdir -p $PCAP_DIR
# generate IDS alerts and write them to standard pipeline # generate IDS alerts and write them to standard pipeline
echo "- analyzing traffic with Suricata" status "- analyzing traffic with Suricata"
suricata "${PCAP}" $HASH suricata "${PCAP}" $HASH
{% if salt['pillar.get']('global:mdengine') == 'ZEEK' %} {% if salt['pillar.get']('global:mdengine') == 'ZEEK' %}
# generate Zeek logs and write them to a unique subdirectory in /nsm/import/zeek/ # generate Zeek logs and write them to a unique subdirectory in /nsm/import/zeek/
# since each run writes to a unique subdirectory, there is no need for a lock file # since each run writes to a unique subdirectory, there is no need for a lock file
echo "- analyzing traffic with Zeek" status "- analyzing traffic with Zeek"
zeek "${PCAP}" $HASH zeek "${PCAP}" $HASH
{% endif %} {% endif %}
fi
if [[ "$HASH_FILTERS" == "" ]]; then
HASH_FILTERS="import.id:${HASH}"
HASHES="${HASH}"
else
HASH_FILTERS="$HASH_FILTERS%20OR%20import.id:${HASH}"
HASHES="${HASHES} ${HASH}"
fi
START=$(pcapinfo "${PCAP}" -a |grep "First packet time:" | awk '{print $4}') START=$(pcapinfo "${PCAP}" -a |grep "First packet time:" | awk '{print $4}')
END=$(pcapinfo "${PCAP}" -e |grep "Last packet time:" | awk '{print $4}') END=$(pcapinfo "${PCAP}" -e |grep "Last packet time:" | awk '{print $4}')
echo "- saving PCAP data spanning dates $START through $END" status "- found PCAP data spanning dates $START through $END"
# compare $START to $START_OLDEST # compare $START to $START_OLDEST
START_COMPARE=$(date -d $START +%s) START_COMPARE=$(date -d $START +%s)
@@ -179,37 +228,62 @@ for PCAP in "$@"; do
fi # end of valid pcap fi # end of valid pcap
echo status
done # end of for-loop processing pcap files done # end of for-loop processing pcap files
# remove temp files # remove temp files
echo "Cleaning up:"
for TEMP_PCAP in ${TEMP_PCAPS[@]}; do for TEMP_PCAP in ${TEMP_PCAPS[@]}; do
echo "- removing temporary pcap $TEMP_PCAP" status "- removing temporary pcap $TEMP_PCAP"
rm -f $TEMP_PCAP rm -f $TEMP_PCAP
done done
# output final messages # output final messages
if [ "$INVALID_PCAPS" = "yes" ]; then if [[ $INVALID_PCAPS_COUNT -gt 0 ]]; then
echo status
echo "Please note! One or more pcaps was invalid! You can scroll up to see which ones were invalid." status "WARNING: One or more pcaps was invalid. Scroll up to see which ones were invalid."
fi fi
START_OLDEST_SLASH=$(echo $START_OLDEST | sed -e 's/-/%2F/g') START_OLDEST_SLASH=$(echo $START_OLDEST | sed -e 's/-/%2F/g')
END_NEWEST_SLASH=$(echo $END_NEWEST | sed -e 's/-/%2F/g') END_NEWEST_SLASH=$(echo $END_NEWEST | sed -e 's/-/%2F/g')
if [[ $VALID_PCAPS_COUNT -gt 0 ]] || [[ $SKIPPED_PCAPS_COUNT -gt 0 ]]; then
URL="https://{{ URLBASE }}/#/dashboards?q=$HASH_FILTERS%20%7C%20groupby%20-sankey%20event.dataset%20event.category%2a%20%7C%20groupby%20-pie%20event.category%20%7C%20groupby%20-bar%20event.module%20%7C%20groupby%20event.dataset%20%7C%20groupby%20event.module%20%7C%20groupby%20event.category%20%7C%20groupby%20observer.name%20%7C%20groupby%20source.ip%20%7C%20groupby%20destination.ip%20%7C%20groupby%20destination.port&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM&z=UTC"
if [ "$VALID_PCAPS" = "yes" ]; then status "Import complete!"
cat << EOF status
status "Use the following hyperlink to view the imported data. Triple-click to quickly highlight the entire hyperlink and then copy it into a browser:"
Import complete! status "$URL"
status
You can use the following hyperlink to view data in the time range of your import. You can triple-click to quickly highlight the entire hyperlink and you can then copy it into your browser: status "or, manually set the Time Range to be (in UTC):"
https://{{ URLBASE }}/#/dashboards?q=import.id:${HASH}%20%7C%20groupby%20-sankey%20event.dataset%20event.category%2a%20%7C%20groupby%20-pie%20event.category%20%7C%20groupby%20-bar%20event.module%20%7C%20groupby%20event.dataset%20%7C%20groupby%20event.module%20%7C%20groupby%20event.category%20%7C%20groupby%20observer.name%20%7C%20groupby%20source.ip%20%7C%20groupby%20destination.ip%20%7C%20groupby%20destination.port&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM&z=UTC status "From: $START_OLDEST To: $END_NEWEST"
status
or you can manually set your Time Range to be (in UTC): status "Note: It can take 30 seconds or more for events to appear in Security Onion Console."
From: $START_OLDEST To: $END_NEWEST RESULT=0
else
Please note that it may take 30 seconds or more for events to appear in Security Onion Console. START_OLDEST=
EOF END_NEWEST=
URL=
RESULT=1
fi fi
if [[ $json -eq 1 ]]; then
jq -n \
--arg success_count "$VALID_PCAPS_COUNT" \
--arg fail_count "$INVALID_PCAPS_COUNT" \
--arg skipped_count "$SKIPPED_PCAPS_COUNT" \
--arg begin_date "$START_OLDEST" \
--arg end_date "$END_NEWEST" \
--arg url "$URL" \
--arg hashes "$HASHES" \
'''{
success_count: $success_count,
fail_count: $fail_count,
skipped_count: $skipped_count,
begin_date: $begin_date,
end_date: $end_date,
url: $url,
hash: ($hashes / " ")
}'''
fi
exit $RESULT
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
+1 -1
View File
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -13,7 +13,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
+1 -1
View File
@@ -13,7 +13,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
+1 -1
View File
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
+1 -1
View File
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern
+1 -1
View File
@@ -12,7 +12,7 @@ actions:
options: options:
delete_aliases: False delete_aliases: False
timeout_override: timeout_override:
continue_if_exception: False ignore_empty_list: True
disable_action: False disable_action: False
filters: filters:
- filtertype: pattern - filtertype: pattern

Before

Width:  |  Height:  |  Size: 269 KiB

After

Width:  |  Height:  |  Size: 269 KiB

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before

Width:  |  Height:  |  Size: 319 KiB

After

Width:  |  Height:  |  Size: 319 KiB

@@ -1,7 +1,7 @@
include: include:
- workstation.xwindows - desktop.xwindows
{# If the master is 'salt' then the minion hasn't been configured and isn't connected to the grid. #} {# If the master is 'salt' then the minion hasn't been configured and isn't connected to the grid. #}
{# We need this since the trusted-ca state uses mine data. #} {# We need this since the trusted-ca state uses mine data. #}
{% if grains.master != 'salt' %} {% if grains.master != 'salt' %}
- workstation.trusted-ca - desktop.trusted-ca
{% endif %} {% endif %}
+442
View File
@@ -0,0 +1,442 @@
{% from 'vars/globals.map.jinja' import GLOBALS %}
{# we only want this state to run it is CentOS #}
{% if GLOBALS.os == 'OEL' %}
desktop_packages:
pkg.installed:
- pkgs:
- ModemManager
- ModemManager-glib
- NetworkManager
- NetworkManager-adsl
- NetworkManager-bluetooth
- NetworkManager-config-server
- NetworkManager-libnm
- NetworkManager-team
- NetworkManager-tui
- NetworkManager-wifi
- NetworkManager-wwan
- PackageKit
- PackageKit-command-not-found
- PackageKit-glib
- PackageKit-gstreamer-plugin
- PackageKit-gtk3-module
- audit
- audit-libs
- authselect
- authselect-libs
- avahi
- avahi-glib
- avahi-libs
- baobab
- basesystem
- bc
- bcache-tools
- bluez
- bluez-libs
- bluez-obexd
- bolt
- bzip2
- bzip2-libs
- c-ares
- ca-certificates
- cairo
- cairo-gobject
- cairomm
- checkpolicy
- chkconfig
- chrome-gnome-shell
- chromium
- clutter
- clutter-gst3
- clutter-gtk
- cogl
- color-filesystem
- colord
- colord-gtk
- colord-libs
- conmon
- cups
- cups-client
- cups-filesystem
- cups-filters
- cups-filters-libs
- cups-ipptool
- cups-libs
- cups-pk-helper
- dconf
- dejavu-sans-fonts
- dejavu-sans-mono-fonts
- dejavu-serif-fonts
- desktop-file-utils
- dsniff
- ethtool
- evolution-data-server
- evolution-data-server-langpacks
- file
- flac-libs
- flashrom
- flatpak
- flatpak-libs
- flatpak-selinux
- flatpak-session-helper
- fontconfig
- fonts-filesystem
- foomatic
- foomatic-db
- foomatic-db-filesystem
- foomatic-db-ppds
- freetype
- fuse
- fuse-common
- fuse-libs
- fuse-overlayfs
- fuse3
- fuse3-libs
- fwupd
- fwupd-plugin-flashrom
- gcr
- gcr-base
- gd
- gdbm-libs
- gdisk
- gdk-pixbuf2
- gdk-pixbuf2-modules
- gdm
- gedit
- geoclue2
- geoclue2-libs
- geocode-glib
- gettext
- gettext-libs
- ghostscript
- ghostscript-tools-fonts
- ghostscript-tools-printing
- giflib
- glx-utils
- gmp
- gnome-autoar
- gnome-bluetooth
- gnome-bluetooth-libs
- gnome-calculator
- gnome-characters
- gnome-classic-session
- gnome-color-manager
- gnome-control-center
- gnome-control-center-filesystem
- gnome-desktop3
- gnome-disk-utility
- gnome-font-viewer
- gnome-initial-setup
- gnome-keyring
- gnome-keyring-pam
- gnome-logs
- gnome-menus
- gnome-online-accounts
- gnome-remote-desktop
- gnome-screenshot
- gnome-session
- gnome-session-wayland-session
- gnome-session-xsession
- gnome-settings-daemon
- gnome-shell
- gnome-shell-extension-apps-menu
- gnome-shell-extension-background-logo
- gnome-shell-extension-common
- gnome-shell-extension-desktop-icons
- gnome-shell-extension-launch-new-instance
- gnome-shell-extension-places-menu
- gnome-shell-extension-window-list
- gnome-software
- gnome-system-monitor
- gnome-terminal
- gnome-terminal-nautilus
- gnome-tour
- gnome-user-docs
- gnome-video-effects
- gobject-introspection
- gom
- google-droid-sans-fonts
- google-noto-cjk-fonts-common
- google-noto-emoji-color-fonts
- google-noto-fonts-common
- google-noto-sans-cjk-ttc-fonts
- google-noto-sans-gurmukhi-fonts
- google-noto-sans-sinhala-vf-fonts
- google-noto-serif-cjk-ttc-fonts
- gpgme
- gpm-libs
- graphene
- graphite2
- gsettings-desktop-schemas
- gsm
- gsound
- gspell
- gstreamer1
- gstreamer1-plugins-bad-free
- gstreamer1-plugins-base
- gstreamer1-plugins-good
- gstreamer1-plugins-good-gtk
- gstreamer1-plugins-ugly-free
- gtk-update-icon-cache
- gtk3
- gtk4
- gtkmm30
- gtksourceview4
- gutenprint
- gutenprint-cups
- gutenprint-doc
- gutenprint-libs
- gvfs
- gvfs-client
- gvfs-fuse
- gvfs-goa
- gvfs-gphoto2
- gvfs-mtp
- gvfs-smb
- gzip
- harfbuzz
- harfbuzz-icu
- hdparm
- hicolor-icon-theme
- highcontrast-icon-theme
- hplip-common
- hplip-libs
- hunspell
- hunspell-en
- hunspell-en-GB
- hunspell-en-US
- hunspell-filesystem
- hyphen
- ibus
- ibus-gtk3
- ibus-libs
- ibus-setup
- iio-sensor-proxy
- ima-evm-utils
- inih
- initscripts-rename-device
- initscripts-service
- iso-codes
- jansson
- jbig2dec-libs
- jbigkit-libs
- jomolhari-fonts
- jose
- jq
- json-c
- json-glib
- julietaula-montserrat-fonts
- kbd
- kbd-misc
- khmer-os-system-fonts
- langpacks-core-en
- langpacks-core-font-en
- langpacks-en
- lcms2
- libICE
- libSM
- libX11
- libX11-common
- libX11-xcb
- libXau
- libXcomposite
- libXcursor
- libXdamage
- libXdmcp
- libXext
- libXfixes
- libXfont2
- libXft
- libXi
- libXinerama
- libXmu
- libXpm
- libXrandr
- libXrender
- libXres
- libXt
- libXtst
- libXv
- libXxf86dga
- libXxf86vm
- libappstream-glib
- liberation-fonts-common
- liberation-mono-fonts
- liberation-sans-fonts
- liberation-serif-fonts
- libertas-sd8787-firmware
- libglvnd-gles
- libglvnd-glx
- libglvnd-opengl
- libgnomekbd
- libgomp
- libgphoto2
- lockdev
- lohit-assamese-fonts
- lohit-bengali-fonts
- lohit-devanagari-fonts
- lohit-gujarati-fonts
- lohit-kannada-fonts
- lohit-odia-fonts
- lohit-tamil-fonts
- lohit-telugu-fonts
- lshw
- lsof
- mesa-dri-drivers
- mesa-filesystem
- mesa-libEGL
- mesa-libGL
- mesa-libgbm
- mesa-libglapi
- mesa-libxatracker
- mesa-vulkan-drivers
- microcode_ctl
- mobile-broadband-provider-info
- mpfr
- mpg123-libs
- mtdev
- mtr
- nautilus
- nautilus-extensions
- net-tools
- nvme-cli
- open-vm-tools-desktop
- oracle-backgrounds
- oracle-indexhtml
- oracle-logos
- pcaudiolib
- pciutils
- pinentry
- pinentry-gnome3
- pinfo
- pipewire
- pipewire-alsa
- pipewire-gstreamer
- pipewire-jack-audio-connection-kit
- pipewire-libs
- pipewire-pulseaudio
- pipewire-utils
- pixman
- plymouth
- plymouth-core-libs
- plymouth-graphics-libs
- plymouth-plugin-label
- plymouth-plugin-two-step
- plymouth-scripts
- plymouth-system-theme
- plymouth-theme-spinner
- policycoreutils
- policycoreutils-python-utils
- pt-sans-fonts
- pulseaudio-libs
- pulseaudio-libs-glib2
- pulseaudio-utils
- sane-airscan
- sane-backends
- sane-backends-drivers-cameras
- sane-backends-drivers-scanners
- sane-backends-libs
- sil-abyssinica-fonts
- sil-nuosu-fonts
- sil-padauk-fonts
- smartmontools
- smc-meera-fonts
- snappy
- sound-theme-freedesktop
- soundtouch
- speech-dispatcher
- speech-dispatcher-espeak-ng
- speex
- spice-vdagent
- switcheroo-control
- symlinks
- system-config-printer-libs
- system-config-printer-udev
- taglib
- tcpdump
- tcpflow
- thai-scalable-fonts-common
- thai-scalable-waree-fonts
- totem
- totem-pl-parser
- totem-video-thumbnailer
- tpm2-tools
- tpm2-tss
- tracer-common
- tracker
- tracker-miners
- tree
- tuned
- twolame-libs
- tzdata
- udisks2
- udisks2-iscsi
- udisks2-lvm2
- unzip
- upower
- urw-base35-bookman-fonts
- urw-base35-c059-fonts
- urw-base35-d050000l-fonts
- urw-base35-fonts
- urw-base35-fonts-common
- urw-base35-gothic-fonts
- urw-base35-nimbus-mono-ps-fonts
- urw-base35-nimbus-roman-fonts
- urw-base35-nimbus-sans-fonts
- urw-base35-p052-fonts
- urw-base35-standard-symbols-ps-fonts
- urw-base35-z003-fonts
- usb_modeswitch
- usb_modeswitch-data
- usbutils
- usermode
- userspace-rcu
- vdo
- vulkan-loader
- wavpack
- webkit2gtk3
- webkit2gtk3-jsc
- webrtc-audio-processing
- whois
- wireless-regdb
- wireplumber
- wireplumber-libs
- wireshark
- woff2
- words
- wpa_supplicant
- wpebackend-fdo
- xdg-dbus-proxy
- xdg-desktop-portal
- xdg-desktop-portal-gnome
- xdg-desktop-portal-gtk
- xdg-user-dirs
- xdg-user-dirs-gtk
- xdg-utils
- xkeyboard-config
- xorg-x11-drv-evdev
- xorg-x11-drv-fbdev
- xorg-x11-drv-libinput
- xorg-x11-drv-vmware
- xorg-x11-drv-wacom
- xorg-x11-drv-wacom-serial-support
- xorg-x11-server-Xorg
- xorg-x11-server-Xwayland
- xorg-x11-server-common
- xorg-x11-server-utils
- xorg-x11-utils
- xorg-x11-xauth
- xorg-x11-xinit
- xorg-x11-xinit-session
- zip
{% else %}
desktop_packages_os_fail:
test.fail_without_changes:
- comment: 'SO desktop can only be installed on Oracle Linux'
{% endif %}
@@ -1,7 +1,7 @@
{% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'vars/globals.map.jinja' import GLOBALS %}
{# we only want this state to run it is CentOS #} {# we only want this state to run it is CentOS #}
{% if GLOBALS.os == 'Rocky' %} {% if GLOBALS.os == 'OEL' %}
remove_graphical_target: remove_graphical_target:
file.symlink: file.symlink:
@@ -10,8 +10,8 @@ remove_graphical_target:
- force: True - force: True
{% else %} {% else %}
workstation_trusted-ca_os_fail: desktop_trusted-ca_os_fail:
test.fail_without_changes: test.fail_without_changes:
- comment: 'SO Analyst Workstation can only be installed on CentOS' - comment: 'SO Desktop can only be installed on Oracle Linux'
{% endif %} {% endif %}
@@ -1,7 +1,7 @@
{% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'vars/globals.map.jinja' import GLOBALS %}
{# we only want this state to run it is CentOS #} {# we only want this state to run it is CentOS #}
{% if GLOBALS.os == 'Rocky' %} {% if GLOBALS.os == 'OEL' %}
{% set global_ca_text = [] %} {% set global_ca_text = [] %}
{% set global_ca_server = [] %} {% set global_ca_server = [] %}
@@ -29,8 +29,8 @@ update_ca_certs:
{% else %} {% else %}
workstation_trusted-ca_os_fail: desktop_trusted-ca_os_fail:
test.fail_without_changes: test.fail_without_changes:
- comment: 'SO Analyst Workstation can only be installed on CentOS' - comment: 'SO Desktop can only be installed on CentOS'
{% endif %} {% endif %}
@@ -1,10 +1,10 @@
{% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'vars/globals.map.jinja' import GLOBALS %}
{# we only want this state to run it is CentOS #} {# we only want this state to run it is CentOS #}
{% if GLOBALS.os == 'Rocky' %} {% if GLOBALS.os == 'OEL' %}
include: include:
- workstation.packages - desktop.packages
graphical_target: graphical_target:
file.symlink: file.symlink:
@@ -12,13 +12,12 @@ graphical_target:
- target: /lib/systemd/system/graphical.target - target: /lib/systemd/system/graphical.target
- force: True - force: True
- require: - require:
- pkg: X Window System - desktop_packages
- pkg: graphical_extras
{% else %} {% else %}
workstation_xwindows_os_fail: desktop_xwindows_os_fail:
test.fail_without_changes: test.fail_without_changes:
- comment: 'SO Analyst Workstation can only be installed on CentOS' - comment: 'SO Desktop can only be installed on Oracle Linux'
{% endif %} {% endif %}
+8 -5
View File
@@ -1,8 +1,6 @@
docker: docker:
bip: '172.17.0.1' range: '172.17.1.0/24'
range: '172.17.0.0/24' gateway: '172.17.1.1'
sorange: '172.17.1.0/24'
sobip: '172.17.1.1'
containers: containers:
'so-dockerregistry': 'so-dockerregistry':
final_octet: 20 final_octet: 20
@@ -178,6 +176,11 @@ docker:
custom_bind_mounts: [] custom_bind_mounts: []
extra_hosts: [] extra_hosts: []
extra_env: [] extra_env: []
'so-elastic-agent':
final_octet: 46
custom_bind_mounts: []
extra_hosts: []
extra_env: []
'so-telegraf': 'so-telegraf':
final_octet: 99 final_octet: 99
custom_bind_mounts: [] custom_bind_mounts: []
@@ -197,4 +200,4 @@ docker:
final_octet: 99 final_octet: 99
custom_bind_mounts: [] custom_bind_mounts: []
extra_hosts: [] extra_hosts: []
extra_env: [] extra_env: []
+1 -1
View File
@@ -1,6 +1,6 @@
{% import_yaml 'docker/defaults.yaml' as DOCKERDEFAULTS %} {% import_yaml 'docker/defaults.yaml' as DOCKERDEFAULTS %}
{% set DOCKER = salt['pillar.get']('docker', DOCKERDEFAULTS.docker, merge=True) %} {% set DOCKER = salt['pillar.get']('docker', DOCKERDEFAULTS.docker, merge=True) %}
{% set RANGESPLIT = DOCKER.sorange.split('.') %} {% set RANGESPLIT = DOCKER.range.split('.') %}
{% set FIRSTTHREE = RANGESPLIT[0] ~ '.' ~ RANGESPLIT[1] ~ '.' ~ RANGESPLIT[2] ~ '.' %} {% set FIRSTTHREE = RANGESPLIT[0] ~ '.' ~ RANGESPLIT[1] ~ '.' ~ RANGESPLIT[2] ~ '.' %}
{% for container, vals in DOCKER.containers.items() %} {% for container, vals in DOCKER.containers.items() %}
+29 -7
View File
@@ -12,7 +12,28 @@ dockergroup:
- name: docker - name: docker
- gid: 920 - gid: 920
{% if GLOBALS.os == 'Ubuntu' %} {% if GLOBALS.os_family == 'Debian' %}
{% if grains.oscodename == 'bookworm' %}
dockerheldpackages:
pkg.installed:
- pkgs:
- containerd.io: 1.6.21-1
- docker-ce: 5:24.0.3-1~debian.12~bookworm
- docker-ce-cli: 5:24.0.3-1~debian.12~bookworm
- docker-ce-rootless-extras: 5:24.0.3-1~debian.12~bookworm
- hold: True
- update_holds: True
{% elif grains.oscodename == 'jammy' %}
dockerheldpackages:
pkg.installed:
- pkgs:
- containerd.io: 1.6.21-1
- docker-ce: 5:24.0.2-1~ubuntu.22.04~jammy
- docker-ce-cli: 5:24.0.2-1~ubuntu.22.04~jammy
- docker-ce-rootless-extras: 5:24.0.2-1~ubuntu.22.04~jammy
- hold: True
- update_holds: True
{% else %}
dockerheldpackages: dockerheldpackages:
pkg.installed: pkg.installed:
- pkgs: - pkgs:
@@ -22,14 +43,15 @@ dockerheldpackages:
- docker-ce-rootless-extras: 5:20.10.5~3-0~ubuntu-focal - docker-ce-rootless-extras: 5:20.10.5~3-0~ubuntu-focal
- hold: True - hold: True
- update_holds: True - update_holds: True
{% endif %}
{% else %} {% else %}
dockerheldpackages: dockerheldpackages:
pkg.installed: pkg.installed:
- pkgs: - pkgs:
- containerd.io: 1.6.20-3.1.el9 - containerd.io: 1.6.21-3.1.el9
- docker-ce: 23.0.5-1.el9 - docker-ce: 24.0.4-1.el9
- docker-ce-cli: 23.0.5-1.el9 - docker-ce-cli: 24.0.4-1.el9
- docker-ce-rootless-extras: 23.0.5-1.el9 - docker-ce-rootless-extras: 24.0.4-1.el9
- hold: True - hold: True
- update_holds: True - update_holds: True
{% endif %} {% endif %}
@@ -80,8 +102,8 @@ dockerreserveports:
sos_docker_net: sos_docker_net:
docker_network.present: docker_network.present:
- name: sobridge - name: sobridge
- subnet: {{ DOCKER.sorange }} - subnet: {{ DOCKER.range }}
- gateway: {{ DOCKER.sobip }} - gateway: {{ DOCKER.gateway }}
- options: - options:
com.docker.network.bridge.name: 'sobridge' com.docker.network.bridge.name: 'sobridge'
com.docker.network.driver.mtu: '1500' com.docker.network.driver.mtu: '1500'
+3 -11
View File
@@ -1,20 +1,12 @@
docker: docker:
bip: gateway:
description: Bind IP for the default docker interface. description: Gateway for the default docker interface.
helpLink: docker.html helpLink: docker.html
advanced: True advanced: True
range: range:
description: Default docker IP range for containers. description: Default docker IP range for containers.
helpLink: docker.html helpLink: docker.html
advanced: True advanced: True
sobip:
description: Bind IP for the SO docker interface.
helpLink: docker.html
advanced: True
sorange:
description: IP range for the SO docker containers.
helpLink: docker.html
advanced: True
containers: containers:
so-curator: &dockerOptions so-curator: &dockerOptions
final_octet: final_octet:
@@ -68,4 +60,4 @@ docker:
so-strelka-filestream: *dockerOptions so-strelka-filestream: *dockerOptions
so-strelka-frontend: *dockerOptions so-strelka-frontend: *dockerOptions
so-strelka-gatekeeper: *dockerOptions so-strelka-gatekeeper: *dockerOptions
so-strelka-manager: *dockerOptions so-strelka-manager: *dockerOptions
-1
View File
@@ -13,7 +13,6 @@ elastalert:
es_port: 9200 es_port: 9200
es_conn_timeout: 55 es_conn_timeout: 55
max_query_size: 5000 max_query_size: 5000
eql: true
use_ssl: true use_ssl: true
verify_certs: false verify_certs: false
writeback_index: elastalert writeback_index: elastalert
@@ -30,8 +30,8 @@ class PlaybookESAlerter(Alerter):
if 'es_username' in self.rule and 'es_password' in self.rule: if 'es_username' in self.rule and 'es_password' in self.rule:
creds = (self.rule['es_username'], self.rule['es_password']) creds = (self.rule['es_username'], self.rule['es_password'])
payload = {"rule": { "name": self.rule['play_title'],"case_template": self.rule['play_id'],"uuid": self.rule['play_id'],"category": self.rule['rule.category']},"event":{ "severity": self.rule['event.severity'],"module": self.rule['event.module'],"dataset": self.rule['event.dataset'],"severity_label": self.rule['sigma_level']},"kibana_pivot": self.rule['kibana_pivot'],"soc_pivot": self.rule['soc_pivot'],"play_url": self.rule['play_url'],"sigma_level": self.rule['sigma_level'],"event_data": match, "@timestamp": timestamp} payload = {"tags":"alert","rule": { "name": self.rule['play_title'],"case_template": self.rule['play_id'],"uuid": self.rule['play_id'],"category": self.rule['rule.category']},"event":{ "severity": self.rule['event.severity'],"module": self.rule['event.module'],"dataset": self.rule['event.dataset'],"severity_label": self.rule['sigma_level']},"kibana_pivot": self.rule['kibana_pivot'],"soc_pivot": self.rule['soc_pivot'],"play_url": self.rule['play_url'],"sigma_level": self.rule['sigma_level'],"event_data": match, "@timestamp": timestamp}
url = f"{self.rule['es_hosts']}/so-playbook-alerts-{today}/_doc/" url = f"https://{self.rule['es_host']}:{self.rule['es_port']}/logs-playbook.alerts-so/_doc/"
requests.post(url, data=json.dumps(payload), headers=headers, verify=False, auth=creds) requests.post(url, data=json.dumps(payload), headers=headers, verify=False, auth=creds)
def get_info(self): def get_info(self):
+1 -1
View File
@@ -8,7 +8,7 @@
{% set elastalert_pillar = salt['pillar.get']('elastalert:config', {}) %} {% set elastalert_pillar = salt['pillar.get']('elastalert:config', {}) %}
{% do ELASTALERTDEFAULTS.elastalert.config.update({'es_hosts': 'https://' + GLOBALS.manager + ':' + ELASTALERTDEFAULTS.elastalert.config.es_port|string}) %} {% do ELASTALERTDEFAULTS.elastalert.config.update({'es_host': GLOBALS.manager}) %}
{% do ELASTALERTDEFAULTS.elastalert.config.update({'es_username': pillar.elasticsearch.auth.users.so_elastic_user.user}) %} {% do ELASTALERTDEFAULTS.elastalert.config.update({'es_username': pillar.elasticsearch.auth.users.so_elastic_user.user}) %}
{% do ELASTALERTDEFAULTS.elastalert.config.update({'es_password': pillar.elasticsearch.auth.users.so_elastic_user.pass}) %} {% do ELASTALERTDEFAULTS.elastalert.config.update({'es_password': pillar.elasticsearch.auth.users.so_elastic_user.pass}) %}
+55
View File
@@ -0,0 +1,55 @@
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
{% from 'allowed_states.map.jinja' import allowed_states %}
{% from 'vars/globals.map.jinja' import GLOBALS %}
{% if sls.split('.')[0] in allowed_states %}
# Add EA Group
elasticagentgroup:
group.present:
- name: elastic-agent
- gid: 949
# Add EA user
elastic-agent:
user.present:
- uid: 949
- gid: 949
- home: /opt/so/conf/elastic-agent
- createhome: False
elasticagentconfdir:
file.directory:
- name: /opt/so/conf/elastic-agent
- user: 949
- group: 939
- makedirs: True
elasticagent_sbin_jinja:
file.recurse:
- name: /usr/sbin
- source: salt://elasticagent/tools/sbin_jinja
- user: 949
- group: 939
- file_mode: 755
- template: jinja
# Create config
create-elastic-agent-config:
file.managed:
- name: /opt/so/conf/elastic-agent/elastic-agent.yml
- source: salt://elasticagent/files/elastic-agent.yml.jinja
- user: 949
- group: 939
- template: jinja
{% else %}
{{sls}}_state_not_allowed:
test.fail_without_changes:
- name: {{sls}}_state_not_allowed
{% endif %}
+2
View File
@@ -0,0 +1,2 @@
elasticagent:
enabled: False
+27
View File
@@ -0,0 +1,27 @@
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
{% from 'allowed_states.map.jinja' import allowed_states %}
{% if sls.split('.')[0] in allowed_states %}
include:
- elasticagent.sostatus
so-elastic-agent:
docker_container.absent:
- force: True
so-elastic-agent_so-status.disabled:
file.comment:
- name: /opt/so/conf/so-status/so-status.conf
- regex: ^so-elastic-agent$
{% else %}
{{sls}}_state_not_allowed:
test.fail_without_changes:
- name: {{sls}}_state_not_allowed
{% endif %}
+65
View File
@@ -0,0 +1,65 @@
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
{% from 'allowed_states.map.jinja' import allowed_states %}
{% if sls.split('.')[0] in allowed_states %}
{% from 'vars/globals.map.jinja' import GLOBALS %}
{% from 'docker/docker.map.jinja' import DOCKER %}
include:
- elasticagent.config
- elasticagent.sostatus
so-elastic-agent:
docker_container.running:
- image: {{ GLOBALS.registry_host }}:5000/{{ GLOBALS.image_repo }}/so-elastic-agent:{{ GLOBALS.so_version }}
- name: so-elastic-agent
- hostname: {{ GLOBALS.hostname }}
- detach: True
- user: 949
- networks:
- sobridge:
- ipv4_address: {{ DOCKER.containers['so-elastic-agent'].ip }}
- extra_hosts:
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
{% if DOCKER.containers['so-elastic-agent'].extra_hosts %}
{% for XTRAHOST in DOCKER.containers['so-elastic-agent'].extra_hosts %}
- {{ XTRAHOST }}
{% endfor %}
{% endif %}
- binds:
- /opt/so/conf/elastic-agent/elastic-agent.yml:/usr/share/elastic-agent/elastic-agent.yml:ro
- /etc/pki/tls/certs/intca.crt:/etc/pki/tls/certs/intca.crt:ro
- /nsm:/nsm:ro
{% if DOCKER.containers['so-elastic-agent'].custom_bind_mounts %}
{% for BIND in DOCKER.containers['so-elastic-agent'].custom_bind_mounts %}
- {{ BIND }}
{% endfor %}
{% endif %}
- environment:
- FLEET_CA=/etc/pki/tls/certs/intca.crt
{% if DOCKER.containers['so-elastic-agent'].extra_env %}
{% for XTRAENV in DOCKER.containers['so-elastic-agent'].extra_env %}
- {{ XTRAENV }}
{% endfor %}
{% endif %}
- watch:
- file: create-elastic-agent-config
delete_so-elastic-agent_so-status.disabled:
file.uncomment:
- name: /opt/so/conf/so-status/so-status.conf
- regex: ^so-elastic-agent$
{% else %}
{{sls}}_state_not_allowed:
test.fail_without_changes:
- name: {{sls}}_state_not_allowed
{% endif %}
@@ -0,0 +1,119 @@
{% from 'vars/globals.map.jinja' import GLOBALS %}
{%- set ES_USER = salt['pillar.get']('elasticsearch:auth:users:so_elastic_user:user', '') %}
{%- set ES_PASS = salt['pillar.get']('elasticsearch:auth:users:so_elastic_user:pass', '') %}
id: aea1ba80-1065-11ee-a369-97538913b6a9
revision: 2
outputs:
default:
type: elasticsearch
hosts:
- 'https://{{ GLOBALS.hostname }}:9200'
username: '{{ ES_USER }}'
password: '{{ ES_PASS }}'
ssl.verification_mode: full
output_permissions: {}
agent:
download:
sourceURI: 'http://{{ GLOBALS.manager }}:8443/artifacts/'
monitoring:
enabled: false
logs: false
metrics: false
features: {}
inputs:
- id: logfile-logs-80ffa884-2cfc-459a-964a-34df25714d85
name: suricata-logs
revision: 1
type: logfile
use_output: default
meta:
package:
name: log
version:
data_stream:
namespace: so
package_policy_id: 80ffa884-2cfc-459a-964a-34df25714d85
streams:
- id: logfile-log.log-80ffa884-2cfc-459a-964a-34df25714d85
data_stream:
dataset: suricata
paths:
- /nsm/suricata/eve*.json
processors:
- add_fields:
target: event
fields:
category: network
module: suricata
pipeline: suricata.common
- id: logfile-logs-90103ac4-f6bd-4a4a-b596-952c332390fc
name: strelka-logs
revision: 1
type: logfile
use_output: default
meta:
package:
name: log
version:
data_stream:
namespace: so
package_policy_id: 90103ac4-f6bd-4a4a-b596-952c332390fc
streams:
- id: logfile-log.log-90103ac4-f6bd-4a4a-b596-952c332390fc
data_stream:
dataset: strelka
paths:
- /nsm/strelka/log/strelka.log
processors:
- add_fields:
target: event
fields:
category: file
module: strelka
pipeline: strelka.file
- id: logfile-logs-6197fe84-9b58-4d9b-8464-3d517f28808d
name: zeek-logs
revision: 1
type: logfile
use_output: default
meta:
package:
name: log
version:
data_stream:
namespace: so
package_policy_id: 6197fe84-9b58-4d9b-8464-3d517f28808d
streams:
- id: logfile-log.log-6197fe84-9b58-4d9b-8464-3d517f28808d
data_stream:
dataset: zeek
paths:
- /nsm/zeek/logs/current/*.log
processors:
- dissect:
tokenizer: '/nsm/zeek/logs/current/%{pipeline}.log'
field: log.file.path
trim_chars: .log
target_prefix: ''
- script:
lang: javascript
source: |
function process(event) {
var pl = event.Get("pipeline");
event.Put("@metadata.pipeline", "zeek." + pl);
}
- add_fields:
target: event
fields:
category: network
module: zeek
- add_tags:
tags: ics
when:
regexp:
pipeline: >-
^bacnet*|^bsap*|^cip*|^cotp*|^dnp3*|^ecat*|^enip*|^modbus*|^opcua*|^profinet*|^s7comm*
exclude_files:
- >-
broker|capture_loss|cluster|ecat_arp_info|known_hosts|known_services|loaded_scripts|ntp|ocsp|packet_filter|reporter|stats|stderr|stdout.log$
+13
View File
@@ -0,0 +1,13 @@
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
{% from 'elasticagent/map.jinja' import ELASTICAGENTMERGED %}
include:
{% if ELASTICAGENTMERGED.enabled %}
- elasticagent.enabled
{% else %}
- elasticagent.disabled
{% endif %}
+7
View File
@@ -0,0 +1,7 @@
{# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
https://securityonion.net/license; you may not use this file except in compliance with the
Elastic License 2.0. #}
{% import_yaml 'elasticagent/defaults.yaml' as ELASTICAGENTDEFAULTS %}
{% set ELASTICAGENTMERGED = salt['pillar.get']('elasticagent', ELASTICAGENTDEFAULTS.elasticagent, merge=True) %}
+21
View File
@@ -0,0 +1,21 @@
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
{% from 'allowed_states.map.jinja' import allowed_states %}
{% if sls.split('.')[0] in allowed_states %}
append_so-elastic-agent_so-status.conf:
file.append:
- name: /opt/so/conf/so-status/so-status.conf
- text: so-elastic-agent
- unless: grep -q so-elastic-agent$ /opt/so/conf/so-status/so-status.conf
{% else %}
{{sls}}_state_not_allowed:
test.fail_without_changes:
- name: {{sls}}_state_not_allowed
{% endif %}
@@ -0,0 +1,16 @@
#!/bin/bash
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% if grains.role == 'so-heavynode' %}
docker exec so-elastic-agent /usr/share/elastic-agent/elastic-agent inspect
{% else %}
/bin/elastic-agent inspect
{% endif %}
@@ -0,0 +1,17 @@
#!/bin/bash
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% if grains.role == 'so-heavynode' %}
/usr/sbin/so-stop elastic-agent $1
/usr/sbin/so-start elasticagent $1
{% else %}
service elastic-agent restart
{% endif %}
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% if grains.role == 'so-heavynode' %}
/usr/sbin/so-start elasticagent $1
{% else %}
service elastic-agent start
{% endif %}
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% if grains.role == 'so-heavynode' %}
docker exec so-elastic-agent /usr/share/elastic-agent/elastic-agent status
{% else %}
/bin/elastic-agent status
{% endif %}
@@ -9,4 +9,9 @@
. /usr/sbin/so-common . /usr/sbin/so-common
docker exec -it so-redis redis-cli llen logstash:unparsed {% if grains.role == 'so-heavynode' %}
/usr/sbin/so-stop elastic-agent $1
{% else %}
service elastic-agent stop
{% endif %}
@@ -0,0 +1,17 @@
#!/bin/bash
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% if grains.role == 'so-heavynode' %}
docker exec so-elastic-agent /usr/share/elastic-agent/elastic-agent version
{% else %}
/bin/elastic-agent version
{% endif %}
+10 -3
View File
@@ -8,13 +8,13 @@
{% if sls.split('.')[0] in allowed_states %} {% if sls.split('.')[0] in allowed_states %}
# Add EA Group # Add EA Group
elasticsagentgroup: elasticfleetgroup:
group.present: group.present:
- name: elastic-agent - name: elastic-fleet
- gid: 947 - gid: 947
# Add EA user # Add EA user
elastic-agent: elastic-fleet:
user.present: user.present:
- uid: 947 - uid: 947
- gid: 947 - gid: 947
@@ -45,6 +45,13 @@ eaconfdir:
- group: 939 - group: 939
- makedirs: True - makedirs: True
ealogdir:
file.directory:
- name: /opt/so/log/elasticfleet
- user: 947
- group: 939
- makedirs: True
eastatedir: eastatedir:
file.directory: file.directory:
- name: /opt/so/conf/elastic-fleet/state - name: /opt/so/conf/elastic-fleet/state
+13 -1
View File
@@ -2,22 +2,34 @@ elasticfleet:
enabled: False enabled: False
config: config:
server: server:
custom_fqdn: ''
enable_auto_configuration: True
endpoints_enrollment: '' endpoints_enrollment: ''
es_token: '' es_token: ''
grid_enrollment: '' grid_enrollment: ''
url: ''
logging: logging:
zeek: zeek:
excluded: excluded:
- broker - broker
- capture_loss - capture_loss
- cluster
- ecat_arp_info - ecat_arp_info
- known_hosts - known_hosts
- known_services - known_services
- loaded_scripts - loaded_scripts
- ntp - ntp
- ocsp
- packet_filter - packet_filter
- reporter - reporter
- stats - stats
- stderr - stderr
- stdout - stdout
packages:
- aws
- azure
- cloudflare
- endpoint
- fim
- github
- google_workspace
- 1password
+37 -4
View File
@@ -7,6 +7,8 @@
{% if sls.split('.')[0] in allowed_states %} {% if sls.split('.')[0] in allowed_states %}
{% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'vars/globals.map.jinja' import GLOBALS %}
{% from 'docker/docker.map.jinja' import DOCKER %} {% from 'docker/docker.map.jinja' import DOCKER %}
{% from 'elasticfleet/map.jinja' import ELASTICFLEETMERGED %}
{# This value is generated during node install and stored in minion pillar #} {# This value is generated during node install and stored in minion pillar #}
{% set SERVICETOKEN = salt['pillar.get']('elasticfleet:config:server:es_token','') %} {% set SERVICETOKEN = salt['pillar.get']('elasticfleet:config:server:es_token','') %}
@@ -14,6 +16,27 @@ include:
- elasticfleet.config - elasticfleet.config
- elasticfleet.sostatus - elasticfleet.sostatus
# If enabled, automatically update Fleet Logstash Outputs
{% if ELASTICFLEETMERGED.config.server.enable_auto_configuration and grains.role not in ['so-import', 'so-eval', 'so-fleet'] %}
so-elastic-fleet-auto-configure-logstash-outputs:
cmd.run:
- name: /usr/sbin/so-elastic-fleet-outputs-update
{% endif %}
# If enabled, automatically update Fleet Server URLs & ES Connection
{% if ELASTICFLEETMERGED.config.server.enable_auto_configuration and grains.role not in ['so-fleet'] %}
so-elastic-fleet-auto-configure-server-urls:
cmd.run:
- name: /usr/sbin/so-elastic-fleet-urls-update
{% endif %}
# Automatically update Fleet Server Elasticsearch URLs
{% if grains.role not in ['so-fleet'] %}
so-elastic-fleet-auto-configure-elasticsearch-urls:
cmd.run:
- name: /usr/sbin/so-elastic-fleet-es-url-update
{% endif %}
{% if SERVICETOKEN != '' %} {% if SERVICETOKEN != '' %}
so-elastic-fleet: so-elastic-fleet:
docker_container.running: docker_container.running:
@@ -39,7 +62,11 @@ so-elastic-fleet:
{% endfor %} {% endfor %}
- binds: - binds:
- /etc/pki:/etc/pki:ro - /etc/pki:/etc/pki:ro
{% if GLOBALS.os_family == 'Debian' %}
- /etc/ssl:/etc/ssl:ro
{% endif %}
#- /opt/so/conf/elastic-fleet/state:/usr/share/elastic-agent/state:rw #- /opt/so/conf/elastic-fleet/state:/usr/share/elastic-agent/state:rw
- /opt/so/log/elasticfleet:/usr/share/elastic-agent/logs
{% if DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %} {% if DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %}
{% for BIND in DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %} {% for BIND in DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %}
- {{ BIND }} - {{ BIND }}
@@ -47,14 +74,20 @@ so-elastic-fleet:
{% endif %} {% endif %}
- environment: - environment:
- FLEET_SERVER_ENABLE=true - FLEET_SERVER_ENABLE=true
- FLEET_URL=https://{{ GLOBALS.node_ip }}:8220 - FLEET_URL=https://{{ GLOBALS.hostname }}:8220
- FLEET_SERVER_ELASTICSEARCH_HOST=https://{{ GLOBALS.manager }}:9200 - FLEET_SERVER_ELASTICSEARCH_HOST=https://{{ GLOBALS.manager }}:9200
- FLEET_SERVER_SERVICE_TOKEN={{ SERVICETOKEN }} - FLEET_SERVER_SERVICE_TOKEN={{ SERVICETOKEN }}
- FLEET_SERVER_POLICY_ID=FleetServer_{{ GLOBALS.hostname }} - FLEET_SERVER_POLICY_ID=FleetServer_{{ GLOBALS.hostname }}
- FLEET_SERVER_ELASTICSEARCH_CA=/etc/pki/tls/certs/intca.crt - FLEET_SERVER_CERT=/etc/pki/elasticfleet-server.crt
- FLEET_SERVER_CERT=/etc/pki/elasticfleet.crt - FLEET_SERVER_CERT_KEY=/etc/pki/elasticfleet-server.key
- FLEET_SERVER_CERT_KEY=/etc/pki/elasticfleet.key {% if GLOBALS.os_family == 'Debian' %}
- FLEET_CA=/etc/ssl/certs/intca.crt
- FLEET_SERVER_ELASTICSEARCH_CA=/etc/ssl/certs/intca.crt
{% else %}
- FLEET_CA=/etc/pki/tls/certs/intca.crt - FLEET_CA=/etc/pki/tls/certs/intca.crt
- FLEET_SERVER_ELASTICSEARCH_CA=/etc/pki/tls/certs/intca.crt
{% endif %}
- LOGS_PATH=logs
{% if DOCKER.containers['so-elastic-fleet'].extra_env %} {% if DOCKER.containers['so-elastic-fleet'].extra_env %}
{% for XTRAENV in DOCKER.containers['so-elastic-fleet'].extra_env %} {% for XTRAENV in DOCKER.containers['so-elastic-fleet'].extra_env %}
- {{ XTRAENV }} - {{ XTRAENV }}
@@ -8,7 +8,7 @@
"name": "import-zeek-logs", "name": "import-zeek-logs",
"namespace": "so", "namespace": "so",
"description": "Zeek Import logs", "description": "Zeek Import logs",
"policy_id": "so-grid-nodes", "policy_id": "so-grid-nodes_general",
"inputs": { "inputs": {
"logs-logfile": { "logs-logfile": {
"enabled": true, "enabled": true,
@@ -9,7 +9,7 @@
"name": "zeek-logs", "name": "zeek-logs",
"namespace": "so", "namespace": "so",
"description": "Zeek logs", "description": "Zeek logs",
"policy_id": "so-grid-nodes", "policy_id": "so-grid-nodes_general",
"inputs": { "inputs": {
"logs-logfile": { "logs-logfile": {
"enabled": true, "enabled": true,
@@ -13,9 +13,14 @@
"system.auth": { "system.auth": {
"enabled": true, "enabled": true,
"vars": { "vars": {
"ignore_older": "72h",
"paths": [ "paths": [
"/var/log/auth.log*", "/var/log/auth.log*",
"/var/log/secure*" "/var/log/secure*"
],
"preserve_original_event": false,
"tags": [
"system-auth"
] ]
} }
}, },
@@ -24,34 +29,49 @@
"vars": { "vars": {
"paths": [ "paths": [
"/var/log/messages*", "/var/log/messages*",
"/var/log/syslog*" "/var/log/syslog*",
] "/var/log/system*"
],
"tags": [],
"ignore_older": "72h"
} }
} }
} }
}, },
"system-winlog": { "system-winlog": {
"enabled": true, "enabled": true,
"vars": {
"preserve_original_event": false
},
"streams": { "streams": {
"system.application": { "system.application": {
"enabled": true, "enabled": true,
"vars": { "vars": {
"preserve_original_event": false,
"ignore_older": "72h",
"language": 0,
"tags": [] "tags": []
} }
}, },
"system.security": { "system.security": {
"enabled": true, "enabled": true,
"vars": { "vars": {
"preserve_original_event": false,
"ignore_older": "72h",
"language": 0,
"tags": []
}
},
"system.system": {
"enabled": true,
"vars": {
"preserve_original_event": false,
"ignore_older": "72h",
"language": 0,
"tags": [] "tags": []
} }
} }
} }
}, },
"system-system/metrics": { "system-system/metrics": {
"enabled": false "enabled": false
} }
} }
} }
@@ -1,29 +0,0 @@
{
"package": {
"name": "log",
"version": ""
},
"name": "import-evtx-logs",
"namespace": "so",
"description": "Import Windows EVTX logs",
"policy_id": "so-grid-nodes",
"inputs": {
"logs-logfile": {
"enabled": true,
"streams": {
"log.log": {
"enabled": true,
"vars": {
"paths": [
"/nsm/import/*/evtx/data.json"
],
"data_stream.dataset": "import",
"tags": [],
"processors": "- dissect:\n tokenizer: \"/nsm/import/%{import.id}/evtx/%{import.file}\"\n field: \"log.file.path\"\n target_prefix: \"\"\n- decode_json_fields:\n fields: [\"message\"]\n target: \"\"\n- add_fields:\n target: event\n fields:\n module: windows_eventlog\n imported: true",
"custom": "pipeline: import.wel"
}
}
}
}
}
}
@@ -0,0 +1,106 @@
{
"package": {
"name": "elasticsearch",
"version": ""
},
"name": "elasticsearch-logs",
"namespace": "default",
"description": "Elasticsearch Logs",
"policy_id": "so-grid-nodes_general",
"inputs": {
"elasticsearch-logfile": {
"enabled": true,
"streams": {
"elasticsearch.audit": {
"enabled": false,
"vars": {
"paths": [
"/var/log/elasticsearch/*_audit.json"
]
}
},
"elasticsearch.deprecation": {
"enabled": false,
"vars": {
"paths": [
"/var/log/elasticsearch/*_deprecation.json"
]
}
},
"elasticsearch.gc": {
"enabled": false,
"vars": {
"paths": [
"/var/log/elasticsearch/gc.log.[0-9]*",
"/var/log/elasticsearch/gc.log"
]
}
},
"elasticsearch.server": {
"enabled": true,
"vars": {
"paths": [
"/opt/so/log/elasticsearch/*.log"
]
}
},
"elasticsearch.slowlog": {
"enabled": false,
"vars": {
"paths": [
"/var/log/elasticsearch/*_index_search_slowlog.json",
"/var/log/elasticsearch/*_index_indexing_slowlog.json"
]
}
}
}
},
"elasticsearch-elasticsearch/metrics": {
"enabled": false,
"vars": {
"hosts": [
"http://localhost:9200"
],
"scope": "node"
},
"streams": {
"elasticsearch.stack_monitoring.ccr": {
"enabled": false
},
"elasticsearch.stack_monitoring.cluster_stats": {
"enabled": false
},
"elasticsearch.stack_monitoring.enrich": {
"enabled": false
},
"elasticsearch.stack_monitoring.index": {
"enabled": false
},
"elasticsearch.stack_monitoring.index_recovery": {
"enabled": false,
"vars": {
"active.only": true
}
},
"elasticsearch.stack_monitoring.index_summary": {
"enabled": false
},
"elasticsearch.stack_monitoring.ml_job": {
"enabled": false
},
"elasticsearch.stack_monitoring.node": {
"enabled": false
},
"elasticsearch.stack_monitoring.node_stats": {
"enabled": false
},
"elasticsearch.stack_monitoring.pending_tasks": {
"enabled": false
},
"elasticsearch.stack_monitoring.shard": {
"enabled": false
}
}
}
}
}
@@ -6,7 +6,7 @@
"name": "idh-logs", "name": "idh-logs",
"namespace": "so", "namespace": "so",
"description": "IDH integration", "description": "IDH integration",
"policy_id": "so-grid-nodes", "policy_id": "so-grid-nodes_general",
"inputs": { "inputs": {
"logs-logfile": { "logs-logfile": {
"enabled": true, "enabled": true,
@@ -0,0 +1,32 @@
{
"package": {
"name": "log",
"version": ""
},
"name": "import-evtx-logs",
"namespace": "so",
"description": "Import Windows EVTX logs",
"policy_id": "so-grid-nodes_general",
"vars": {},
"inputs": {
"logs-logfile": {
"enabled": true,
"streams": {
"log.log": {
"enabled": true,
"vars": {
"paths": [
"/nsm/import/*/evtx/*.json"
],
"data_stream.dataset": "import",
"custom": "",
"processors": "- dissect:\n tokenizer: \"/nsm/import/%{import.id}/evtx/%{import.file}\"\n field: \"log.file.path\"\n target_prefix: \"\"\n- decode_json_fields:\n fields: [\"message\"]\n target: \"\"\n- drop_fields:\n fields: [\"host\"]\n ignore_missing: true\n- add_fields:\n target: data_stream\n fields:\n namespace: default\n type: logs\n dataset: system.security\n- add_fields:\n target: event\n fields:\n dataset: system.security\n module: system\n imported: true \n- if:\n equals:\n winlog.channel: 'Microsoft-Windows-Sysmon/Operational'\n then: \n - add_fields:\n target: data_stream\n fields:\n dataset: windows.sysmon_operational\n - add_fields:\n target: event\n fields:\n dataset: windows.sysmon_operational\n module: windows\n imported: true\n- if:\n equals:\n winlog.channel: 'Application'\n then: \n - add_fields:\n target: data_stream\n fields:\n dataset: system.application\n - add_fields:\n target: event\n fields:\n dataset: system.application\n- if:\n equals:\n winlog.channel: 'System'\n then: \n - add_fields:\n target: data_stream\n fields:\n dataset: system.system\n - add_fields:\n target: event\n fields:\n dataset: system.system\n- if:\n equals:\n winlog.channel: 'Microsoft-Windows-PowerShell/Operational'\n then: \n - add_fields:\n target: data_stream\n fields:\n dataset: windows.powershell_operational\n - add_fields:\n target: event\n fields:\n dataset: windows.powershell_operational\n module: windows",
"tags": [
"import"
]
}
}
}
}
}
}
@@ -6,7 +6,7 @@
"name": "import-suricata-logs", "name": "import-suricata-logs",
"namespace": "so", "namespace": "so",
"description": "Import Suricata logs", "description": "Import Suricata logs",
"policy_id": "so-grid-nodes", "policy_id": "so-grid-nodes_general",
"inputs": { "inputs": {
"logs-logfile": { "logs-logfile": {
"enabled": true, "enabled": true,
@@ -0,0 +1,29 @@
{
"package": {
"name": "log",
"version": ""
},
"name": "kratos-logs",
"namespace": "so",
"description": "Kratos logs",
"policy_id": "so-grid-nodes_general",
"inputs": {
"logs-logfile": {
"enabled": true,
"streams": {
"log.log": {
"enabled": true,
"vars": {
"paths": [
"/opt/so/log/kratos/kratos.log"
],
"data_stream.dataset": "kratos",
"tags": ["so-kratos"],
"processors": "- decode_json_fields:\n fields: [\"message\"]\n target: \"\"\n add_error_key: true \n- add_fields:\n target: event\n fields:\n category: iam\n module: kratos",
"custom": "pipeline: kratos"
}
}
}
}
}
}
@@ -0,0 +1,20 @@
{
"package": {
"name": "osquery_manager",
"version": ""
},
"name": "osquery-grid-nodes",
"namespace": "default",
"policy_id": "so-grid-nodes_general",
"inputs": {
"osquery_manager-osquery": {
"enabled": true,
"streams": {
"osquery_manager.result": {
"enabled": true,
"vars": {}
}
}
}
}
}
@@ -0,0 +1,76 @@
{
"package": {
"name": "redis",
"version": ""
},
"name": "redis-logs",
"namespace": "default",
"description": "Redis logs",
"policy_id": "so-grid-nodes_general",
"inputs": {
"redis-logfile": {
"enabled": true,
"streams": {
"redis.log": {
"enabled": true,
"vars": {
"paths": [
"/opt/so/log/redis/redis.log"
],
"tags": [
"redis-log"
],
"preserve_original_event": false
}
}
}
},
"redis-redis": {
"enabled": false,
"streams": {
"redis.slowlog": {
"enabled": false,
"vars": {
"hosts": [
"127.0.0.1:6379"
],
"password": ""
}
}
}
},
"redis-redis/metrics": {
"enabled": false,
"vars": {
"hosts": [
"127.0.0.1:6379"
],
"idle_timeout": "20s",
"maxconn": 10,
"network": "tcp",
"password": ""
},
"streams": {
"redis.info": {
"enabled": false,
"vars": {
"period": "10s"
}
},
"redis.key": {
"enabled": false,
"vars": {
"key.patterns": "- limit: 20\n pattern: *\n",
"period": "10s"
}
},
"redis.keyspace": {
"enabled": false,
"vars": {
"period": "10s"
}
}
}
}
}
}
@@ -0,0 +1,29 @@
{
"package": {
"name": "log",
"version": ""
},
"name": "soc-auth-sync-logs",
"namespace": "so",
"description": "Security Onion - Elastic Auth Sync - Logs",
"policy_id": "so-grid-nodes_general",
"inputs": {
"logs-logfile": {
"enabled": true,
"streams": {
"log.log": {
"enabled": true,
"vars": {
"paths": [
"/opt/so/log/soc/sync.log"
],
"data_stream.dataset": "soc",
"tags": ["so-soc"],
"processors": "- dissect:\n tokenizer: \"%{event.action}\"\n field: \"message\"\n target_prefix: \"\"\n- add_fields:\n target: event\n fields:\n category: host\n module: soc\n dataset_temp: auth_sync",
"custom": "pipeline: common"
}
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More