Spamassassin

SpamAssassin ist ein Projekt der Apache Software Foundation ist und kann unter der Apache-Lizenz genutzt werden.
Der SpamAssassin-Filter bewertet jede Email nach einem Punktesystem. Je höher die Punktezahl, desto mehr Spammerkmale weist eine Email auf. Wird eine festgelegte Punktezahl überschritten, wird eine Email im Betreff mit dem Prefix [SPAM] gekennzeichnet.
Um festzustellen, ob eine Email Spammerkmale aufweist, wendet Spamassassin eine vielzahl von Tests auf eine Email an.
Interne Tests
Es wird der Inhalt einer Email daraufhin untersucht, ob dort z.B. einschlägig bekannte Spam-Phrasen vorkommen oder ob eine Email im HTML-Format gesendet wird und Zeilen besonders markiert sind (z. B. Grosse Schrift in Rot)
Eine aktuelle Liste aller internen Tests findet man unter: http://spamassassin.apache.org/tests_3_1_x.html
Bayes’scher-Filter
Bei dem Bayeschen Filter, auch bekannt als Statistical Token Analysis, wird eine Datenbank mit Spam- und Nicht-Spam Emails gefüllt, die von SpamAssassin dazu benutzt wird, bei neuen Emails anhand von Statistischen Daten zu ermitteln, wie hoch die Spam-Wahrscheinlichkeit ist.
Je höher die Anzahl der Emails in der Datenbank ist, desto genauer kann dieser Mechanismus arbeiten. (minimum ca. 1000 Spam- und Nicht-Spam Emails).
Online-Abfrage von RBL-Listen
Wie der Mailserverdienst auch kann SpamAssassin RBL-Listen abfragen um eine Email als Spam zu klassifizieren.
Razor
Razor, auch unter dem Namen SpamNet bekannt, ist eine verteilte serverseitiger Spamdatenbank und wird seit mehr als zwei Jahren von der Unix Community erfolgreich im Kampf gegen SPAM verwendet. Diese Datenbank wird durch den Input von Usern, bzw. Mailservern (Reporting Agents) ständig erweitert. Zu jeder Email wird dann ein Hash-Wert erzeugt und dieser in der Datenbank gespeichert. Erhält der Razor-Server dieselbe Spam Nachricht öfters und von verschiedenen Quellen wird diese im Katalogserver als Spam gelistet. SpamAssassin prüft, ob eine eingehende Email bereits in der Razor-Datenbank als Spam gelistet ist.
Distributed-Checksum-Clearinghous (DCC)
Streng genommen entdeckt das Distributed-Checksum-Clearinghouse-Verfahren nicht nur Spam, sondern allgemein massenhaft versandte E-Mails (Bulk Mails). In einem DCC-Verbund ermittelt die Anti-Spam-Software zu jeder eingehenden E-Mail eine spezielle Prüfsumme und sendet diese an einen Server (Clearinghouse). Dieser antwortet mit der Angabe, wie oft diese Mail-Prüfsumme bereits registriert wurde und erhöht gleichzeitig den entsprechenden Zähler. DCC-Server tauschen wiederum untereinander entsprechend den Vorgaben ihrer Betreiber Daten über Bulk Mails aus.
Der anfragende DCC-Client (Mail-Server oder -Client) erhält als Antwort ein verlässliches Maß für die Zahl der teilnehmenden Mail-Server, bei denen dieselbe Nachricht eingegangen ist. Eine E-Mail mit einem hohen “bulk count”, also entsprechend hoher Verbreitung, ist entweder Spam oder eine Nachricht aus einer populären Mailing-Liste. Für letztere führt das DCC eine Freigabeliste (White List), um ihre Nachrichten zu identifizieren. Jede massenhaft versandte E-Mail, die nicht durch einen solchen White-List-Eintrag legitimiert ist, kann mit hoher Sicherheit als Spam klassifiziert werden.
Entscheidend für das Funktionieren von DCC ist der Gebrauch von “Fuzzy Checksums”: Normalerweise sind Prüfsummenalgorithmen derart konstruiert, dass sie ein völlig anderes Ergebnis liefern, sobald sich auch nur ein Bit in der zugehörigen Nachricht ändert. Da Spam-Versender häufig zufällige Komponenten in ihre Mails einbauen, um einer Kategorisierung zu entgehen oder Nachrichten zu personalisieren, benötigt DCC eine andere Art von “Fingerabdruck”, bei dessen Erstellung bestimmte Teile der Nachricht unberücksichtigt bleiben. Diese “unscharfen” Prüfsummen sind so angelegt, dass sie für E-Mails mit gleicher Aussage dasselbe Ergebnis liefern und zufällige Anteile möglichst unberücksichtigt lassen.
Pyzor
Pyzor ist, ähnlich wie Razor und DCC, ein verteiltes System zur Erkennung von Spam und basiert auf der Programmiersprache Python. Anwender, die unerwünschte Mails bekommen, können diese an öffentliche Pyzor Server senden. Wenn dieselbe Mail von mehreren Nutzern als Spam an die Pyzor Datenbank übermittelt wurde, wird diese dort gelistet. Bei der Listung in Pyzor wird nicht der Inhalt der Mail gespeichert sondern eine Checksumme der Nachricht.
Benutzerdefinierte White- und Blacklisten
Es können im SpamAssassin Spamfilter White- und Blacklisten gepflegt werden.
Diese Listen bestehen aus Absender-Emailadressen oder Absender-Domains, die vom Spamfilter bei der Bewertung einer Email beachtet werden.
Ein Eintrag in der Whiteliste bewirkt das eine Email mit einer definierten Anzahl von negativen Punkten bewertet wird.(Die Email gilt somit wahrscheinlich nicht als Spam)
Ein Eintrag in der Blacklist bewertet eine Email dieses Absenders mit einer definierten Anzahl von positiven Punkten.(Die Email gilt somit wahrscheinlich als Spam)
Aktuell werden für Eintrage in einer White- oder Blackliste 1000 Punkte vergeben. Generell ist aber mitlerweile das Blacklisten von Adressen nicht mehr sehr effektiv, da die meisten Spam-Emails mit automatisch generierten Absenderadressen gesendet werden. Der Aufwand, diese alle einzutragen, ist mitlerweile einfach zu hoch.
OCR-Modul
Für Spamassassin existiert mittlerweile ein Modul, welches Bilder in Emails auf Spammerkmale untersuchen kann. Jede Mail die ein Bild enthält wird von diesem Modul gescannt und dabei werden mittels eines OCR-Moduls die Texte in dem Bild extrahiert. Diese Texte werden dann mit einer Spam-Wortliste verglichen. Zusätzlich wird geprüft, ob der Content-Type des Bildes richtig angegeben ist oder das Bild korrupt ist. Animierte Gifs, wo nur die letzte Sequenz das Spam-Bild enthält werden auch erkannt.
