Aktuelle Sicherheit von Flattr

25.10.2010 yahe legacy security thoughts

Nachdem ich vor einiger Zeit einmal eine Schwachstelle bei Flattr aufgedeckt hatte, hat mich heute einmal interessiert, wie die Flattr-Links nun inzwischen abgesichert sind. Nach ein bisschen Graben habe ich nun die Antwort gefunden.

Erst einmal noch grundsätzlich dazu, wie Flattr überhaupt funktioniert: Damit ein "Thing" geflattred werden kann, muss man eingeloggt sein, Geld auf sein Flattr-Konto eingezahlt haben und einen Flattr-Button drücken. Dieser Flattr-Button ist grob gesehen nichts anderes als ein Link mit einer eindeutigen ID. Früher war es so, dass man einen eingeloggten Nutzer nur dazu bringen musste, diese URL mit dieser eindeutigen ID aufzurufen, um einen Flattr-Button-Click zu simulieren.

Inzwischen sieht das ganze ein wenig anders aus. Inzwischen ist es so, dass beim Login ein Wert mit dem Namen "f_rt" im Cookie von Flattr.com hinterlegt wird. Beim Aufruf einer Flattr-URL wird dieser Wert im Header-Eintrag "X_REQUEST_TOKEN" mitgegeben. Daneben werden zusätzlich noch die Header-Einträge "X_REQUESTED_WITH" (muss anscheinend "XMLHttpRequest" sein) und "Referer" (muss anscheinend mit "api.flattr.com" beginnen) abgeprüft. Dass die beiden statischen Werte abgeprüft werden, halte ich für ziemlich unnötig, da diese problemlos gefälscht werden können.

Die Idee mit dem Cookie und dem daraus abgeleiteten HTTP-Header-Eintrag finde ich ziemlich intelligent gelöst. Einfaches Klicken auf eine Flattr-Button-URL ist dadurch nicht mehr möglich und selbst trickreichere Angriffe laufen dadurch ins Leere, da es für fremde Seiten nicht möglich ist (zumindest laut Definition), die Cookie-Informationen einer fremden Seite auszulesen.

Nun kommt jedoch ein aber, das ich besonders betonen möchte: Die Cookies von Flattr haben ein massives Problem. Diese sind für alle Subdomains von Flattr.com gültig. Das bedeutet, dass sollte es an irgendeiner Stelle möglich sein, der Flattr-Plattform Schadcode unterzuschieben (JavaScript im Profil, JavaScript in einer Thing-Beschreibung, o.Ä.), dies genutzt werden kann, um die derzeitige Sicherheit von Flattr auszuhebeln. Schlimmer noch: Genau dieses Problem scheint im Flattr-Forum schon einmal ausgenutzt worden zu sein. Die Konsequenz, die draus gezogen wurde, ist, dass das Forum inzwischen unter "forum.flattr.net" statt unter "forum.flattr.com" erreichbar ist.

Neben der Sicherung des Flattr-Vorganges selbst wurde übrigens auch die Nachsorge verbessert. So findet man in seinem Dashboard unter "Things I have flattred" zu jedem Thing in der Liste einen "Report this click"-Link, den man nutzen kann, um Flatterings zu melden, die man selbst nicht vorgenommen hat. Dafür muss man jedoch natürlich regelmäßig dort in die Liste gucken.


Search

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)