.: Daniel Melanchthon :.

Banging your head against a wall uses 150 Calories an hour.

Man zeigt nicht mit dem Finger auf andere Leute

Man zeigt nicht mit dem Finger auf andere Leute

  • Comments 9
  • Likes

Das lernte ich schon als Kind und das gebe ich auch an meine Kinder weiter. In meinen Sessions werde ich beim Thema Security oft gefragt, wie ich zu dem Verhalten von anderen Anwendungen und anderen Herstellern stehe. Warum rede ich immer nur über unsere Produkte? Andere sind doch auch nicht besser, sondern unbreakable oft viel schlechter.

Der Grund ist ganz simple: Man zeigt nicht mit dem Finger auf andere Leute!

Wenn ich über Security in unseren Produkten rede, dann zeige ich, welche Schwachstellen uns in der Vergangenheit beschäftigt haben, welche Lösungen wir dafür heute schaffen und welche Designentscheidungen wir treffen, um neue Bedrohungsszenarien von Anfang an zu begegnen. Mit dieser Vorgehensweise bin ich bei Microsoft nicht allein - unsere Konkurrenz handelt manchmal aber auch anders.

In den letzten Tagen gab es viele Diskussionen um die Möglichkeit, unter Windows Anwendungen durch eine speziell geformte URL über einen Application URL Protocol Handler zu starten. Dabei ging es am meisten um eine Sicherheitslücke in Mozilla Firefox, welcher bei dem firefoxurl:-Handler die übergebenen Daten als sicher betrachtet und nicht validiert. Über die -chrome-Option kann man damit Anwendungen mit den Rechten des angemeldeten Benutzers auf dem lokalen PC ausführen.

Mit der Veröffentlichung der Firefox-Version 2.0.0.5 lehnte sich das Mozilla-Team hier sehr weit aus dem Fenster. Window Snyder als Chief Security Something-or-Other bei Mozilla stellt folgende Behauptung in ihrem Blog auf:

Mozilla believes in defense in depth and will be patching Firefox in the upcoming 2.0.0.5 release to mitigate the problem. This will prevent IE from sending Firefox malicious data.

Firefox registriert bei der Installation den firefoxurl:-Handler. Für diesen Handler wird die Übergabe von nicht vertrauenswürdigen Daten aus einer entfernten und nicht vertrauenswürdigen Quelle, bei der es sich weder um das Betriebsystem, noch um Eingaben des Benutzers handelt, deklariert und dokumentiert. Um es ganz klar zu sagen: Die Daten können von einem potentiellen Hacker stammen.

Mit der Registrierung eines Application URL Protocol Handlers sagt also diese Anwendung der Welt: Ich nehme über diesen speziellen Kanal Daten entgegen. Es ist interessant zu sehen, wie man das eigene Vertrauen in die Korrektheit der übergebenen Daten umdreht in einen Angriff gegen den Internet Explorer.

Weiter geht es dann bei Windows Snyder:

Any Windows application that calls a registered URL protocol without escaping quotes may be used to pass unexpected and potentially dangerous data to the application that registers that URL Protocol. This could result in a critical security vulnerability.

Die Erkenntnis ist nun nicht wirklich neu. Application URL Protocol Handler gibt es meines Wissens seit Windows 95. Das Problem ist hier nicht im Internet Explorer zu suchen. Die Anwendung, die übergebenen Daten aus dem Internet (zum Beispiel durch Application URL Protocol Handler über den Internet Explorer) blind vertraut, stellt ein potentielles Sicherheitsproblem dar. Daher ist die Antwort  des IE-Teams in diesem Punkt auch ganz deutlich:

URL protocol handlers are one of the ways we enable rich experiences in browsing, however, as with any other program that accepts untrusted data from the web, URL protocol handling applications must be carefully designed based on the threat environment.

Lesen wir bei Window Snyder weiter:

This patch for Firefox prevents Firefox from accepting bad data from Internet Explorer. It does not fix the critical vulnerability in Internet Explorer. Microsoft needs to patch Internet Explorer, but at last check, they were not planning to. ... Mozilla recommends using Firefox to browse the web to prevent attackers from taking advantage of this vulnerability in Internet Explorer.

Man zeigt nicht mit dem Finger auf andere Leute! Sowas entwickelt sich schneller zu einem Bummerang, als einem lieb ist. Jesper Johansson zeigt in seinem Blogeintrag Hey, Mozilla: Quotes Are Not Legal in a URL im Detail, wie Firefox eingestellt als Standard-Webbrowser selbst andere Anwendungen über Application URL Protocol Handler mit ungefilterten Daten versorgt:

Can you spot the glass house too? To paraphrase Window: "This patch for Firefox ... does not fix the critical vulnerability in Firefox." That's correct. Following Mozilla's, and Thor Larholm's logic, Firefox is subject to the exact same flaw that they blame on IE! Firefox also does not escape quotes in URLs before it passes them on to protocol handlers. I won't speculate here on why they failed to fix that "flaw" in the new version of Firefox that was just released.

Firefox verhält sich hier genauso, wie die Definition der Handler es vorsieht und wie der Internet Explorer es auch macht. Ich finde es nur interessant, dass Mozilla in dem Verhalten des Internet Explorers eine kritische Verwundbarkeit sieht und bei dem eigenen Produkt noch nicht einmal auf die Idee gekommen ist, nachzuschauen, wie man es selbst handhabt. Dementsprechend kleinlaut wurde Window Snyder später:

Over the weekend, we learned about a new scenario that identifies ways that Firefox could also be used as the entry point. While browsing with Firefox, a specially crafted URL could potentially be used to send bad data to another application. We thought this was just a problem with IE. It turns out, it is a problem with Firefox as well. We should have caught this scenario when we fixed the related problem in 2.0.0.5. We believe that defense in depth is the best way to protect people, so we’re investigating it now.

Schade, dass Window Snyder nicht genug Rückgrat hat, hier klar Stellung zu beziehen. Eine Entschuldigung wäre hier wohl angebracht. Weiterhin wird Jesper mit keinem Wort erwähnt. Kein Dank für seine Analyse. Noch beschämender finde ich allerdings das Vorgehen, in den eigenen Kommentaren Links zu dem Blogeintrag von Jesper zu löschen.

Comments
  • Hallo Daniel,

    vielen Dank für die klaren Worte. Ich sehe das genauso wie Du.

    Software ist eben Software und wird nur von Menschen gebaut und wird daher immer Fehler haben. Leider sind sich viele diesem Sachverhalt nicht bewusst und es wird leider - was Microsoft angeht - in meinem Empfinden mit zweierlei Maß gemessen. Das finde ich nicht richtig.

    Gruß

    Andreas

  • Was machst du denn? Nichts nützliches jedenfalls. Und du zeigst mit dem Finger auf andere Leute.

    Immer wieder lustig, wie viele Experten es gibt, die im Tone der Entrüstung über /echte/ Profis herfallen - früher saßen sie nur an Stammtischen, heute haben sie Blogs und dürfen sich wichtig fühlen.

  • Blöde, aufgeblasene Milchkuh!

    Sie sollte am Marterpfahl schmoren :D

    Abseits davon: Danke für den interessanten Einblick. Ich hatte die Sache mit der Sicherheitslücke nicht genau verfolgt, da wurde scheinbar ganz schön schmutzige Wäsche gewaschen. Trotzdem nutze ich noch den ff - obwohl ich seit geraumer Zeit mit dem ie7 liebäugele. Manches Mal überfällt mich noch so ein Anfall von Nostalgie und ich möchte mal wieder ohne Tabs surfen. Und dann ist mir der IE6 sogar lieber als jeder andere Browser!

  • Apropos "unbreakable", siehe http://blogs.technet.com/steffenk/archive/2007/07/24/jahrestag-4-jahre-ohne-sql-server-security-patch.aspx ;-)

    //.<

  • Wie wäre es mal, wenn man einfach festlegt, was das KORREKTE Verhalten ist? Der Transport von URLs als Parameter für Programmme, die als Protokoll-Handler definiert sind, muss ja sauber definiert sein. Entweder MIT oder OHNE Quoting. Wenn einer quotet und der Empfänger kein Quoting erwartet ist das schlichtweg falsch. Und umgekehrt auch.

    Denn es muss ja kompatibel sein. IE (und Firefox) könnten höchstens auf "verdächtiges" prüfen wie >100 Zeichen oder "cmd.exe", aber das ist Hokus-Pokus ("Defense in Depth"). Eigentlich wäre es ja zu erwarten, dass mit Anführungszeichen gequotet wäre. Ich nehme mal an, das korrekte Verhalten ist, dass man seinen Protokollhandler als z.B.

    firefox.exe -chrome="C:\Program Files\Firefox\newstyling.jar" -url %1

    definiert, so dass so ein Aufruf rauskommt:

    firefox.exe -chrome="C:\Program Files\Firefox\newstyling.jar" -url http://test.de/Unter Ordner/Blah

    d.h. Firefox und jeder andere müsste in seinem Parser nach sowas wie "-url" jegliche Zeichen 1:1 als URL betrachten. Vermutlich macht Firefox da mit dem Parsen einfach weiter.

    Wie ist es wirklich (Dies ist Spekulation)?

    Das wäre jedenfalls nett gewesen, wenn man das so geschrieben hätte. Denn es muss ja einen einheitlichen Standard fürs Quoting geben!

  • Hallo Christian,

    wenn Du meinem Link http://msdn2.microsoft.com/en-us/library/aa767914.aspx gefolgt wärst, hättest Du das gewünschte in der MSDN gefunden:

    "When a user clicks a link registered to your custom URL protocol, Microsoft Internet Explorer launches the registered URL protocol handler. If the specified shellopen command specified in the Registry contains a %1 parameter, Internet Explorer passes the URI to the registered protocol handler. The final Uniform Resource Identifier (URI) is decoded; that is, hexadecimal escape characters are converted to equivalent UTF-16 characters. For example, the %20 character sequence is replaced with a space.

    Security Alert  Applications handling URL protocols must be robust in the face of malicious data. Because handler applications receive data from untrusted sources, the URL and other parameter values passed to the application may contain malicious data attempting to exploit the handling application. For this reason, handling applications that could initiate unwanted actions based on external data must first confirm those actions with the user."

    VG, Daniel

  • Alles schön und gut, aber was ändert das an der Tatsache, daß der IE der besch...eidenste Browser ist, der sich auf Festplatten rumtreibt? Er war ja bis zur 6er schon mies aber die 7er... =8-O

    Insofern empfiehlt es sich dann wirklich, sich schön bedeckt zu halten.

    Pit

  • Wieder einmal offenbaren sich Sandkastenmanieren in der IT, " die anderen sind schuld ": What happened

  • Nichts wird so heiss gegessen wie es ge...

    Ich ärgere mich nur immer über die Antwort:

    "Weil es sicherer ist."

    auf die Frage:

    "Warum nutzt du den Firefox."

    Kann man eigentlich auf eine Imagekampangie zurück führen mit dem eigentlich mündidige Erwachsene die letzten 2 Jahre verseucht wurden, ähnlich Bild dir deine Meinung.

    Der eigentliche Grund, scheint mir eher anders gelagert zu sein. Was eigentlich auf beiden Seiten viel über das Ego verrät, nicht mehr und nicht weniger.

    Ich empfinde es als hilfreich:

    Wenn zwei sich streiten freut sich der dritte.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment