Man zeigt nicht mit dem Finger auf andere Leute
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:
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:
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:
Lesen wir bei Window Snyder weiter:
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:
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:
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.