[Logo]   

Looking for the Guilty

A blog.

 

 

RSS feed

GPG/PGP pubkeys

 

[Blosxom]

[Almost XHTML]

Datensammler sind Verbrecher

Politiker-Stopp - Diese Seite ist geschützt vor Internet-Ausdruckern.

lupo's last comments:
1 2 3 4 5
florin's last comments:
1 2 3 4 5

Clickjacking, oder: wie man damit klarkommt, dass sich die Welt weiterdreht.

author: www-data

So ziemlich alle Browser sind mehr oder weniger anfällig für's Clickjacking. Eingefleischte Computer-"Eggsbedden" brüllen nun los: das liegt alles an diesem neuen Klicki-Bunti-Scheiss, wozu braucht man das, man kann doch vernünftige Websites auch ohne transparente Frames erzeugen etc.

Und ich, da ich sowieso ein Fan von minimalistischen Websites bin (man betrachte diesen Blog hier :-) wäre dem Argument beinahe aufgesessen: mir nur recht. Aber... irgendwie kam's mir dann: da ist mehr dahinter.

Grob gesprochen geht es darum, dass ein Angreifer durch kompromitieren einer bestimmten Website, den Code dieser Website so modifizieren kann, dass über ein Link in der Website ein transparentes Frame gelegt wird. Wenn angeklickt, dann wird im transparenten Frame ein fremder Link aktiviert -- es führt also woanders hin, als es dem Anwender erscheint. Das tückische daran ist eben, dass man als User keine Chance hat: man sieht den "richtigen" Link, man sieht auch in der Statuszeile die "richtige" Addresse, nur beim Click... ist da was anderes drin.

Naheliegenderweise ist als Lösungsansatz in diversen Foren mal die Idee zirkuliert: man solle doch die (vergleichsweise jungen) transparenten Frames verbieten, denn vor ein paar Jahren gab's schließlich auch sehr coole Websites, die auch ohne Transparenz auskamen. Immerhin sei das ja auch eine echte Lösung der Ursache, nicht nur so eine "Symptomlösung".

Und jetzt zum eigentlichen Thema:

Wie man damit klarkommt, dass sich die Welt weiterdreht

Ansätze zur Lösung eines Problems in der Art von "lasst uns [Neuerung XY] rückgängig machen, das löst unser Problem an der Wurzel, und überhaupt, den neuen Scheiß braucht keiner und früher war's eh besser" habe ich ziemlich viele gehört. Man kann nicht wirklich behaupten, dass das eine neue Mode wäre -- aber ich habe das Gefühl, dass dieser Ansatz in der Computerbranche in letzter Zeit ungewohnt häufig bemüht wird. Ich möchte daher erklären, warum man von diesem Ansatz lieber Abstand nehmen sollte. Aus gegebenem Anlass werde ich das am Beispiel von "Clickjacking" erklären, aber das Prinzip ist beliebig erweiterbar.

Der Hauptgrund, um den zitierten Ansatz fallen zu lassen ist, dass er leider auch nichts weiter als eine Symptomlösung ist, und nicht etwa die erwartete Ursachenlösung. Das tückische an diesem Ansatz ist aber, dass der Symptom-Charakter gut versteckt ist, und zwar in einem gut maskierten "früher war alles besser"-Argument.

In unserem konkreten Beispiel: die Tatsache, dass eine Transparenz-Funktion genutzt werden kann, um missbrauch zu betreiben, bedeutet nicht, dass man als grundsätzliche Lösung diese Transparenz verbieten sollte. Man tut sich und der Welt damit keinen Gefallen. Denn gleichgültig, ob einem Transparenz gefällt oder auch nicht, sie ist nun mal da, sie hat einen Zweck, und machen wollen sie haben. Es ist dabei völlig egal, ob es ohne Transparenz prinzipiell auch ginge... es gibt sie. Punkt.

Das Argument, eine Neuerung rückgängig zu machen, wäre vergleichbar mit der Aussage "Windows 3.11 würde mit seinen 16 bit auf nem 3 GHz-Rechner auch ganz gut laufen, wozu braucht man Windows 7 mit 64 bit?..." oder "XFree v5 mit fvwm1 war auch ganz gut... deswegen lasst uns alle Software von vor 20 Jahren verwenden, auf Moaic wieder umsteigen, uns HTML-1.0-Sites schicken (oder noch besser: .txt), und unsere Diplom-Arbeiten mit nroff/groff formatieren (siehe 'man'-Befehl unter Linux). Oder so ähnlich.

Ganz ehrlich: wenn man das so machen würde, wäre ich selbst sofort dabei :-) Ich gehöre nämlich auch zur "früher war alles besser"-Fraktion. Für mich besteht der einzige Vorteil von neuen Technologien darin, dass ich dank der höheren Bildschirmauflösung jetzt mehrere 80x25 Terminals nebeneinander stellen kann. Ich schreibe meine E-Mails mit 'mutt', das einzig bunte an dieser Website sind die Graustufen im Logo und die blauen Links, das einzig graphische ist die Erde im Spiegel links oben, und das einzig interaktive läuft ueber CGI. Und mir gefällt das...

Aber trotzdem: ob's mir passt oder nicht, die Welt dreht sich weiter. Wir sind nicht mehr im Zeitalter von Mosaic. XFree ist inzwischen schon weiter (sprich: "anders"), und heisst jetzt mitunter sogar X.Org. Man programmiert mit .NET, besitzt einen .mac-Account, und amüsiert sich darüber, dass das Pickelgesicht von Nebenan, einem Streich aufgesessen, nach dem Patch von Web2.0 auf Web2.1 fragt. Sein Vater, etwas vornehmer, fragt ob man auf seinem Windows 7 (mit 64 bit, auch wenn's 16 auch getan hätten) mal das neue "Internet" installieren könne. Und übrigens, er kann sein gestern geschriebenes Dokument heute nicht mehr öffenen -- weil, neue Word-Version. Man selber möchte nur noch kotzen, weil man mit 256 MB RAM kaum noch ne E-Mail an die Oma schreiben kann, obwohl früher die gesammte Festplatte samt Diplomarbeit kleiner als 250 MB war. Und überhaupt, haben früher die Sekretärinen fließend LaTeX beherrscht, während heute man den Damen noch erklären muss, wozu die TAB-Taste gut ist, und warum's 8 SPACEs nicht "auch tun".

Die Technik entwickelt sich in eine Richtung, die einem nicht gefällt? Man stelle sich hinten an, mir gefällt sie auch nicht. Aber manche wollen Transparenz haben. Transparenz is nun da, und sie bleibt. Diese zu verbieten würde möglicherweise das Clickjack-Problem lösen -- aber das ist keine prinzipielle Lösung, sondern auch nur eine Symptom-Lösung.

Wenn wir das Problem beim Ursprung lösen wollen, dann kann "geh 10 Jahre in die Vergangenheit" nicht der richtige Ansatz sein -- so sehr manche (z.B. ich) sich das manchmal wünschen würden...

Der richtige Ansatz ist ein anderer. Es muss ein anderer sein. Welcher -- das weiß ich nicht. Ich bin kein Browser-Entwickler. Aber man könnte vielleich so eine Art Hit/no Hit System schaffen, wie z.B. in der Game-Grafik, oder bei den Window-Managern: wenn ein Pixel "transparent" ist, dann kann er eben nicht das Ziel von Clicks sein. (Siehe dazu auch Enlightenment als Window-Manager, oder das Verhalten von manchen Betriebsystemen, wenn es darum geht, Icons anzuklicken: wenn man auf eine transparente Icon-Stelle klickt, dann wird das Icon nicht markiert/geoeffnet.) Wie das im Browser nun umzusetzen wäre, darüber werden sich entsprechend schlaue Leute schon die Köpfe zerbrechen...

2009-01-29 14:31 | www-data.blog20090129@rootshell.ro | [/digest/tech-sci] | permanent link


Older entries

« | 2012 | Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec | »
« | February | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | »