E-Mail-Adressen tarnen

Aus LinuxUser 01/2007

E-Mail-Adressen tarnen

Für Räuber unsichtbar

Spammer durchforsten das Netz laufend nach E-Mail-Adressen. Sind sie fündig geworden, wird das Lesen der elektronischen Post zur Qual. Tarnverfahren verbergen die Adressen vor den Suchrobotern – nicht jedoch vor den Seitenbesuchern.

“Woher haben die Spammer bloß meine E-Mail-Adresse?”, fragt sich so mancher genervte Anwender. Steht diese auf Ihrer Homepage im Internet, so sind Sie mit ziemlicher Sicherheit so genannten Harvestern ins Netz gegangen. Dabei handelt es sich um Suchprogramme, die das Netz durchkämmen und jede gefundene E-Mail-Adresse “ernten”.

Da sich die Aktionen solcher Adressernteprogramme außerhalb der Computer, auf denen sie laufen, nicht von normalen Seitenabrufen unterscheiden lassen, ist die Existenz der Harvester zwar letzten Endes eine Vermutung – zahlreiche Quellen ([1],[2],[3]) gehen jedoch davon aus, dass sie in großer Zahl ihr Unwesen treiben. Anders lässt sich die Spamflut kaum erklären, die über die Mailaccounts schwappt und eine gewaltige Last für den Datenverkehr im Internet darstellt. Auch gekaufte E-Mail-Adressen lassen sich meist auf automatische Suchmaschinen zurückführen.

Dieser Artikel stellt einen Feldversuch vor, der den Zusammenhang zwischen der Veröffentlichung der Mailadresse und dem Spamaufkommen untersucht. Die Mail-Adressen auf der Testseite waren dabei teilweise als normaler mailto:-Link und als blanker Text angegeben, teilweise jedoch durch unterschiedliche Tarnverfahren geschützt.

Stellt die Veröffentlichung der Mail-Adressen im Internet die Ursache für das allmorgendliche Vergnügen dar, unzählige E-Mails auf wenige relevante zu durchsuchen, warum sollte man dann nicht einfach von einer Veröffentlichung absehen? In Deutschland gilt für Internetseiten grundsätzlich eine Impressumspflicht. Paragraph 6 Nr. 2 TDG (Teledienstgesetz) legt fest, dass dabei auch eine “Adresse der elektronischen Post” zu nennen sei. Außerdem möchten viele Seitenautoren, dass ihre Besucher mit ihnen Kontakt aufnehmen können.

Es gibt zahlreiche Tricks, im die Harvester zu überlisten (vgl. [4],[5]), trotzdem aber die E-Mail-Adresse ordnungsgemäß auf der Internetseite vorzuhalten. Hinter den meisten Adressen in Abbildung 1 etwa stecken Verschleierungstaktiken. Das Spektrum reicht von einfachen, mit dem bloßen Auge erkennbaren Verfahren, wie dem Einfügen von Leerzeichen, bis zu in Javascript programmierten Verschlüsselungsverfahren.

Abbildung 1: Tarnverfahren bei E-Mail-Adressen: Der braune Text zeigt den HTML-Code. Listing 5 enthält den Code der Javascript-Funktion     <code srcset=

mailMe() in Zeile 16.” width=”300″ height=”171″ /> Abbildung 1: Tarnverfahren bei E-Mail-Adressen: Der braune Text zeigt den HTML-Code. Listing 5 enthält den Code der Javascript-Funktion mailMe() in Zeile 16.

In die Praxis

Um die Wirksamkeit der verschiedener Tarnverfahren zu testen, hat der Autor dieses Artikels eine – soweit aus dem Whois-Archiv [6] und dem Web-Archiv [7] erkennbar war – noch nie benutzte Domain registriert und eine Seite mit bereits vorgestellten Verfahren zur Tarnung der E-Mail-Adressen eingestellt. Der CSS-Code <div style="visibility:hidden; display:none"> machte die E-Mail-Adressen für menschliche Besucher, die sich zufällig auf die Seite verirrten, unsichtbar.

Damit die Harvester die Testseite fanden, verlinkten viele Webmaster die Seite auf Bitte des Autors. Die Links waren für menschliche Seitenbesucher ebenfalls unsichtbar. Viele Webmaster nutzten offensichtlich den auf der Seite vorgeschlagenen HTML-Code: Suchte man im Februar 2005 nach dem dort angegebenen Linktext in Google, stand die Seite auf Rang 9 von etwa 249.000 Treffern, Ende August 2006 sogar auf Rang 1 von ca. 15.200.000.

Jetzt hieß es warten und die eingehenden Mails zählen. Um Fehler auszuschließen, protokollierte ein Perl-Script jede eingehende Mail. Eine MySQL-Datenbank speicherte die Daten und stellte sicher, dass auch bei mehren gleichzeitigen Schreibzugriffen keine Daten verlorengingen. Da MySQL die jeweils erste Spalte vom Typ Timestamp in einer Datenbanktabelle bei jeder Einfüge- oder Änderungsaktion automatisch mit der aktuellen Zeit überschreibt, musste sich der Skript nicht um das Mitschreiben der Ankunftszeit kümmern.

Harvester im Test

Um einen ersten Eindruck über die Wirksamkeit der Tarnverfahren zu bekommen, installierte der Autor auf einem Windows-Rechner diverse Harvester – fertige Mail-Adressen-Suchmaschinen sind fast nur für dieses Betriebssystem erhältlich – und ließ sie auf die Seite los. Einige der getesteten Harvester fanden sich auch auf der Download-Seite von T-Online oder bei ZDnet. Obwohl zwei Harvester-Hersteller damit warben, dass ihre Produkte auch getarnte E-Mail-Adressen erkennen könnten und dazu auf die Engine des Microsoft’schen Internet Explorers zurückgreifen, waren sie für einen Großteil der getarnten Adressen blind.

Im Wesentlichen ließen sich zwei Muster identifizieren, nach denen die Harvester E-Mail-Adressen herausfiltern: Einige suchen offensichtlich nach der Zeichenfolge mailto: und übernehmen dann alle Zeichen bis zum nächsten Leerzeichen oder Anführungszeichen als E-Mail-Adresse. Andere scheinen E-Mail-Adressen anhand eines regulären Ausdrucks zu finden, wie er unter [4] beschrieben ist. So fanden einige Harvester die verlinkten, aber durch URL-Encoding oder HTML-Entities getarnten Adressen – ähnliche Adressen, die ohne mailto:-Link angegeben waren, jedoch nicht. Allerdings konnten sie die Adressen nicht decodieren.

Die Harvester, die die getarnten Adressen fanden, übersahen die im Klartext angegebenen, aber nicht verlinkten Adressen. Sie suchten also offensichtlich nach der Zeichenfolge mailto:. Der Rest der Harvester scheint dagegen nach einem Muster vom Typ Zeichenfolge@Zeichenfolge zu suchen: Sie fanden keine der getarnten Adressen, aber alle im Klartext angegebenen. Bei den mit mailto: verlinkten oder oder im Klartext lesbaren Adressen war also mit der größten Spamflut zu rechnen.

Tarnen und Täuschen

Das wohl bekannteste Verfahren zum Schutz vor Mail-Harvestern beruht darauf, die E-Mail-Adresse in eine Grafik zu schreiben. Zwar verbirgt dies die Adresse wirksam vor den Harvestern (Abbildung 2, Punkt 3), jedoch auch vor sehbehinderten Seitenbesuchern. Screenreader, die Blinden Zugang zum Internet ermöglichen, verbreiten sich immer stärker; mehr und mehr Webmaster gestalten ihre Seiten so, dass sie sich für diese eigenen. Die Methode sollte also nicht mehr zum Einsatz kommen, zumal es ebenso wirksame Alternativen gibt.

Abbildung 2: Neun Monate standen mehrere E-Mail-Adressen auf einer einer gut verlinkten Internetseite. Mache Adressen waren durch unterschiedliche Verfahren vor Mail-Harvestern geschützt. Das Diagramm zeigt, wie viele Spam-Mails bei den unterschiedlich getarnten Adressen eingingen.

Abbildung 2: Neun Monate standen mehrere E-Mail-Adressen auf einer einer gut verlinkten Internetseite. Mache Adressen waren durch unterschiedliche Verfahren vor Mail-Harvestern geschützt. Das Diagramm zeigt, wie viele Spam-Mails bei den unterschiedlich getarnten Adressen eingingen.

Vielleicht ist Ihnen in URLs schon einmal die Zeichenfolge %20 aufgefallen: Auf diese Weise verschlüsselt der Browser Leerzeichen, die in Internetadressen nicht vorkommen dürfen. URLs, in denen alle Zeichen so (% gefolgt vom hexadezimalen ASCII-Code des Zeichens) dargestellt sind, funktionieren jedoch ebenfalls. Auch in Maillinks (href="mailto:user@example.com") übersetzt der Browser diese Codierung, nicht jedoch bei der Anzeige im Browserfenster. Der Anzeigetexts des Links enthält hier also einen Text wie Mail-Adresse, nicht die Adresse selbst (Listing 1). Allerdings stellt jede vernünftige Webprogrammiersprache (und damit auch jeder nicht allzu einfältige Harvester) eine Funktion zur Verfügung, die diese Codierung rückübersetzt. Das Testergebnis in Abbildung 2 bestätigt die Vermutung, dass das Verfahren zwar wirksam, aber nicht absolut zuverlässig ist: In neun Monaten gingen vier Spam-Mails ein.

Listing 1
<a href="mailto:%75%72%6c%40%65%78%61%6d%70%6c%65%2e%63%6f%6d">Mail-Adresse</a>

HTML enthält außerdem eine Methode, um Sonderzeichen für die Anzeige zu codieren, die so genannten HTML-Entities: Auf ein &-Zeichen folgt dabei der dezimale ASCII-Code des Zeichens, den Abschluss bildet ein Semikolon (Listing 2). Auch diese Codierung sollte sich recht leicht knacken lassen. Der Test bestätigt diese Annahme: Wie die URL-encodierte Adresse zog die HTML-Entities-Variante vier Mails an, in Kombination mit einem nicht encodierten Link immerhin etwa halb so viel wie eine Klartext-Adresse (Abbildung 2, Punkte 5 und 6).

Listing 2
<p>&#104;&#116;&#109;&#108;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;</p>

Sicherer erscheinen Ansätze, die auf Javascript zurückgreifen: Der E-Mail-Link ruft eine Javascript-Funktion auf, die die Adresse zurückgibt. Im Test war eine plumpe Lösung versteckt: Die E-Mail-Adresse stand im Klartext im Javascript-Bereich der Datei (Listing 3). Die Harvester konnten die Adresse problemlos lesen (Abbildung 2, Punkt 6). Überraschenderweise scheiterten jedoch alle Harvester, wenn die selbe Funktion (und damit die E-Mail-Adresse im Klartext) wie in Listing 4 in einer externen Datei versteckt war (Abbildung 2, Punkt 7). Wie lange es noch dauert, bis die Adressediebe es lernen, in ausgelagerten Javascript-Dateien nach Adressen zu suchen, lässt sich natürlich nicht vorhersehen.

Listing 3
var mail="js@example.com";
document.write("<p><a href=\"mailto:"+mail+"\">"+mail+"</a></p>");

Listing 4
<!-- Funktion aus Listing 3 in 'scripts.js' ausgelagert -->
<script language="javascript" type="text/javascript" src="./scripts.js"></script>

Ruft der Link für die Mail-Adresse eine Javascript-Verschlüsselungsfunktion auf, wie in Listing 5, so stellt dies im Moment für die Harvester eine unüberwindliche Barriere dar (Abbildung 2, Punkt 8): Javascript-Code können sie noch nicht interpretieren. Eigentlich wäre es kein Problem, diese Funktionalität einzubauen – immerhin steht die Javascript-Engine aus dem Mozilla-Projekt im Quelltext zur Verfügung. Es ist also nicht garantiert, dass so getarnte Adressen den Harvestern auch in Zukunft verborgen bleiben.

Wie kompliziert der Verschlüsselungsalgorithmus ist, hat übrigens keinen Einfluss auf die Sicherheit: Der Javascript-Code zur Entschlüsselung muss im Quelltext der Seite oder in einer angegebenen externen Datei vorliegen – sonst könnte der Browser die Adresse nicht entschlüsseln und der Seitenbesucher keine Mail senden. Listing 5 wendet daher nur eine einfache XOR-Operation (^ 183) auf die Zahlenwerte aus den Arrays local und domain an (Zeilen 7 und 10), bevor es sie auf Basis der ASCII-Tabelle in Buchstaben wandelt. Wie immer beim Einsatz von Javascript sollte man bedenken: Hat der Seitenbesucher aus Sicherheitgründen Javascript ausgeschaltet, so funktioniert der Link nicht.

Listing 5
<script language="javascript" type="text/javascript">
  var local = new Array (221, 196, 153, 212, 216, 211, 210);
  var domain = new Array (210, 207, 214, 218, 199, 219, 210, 153, 212, 216, 218);
  var local_part = "";
  var domain_part = "";
  for (i=0; i<local.length;
       local_part += String.fromCharCode(local[i] ^ 183), i++) ;
  for (i=0; i<domain.length;
       domain_part += String.fromCharCode(domain[i] ^ 183), i++) ;
  mailadresse = local_part + String.fromCharCode(64) + domain_part;
  function mailMe()
    {
      document.location.href="mailto:"+mailadresse;
    }
  </script>

Eine einfache und dennoch erstaunlich wirksame Methode stellt es dar, Leerzeichen zwischen die Buchstaben der Mail-Adresse einzufügen (u s e r @ e x a m p l e . c o m statt user@example.com). Ein Harvester hat hier kaum eine Chance, da er die Leerzeichen nicht von Wortgrenzen unterscheiden kann.

Besser spät als nie

Die Tabelle “Spammenge nach Entfernen einer Adresse” zeigt, dass es sich lohnt, Adressen mit bereits hohen Spamaufkommen nachträglich zu tarnen: Im Test verschwand im September 2005 eine ungetarnte Adresse (mittlere Spalte) von der Testseite und wurde durch eine neue, ähnlich klingende ersetzt. Die rechte Tabellenspalte zeigt zum Vergleich eine unverändert ohne Tarnung veröffentlichte Mailadresse. Es ist deutlich zu erkennen, wie die Spammenge auf der entfernten Adresse abnimmt und gleichzeitig auf der neuen zunimmt. Nach einem Jahr hat sich das Spammenge bei der nicht länger veröffentlichten Adresse im Vergleich auf etwa 50 Prozent reduziert.

Spammenge nach Entfernen einer Adresse

Monat Entfernte Adresse neue Adresse unveränderte Adresse
07.2005 185   222
08.2005 127   136
09.2005 105   90
10.2005 98   119
11.2005 54 11 121
12.2005 92 16 265
01.2006 130 10 107
02.2006 119 35 125
03.2006 151 218 336
04.2006 187 282 387
05.2006 191 249 391
06.2006 170 202 378
07.2006 236 576 542
08.2006 305 758 620

Fazit

Spammern geht es um Masse, nicht um den Einzelfall. Daher lassen sich die von ihnen eingesetzten Harvester mit relativ geringem Aufwand täuschen: Getarnt veröffentlichte Adressen bleiben ihnen meist verborgen. Einige Tarnverfahren führten im Feldversuch dazu, dass die gesicherten Adressen über Monate spamfrei blieben. Seitenbesucher können den Webmaster dennoch erreichen, die Seite erfüllt außerdem die gesetzliche Impressumspflicht.

Infos

[1] Spammer abwehren: Danny Goodman, “Spam Wars”, Selected Books 2004, ISBN 1-59079-063-4

[2] Spam-Mafia: Brian McWilliams, “Spam Kings”, O’Reilly 2005, ISBN 0-596-00732-9

[3] Spam-Verursacher: Center for Democracy and Technology, “Why am I getting all this spam?” http://www.cdt.org/speech/spam/030319spamreport.pdf

[4] Spamschutz: Tobias Eggendorfer, “Privatadresse”, LinuxUser 05/2004, S. 42, http://www.linux-user.de/ausgabe/2004/05/042-spamsichere-homepage

[5] Harvester abwehren: Tobias Eggendorfer, “No Spam”, S&S 2005, ISBN 978-3-935042-71-0

[6] Whois-Archiv: http://www.whois.sc/whois-history

[7] Web-Archiv: http://web.archive.org

LinuxUser 01/2007 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