Mit grauen Listen gegen Spam und Viren

Dank Greylisting kann man Spammer und Viren-Schreiber mit ihren eigenen Waffen schlagen und das Malware-Aufkommen massiv senken.

Artikel erschienen in Swiss IT Magazine 2004/21

     

Greylisting ist ein sehr effizientes Verfahren gegen Spam- und Viren-Mails, das sich besonders zur Anwendung bei Providern gut eignet. Dieser Artikel erklärt ausführlich, wie es funktioniert, welche Nachteile es hat, und wie Sie es bei sich einsetzen können.


Wie eine E-Mail versendet wird

Greylisting agiert auf der SMTP-Ebene. Um seine Arbeitsweise verstehen zu können, betrachten wir zuerst anhand eines Beispiels, wie SMTP funktioniert. Abbildung 1 (Seite 48) zeigt die verschiedenen Schritte, die ablaufen, wenn «Gabi» eine Mail an «Marc» schickt.



Schritt 1: Gabi schreibt eine E-Mail und sendet sie ab. Das Mail-Programm kontaktiert den konfigurierten Server und übermittelt die E-Mail mittels SMTP. Normalerweise sollte in Gabis Mailprogramm der SMTP-Server ihres Providers (Server A) konfiguriert sein. Er ist der einzige, der das Verschicken von E-Mails von ihrem Rechner an Dritte zulässt (SMTP-Server, die E-Mails von unbekannten Rechnern zum Versand annehmen, werden Open relays genannt und sind berüchtigt, da sie für Spamming missbraucht werden können).



Schritt 2: Server A speichert die von Gabi erhaltene E-Mail und sucht im DNS, welcher SMTP-Server («B») für die Domain des Empfängers zuständig ist. Er wird dann diesen Server B kontaktieren und ihm die E-Mail zur Weiterleitung übergeben. In dieser Situation ist Server A der «Mail-Client» und Server B der «Mail-Server» (diese Begriffe werden später gebraucht).



Schritt 3: Die E-Mail wird in die Mailbox von Marc gelegt. Marc kann sie mit einem Mailbox-Zugriffsprotokoll wie POP oder IMAP von seinem Laptop aus lesen.


SMTP und Verantwortung

Wenn ein Mail-Server, zum Beispiel wegen einer vollen Festplatte, eine E-Mail nicht empfangen kann, erzeugt er eine temporäre Fehlermeldung, damit der Mail-Client später erneut versucht, die Nachricht zu übermitteln.
Beim SMTP-Protokoll liegt die Verantwortung für die Zustellung einer E-Mail beim Mail-Client (z.B. Server A bei Schritt 2 in Abbildung 1). Das heisst, wenn ein temporärer Fehler auftritt, muss der Mail-Client die E-Mail zwischenspeichern und immer wieder versuchen, sie zuzustellen, bis es gelingt oder bis es lange genug ohne Erfolg versucht wurde (normalerweise etwa 3 Tage). Im letzteren Fall geht die Mail dann zurück an den Absender.
Spam-Software und Viren sind darauf optimiert, möglichst viele E-Mails verschicken zu können. Das Einhalten von Standards hat dabei keine Priorität. Deswegen wird keine Warteschlange für nicht erfolgreich zugestellte E-Mails verwaltet. Das führt dazu, dass diese Programme – im Gegensatz zu normalen Mail-Servern – nach einem temporären Fehler nicht versuchen, die Nachricht erneut auszuliefern.





Schematische Darstellung der Reise einer E-Mail


Greylisting

Evan Harris hat mit Greylisting einen Mechanismus erfunden, der diesen Sachverhalt ausnützt, um Spam und Viren zu bekämpfen. Die Idee ist, künstliche temporäre Fehler zu generieren und danach zu warten, bis der Mail-Client die Mail ein zweites Mal zustellt. Tut er dies, bedeutet es wahrscheinlich, dass die E-Mail legitim war, und sie wird zugelassen. Wenn nicht, dann dürfte es sich um ein Spam-Mail gehandelt haben, die zu Recht blockiert wurde.
Konkret wird jede eingehende E-Mail anhand von drei Kriterien identifiziert:


• IP-Adresse des Mail-Clients


• E-Mail-Adresse des Senders


• E-Mail-Adresse des Empfängers
Beim ersten Erscheinen einer bestimmten Kombination wird eine temporäre Fehlermeldung zurückgeschickt. Kommt dieselbe Kombination nach einer gewissen Minimalzeit wieder (normalerweise etwa 5 Minuten), dann wird sie ganz normal akzeptiert.
Sender- und Empfänger-Adresse werden deshalb geprüft, weil ein Spammer oder ein Virus auf die gleiche Maschine verschiedene E-Mails an mehrere Empfänger schicken kann und alle diese als separate Versuche identifiziert werden sollen. Wenn nur die IP-Adresse des Mail-Clients erfasst wäre, dann würden nur die während den ersten 5 Minuten generierten E-Mails dieses Spammers erfolgreich blockiert.
Abbildung 2 zeigt eine Grafik von Spam und Viren vor und nach dem Einschalten von Greylisting am Departement für Informationstechnologie und Elektrotechnik der ETH Zürich. Etwa 90 Prozent der Spam-Mails und Viren werden durch das System unterbunden und gar nicht erst akzeptiert.


Nachteile

Alles hat seinen Preis... Der Preis von Greylisting ist, dass E-Mails verspätet ankommen können. Aus Sicht jedes Empfängers passiert dies normalerweise nur einmal pro Absender. Die Verspätung hängt von der Zeitspanne zwischen dem ersten und dem zweiten Zustellungsversuch des Mail-Clients ab (normalerweise weniger als eine Stunde). Mühsam ist das eigentlich nur dann, wenn während eines Telefongesprächs ein Dokument unmittelbar geschickt und empfangen werden soll, oder wenn der Käufer beim Internetshopping auf eine E-Mail-Bestätigung warten muss.
Leider ist es auch möglich, dass E-Mails verlorengehen: Es gibt Mail-Server, die falsch implementiert oder konfiguriert sind und nach einem temporären Fehler nicht mehr versuchen, eine E-Mail nochmals auszuliefern. Das sind aber zum Glück sehr wenige. Die meisten Greylisting-Implementierungen verfügen über eine Liste von «kaputten» Rechnern und machen für diese kein Greylisting.
Unser Mail-Server wird von etwa 2000 Personen benutzt. Bis jetzt haben nur zehn Personen Greylisting für sich ausschalten lassen, obwohl wir es bereits seit 5 Monaten im Einsatz haben. Dies zeigt, dass für die meisten Benutzer die Vorteile überwiegen.


Implementierung

Greylisting ist nur effektiv, wenn es auf dem Mail-Server implementiert wird, den die Spammer/Viren kontaktieren. Das heisst, auf den Mail-Servern, die für die jeweiligen Mail-Domains zuständig sind (z.B. Server B in Abbildung 1). Wenn ein Spammer eine E-Mail erstmal erfolgreich auf dem Mail-Server eines Providers deponiert hat, dann nützt Greylisting auf dem Rechner der Endbenutzer nichts, weil das Mail-Programm des Providers, wenn richtig implementiert, die Spam-E-Mail immer wieder auszuliefern versucht.
Ebenso ist es wichtig, dass alle Mail-Server einer Domain Greylisting implementieren. Spammer/Viren versuchen nämlich oft, ihre E-Mails über einen sekundären Mail-Server zu schicken.





Es existieren zahlreiche Greylisting-Implementierungen für die meisten Mail-Programme. Auf der Website von Evan Harris (URL siehe Kasten «Weitere Informationen») gibt es eine Liste, wo man eine passende Implementierung für die meisten SMTP-Server finden kann.
Für Postfix ist unter anderem Postgrey verfügbar. Dabei handelt es sich um einen «SMTP policy server», der mit Postfix ab Version 2.1.0 verwendet werden kann. Er funktioniert zuverlässig, unterstützt das Freischalten von einzelnen Rechnern und verwendet einen Algorithmus, um Greylisting für legitime E-Mails zu minimieren. Die genaue Vorgehensweise zur Implementierung erklärt der Kasten «Postgrey in Postfix integrieren» (Seite 47).





Weiter Informationen


Der Autor

David Schweikert (dws@ee.ethz.ch) ist der Entwickler von Postgrey und arbeitet bei der ISG.EE an der ETH Zürich (isg.ee.ethz.ch), wo er sich unter anderem um den E-Mail-Service kümmert.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Vor wem mussten die sieben Geisslein aufpassen?
GOLD SPONSOREN
SPONSOREN & PARTNER