Mailfilter zum Schutz vor Sobig.F [2.Update]
Mit Filterregeln auf dem Mailserver kann man den Virenscanner entlasten.
Wolfgang Breyha von der UTA Telekom AG, Wien, hat einen Weg gefunden, Sobig.F schon im Mailserver zu erkennen. Somit müssen Virenscanner am Mailserver nicht mehr die volle Last tragen, um infizierte Mails zu überprüfen. Breyha und sein Kollege Ekker haben Filter für sendmail und Exim geschrieben, die den Wurm schon beim Empfang ausfiltern. Die Filter machen sich dabei den Umstand zunutze, dass Sobig.F zum Versenden vom Mails eigene Mail-Header verwendet. Dabei trägt er, wahrscheinlich um Verwirrung zu stiften, die Zeile: "X-MailScanner: Found to be clean" ein.
MailScanner ist eigentlich ein Virenscanner und Spamfilter für Mailserver, der in gescannte Mails nach dem Passieren des Scanners die Zeilen "X-MailScanner: Found to be infected" oder "X-MailScanner: Found to be clean" einträgt. Nach Angaben von Breyha lässt sich aber zeigen, dass Mails von Sobig.F in 80% der Fälle nicht den Weg über derartige Scanner genommen haben, der Eintrag also von Wurm selbst stammt. Zusätzlich erzeugt Sobig keine Message-ID bei Auslieferung der Mail. Damit hätte man laut Breyha eine Kombination, die auf den Wurm schließen ließe und in Filterreglen manifestiert werden kann.
Für sendmail sollen folgende Filterregeln funktionieren (ohne Gewähr):
LOCAL_CONFIG
Kstorage macro
LOCAL_RULESETS
HX-MailScanner: $>+CheckDateXMSc
D{SobigFPat}Found to be clean
D{SobigFMsg}This message may contain the Sobig.F virus.
SCheckDateXMSc
R${SobigFPat} $* $: $(storage {SobigFCheck} $@ SobigF $) $1
R$* $@ OK
HMessage-Id: $>CheckMessageId
SCheckMessageId
# Record the presence of the header
R$* $: $(storage {MessageIdCheck} $@ OK $) $1
R$* $@ OK
Scheck_eoh
# Check the macro
R$* $: < $&{MessageIdCheck} >
# Clear the macro for the next message
R$* $: $(storage {MessageIdCheck} $) $1
R< $+ > $@ $>ClearSobig
R$* $: < $&{SobigFCheck} >
R$* $: $(storage {SobigFCheck} $) $1
R< SobigF > $#error $: 553 ${SobigFMsg}
R$* $@ OK
SClearSobig
R$* $: $(storage {SobigFCheck} $) $1
R$* $@ OK
Die Regeln müssen an das Ende der Datei sendmail.mc angefügt werden. Anschließend sendmail.cf übersetzten und aktivieren. Die Filterregeln (inklusive Tabs) stehen auf dem Heise-Server als .txt-Datei zum Download bereit: Filterregeln für Sobig.F.
Heinz Ekker hat für Exim (ab Version 4.1) folgende Filterregeln zur Verfügung gestellt (ohne Gewähr):
acl_smtp_data = acl_check_sobig
acl_check_sobig:
accept hosts = :
deny message = Possible Sobig.f rejected
condition = ${if and{{eq{$h_x-mailscanner:}{Found to be clean}}\
{match{$h_message-id:}{@$primary_hostname>\$}}}{true}{false}}
accept
Ralf Hildebrandt von der Berliner Charite hat eine Anleitung veröffentlicht, wie man Postifx konfiguriert, um Sobig auszufiltern: How to use Postfix to stop SOBIG.F
Patrick Koetter hat noch folgende Anleitung für Postfix zur Verfügung gestellt:
Body Checks in main.cf aktivieren:
body_checks = regexp:/etc/postfix/body_checks
und dann in /etc/postfix/body_checks
#in einer Zeile
/name=\"(.*)\.(bat|chm|cmd|com|do|exe|hta|jse|rm|scr|pif|vbe|vbs|vxd|xl)\"$/
REJECT Attachments dieses Dateiformats nehmen wir aus Sicherheitsgruenden nicht an
Wer mehr oder weniger Dateiendungen blockieren will, ändert einfach die "Regular Expression" (dab)