# Spamfilter

Ein Spamfilter (Werbefilter) ist ein Computerprogramm oder Modul eines Programms zum Filtern von elektronischer unerwünschter Werbung (Spam).
Klassischer Einsatzbereich ist das Filtern unerwünschter E-Mails als Modul eines E-Mail-Programms oder auch eines Mail-Servers. Neuere Anwendungen von Bedeutung sind das Filtern von Seiten im Webbrowser auf Werbebanner, für Blogs (Blogspam) oder für Wikis (Linkspam).

## Ansatz der Kontrolle

* Überprüfung des Absenders anhand seiner E-Mail-Adresse oder URL
* Kontrolle der Server, die den Inhalt versenden, weiterleiten oder zur Verfügung stellen
* Aussortieren nach dem Header
* Aussortieren anhand des Textes (Contentfilter)

## Methoden der Kontrolle
### Blacklist-Methode

Diese Methode überprüft den Inhalt der E-Mail nach bestimmten Ausdrücken bzw. Stichworten oder den Absender auf Einträge aus einer Negativliste (Blacklist). Ist der Ausdruck in der E-Mail enthalten, wird die E-Mail aussortiert. Diese Blacklists müssen im Allgemeinen manuell erstellt werden und sind entsprechend aufwendig zu verwalten. Viele Spamfilter enthalten jedoch bereits voreingestellte Blacklists. Außerdem ist die Trefferquote nicht sehr hoch, da hin und wieder Spam als gute E-Mail und gute E-Mail als Spam einsortiert werden können. Auch lassen sich solche Filter leicht umgehen: steht z. B. Viagra in der Blacklist, wird der Filter Vla*gr-a nicht erkennen. Lässt der Filter die Eingabe von regulären Ausdrücken zu, kann man jedoch entsprechend ausgefeilte Filtermuster verwenden, die alle denkbaren Schreibweisen berücksichtigen, z. B. v.{0,1}[!iíì1\|l].{0,1}[aáàãå@].{0,1}g.{0,1}r.{0,1}[aáàãå@].
Eines der bekanntesten Programme unter Linux und anderen Unix-Derivaten ist SpamAssassin, das jede Mail nach verschiedenen Kriterien (offensichtlich ungültige Absender, bekannte Spam-Textpassagen, HTML-Inhalt, in die Zukunft datierte Absendedaten usw.) bepunktet und ab einer bestimmten Punktzahl als Spam klassifiziert. Ebenfalls mit einer Blacklist arbeiten SpamPal und SPAVI, das außer der jeweiligen E-Mail selbst auch die in der E-Mail verlinkten Seiten auf verdächtige Begriffe untersucht. Razor und Pyzor wiederum erzeugen zu jeder E-Mail einen Hash-Wert und überprüfen in zentralen Datenbanken, ob andere Personen, die diese E-Mail ebenfalls erhalten haben, sie als Spam klassifiziert haben oder nicht.

### Bayes-Klassifikator-Methode

Alternativ kann der Spam mit einem selbstlernenden Bayes-Spamfilter auf Grund der bayesschen Wahrscheinlichkeit gefiltert werden. Der Benutzer muss etwa die ersten 1000 E-Mails manuell als Spam oder Nicht-Spam klassifizieren. Danach erkennt das System fast selbständig mit einer Trefferquote von meistens über 95 % die Spam-E-Mail. Vom System fehlerhaft einsortierte E-Mails muss der Anwender manuell nachsortieren. Dadurch wird die Trefferquote stetig erhöht. Diese Methode ist der Blacklist-Methode meistens deutlich überlegen.
Diesen Mechanismus machen sich Bogofilter und Mozilla Thunderbird sowie der vor allem im deutschen Sprachraum beliebte Spamihilator in den aktuellen Versionen zunutze. Dabei muss das Programm vom Benutzer trainiert werden, bevor es zuverlässig Spam erkennt.
Eine dem Bayes-Filter artverwandte Methode ist der Markow-Spamfilter. Er nutzt dazu eine Markow-Kette und ist effektiver als ein Bayes-Filter, wie William Yerazunis mit seinem Spamfilter CRM114 zeigen konnte.

### Datenbank-basierte Lösungen

Im Usenet wurde schon in den 90er Jahren diskutiert, Spam aufgrund der in der Mail beworbenen URLs (und ggf. Telefonnummern) zu erkennen. Zwar können die Spammer die Nachrichten beliebig modifizieren und personalisieren, aber da es letztlich (bei UCE) immer darum geht, den Benutzer zu einer Kontaktaufnahme zu verleiten, und der mögliche Adressraum nicht unbegrenzt variabel ist, ermöglicht dieser Ansatz eine theoretisch sehr gute Erkennung. Besonders interessant ist dabei, dass keine Heuristiken verwendet werden, die immer das Risiko von Fehlerkennungen mit sich bringen. Aufgrund der technischen Anforderungen, Reaktionsgeschwindigkeiten usw. hielt man dieses jedoch lange für nicht praktikabel. Der Spamfilter SpamStopsHere basiert (als zentral gehostete Lösung) im Kern jedoch auf genau dieser Idee und zeigt, dass dieses durchaus auch in der Praxis funktionieren kann.

## Probleme

Das Einsortieren von E-Mails ist immer mit einer gewissen Fehlerrate verbunden. Zum einen werden Spam-Mails nicht erkannt und gelangen so als „falsch negativ“ in den Posteingang. Werden erwünschte Mails als Spam eingestuft, spricht man von „falsch positiver“ Erkennung. Wird der Filter hinreichend lange trainiert, so lassen sich (etwa unter Einsatz einer weißen Liste) „positive“ Fehler fast vollständig ausschließen und „negative“ auf 10 % bis unter 1 % drücken. Allerdings ist das mit gewissem Aufwand verbunden. Außerdem müssen Filter ständig durch verbesserte Methoden an die neuen Methoden der Spammer angepasst werden.

## Beispiel einer Verschleierungsmethode

Der folgende Spam wurde in Abständen weniger Tage an die gleiche Empfängerliste verschickt. Er kommt vom gleichen Absender, hat den gleichen Inhalt und macht die Technik des Spammers deutlich, durch kleine Varianzen Spamfilter zu täuschen und so direkt an die Adressaten zu gelangen.
| | erster Spam | zweiter Spam |
| Betreff | behandeln, wie dringend von Christopher | GrьЯe von Christopher |
| Antwortadresse | jchrist1@____.org (Domain hier wurde unkenntlich gemacht) | jchrist@____.org |
| Anredezeile | gute ay. | Hallo Freund. |
| Erster Satz | ich bin mr.christopher Johnson Leiter Rechnungswesen udit Abteilung der Credit Suisse Bank london 38 Strang, Stadt westminister, London WC2N 5JB, hier in England. | Ich bin Mr.Christopher Johnson Leiter Rechnungswesen Revision der Credit Suisse Bank London 38 Strand, City of Westminster, LONDON WC2N 5JB, hier in England. |
| Textmitte | Dies ist sehr dringend bitte. | Dies ist sehr URGENT PLEASE. |
| Textmitte | 1. vollstдndiger Name, 2. Ihr direkter Handy-Nummer, Ihre Adresse, 4. Tдtigkeit, 5. Alter, 6. Sex, 7. Staatsangehцrigkeit | 1. Vollstдndiger Name, 2. Ihr direkter Mobile Number, 3. Ihr Kontakt Adresse, 4. Beruf, 5. Alter, 6. Sex, 7. Nationalitдt |
| Ende des Texts | Bitte auf Ihrer Bestдtigung dieser Nachricht und geben Sie Ihr Interesse werde ich Ihnen weitere Informationen liefern. bemьhen sich, lassen Sie mich Ihre Entscheidung, anstatt mich warten. danken Ihnen im Voraus fьr Ihre positive Antwort. GrьЯen, mr.christopher johnson | Bitte auf Ihrer Bestдtigung dieser Nachricht und geben Sie Ihr Interesse werde ich Ihnen weitere Informationen liefern. Endeavour, lassen Sie mich wissen, Ihre Entscheidung, anstatt mich warten. Ich danke Ihnen im Vorgriff auf Ihre positive Antwort. GrьЯe, Mr.Christopher Johnson |