Spam Filtering Algorithmen
Referent: Stephan Ziegenaus
Index
• Definition „Spam“
• Zahlen
• Adressquellen der Spamversender
• Whitelisting
• Blacklisting
• Content Filtering
• Distributed Checksum Clearinghouse (DCC)
• Statistical Token Analysis (STA) durch Bayes´sche Filter
• künstliches neuronales Netz (KNN)
• Beispiel: SpamAssassin
• 10 Goldene Regeln gegen Spam
Definition „Spam“
• „Spam“ ist die Abkürzung für Spiced Pork And Meat der Firma Hormel Foods
• Junk-Mail, Bulk-Mail
• UBE - Unsolicited Bulk E-Mail
• UCE - Unsolicited Commercial Electronic Mail
Zahlen
• Bundesverband Verbraucherzentrale:
500 Millionen Spam-Mails pro Woche in Deutschland
• MessageLabs:
55.1% der registrierten E-Mails waren Spam Dezember 2003 wurden 463.1 Mio. E-Mail registriert, 290.4 Mio. waren Spam
Allein der Download von Spam verursachte im Jahr 2003 weltweit Kosten von über 12 Milliarden Euro
Adressquellen der Spamversender
• Kauf von E-Maillisten
• Öffentliche Diskussionsforen
• Online-Gewinnspiele
• Per Brute Force (Trial and Error) werden die SMTP- Server mit geeigneten Tools gescannt.
• Harvester-Tools durchsuchen das WWW nach gültigen Adressen
Whitelisting
• Liste mit vertrauenswürdigen E-Mailadressen
• Akkreditierungsfunktion bittet per Antwortmail um Verifizierung des unbekannten Senders
Nachteil:
• hoher Verwaltungsaufwand bei Sender und Empfänger
• Missverständnisse und Fehler bei der Akkreditierung können zu Nachrichtenverlusten führen
Blacklisting
Lokale Blacklists:
• Liste mit nicht gewünschten Absenderadressen
• zu hoher Verwaltungsaufwand Öffentliche Blacklists:
Real-Time Black Lists (RBLs) mit bekannten Spam-Quellen – Ursprung der Mail wird ausgewertet
– IP-Adressen – Domains Nachteil:
RBLs sind öffentlich, also auch für Spamer zugänglich
Content Filtering
• E-Mails nach Schlüsselwörtern durchsuchen
• Codierung der E-Mail untersuchen
Nachteil:
• Umgehen durch "unsichtbare" HTML-
Kommentare und Steuerzeichen
Distributed Checksum Clearinghouse
Funktionsprinzip:
• Anti Spam Software ermittelt über „Fuzzy Checksums“ (unscharfe Prüfsummen welche so angelegt sind, dass sie für nur gering
unterschiedliche E-Mails dasselbe Ergebnis liefern) eine Prüfsumme und sendet diese an einen Server (Clearinghouse).
• Dieser antwortet mit der Angabe wie oft diese Mail bereits registriert wurde.
• Eine E-Mail mit hohem „Bulk count“ ist entweder Spam oder z.B. aus einer Mailingliste. Für letztere führen die DCC Server Freigabelisten (White List).
• DCC-Server tauschen wieder untereinander die Bulk Mail Listen aus. Auf Basis der Antwort kann der Client selbst entscheiden ob der Schwellwert für eine Kategorisierung als Spam Mail erreicht ist.
Statistical Token Analysis durch Bayes´sche Filter
Funktionsprinzip:
• Aufteilen der Mail in Bruchstücke, so genannte „Token“
• Lernphase:
– Einlesen von Spam und normaler Email
– Häufigkeit des Auftretens der Token in Spam und Ham bestimmen – Häufigkeitswerte in Tabellen abspeichern
• Produktionsphase
– Spam-Wahrscheinlichkeit für jedes Token bestimmen
– Gesamtwahrscheinlichkeit berechnen, ab Schwellwert als Spam kennzeichnen
Statistical Token Analysis durch Bayes´sche Filter
Bayesische Analyse
• Bayesische Regel; entdeckt vom Mathematiker Thomas Bayes im 18. Jahrhundert
• Beispiel: Unterstellt man bei einem Menschen eine Größe von über 2,15 Meter, handelt es sich mit einer 60-prozentigen
Wahrscheinlichkeit (a) um einen Basketballspieler, hat er einen
Basketball unterm Arm, steigt die Wahrscheinlichkeit auf 72 Prozent
• Bayesischen Regel: ab /( ab + (1-a)(1-b))(b).
• Formel: (0.6 x 0.72)/((0.6 x 0.72) + (1-0.6) x (1-0.72)) = 0.79
• Woraus sich die kombinierte Wahrscheinlichkeit von 79% ergibt, dass ein 2,15 großer Mensch mit Basketball unterm Arm ein
Basketballer ist.
Statistical Token Analysis durch Bayes´sche Filter
Statistical Token Analysis
• Die Statistical Token Analysis identifiziert Spam und legitime E- Mails durch eine Wort- und Zeichenanalyse der jeweiligen E-Mail mit Hilfe von Frequenzwerten und statistischen Vergleichen.
• Eine Datenbank speichert sämtliche Zeichen (Worte und
Buchstabensequenzen), zählt und bewertet anschließend die
Häufigkeit, mit der sie bisher entweder in analysiertem Spam oder Ham aufgetreten sind.
• Mit Hilfe dieser Datenbank ist es möglich, für jedes Zeichen sehr schnell einen Wert zu ermitteln, der eine zuverlässige Einschätzung von E-Mails als Spam oder Ham erlaubt.
• Hat STA die 15 interessantesten Zeichenfolgen in jeder Nachricht ausgemacht, liegt hier der Wahrscheinlichkeitswert für Spam über 50 Prozent.
• Kombiniert man die Bayesischen Analysemethoden mit der Spam- Wahrscheinlichkeit dieser identifizierten Token, erhält man einen Wahrscheinlichkeitswert in Richtung Spam oder Ham für die
gesamte E-Mail-Nachricht.
Statistical Token Analysis durch Bayes´sche Filter
Vorteil des Bayesischen Filter gegenüber Content Filtering:
1. ganze Nachricht wird in betracht gezogen 2. Anpassungsfähig
3. Sprachenübergreifend einsetzbar 4. schwer auszutricksen
künstliches neuronales Netz KNN
• Einfaches Modell des zentralen Nervensystem
• Vorteilhafte Eigenschaften:
Lernfähigkeit
Selbstorganisation Generalisierung
Anpassungsfähigkeit
Die Lernregel ist ein Algorithmus der dem KNN für eine vorgegebene Eingabe eine gewünschte Ausgabe produziert.
Lernvorgang:
• überwacht
• bestärkt
• unüberwacht
SpamAssassin
• Perl Implementierung eines Mail-Analyse Systems, durch Module vielseitig erweiterbar (Text, Statistic Token & Headeranalyse, DCC, Blacklisting usw.)
• Setzt, wenn es eine E-mail als Spam identifiziert, einen Header, durch den man die Mail dann vom E-Mailclient des Users
herausgefiltert werden kann
• SpamAssasin ist der Hauptbestandteil des GMX-Spamfilters
SpamAssassin
Ein Beispiel:
X-Spam-Status: Yes, hits=121.3 required=5.4
tests=BAYES_90,DATE_IN_FUTURE_06_12, MANY_EXCLAMATIONS, NO_REAL_NAME, RCVD_IN_BL_SPAMCOP_NET,
RCVD_IN_OPM, RCVD_IN_OSIRUSOFT_COM, USER_IN_BLACKLIST
Userspezifische Einstellungen:
• Anpassen einzelner Scores
• Freischalten und Sperren einzelner Adressen
whitelist_from my@friend.com *@informatik.uni-ulm.de blacklist_from evil@spammer.org
• usw…
10 Goldene Regeln gegen Spam
1. Vermeiden Sie E-Mail-Adressen, deren Alias nur aus 3 oder 4 Buchstaben besteht!
2. Benutzen Sie 2 E-Mail-Adressen!
3. Verwenden Sie Ihre private Hauptadresse nur, wenn Sie tatsächlich mit jemandem kommunizieren wollen!
4. Reagieren Sie niemals auf eine Spam-Mail!
5. Klicken Sie niemals auf einen Link in einer Spam-Mail!
6. Schicken Sie Kettenbriefe oder Virenwarnungen nicht weiter!
7. Verwenden Sie Verteilerlisten oder das Bcc-Feld, wenn Sie eine E-Mail an mehrere Empfänger versenden!
8. Meiden Sie öffentliche Adressverzeichnisse!
9. Tarnen Sie Ihre E-Mail-Adresse auf Homepages!
10. Nutzen Sie einen E-Mail-Dienst mit einem guten Spamschutz.