diff --git a/bin/clean.sh b/bin/clean.sh index 1d5b87e1..c6beee0b 100755 --- a/bin/clean.sh +++ b/bin/clean.sh @@ -66,6 +66,14 @@ chown tpot:tpot $myCOWRIETTYLOGS $myCOWRIEDL $myDIONAEABI $myDIONAEABIN $myHONEY logrotate -s $mySTATUS $myCONF } +# Let's create a function to clean up and prepare ciscoasa data +fuCISCOASA () { + if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/ciscoasa/*; fi + mkdir -p /data/ciscoasa/log + chmod 760 /data/ciscoasa -R + chown tpot:tpot /data/ciscoasa -R +} + # Let's create a function to clean up and prepare conpot data fuCONPOT () { if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/conpot/*; fi @@ -124,6 +132,14 @@ fuGLASTOPF () { chown tpot:tpot /data/glastopf -R } +# Let's create a function to clean up and prepare heralding data +fuHERALDING () { + if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/heralding/*; fi + mkdir -p /data/heralding/log + chmod 760 /data/heralding -R + chown tpot:tpot /data/heralding -R +} + # Let's create a function to clean up and prepare honeytrap data fuHONEYTRAP () { if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/honeytrap/*; fi @@ -210,6 +226,7 @@ if [ "$myPERSISTENCE" = "on" ]; fuLOGROTATE else echo "Cleaning up and preparing data folders." + fuCISCOASA fuCONPOT fuCOWRIE fuDIONAEA @@ -217,6 +234,7 @@ if [ "$myPERSISTENCE" = "on" ]; fuELK fuEMOBILITY fuGLASTOPF + fuHERALDING fuHONEYTRAP fuMAILONEY fuNGINX diff --git a/docker/suricata/Dockerfile b/docker/suricata/Dockerfile index fa531451..67c8af1d 100644 --- a/docker/suricata/Dockerfile +++ b/docker/suricata/Dockerfile @@ -1,13 +1,17 @@ FROM alpine -MAINTAINER MO # Include dist ADD dist/ /root/dist/ # Install packages RUN apk -U upgrade && \ - apk add bash ca-certificates file procps wget && \ - apk -U add --repository https://dl-cdn.alpinelinux.org/alpine/edge/community \ + apk add bash \ + ca-certificates \ + file \ + libcap \ + procps \ + wget && \ + apk -U add --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \ suricata && \ # Setup user, groups and configs @@ -18,12 +22,12 @@ RUN apk -U upgrade && \ # Download the latest EmergingThreats ruleset, replace rulebase and enable all rules cp /root/dist/update.sh /usr/bin/ && \ - chmod u+x /usr/bin/update.sh && \ - update.sh && \ + chmod 755 /usr/bin/update.sh && \ + update.sh OPEN && \ # Clean up rm -rf /root/* && \ rm -rf /var/cache/apk/* # Start suricata -CMD update.sh && suricata -v -F /etc/suricata/capture-filter.bpf -i $(/sbin/ip address | grep '^2: ' | awk '{ print $2 }' | tr -d [:punct:]) +CMD update.sh $OINKCODE && suricata -v -F /etc/suricata/capture-filter.bpf -i $(/sbin/ip address | grep '^2: ' | awk '{ print $2 }' | tr -d [:punct:]) diff --git a/docker/suricata/dist/update.sh b/docker/suricata/dist/update.sh old mode 100644 new mode 100755 index f1938cb1..20b7dbbf --- a/docker/suricata/dist/update.sh +++ b/docker/suricata/dist/update.sh @@ -6,8 +6,31 @@ function fuCLEANUP { } trap fuCLEANUP EXIT -# Download the latest EmergingThreats ruleset, replace rulebase and enable all rules -cd /tmp -wget --tries=2 --timeout=2 https://rules.emergingthreats.net/open/suricata-4.0/emerging.rules.tar.gz -tar xvfz emerging.rules.tar.gz -C /etc/suricata/ +### Vars +myOINKCODE="$1" + +function fuDLRULES { +### Check if args are present then download rules, if not throw error + +if [ "$myOINKCODE" != "" ] && [ "$myOINKCODE" == "OPEN" ]; + then + echo "Downloading ET open ruleset." + wget --tries=2 --timeout=2 https://rules.emergingthreats.net/open/suricata-4.0/emerging.rules.tar.gz -O /tmp/rules.tar.gz + else + if [ "$myOINKCODE" != "" ]; + then + echo "Downloading ET pro ruleset with Oinkcode $myOINKCODE." + wget --tries=2 --timeout=2 https://rules.emergingthreatspro.com/$myOINKCODE/suricata-4.0/etpro.rules.tar.gz -O /tmp/rules.tar.gz + else + echo "Usage: update.sh <[OPEN, OINKCODE]>" + exit + fi +fi +} + +# Download rules +fuDLRULES + +# Extract and enable all rules +tar xvfz /tmp/rules.tar.gz -C /etc/suricata/ sed -i s/^#alert/alert/ /etc/suricata/rules/*.rules diff --git a/docker/suricata/docker-compose.yml b/docker/suricata/docker-compose.yml index 8e7e5303..2748b458 100644 --- a/docker/suricata/docker-compose.yml +++ b/docker/suricata/docker-compose.yml @@ -1,18 +1,22 @@ # T-Pot (Standard) # For docker-compose ... -version: '2.1' +version: '2.2' services: # Suricata service suricata: + build: . container_name: suricata restart: always + environment: + # For ET Pro ruleset replace with your OINKCODE + - OINKCODE=OPEN network_mode: "host" cap_add: - NET_ADMIN - SYS_NICE - NET_RAW - image: "dtagdevsec/suricata:1710" + image: "dtagdevsec/suricata:1804" volumes: - /data/suricata/log:/var/log/suricata diff --git a/etc/compose/collect.yml b/etc/compose/collect.yml index 2a16bbbb..ea944f4f 100644 --- a/etc/compose/collect.yml +++ b/etc/compose/collect.yml @@ -189,12 +189,15 @@ services: suricata: container_name: suricata restart: always + environment: + # For ET Pro ruleset replace with your OINKCODE + - OINKCODE=OPEN network_mode: "host" cap_add: - NET_ADMIN - SYS_NICE - NET_RAW - image: "dtagdevsec/suricata:1710" + image: "dtagdevsec/suricata:1804" volumes: - /data/suricata/log:/var/log/suricata diff --git a/etc/compose/tpot.yml b/etc/compose/tpot.yml index 0648d64d..e3191a0e 100644 --- a/etc/compose/tpot.yml +++ b/etc/compose/tpot.yml @@ -291,12 +291,15 @@ services: suricata: container_name: suricata restart: always + environment: + # For ET Pro ruleset replace with your OINKCODE + - OINKCODE=OPEN network_mode: "host" cap_add: - NET_ADMIN - SYS_NICE - NET_RAW - image: "dtagdevsec/suricata:1710" + image: "dtagdevsec/suricata:1804" volumes: - /data/suricata/log:/var/log/suricata diff --git a/etc/logrotate/logrotate.conf b/etc/logrotate/logrotate.conf index 5d1ac1f0..7a8b91df 100644 --- a/etc/logrotate/logrotate.conf +++ b/etc/logrotate/logrotate.conf @@ -1,5 +1,6 @@ -/data/conpot/log/conpot.json -/data/conpot/log/conpot.log +/data/ciscoasa/log/ciscoasa.log +/data/conpot/log/conpot*.json +/data/conpot/log/conpot*.log /data/cowrie/log/cowrie.json /data/cowrie/log/cowrie-textlog.log /data/cowrie/log/lastlog.txt @@ -16,6 +17,8 @@ /data/emobility/log/centralsystemEWS.log /data/glastopf/log/glastopf.log /data/glastopf/db/glastopf.db +/data/heralding/log/*.log +/data/heralding/log/*.csv /data/honeytrap/log/*.log /data/honeytrap/log/*.json /data/honeytrap/attacks.tgz