Yahoo (vermeintlich im) Iran.

Als ich gerade im Webbrowser die Website von Yahoo Finances besuchen wollte, musste ich staunen. Zeigte doch tatsächlich das Plugin „Flagfox“, das dem Firefox die nützliche Funktion des automatischen IP-Lookups beibringt, plötzlich eine recht seltene Flagge im IP-Adressraum an. Die Vermutung bestätigte sich – der Iran. Man achte in diesem Screenshot auf die Infobox unterhalb der Suchbox, die anzeigt, dass für den Hostnamen „de.finance.yahoo.com“ die IP-Adresse 188.125.65.211 aufgelöst wurde (was definitiv stimmt und mit nslookup nachprüfbar ist) und diese IP-Adresse offenkundig mit dem Ländercode für den Iran registriert ist:

Yahoo und Iran – das passt ungefähr so gut zusammen wie Audi und der Planet Mars, nämlich gar nicht. Allein dieser Anachronismus, dass mit dieser obigen Auskunft Yahoo irgendetwas im Iran hosten könnte, weckte meine netzwerkdetektivische Leidenschaft.

Erste Auskunftei in Sachen IP-Adressen sind die RIR, die Regional Internet Registries. Diese international tätigen Vergabestellen sind dafür zuständig, in ihrer jeweiligen Region die Zuteilung von IP-Adressen an Internet Service Provider sicherzustellen. Im Falle der Adresspräfix 188 ist hier das RIPE zuständig, also die RIR, die für Europa und Vorderasien zuständig ist.

In Sachen Auskunft ist es im Internet üblich, die Registrierungsinformationen des IP-Adressraumes öffentlich zu dokumentieren und über ein so genanntes WhoIs durchsuchbar zu halten. Internet Service Provider wiederum, die vom RIPE IP-Adressräume zugeteilt bekommen haben, sind vertraglich verpflichtet, diese Registrierungsinformationen für weiterdelegierte Adressräume zeitnah in die RIPE-Datenbank einzupflegen und aktuell zu halten.

Über das WhoIs des RIPE ist also problemlos eine Recherche für die obige IP-Adresse möglich, was folgendes Ergebnis lieferte:

inetnum:        188.125.64.0 - 188.125.71.255
netname:        IR-YAHOO
descr:          Yahoo! Europe
country:        IR
admin-c:        YEU-RIPE
tech-c:         YEU-RIPE
status:         ASSIGNED PA
mnt-by:         YAHOO-MNT
source:         RIPE #Filtered

role:           Yahoo Europe Operations Department
address:        Yahoo Europe Operations
address:        125 Shaftesbury Avenue
address:        London
address:        WC2H 8AD
remarks:        trouble:      uk-abuse@cc.yahoo-inc.com
admin-c:        NA1231-RIPE
tech-c:         SCY3-RIPE
tech-c:         NA1231-RIPE
tech-c:         IG1154-RIPE
tech-c:         DR2790-RIPE
tech-c:         CJO3-RIPE
nic-hdl:        YEU-RIPE
mnt-by:         YAHOO-MNT
source:         RIPE #Filtered
abuse-mailbox:  uk-abuse@cc.yahoo-inc.com

Der obere Block der Auskunft ist das so genannte „inetnum“-Objekt, das enthält die grundlegende Information darüber, in welchen IP-Adressblock die IP-Adresse gehört. Die IP-Adresse 188.125.65.211 gehört also in einen Adressblock, der von 188.125.64.0 bis 188.125.71.255 reicht. Spannend dabei ist der Ländercode, der im Feld „country“ angegeben ist, das ist tatsächlich der Code „IR“, der in der ISO-Ländertabelle für den Iran steht. Dass dieser Adressblock tatsächlich zu Yahoo gehört (genau genommen zu Yahoo Europe), wird über das Feld „admin-c“ angezeigt. Die Abkürzung „YEU-RIPE“ ist wiederum ein Verweis auf ein „role“-Objekt, das Informationen über den Besitzer erhält. Die Auskunft über „YEU-RIPE“ ist der untere Block der obigen Auskunft. Es handelt sich also hier mit maximaler Sicherheit tatsächlich um Yahoo Europe, auf jeden Fall aber über eine offizielle Yahoo-Einrichtung.

Zuerst dachte ich an einen Fehler in der Registrierung. Vielleicht ist dem zuständigen Systemadministrator, der die obigen Informationen in die RIPE-Datenbank eingetragen hat, ein Fehler bei der Eingabe des Ländercodes unterlaufen und das „IR“ steht fälschlicherweise dort. Tatsächlich kann nämlich der Verwalter eines IP-Adressblocks diese Länderinformation selbst eintragen.

Dass es dann doch kein Fehler sein kann, merkte ich schnell an der zweiten Zeile, dem „netname“-Feld. Hier gibt nämlich der Verwalter des IP-Blocks einen frei wählbaren Netznamen an, der rein zur internen Dokumentation dient. Dort findet sich explizit der Eintrag „IR-YAHOO“. Es ist sehr unwahrscheinlich, dass der Autor dieses Eintrages einen falschen Ländercode einträgt und diesen Fehler dann auch nochmal im Netznamen begeht.

Also, der Ländercode „IR“ ist für diesen Netzwerkblock offensichtlich gewollt und beabsichtigt. Warum das so ist, lässt sich erklären, wenn man näher auf die Eigenheiten dieser Ländercodierung eingeht. Denn tatsächlich ist dieser Ländercode, den zwingend jeder Empfänger von IP-Adressblöcken in der Netzwerkdokumentation setzen muss, nicht einfach nur informell, sondern elementar – mit dieser Ländercodierung arbeiten quasi alle Dienste, die eine Recherche von IP-Adressen nach Ländern ermöglichen, so zum Beispiel Statistikdienste wie Google Analytics oder Piwik oder aber auch Dienste, die IP-Adressen nach Ländern sperren müssen.

Und da sind wir dann beim Iran und hier bei einem vermutlich genau umgekehrten Fall. Damit Yahoo seine Dienste in den Iran durchbekommt und seine Netze nicht einfach so gesperrt bekommt, hat Yahoo vermutlich den obigen IP-Adressblock explizit für die Nutzung im Iran vorgesehen und das obige Netz entsprechend mit dem Ländercode „IR“ versehen. Hier will sich Yahoo also offensichtlich in irgendeiner Form fügen und es den iranischen Zensoren, die da mit ziemlicher Sicherheit eine mehr oder weniger umfangreiche Sperrliste pflegen, möglicht unbürokratisch einfach machen, Yahoo nicht zu übersehen und „versehentlich“ zu sperren.

Und dabei vergessen die Jungs von Yahoo Europe eine Sache: Was sie da machen, ist genau genommen nicht erlaubt. Der Ländercode für einen Netzblock ist nicht dazu da, anzugeben, wo vermutlich die Besucher sitzen, die auf Dienste zugreifen, die in diesem Netzblock laufen könnten, sondern er ist dazu da, kennzuzeichnen, wo dieser Netzblock tatsächlich eingesetzt wird, also der Server physikalisch steht. Wenn ich ein traceroute auf die IP-Adresse 188.125.65.211 mache, löst sich das folgendermaßen auf und da ist relativ wenig „Iran“ zu sehen:

tracert 188.125.65.211

Routenverfolgung zu proxy1.stage.finance.vip.ird.yahoo.net
[188.125.65.211] über maximal 30 Abschnitte:

  1. besimox [192.168.124.1]
  2. 217.0.118.47
  3. 87.186.241.42
  4. l-eb2-i.L.DE.NET.DTAG.DE [62.154.89.46]
  5. 217.243.216.202
  6. vlan60.csw1.Frankfurt1.Level3.net [4.69.154.62]
  7. ae-62-62.ebr2.Frankfurt1.Level3.net [4.69.140.17]
  8. ae-21-21.ebr2.London1.Level3.net [4.69.148.185]
  9. vlan104.ebr1.London1.Level3.net [4.69.143.97]
 10. ae-5-5.car1.Dublin1.Level3.net [4.69.136.89]
 11. YAHOO-INC.car1.Dublin.Level3.net [212.73.251.2]
 12. ae-1.msr2.ird.yahoo.com [66.196.67.233]
 13. te-8-4.bas-b1.ird.yahoo.com [87.248.101.107]
 14. proxy1.stage.finance.vip.ird.yahoo.net [188.125.65.211]

Ablaufverfolgung beendet.

Das ist also der Weg von meinem Rechner („besimox“) bis zum Zielserver, ingesamt also 14 Knoten im Internet. Interessant hierbei sind die Knoten ab dem 8. Knoten, die der Provider „Level3“ schön nach der Örtlichkeit, in die der Knoten steht, benannt hat. Der Weg geht also von Frankfurt, nach London und dort nach Dublin, also nach Irland. Was auch so stimmt, denn Yahoo hostet seine Dienste in Europa (unter anderem) in Irland. Und nicht Iran.

Schwache Passwörter beim RIPE.

Im (gedruckten) SPIEGEL 19/2009 findet sich auf Seite 126 folgender Artikel:

Internet
Fahrlässiger Umgang mit Passwörtern

Selbst große Konzerne schützen ihre Websites mit allzu simplen Passwörtern, die sich sogar von Amateuren in Minuten knacken lassen. Dem SPIEGEL liegt eine vertrauliche Liste mit Hunderten von Firmen-Passwörtern vor, die Sebastian Schreiber von der Sicherheitsfirma Syss mit ‘sehr wenig Aufwand’ aus einer Internet-Datenbank des Adressverzeichnisses namens Ripe gefischt hat. Unter den Firmen befinden sich ein Nahrungsmittelriese, eine Bank eine Wirtschaftsberatungsagentur, ein großer Webdienst-Anbieter. Sie alle hätten eine Menge zu verlieren durch einen Hackerangriff. ‘Es wäre ein Leichtes, den Webtraffic dieser firmen illegal abzuwürgen, umzuleiten oder E-Mails heimlich mitzulesen’, sagt Schreiber. Sichere Passwörter sollten aus über einem Dutzend Buchstaben, Zahlen und Sonderzeichen bestehen. Stattdessen wimmelt es in der Ripe-Datenbank von Passwörtern wie ‘adventure’, ‘TestTest’, ‘4664’. Eine große Versicherung vertraut auf ‘beruhigt’, ein Institut für Ernährungssicherheit auf ‘Karotte’, ein Flughafen auf ‘purgatory’ – englisch für Fegefeuer. Doch viele Ertappte reagierten nicht einmal, als sie auf die Nachlässigkeit hingewiesen wurden; und auch die Verwaltung der Ripe-Datenbank hat es trotz mehrerer Nachfragen monatelang versäumt, von den Nutzern bessere Passwörter einzufordern.

Was ist hier los? Sicherheitsloch? Zumindest teilweise, aber fangen wir von vorn an:

Das RIPE ist eine so genannte Regional Internet Registry, die für die Zuteilung und Verwaltung von IP-Netzparametern für die europäische Region zuständig ist. Dazu gehören IP-Adressen, aber auch Routing-Parametern. Traditionell ist es so, dass diese Informationen frei zugänglich sind, das Editieren der dort verzeichneten Einträge jedoch gesichert sind. Dazu gibt es zwei Möglichkeiten: Eine Sicherung mit einem Passwort und einem PGP-Key. Letzteres ist ein absolut sicheres Verfahren, während ersteres deutlich praktischer ist.

Damit der Spaß mit dem Herauslesen von Passwörtern nicht ganz so einfach ist, müssen zu hinterlegende Passwörter einmalverschlüsselt werden. Das bedeutet, dass der Originator des Eintrages sein Passwort nicht in Klartext hinterlegt, sondern zunächst mit einem Einwegverschlüsselungsverfahren bearbeitet – im Falle der RIPE-Datenbank wird das Verfahren MD5 eingesetzt – und dieses Ergebnis dann hinterlegt. Die Einwegverschlüsselung stellt sicher, dass die verschlüsselte Nachricht nicht mehr dechiffriert werden kann.

Der Ansatz ist nun, dass man das Passwort zwar nicht mehr dechiffrieren kann, es aber weiterhin durch einen anderen Ansatz zum Passwortknacken verwundbar ist, nämlich durch Wörterbuchattacken. Wörterbuchattacken basieren darauf, dass man eine ganze Liste von vordefinierten Wörtern schlicht einfach mal durchprobiert, in der Hoffnung, dass jemand ein einfaches Passwort verwendet, das just in dieser Wörterbuchliste vorkommt. Im Falle von einem einwegverschlüsselten Passwort muss lediglich sichergestellt werden, dass auch die Wörterbuchliste die Wörter entsprechend mit dem Einwegverschlüsselungsverfahren chiffriert sind.

Und das dürfte dann auch der Ansatz gewesen sein. Da die RIPE-Datenbank frei zugänglich ist, hat ein findiger Mensch einfach eine Wörterbuchliste genommen, die dort vorkommenden Wörter nach dem gleichen Verfahren einwegverschlüsselt, wie es das RIPE tut und dann einfach nach den Chiffraten in der RIPE-Datenbank gesucht. Äußerst einfach und leider offensichtlich auch hin und wieder wirksam.

Immerhin hat das RIPE reagiert und die Suche nach einwegverschlüsselten Passwörtern insofern erschwert, dass eine Suche nach Sonderzeichen nicht möglich ist, Sonderzeichen aber in den Chiffraten zwingend vorkommen. Sinnvollerweise kann man aber nach wie vor immer nur empfehlen, gänzlich auf die Passwortautorisierung zu verzichten und die PGP-Autorisierung einzusetzen oder zumindest ein hinreichend komplexes und langes Kennwort zu nutzen.