Wie Sie bereits gesagt haben, protokolliert Snort standardmäßig zwei Möglichkeiten:
alert
Datei - Enthält Alert-Metadaten im Textformatsnort.log.##########
- PCAP der Pakete, die den Alarm ausgelöst haben
Die Art und Weise, wie ich dies tun würde (nur mit grundlegenden Linux-Bash-Befehlen), wäre:
Der Single-Alarm-Ansatz
So suchen Sie Alert-Einträge:
Suchen Sie die alert
Datei. Sie können nach IP-Adresse oder nach Alertname suchen grep
.
grep "PATTERN" /var/log/snort/alert
Eine typische Protokolleintragszeile würde folgendermaßen aussehen:
01/04-03:28:11.959559 [**] [1:1000001:1] Signature_Name [**] [Classification: Attempted User Privilege Gain] [Priority: 1] 192.168.1.1:80 -> 192.168.1.128:39590
So finden Sie die entsprechende PCAP-Datei:
Um herauszufinden, welche Datei geschrieben wurde, können Sie entweder die geänderten Zeiten in einer langen Verzeichnisliste ( ls -l
) anzeigen oder den Zeitstempel konvertieren (vergessen Sie nicht, das Jahr hinzuzufügen und ein Leerzeichen zwischen Datum und Uhrzeit einzufügen.) ) zur Epoche mit folgendem Befehl:
date "+%s" -d "01/04/2018 03:28:11.959559"
Ausgabe:
1515054491
Suchen Sie dann nach einer Datei mit dem Namen snort.log.1515054491
. Das sollte die PCAP-Daten enthalten.
Wenn Sie mehrere Protokolle für eine IP-Adresse benötigen
Dies ist der Vorschlaghammer-Ansatz. Wenn sie Einträge aus beiden Dateien nur für eine einzelne IP-Adresse wünschen, würde ich Folgendes tun:
Warnungsdateieinträge
Geben Sie die IP-Adresse ein und schreiben Sie die Ausgabe in eine separate Datei.
grep "192.168.1.1" /var/log/snort > /tmp/alerts_192.168.1.1.txt
Das sollte nur nach Zeilen filtern, in denen die IP-Adresse angezeigt wird, und sie in eine neue Datei umleiten, die Sie dem Sicherheitsteam zur Verfügung stellen können.
PCAP-Dateien
Ich würde hier vorsichtig vorgehen, da das Snort-Protokollverzeichnis sehr groß sein kann und das Durchlaufen einer großen Gruppe von Dateien ein System belasten könnte (insbesondere wenn es sich um einen Sensor mit einem sehr hohen Verkehrsaufkommen handelt). Ich würde empfehlen, eine Dateimaske für einen ungefähren Zeitrahmen für die Daten zu verwenden, nach denen Sie suchen. Denken Sie daran, dass dieser Zeitraum im Epochenformat sein muss.
Angenommen, das Team möchte, dass alles vor einer Stunde (3600 Sekunden) zurückgeht. Der Zeitstempel der Epoche lautet 1515054491. Wenn Sie 3600 von diesem Wert abziehen, erhalten Sie 1515050891.
1515050891 - Start 1515054491 - End 151505???? - File mask (close enough)
Ich würde dann eine for-Schleife erstellen, um alle diese Dateien zu durchlaufen und einen Befehl tcpdump ausführen, um nur die betreffende IP-Adresse zu filtern.
tcpdump -r infile -w outfile "BPF"
Die Optionen:
- -r ist zum Lesen aus einer Datei (im Gegensatz zum Starten einer Live-Erfassung über eine Schnittstelle)
- -w ist für die Schreibausgabe in eine Datei
- "BPF" - Berkley-Paketfilter (In diesem Fall würde "Host 192.168.1.1" alle Pakete mit dieser IP angeben.)
Und jetzt die for-Schleife:
cd /var/log/snort for file in snort.log.151505???? do tcpdump -r $file -w /tmp/$file "host 192.168.1.1" done
Jetzt sollten Sie eine Kopie aller Alert-Dateien in dem /tmp
Ordner haben, jedoch nur mit Daten zu dieser bestimmten IP-Adresse. Wenn Sie mergecap
installiert haben, würde ich empfehlen, alle diese in einer einzigen PCAP-Datei zu kombinieren, indem Sie Folgendes verwenden:
mergecap -w /tmp/snort_log_192.168.1.1.pcap /tmp/snort.log.*
Sie sollten wissen, dass zwei Dateien darin sind /tmp
:
- /tmp/alerts_192.168.1.1.txt
- /tmp/snort_log_192.168.1.1.pcap
Stellen Sie diese Dateien dann Ihrem Sicherheitsteam zur Verfügung.