Snort 3: Mit Multithreading dem Angreifer auf der Spur

Nach vielen Jahren Entwicklung ist die neue Version 3 des IDS-Tools Snort als Final Release verfügbar und behebt viele schon oft diskutierte Mängel.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen

(Bild: ronstik/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Ralf Spenneberg

Snort ist neben Suricata das bekannteste Open-Source Network Intrusion Detection/Prevention System (NIDS/NIPS). Ursprünglich 1998 von Martin Roesch als einfacher Netzwerksniffer gestartet, hat es sich über die Jahre zur NIDS-Referenz im Open-Source-Umfeld entwickelt. Nach sieben Jahren Entwicklung hat das Developer-Team den Code in C++ neu implementiert und jetzt das lang erwartete Snort3 freigegeben.

Snort ist ein Bestandteil vieler kommerzieller Lösungen und arbeitet auch im Kern der Firepower-IPS-Lösungen von Cisco. Der Netzwerkspezialist hatte 2013 die Firma von Martin Roesch (Sourcefire) gekauft und anschließend die kommerzielle Variante in seine eigenen Produkte integriert. Diese lange Historie war auch ein Fluch für Snort und führte bereits 2009 zur Entwicklung von Suricata, da die interne Architektur von Snort von vielen Entwicklern als rückständig angesehen wurde. Während Suricata bereits multi-threaded war und eine automatische Protokollunterstützung bot, konnte Snort nicht mit diesen Funktionen aufwarten. Seit 2013 arbeitete das Snort-Entwicklerteam daher mehr oder weniger aktiv an einer vollständig neuen Version, die nun in C++ statt C geschrieben wurde. Die wesentlichen Neuerungen der Snort Version 3.1 sind:

  • Die Paketverarbeitung erfolgt in mehreren parallelen Threads. Diese können auf eine gemeinsame Konfiguration und Attributtabelle zugreifen.
  • Die PCRE Analyse erfolgt mit der neuen Hyperscan Bibliothek von Intel (hyperscan.io). Diese beschleunigt die Erkennung gegenüber der Version 2 deutlich.
  • Snort unterstützt nun die Realtime Network Awareness (RNA). Hiermit kann Snort selbst lernen, welche Systeme und Protokolle im Netz genutzt werden. Dies war bisher ein Feature, welches nur in den kommerziellen Produkten enthalten war.
  • Vollständige Plug-in-Unterstützung in Lua.
  • Da Snort Applikationsprotokolle unabhängig von dem Port erkennen kann (RNA) können die Regeln nun protokollabhängig geschrieben werden und benötigen nicht mehr die Beschränkung auf Ports. Allerdings hat sich auch die Regelsyntax leicht geändert.

Auch die kommerziellen Produkte von Cisco erlauben teilweise bereits ein Upgrade auf den neuen Snort 3 Core. Allerdings beherrschen sie noch nicht alle Funktionen.

Auch in der Version 3 dürfen Snort-Nutzer keine Angst vor der Kommandozeile haben.

Obwohl Snort eine der mächtigsten IDS-Engines ist, fehlen im Open-Source-Umfeld weiterhin geeignete Verwaltungsoberflächen, mit denen sich das Produkt sinnvoll einsetzen lässt. Security Onion und OPNSense sind zwei der wenigen Produkte, die Snort nutzen und eine rudimentäre Verwaltungsoberfläche bieten.

(avr)