Phishback – die Rache der Fische

Jeder kennt diese Mails: Ein freundlicher Kundenberater meiner Bank schickt mir eine Mail in gebrochenem Deutsch, dass mein Account nix mehr Funktion und ich mich loggen ein soll mit meinen Zugangsdaten und 5 unbenutzten TANs. In der Mail ist ein Link, der mich auf eine Webseite weiterleitet. Die Webseite sieht der offiziellen Webseite meines vertrauten Kreditinstitutes zum Verwechseln ähnlich – nur der Blick auf den Domainnamen in der Browser-Leiste sollte mich stutzig machen: http://deutschebank.baldbistdupleite.ru

Phishing Mails sind weder neu noch besonders originell. Zwei Dinge wundern mich allerdings immer wieder aufs Neue: Warum besuchen die pickeligen Absender dahinter nicht endlich mal einen Grundkurs in Deutsch. Und zweitens: warum sind diese Art von Mails immer noch im Umlauf? Der letzte Punkt ist der eigentlich erschreckende – denn auch hier gilt: Was Erfolg hat, bleibt auf dem Markt. Und der Erfolg dieser Mails spricht nicht unbedingt für die Intelligenz seiner Adressaten.

„Ihr Konto wurde gesperrt!“

Heute erreichte mein Postfach mal wieder so ein digitaler Angelhaken. Dieses Mal bemühte sich jemand, die Zugangsdaten zu einem der größten deutschen Web-Hosts zu sammeln. Das Formular war einfach gestrickt: Zwei Felder für Username und Passwort und ein Senden-Button. Anhand der Domain konnten man sehen, dass die Seite bei einem kostenlosen Anbieter gehostet war.

Mit einem Netzwerk-Tool war auch die weitere Reise meiner theoretischen Zugangs-Daten zu verfolgen: Username und Passwort wanderten fröhlich und ungeschützt an einen zweiten Host, der sich auf das Speichern und Auswerten von Umfragen spezialisiert hat. Hier wurden also die Beute gesammelt um sie später zu Tisch zu tragen. Insgesamt also ein eher klassisches Konstrukt um Spuren zu verwischen.

Echte Handarbeit

Da bekannt ist, dass der betroffene Host über einige recht gute Absicherungen gegen Brute-Force-Attacken verfügt, ist abzusehen, dass der Hacker hier manuell Hand anlegen muss. Vermutlich wird er warten, bis ausreichend viele Benutzer / Passwort-Kombinationen eingegangen sind. Dann wird er sich in ein Internet-Café oder in ein Starbucks-WLAN begeben und mit lüsternem Grinsen beginnen, sich die ftp-Zugangsdaten und Bankverbindungen aus dem Loginbereich der Kunden anzueignen.

Phishback

Genau hier kam mir eine Idee: Wenn es schon sehr unwahrscheinlich ist, den Kerl juristisch an den Pranger zu bekommen, dann wäre es doch zumindest schön, ihm möglichst viel Arbeit zu machen. Das passende Script war schneller geschrieben als dieser Blog-Eintrag und umfasste genau 17 Zeilen Code. Einziges Ziel: Die Datenbank des Phishers mit Müll zu füllen, ganz nach dem Prinzip: Je größer der Heuhaufen ist, desto schwerer findet man die Nadeln.

function humanize() {…}

Aber reiner Müll wäre zu leicht zu erkennen und filtern gewesen. Das Script macht es etwas geschickter: Es generiert als Benutzername nicht nur zufällige Kundennummern mit der korrekten Anzahl an Ziffern, sondern in zufälligem Wechsel auch „echt“ klingende Domain-Namen mit realen Top-Level-Domains, weil der Host (eigentlich nicht sehr klug) beide Möglichkeiten für den Login akzeptiert. Auch die generierten Passwörter sind keine wahllose Aneinanderreihungen von Buchstaben und Ziffern – sie bestehen aus lesbaren Wortteilen mit Zahlen davor oder dahinter. Alles wirkt so „menschlich“ wie nur möglich – und so „echt“ wie die Phishing-Seite selbst.

Der endgültige Abschied von der Mülltrennung

Was bleibt dem Hacker noch, um die unechten Einträge von echten zu unterscheiden? Zum einen der Zeitraum, in denen die Daten vom Formular kommen. Würde das Script auf einen Schlag mehrere Tausend Einträge machen, könnte man einfach Zeit/Datum vergleichen und verdächtige Einträge leicht entfernen. Also macht es das Script immer in schönen, kleinen Intervallen: Zwischen jedem Eintrag ist eine zufällige, längere oder kürzere Pause. Dann bleibt da natürlich noch die IP-Nummer: Er könnte einfach alle Einträge löschen, die von der gleichen IP kamen. Nur – Pech für den Hacker – bietet der Host für die Formularauswertung diese Option nicht an.

Selbst wenn der Hacker es schafft, eine Routine zu entwickeln, die seine Datenbank von den „Fakes“ bereinigt, so wäre er doch einige Stunden bis Tage mit dem Code für dieses Programm beschäftigt. Das dürfte zumindest seine Kaffekosten im Starbucks ordentlich nach oben treiben.

Bing! Sie haben 32.163.271 neue Mails!

Das Script läuft jetzt seit etwa 4 Stunden von 6 Servern gleichzeitig und hat schon knapp 60.000 Einträge generiert. Besonders schön finde ich die Vorstellung, dass der Hacker wahrscheinlich die Option gewählt hat, die Formulardaten in Kopie auf ein anonymes E-Mail-Konto zu bekommen. Mal schauen, vielleicht lasse ich es noch über das Wochenende laufen.

Auch wenn wir das Resultat des Phishbacks nie erfahren werden: Die beglückende Vorstellung, welche wunderbaren Variationen animalischer Laute unserem lieben Mr. Phisher entweichen werden, sobald er seine Netze aus dem Netz einholt, finde ich äußerst befriedigend.

Warten wir es ab. Ich lasse die Fenster heute offen – vielleicht hört man es bis Wiesbaden.

Wäre es nicht schön…

… wenn mal jemand ein ähnliches Script auf einer Webseite zur Verfügung stellen könnte – aber so weit ausgeklügelt, das man einfach den Link aus der Phishing-Mail in ein Formular eingibt und „Phishback“ dann automatisch die Formularfelder erkennt, die das Phishing-Formular verwendet – um es dann systematisch zuzumüllen? Endlich müsste man nicht mehr tatenlos zusehen und hoffen, dass die mediale Allgemeinbildung der User weit genug fortgeschritten ist, um sich nicht von dieser Art Mails ködern zu lassen.

Wenn jemand Lust hat: Wir gestalten gerne das Interface dazu und die Kampagne 🙂

Nachtrag: Klasse – hier ist die Webseite dazu: phishfighting.com

Spam-Rekord

Wenn es ein Guiness World Record für Spam-Mails gäbe – hier wäre ein potentieller Kandidat. Die meisten Spam-Werte lagen bei den Mails an uns zwischen 3 und 10 Punkten – diese Mail hatte es zu 37.1 Punkten geschafft. Respekt!

X-ACL-Warn: Message does not conform to RFC2822 standard
X-HE-Spam-Level: +++++++++++++++++++++++++++++++++++++
X-HE-Spam-Score: 37.1
X-HE-Spam-Report: Content analysis details:   (37.1 points)
 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.5 RCVD_IN_PBL            RBL: Received via a relay in Spamhaus PBL
                            [49.202.68.127 listed in zen.spamhaus.org]
 0.9 URIBL_RHS_DOB          Contains an URI of a new domain (Day Old Bread)
                            [URIs: upforrolex.com]
 5.0 URIBL_AB_SURBL         Contains an URL listed in the AB SURBL blocklist
                            [URIs: upforrolex.com]
 5.0 URIBL_WS_SURBL         Contains an URL listed in the WS SURBL blocklist
                            [URIs: upforrolex.com]
 2.9 URIBL_JP_SURBL         Contains an URL listed in the JP SURBL blocklist
                            [URIs: upforrolex.com]
 2.5 URIBL_SC_SURBL         Contains an URL listed in the SC SURBL blocklist
                            [URIs: upforrolex.com]
 0.0 MISSING_DATE           Missing Date: header
 1.5 HTML_IMAGE_ONLY_28     BODY: HTML: images with 2400-2800 bytes of words
 2.5 HE_LOGINHASH           BODY: Hosteurope says its spam (Found in Spamtrap)
 0.1 HTML_MESSAGE           BODY: HTML included in message
 1.5 GENERIC_IXHASH         BODY: iXhash found in ix.dnsbl.manitu.net
 0.7 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 1.8 MIME_QP_LONG_LINE      RAW: Quoted-printable line longer than 76 chars
 0.5 HE_CPSD                HE Phishing & Scam detected
 2.5 URIBL_SBL              Contains an URL listed in the SBL blocklist
                            [URIs: upforrolex.com]
 0.0 RDNS_NONE              Delivered to trusted network by a host with no rDNS
 1.7 SARE_SPEC_ROLEX        Rolex watch spam
 7.5 HE_CPSD_SANE           SPAM found by SaneSecurity signatures
X-SPAM-FLAG: Yes

Bin ich, wenn ich nicht bei Google bin?

Heute morgen erreichte uns die Mail eines irritierten Kunden. Betreff der Mail: Stimmt das? Im Anhang weitergeleitet: Die „Analyse“ einer Firma aus Hamburg, die sich auf Suchmaschinen-Optimierung spezialisiert hat und im Zuge einer „routinemäßigen Untersuchung“ leider mit Schrecken feststellen müsste, dass das Ranking der Webseite unseres Kunden auf Platz 157 von 158 sei. Ich kannte diese Firma inzwischen, denn es war bereits die dritte Mail dieser Art und der gleichen Firma, die ich in den letzten beiden Tagen bekommen hatte. Alle drei Mails kamen von unterschiedlichen Kunden, die von der gleichen Firma im Zuge eines Massenmailings angeschrieben wurden. Nachdem ich zum dritten Mal zu einer freundlichen Erklärung des Themas ansetzte, dachte ich: Zeit für einen kleinen Beitrag in unserem Labor!

Die Aufmachung des Ganzen wirkte seriös und es gab einen Link zu einem Login-Bereich, bei dem man detaillierte Einblicke in die Auswertung bekam. Immer offen für Kritik (und neue Erkenntnisse), loggte ich mich ein und wurde von einer langen Liste mit roten Ampeln konfrontiert, die in etwa sagten: Sie hätten besser Schreiner oder Schuster werden sollen als Webseiten zu backen.

Als sich der erste Schreck gesetzt hatte, schaute ich etwas genauer in die Zahlen.

bildschirmfoto-2011-08-10-um-210349

Das erste war ein auffälliger roter Balken in der Mitte mit der analysierten Domain unseres Kunden. Moment: War das wirklich die Domain unseres Kunden? Nein – die Domain gab es gar nicht, es handelte sich um eine URL, die nicht reserviert war und nur ähnlich klingt. Ein spannendes Thema und eine hohe Kunstfertigkeit, die ich noch nicht beherrsche: Wie analysiert man das Ranking einer Domain, die es gar nicht gibt? Aber, dachte ich, Auge zudrücken, Fehler passieren nicht nur Menschen, sondern auch Suchmaschinen-Optimierern.

Zweiter Blickfang: Der Panik-Bereich ganz oben. Hier war sie, die graue Liste des Grauens. Die gestreifte Verdamnis. Der tabellarisierte Albtraum. Höchst anschaulich und ohne jedes Mitleid wurde vor Augen geführt: Du existierst eigentlich gar nicht auf dieser Welt. Du bist unsichtbar während alle anderen fröhlich Deinen potentiellen Käufern zuwinken. Doch der Prozess selbstnihilistischer Erkenntnis wurde von einer Irritation getrübt: Unser Kunde verkauft doch Räder – warum ist ein Hersteller von Sport-Brillen laut Analyse auf Platz 1? Schnell griff ich zu Google und gab mal den Suchbegriff „Fahrräder“ ein. Das Ergebnis verwirrte mich noch mehr: Die Liste der Suchergebnisse bei Google hatte nicht im Entferntesten etwas mit der Ranking-Analyse dieser SEO-Firma gemeinsam. Nicht eine einzige Überschneidungen!

Natürlich war der erste Gedanke: Vielleicht habe ich die falschen Suchbegriffe eingegeben. Also versuchte ich es mit verschiedenen Varianten, Singular-Formen, mit und ohne Bindestriche, eben dem üblichen Repertoire. Ohne Erfolg. Und auch die Webseite der SEO-Firma selbst beantwortete die eigentlich erste und wichtigste Frage nicht, die wir unseren Kunden in Zusammenhang mit Suchmaschinen-Optimierung stellen: Nach welchen Begriffen soll die Seite denn überhaupt gefunden werden? Ein Urteil über das Ranking zu fällen ohne die Suchbegriffe zu nennen ist schlau – zumindest, wenn man Menschen verunsichern möchte um neue Kunden zu gewinnen.

Erst als ich weiter nach unten scrollte und mir im Detail anschaute, nach welche Kriterien denn die Seite als „schlecht“ befunden wurde, dämmerte mir, wie das Urteil zustande kam. Eine lange Liste führte mehr oder weniger relevante Kriterien auf, nach denen die Webseite analysiert wurde. Viele Klassiker wie „Enthält Keywords“, „Es fehlen Hinweise für Suchmaschinen“ – aber auch einige eher Unbekannte. Das Ganze legte die Vermutung nahe, dass das Ranking auf einem eigens von der Hamburger Firma entwickelten Beurteilungs-System basiert. Das erklärte auch die Kluft zwischen dem Ranking dieser Firma und der „realen Welt“ – also Google. Richtig war zwar, dass einige der gelisteten Punkte zu einer besseren Auffindbarkeit führen können. Ob sie das dann aber auch wirklich tun, kann jeder selbst überprüfen – wenn er die Suchbegriffe kennt. Und zumindest hier wurde mir der Bezug zur Realität nicht ersichtlich.

Das Geschäftsmodell fand ich wiederum interessant: Ich bezahle eine Firma dafür, dass ich auf der Liste, die sie nach eigenen Kriterien erstellt hat, ein besseres Ranking bekomme. Eigentlich doch die beste Art, seinen Kunden Erfolg garantieren zu können. Nur eines ist mir bis jetzt nicht ganz klar: Nehmen wir mal den gar nicht so unwahrscheinlichen Fall an, dass die Rundumschlag-Akquise dieser Firma erfolgreich ist und viele unterschiedliche Kunden des gleichen Segments ihr Ranking auf der privaten Ranking-Liste verbessern möchten: Nach welchen Kriterien entscheidet die Firma dann, wer oben ist? Vielleicht einfach danach, welcher Kunde sich gerade eingeloggt hat.

Aber zurück zum Thema. Wenn schon ein eigenes Bewertungssystem herangezogen wird, lohnt die Frage: Wie relevant sind die Kriterien denn im Detail? „Keine Keywords“ steht da ganz oben. Komisch, wo doch Keywords bei Google bekanntlich keine Rolle mehr spielen. „Es fehlt ein Browser-Icon“: Verdammt – auf was Suchmaschinen heute alles Wert legen. „Ihre Startseite wird nicht in Google gefunden“ – Oh nein, die Leute verpassen unsere nicht vorhandenen Intro-Animationen! Schön fand ich auch „Ihre Domain wird nicht bei Twitter gefunden“.

Das könnte jetzt das Ende einer kleinen Geschichte sein, aber sie hat noch keine wirkliche Pointe. Also dachte ich: Wenn doch diese Firma sich offensichtlich zum Ziel gesetzt hat, unseren Kunden der Reihe nach zu verunsichern und zu sagen, was an ihren Webseiten alles falsch ist: Was hat denn diese Firma aus Hamburg bei Ihrer eigenen Webseite alles richtig gemacht?

bildschirmfoto-2011-08-10-um-212808

Die erste Frage stelle ich Google. Sollte jemand, der sich für einen Experten der Suchmaschinenoptimierung ausgibt nicht auch bei einer Suchmaschine ganz oben stehen? Das wäre ja sonst wie der glatzköpfige Haarwuchsmittel-Verkäufer. Nach der zehnten Seite immer noch keine Spur. Und nur falls Sie fragen: Natürlich verrate ich nicht, unter welchen Begriffen ich gesucht habe. Da ich zu faul bin, die anderen Suchmaschinen zu testen nehme ich mir ein Tool zur Hand. Ein Klick vergleicht das Ranking bei den 5 großen Suchmaschinen. Puh, sieht das ernüchternd aus. Nein, mein Gefühl bestätigt sich: Diese Firma aus Hamburg braucht dringend eine ausführliche Beratung in Sachen SEO. Und wie es der Zufall will, hätte ich da auch schon eine Liste mit Kriterien, nach denen ich die Seite analysieren kann. Also: Gehen wir sie mal durch…

„Keywords“: Ja, gibt es. Aber was sind das denn für Begriffe? Genau 9 Stück finde ich im Quelltext der Homepage – die Hälfte davon vollkommen austauschbar und damit irrelevant („Hamburg“, „Agentur“, „Suchmaschinen“). Besonders schön finde ich das letzte Keyword. „such“ steht da am Ende. Ich stelle mir gerade den Internet-Benutzer vor, der verzweifelt nach einer Firma sucht, die das Ranking seiner Webseite verbessern kann. Klar, dass er als erstes bei Google „such“ eingebe. Ich such ja schliesslich, oder?

bildschirmfoto-2011-08-10-um-211154

„Description“: Ja, gibt es. Wir sind eine Google AdWords Agentur mit Sitz in Hamburg und betreuen nationale und internationale Kunden. Auch schön – aber ich dachte es geht um Suchmaschinen-Optimierung. Und: Muss ich das mit den internationalen Kunden jetzt wirklich wissen? Vielleicht wäre noch der Zusatz „Bekannt aus der TV-Werbung“ dahinter schön gewesen.

„Es fehlen Hinweise für Suchmaschinen“, „Es fehlt ein Sprachhinweis“, „Keine robots.txt vorhanden“ – drei Mal rotes Licht, Leute! So kann das ja nichts werden mit Eurem Ranking.

Immer wenn man denkt: Schlimmer kann es eigentlich nicht kommen, kommt es dann doch. Der Albtraum ist materialisiert in einer blauen Kugel neben der URL-Angabe: Statt eines Browser-Icons grinst mich hier nur das Default-Symbol von Safari an. Wie soll man denn nur auf dieser Welt ohne Browser-Icon zu Ranking-Ruhm gelangen?

Endlich! Die Weltformel! Per Brute-Force.

[SWF]http://labor.99grad.de/wp-content/uploads/2009/04/formulator.swf,450,120[/SWF]

Spätestens der legendäre Schach-Kampf zwischen Deep Blue und Kasparow hat es uns bewiesen: Nicht künstliche Intelligenz, sondern die Fähigkeit innerhalb kürzester Zeit unendlich viele Varianten eines Spielzuges zu generieren und auf ihre Gewinn-Wahrscheinlichkeiten miteinander zu vergleichen sind die eigentlichen Stärken eines Computers. 

Stellen wir uns jetzt ein Computer-Programm vor, das praktisch überhaupt keine Intelligenz besitzt und den ganzen Tag mit nichts anderem beschäftigt ist, als nach dem Chaos-Prinzip unendlich viele Variationen von mehr oder weniger sinnvollen Formeln zu erzeugen. Erst im nächsten Schritt prüft das Programm, ob die Formeln nicht zufällig genau die langersehnte mathematische Antwort auf eine naturwissenschaftliche Frage ist.

Wetten: Ohne auch nur einen müden Gedanken zu wälzen hätten wir durch diese Brute-Force-Methode innerhalb von wenigen Tagen die gesamten altgriechischen Trigonometrie-Weisheiten auf dem Schirm. Und – Hand aufs Herz und Genialität beiseite – rein formal betrachtet ist auch Einsteins e=mc2 nicht unbedingt eine für den Zufallsgenerator unerreichbare Blüte der kreativen Formschöpfung.

Abgesehen davon hätte das Ganze auch einen gewissen Sympathiebonus – die Suche nach Antworten ohne die Frage zu kennen ist ja auch beim Homo Sapiens ein nicht unbekanntes Phänomen!