Grafische Auswertung von Iptables Logfiles Fachhochschule Zürich Thomas Grieder 10. September 2003 1
Übersicht Übersicht Ausgangslage Ziele Methodik Logfile Iptables TreeMap Entscheid Tabelle oder Datenbank Ablaufdiagramm Programm 2
Übersicht Programm Demonstration Test Vergleich mit anderen Tools Verbesserungspotential Schlussfolgerungen Quellen Internet Fragen & Antworten 3
Ausgangslage Vermehrt frei erhältliche Software Verbreitung von Linux nimmt zu Hackerangriffe DoS (Denial of Service) Steigende Sicherheitserwartungen Grosse Logfiles Hoher manueller und zeitlicher Analyseaufwand 4
Ziele Programm zur Auswertung von Logfiles Computergestützte Analyse Grafische Darstellung Analyseaufwand verkleinern Plattform Unabhängigkeit Kosten / Aufwand tief halten 5
Methodik Studium technischer Literatur Analyse des Aufbaus eines Logfiles Entscheid Tabelle oder Datenbank Entwicklung Design Aufteilung des Programms in Module Entscheid über grafische Darstellungsart Test des Programms 6
Logfile Sammelbüchse für wichtige Systeminformationen Viele Programme und Dienste schreiben in das Logfile das File wird sehr gross Fremddaten Aufbau des Logfiles Nov 10 12:36:21 jupiter kernel: Drop all UDP IN= OUT=eth0 SRC=192.168.0.2 DST=192.168.0.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=137 DPT=137 LEN=58 7
Iptables Paketfilter für TCP, IP, UDP und ICMP Pakete NAT (Network Address Translation) Hauptarbeit übernimmt der Kernel 8
TreeMap Gedacht für Verzeichnisse und Dateien Hierarchische Daten grafisch ausgeben Zusatzinformationen mit Tooltip Beispiel (Demonstration) 9
Entscheid Tabelle oder Datenbank Vorteile Nachteile Tabelle - Findet im RAM Platz - Abfragen muss man selber - Keine zusätzliche Software Programmieren Datenbank- Abfragen sind einfach zu erstellen - Gruppieren - Sortieren - Filtern - Berechnen - Grosse Datenmengen - Braucht Datenbank Software 10
Ablaufdiagramm Programmablauf schematisch dargestellt 11
Programm Auslesen des Logfiles Speichern der Daten in MySQL Auslesen der Daten mit SQL-Abfragen Übergeben der Daten an TreeMap-Library Daten grafisch darstellen 12
Programm Auslesen des Logfiles (1) Zeilenweise aus dem Logfile lesen: try { BufferedReader reader = new BufferedReader(new FileReader(file)); while (reader.ready()){ line = reader.readline(); /* lesen der Einträge aus dem String line */ } reader.close(); } 13
Programm Auslesen des Logfiles (2) Suchmuster Eine Zeile aus einem Logfile: Nov 10 12:36:21 jupiter kernel: Drop all UDP IN= OUT=eth0 SRC=192.168.0.2 DST=192.168.0.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=137 DPT=137 LEN=58 Speichern der Daten Testversion: In einem Vector MySQL 14
Programm Speichern der Daten in MySQL Connector/J Aufruf zum Öffnen der Verbindung kommt aus dem Modul zum Lesen des Logfiles Erstellen des SQL-Strings im Lesen- Modul und Übergabe an addtablerow 15
Programm Auslesen der Daten mit SQL-Abfragen Abfrage: select src, dpt, count(dpt) as sum_dpt from fwanalyzer group by src, dpt order by src; +----------------+------+---------+ src dpt sum_dpt +----------------+------+---------+ 192.168.0.12 0 10 192.168.0.12 22 5 192.168.0.12 53 9 192.168.0.12 67 1 192.168.0.12 80 50 192.168.0.12 123 1 192.168.0.12 5190 2 192.168.1.2 53 41 192.168.1.2 80 55 192.168.1.2 110 663 80.218.107.234 80 2 +----------------+------+---------+ 11 rows in set (0.04 sec) 16
Programm Übergeben der Daten an TreeMap-Library fwatmnode erstellt die Baumstruktur Zeilenweise aus der Datenbank lesen: Wird aus fwatmnode gestartet Zeilen werden direkt an fwatmnode übergeben 17
Programm Daten grafisch darstellen fwatmnode Für die Erstellung der Baumstruktur zuständig fwatmdraw Für die Darstellung zuständig fwatmsize Für die Grösse zuständig 18
Programm Demonstration 19
Test Getestete Punkte Funktioniert der Programmstart? Stimmt die Anzahl Zeilen in der Datenbank? Sind die Daten in der Datenbank korrekt? Stimmt die grafische Darstellung? Funktioniert die grafische Oberfläche? Positives Testresultat 20
Vergleich mit anderen Tools Vorteile Nachteile Fwanalyzer- Schnelle Analyse der Datenmenge - Braucht eine Datenbank - Plattformunabhängigkeit - Für grosse Datenmengen geeignet Fwanalog - Viele Auswertungsmöglichkeiten - Nur Kreisdiagramme - Shellscript - Keine mengenmässige Auswertung FWReport - Echtzeit Analyse - Nur textbasierte Auswertung 21
Verbesserungspotential Grafikausgabe in einer Webseite Bedienungsmöglichkeit über Webinterface Ohne Datenbankanbindung 22
Schlussfolgerungen Fwanalyzer ist hervorragend geeignet zum Auswerten von Iptables Logfiles Gut einsetzbar für grosse Datenmengen Anwendbar vom Heimbenutzer und Grosskonzern Nur versuchte DoS Angriffe aufspürbar 23
Quellen Buch: MySQL Autor: Michael Kofler Verlag: Addison-W esley Buch: Linux Hacker's Guide Autor: Anonymous Verlag: Markt + Technik Buch: TCP/IP Autor: Mathias Hein Verlag: mitp Buch: Das Firewall Buch Autor: W olfgang Barth Verlag: SuSE Press Internet: www.netfilter.org Thema: Iptables Internet: www.mysql.com Thema: MySQL und Connector/J Internet: www.fwbuilder.org Thema: GUI für Iptables Internet: java.sun.com Thema: java Internet: treemap.sf.net Thema: TreeMap 24
Internet Alle Dokumente und Quellcodes: www.moonsmile.ch 25
Fragen & Antworten Fragen & Antworten Diskussion 26