Mailfilter zum Schutz vor Sobig.F [2.Update]

Mit Filterregeln auf dem Mailserver kann man den Virenscanner entlasten.

In Pocket speichern vorlesen Druckansicht 147 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Daniel Bachfeld

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)