Die Funktionsweise des Spam-Filters von Outlook 2003

Letzte Woche habe ich die Handhabung des Spam-Filters kurz vorgestellt, heute soll die zugrunde liegende Technologie näher beleuchtet werden.

Microsoft hält sich relativ bedeckt über die Funktionsweise des Junk-Mail-Filters. Aus einem White Paper erfährt man lediglich, dass es sich um die neue "SmartScreen-Technologie" handelt. Während in Outlook XP noch ein einfacher, regelbasierter Filter zum Einsatz kam, werkeln in Outlook 2003 Routinen, die mithilfe eines statistischen Verfahrens gewonnen wurden. Microsofts eigener Mail-Dienst Hotmail lieferte hierfür das Datenmaterial. Der Filter wurde zunächst von Hotmail-Anwendern trainiert und dann statisch in Outlook implementiert. Ein nachträgliches Trainieren ist also nicht vorgesehen. Da zu erwarten ist, dass die Spammer Mittel und Wege finden werden, den Filter zu umgehen, liefert Microsoft regelmäßig Updates.

MAPILab, ein Unternehmen, das vornehmlich Erweiterungen für Exchange und Outlook herstellt, hat versucht, per Reverse Engineering ein etwas präziseres Bild der Arbeitsweise des Filters zu erhalten. Die Ergebnisse dieser Untersuchung erstrecken sich über mehrere Seiten und sind vor allem für Programmierer interessant. Für diejenigen, die mit dem Gedanken spielen, Outlooks Anti-Spam-Feature unternehmensweit einzusetzen, dürfte eine kurze Zusammenfassung ausreichend sein:

Der Filter befindet sich ein zwei Dateien, der OUTLFLTR.DLL und der OUTLFLTR.DAT. Letztere enthält MD5-Prüfsummen von Worten, denen jeweils ein Gewichtungsfaktor zugeordnet wird. Bei den Worten handelt es sich um Ausdrücke, die typischerweise in Spams vorkommen. Der Gewichtungsfaktor repräsentiert die Wahrscheinlichkeit dafür, dass eine Mail, die den Ausdruck enthält, tatsächlich Spam ist. Die Datei enthält aber auch Ausdrücke, die typischer Weise in Spams nicht vorkommen. Ihr Gewichtungsfaktor ist negativ. Außerdem kommen offenbar auch sinnlose Ausdrücke wie "riilldijgjgjg" vor. Spammer fügen solche Zeichenketten gerne ein, um Spam-Filter in die Irre zu führen. Vermutlich wollte man die Ausdrücke nicht im Klartext ablegen, um es den Spammern nicht allzu leicht zu machen, den Filter zu auszuhebeln. Wie man bei MAPILab aber demonstrieren konnte, ist es scheinbar nicht besonders schwierig, den Inhalt der Datei zu ermitteln.

OUTLFLTR.DAT ist also offensichtlich das Resultat des Trainings durch Hotmail-Benutzer. Die DLL enthält natürlich den Programmteil, der mithilfe der Datendatei die Wahrscheinlichkeit berechnet, ob es sich bei einer Mail um Spam handelt. Hierzu werden die Gewichtungsfaktoren aller Wörter des Mailtextes addiert, das Gleiche passiert für den Betreff der Mail. Die beiden Ergebnisse werden dann addiert und man erhält so einen Wert zwischen -10 und +10. Stellt man den Spam-Filter auf "Niedrig", wird eine Mail, die mit +6 bewertet wurde, als Spam klassifiziert. Bei der Einstellung "Hoch" reicht dafür schon +3 aus.

Im nächsten Beitrag werde ich mit der Effektivität des Filters beschäftigen. So viel kann ich aber schon vorwegnehmen: Der Filter arbeitet besser als die Größe der DLL von 115 KB erwarten lässt.

2 Kommentare

  1. Trackback von Michael Pietroforte am 30.05.04 16:21:

    Die Effektivität des Junk-Mail-Filters von Outlook 2003

    Wie der Junk-Mail-Filter zu bedienen ist und welche Technik dabei zur Anwendung kommt, habe ich neulich schon erläutert. Der Knackpunkt jedes Filters ist natürlich, wie effektiv er arbeitet….

  2. Trackback von Michael Pietroforte am 10.07.04 11:44:

    Microsofts Anti-Spam-Lösung: Intelligent Message Filter für Exchange 2003

    Mein Beitrag über den Intelligent Message Filter (IMF) für Exchange 2003 ist jetzt auch in der Online-Ausgabe der Computerwoche erschienen. Ich habe dort die Funktionsweise, die Stärken und die Schwächen beschrieben. Wir setzen den Filter nun seit eini…