Überall, ob Emailpostfächer mit und ohne Spamschutz oder Blog, die Spamflut bricht über mich, wie ein Tsunami. Ein Grund, sich dem Thema etwas genauer zu widmen.
Spamflut
Und ich bin wohl nicht der einzige Leidtragende. Heise berichtet immer mehr von immer mehr Spam, so wie auch andere Sicherheitsseiten. Letztere berichtet, dass im dritten Quartal die Text-Spamzahl um 67% und die Bild-Spamzahl um ganze 500% gestiegen sind. Da wäre wohl jedes Unternehmen froh, wenn der Umsatz so rapide wachsen würde. Einige Statistiken besagen sogar, dass mehr als 90% der versendeten Emails Spam sind. Dem gegenüber stehen Angaben von 2006 mit etwa 40%. Dies berichten auch die Statistiken des Distributed Checksum Clearinghouse. Aber insgesamt über die letzten Jahre durchgängig steigend. So viel Spam, dass einige großen Softwareunternehmen die CEAS (Conference on Email and Anti-Spam) ins Leben gerufen haben.
Und mein persönlicher Spamanteil liegt bei etwa 99,52%, das sind immerhin 300 Spammails pro “richtiger” Mail.
Spamfilter
Wer Spamfilter sein eigen nennt, darf die Menge an Spam um einige dutzend Prozent senken, jedoch mit vorbehalt. Denn in letzter Zeit wird von neuen Spamtechniken berichtet, welche viele Spamfilter nicht erkennen. Damit ist klar: Obwohl einige Spamfilter-Hersteller gerne behaupten, dass ihre Filter den Spammern immer einen Schritt voraus seien, ist es eher so, dass die Spammer immer einen Schritt voraus sind, denn schließlich geben diese die Techniken vor, auf welche die Filterhersteller erst reagieren können.
Viele der Spamfilter-Techniken basieren auf Klassifikationen, wie etwa: Das ist Spam, das nicht. Dabei benötigen die erfolgreicheren Techniken, wie Bayessche Netze, eine Trainingsphase, während welcher der Benutzer dem Programm erst einmal sagen muss, wie Spam überhaupt aussieht, und was kein Spam ist.
Viel versprechender erscheinen zentralisierte Spamfilter, wie etwa Askimet, bei der ein über das Web erreichbarer zentraler Dienst von mehreren Benutzern gleichzeitig mit Spam gefüttert wird. Dies erspart eine individuelle Spamtrainingszeit und auch den Rechenaufwand, der zur Klassifizierung benötigt wird. Die Nachteile liegen aber auch auf der Hand: Der gesamte zu klassifizierende Text muss an diesen Dienst übermittelt werden. Damit kommt ein solcher Dienst nur für öffentliche Texte, wie etwa Blogeinträge, in Frage, nicht jedoch für persönliche Emails. Hier kommen eher zentralisierte Dienste mit Prüfsummen in Frage, wie etwa das Distributed Checksum Clearinghouse oder Razor, bei der nicht der Text, sondern lediglich eine Prüfsumme übertragen wird. Das hat natürlich den Nachteil, dass bei etwas intelligenteren Spamattacken mit wechselndem Inhalt die Erfolgsquote sinkt.
Die meisten Spamfilter haben darüberhinaus zwei gravierende Probleme:
Falsche Spamerkennung: In Abhängigkeit von der Trainingsqualität erkennen einige Techniken korrekte Mails als Spam. Bei einem Aufkommen von mehreren hundert Spammails pro Tag ist es dem Benutzer sogut wie unmöglich, seine als Spam klassifizierten Mails nach falsch klassifizierten Mails zu durchstöbern.
Nicht immer für DAU geeignet: Einige Techniken, die vor allem nicht vollautomatisiert sind, wie etwa reguläre Ausdrücke, sind nicht für Jedermann geeignet.
Aktuelle Spamfiltertechniken
Statistische (Textbasierte) Klassifikatoren
Diese recht mächtige Gruppe der selbstlernenden Filter umfaßt u. a. Bayessche (Wahrscheinlichkeits-) Netze, Vector Support Machines und auch künstliche neuronale Netze.
Bayessche Netze bauen anhand von Trainingsdaten einen Baum von Wahrscheinlichkeitspfaden auf (Bayes Theorem, bedingte Wahrscheinlichkeit), bei denen die Annahme geprüft wird, dass eine Wortkombination mit einer bestimmten Wahrscheinlichkeit auf Spam hinweist.
Vector Support Machines versuchen anhand der vorliegenden Wörter eine Klassifizierung in einem n-Dimensionalen Raum durchzuführen, bei der eine Gruppe von n-Dimensionalen Geraden (die Vektoren) die Menge der Spamwörter von den nicht-Spamwörtern zu trennen.
Mit künstlichen neuronalen Netzen werden verschiedenartige, u. a. aber auch die beiden genannten Ansätze nach modelliert.
Alle statistischen Klassifikatoren müssen auf einer definierten und genormten Menge von Tokens (Symbolen) arbeiten, deren Häufigkeit, Auftreten in Spam und Nichtspam ausgewertet wird. Diese Tokens sind meistens die Wörter im Text einer Mail.
Hier beginnt aber auch die Abhängigkeit der Qualität eines statistischen Klassifikators von der Qualität des zugrunde liegenden Tokenizers. Ist dieser nicht gegen Tricks gewappnet, mit denen das Tokenizieren des Textes erschwert wird, nimmt die Qualität der Klassifikatoren ab.
Auch müssen Klassifikatoren ständig trainiert werden und benötigen für das initiale Training meist etwas mehr Zeit.
Weiterhin gibt es derzeit noch wenige Ansätze Multimediaspam (Bilder, Flashanimationen, etc.) durch statistische Klassifikatoren zu erkennen.
Es gibt aber auch Ansätze, diese mächtigen Klassifikatoren lediglich zur Kontrolle von vorhandenen Regelwerken einzusetzen, wie etwa in SpamAssasin.
Regelbasierte Klassifikatoren
Regelbasierte Klassifikatoren benutzen einschlägige Regeln, die meist in Form von regulären Ausdrücken formuliert werden. So wird beispielsweise das Wort “cyalis” in der Nachricht gesucht, und falls es gefunden wird, wird die Mail als Spam klassifiziert.
Eine Erweiterung dieser Technik ist das Vergeben von Scores (Punkten). So wird jedes Auslösen einer Regel mit einer (festlegbaren) Punktzahl bewertet. Erst die Summe der Punkte entscheidet, ob es sich um Spam handelt oder nicht. Der recht erfolgreiche Spamfilter SpamAssasin arbeitet mit einem solchen konfigurierbaren Regelwerk.
Checksums (Prüfsummen)
Prüfsummen sind eine recht schnelle Technik, bei der für den Inhalt eine eindeutige Prüfsumme erstellt wird. Wird ein Inhalt als Spam klassifiziert, so kann diese Prüfsumme gespeichert und für zukünftige Abgleiche wiederverwendet werden. Derzeit gibt es sogar einige Online-Dienste, die Prüfsummen von Spammails sammeln und allen zugänglich machen.
Blacklists
Bei Blacklists werden Absenderadressen, IP-Adressen von Absendern und weitere Eigenschaften von Mails, die in Spam auftauchen in eine schwarze Liste eingetragen, gegen welche neue Mails geprüft werden können. Auch hier existieren öffentliche zentrale Sammeldienste.
Whitelists
Weiße Listen machen das Gegenteil von schwarzen Listen. Hier werden vertrauenswürdige Absender eingetragen und neue Mail gegen diese Liste verglichen. Üblicherweise wird das Adressbuch des Benutzers als Whitelist benutzt um Mails von bekannten Kontakten als vertrauenswürdig durchzustellen.
Technische Vorkehrungen
Weiterhin gibt es Techniken, die mit normalen Filtern nicht viel zu tun haben. So gibt es beispielsweise die Graylist Technik, bei der ein Mailserver alle eingehenden Verbindungen zuerst mit einem temporären Fehler abweist. Spambots versuchen meistens erst gar nicht, einen zweiten Verbindungsversuch zu machen, während reguläre Email Clients einen zweiten Versuch starten. Bei diesem zweiten Versuch nimmt der Mailserver die Verbindung dann korrekt auf und der Mailtransfer kann stattfinden.
Spamtechniken
In ihrer Publikation “On Attacking Statistical Spam Filters” von Gregory L. Wittel und S. Felix Wu von der University of California, Davis, beschreiben die Autoren, wie man statistische Spamfiltertechniken aushebelt. Hierbei gehen die Autoren die einzelnen Verarbeitungsschritte eines solchen Spamfilters durch und nennen Spamtechniken, mit denen die Arbeit des Filters erschwert oder ganz unmöglich gemacht werden. Hierzu werden erwähnt:
John Graham-Cumming beschäftigt sich auf seiner Webseite www.jgc.org speziell nur mit Spamtechniken und sammelt im “The Spammers’ Compendium” derzeit 59 Tricks. Diese sind u. a. nach benutzten Technologien kategorisiert, wie etwa HTML, CSS, Bilder, Flash oder auch nur Plain Text.
Fazit
Solange kein generischer Ansatz gegen Spam bekannt ist, müssen Spamfilter ein Sammelsurium von Spamerkennungstechniken beherrschen, damit sie die Spamflut auf ein Mindestmaß reduzieren können. Dabei sprechen wir von bis zu mehr als 99%. Aber dies auch nur, solange keine gänzlich unbekannten Spam-Techniken angewendet werden und man seinen Filter ausreichend trainiert hat.
Sinnvoll erscheint es hier einen Spamfilter zu benutzen, der eine Vielzahl von Techniken benutzt, um sowohl den Spamanteil als auch den Rechenaufwand zu verringern. Sinnvollerweise mit einer erweiterbaren “Plugin-Architektur”, damit neue Spamtechniken mit neuen Filtertechniken bekämpft werden können.
Es gibt eine Vielzahl von Spamfiltern für verschiedene Betriebssysteme und mit verschiedenen technischen Möglichkeiten. Während Spamassasin eher für fortgeschrittene Benutzer geeignet ist, bietet Bitdefender bereits eine Integration von Outlookclients, bei der man per Knopfdruck Spam klassifizieren kann. Es scheint auch, dass die meisten anderen Antiviren-Softwarehersteller direkt auch einen Anti-Spamfilter mitliefern. SpamPal war stets ein Favorit von mir auf Windows, da es frei ist, mehrere Filtertechniken unterstützt und sich unsichtbar als POP3 Proxy ins System einklinkt.
Dennoch würde ich es vorziehen, einen solchen Filter mit erweiterbarer Plugin-API als Java-Anwendung zu haben. Dann würde ich mich intensiver mit der Umsetzung von eigenen Filtertechniken beschäftigen.