Nach zwei Jahren Entwicklung hat die Organisation OISF (Open Information Security Foundation) die Version 8.0 des Intrusion Detection and Prevention Systems Suricata veröffentlicht, das Mittel zur Inspektion verschiedener Traffic-Typen bereitstellt. In den Konfigurationen von Suricata ist die Verwendung der von dem Projekt Snort entwickelten Signaturdatenbank sowie der Regeln von Emerging Threats und Emerging Threats Pro zulässig. Der Quellcode des Projekts wird unter der GPLv2-Lizenz verbreitet.
Hauptänderungen:
- Eine experimentelle Möglichkeit zur Nutzung von Suricata als Firewall wurde hinzugefügt. Der Firewall-Modus ermöglicht die Verwendung eines Dialekts der Inspektionssprache zur Filterung von Netzwerkpaketen.
- Die Möglichkeit, Skripte in der Sprache Lua zu schreiben, wurde überarbeitet. Der Code-Basis wurde ein Lua 5.4-Interpreter hinzugefügt, der in einer Sandbox-Umgebung läuft, die die Regeln für Lua (z. B. ist das Schreiben in Dateien oder das Erstellen von Netzwerksockets aus den Regeln heraus nicht möglich) einschränkt.
- Es wurde die Möglichkeit zur dynamischen (zur Laufzeit) Registrierung von Plugins mit Protokollanalysatoren, Detektoren und Komponenten für die Protokollierung bereitgestellt.
- Es wurden erhebliche Leistungsoptimierungen vorgenommen, die verschiedene Aspekte der Funktionsweise der Engine beschleunigt haben, einschließlich der Protokollbestimmung, Regelbeladung und Initialisierung. Die Beschleunigung wird durch die Vorhersage von Übergängen, die Optimierung der Hash-Funktionen, die Erhöhung der Größe der Daten-Paket-Puffer im PCAP-Format und die Überarbeitung der Thread-Synchronisation erreicht. Zudem konnte die Startzeit von Suricata verkürzt werden, indem Caching, erweiterte Portgruppenbildung und ein verbesserter Algorithmus zur Substitution von IP-Adressen verwendet wurden.
- Die Handler für LibHTP, FTP, ENIP sowie der Code zur Analyse von MIME-Typen, die Operationen byte_extract und die base64-Dekodierung wurden in Rust neu geschrieben.
- Es wurde Unterstützung für die Protokolle DoH (DNS über HTTPS), LDAP, mDNS (Multicast DNS) und Websocket hinzugefügt.
- Neue Dekodiere- und Protokollierungs-Module für die Protokolle ARP und POP3 wurden hinzugefügt.
- Der Verkehr des SDP über SIP und SIP über TCP wurde analysiert.
- Die Funktionen der Protokollbestimmung und Regelbildung der Engine wurden erweitert. Für die Regeln wurden die Schlüsselwörter LDAP, MIME/EMAIL, vlan.id, DNS, SMTP, FTP, TLS, tcp.wscale, pgsql.query, from_base64, entropy, luaxform und mDNS implementiert. Transaktionale Regeln wurden hinzugefügt, die es ermöglichen, beide Richtungen einer Transaktion in einer Regel zu beschreiben.
Besonderheiten von Suricata:
- Verwendung zur Ausgabe von Prüfergebnissen im einheitlichen Format Unified2, das auch im Snort-Projekt verwendet wird, was die Nutzung standardisierter Analysewerkzeuge wie barnyard2 ermöglicht. Integration mit den Produkten BASE, Snorby, Sguil und SQueRT. Unterstützung der Ausgabe im PCAP-Format;
- Unterstützung der automatischen Protokollerkennung (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB usw.), die es ermöglicht, in Regeln nur den Protokolltyp ohne Bindung an eine Portnummer zu verwenden (zum Beispiel HTTP-Verkehr auf einem nicht standardmäßigen Port zu blockieren). Verfügbarkeit von Decodierern für die Protokolle HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP, LDAP und SSH;
- Ein System zur Analyse von HTTP-Verkehr, das die HTP-Bibliothek zur Analyse und Normalisierung von HTTP-Verkehr nutzt, die vom Autor des Mod_Security-Projekts erstellt wurde. Ein Modul zur detaillierten Protokollierung von Transit-HTTP-Transfers ist verfügbar (das Protokoll wird im Standardformat von Apache gespeichert). Unterstützung der Extraktion und Überprüfung von Dateien, die über das HTTP-Protokoll übertragen werden, sowie das Parsen von komprimierten Inhalten. Möglichkeit der Identifizierung über URI, Cookie, Header, User-Agent, Anfrage-/Antwortkörper;
- Unterstützung verschiedener Schnittstellen zur Verkehrsüberwachung, einschließlich NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Möglichkeit zur Analyse bereits gespeicherter Dateien im PCAP-Format;
- Hohe Leistung, Fähigkeit, Ströme von mehreren zehn Gigabit pro Sekunde auf herkömmlicher Hardware zu verarbeiten.
- Hochleistungsfähiger Mechanismus zur Mustererkennung mit großen IP-Adressbereichen. Unterstützung der Inhaltsauswahl nach Mustern und regulären Ausdrücken. Extraktion von Dateien aus dem Verkehr, einschließlich ihrer Identifizierung nach Name, Typ oder Hash.
- Möglichkeit zur Verwendung von Variablen in Regeln: Informationen aus dem Stream können gespeichert und später in anderen Regeln verwendet werden;
- Verwendung des YAML-Formats in Konfigurationsdateien, das Übersichtlichkeit mit maschinenverarbeitbarer Einfachheit vereint;
- Vollständige Unterstützung IPv6;
- Eingebauter Mechanismus zur automatischen Defragmentierung und Wiederzusammensetzung von Paketen, der eine korrekte Verarbeitung der Ströme unabhängig von der Reihenfolge des Paketempfangs ermöglicht;
- Unterstützung von Tunnelprotokollen: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Unterstützung der Paketdecodierung: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, ARP, PPPoE, Raw, SLL, VLAN;
- Protokollierungsmodus für Schlüssel und Zertifikate, die in TLS-basierten Verbindungen verwendet werden;
- Möglichkeit, Skripte in der Programmiersprache Lua für erweiterte Verkehrsanalyse und die Implementierung zusätzlicher Funktionen zu schreiben, für die die Standardregeln nicht ausreichen.
Quelle: opennet.ru
