Porkpie

2020-11-06

Nach ein paar Monaten mit Evebox mußte ich mir eingestehen, das Evebox für mich im Produktivbetrieb nicht geeigent ist. Evebox bringt zwar die Snort Einträge in eine lesbare Form, was mir jedoch fehlt ist eine aktive Benachrichtigung. Wie so oft in meinem Leben, wenn man keine fertige Lösung findet, muss man sie halt selber bauen.

Willkommen Porkpie.

Porkpie überwacht das Snort Log Verzeichnis und konvertiert neue Einträge in eine menschlich lesbare Form und benachrichtigt mich per lokaler eMail, Slack oder Pushover Nachricht. Die Nachricht enthält Source und Target IP Adresse, angereichert mit entsprechender GeoIP oder ASN Information, Kategorisierung, GID, SID sowie - wenn vorhanden - den Kommentar aus der Regel, die das Ereignis ausgelößt hat.

Porkpie ist so gebaut, das es permanent als Service im Hintergrund werkelt und muss bei einem Update der Snort Regeln oder seiner eigenen Konfiguration nicht neu gestartet werden. Porkpie verfügt über eine eigene Filter Funktion, mit der sich Nachrichten unterdrücken lassen.

[filter]
  pattern = ["1:2525017", "1:10000001", "1:2525016"]

[geoip]
  geodb = "./GeoLite2-City.mmdb"

[ip2asn]
  db = "./ip2asn-combined.tsv.gz"

[mail]
  server = "127.0.0.1:25"

  [mail.from]
    address = "snort@localhost"
    name = "snort"

  [mail.to]
    address = "root@localhost"
    name = "root"

[reader]
  fileprefix = "snort.u2"
  path = "/var/log/snort"

[sidmap]
  maps = ["/etc/snort/sid-msg.map"]

[slack]
  channel = "ids"
  token = "<your slack token>"

[pushover]
  app = "<your API token>"
  user = "<your user key>"

Am Ende fällt dann eine solche Slack, oder Pushover Nachricht heraus.

Die Sourcen befinden sich auf Github.