From 5a6c66bde50fb2ed73b5619851e33b61b83a051b Mon Sep 17 00:00:00 2001 From: Mike Reeves Date: Mon, 5 Feb 2018 12:36:27 -0500 Subject: [PATCH] Initial Commit --- .DS_Store | Bin 0 -> 6148 bytes pillar/sensors/example.sls | 6 + pillar/top.sls | 4 + salt/bro/files/node.cfg | 19 + salt/bro/init.sls | 35 + salt/common/init.sls | 37 + salt/logstash/files/beats-template.json | 182 ++ .../files/conf.d/0000_input_syslogng.conf | 19 + .../files/conf.d/0001_input_json.conf | 19 + .../files/conf.d/0002_input_windows_json.conf | 22 + .../files/conf.d/0003_input_syslog.conf | 18 + .../files/conf.d/0005_input_suricata.conf | 19 + .../files/conf.d/0006_input_beats.conf | 11 + .../files/conf.d/0007_input_import.conf | 182 ++ .../conf.d/1000_preprocess_log_elapsed.conf | 13 + .../conf.d/1001_preprocess_syslogng.conf | 30 + .../files/conf.d/1002_preprocess_json.conf | 18 + .../files/conf.d/1003_preprocess_bro.conf | 24 + .../conf.d/1004_preprocess_syslog_types.conf | 19 + .../files/conf.d/1026_preprocess_dhcp.conf | 156 ++ .../files/conf.d/1029_preprocess_esxi.conf | 31 + .../conf.d/1030_preprocess_greensql.conf | 21 + .../files/conf.d/1031_preprocess_iis.conf | 21 + .../files/conf.d/1032_preprocess_mcafee.conf | 26 + .../files/conf.d/1033_preprocess_snort.conf | 89 + .../files/conf.d/1034_preprocess_syslog.conf | 16 + .../conf.d/1100_preprocess_bro_conn.conf | 44 + .../conf.d/1101_preprocess_bro_dhcp.conf | 17 + .../files/conf.d/1102_preprocess_bro_dns.conf | 36 + .../files/conf.d/1103_preprocess_bro_dpd.conf | 22 + .../conf.d/1104_preprocess_bro_files.conf | 18 + .../files/conf.d/1105_preprocess_bro_ftp.conf | 21 + .../conf.d/1106_preprocess_bro_http.conf | 21 + .../files/conf.d/1107_preprocess_bro_irc.conf | 22 + .../conf.d/1108_preprocess_bro_kerberos.conf | 20 + .../conf.d/1109_preprocess_bro_notice.conf | 22 + .../files/conf.d/1110_preprocess_bro_rdp.conf | 21 + .../1111_preprocess_bro_signatures.conf | 22 + .../conf.d/1112_preprocess_bro_smtp.conf | 21 + .../conf.d/1113_preprocess_bro_snmp.conf | 22 + .../conf.d/1114_preprocess_bro_software.conf | 22 + .../files/conf.d/1115_preprocess_bro_ssh.conf | 21 + .../files/conf.d/1116_preprocess_bro_ssl.conf | 149 ++ .../conf.d/1117_preprocess_bro_syslog.conf | 23 + .../conf.d/1118_preprocess_bro_tunnel.conf | 22 + .../conf.d/1119_preprocess_bro_weird.conf | 16 + .../conf.d/1121_preprocess_bro_mysql.conf | 30 + .../conf.d/1122_preprocess_bro_socks.conf | 34 + .../conf.d/1123_preprocess_bro_x509.conf | 123 + .../conf.d/1124_preprocess_bro_intel.conf | 21 + .../conf.d/1125_preprocess_bro_modbus.conf | 34 + .../files/conf.d/1126_preprocess_bro_sip.conf | 32 + .../conf.d/1127_preprocess_bro_radius.conf | 33 + .../files/conf.d/1128_preprocess_bro_pe.conf | 33 + .../files/conf.d/1129_preprocess_bro_rfb.conf | 33 + .../conf.d/1130_preprocess_bro_dnp3.conf | 33 + .../conf.d/1131_preprocess_bro_smb_files.conf | 21 + .../1132_preprocess_bro_smb_mapping.conf | 21 + .../conf.d/1133_preprocess_bro_ntlm.conf | 21 + .../conf.d/1134_preprocess_bro_dce_rpc.conf | 21 + .../logstash/files/conf.d/1998_test_data.conf | 16 + .../files/conf.d/2000_network_flow.conf | 59 + salt/logstash/files/conf.d/6000_bro.conf | 136 + .../files/conf.d/6001_bro_import.conf | 14 + salt/logstash/files/conf.d/6002_syslog.conf | 11 + .../files/conf.d/6101_switch_brocade.conf | 33 + .../files/conf.d/6200_firewall_fortinet.conf | 281 ++ .../files/conf.d/6201_firewall_pfsense.conf | 33 + salt/logstash/files/conf.d/6300_windows.conf | 161 ++ .../files/conf.d/6301_dns_windows.conf | 49 + salt/logstash/files/conf.d/6400_suricata.conf | 92 + salt/logstash/files/conf.d/6500_ossec.conf | 83 + .../files/conf.d/6501_ossec_sysmon.conf | 81 + .../files/conf.d/6502_ossec_autoruns.conf | 23 + .../conf.d/8000_postprocess_bro_cleanup.conf | 17 + ...01_postprocess_common_ip_augmentation.conf | 58 + .../files/conf.d/8006_postprocess_dns.conf | 47 + .../files/conf.d/8007_postprocess_http.conf | 27 + .../conf.d/8200_postprocess_tagging.conf | 58 + .../conf.d/8998_postprocess_log_elapsed.conf | 19 + .../conf.d/8999_postprocess_rename_type.conf | 8 + .../files/conf.d/9000_output_bro.conf | 22 + .../files/conf.d/9001_output_switch.conf | 22 + .../files/conf.d/9002_output_import.conf | 20 + .../files/conf.d/9004_output_flow.conf | 22 + .../files/conf.d/9026_output_dhcp.conf | 21 + .../files/conf.d/9029_output_esxi.conf | 20 + .../files/conf.d/9030_output_greensql.conf | 20 + .../files/conf.d/9031_output_iis.conf | 21 + .../files/conf.d/9032_output_mcafee.conf | 21 + .../files/conf.d/9033_output_snort.conf | 22 + .../files/conf.d/9034_output_syslog.conf | 21 + .../files/conf.d/9200_output_firewall.conf | 22 + .../files/conf.d/9300_output_windows.conf | 23 + .../files/conf.d/9301_output_dns_windows.conf | 23 + .../files/conf.d/9400_output_suricata.conf | 22 + .../files/conf.d/9500_output_beats.conf | 18 + .../files/conf.d/9998_output_test_data.conf | 21 + .../files/dictionaries/iana_protocols.yaml | 256 ++ .../files/dictionaries/iana_services.yaml | 345 +++ .../logstash/files/dictionaries/services.yaml | 3 + .../files/dictionaries/tcp_flags.yaml | 64 + salt/logstash/files/log4j2.properties | 29 + salt/logstash/files/logstash-template.json | 67 + salt/logstash/files/logstash.yml | 6 + salt/logstash/init.sls | 121 + salt/pcap/init.sls | 12 + salt/somaster/init.sls | 9 + salt/syslog-ng/files/patterndb.xml | 2333 +++++++++++++++++ salt/syslog-ng/files/syslog-ng.conf | 243 ++ salt/syslog-ng/init.sls | 18 + salt/top.sls | 23 + so-setup-network.sh | 103 + 113 files changed, 7408 insertions(+) create mode 100644 .DS_Store create mode 100644 pillar/sensors/example.sls create mode 100644 pillar/top.sls create mode 100644 salt/bro/files/node.cfg create mode 100644 salt/bro/init.sls create mode 100644 salt/common/init.sls create mode 100644 salt/logstash/files/beats-template.json create mode 100644 salt/logstash/files/conf.d/0000_input_syslogng.conf create mode 100644 salt/logstash/files/conf.d/0001_input_json.conf create mode 100644 salt/logstash/files/conf.d/0002_input_windows_json.conf create mode 100644 salt/logstash/files/conf.d/0003_input_syslog.conf create mode 100644 salt/logstash/files/conf.d/0005_input_suricata.conf create mode 100644 salt/logstash/files/conf.d/0006_input_beats.conf create mode 100644 salt/logstash/files/conf.d/0007_input_import.conf create mode 100644 salt/logstash/files/conf.d/1000_preprocess_log_elapsed.conf create mode 100644 salt/logstash/files/conf.d/1001_preprocess_syslogng.conf create mode 100644 salt/logstash/files/conf.d/1002_preprocess_json.conf create mode 100644 salt/logstash/files/conf.d/1003_preprocess_bro.conf create mode 100644 salt/logstash/files/conf.d/1004_preprocess_syslog_types.conf create mode 100644 salt/logstash/files/conf.d/1026_preprocess_dhcp.conf create mode 100644 salt/logstash/files/conf.d/1029_preprocess_esxi.conf create mode 100644 salt/logstash/files/conf.d/1030_preprocess_greensql.conf create mode 100644 salt/logstash/files/conf.d/1031_preprocess_iis.conf create mode 100644 salt/logstash/files/conf.d/1032_preprocess_mcafee.conf create mode 100644 salt/logstash/files/conf.d/1033_preprocess_snort.conf create mode 100644 salt/logstash/files/conf.d/1034_preprocess_syslog.conf create mode 100644 salt/logstash/files/conf.d/1100_preprocess_bro_conn.conf create mode 100644 salt/logstash/files/conf.d/1101_preprocess_bro_dhcp.conf create mode 100644 salt/logstash/files/conf.d/1102_preprocess_bro_dns.conf create mode 100644 salt/logstash/files/conf.d/1103_preprocess_bro_dpd.conf create mode 100644 salt/logstash/files/conf.d/1104_preprocess_bro_files.conf create mode 100644 salt/logstash/files/conf.d/1105_preprocess_bro_ftp.conf create mode 100644 salt/logstash/files/conf.d/1106_preprocess_bro_http.conf create mode 100644 salt/logstash/files/conf.d/1107_preprocess_bro_irc.conf create mode 100644 salt/logstash/files/conf.d/1108_preprocess_bro_kerberos.conf create mode 100644 salt/logstash/files/conf.d/1109_preprocess_bro_notice.conf create mode 100644 salt/logstash/files/conf.d/1110_preprocess_bro_rdp.conf create mode 100644 salt/logstash/files/conf.d/1111_preprocess_bro_signatures.conf create mode 100644 salt/logstash/files/conf.d/1112_preprocess_bro_smtp.conf create mode 100644 salt/logstash/files/conf.d/1113_preprocess_bro_snmp.conf create mode 100644 salt/logstash/files/conf.d/1114_preprocess_bro_software.conf create mode 100644 salt/logstash/files/conf.d/1115_preprocess_bro_ssh.conf create mode 100644 salt/logstash/files/conf.d/1116_preprocess_bro_ssl.conf create mode 100644 salt/logstash/files/conf.d/1117_preprocess_bro_syslog.conf create mode 100644 salt/logstash/files/conf.d/1118_preprocess_bro_tunnel.conf create mode 100644 salt/logstash/files/conf.d/1119_preprocess_bro_weird.conf create mode 100644 salt/logstash/files/conf.d/1121_preprocess_bro_mysql.conf create mode 100644 salt/logstash/files/conf.d/1122_preprocess_bro_socks.conf create mode 100644 salt/logstash/files/conf.d/1123_preprocess_bro_x509.conf create mode 100644 salt/logstash/files/conf.d/1124_preprocess_bro_intel.conf create mode 100644 salt/logstash/files/conf.d/1125_preprocess_bro_modbus.conf create mode 100644 salt/logstash/files/conf.d/1126_preprocess_bro_sip.conf create mode 100644 salt/logstash/files/conf.d/1127_preprocess_bro_radius.conf create mode 100644 salt/logstash/files/conf.d/1128_preprocess_bro_pe.conf create mode 100644 salt/logstash/files/conf.d/1129_preprocess_bro_rfb.conf create mode 100644 salt/logstash/files/conf.d/1130_preprocess_bro_dnp3.conf create mode 100644 salt/logstash/files/conf.d/1131_preprocess_bro_smb_files.conf create mode 100644 salt/logstash/files/conf.d/1132_preprocess_bro_smb_mapping.conf create mode 100644 salt/logstash/files/conf.d/1133_preprocess_bro_ntlm.conf create mode 100644 salt/logstash/files/conf.d/1134_preprocess_bro_dce_rpc.conf create mode 100644 salt/logstash/files/conf.d/1998_test_data.conf create mode 100644 salt/logstash/files/conf.d/2000_network_flow.conf create mode 100644 salt/logstash/files/conf.d/6000_bro.conf create mode 100644 salt/logstash/files/conf.d/6001_bro_import.conf create mode 100644 salt/logstash/files/conf.d/6002_syslog.conf create mode 100644 salt/logstash/files/conf.d/6101_switch_brocade.conf create mode 100644 salt/logstash/files/conf.d/6200_firewall_fortinet.conf create mode 100644 salt/logstash/files/conf.d/6201_firewall_pfsense.conf create mode 100644 salt/logstash/files/conf.d/6300_windows.conf create mode 100644 salt/logstash/files/conf.d/6301_dns_windows.conf create mode 100644 salt/logstash/files/conf.d/6400_suricata.conf create mode 100644 salt/logstash/files/conf.d/6500_ossec.conf create mode 100644 salt/logstash/files/conf.d/6501_ossec_sysmon.conf create mode 100644 salt/logstash/files/conf.d/6502_ossec_autoruns.conf create mode 100644 salt/logstash/files/conf.d/8000_postprocess_bro_cleanup.conf create mode 100644 salt/logstash/files/conf.d/8001_postprocess_common_ip_augmentation.conf create mode 100644 salt/logstash/files/conf.d/8006_postprocess_dns.conf create mode 100644 salt/logstash/files/conf.d/8007_postprocess_http.conf create mode 100644 salt/logstash/files/conf.d/8200_postprocess_tagging.conf create mode 100644 salt/logstash/files/conf.d/8998_postprocess_log_elapsed.conf create mode 100644 salt/logstash/files/conf.d/8999_postprocess_rename_type.conf create mode 100644 salt/logstash/files/conf.d/9000_output_bro.conf create mode 100644 salt/logstash/files/conf.d/9001_output_switch.conf create mode 100644 salt/logstash/files/conf.d/9002_output_import.conf create mode 100644 salt/logstash/files/conf.d/9004_output_flow.conf create mode 100644 salt/logstash/files/conf.d/9026_output_dhcp.conf create mode 100644 salt/logstash/files/conf.d/9029_output_esxi.conf create mode 100644 salt/logstash/files/conf.d/9030_output_greensql.conf create mode 100644 salt/logstash/files/conf.d/9031_output_iis.conf create mode 100644 salt/logstash/files/conf.d/9032_output_mcafee.conf create mode 100644 salt/logstash/files/conf.d/9033_output_snort.conf create mode 100644 salt/logstash/files/conf.d/9034_output_syslog.conf create mode 100644 salt/logstash/files/conf.d/9200_output_firewall.conf create mode 100644 salt/logstash/files/conf.d/9300_output_windows.conf create mode 100644 salt/logstash/files/conf.d/9301_output_dns_windows.conf create mode 100644 salt/logstash/files/conf.d/9400_output_suricata.conf create mode 100644 salt/logstash/files/conf.d/9500_output_beats.conf create mode 100644 salt/logstash/files/conf.d/9998_output_test_data.conf create mode 100644 salt/logstash/files/dictionaries/iana_protocols.yaml create mode 100644 salt/logstash/files/dictionaries/iana_services.yaml create mode 100644 salt/logstash/files/dictionaries/services.yaml create mode 100644 salt/logstash/files/dictionaries/tcp_flags.yaml create mode 100644 salt/logstash/files/log4j2.properties create mode 100644 salt/logstash/files/logstash-template.json create mode 100644 salt/logstash/files/logstash.yml create mode 100644 salt/logstash/init.sls create mode 100644 salt/pcap/init.sls create mode 100644 salt/somaster/init.sls create mode 100644 salt/syslog-ng/files/patterndb.xml create mode 100644 salt/syslog-ng/files/syslog-ng.conf create mode 100644 salt/syslog-ng/init.sls create mode 100644 salt/top.sls create mode 100644 so-setup-network.sh diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6dac78507b2ba836e4c98640ffe07acdbcdb5c51 GIT binary patch literal 6148 zcmeHK&2G~`5S~p#Y6l@AfmFEd1&Kq7VkqT+D!FNT=m7~~1P4H^jU!^=dL!Gxq9K(p zyaYS}ufhxPIPmQcQBA1S6GE_K&3?19Gi&?X^{$tQ*l-qmL_H#Mpb}dyirLaB5AQi8pR75M$*6}woAjhslQ%Wes)f_)e3bujv+uxO_$9L%o?b9xe=n?P^ z9aDT}#N{-4_)A8c3iO*&*^FZ!&x?zyVrpj4*Jzq1ML8IJW39FJrOvwJbe-;%?yF!T zs-O(ZSuqUr7qa#^EGLn%p9+yK?J#L<_*j^jG+VejUA?s;2%zIA`m=X3AwgL{4M4Ys!z3)k7Wr6a%b13PwY`lG$5VUQX_{9C`$mBI9a}%M=)DD@Lr`if=%b Zz|W-t^bOV;;eps60Y!r?ECYX(fgkH$hBE*F literal 0 HcmV?d00001 diff --git a/pillar/sensors/example.sls b/pillar/sensors/example.sls new file mode 100644 index 000000000..77068ef91 --- /dev/null +++ b/pillar/sensors/example.sls @@ -0,0 +1,6 @@ +# Example Pillar file for a sensor +sensor: + interface: CHANGEME + lbprocs: CHANGEME + + diff --git a/pillar/top.sls b/pillar/top.sls new file mode 100644 index 000000000..868da6033 --- /dev/null +++ b/pillar/top.sls @@ -0,0 +1,4 @@ +base: + 'G@role:so-sensor' + - sensor.schedule + - sensors.{{ hostname }} diff --git a/salt/bro/files/node.cfg b/salt/bro/files/node.cfg new file mode 100644 index 000000000..c9a0a5665 --- /dev/null +++ b/salt/bro/files/node.cfg @@ -0,0 +1,19 @@ +{%- set interface = salt['pillar.get'](sensor:interface) %} +{%- set lbprocs = salt['pillar.get'](sensor:lbprocs) %} +[manager] +type=manager +host=localhost + +[proxy] +type=proxy +host=localhost + +[sotest-eth1] +type=worker +host=localhost +interface=af_packet::{{ interface }} +lb_method=custom +lb_procs={{ lbprocs }} +af_packet_fanout_id=23 +af_packet_fanout_mode=AF_Packet::FANOUT_HASH +af_packet_buffer_size=128*1024*1024 diff --git a/salt/bro/init.sls b/salt/bro/init.sls new file mode 100644 index 000000000..cca953e7b --- /dev/null +++ b/salt/bro/init.sls @@ -0,0 +1,35 @@ +# Bro Salt State +# Add Bro User +bro: + user.present: + - uid: 937 + - gid: 937 + - home: /home/bro + +file.directory: + - name: /opt/so/conf/bro + - user: 937 + - group: 939 + +file.directory: + - name: /opt/so/conf/bro/policy + - user: 937 + - group: 939 + +# Add the container + +so-bro: + dockerng.running: + - image: {{ dockerrepo }}/so-bro:{{ broversion }} + - hostname: bro + - user: bro + - priviledged: true + - binds: + - /nsm/bro/logs:/nsm/bro/logs:rw + - /nsm/bro/spool:/nsm/bro/spool:rw + - /opt/so/conf/bro/etc:/opt/bro/etc:ro + - /opt/so/conf/bro/etc/node.cfg:/opt/bro/etc/node.cfg:ro + - /opt/so/conf/share/bro:/opt/bro/share/bro:ro + - network_mode: host + +# Add Bro cron diff --git a/salt/common/init.sls b/salt/common/init.sls new file mode 100644 index 000000000..a9d18118c --- /dev/null +++ b/salt/common/init.sls @@ -0,0 +1,37 @@ +# Create a state directory + +statedir: + file.directory: + - name: /opt/so/state + +salttmp: + file.directory: + - name: /opt/so/tmp + +# Install packages needed for the sensor + +sensorpkgs: + pkg.installed: + - skip_suggestions: True + - pkgs: + - docker + +# Always keep these packages up to date + +alwaysupdated: + pkg.latest: + - openssl + - openssh-server + - bash + - skip_suggestions: True + +# Set time to UTC + +Etc/UTC: + timezone.system + +# Set up docker network +dockernet: + dockerng.network_present + - name: so-docker-net + - driver: bridge diff --git a/salt/logstash/files/beats-template.json b/salt/logstash/files/beats-template.json new file mode 100644 index 000000000..b0f9edc20 --- /dev/null +++ b/salt/logstash/files/beats-template.json @@ -0,0 +1,182 @@ +{ + "index_patterns" : "beats-*", + "version" : 50001, + "settings" : { + "number_of_replicas": 0, + "number_of_shards": 1, + "index.refresh_interval" : "5s" + }, + "mappings": { + "doc": { + "_meta": { + "version": "5.6.4" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "activity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "beat": { + "properties": { + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "computer_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "event_id": { + "type": "long" + }, + "keywords": { + "ignore_above": 1024, + "type": "keyword" + }, + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "log_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "message": { + "norms": false, + "type": "text" + }, + "message_error": { + "ignore_above": 1024, + "type": "keyword" + }, + "meta": { + "properties": { + "cloud": { + "properties": { + "availability_zone": { + "ignore_above": 1024, + "type": "keyword" + }, + "instance_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "machine_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "project_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "provider": { + "ignore_above": 1024, + "type": "keyword" + }, + "region": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "opcode": { + "ignore_above": 1024, + "type": "keyword" + }, + "process_id": { + "type": "long" + }, + "provider_guid": { + "ignore_above": 1024, + "type": "keyword" + }, + "record_number": { + "ignore_above": 1024, + "type": "keyword" + }, + "related_activity_id": { + "ignore_above": 1024, + "type": "keyword" + }, + "source_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + }, + "task": { + "ignore_above": 1024, + "type": "keyword" + }, + "thread_id": { + "type": "long" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "user": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "identifier": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "version": { + "type": "long" + }, + "xml": { + "norms": false, + "type": "text" + } + } + } + }, + "order": 0, + "settings": { + "index.mapping.total_fields.limit": 10000, + "index.refresh_interval": "5s" + } +} diff --git a/salt/logstash/files/conf.d/0000_input_syslogng.conf b/salt/logstash/files/conf.d/0000_input_syslogng.conf new file mode 100644 index 000000000..791045f46 --- /dev/null +++ b/salt/logstash/files/conf.d/0000_input_syslogng.conf @@ -0,0 +1,19 @@ +# Original Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Updated by: Doug Burks +# Last Update: 5/15/2017 + +input { + tcp { + port => 6050 + codec => json + tags => "syslogng" + } +} +filter { + if "syslogng" in [tags] { + mutate { + #add_tag => [ "conf_file_0000"] + } + } +} diff --git a/salt/logstash/files/conf.d/0001_input_json.conf b/salt/logstash/files/conf.d/0001_input_json.conf new file mode 100644 index 000000000..4df89d293 --- /dev/null +++ b/salt/logstash/files/conf.d/0001_input_json.conf @@ -0,0 +1,19 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 + +input { + tcp { + port => 6051 + codec => json + tags => [ "json" ] + } +} +filter { + if "json" in [tags] { + mutate { + #add_tag => [ "conf_file_0001"] + } + } +} \ No newline at end of file diff --git a/salt/logstash/files/conf.d/0002_input_windows_json.conf b/salt/logstash/files/conf.d/0002_input_windows_json.conf new file mode 100644 index 000000000..54b700bd5 --- /dev/null +++ b/salt/logstash/files/conf.d/0002_input_windows_json.conf @@ -0,0 +1,22 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 + +input { + tcp { + port => 6052 + type => "windows" + tags => [ "json" ] + codec => json { + charset => "CP1252" + } + } +} +filter { + if [type] == "windows" { + mutate { + #add_tag => [ "conf_file_0002"] + } + } +} \ No newline at end of file diff --git a/salt/logstash/files/conf.d/0003_input_syslog.conf b/salt/logstash/files/conf.d/0003_input_syslog.conf new file mode 100644 index 000000000..dbd1c29bb --- /dev/null +++ b/salt/logstash/files/conf.d/0003_input_syslog.conf @@ -0,0 +1,18 @@ +# Original Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Updated by: Doug Burks +# Last Update: 5/15/2017 + +#input { +# udp { +# port => 1514 +# tags => "syslog" +# } +#} +#filter { +# if "syslog" in [tags] { +# mutate { +# #add_tag => [ "conf_file_0003"] +# } +# } +#} diff --git a/salt/logstash/files/conf.d/0005_input_suricata.conf b/salt/logstash/files/conf.d/0005_input_suricata.conf new file mode 100644 index 000000000..d3d23063a --- /dev/null +++ b/salt/logstash/files/conf.d/0005_input_suricata.conf @@ -0,0 +1,19 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 + +input { + tcp { + port => 6053 + codec => json + type => "suricata" + } +} +filter { + if [type] == "suricata" { + mutate { + #add_tag => [ "conf_file_0005"] + } + } +} \ No newline at end of file diff --git a/salt/logstash/files/conf.d/0006_input_beats.conf b/salt/logstash/files/conf.d/0006_input_beats.conf new file mode 100644 index 000000000..d4a57c998 --- /dev/null +++ b/salt/logstash/files/conf.d/0006_input_beats.conf @@ -0,0 +1,11 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolutions.com +# Last Update: 12/11/2017 + +input { + beats { + port => "5044" + tags => [ "beat" ] + } +} diff --git a/salt/logstash/files/conf.d/0007_input_import.conf b/salt/logstash/files/conf.d/0007_input_import.conf new file mode 100644 index 000000000..c502b57ca --- /dev/null +++ b/salt/logstash/files/conf.d/0007_input_import.conf @@ -0,0 +1,182 @@ +# Updated by: Doug Burks +# Last Update: 5/16/2017 + +input { + file { + path => "/nsm/import/bro/conn*" + type => "bro_conn" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/dce_rpc*" + type => "bro_dce_rpc" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/dhcp*" + type => "bro_dhcp" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/dnp3*" + type => "bro_dnp3" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/dns*" + type => "bro_dns" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/dpd*" + type => "bro_dpd" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/files*" + type => "bro_files" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/ftp*" + type => "bro_ftp" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/http*" + type => "bro_http" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/intel*" + type => "bro_intel" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/irc*" + type => "bro_irc" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/kerberos*" + type => "bro_kerberos" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/modbus*" + type => "bro_modbus" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/mysql*" + type => "bro_mysql" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/notice*" + type => "bro_notice" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/ntlm*" + type => "bro_ntlm" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/pe*" + type => "bro_pe" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/radius*" + type => "bro_radius" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/rdp*" + type => "bro_rdp" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/rfb*" + type => "bro_rfb" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/signatures*" + type => "bro_signatures" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/sip*" + type => "bro_sip" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/smb_files*" + type => "bro_smb_files" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/smb_mapping*" + type => "bro_smb_mapping" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/smtp*" + type => "bro_smtp" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/snmp*" + type => "bro_snmp" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/socks*" + type => "bro_socks" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/software*" + type => "bro_software" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/ssh*" + type => "bro_ssh" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/ssl*" + type => "bro_ssl" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/syslog*" + type => "bro_syslog" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/tunnel*" + type => "bro_tunnels" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/weird*" + type => "bro_weird" + tags => ["bro", "import"] + } + file { + path => "/nsm/import/bro/x509*" + type => "bro_x509" + tags => ["bro", "import"] + } +} +filter { + if "import" in [tags] { + mutate { + #add_tag => [ "conf_file_0006"] + } + } +} diff --git a/salt/logstash/files/conf.d/1000_preprocess_log_elapsed.conf b/salt/logstash/files/conf.d/1000_preprocess_log_elapsed.conf new file mode 100644 index 000000000..d098eb11a --- /dev/null +++ b/salt/logstash/files/conf.d/1000_preprocess_log_elapsed.conf @@ -0,0 +1,13 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 + +filter { + ruby { + code => "event.set('task_start', Time.now.to_f)" + } + mutate { + #add_tag => [ "conf_file_1000"] + } +} diff --git a/salt/logstash/files/conf.d/1001_preprocess_syslogng.conf b/salt/logstash/files/conf.d/1001_preprocess_syslogng.conf new file mode 100644 index 000000000..d2467a3f8 --- /dev/null +++ b/salt/logstash/files/conf.d/1001_preprocess_syslogng.conf @@ -0,0 +1,30 @@ +# Updated by: Doug Burks +# Last Update: 5/15/2017 + +filter { + if "syslogng" in [tags] { + mutate { + rename => { "MESSAGE" => "message" } + rename => { "PROGRAM" => "type" } + rename => { "FACILITY" => "syslog-facility" } + rename => { "FILE_NAME" => "syslog-file_name" } + rename => { "HOST" => "syslog-host" } + rename => { "HOST_FROM" => "syslog-host_from" } + rename => { "LEGACY_MSGHDR" => "syslog-legacy_msghdr" } + rename => { "PID" => "syslog-pid" } + rename => { "PRIORITY" => "syslog-priority" } + rename => { "SOURCEIP" => "syslog-sourceip" } + rename => { "TAGS" => "syslog-tags" } + #add_tag => [ "conf_file_1000"] + } + if "bro_" in [type] { + mutate { + add_tag => [ "bro"] + } + } else { + mutate { + add_tag => [ "syslog"] + } + } + } +} diff --git a/salt/logstash/files/conf.d/1002_preprocess_json.conf b/salt/logstash/files/conf.d/1002_preprocess_json.conf new file mode 100644 index 000000000..8aff64715 --- /dev/null +++ b/salt/logstash/files/conf.d/1002_preprocess_json.conf @@ -0,0 +1,18 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 + +filter { + if "json" in [tags]{ + json { + source => "message" + } + mutate { + remove_tag => [ "json" ] + } + mutate { + #add_tag => [ "conf_file_1001"] + } + } +} diff --git a/salt/logstash/files/conf.d/1003_preprocess_bro.conf b/salt/logstash/files/conf.d/1003_preprocess_bro.conf new file mode 100644 index 000000000..e24da1329 --- /dev/null +++ b/salt/logstash/files/conf.d/1003_preprocess_bro.conf @@ -0,0 +1,24 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Updated by: Doug Burks +# Last Update: 5/15/2017 + +filter { + if "bro" in [tags] { + # If a log comes in with a message starting with # then drop it as it doesn'then + # contain anything and is the header of a rotated bro log + if [message] =~ /^#/ { + drop { } + } else { + # Replace the host field with the host found in the bro log + if [bro_host] { +# mutate { +# replace => [ "host", "%{bro_host}" ] +# } + } + } + mutate { + #add_tag => [ "conf_file_1002"] + } + } +} diff --git a/salt/logstash/files/conf.d/1004_preprocess_syslog_types.conf b/salt/logstash/files/conf.d/1004_preprocess_syslog_types.conf new file mode 100644 index 000000000..5b47968b2 --- /dev/null +++ b/salt/logstash/files/conf.d/1004_preprocess_syslog_types.conf @@ -0,0 +1,19 @@ +filter { + if "syslog" in [tags] { + if [host] == "172.16.1.1" { + mutate { + add_field => { "type" => "fortinet" } + add_tag => [ "firewall" ] + } + } + if [host] == "10.0.0.101" { + mutate { + add_field => { "type" => "brocade" } + add_tag => [ "switch" ] + } + } + mutate { + #add_tag => [ "conf_file_1003"] + } + } +} diff --git a/salt/logstash/files/conf.d/1026_preprocess_dhcp.conf b/salt/logstash/files/conf.d/1026_preprocess_dhcp.conf new file mode 100644 index 000000000..6ba00012f --- /dev/null +++ b/salt/logstash/files/conf.d/1026_preprocess_dhcp.conf @@ -0,0 +1,156 @@ +# Author: Justin Henderson +# SANS Instructor and author of SANS SEC555: SIEM and Tactical Analytics +# Email: justin@hasecuritysolution.com +# Last Update: 12/9/2016 +# +# This conf file is based on accepting logs for DHCP. It is currently based on Windows DHCP only. +filter { + if [type] == "dhcp" { + mutate { + add_field => { "Hostname" => "%{host}" } + } + mutate { + strip => "message" + } + } + # If the message contains nothing then drop it + if [message] =~ /^$/ { + drop { } + } + # If the message starts with # then drop it as it is the header of the DHCP log. + # This behavior is normal when the log is rotated. + if [message] =~ /^#/ { + drop { } + } else { + if [type] == "dhcp" { + # This is the initial parsing of the log + grok { + # Server 2008+ + match => { "message" => "%{DATA:id},%{DATE_US:date},(?