Tech

Warum du keine privaten Links auf Facebook teilen solltest

Ein 21-jähriger Hacker hat ein bedenkliches Leck in der Facebook-API gefunden, das Privates öffentlich macht— und Facebook so: ¯\_(ツ)_/¯
16 Juni 2016, 8:58am
Bild: Screenshot Medium / Inti De Ceukelaire

Dass Facebook dich quer durchs ganze Internet trackt, wenn du eingeloggt bist, ist ja schon länger bekannt. Wie aber ein junger Hacker zufällig beim Herumspielen mit der Facebook API herausfand, ist das Netzwerk an der Programmierschnittstelle selbst bedenklich geschwätzig: Alle auf Facebook privat verschickten oder geteilten Links können von fremden Personen im Klartext gelesen werden und häufig Nutzern eindeutig zugeordnet werden. Private Informationen können so ziemlich schnell exponiert werden.

Um die Links lesen zu können, musste sich der Sicherheitsforscher als Entwickler bei Facebook anmelden—eine Registrierung, die uns gerade mal 20 Sekunden gekostet hat. Das Beunruhigendste an der Geschichte: Im Gegensatz zu seinen 1,49 Milliarden Nutzern weiß Facebook bereits davon und hält das Leck nicht für einen Bug sondern für ein Feature. Das soziale Netzwerk will an der Funktion, die das Auslesen der privaten Links ermöglicht, erstmal nichts ändern.

Die Entdeckung des erstaunlichen Datenlecks geht auf den 21-Jährigen Inti De Ceukelaire zurück. Der White-Hat-Hacker sucht aus „Belgien—dem Land, das für sein Bier, seine Schokolade, seine Pommes und seine Terroristen bekannt ist", gezielt nach Schwachstellen in großen Web-Anwendungen wie Facebook.

„Wie kann Facebook das zulassen?"

Um das API-Leck zu verstehen, lohnt es sich, etwas auszuholen und sich die Datenverarbeitung von Facebook genauer anzuschauen: Jedes Objekt bekommt von Facebook eine eindeutige Nummer zugewiesen; auch Links. Wenn du also deiner Freundin einen Link zu einer Abtreibungsklinik schickst und sie ihn öffnet, schnappt sich der Facebook Crawler diesen Link und verwandelt ihn in eine Zahl, die er in der Facebook-Datenbank ablegt. Beim nächsten Öffnen des Messengers muss Facebook dann nur noch schnell die Nummer nachschlagen, um den Link wieder erscheinen zu lassen.

Entwickler können die Nummer eines jeden Objekts auf Facebook über die Programmierschnittstelle, die Facebook API, aufrufen. Aber wenn sie keine Berechtigung haben, die entsprechende Information hinter der Nummer anzuschauen—zum Beispiel das Statusupdate einer fremden Person oder ein Foto von jemandem, mit dem der Entwickler nicht befreundet ist—können auch sie die Information nicht sehen und bekommen eine Fehlermeldung. Der Entwickler wird ausgesperrt.

So weit, so harmlos—zumindest, wenn die Daten hinter den Zahlen auch privat gehalten werden.

„Ich habe ein bisschen mit diesem Feature herumgespielt", erklärte Inti und fütterte die API einfach mit beliebigen Zahlen. Plötzlich tauchte ein Objekt auf, das als Adresse ausgewiesen war. Durch die Eingabe von „url" wollte Inti herausfinden, „ob Facebook so nett wäre, mir auch die Linkadresse anzuzeigen." Es klappte.

Von einer Objekt-Nummer zum Link im Klartext. Bild: Inti De Ceukelaire

Also bat er einen Entwickler-Freund, einen Link auf Facebook mit sich selbst zu teilen, diesen anzuklicken (in diesem Moment legt Facebook den Link in der Datenbank ab) und dann mit Hilfe des Facebook Debugger Tools die Nummer des Links aus der Datenbank zu extrahieren. Mit der Graph API bekam der Freund diese Nummer leicht heraus und schickte sie zurück an Inti.

Der konnte nun den Graph API Explorer einfach mit der Nummer füttern und bekam brav den Link im Klartext geliefert. Sesam öffne dich: Ein paar Sekunden später konnte Inti auf ein Googledoc mit dem Titel „Vertraulich" zugreifen, in dem sich ausgedachte Firmenpasswörter befanden.

Nächster Schritt: Inti wollte nun wissen, ob das auch mit anderen Links fremder Menschen funktioniert. Dafür schrieb er ein Skript, das eine Identifikationsnummer ausprobiert und sie Schritt für Schritt um einen Zähler erhöht, um auf dem Weg alle Links systematisch abzuernten. Auch das war kein Problem.

Die Ergebnisse sprechen für sich: Neben den Links stand praktischerweise häufig noch eine Zahl, die direkt zum Account des Menschen führte, der den Link geteilt hatte. Was du kaufen willst, was du verkaufen willst, woher du kommst, ob du Yolanda oder Bernardo heißt, welche Sprache du sprichst, mit welchem Foto du auf Facebook unterwegs bist, fröhlich vor sich hin leakende Daten aus Facebook-Apps und vor allem Links zu versteckten Seiten oder Google Drive-Dateien, die privat geteilt wurden—all das konnte der Hacker durch ein paar kurze automatisierte Abfragen herausfinden.

Na, wer möchte hier eine Wohnung kaufen?

Das Problem beschränkt sich nicht nur auf den Messenger, sondern gilt auch für Statusupdates, geschlossene Gruppen oder Links, die in der mobilen App geteilt wurden.

Als erfahrener und begeisterter Facebook-Bug Hunter (ein Belohnungsprogramm für White-Hat-Hacker für das Auffinden und Melden von Sicherheitslücken) schrieb Inti natürlich gleich offizielle Stellen an, um auf die Schwachstelle detailliert aufmerksam zu machen.

Facebooks Antwort ist ein verbalisiertes ¯\_(ツ)_/¯: „Danke für deinen Bericht! In diesem Fall glauben wir aber, dass du öffentlich dokumentiertes und beabsichtigtes Verhalten gemeldet hast". Dazu bügelte die Firma den aufmerksamen Hacker noch mit ein paar Links aus der Entwickler-FAQ elegant ab.

„Ich war verwirrt: Wie kann Facebook das zulassen? Zwar kann man keine Links für einen spezifischen User abgreifen, aber dafür einfach den ganzen Tag Ergebnisse durchrattern lassen, bis man was Interessantes findet.", schreibt Inti auf Medium. „Ich konnte in zehn Minuten 70 Links finden".

Allerdings wäre es schwierig, über einen längeren Zeitraum automatisiert Millionen solcher Links abzugreifen, ohne dass Facebook etwas davon mitbekommen würde—das Netzwerk würde einem Entwickler in diesem Fall wohl schnell die notwendigen Berechtigungen entziehen. Ein unbemerkter Massen-Exploit dieser Funktion scheint also unwahrscheinlich.

Private Informationen können durch die Lücke trotzdem ungewollt an die Öffentlichkeit gelangen. „Ich finde, es ist unser Recht, zu wissen, wer die Daten sehen kann, die wir teilen", verteidigt er seine Entscheidung, mit der Lücke trotz Facebooks Abwinken an die Öffentlichkeit zu gehen.

„Werden die Links also über die API getrackt? Ich habe keine Ahnung, aber zumindest wissen wir jetzt, dass es so sein könnte." Solange Facebook sich im höflichen Ignorieren übt, sollten wir zumindest davon ausgehen.