Serverprotokolle auswerten kann für den Admin eine aufwändige Arbeit sein, vor allem wenn er die Ergebnisse auch noch präsentieren muss. In fast allen Fällen hilft das Perl-Tool Log2timeline weiter .
Jeder Serveradministrator kennt das: Ellenlange Logfiles auswerten ist eine harte Geduldsprobe. Zwar gibt es gerade für Webserver spezielle Analyseprogramme, aber wer regelmäßig verschiedene Logfiles und -formate auswerten muss, darf sich in zahlreiche verschiedene Programme einarbeiten. Das noch recht junge, in Perl geschriebene Programm Log2timeline [1] hat das Potenzial, dieses Problem zu lösen.
Vorarbeit
Bevor er mit der eigentlichen Installation beginnen kann, muss der Admin einige Voraussetzungen erfüllen. Auf einem Debian-Testing-System sind alle Perl-Module glücklicherweise enthalten, es reicht:
aptitude install libdatetime-perl libnet-U pcap-perl libarchive-any-perl libxml-libxml-U perl libdbi-perl libhtml-scrubber-perlU libimage-exiftool-perl libgtk2-perl libglibU -perl libnetpacket-perl libdatetime-formatU -datemanip-perl libdate-manip-perl libdbd-U sqlite3-perl libparse-win32registry-perl
Benutzer anderer Distributionen ins- tallieren die Module aus Listing 1 über die Perl-CPAN-Shell, zum Beispiel mit »perl -MCPAN -e shell« und »install Archive::Zip« oder in der Kurzform »perl -MCPAN -e “install Archive::Zip”«. An-schließend lässt sich Log2timeline via »perl Makefile.PL«, »make« und »make install« bauen.
|
Listing 1: |
|---|
Archive::Zip DateTime HTML::Scrubber Image::ExifTool Net::Pcap NetPacket::Ethernet NetPacket::IP NetPacket::TCP NetPacket::UDP XML::LibXML XML::LibXML::Common Date::Maip DBD::SQLite Parse::Win32Registry |
Log2timeline stellt zahlreiche Eingabe- Module bereit. In der aktuellen Version sind das unter anderem Komponenten zum Auslesen folgender Angaben:
- Daten im Prefetch-Verzeichnis von Windows
- Squid-Access-Logs
- Windows-Wiederherstellungspunkte
- Windows-Papierkörbe (INFO2)
- Windows-Verknüpfungen (LNK)
- Schlüssel-User-Assistenten der Windows-Registry
- Firefox-3-History
- Windows-IIS-W3C-Logs
- Open-XML-Metadaten zum Extrahieren der Metadaten von
Office-2007-Dokumenten - ISA-Server-Textexport, den der Admin über die
Zwischenablage in eine Textdatei kopiert hat - TLN-Body-Files (Timeline)
- Mactime-Body-Files wie die von Sleuthkit [2]
- Internet-Explorer-History-Dateien inklusive Aufbereitung der
»index.dat« - PCAP (Wireshark, Tcpdump)
- Exif
Auch die Ausgabe kann Log2timeline in diversen Formaten erledigen. Neben dem XML-Format CFTL [3] zur Weiterverarbeitung im (in Entwicklung befindlichen) Cyber Forensics Timelab [4] unterstützt es auch Mactime-Body-Files in beiden Versionen bis Sleuthkit 2 und ab Version 3. Das XML-Format fürs Simile Timeline Widget for Timeline Visualization [5] sowie TLN, ein Format, das einige (Windows-)Forensic-Tools von Harlan Carvey verwenden, gehören ebenfalls zum Umfang wie SQlite- und CSV-Output.
CLI oder GUI?
Log2timeline bietet zur automatisierten Aufbereitung ein Kommandozeilen-Interface. Für Eilige gibt es aber auch eine in Perl-GTK2 implementierte grafische Oberfläche. Diese hört auf den Befehl »glog2timeline« und ist weitgehend selbsterklärend (Abbildung 1). Als spannender, weil für den regelmäßigen Gebrauch effektiver, erweist sich die Konsolenvariante. Die Optionen sind überschaubar, die Einarbeitung fällt leicht.

Abbildung 1: Versteht sich von selbst: Das GUI Glog2timeline präsentiert sich als simpler Datenkonverter.
Als Minimum erwartet Log2timeline Eingabe- und Ausgabeformat mit den Parametern »-f« oder »-o« sowie Logdatei oder Verzeichnis, in dem die Protokolle abgelegt sind. Das kann beispielsweise das Prefetch-Verzeichnis von Windows, aber auch »/var/log/« eines Linux-Systems sein. Das Ergebnis der Aufbereitung landet an der Standardausgabe, wer die Ausgabe in einer Datei haben will, gibt den Parameter »-w« an. Welche Logfiles die aktuell installierte Version unter- stützt, listet die Funktion »log2timeline -f list« für Ein- und »log2timeline -o list« für Ausgabeformate auf.
Aufgepeppt mit Simile
Für eine optisch anspruchsvollere Auswertung bieten sich die Simile-Widgets an. Dabei kann aber die Arbeit bei großen Datenmengen, wie sie beispielsweise bei der Auswertung der MAC-Times eines Systems anfallen, bisweilen sehr zäh verlaufen. Am unkompliziertesten erweist sich die weitere Aufbereitung mit dem CSV-Format. Dem Import in ein Kalkulationsprogramm zur weiteren Analyse steht genauso wenig entgegen wie der skriptbasierten Auswertung.
Das folgende Beispiel analysiert die History des Browsers Firefox, der die Geschichte der besuchten Web- seiten in einer SQlite-Datenbank im Profilverzeichnis des Benutzers ablegt. Log2timeline kann damit umgehen und erstellt mit folgendem Befehl eine CSV-Datei:
log2timeline -f firefox3 /Pfad_zum_Firefox-Profil /places.sqlite -w ff3.csv -o csv
Eine simple Auswertung, wie sie gerade im forensischen Bereich häufig vorkommt, präsentiert die Anzahl der Aufrufe einzelner Webserver durch den Benutzer. Das folgende Beispiel betrachtet dabei nur den Host, ohne Rücksicht auf die Unterseiten:
sed -e 's/^.+Host: //' ff3.csv | gawk 'BEGIN { FS = " " }{ COUNT[$1]++ }END {for (x in COUNT) printf("%dt%sn", COUNT[x],x) | "sort -n";}'|tail > TOP10.csv
Sed extrahiert die einzelnen Internetadressen und summiert sie mit Gawk. Anschließend ordnet Sort das Ganze numerisch und legt die Top 10 der aufgerufenen Adressen in der Datei »TOP10.csv« ab. Gnuplot bereitet das Ergebnis optisch nachvollziehbar auf.
Das Skript aus Listing 2 erzeugt eine Grafik mit einem Diagramm, das die Top 10 der besuchten Internetseiten darstellt (Abbildung 2).
|
Listing 2: Gnuplot |
|---|
unset key set grid set title "aufgerufene Internetadressen" set ylabel "Anzahl der Zugriffe" set xlabel "Internetadresse" set key set xrange [ -1 : * ] set yrange [ 1 : *] set terminal png font serif 10 size 1000,600 set output "historychart.png" set style data boxes set boxwidth 0.5 set style fill solid border 0 set xtics rotate plot "history_ff3.csv" using 0:1:xticlabels(2) notitle with boxes, "history_ff3.csv" using 0:1:1 notitle with labels |

Abbildung 2: Mit Sed, Awk und Gnuplot aufbereitete Firefox-Logfiles: Der Benutzer hat am häufigsten die Webseite des Linux-Magazins besucht.
Weiter geht’s
Auf der Roadmap [6] des Entwicklers stehen vor allem zahlreiche weitere Eingangsformate. Version 0.41 konzentriert sich zum Beispiel ganz auf die Browser-History, Version 0.42 dagegen auf diverse Network-Logs. Wenn diese Roadmap umgesetzt wird, entsteht mit Log2timeline ein neues Schweizer Taschenmesser der Logfile-Aufbereitung, für Admins und Forensiker gleichermaßen. (mfe)
|
Infos |
|---|
|
[1] Log2timeline: [http://www.log2timeline.net] [2] Sleuthkit: [http://www.sleuthkit.org] [3] Computer Forensic Timeline Visualization Tool: [http://www.dfrws.org/2009/proceedings/p78-olsson.pdf] [4] Cyber Forensics Timelab: [http://cftl.rby.se] [5] Simile Timelinie Format: [http://code.google.com/p/simile-widgets/wiki/Timeline] [6] Log2timeline Roadmap: [http://www.log2timeline.net/ROADMAP.txt] |
|
Der Autor |
|---|
|
Dennis Schreiber ist Computerforensiker in der Finanzverwaltung Thüringens. Bei seiner Tätigkeitverwendet er zur Datensicherung und ihrer Auswertung vorzugsweise Linux. Wenn er nicht gerade am Computer sitzt, verbringt er seine Zeit am liebsten mit der Familie und Freunden und auf dem Motorrad. |





