Intrusion Detection visualisiert
Immer im Bild
In der Flut von Daten, die ein Intrusion Detection System (IDS) produziert, entgeht dem Auge des Security-Experten leicht einmal ein verräterische Spuren. Visualisierungs-Tools können dabei helfen, sich darin zu orientieren und leichter Anzeichen für einen Einbruch zu entdecken.
Viele Programme verwenden PCAP, die Packet Capture Library, um Netzwerk-Traffic mitzuschneiden. Einige können diese Daten in eine PCAP-Datei speichern, die sich dann mit anderen Tools einlesen und analysieren lässt. Somit eignen sich PCAP-Dateien gut dazu, IDS-Daten zu speichern und wiederzugeben.
In diesem Artikel sollen PCAP-Files die Basis darstellen, um winifw dewiw Visualisierungs-Tools zu testen. Für jedes Szenario wird die Ausgabe des Snort-IDS [1] der entsprechenden Visualisierung gegenübergestellt. Die Testkandidaten sind dabei Netgrok, Afterglow, Rumint, TNV und Etherape. Die meisten von ihnen befinden sich auf der Live-CD Davix [2], ein Slax-basiertes Linux, das sich auf Security-Visualisierung spezialisiert hat. Deshalb ist es am einfachsten, die Davix-CD herunterzuladen und zu booten, wenn Sie die Beispiele dieses Artikels nachvollziehen wollen. Um die Tools stattdessen in Ihrer Standard-Distribution zu installieren, folgen Sie den Anweisungen der jeweiligen Projekt-Homepage. Die Beispiel-PCAP-Dateien finden Sie auf der Homepage des Admin-Magazins [3].
Sie sollten schon einige Kenntnisse von Intrusion-Detection-Systemen mitbringen, inbesondere des Snort-IDS. Kennen Sie sich damit noch nicht so gut aus, schauen Sie sich die Dokumentation auf der Snort-Homepage mal etwas genauer an. Mittlerweile gibt es auch schon einige Bücher über Snort.
Datenquellen
Neben selbst aufgenommenen Paket-Captures verwenden wir Beispiele von http://openpacket.org, einer sehr guten Quelle für ganz unterschiedliche Szenarien, und zwei Dateien von http://evilfingers.com. Das Wiki von Networkminer [4], einem Analyse-Programm unter Windows, führt eine ausgezeichnete Liste von PCAP-Sites. Die PCAPs dieses Artikels wurden mit Snort 2.7 unter Ubuntu 9.04 erzeugt, mit den Emerging-All-Regeln von http://emergingthreads.net.
Wenn sie mit Davix experimentieren wollen, starten Sie es im grafischen KDE-Modus und weisen der virtuellen Maschine mindestens 1 GByte RAM zu. Damit ist eine gute Performance des Snort-IDS gewährleistet, aber auch genug Reserven für die Visualisierungsprogramme.
Netgrok
Weil es sich um ein Java-basiertes Programm handelt, läuft Netgrok [5] auf den meisten Betriebssystemen. Laut Selbstbeschreibung ist es ein "exzellentes Echtzeit-Diagnose-Tool, das ein schnelles Verständnis des Netzwerk-Traffic und leichte Problemidentifikation ermöglicht". Hervorgegangen ist es aus einem Kurs zur Informationsvisualisierung im Frühjahr 2008 von Ben Shneiderman an der Universität von Maryland, College Park. Vor kurzem hat das Davix-Team angekündigt, das Tool in die Live-CD aufzunehmen.
Netgrok setzt die Paket-Capture-Bibliothek Libpcap und ihr Java-Pendant Libjpcap voraus. Entpacken Sie Netgrok und wechseln Sie mit »cd /Netgrok/lib/linux«
in das passende Unterverzeichnis. Auf dem Testsystem habe ich die Jpcap-Dateien von Hand in die Java-Verzeichnisse kopiert:
cp libjpcap.so /usr/lib/jvm/java6openjdk/↩ jre/lib/i386/ cp jpcap.jar /usr/lib/jvm/java6openjdk↩ /jre/lib/ext/
Wenn Sie statt Open-JDK das SDK von Sun verwenden, geben Sie das entsprechende Verzeichnis an.
Im nächsten Schritt passen Sie die Datei »groups.ini«
im Wurzelverzeichnis von Netgrok an. Ich habe beispielsweise die Wireless-Angaben aus dem Abschnitt »Private1«
entfernt. Zum Test soll die PCAP-Datei »Kraken.pcap«
zum Einsatz kommen, die sich auf http://openpacket.org in der Kategorie Malicious (bösartig) findet [6]. Die Originaldatei hieß »12b0c78f05f33fe25e08addc60bd9b7c.pcap«
, nach dem MD5-Hash des Binary, das den Netzwerkverkehr verursacht hat. Ich habe den Dateinamen dem Namen der Malware angepasst. Kraken ist ein Spambot, der die TCP- und UDP-Ports 447 zur Bot-Steuerung verwendet.
Kopieren Sie »emerging-all.rules«
von http://emergingthreats.net in das Snort-Regelverzeichnis und schalten Sie die Regel in der »snort.conf«
ein. Dann lassen Sie die PCAP-Datei mit dem folgenden Befehl durch Snort laufen:
snort -c /etc/snort/snort.conf -r ↩ kraken.pcap -l output/kraken
Listing 1 zeigt daraufhin die Ausgabe des Snort-IDS.
Listing 1
kraken.pcap in Snort
[**] [1:2008105:3] ET TROJAN Bobax/Kraken/Oderoor UDP 447 CnC Channel Initial Packet Inbound [**] [Classification: A Network Trojan was detected] [Priority: 1] 02/22-04:20:53.112408 66.29.87.159:447 -> 192.168.2.5:1052 UDP TTL:48 TOS:0x0 ID:0 IpLen:20 DgmLen:52 DF Len: 24 [Xref => http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/VIRUS/TROJAN_Bobax] [Xref => http://doc.emergingthreats.net/bin/view/Main/OdeRoor] [**] [1:2008108:3] ET TROJAN Possible Bobax/Kraken/Oderoor TCP 447 CnC Channel Inbound [**] [Classification: A Network Trojan was detected] [Priority: 1] 02/22-04:20:53.806447 66.29.87.159:447 -> 192.168.2.5:1054 TCP TTL:48 TOS:0x0 ID:23263 IpLen:20 DgmLen:1500 DF ***A**** Seq: 0xC6815265 Ack: 0x1D12B7D Win: 0x16D0 TcpLen: 20 [Xref => http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/VIRUS/TROJAN_Bobax] [Xref => http://doc.emergingthreats.net/bin/view/Main/OdeRoor] [**] [1:2008110:3] ET TROJAN Possible Bobax/Kraken/Oderoor TCP 447 CnC Channel Outbound [**] [Classification: A Network Trojan was detected] [Priority: 1] 02/22-04:20:53.810649 192.168.2.5:1054 -> 66.29.87.159:447 TCP TTL:128 TOS:0x0 ID:459 IpLen:20 DgmLen:40 DF ***A**** Seq: 0x1D12B7D Ack: 0xC6815DCD Win: 0x4470 TcpLen: 20 [Xref => http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/VIRUS/TROJAN_Bobax] [Xref => http://doc.emergingthreats.net/bin/view/Main/OdeRoor] [**] [1:2008103:3] ET TROJAN Bobax/Kraken/Oderoor TCP 447 CnC Channel Initial Packet Outbound [**] [Classification: A Network Trojan was detected] [Priority: 1] 02/22-04:20:54.367395 192.168.2.5:1055 -> 66.29.87.159:447 TCP TTL:128 TOS:0x0 ID:475 IpLen:20 DgmLen:64 DF ***AP*** Seq: 0x95E9CBD1 Ack: 0xC63DF5FA Win: 0x4470 TcpLen: 20 [Xref => http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/VIRUS/TROJAN_Bobax] [Xref => http://doc.emergingthreats.net/bin/view/Main/OdeRoor]
Der Snort-Alarm zeigt ganz klar die Verbindung zwischen dem Opfer, »192.168.2.5«
, und dem Command-und-Control-Server, »66.29.87.159«
. Welche Schlüsse kann nun Netgrok daraus ziehen?
Starten Sie Netgrok mit »java -jar netgrok20080928.jar«
und eine einfach grafische Oberfläche erscheint. Klicken Sie auf »File | Open PCAP File«
und wählen Sie dann »kraken.pcap«
aus. Netgrok zeigt dann das Diagramm aus Abbildung 1.
Rot gezeichnete Knoten verbrauchen am meisten Bandbreite, grüne am wenigsten und farblose gar keine. Innerhalb des gestrichelten Rings gezeichnete Rechner befinden sich im lokalen Netzwerk, die anderen außerhalb. Um auf einen Knoten zu zoomen, doppelklicken Sie ihn. Den Mauszeiger über einen Knoten zu bewegen, zeigt mehr Details in der GUI an. Wenn Sie das mit dem roten Rechner machen, sehen Sie, dass seine IP-Adresse 192.168.2.5 ist. Der braune (derjenige mit dem zweitgrößten Bandbreitenverbrauch) hat die Adresse 66.29.87.159. Das stimmt mit dem Snort-Ergebnis überein. Das Opfer, 192.168.2.5, kommuniziert vorzugsweise mit dem Command-und-Control-Server, »66.29.87.159«
.
Netgrok kann sein Ergebnis auch in Form von Tree-Maps anzeigen. Diese Diagramme sind ideal, um große Datenmengen anzuzeigen, ohne dass es zu Überlappungen kommt. Ben Shneiderman, dessen UMD-Kurs Netgrok programmiert hat, ist übrigens der Erfinder von Treemaps. Zum Test ist ecard.pcap ideal, eine PCAP-Datei, die ich während einer Analyse der Storm-Malware angefertigt habe. Diese Software unterhält sich unentwegt mit anderen Instanzen über verschlüsseltes UDP und müllt damit die Snort-Logs zu, wie Listing 2 ausschnittweise zeigt.
Listing 2
ecard.pcap in Snort
[**] [1:2007701:4] ET TROJAN Storm Worm Encrypted Variant 1 Traffic (1) [**] [Classification: A Network Trojan was detected] [Priority: 1] 05/03-15:07:28.722225 79.115.64.162:22149 -> 192.168.248.105:22724 UDP TTL:116 TOS:0x0 ID:28417 IpLen:20 DgmLen:53 Len: 25 [Xref => http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/VIRUS/TROJAN_Storm] [Xref => http://doc.emergingthreats.net/2007701]
Die resultierende Netgrok-Treemap in Abbildung 2 zeigt zwei Dinge ganz klar: »192.168.248.105«
verursacht am meisten Traffic (507043 bytes – der große rote Balken) und befindet sich im internen Netz, wie die dicke schwarze Linie zeigt, die ihn vom von externen Hosts trennt. Die zweite Erkenntnis ist die Unmenge an anderen Hosts, die mit dem einen in Paketen von 106 bis 212 Bytes kommunizieren.
Um die Konfusion zu verringern, bietet Netgrok die Möglichkeit, Hosts nach IP-Adresse, Bandbreite und Richtung des Traffics zu filtern.
Alle Angebote zum ADMIN-Magazin im Online-Shop
Versandartikel |
Onlineartikel |




