Unerwünschte Mail automatisch filtern

Aus LinuxUser 07/2003

Unerwünschte Mail automatisch filtern

Gelbe Tonne für Mail-Abfall

Unerwünschte Spam-Mails sind lästig, kein Zweifel. Damit sie nicht das Schicksal der elektronischen Post besiegeln, muss man sich dagegen schützen – und das geht sogar.

Werbe-Mails an allen Ecken und Enden. Der morgendliche Blick in die Mailbox erschlägt die gute Laune von vornherein. Über die Hälfte des weltweiten Mail-Aufkommens soll mittlerweile aus Spam bestehen. Viele erhalten noch weitaus mehr. Wie schützt man sich davor? Kann der Computer unerwünschte Mail selbstständig markieren oder gar unterdrücken?

Auf den privaten Konten des Autors trudelten in den letzten beiden Monaten zirka 5500 Werbe-Mails ein, das waren über drei Viertel aller empfangenen Nachrichten. Sehr unangenehm. Doch fast 97 Prozent dieses Spams konnte der Rechner erfolgreich als solchen erkennen. Nur zwei Mails markierten die Spam-Filter in diesem Zeitraum als Spam, obwohl es sich um erwünschte Post handelte – bei dieser geringen “False Positives”-Rate darf der Computer des Autors Spam tatsächlich löschen.

Diese Zahlen aus der Praxis deuten bereits die wesentlichen Probleme an, denen man sich im Kampf gegen Spam stellen muss. Erstens: Es handelt sich teilweise um enorme Datenmengen. Wünschenswert wäre daher ein Spam-Filter auf Seiten des Providers – 5500 Mails entsprechen vielen Megabyte an Daten, die erst einmal übertragen sein wollen. Viele Provider lassen sich auf so etwas jedoch nicht ein. Dann muss man mit Bordmitteln sehen, was man gegen die unerwünschten Mails tun kann.

Zweitens: Absolut zuverlässig lässt sich Spam nicht immer erkennen. Deshalb arbeitet man mit heuristischen Verfahren. Manchmal kommt Spam jedoch trotz ausgefeilter Filtertechniken an.

Drittens: Heuristiken können in jede Richtung Fehler machen. Sie übersehen Spam, oder sie stufen Nicht-Spam fälschlich als Spam ein. Dieser zweite Fehler ist wesentlich ärgerlicher; ihn gilt es möglichst zu vermeiden. Spam-Filter stellt man daher in der Regel so ein, dass sie Mails im Zweifelsfalle doch durchlassen.

Was ist Spam?

Vor der Entwicklung von Verteidigungsstrategien sollte man sich Klarheit darüber verschaffen, wogegen man eigentlich kämpft. Eine typische Mailbox erhält mindestens drei Arten unerwünschter Mails, und nicht alle davon sind Spam.

Manchmal schicken bestimmte Personen, Programme oder Computer E-Mails mit immer gleichem Inhalt. Ob es sich um die zweitausendundvierte Version des ach so tollen Witzes für die gesamte Bekanntschaft handelt, oder ob der Rechner im Keller jeden Morgen über die eigentlich uninteressanten Backups berichtet: Dieser Sorte Belästigung wird man mit einfachen Mitteln Herr. Immerhin ist der ärgerliche Absender bekannt. Praktisch jedes Mail-Programm bietet einfache Filter an, die Mails mit definierten Eigenschaften in einen separaten Folder verschieben. Abbildung 1 zeigt ein Beispiel aus Mozilla.

Abbildung 1: Ein Nachrichtenfilter in Mozilla

Abbildung 1: Ein Nachrichtenfilter in Mozilla

Eine zweite Kategorie unerwünschter Mails besteht aus Windows-Würmern, die sich per E-Mail verbreiten. Je nachdem, wie viele Leute aus der eigenen Bekanntschaft mit Microsoft-Betriebssystemen arbeiten, macht diese Gruppe einen mehr oder weniger großen Anteil aus. Glücklicherweise sind Linux-Systeme in den meisten Fällen nicht betroffen. Für Verärgerung sorgen die Mails trotzdem. Sobald der Wurm bekannt ist, kann man ihm mit den bereits gezeigten einfachen Filtern den Garaus machen.

Als letztes gibt es die echten Werbe-Mails, UBE (“Unsolicited Bulk E-Mail”, unerwünschte Massenmails). Ihnen widmet sich der Rest dieses Artikels.

Wie vermeiden?

Die einfachste Art der Spam-Vermeidung: Wer niemals auf die Listen der Spam-Versender gelangt, bekommt auch keinen Spam. Dazu muss man lediglich ein paar einfache Regeln befolgen: Geben Sie Ihre Adresse niemals weiter! Verwenden Sie für jede Art der Kommunikation ausschließlich Wegwerfadressen! Benutzen Sie Ihre Mail-Adresse nie in den Diskussionsforen des Usenet oder gar im World Wide Web! Schreiben Sie auch keine eigenen E-Mails! Schließlich wird Ihr Kommunikationspartner Ihre Adresse früher oder später an Dritte weitergeben – absichtlich an Freunde oder Geschäftspartner, unabsichtlich durch einen Virusbefall seines Systems.

Sie sehen: Dieser Vorschlag ist recht realitätsfern. Eingeschränkt nutzen lässt er sich nur für die Adressen mobiler Geräte: Wählen Sie für Ihr Handy eine E-Mail-Adresse, die nicht zu erraten ist, und bringen Sie diese bitte nicht unter’s Volk. Stattdessen leiten Sie Mails von ausgewählten Personen gezielt weiter.

In der Praxis muss man sich darauf einstellen, dass jede echte Adresse früher oder später ihren Weg auf eine Spammer-Liste findet. Formulieren wir unsere Frage also neu: Wie wird man Spam los?

Die Antwort: Indem man ihn herausfiltert. Spam-Filter können auf einem Computer Ihres Providers installiert werden oder auf Ihrem eigenen System. Ersteres hat enorme Vorteile für Sie: Den so entfernten Spam bekommen Sie niemals zu Gesicht. Sie müssen ihn nicht über eine langsame ISDN-Leitung herunterladen, Sie brauchen nicht warten, bis Ihr Computer eine Entscheidung darüber trifft – es ist, als sei dieser Spam nie abgeschickt worden. Leider benötigen Sie dafür einen kooperationsbereiten Provider; die in Deutschland beliebten Massen-Mailer fallen nur eingeschränkt in diese Kategorie. Zudem ist die Konfiguration eines Spam-Filters auf einem fremden System nicht ganz einfach.

Bleiben also die lokalen Filter. Auch hier bieten sich zahllose Varianten an. Um diese besser zu verstehen, werfen wir zunächst einen ganz kurzen Blick darauf, wie eine E-Mail auf Ihr System gelangt (Abbildung 2).

Abbildung 2: Der Weg einer E-Mail auf Ihrem Computer

Abbildung 2: Der Weg einer E-Mail auf Ihrem Computer

Der MTA oder “Mail Transport Agent” ist ausschließlich für den Weitertransport der Mail zuständig. Diese Aufgabe nimmt traditionell ein Mail-Server wie sendmail, qmail oder postfix wahr, der sich mit anderen Mail-Servern über SMTP (“Simple Mail Transfer Protocol”) unterhält. Wer keinen ständig laufenden und vom Internet aus zugänglichen Mail-Server betreibt, muss seine Mail auf andere Art und Weise vom Provider holen.

Klassischerweise rufen daher popclient oder fetchmail die Mails vom POP-Server des ISPs ab und leiten sie an einen weiteren MTA, den lokalen Mail-Server, weiter. Der erkennt, dass die Mail an ihrem Ziel angekommen ist, und übermittelt sie an einen MDA oder “Mail Delivery Agent”.

Früher hieß der MDA immer /bin/mail, auf den meisten modernen Linux-Systemen kommt heute jedoch das schnellere und leistungsfähigere procmail zum Einsatz. Der MDA schreibt die Mail in eine Datei auf dem lokalen Rechner, z. B. ins Verzeichnis /var/mail oder direkt in Ihr Heimatverzeichnis. An dieser Stelle setzen leistungsfähige Mail-Filter an. Insbesondere für procmail existieren unzählige Softwarepakete, die Spam sehr effizient und zuverlässig erkennen.

Schließlich rufen Sie als Endanwender Ihren MUA auf, den “Mail User Agent”, das eigentliche Mail-Programm. Beliebte MUAs unter Linux sind pine oder mutt auf der Kommandozeile, kmail oder exmh als grafische Entsprechungen oder natürlich Netscape bzw. Mozilla [1,2].

Die meisten modernen MUAs können allerdings auf ein funktionierendes lokales Mail-System wie das beschriebene verzichten. Mozilla liest Ihre E-Mail auf Wunsch von /var/mail, ebenso gerne holt es sie aber auch direkt von Ihrem Provider ab. Das ist für den Endanwender natürlich wesentlich bequemer, muss er doch nur noch ein einziges Software-Paket konfigurieren und bedienen. Allerdings übergehen diese MUAs hierdurch alle anderen Mail-Filter, insbesondere die auf der Ebene des Mail Delivery Agent, und machen sie damit unwirksam.

Wonach filtern?

Spam-Filter unterscheiden sich nicht nur nach ihrem Einsatzort, sondern auch nach ihrer Vorgehensweise. Woher weiß der Computer überhaupt, ob eine bestimmte Mail Werbung ist oder nicht? Für diese Unterscheidung existieren derzeit drei wichtige, grundverschiedene Algorithmen.

Reine Textfilter löschen Mails, die bestimmte Textelemente enthalten. Sie sind leicht verständlich, einfach und schnell, aber sehr anfällig gegen Täuschungsmanöver – und sie neigen dazu, unschuldige Mails mit herauszufiltern.

Filter, die den wahren Absender einer Mail heraussuchen, sind relativ aufwändig und langsam, dazu schwierig zu implementieren, dafür aber äußerst leistungsfähig. Sie eignen sich ideal für den Einsatz auf Servern oder in einem klassischen Mail Delivery Agent.

Statistische Filter benötigen relativ hohen Rechenaufwand und interaktive Kontrolle, weshalb sie vom Frontend Unterstützung benötigen. Dafür passen sie sich automatisch an den individuellen Geschmack an. Aktuelle Mozilla-Versionen [3] enthalten solche statistischen Spam-Filter.

Textfilter

Erste und einfachste Methode zur Spam-Erkennung sind einfache Textfilter. Wenn eine Mail ein bestimmtes Textmuster enthält, verwirft der Filter sie. Dabei kann er sowohl die Header der Mail prüfen als auch den eigentlichen Text.

Textfilter lassen sich sehr einfach implementieren, und zwar an jeder Stelle eines Mail-Systems (siehe Abbildung 2). Allerdings weisen sie eine Reihe in ihrer Herangehensweise begründete Probleme auf: Beispielsweise neigen unbedarfte Anwender dazu, einfach den Absender einer Spam-Mail auf eine schwarze Liste zu setzen. Doch Vorsicht! Die Absender, ja die meisten Header-Zeilen von Spam, sind in der Regel gefälscht. Der Spammer wäre ja dumm, wenn er seine wahre Identität preisgäbe und es den unwilligen Opfern so leicht machte.

Auch das Filtern nach Textelementen im Textkörper der Mail ist eine Operation voller Fallstricke. Wenn Sie Mails mit Dollarzeichen löschen, treffen Sie damit zwar viel Spam. Aber auch Freunde können Ihnen keine Mail mit einem Dollarzeichen mehr schicken, keine Programmtexte, keine Nachrichten …

Ein paar Textfilter sind harmlos und erschlagen trotzdem recht viel Spam. Kaum ein Europäer liest beispielsweise Mails in asiatischen Zeichensätzen. Beispiele für solche Regeln zeigt der Kasten 1. Sie können sie direkt in den Filtermechanismus Ihres bevorzugten E-Mail-Programms eingeben.

Das neue Mail-Programm M2 aus Opera 7.11 [4] enthält übrigens eine ganze Reihe fein abgestimmter Filterregeln, die viele Spam-Mails automatisch erkennen.

Kasten 1: Sichere Anzeichen für eine Werbemail

  • Der Header Content-type: enthält die in der westlichen Welt unüblichen Zeichensatzdefinitionen big5, euc-kr, gb2312 oder iso-2022.
  • In der From:– oder der To:-Zeile fehlt der Klammeraffe @.
  • Das Subject: enthält mehrere Leerzeichen oder Tabstopps in Folge bzw. mehrere Tilden (nicht unbedingt in Folge).
  • Subject: enthält Kodierungen von Zeichen nicht-westlicher Alphabete (=?big5, =?euc-kr, =?gb2312 oder =?iso-2022).
  • Die Subject:-Zeile enthält den String ADV, der sich auf kalifornische Anti-Spam-Gesetze bezieht.
  • Subject: enthält mehrere Zeichen oberhalb des ASCII-Codes 127 in Folge.
  • Die Mail enthält einen der beiden folgenden Header:
X-Library: Indy
X-Spam-Status: Yes
  • Die Nachricht enthält eine der folgenden X-Mailer:-Header-Zeilen:
X-Mailer: Bulk Email
X-Mailer: Easy Mass Mailer
X-Mailer: E-Master
X-Mailer: jpfree group mail
X-Mailer: mailer signature
X-Mailer: MailWorkZ
X-Mailer: SuperMail
X-Mailer:  V[0-9],[0-9],[0-9],[0-9]
X-Mailer: Vallen e-Mailer
X-Mailer: VUvacation
X-Mailer: X-Mailer

Der wahre Absender

Bessere Trefferquoten und weniger Falschmeldungen versprechen Methoden, die den wahren Absender einer E-Mail herauszufinden versuchen. Zwar fälscht der Spammer die meisten oder alle Header der Werbe-Mail, doch durchläuft sie auf dem Weg von ihm in Ihre eigene Mailbox mehrere bekannte Mail-Server. Jeder davon fügt mindestens einen weiteren Header hinzu, über den der Spammer keine Kontrolle mehr hat. Sie hingegen wissen, welche zusätzlichen Header normalerweise ergänzt werden. Mit dieser Information lässt sich herausfinden, von welcher IP-Adresse eine beliebige Mail kommt.

Bei der Absender-IP einer Spam-Mail handelt es sich entweder um einen Computer des Spammers selbst oder um einen von ihm missbrauchten Rechner, typischerweise um ein unsicheres (und gehacktes) Windows-System oder einen unzureichend abgesicherten Mail-Server.

Mehrere Organisationen rund um die Welt widmen sich der Aufgabe, derart problematische IP-Adressen zu dokumentieren. Diese “Black Lists” (schwarzen Listen) publizieren sie in einer leicht und automatisch abfragbaren Form. Manche Black Lists enthalten ausschließlich unsichere Mailserver. Andere führen nur IP-Adressen an, die unmittelbar Spammern gehören. Manche listen IP-Adressen, von denen angeblich jetzt gerade im Augenblick Spam versandt wird – nicht verifiziert, nicht zuverlässig, aber aktuell. Durch Kombination verschiedener Black Lists stimmt man seine Spam-Abwehr individuell ab.

Eine detaillierte Beschreibung der Installation würde diesen Übersichtsartikel sprengen. Ein Beispiel für eine Konfigurationsdatei finden Sie z. B. unter [5]. Mit etwas weniger Bastelei geht es, wenn Sie das beliebte Anti-Spam-Tool SpamAssassin [6,7] installieren. Achtung: Beide Ansätze funktionieren nur, wenn Sie Ihre Mail auf die klassische Weise holen (Abbildung 2). Soll Ihr Mail-Programm die E-Mail direkt vom Provider abrufen, muss es die Black Lists selbstständig abfragen – und das kann momentan noch keiner der verbreiteten MUAs.

Statistische Spam-Filter

Eine sehr interessante Entwicklung auf dem Anti-Spam-Markt sind die so genannten Bayes’schen Filter. Dabei handelt es sich um einfache Statistiken.

Sie beginnen die Arbeit an solch einem Filter, indem Sie ein paar Mails explizit und manuell als “Spam” oder “Nicht-Spam” bezeichnen. Das Filterprogramm berechnet für jedes enthaltene Wort dieser Mails eine Wahrscheinlichkeit, mit der es zu einer Spam-Mail gehört. Beispielsweise besitzt ein Allerweltswort wie “habe” wohl keine besonders hohe Aussagekraft hinsichtlich der Frage “Spam oder nicht?” Ein Wort wie “kaufen” könnte da schon interessanter sein.

Kommt nun eine neue Mail an, wird für jedes enthaltene Wort geprüft, ob es eher für oder gegen Spam spricht. Die Ergebnisse rechnet das Filterprogramm zusammen und teilt Ihnen seine Vermutung mit. Hat es Recht – gut! Irrt es sich einmal, teilen Sie ihm das mit. Der Filter bezieht die Wörter aus der neu klassifizierten Mail direkt in seinen Wortvorrat mit ein und berücksichtigt sie für zukünftige Nachrichten. Je länger Sie den Filter verwenden, desto besser wird er.

Aktuelle Mozilla-Versionen enthalten im Mail-Client einen eingebauten Bayes’schen Filter. Aktivieren Sie ihn in einem “Mail & Newsgroups“-Fenster unter Tools / Junk Mail Controls bzw. Tools / Junk Mail – Filterung… (Abbildung 3). Nun wartet zunächst eine Aufgabe auf Sie: Jede angekommene Spam-Mail muss mit dem Mülleimer-Button in der Werkzeugleiste (oder dem Menüpunkt Tools / Mark Selected Messages as Junk bzw. Tools / Gewählte Nachrichten als Junk markieren) als solche ausgezeichnet werden. Sie erhält dann ein Papierkorb-Symbol.

Abbildung 3: Statistische Filter in Mozilla

Abbildung 3: Statistische Filter in Mozilla

Doch schon bald beginnt der Filter, das gleiche zu tun: Neu ankommende Mails erhalten in vielen Fällen ein Mülleimer-Symbol bzw. werden in den angegebenen Ordner wegsortiert (Abbildung 4). Wichtig ist nur, dass Sie Mozilla etwaige Fehler mitteilen, indem Sie zum Beispiel fälschlich als Spam gekennzeichnete Nachrichten über Gewählte Nachrichten als Junk-frei markieren oder den Mülleimer-Button von ihrem Makel reinwaschen. Nur so kann das System lernen.

Abbildung 4: Nach einer Lernphase klassifiziert Mozilla Mails automatisch

Abbildung 4: Nach einer Lernphase klassifiziert Mozilla Mails automatisch

Statistische Filter funktionieren erstaunlich gut. Für mehrsprachige Anwender halten sie jedoch einen großen Stolperstrick bereit: Sie neigen dazu, Sprachen zu unterscheiden. Der typische Deutsche wird sehr viele deutschsprachige Privat-Mails erhalten, hingegen nur wenig englische. Umgekehrt achten nur wenige Spammer auf die Muttersprache ihrer Opfer – die meiste E-Mail-Werbung ist daher in Englisch geschrieben. Es besteht die Gefahr, dass ein statistischer Spam-Filter englische Mails als Spam einordnet, deutsche als Nicht-Spam.

Statistische Filter sollten aus diesem Grund niemals die Erlaubnis erhalten, Mails zu löschen. Für sie wie für alle anderen gilt: Sehen Sie die als Spam markierten Mails grundsätzlich noch einmal durch, bevor Sie sie ins Nirwana schicken. Erst wenn Sie nach mehreren Wochen oder Monaten mit der Arbeit des Filters zufrieden sind und keine echten Mails verloren haben, lassen Sie den Spam sofort löschen. Dann haben Sie einen wichtigen Etappensieg im Kampf gegen das elektronische Ungeziefer gewonnen.

Glossar

heuristisch
(von griechisch heurískein = finden, entdecken) Verfahren zur Problemlösung auf Grund von Erfahrungswerten, Faustregeln oder Algorithmen.
Header
Der Kopf einer Mail besteht aus Zeilen mit für den Transport und die Verwaltung wichtigen Informationen. Anschließend folgt der Mail-Body mit dem eigentlichen Inhalt der Nachricht. Viele grafische MUAs verbergen die meisten Mail-Header (mit Ausnahme des Subject, des Absenders (“From-Header”) und des Sende-Datums (“Date-Header”) vor den Augen des Benutzers.

Infos

[1] Andrea Müller, Patricia Jung: “Einfach nur ein Mail-Programm”, LinuxUser 03/2003, S. 24 ff.

[2] Andrea Müller: “Mail und mehr”, LinuxUser 03/2003, S. 34 ff.

[3] Mozilla: http://www.mozilla.org/

[4] Opera: http://www.opera.com/

[5] Black Lists mit procmail nutzen: http://www.ordb.org/faq/#usage_procmail

[6] SpamAssassin: http://www.spamassassin.org/

[7] Heike Jurzik: “Nie wieder Spam”, LinuxUser 07/2002, S. 55 ff.

[8] Eine frühe Beschreibung statistischer Spam-Filter: http://www.paulgraham.com/spam.html

Der Autor

Marc André Selig arbeitet als wissenschaftlicher Angestellter an der Universität Trier und als Arzt im Praktikum am Kreiskrankenhaus Schramberg. Die von ihm betreuten E-Mail-Server werden mit Spam nur so bombardiert, so dass ihn das Thema häufiger beschäftigt.

LinuxUser 07/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben