Das Unternehmen Cisco zur Ausbildung eines Kandidaten in die vollständig überarbeiteten Systeme zur Verhinderung von Angriffen , auch bekannt als Projekt Snort++, an dem seit 2005 sporadisch gearbeitet wird. Ein stabiler Release wird innerhalb eines Monats veröffentlicht.
In der Version Snort 3 wurde das Konzept des Produkts vollständig neu überdacht und die Architektur überarbeitet. Zu den wichtigsten Entwicklungsrichtungen von Snort 3 gehören: Vereinfachung der Konfiguration und des Starts von Snort, Automatisierung der Konfiguration, Vereinfachung der Regeldefinition, automatische Erkennung aller Protokolle, Bereitstellung einer Shell für die Verwaltung über die Kommandozeile, aktive Nutzung von Multithreading mit gemeinsamem Zugriff unterschiedlicher Handler auf eine einheitliche Konfiguration.
Die folgenden wesentlichen Neuerungen wurden umgesetzt:
- Der Übergang zu einem neuen Konfigurationssystem wurde vollzogen, das eine vereinfachte Syntax bietet und die Verwendung von Skripten für die dynamische Erstellung von Einstellungen ermöglicht. Für die Verarbeitung von Konfigurationsdateien wird LuaJIT verwendet. Es werden Plugins auf Basis von LuaJIT bereitgestellt, die zusätzliche Optionen für Regeln und die Protokollierung implementieren;
- Die Engine zur Angriffsdetektion wurde modernisiert, die Regeln aktualisiert und die Möglichkeit zur Bindung von Puffern in den Regeln (sticky buffers) hinzugefügt. Die Suchmaschine Hyperscan wurde in Anspruch genommen, die es ermöglicht, in den Regeln schnellere und präziser auslösende Muster auf Basis von regulären Ausdrücken zu verwenden;
- Ein neuer Introspektionsmodus für HTTP wurde hinzugefügt, der den Sitzungsstatus berücksichtigt und 99% der Situationen abdeckt, die von dem Test-Kit unterstützt werden. Ein Inspektionssystem für HTTP/2 wurde hinzugefügt;
- Die Leistung des Deep Packet Inspection-Modus wurde erheblich gesteigert. Es wurde die Möglichkeit zur multithreaded Verarbeitung von Paketen hinzugefügt, die die gleichzeitige Ausführung mehrerer Threads mit Packet-Handlern ermöglicht und lineare Skalierbarkeit in Abhängigkeit von der Anzahl der CPU-Kerne bietet;
- Ein gemeinsamer Speicher für Konfigurationen und Attributtabellen wurde implementiert, der gemeinsam in verschiedenen Subsystemen genutzt wird, wodurch der Speicherverbrauch durch die Eliminierung von Datenwiederholungen deutlich gesenkt werden konnte;
- Ein neues Ereignisprotokollierungssystem, das das JSON-Format verwendet und sich leicht in externe Plattformen wie Elastic Stack integrieren lässt;
- Übergang zu einer modularen Architektur, Möglichkeit zur Funktionserweiterung durch die Anbindung von Plugins und Umsetzung zentraler Teilsysteme in Form von austauschbaren Plugins. Aktuell sind für Snort 3 bereits mehrere Hundert Plugins implementiert, die verschiedene Anwendungsbereiche abdecken, beispielsweise zur Integration eigener Codecs, Introspektionsmodi, Protokollierungsmethoden, Aktionen und Optionen in den Regeln;
- Automatische Erkennung aktiver Dienste, die die manuelle Angabe aktiver Netzwerkports überflüssig macht.
- Unterstützung von Dateien für eine schnelle Anpassung der Einstellungen im Vergleich zu den Standardeinstellungen hinzugefügt. Zur Vereinfachung der Konfiguration wird die Nutzung von snort_config.lua und SNORT_LUA_PATH eingestellt.
Unterstützung für das dynamische Neuladen von Einstellungen hinzugefügt; - Der Code ermöglicht die Nutzung von C++-Konstruktionen, die im Standard C++14 definiert sind (für den Build wird ein Compiler benötigt, der C++14 unterstützt);
- Neuer VXLAN-Handler hinzugefügt;
- Verbesserte Inhalte-Suche durch aktualisierte alternative Implementierungen von Algorithmen und ;
- Der Start wurde durch die Nutzung mehrerer Threads für die Kompilierung von Regelgruppen beschleunigt;
- Ein neuer Logging-Mechanismus wurde hinzugefügt;
- Ein System zur Echtzeit-Netzwerkbewusstheit (RNA) wurde hinzugefügt, das Informationen über verfügbare Ressourcen, Hosts, Anwendungen und Dienste im Netzwerk sammelt.
Quelle: opennet.ru
