High Availability lässt sich heute mit günstiger Hardware und einer großen Auswahl an kommerzieller sowie freier Software realisieren. ADMIN erklärt die ... (mehr)

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 Netzwerktraffic 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 Packet-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 wurden 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. Wie hier geschehen lassen sich beispielsweise die Angaben für Wireless-Netzwerke aus dem Abschnitt »Private1« entfernen. 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 heißt »12b0c78f05f33fe25e08addc60bd9b7c.pcap« , nach dem MD5-Hash des Binary, das den Netzwerkverkehr verursacht hat. Der Dateiname ist dem Namen der Malware angepasst. Kraken ist ein Spambot, der die TCP- und UDP-Ports 447 zur Bot-Steuerung nutzt.

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

 

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 »kraken.pcap« aus. Netgrok zeigt dann das Diagramm aus Abbildung 1 .

Abbildung 1: Kraken.pcap in Netgroks Graphenansicht.

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 darauf. Den Mauszeiger über einen Knoten bewegen zeigt mehr Details im GUI an. Wenn Sie das mit dem roten Rechner machen, sehen Sie, dass seine IP-Adresse 192.168.2.5 ist. Der braune (jener 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 Treemaps 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, es handelt sich um eine PCAP-Datei, die während einer Analyse der Storm-Malware entstand. Diese Software unterhält sich unentwegt mit anderen Instanzen über verschlüsseltes UDP und müllt damit die Snort-Logdateien zu, wie das Listing 2 ausschnittweise zeigt.

Listing 2

ecard.pcap in Snort

 

Die resultierende Netgrok-Treemap in Abbildung 2 zeigt zwei Dinge ganz klar: 192.168.248.105 verursacht am meisten Traffic (507043 Bytes – der rote Balken rechts) und befindet sich im internen Netz, wie die dicke schwarze Linie zeigt, die ihn von externen Hosts trennt. Die zweite Erkenntnis ist die Unmenge an anderen Hosts, die mit dem einen in Paketen von 106 bis 212 Bytes Größe kommunizieren.

Abbildung 2: ecard.pcap als Treemap in Netgrok.

Um die Übersicht in der Darstellung zu verbessern, bietet Netgrok die Möglichkeit, Hosts nach IP-Adresse, Bandbreite und Richtung des Traffic zu filtern.

Afterglow

Das Tool des Buchautors Raffael Marty (siehe Kasten "Bücher und Websites" ) ist Teil der Davix-Distribution, in der Sie es über den Menüpunkt »Visualize« erreichen. Afterglow [7] verarbeitet CSV-Dateien, daher verwenden Sie am besten das »tcpdump2csv.pl« -Skript, das Tcpdump-Logdateien liest und CSV ausgibt. Normalerweise wäre alles in einem Pipe-Aufruf zu erledigen, aber die separate Konvertierung in eine CSV-Datei eignet sich zur Demonstration besser.

Bücher und Websites

Wer sich näher für Security-Visualisierung interessiert, sollte sich zwei Bücher genauer ansehen: "Security Data Visualization" von Greg Conti und "Applied Security Visualization" von Raffael Marty. Beide Bücher überzeugen nicht nur durch ihren Inhalt, sondern auch durch die ansprechenden Grafiken. Kapitel 8 von Contis Buch beschäftigt sich näher mit der Visualisierung von Intrusion Detection, insbesondere durch Treemaps. Zwei Websites mit Beispielen und Tipps sind http://www.secviz.org und http://vizsec.org .

Das Beispiel ist »camda.pcap« , eine Capture-Datei, die im Rahmen der Analyse eines IRC-Flood entstand. Die Snort-Alarme für »camda.pcap« zeigt Listing 3 . Die Konversion der Datei übernimmt der Befehl:

Listing 3

camda.pcap in Snort

 

tcpdump -vttttnnelr camda.pcap | /usr/local/bin/tcpdump2csv.pl"sip dip dport" > camda.csv

Das Skript erlaubt es, die Felder auszuwählen, die die CSV-Datei enthalten soll, darunter der Zeitstempel, Quell- und Ziel-IP ( »sip« und »dip« ), die MAC-Adresse, den Port »dport« , die Time-to-Live und andere Parameter. Mehr Details dazu verrät der Quellcode des Skripts.

Die folgende Unix-Pipe übergibt die vorher erzeugte Datei »camda.csv« an Afterglow:

cat camda.csv | afterglow.pl -c /usr/local/share/afterglow/color.properties -v | dot-Tgif -o camda.gif

Abbildung 3 zeigt den lokalen Netzwerk-Traffic und hebt dabei die Snort-Erkenntnisse über die IRC-Kommunikation besonders hervor. Man sieht, dass die Quelladresse 192.168.248.105 mit der Zieladresse 64.32.28.7 über den Port 5553 kommuniziert, also nicht über den Standard-IRC-Port.

Abbildung 3: camda.pcap in Afterglow.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023