Snort 3 ist das Snort IPS (Intrusion Prevention System) der nächsten Generation. Diese Datei zeigt Ihnen, was Snort++ zu bieten hat und führt Sie durch die Schritte vom Download bis zur Demo. Wenn Sie mit Snort nicht vertraut sind, sollten Sie sich zunächst die Snort-Dokumentation ansehen. Wir werden folgende Themen behandeln:
Überblick
Abhängigkeiten
Herunterladen
Baue Snort
Führen Sie Snort aus
Dokumentation
Quietschen
Diese Version von Snort++ enthält neue Funktionen sowie alle Snort 2.X-Funktionen und Fehlerbehebungen für die Basisversion von Snort, außer wie unten angegeben:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Hier sind einige Hauptfunktionen von Snort++:
Unterstützt mehrere Paketverarbeitungsthreads
Verwenden Sie eine gemeinsame Konfigurations- und Attributtabelle
Verwenden Sie eine einfache, skriptfähige Konfiguration
Machen Sie wichtige Komponenten steckbar
Automatische Erkennungsdienste für portlose Konfiguration
Unterstützen Sie Sticky Buffer in Regeln
Referenzdokumentation automatisch generieren
Bieten Sie eine bessere plattformübergreifende Unterstützung
Erleichtern Sie das Testen von Komponenten
Verwenden Sie eine freigegebene Netzwerkkarte
Zu den weiteren Features auf der Roadmap gehören:
Unterstützt das Pipelining der Paketverarbeitung
Unterstützt Hardware-Offload und Datenebenenintegration
Unterstützt den Proxy-Modus
Windows-Unterstützung
Wenn Sie Snort bereits bauen, haben Sie möglicherweise alles, was Sie brauchen. Wenn nicht, holen Sie sich die neueste Version:
cmake zum Erstellen aus dem Quellcode
daq von https://github.com/snort3/libdaq für Paket-IO
dnet von https://github.com/dugsong/libdnet.git für Netzwerkdienstprogrammfunktionen
flex >= 2.6.0 von https://github.com/westes/flex für JavaScript-Syntaxparser
g++ >= 7 oder anderer C++17-Compiler
hwloc von https://www.open-mpi.org/projects/hwloc/ für die CPU-Affinitätsverwaltung
LuaJIT von http://luajit.org für Konfiguration und Skripterstellung
OpenSSL von https://www.openssl.org/source/ für SHA- und MD5-Dateisignaturen, die Regeloption „protected_content“ und SSL-Diensterkennung
pcap von http://www.tcpdump.org für Protokollierung im TCPdump-Stil
pcre von http://www.pcre.org für den Mustervergleich mit regulären Ausdrücken
pkgconfig von https://www.freedesktop.org/wiki/Software/pkg-config/, um Build-Abhängigkeiten zu finden
zlib von http://www.zlib.net zur Dekomprimierung
Zusätzliche Pakete bieten optionale Funktionen. Weitere Informationen finden Sie im Handbuch.
Im Download-Bereich auf snort.org steht ein Quell-Tarball zur Verfügung:
snort-3.0.0-a3.tar.gz
Sie können den Code auch erhalten mit:
git clone https://github.com/snort3/snort3.git
Es gibt separate Extras-Pakete für cmake, die zusätzliche Funktionen bereitstellen und zeigen, wie Plugins erstellt werden. Die Quelle für Extras befindet sich im Repository snort3_extra.git.
Befolgen Sie diese Schritte:
Quellverzeichnis einrichten:
Wenn Sie einen Github-Klon verwenden:
cd snort3/
Andernfalls gehen Sie wie folgt vor:
tar zxf snort-tarballcd snort-3.0.0*
Installationspfad einrichten:
exportieren Sie my_path=/path/to/snorty
Kompilieren und installieren:
Um mit cmake und make zu erstellen, führen Sie configure_cmake.sh aus. Es wird automatisch ein neues Unterverzeichnis mit dem Namen „build“ erstellt und gefüllt.
./configure_cmake.sh --prefix=$my_pathcd Build make -j $(nproc) install
Notiz :
Wenn Sie src/snort -V ausführen können, haben Sie erfolgreich erstellt.
Wenn Sie mit cmake vertraut sind, können Sie cmake/ccmake anstelle von configure_cmake.sh ausführen.
cmake --help listet alle verfügbaren Generatoren auf, z. B. Xcode. Sie können gerne eines davon verwenden. Hilfe dazu erhalten Sie jedoch separat.
Hier sind einige Beispiele. Wenn Sie Talos-Regeln und/oder -Konfigurationen verwenden, sollten Sie zunächst alle erforderlichen Variablen oben in snort.lua und snort_defaults.lua festlegen.
Snort++ bietet viele Hilfestellungen über die Befehlszeile, darunter:
$my_path/bin/snort --help$my_path/bin/snort --help-module suppress$my_path/bin/snort --help-config | Grep-Thread
Untersuchen Sie ein PCAP und werfen Sie es ab. Ersetzen Sie im Folgenden a.pcap durch Ihren Favoriten:
$my_path/bin/snort -r a.pcap$my_path/bin/snort -L dump -d -e -q -r a.pcap
Überprüfen Sie eine Konfiguration mit oder ohne Regeln:
$mein_Pfad/bin/snort -c $mein_Pfad/etc/snort/snort.lua$mein_Pfad/bin/snort -c $mein_Pfad/etc/snort/snort.lua -R $mein_Pfad/etc/snort/sample.rules
Führen Sie den IDS-Modus aus. Ersetzen Sie im Folgenden pcaps/ durch einen Pfad zu einem Verzeichnis mit einer oder mehreren *.pcap-Dateien:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A alarm_test -n 100000
Unterdrücken wir 1:2123. Wir könnten die Konfiguration bearbeiten oder einfach Folgendes tun:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A warning_test -n 100000 --lua "suppress = { { gid = 1, sid = 2123 } }"
Gehen Sie in einem Verzeichnis mit mehreren Paketthreads aufs Ganze:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A warning_fast --max-packet-threads 8
Weitere Beispiele finden Sie in doc/usage.txt.
Schauen Sie sich das Handbuch an. Teile davon werden vom Code generiert, damit es auf dem neuesten Stand bleibt:
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
Es gibt noch nicht viel über das Wie und Warum, aber es enthält alle derzeit verfügbaren Konfigurationen usw. Einige wichtige Änderungen an den Regeln:
Sie müssen durch Kommas getrennte Inhaltsunteroptionen wie diese verwenden: content:"foo", nocase;
Pufferselektoren müssen vor dem Inhalt erscheinen und bleiben wirksam, bis sie geändert werden
PCRE-Pufferselektoren wurden gelöscht
Weitere Informationen zu Snort++ vs. Snort finden Sie im Handbuch
Sehen Sie sich den Abschnitt „Handbuchreferenz“ an, um zu verstehen, wie Parameter usw. definiert werden.
Es behandelt auch neue Funktionen, die hier nicht gezeigt werden:
snort2lua, ein Tool zum Konvertieren von Snort 2.X-Konferenzen und -Regeln in die neue Form
ein neuer HTTP-Inspektor
ein Ordner zum Zuordnen der Konfiguration zum Datenverkehr
ein Assistent zur portunabhängigen Konfiguration
Verbesserte Regelanalyse – beliebige Leerzeichen, Kommentare im C-Stil, #begin/#end-Kommentare
lokale und Remote-Befehlszeilen-Shell
o")~
Wir hoffen, dass Sie von Snort++ genauso begeistert sind wie wir. Teilen Sie uns Ihre Meinung auf der Snort-Benutzerliste mit. In der Zwischenzeit bleiben wir am Werk.