Schädlingsbekämpfung mit Linux
November 28th, 2005Gegegeben: infizierte Dateien auf einer NTFS-Partition
Todo: infizierte Dateien ohne Zuhilfenahme von Windows/BartPE entfernen
Erster Schritt: grml booten. Einbinden der verseuchten Partition (‘mount /mnt/hda1’). Nun aktualisiert man die Datenbank von clamav und und startet anschliessend den Scanvorgang:
# freshclam # clamscan -r --log=$HOME/clamscan.report --infected /mnt/hda1
Gegen captive-ntfs bin ich allergisch, also muss Ersatz her: ntfscp – “overwrite file on an NTFS volume”.
Um “NTFS-fs warning (device hda1): ntfs_setattr(): Changes in inode size are not supported yet, ignoring.” zu vermeiden, überschreiben wir die Originaldatei mit einer genullten Datei gleicher Größe. Mein 2-Minuten-Hack um eine Datei gewünschter Größe zu bekommen:
#!/bin/sh if [ $# -eq 1 ] ; then SIZE=$(/usr/bin/stat -c '%s' $1) echo "creating /tmp/empty_$SIZE with size $SIZE" dd if=/dev/zero of=/tmp/empty_$SIZE count=1 bs=$SIZE echo " Now run something like: ntfscp /dev/ice /tmp/empty_$SIZE <file_to_overwrite> Exiting." else echo "Usage: $0 <filename>" exit 1 fi
Angewendet auf die einzelnen Dateien, die clamscan als infiziert gemeldet hat, bekommt man dann in /tmp leere Dateien, die genau der gewünschten Dateigröße entsprechen. Nun also noch ein:
ntfscp /dev/hda1 /tmp/empty_passende_dateigroesse_fuer_datei_zum_loeschen ordner/datei_zum_loeschen
Schon ist die infizierte Datei ausser Gefecht gesetzt. Word fangt mit einer genullten .doc-Datei nichts mehr an:

Wer eine Warnung “Volume is dirty” bekommt (das passiert vornehmlich dann, wenn es die Systempartition ist), sollte – wie empfohlen – chkdsk auf die Partition loslassen. Wenn das nicht möglich ist, muss halt die force-Option von ntfscp ran. Aber wie bei jeder Dateisystem-Operation, sollte man vor dem Einsatz auf Produktivdaten natürlich ein Backup ziehen und das Ganze erstmal in einem Testlauf probieren.
Schön wäre jetzt natürlich ein Skript, das einen clamscan-Report einliest und ntfscp automatisch auf die infizierten Dateien anwendet. ;-) Mit Kernel 2.6.15 soll übrigens extended write support für NTFS verfügbar sein.









