Spam und UCE - Tarpitting
Dieses Verfahren wird oft auch als Teergrube bezeichnet.
So funktioniert es
Wenn Sie schon Spam Mails annehmen müssen und frühzeitig erkennen, dass es Spam ist oder sich die Gegenseite nicht regelkonform verhält, dann können Sie auf den Gedanken kommen, der Gegenseite das Leben etwas schwerer zu gestalten.
SMTP ist ein sehr einfaches Protokoll und speziell beim Envelope und Handshake gibt ein Packet dem nächsten den Staffelstab. Wenn der Sender (hier ein Spammer) einen Befehl absendet, dann muss dieser vom Empfänger beantwortet werden. In der Regel eben mit "250 OK" oder anderen zum Status passenden Meldungen.
Allerdings ist SMTP auch ein sehr altes Protokoll und von den heutigen Bandbreiten träumten wir alle in den jungen Jahren des Internets. Da früher alles etwas langsamer ablief, waren auch die erlaubten Antwortzeiten sehr hoch angesetzt. So darf sich ein SMTP-Server auch gerne bis zu 2 Minuten mit einer Antwort Zeit lassen. Das war früher durchaus sinnvoll, da einige Mailserver auf Disketten geschrieben oder anderweitig einfach etwas "langsamer" die Pakete verarbeitet haben.
Basierend auf diesem Wissen und Verfahren, gegen das sich auch ein Spammer nicht wehren kann, gibt es pfiffige Ideen, die Spammer zu ärgern und die guten nicht allzu stark zu behindern.
Das Prinzip beruht darauf, die Antworten für einen erkannten Spammer künstlich zu verzögern. Wenn nur genug Systeme so arbeiten, dann werden die Spammer bald nicht mehr in der gewohnten Menge ihre Mails versenden können, da Sie einfach viel länger brauchen. Einige Ideen gehen so weit, dass der Spammer richtig "festgehalten" wird (Stichwort Teergrube).
Gut und Böse unterscheiden
Nun kann ein Mailserver nicht unbedingt so früh unterscheiden, wer gut und böse ist. Viele Spammer nutzen aber den Weg, mit einer Verbindung gleich 100 oder mehr Mailadressen zu übergeben. In der normalen Kommunikation werden meist nur wenige Personen gleichzeitig (Verteiler) adressiert. Also kann der SMTP-Server mit jedem weiteren Empfänger einfach die Antwortzeit verlängern.
Eine Mail mit einem oder zwei Empfängern geht sofort durch. Eine Mail mit zehn Empfängern wird in der Summer um einigen Minuten gebremst und eine Mail mit hunderten von Empfängern wird sehr viel länger zur Übertragung brauchen. Dies soll primär Spammer treffen.
Interessant wird es auch, wenn Sie ein Produkt einsetzen, dass anhand anderer Regeln erkennt, dass Sie es wahrscheinlich mit einem Spammer zu tun haben und Sie als Folge davon den Spammer noch weiter Ausbremsen. Allerdings ist das ein schmaler Grad, auf dem Sie sich dann vielleicht bewegen, der durchaus auch auf ihre System nachteilige Auswirkungen zeigen kann.
Probleme
So nett all dies aussieht, so wichtig ist aber auch die Frage nach den Seiteneffekten. Idealerweise fängt der Mailserver nur dann das "bremsen" an, wenn z.B.: viele Fehlermeldungen auftreten. Fehler könnten z.B.: sein, dass ein Absender versucht, gültige Mailadressen zu erkennen.
Einige Implementierungen von TarPitting schießen aber etwas über das Ziel hinaus und bremsen, wenn es immer mehr Empfänger werden. Eine Mail an wenige Empfänger geht daher noch schnell durch, aber wenn jemand eine Mail mit 100 verschiedenen gültigen Empfängern in ihrer Organisation versenden will, dann wird dieser Mail gebremst. Ein Spammer könnte diesen Fehler dann umgehen, indem er einfach für jeden Empfänger eine eigene Verbindung aufbaut. Und Ihr Server könnte genau dies wieder verhindern wollen, indem bestimmte IP-Adressen eben nur eine bestimmte Menge von Mails versenden dürfen. So kann es dann sein, dass auch gute Mails an viele Personen, wie sie manchmal vorkommen, verzögert werden.
Das Ziel, einen Spammer zu "bremsen" funktioniert ja nur dann gut, wenn möglichst viele Gegenstellen die Verbindung einfach "etwas" drosseln". Der Spammer wird lahmgelegt und ihre eigenen Kommunikation ist "ein wenig" gebremst.
Aber auch ihr Mailserver hat dazu dann bestimmte Verbindungen sehr viel länger offen als normal. Wenn Sie nun z.B.: nur 20 Verbindungen gleichzeitig annehmen, kann es sein, dass sie auch gerade 20 Spammer "festhalten" und wichtige Nachrichten zu ihnen nicht durchkommen.
Die Frage stellt sich auch, ab wann Spammer ihren Mailserver aufgrund des auch nach außen sichtbaren Verhaltens nicht direkt als Ziel aussuchen. Es ist schon ein unterschied, ob sie eine Mail eines Spammers einfach nicht annehmen (Reject) oder in eine Quarantäne ablegen oder ob sie den Spammer aktiv behindern.
Strafrechtlich gibt es hierzu meines Wissens nach auch noch keine Aussagen. Sie stören indirekt auch den Versand anderer Firmen. Wobei das sicher ein ganz schmales Brett ist, wenn deswegen jemand sie vor den Richter ziehen würde. Vielleicht kann ihr Server oder ihre Leitung wirklich nicht schneller ...
Exchange 2003 kann auch "bremsen
Auch Exchange wurde mittlerweile mit einem entsprechenden Hotfix versehen, um diese Funktion bereit zu stellen.
- SMTP Session Tarpitting für Windows 2003 and Exchange
http://msexchangeteam.com//archive/2004/12/06/275851.aspx -
http://www.Microsoft.com/technet/security/advisory/842851.mspx
Clarification Of The SMTP Tar Pit Feature That Is Provided für Exchange Server 2003 in Windows Server 2003 Service Pack 1 - 885881 MS04-035: Vulnerability in SMTP could allow remote code execution in Microsoft Windows Server 2003
- 842851 SMTP tarpit feature für Microsoft Windows Server 2003
Um Tarpitting zu aktivieren, müssen Sie zuerst KB842851 installieren und
dann KB885881.
Voraussetzung ist nur Windows 2003 SMTP mit IIS6.
Exchange ist nicht mal erforderlich aber wird unterstützt. Über folgenden neuen Schlüssel in der Registrierung wird die Wartezeit
eingestellt:
HKLM\System\CurrentControlSet\Services\SmtpSvc\Parameters\ TarpitTime (DWORD) = xxx (Sekunden)
Ein Neustart des SMTP Service ist erforderlich. Voraussetzung für die Funktion ist allerdings, dass ihr Exchange Server direkt aus dem Internet erreicht wird, d.h. kein SMTP-Relay davor geschaltet ist und sie ihre Mails nicht per POP3 abholen.
Exchange 2007/2010 kann auch "bremsen
Hier liegen die Einstellungen im ReceiveConnector:
set-receiveconnector <name> ` -TarpitInterval xxx -MessageRateLimit xxx -ChunkingEnabled $true -EightBitMimeEnabled $true
Das TarpitInterval sorgt dafür, dass nach Fehlern in den Befehlen aber auch nach einem BDAT per Default eine 5-Sekunden Pause eingelegt wird.