veranstaltung - rechnernetze und...
TRANSCRIPT
Nach erfolgreichem Einbruch
� Überwachungsmethoden analysieren
� Verwischen von Spuren / Entdeckung vermeiden
� Installation eines Rootkits
� Einrichtung von Hintertüren
� Angriff auf weitere Systeme
Forensik
� Forensik: lat. für gerichtlich (oder auch kriminaltechnisch)
� Nachweis und der Aufklärung von strafbaren Handlungen
� Digitale Forensik wird auch als Computer Forensik bezeichnet
Ziel
� Klären der vorherigen Fragen durch strukturierte, schlüssige Analyse
� Abschätzung möglicher Gefahren
� Aussagen sollten nachvollziehbar sein und bei Bedarf vor Gericht Bestand haben
Entwicklung
� Junger Zweig der IT-Branche
� 1986 (von Einzelpersonen) erstmals zur Verfolgung von Hackern eingesetzt
� 1999 durch das "Coroner's Toolkit" von Dan Farmer und Wietse Venema zu einer echten Methode entwickelt
� Erlangung der öffentlichen Aufmerksamkeit im Jahr 2001 durch das Honeynet Projekt der "Forensic Challenge"
Grundsätze� Änderungen am Original-System weitestgehend
vermeiden� Wie im echten Leben, nichts anfassen bis die
Spurensicherung eintrifft
� Änderungen Dokumentieren� Nur externe Analysesysteme (z.B. NIDS) erlauben
das Entdecken eines Einbruchs, ohne auf dem betroffenen System entsprechende Programme zu starten
� Interne Analyse bewirkt eine Veränderung des Systems
Grundsätze
� Uhrzeit und Datum notieren� Zeitdaten des BIOS sichern� Differenzen zum korrekten Zeit notieren� Ermöglicht die Erstellung einer exakten Zeitskala,
sowie die Korrelation mit anderen Datenquellen, z.B. NIDS, SIV, Router/Firewall Logs
Grundsätze
� Hardware-Inventur des Originalsystems� Bei einer Hardwareuntersuchung muss die
Ausstattung zu Beginn notiert werden
� Geringe Personenzahl im Untersuchungsraum� Kleine eingespielte Teams arbeiten effektiver� Unkoordinierte Aktionen, die zur Vernichtung von
Beweisen führen können, werden verhindert
Grundsätze
� Zuerst Daten sammeln, dann analysieren� Nur gesammelte Daten sind vor nachträglicher
Zerstörung sicher
� Niemals mit Originaldaten arbeiten� Durch arbeiten auf einer exakten Kopie können
nachträgliche Veränderungen der Daten leicht festgestellt werden
Grundsätze
� Daten in Reihenfolge ihrer Vergänglichkeit sichern� Registerwerte, Cacheinhalte
� Hauptspeicher
� Aktueller Zustand des Netzwerks
� Laufende Prozesse
� Daten auf Festplatte
� Daten auf Wechselmedien
� Sonstige Daten (auch Papier)
Grundsätze
� Bei einer Sicherung ist es unmöglich eine "Momentaufnahme" zu machen, da jede Aktion eine Veränderung nach sich zieht
� Forensisch sterile Datenträger verwenden� Keine Viren� Sauber gelöschte Medien� Auf Fehler des Dateisystems geprüft
Erstkontakt (klassische Fehler)
� In Panik den Netz(werk)stecker ziehen� Laufende Prozesse können nicht mehr analysiert
werden� Es bleibt nur die Post-Mortem Analyse der
Festplatte� Fehlende Netzwerkverbindung kann Aktion eines
Werkzeugs auslösen
Erstkontakt (klassische Fehler)
� Einspielen des letzten Backups ohne Modifikation� Analyse wird nahezu unmöglich� Backup kann bereits kompromitiert sein� Erneuter Angriff erzielt gleiche Wirkung
Erstkontakt (klassische Fehler)
� Auffällige Prozesse beenden, entsprechende Dateien löschen und das System so weiterbetreiben� Sehr einfache und Methode, aber absolut
wirkunglos
� Fehlende Koordination in größeren Unternehmen (viele Administartoren)
� Nachträgliche Einspielen der Analysetools auf das kompromitierte System
Beginn der Analyse
� Brauchbare Programme zusammenstellen
� Möglichst statisch linken
� Typische Unix/Linux Programme:� dd, cp, cat, ls, ps, lsof, strings, find, file, bash, grep,
less, vi, perl, ifconfig, kill, nc/netcat, tcpdump, arp, des, df, diff, du, last, lsmod, md5, mv, netstat, rpcinfo, showmount, top, uname, uptime, w, who, fdisk, gzip
Beginn der Analyse
� Beschaffung der Werkzeuge� Am einfachsten mit Linux CD, z.B. Knoppix� Minimal invasive Analyse, da lauffähig von CD� Viele Standardwerkzeuge lassen sich für Analyse
verwenden� Imagedateien können direkt als „Laufwerk“
eingebunden werden� Einfache Um-/Weiterleitung von Daten (command
chaining)
Externe Hilfsmittel
� Logserver, Firewall-Logs, Router-Logs
� System Integrity Verifier (SIV), kann neu angelegte oder manipulierte Daten erkennen
� Wichtig bei externen Quellen ist immer die korrekte Zeitumrechnung und die Ermittlung von Zeitdifferenzen
Externes Hilfsmittel
� IDS� Erhöhter Netzwerkverkehr� Verstoß gegen die Sicherheitsrichtlinien (nicht
erlaubte Protokolle, Zugriffszeiten, ...)� Dateisystem wird stärker genutzt� Höhere Prozessorlast� Geänderte Passwörter / neue Benutzer
Standardwerkzeuge
� Wichtig: Nicht gleich hiermit loslegen!
� last - wer war zuletzt eingeloggt
� lastb - zeigt auch Fehlversuche bzgl. des Einloggens an
� who - wer ist momentan eingeloggt
� w - etwas ausführlicher als who
Standardwerkzeuge
� lastcomm - zuletzt ausgeführtes Kommando
� ps - welches Prozesse laufen gerade
� netstat - Anzeigen der Routen und offenen Netzwerkverbindungen
� arp - Anzeigen aller MAC-Adressen im Cache
Windows Pakete
� Unter Windows müssen diese Pakete explizit installiert werden! (Z.B. IRCR Tool - Incident Response Collection Report)
� psloggedon – Zeigt eingeloggte Benutzer und Benutzer, die über Windows-Share auf die Maschine zugreifen
� psfile - Erzeugt eine Liste von Dateien, die Remote geöffnet sind. Optional kann die Datei geschlossen werden
Windows Pakete
� fport - Erstellt eine Liste aller TCP/UDP Ports mit den zugehörigen Applikationen
� dumpevt - Erzeugt aus dem Eventlog einen ASCII-Output zur einfacheren Bearbeitung
� ntlast - Zeigt die letzten Logins im System an, dafür muss das Auditing aber aktiviert worden sein
Spezielle Werkzeuge
� lsof - Analyse, welche Applikation auf welchem Port läuft
� netcat - Das Universalwerkzeug
� dd - Kopieren und konvertieren von Dateien
� script - Protokolliert Befehle und deren Ausgaben
Lsof
� Offene Dateien� lsof
� Offene Netzwerkverbindungen� lsof -i
� Alle Sockets� lsof -U
� Gelöschte aber noch offene Dateien� lsof +L1
Prozesse ohne zugehörige Datei
� Einbrecher können eine Datei nach dem Ausführen löschen um z.B. Sniffer zu verstecken
� Wiederherstellung der Datei bei installiertem proc- Filesystem mit� cat /proc/[PID]/exe > [Datei]
Netcat
� Universalwerkzeug für Netzangelegenheiten� netcat host port (client)� netcat -l -p port (server)
� Kann als Server auf jedem Port laufen
� Verwendet wahlweise TCP oder UDP
� Keine Interpretation von Sonderzeichen (Unmodifizierte Übertragung)
Dd
� Einfaches kopieren� dd if=Quelldatei of=Zieldatei
� Echtes löschen der Festplatte hda� dd if=/dev/zero of=/dev/hda� Für spätere Datenanalyse wichtig
� 1:1 Kopie einer Festplatte (baugleich!)� dd if=/dev/hdb of=/dev/hda
Script
� Einfache Anwendung � script -f Ausgabedatei
� Zur direkter Übermittlung der Sitzung auf anderen Rechner
# mkfifo named_pipe
# script -f named_pipe
# cat named_pipe | netcat zielrechner port &
Verbindungsdaten sichern
� Zielmaschine:� netcat -l -p 12345 >> analyse.txt
� Quellmaschine:� netstat -an |netcat -w 3 Zielrechner 12345
� Verschlüsselte Variante� Z: netcat -l -p 12345 | des -d -c -k [Schlüssel] >>
analyse.txt� Q: netstat -an |des -e -c -k [Schlüssel] | netcat -w 3
Zielrechner 12345
Hauptspeicher sichern
� Systemspeicher� Z: netcat -l -p 23456 > mem_out.img� Q: dd bs=1024 </dev/mem |netcat Zielrechner
23456 -w 3
� Kernelspeicher� Z: netcat -l -p 34567 > kmem_out.img� Q: dd bs=1024 </dev/kmem |netcat Zielrechner
34567 -w 3
Festplatten sichern
� Bit für Bit Daten sichern mit „dd“
� U.a. um MD5 Hashing erweiterte Variante vom DoD „dcfldd“
� Vorteile von Bitstream gegenüber Datei Backup� Dateiensysteme sind meist in Blöcke unterteilt.
Wird eine Datei überschreiben und der letzte Block wird kaum verwendet, bleiben Datenreste des Vorgängers erhalten - „File Slack“.Dieser Rest kann wichtige Hinweise enthalten, wird bei einem Datei Backup aber nicht mitgesichert
Festplatten sichern
� Ein Bitstream enthält im Gegensatz zum Datei Backup auch alle nicht-allokierten Datenblöcke. Gelöschte Dateien können ggf. wieder hergestellt werden.
� Ein Datei Backup modifiziert die Zugriffszeiten aller Dateien. Eine Zeitskala basierend auf Zugriffszeiten wird dadurch unmöglich
Festplatten sichern
� Erzeugung eines Bitstreams� Z: netcat -l -p 12345 | dd of=[Datei]� Q: dd if=[Partition] | netcat -w 3 [IP-Ziel] 12345
Hash Summen
� Nach der Datensammlung sollten über alle Dateien Hashsummen gebildet werden� z.B. mit md5sum [Datei]� spätere Veränderungen durch Defekte oder
Manipulationen lassen sich so erkennen
Rootkits entdecken
� Offene Ports (Scan von außen mit netstat vergleichen – versteckte Hintertür?)
� Modulliste (wenn nicht versteckt)
� Vergleich der Systemsprungtabelle mit System.map
Rootkits entdecken
� Signatur (wenn bekannt und nicht verschlüsselt) im Speicher suchen (z.B. mit strings /dev/kmem)
� PID-Test (versuchen alle freien PIDs durch einen Testprozess zu belegen)
� Www.chkrootkit.org (erkennt sehr viele Rootkits auf lokalem Rechner automatisch)
Beliebte Verstecke
� Beliebte Plätze für Rootkits� /dev/, /usr/man, /lib/modules, /usr/lib
� Oft trojanisierte Programme� ps, ls, find, ifconfig, netstat, du, df� sshd, httpd� login, passwd� inetd, tcpd
Werkzeugsammlungen
� Freeware
� Foremost� The Coroner's Toolkit (TCT)� The @stake Sleuth Kit (TASK)� Autopsy
� Spezielle Windows Tools� Galleta, Pasco, Rifiuti
Foremost
� Entwickelt von U.S. Air Force Office of Special Investigations
� Kommando-orientiertes Werkzeug zur Bearbeitung von Imagedateien� Durch garantierte ro-Funktionalität notfalls auf
Originaldaten einsetzbar� Dateiwiederherstellung
� Besonders mit http://www.wotsit.org sehr effektive Dateirestaurierung
Open Source Computer Forensic
� Speziell zusammengestellte und bootfähige Werkzeuge sind z.B.� Penguin Sleuth Kit Bootable CD� http://www.linux-forensics.com/
� F.I.R.E.� http://fire.dmzs.com/� Auch für Boot-Disketten
The Coroner's Toolkit (TCT)
� 1999 für einen Computerforensikkurs von Dan Farmer und Wietse Venema entwickelt
� grave-robber Sammelt von einem Live-System alle wichtigen Informationen für die Analysephase, inkl. Zugriffszeiten und Hashsummen
� pcat Zeigt den Inhalt des Speicherplatzes, den ein laufender Prozess belegt
The Coroner's Toolkit
� ils Listet alle nicht-allokierten Inodes einer Partition samt Zusatzinformationen auf.
� icat Zeigt den Inhalt eines Inodes� unrm Sammelt alle nicht-allokierten Datenblöcke
einer Partition in einer Ausgabedatei
The Coroner's Toolkit
� lazarus Versucht die Datenblöcke eines Eingabe-Images (z.B. mit unrm erstellt) wieder zu einer Datei zusammen zu setzen (sehr rechenintensiv)
� mactime Verwendet eine Liste aller Dateien und Verzeichnisse des Zielsystems und sortiert diese anhand der Zugriffszeiten. Der Suchzeitraum kann durch ein Zeitfenster eingegrenzt werden
The @stake Sleuth Kit (TASK)
� Sammlung von CLI basierten Datei und Media Management Werkzeugen
� Unterstützt verschiedene Dateisysteme (BS-Endian unabhängig)� NTFS, FAT, FFS, EXT2FS, and EXT3FS
TASK Werkzeuge
� Dateisystem und -name� fsstat - Dateiinformationen inkl. Layout und Labels� fls – Listet belegte (allozierte) und gelöschte
Dateien� ffind – Findet (un-)belegte Dateinamen, die auf eine
Metadatenstruktur zeigen
TASK Werkzeuge
� Metadatenstruktur� Dateiinformationen werden aufgrund der
Metadatenstruktur erkannt, z.B. Inode Informationen unter ext2fs und Directory unter FAT
� ifind, ils, istat ähnlich wie ffind, fls, fsstat� icat - extrahiert Daten anhand der MD-Struktur
TASK Werkzeuge
� Dateneinheit� Werkzeuge zur Bearbeitung einzelner
Dateneinheiten, z.B. Cluster unter FAT oder Fragmente unter ext2fs
� dcat, dcalc, dls, dstat
TASK Werkzeuge
� Media Management� mmls – Zeigt das Layout des Mediums an, z.B.
Partitionstabelle und Label� Kann versteckte Daten zwischen Partitionen finden
und zur weiteren Analyse extrahieren
TASK Werkzeuge
� Sonstige Werkzeuge
� hfind - Sucht Hashwerte aus entsprechenden Datenbanken wie, NIST NSRL oder Hashkeeper
� mactime – Erzeugt eine „Timeline“ der Dateiaktivitäten mittels fls and ils
� sorter: Sortiert Dateien eines Dateisystems nach Kategorien (Dateityp)