Spam und UCE - Filter: Bayes

So funktioniert es

Aufgrund dem Problem einer manuellen Pflege (siehe Content) hat sich ein anderer Ansatz etabliert, welcher anhand von mathematischen Wahrscheinlichkeiten und ein Training durch Spam und gute Nachrichten ein Entscheidungsnetzwerk entwickelt. Bayesfilter werden durch Mengen trainiert um dann selbständig zwischen Spam und erwünschten Nachrichten unterscheiden zu können.

Probleme

Das Problem hierbei ist das Training selbst, denn sobald der Filter trainiert und installiert ist, veraltet er auch wieder, so dass ähnlich einem Virusupdate auch hier immer Aktualisierungen notwendig sind. Zudem ist es schon bewiesen, dass die Funktion dieser Filter gezielt außer Kraft gesetzt werden kann. Auch die Spammer wissen um die Funktion und richten sich darauf ein. Dies sieht man besonders bei Outlook 2003, dessen Filter einen ähnlichen Ansatz hat und für den Microsoft alle Monate ein "Office Update" veröffentlicht, da die Trefferrate anfangs sehr gut ist und dann schnell wieder abnimmt.

Interessant ist der Ansatz für große Provider, die Vollzeitkräfte mit dem anpassen von Spam-Regeln einsetzen und damit diese Filter immer weiter pflegen.

Als Firma mit relativ wenig Nachrichten müssen Sie entweder einen "vorgelernten" Filter des Herstellers vertrauen, der auch immer wieder aktualisiert wird (z.B. die IMF-Datenbank von Microsoft, der wohl aus den Spam-Mails von Hotmail und anderen Quellen gespeist wird.

Ein Bayes Filter ist aber effektiver, wenn er auch "gute" Mails lernen kann, z.B.: von ausgehenden Nachrichten ihres Systems oder eines anderen Ratings.

Bayes etwas genauer

Die Kurzbeschreibung am Anfang wird natürlich nicht alle zufrieden stellen.

Die folgende Beschreibung versucht sehr einfach die  Funktionsweise zu erklären ohne den Anspruch auf Genauigkeit zu erfüllen.

Damit ein Bayesfilter funktioniert, muss er trainiert werden. Nur was und wie "lernt "der Filter ?. er nimmt jede Mail uns zerlegt Sie in ihre Einzelteile. Einzelteile müssen dabei nicht unbedingt Worte sein, sondern können auch Buchstabenbruchstücke sein. Welche Zerlegung gut oder schlecht ist, kann im Vorhinein nicht gesagt werden. GEhen wir einfach mal von "Tripeln" aus. Gegeben ist folgende "gute Mail"

From: Frank Carius
To: Webmaster
Subject: Dies ist ein Test

Hier ist der Body

Ein Bayesfilter könnte sich nun einfach nur den Body nutzen und in "Dreierketten" zerschneiden. Es kämen dann folgende Schnipsel heraus, die "Bonuspunkte" bringen:

Hie ier eri ris ist std tde der erB rBo Bod ody

Wenn nun tausende gute Mails so verlegt und gelernt werden, dann erhält die Datenbank eben viele Schnipsel mit verschieden hohen Punktewerten. Das gleiche Spiel wird nun mit möglichstt vielen "schlechten" Mails wiederholt. Auch diese Schnipsel landen in der Datenbank aber diesmal zur Abwertung.

Das Ganze spielt sich aber mit Wahrscheinlichkeiten ab, die dann miteinander multipliziert und logarithmiert werden, so dass das Ergebnis nutzbar wird.

Nachdem der Filter entsprechend trainiert wurde, kann er nun "echte" Nachrichten filtern. Der Bayesfilter ist also ähnlich einem Wortfilter, nur beruht er auf sehr kleinen Schnipseln, ähnlich einer Teilkette einer kompletten DNA. Ein einzelnes Wort, wie dies beim Content-Filter verwendet wird, entscheidet hier nicht ausschließlich. für jede Mail gibt es sehr viele übereinstimmende Bruchstücke, die alle eine gewisse Spamwahrscheinlichkeit bedeuten und deren Gesamtergebnis dann die Entscheidung fällt.

Warum funktioniert das.

Betrachten sie das Wort "Viagra". Wenn Sie schon einige Spamnachrichten erhalten haben, dann werden Sie aber auch die verschiedenen Schreibweisen von "Viagra" können wie:

Viagra V1agra Vi-agra Vi8gra V$agra

Wenn man diese Worte in die "Drei-Buchstaben-Stück" aufteilt, dann finden sich aber immer Teile, die auch beim Lernen von "Viagra" schon als Spam erkannt wurden. Daher versuchen einige Spammer ihre "Bewertung" dadurch zu verbessern, dass Sie am Ende der Mail möglichst viele "unverdächtige" Worte erweitern oder Viagra z.B. als "V-I-A-G-R-A" verstümmeln. Wenn ein Bayesfilter aber erst alle Sonderzeichen ignoriert, dann ist zumindest die letzte Verstümmelung nicht hilfreich.

Wie gut ist Bayes

Das Problem bei Bayes ist, dass Sie als Administrator sowohl der Gewichtung als auch der Zerlegung der Mails vertrauen müssen. Aus den einzelnen Schnipseln können Sie nicht mehr nachvollziehen, warum genau eine Mail geblockt oder  irrtümlich passieren durfte.

Die Leistung eines Bayesfilter ist zudem stark abhängig von:

  • Der gewählten BIldungsmethode für die Segmente
    Ist das zerschneiden ist Bruchstücke a 3 Zeichen sinnvoll. Alternativ könnte man ja z.B. nur Konsonanten berücksichtigen. Was ist mit der unterscheidung von Groß und Kleinbuchstaben
  • Das Training mit passenden "guten" Mails
    Wenn Sie einen Filtern mit guten Mails einer Computerfirma füttern, dann wird der Filter die Mails eines Arzneimittelherstellers sicher nicht so gut bewerten, wie Sie das erwarten
  • Das Training mit passenden Spam Mails
    Auch Spam-Mails müssen gelernt werden. Nur müssen Sie auch sicher sein, dass es sich dabei um Spam handelt. Wenn dort irrtümlich gute Mails mit drin sind, dann verschlechtert dies auch den Bayesfilter.

Wenn eine Bewertung eines Filters zwischen -10 (gute) und schlechten (+10)

Das Ideale Bild eine Bayesfilters wäre in etwas folgendes, dass gute Mails (grün) immer mit -10 und Spam (rot) immer + 10 Punkte haben.

Leider ist das ein Wunschdenken, so dass man sich folgende Kurve erwarten könnte:

Wenn Sie jedoch mal eine Grafik über die tatsächlichen Verteilungen anschauen,  dann ist das doch eine eher diskete Verteilung mit vielen Mails, die gar nicht eindeutig zu entscheiden sind.

In der Regel erhalten Sie sehr viel Mehr "Spam" als gute Nachrichten,  weswegen der rote Balken rechts sehr viel höher ist als der gute grüne Balken links. Allerdings gibt es immer einige Mails, die nicht oder irrtümlich schlecht bewertet werden als auch Spams, die eine gute Bewertung bekommen. Sehr hohe Werte um "0" deuten darauf hin, dass sich die Bewertungen gegenseitig aufheben oder keine Tokens gefunden werden. (z.B. nicht ausreichende Lernphase)

Solche Grafiken können Sie natürlich nur mit "Testdaten" erzeugen, bei denen Sie eine bekannte Menge Spam-Mails und gute Mails auf ein System senden und die Ergebnisse abgreifen.

Weitere Links