Die Sicherung eines kompromittierten Systems ist die Grundlage für das Nachvollziehen eines Angriffes. Äußerst wichtig ist es, dass alle Textein- und Ausgaben aufgezeichnet werden. Graphische Ausgaben sollten per Screenshots gesichert werden (z.B. mit xwd oder gimp).
Man sollte einen aktuellen Schnappschuss (Snapshot) des Systems auf einem Backup-Medium erzeugen. Die Sicherung der Daten sollte in Reihenfolge ihrer Vergänglichkeit erfolgen:
- Cache, Hauptspeicher
- Netzwerkverbindungen
- Prozesse
- Festplattendaten
- Daten auf Disketten, CD-RW, Streamer, ...
- Daten auf CD-R, Notizen, Post-It-Notes, ...
Die "Spurensicherung" und Analyse wird durch verschiedene Softwaresammlungen unterstützt. Zu diesen gehören unter anderem TCT, TCTUtils, und cryptcat. Auf keinen Fall sollten die möglicherweise kompromittierten Programme des Opferrechners zum Einsatz kommen, viele Root-Kits tauschen Systemprogramme wie ps und lsmod einfach aus. Die sichere Alternative besteht darin, eine "saubere" Rettungsdistribution von Diskette oder CD-Rom zu mounten und deren Systemprogramme zu verwenden. (Nicht Booten sondern nur Mounten!!!) Zu empfehlen sind hier neben Knoppix auch sogenannte "Business Cards", also Rettungs-CDs in Scheckkartengröße. Zwei Vertreter können als ISO-Image unter http://www.lnx-bbc.org/ bzw. http://www.inside-security.de/INSERT.html heruntergeladen werden.
Folgende Maßnahmen sind bei den meisten Einbrüchen sinnvoll:
Aufzeichnung aller Sicherungsaktionen auf einen anderen Rechner
mkfifo named_pipe
script -f named_pipe
cat named_pipe | nc LogHost LogPort
Datensammlung auf anderen Rechner mittels nc (netcat)
- kompromittierter Rechner:
[Daten] | nc -w 2 [LogHost-IP] 6666
- LogHost:
nc -l -p 6666 | gzip >> datei.gz
Bei nicht vertrauenswürdigen Netzen sollte die Kommunikation verschlüsselt werden:
- kompromittierter Rechner:
[Daten] | des -e -c -k [Schlüssel] | nc -w 2 [LogHost-IP] 6666
- LogHost:
nc -l -p 6666 | des -d -c -k [Schlüssel] >> Datei
z.B. Hauptspeicher:
- kompromittierter Rechner:
dd if=/dev/mem | nc -w 2 192.168.1.5 6666
- LogHost:
nc -l -p 6666 > mem.img
- Prozesse:
ps enf -Aelf --cols 1000 ls -lR /proc/[0-9]*
Konfiguration der Netzwerkkarten
ifconfig -a
netstat -iea
ip addr show (iproute2-Utilities)
Routingtabellen
netstat -rn
iproute2-Utilities
- ip route show table main
- ip rule show (iproute2-Utilities)
Paketfilterregeln
iptables -L -vn --line-numbers
geöffnete Dateien
lsof
aktuelle Netzwerkverbindungen
lsof -i
Sockets
lsof -U
Gelöschte aber noch offene Dateien
lsof +L1
Einbrecher können ein Programm auch nach dessen Start löschen. Man kann bei installiertem proc- Filesystem gerade ablaufende Programme wieder in eine Datei sichern:
cat /proc/[PID]/exe > programm.bin
weiterhin:
- last (letzter eingeloggter Benutzer)
- who (aktuelle Benutzer)
- w (welcher Benutzer führt was aus?)
- arp
- fdisk
- ......
Partition übers Netz sichern:
- kompromittierter Rechner: dd if=/dev/hda1 | nc -w 2 [LogHost-IP] 6666
- LogHost: nc -l -p 6666 | gzip >> hda1.img.gz
|