Greylisting – die neue Waffe gegen Spam

Frank Richter, URZ, TU Chemnitz
<frank.richter@hrz.tu-chemnitz.de>

Vortrag zur 2. Mailserver-Konferenz in Magdeburg, 20. Mai 2005

Spam - unerwünschte, meist dubiose Massen-E-Mail - nervt Internet-Benutzer und Administratoren gleichermaßen. Bisherige Gegenstrategien, wie Blacklists oder Inhaltsanalyse konnten die Plage noch nicht wirksam eindämmen. Das "Greylisting" ist eine neue, versprechende Methode. Wirkungsweise, Risiken und Nebenwirkungen werden erläutert und mehrmonatige Erfahrungen an der TU Chemnitz ausgewertet.

Wir Postmaster sind wirklich nicht zu beneiden. Wir stecken all unsere Energie in ein System, damit wirklich jede E-Mail an den korrekten Adressaten zugestellt wird, sorgen uns um unsere Benutzer, damit diese möglichst leicht und sicher an Ihre E-Mail herankommen - und was ist das Ende vom Lied? Wir hören verzweifelte Klagen über volle Mailboxen durch unverlangten E-Mail-Müll, unsere Mail-Server ächzen unter der Last - und schließlich vermehren sich auch noch per E-Mail versandte Viren, Würmer und anderes Ungeziefer.

In unserer Not entwickeln und nutzen wir DNS-basierte Sperrlisten, installieren intelligente Inhaltsfilter und Bewertungssysteme, Virenchecker sowieso - unsere Mail-Server werden zu dicken Festungen auf wackligem Fundament. Wir schulen unsere Benutzer und hoffen auf Deckung durch Gesetze und deren wirkungsvolle Durchsetzung. Und auf jeder Fachtagung hören wir von Rechtsexperten, auf welch dünnem juristischen Eis wir uns mit unseren Mail-Filtern bewegen.

Durch zum Teil fragile Konfiguration unserer Server leidet sogar die Zuverlässigkeit, voller Bangen erwarten wir die nächste Denial-of-Service-Attacke durch Virenschleudern oder Spammer-Netze. Schon leidet die Akzeptanz unserer geliebt-gehassten "Electronic Mail". Endlich beginnen Internet-Gremien, sich dem Problem anzunehmen. Und da taucht ein neues, so unglaublich einfaches Verfahren zur Eindämmung unserer E-Mail-Plagen auf: Greylisting - der neue Strohhalm?

Greylisting - das Prinzip

Das Ziel von Spam-Versendern besteht darin, in kurzer Zeit möglichst unerkannt und ohne großen Aufwand Nachrichten an eine Vielzahl von Empfängern zu schicken. Reguläre Mail-Server dagegen wollen E-Mails sicher zustellen, und scheuen für diese Ziel keinen Aufwand (Queues, Retry-Mechanismen). Diesen feinen Unterschied bemerkte Evan Harris und entwickelte daraus 2003 ein Verfahren, das er "Greylisting" nannte [1].

Bei einem Mail-Zustellversuch erhält der empfangende vom sendenden Mail-Server drei Informationen, bevor die eigentliche E-Mail übertragen wird:
  1. die IP-Adresse des Sende-Rechners
  2. die Envelope-Absender-Adresse
  3. die Envelope-Empfänger-Adresse(n)

Diese drei Daten werden als Tripel mit einem Zeitstempel abgespeichert. Bei mehreren Empfängern werden jeweils einzelne Tripel gespeichert.

Ist dem empfangenden Mail-Server dieses Tripel unbekannt ("schwarz"), wird die Annahme der E-Mail für eine Weile mit temporärem Fehler abgewiesen. Ist das Tripel von einem vorangegangenen Zustellversuch ("grau") oder einer bereits erfolgreichen Zustellung ("weiß") schon bekannt, wird die E-Mail wie gewohnt angenommen. Dazu wird das Tripel in der Datenbasis mit langer Gültigkeit versehen ("weiß"), so dass ein weiterer E-Mail-Austausch ohne Verzögerung stattfinden kann.



Bild: Beispiel eines SMTP-Dialogs mit Greylisting

Dieser recht einfache Algorithmus hat folgende Auswirkungen:

Datenbasis und Parameter

Ein empfangender Mail-Server, der Greylisting einsetzen will, muss sich die "E-Mail-Beziehungen" in Form der o.g. Tripel merken. Folgende Zeit-Parameter spielen eine Rolle:
Initiale Wartezeit bei unbekanntem Tripel ("schwarz"):
So lange soll der Empfang einer E-Mail mit bislang unbekannten Partnern noch unterdrückt werden, d.h. die initiale Wartezeit wird mindestens so lang sein. In [1] wird 1 Stunde empfohlen, an der TU Chemnitz verwenden wir moderatere 15 Minuten.
Gültigkeit eines Tripels ("grau") ohne Mailaustausch:
So lange wird der Zustellversuch in der Datenbank gehalten, d.h. der Sender hat eine gewisse Zeit, den Zustellversuch zu wiederholen. [1] schlägt 4 Stunden vor, wir geben kulanterwiese 2 Tage Zeit.
Gültigkeit eines Tripels ("weiß") mit erfolgtem Mailaustausch:
Wenn in dieser Zeitspanne weitere E-Mails mit den Tripel-Daten eintreffen, werden sie ohne Verzögerung angenommen. In [1] wird diese Zeit auf 36 Tage gesetzt.

Eine Diskussion mit Abwägung von Vor- und Nachteilen dieser Parameter ist in [1] zu finden.

Ein Kritikpunkt an Greylisting ist die initiale Wartezeit für neue "E-Mail-Beziehungen". Es gibt Möglichkeiten, dies abzumildern:

Die zu speichernden Datensätze enthalten also implementationsabhängig neben den eingangs beschriebenen Tripeln (IP-Adresse, Absende-Adresse, Empfänger-Adresse) noch weitere Daten, wie Zeitpunkt des ersten Zustellversuches, Gültigkeit bei erfolgreicher Zustellung, Sperrzeiten usw.

Zur Speicherung dieser Datensätze bietet sich natürlich ein Datenbank-System an. Unbedingt zu beachten ist, dass dieses System von allen MX-Servern benutzt wird, weil sich sonst die Zustellverzögerung u.U. addieren kann. Diese Datenbank ist natürlich dann ein "single point-of-failure" und ist deshalb möglichst robust auszulegen.

Es ist ohnehin sehr ratsam, dass sich alle für eine Domain zuständigen MX-Server (auch sog. "Fallback-Server") an eine einheitliche Spam-Policy halten. Viele Spam-Versender benutzen nämlich gerade die MX-Server mit geringer Priorität (also hoher Preference), in der Hoffnung, dass diese weniger "streng" konfiguriert sind.

Ein Einwand zu Greylisting ist die Vermutung, dass sich die Spammer anpassen und Gegenstrategien entwickeln werden. Das ist sicher möglich, steht aber gegen deren Ziele - die Spammer müssten einigen Aufwand betreiben und dazu noch die gleiche IP-Adresse behalten, um nach der initialen Wartzeit erneut zu senden. Bei infizierten PCs, die als "Spamschleudern" missbraucht werden und via DSL angebunden sind, ist dies durchaus denkbar. Während der initialen Wartezeit können diese Sender jedoch identifiziert werden, so dass andere Spamschutz-Verfahren wirken, z.B. DNS-basierte Blacklists. Große Mail-Server mit hohem Mail-Aufkommen könnten die Greylisting-Datenbasis benutzen, um solche Spam-Attacken zu erkennen und die Verursacher bei den Blacklists zu melden.

Greylisting zum Einsatz bringen

Greylisting muss in den Mail-Servern zum Einsatz kommen, die für eine Domain die E-Mails aus dem Internet entgegennehmen. Es gibt inzwischen viele freie und kommerzielle Implementationen für eine Vielzahl von Mail-Servern. Eine Übersicht enthält [2]. Man sucht sich eine für seine konkrete Umgebung passende heraus und testet die. Für unsere mit Exim betriebenen Mail-Server haben wir uns für die Implementation von Alun Jones, University of Wales, Aberystwyth [3] entschieden. Diese ist in Perl geschrieben, nutzt eine MySQL-Datenbank, ist modular und übersichtlich aufgebaut und stellte sich als sehr robust heraus.

Vor dem Einsatz sollte man versuchen, die Anforderungen an die Datenbank abzuschätzen. Pro eintreffender Mail ist mindestens eine Datenbank-Operation erforderlich. Durch Analyse der Mail-Server-Logfiles kann man auch den Speicherbedarf der Datenbank veranschlagen.

Wir nutzten die Installation zunächst einige Wochen im "Trockentest": Das Greylisting-Modul schreibt schon die Datensätze, der Mail-Server lehnt aber noch keine Annahme temporär ab. Somit füllt sich die Datenbank, man kann die Anforderungen realistisch einschätzen und bereits einige interessante Auswertungen vornehmen. Allerdings lässt sich die Wirksamkeit als Schutz nur schwer beurteilen. Diese bereits mit einigem Wissen über E-Mail-Beziehungen gefüllte Datenbank kann man natürlich benutzen, um eine besonders "weiche Einführung" des Greylisting zu erreichen - regelmäßige Kontakte werden ohne initiale Wartezeit auskommen und somit gar nichts bemerken. Da die Datenbank jedoch auch durch die "Spam-Beziehungen" verschmutzt ist, ist es doch eher ratsam, das Greylisting mit einer leeren Datenbank zu aktivieren. Vor den heißen Start sollte man natürlich die Ausnahmen vom Greylisting in einer manuellen Whitelist definieren.

Erfahrungen an der TU Chemnitz

Greylisting fügt sich in die bereits existierenden Anti-Spam-Maßnahmen ein (siehe [4]). Diese Methoden können von jedem unserer ca. 15.000 Benutzer einfach über ein Web-Formular ein- oder ausgeschaltet werden:

Neu eingerichtete E-Mail-Benutzer erhalten eine Voreinstellung und eine Information darüber. Mit dieser individuellen Einstellmöglichkeit glauben wir, juristische Probleme zu vermeiden. Erfahrene Benutzer können individuell anhand von Header-Zeilen filtern - für Greylisting funktioniert dies natürlich nicht. Darüberhinaus kann sich jeder Benutzer via WWW einen Überblick über gesendete, empfangene, abgewiesene oder durch Greylisting verzögerte Nachrichten verschaffen - quasi ein "Einzelverbindungsnachweis" für E-Mail.

Mit der Einführung von Greylisting Ende April 2004 verringerte sich das Spam-Aufkommen in den Mailboxen unserer Benutzer deutlich. Das führte sogar zu irritierten Anrufen der Art "Ist da was faul, ich bekomme so wenige Mails!". Bei genauerem Hinsehen "vermissten" diese Benutzer ihren täglichen Spam ... Natürlich wurden auch die anfänglichen Verzögerungen bemerkt, die sich durch das automatische Whitelisting entschärften. Unsere folgende "Greylisting-Statistik" zeigt deutlich diesen Anfangsverlauf bis zu einem "eingeschwungenen Zustand":



Bild: Tagesstatistik für Greylisting

Recht bald bemerkten wir den schönen Effekt, dass Greylisting auch gegen die Verbreitung von Mail-Würmern wirkt. So wurden unsere Virenchecker am Mail-Relay entlastet, da weniger E-Mails mit gefährlichen Inhalten unsere Server erreichen.

Der wenige trotzdem noch "durchkommender" Spam ist nun wieder gezielter behandelbar. So haben wir für unseren Spamschutz "Textanalyse" (wegen der großen Menge vorher ausgeschaltete) aufwändigere Optionen für SpamAssassin eingeschaltet (z.B. Abfrage von URL-Blacklists), was diesen Schutzfilter verbessert.

Mit folgenden Probleme hatten oder haben wir zu kämpfen:

Grundsätzlich sind die Erfahrungen mit Greylisting so positiv, dass wir den Einsatz empfehlen können. Die Beschwerden der Benutzer gehen deutlich zurück, und das Mail-Aufkommen sinkt (anfangs fast erschreckend) - Mail-Administratoren und -Server atmen auf!



Bild: Rückgang der eingehenden E-Mail nach Einführung von Greylisting

Wird nun Greylisting das Spam-Problem ein für alle Mal beseitigen? Sind andere Spamschutz-Mechanismen gar überflüssig? Ohne Prophet zu sein, antworte ich zweimal mit "Nein": So wird wohl auch in Zukunft ein Mix an verschiedenen Maßnahmen erfolgversprechend sein. Wichtig ist die wohlüberlegte Reihenfolge der Methoden. So sollten am Anfang einfache, wenig aufwändige Methoden stehen:
  1. statische Blacklists, typische Muster in HELO, Gültigkeit der Empfängeradresse
  2. zuverlässige DNS-basierte Blacklists
  3. Greylisting
  4. Textanalyse, Viren-Check


Bild: Auswirkungen verschiedener
Spamschutz-Maßnahmen:
    1. Verschärfte HELO-Tests
2. Greylisting
3. Neue DNSBL sbl-xbl.spamhaus.org
4. Erweiterter Empfänger-Test
5. Neue SpamAssassin-Version 3.0.X

Und natürlich sollte ein E-Mail-Administrator immer am Ball bleiben:

Weitere Informationen

[1] The Next Step in the Spam Control War: Greylisting by Evan Harris
     [http://projects.puremagic.com/greylisting/]

[2] Links to Implementations and Information [http://projects.puremagic.com/greylisting/links.html]

[3] Spam tools by Alun Jones, University of Wales, Aberystwyth [http://users.aber.ac.uk/auj/spam/]

[4] Automatische Schutzfilter für E-Mails an der TU Chemnitz
     [http://www.tu-chemnitz.de/urz/mail/filter/]

[5] Greylisting.Org: Whitelisting [http://greylisting.org/whitelisting.shtml]

[6] ASRG - Anti-Spam Research Group [http://asrg.sp.am/]

[7] SPF - Sender Policy Framework [http://spf.pobox.com/]