Viren, Spyware, Datenschutz 11.258 Themen, 94.807 Beiträge

wmf-Bug

siebenkäs / 1 Antworten / Baumansicht Nickles

www.heise.de/security/news/meldung/68360

Wie böse ist Microsoft wirklich ??? ;-)

[Diese Nachricht wurde nachträglich bearbeitet.]
"Only one thing is impossible for God: To find any sense in any copyright law on the planet."Mark Twain
bei Antwort benachrichtigen
Rigor Mortis siebenkäs „wmf-Bug“
Optionen

Leider wird die Aussage von Steve Gibson in dem Heisebeitrag falsch dargestellt. Weder behauptet er, daß SetAbortProc nur durch einen falschen Längenoffset aktiviert wird, noch ist dies seine zentrale Begründung warum dies der Grund ist, daß die Funktion absichtlich eingebaut wurde.
Der etwas verdächtige Umstand ist nämlich ein anderer. SetAbortProc gibt nromalerweise einen Funktionszeiger weiter, an den bei einem Fehler gesprungen wird. Das ist der normale Weg für eine SetAbortProc. Nun macht aber SetAbortProc in WMF etwas ganz anderes, wenn die WMF-Datei den falschen Längenoffset von 1 besitzt. Bei der Auswertung wird kein Funktionszeiger mehr aus der WMF-Datei gelesen, sondern es wird ausführbarer Code aus der WMF-Datei gelesen und ausgeführt.
Dies ist ein äußerst seltsames Verhalten, daß in meinen Augen durchaus Grund für Spekulationen zulässt. Dabei werden einige interessante Fragen aufgeworfen:
- Warum verhält sich die Funktion bei einem bestimmten und undokumentierten Parameter anders, als sie sollte und anders als es Sinn macht? Der ausführbare Code in der WMF-Datei kann nichts wirklich sinnvolles tun.
- Warum ist dieser Parameter ein illegalelr Parameter, der die Behandlung als WMF-Grafik komplett verhindert? Wenn sie schon über einen Parameter ihr Verhalten ändert, so sollte dieser doch wenigstens derart sein, daß auch gültige WMF-Dateien diese Funktionalität nutzen können.
- Warum wird überhaupt ausführbarer Code aus WMF interpretiert? Ein Zeiger auf eine Systemfunktion mit Übergabeparametern würde es auch tun und ist auch das Standardverhalten, Inlinecode hat keinerlei nützlichen Kontext für die WMF-Problemstellung.
- Warum wurde diese Abnormalität, obwohl bekannt und als gefährlich erachtet, von Microsoft viele Jahre mitgeschleppt, obwohl sie keinen sinnvollen Zweck im Kontext von WMF erfüllt und nie im Kontext von WMF zum Einsatz kam?
- Wie kann man etwas als versehentlichen Programmierfehler bezeichnen, daß extra Code zur Herstellung dieser speziellen Funktionalität benötigt? Das wäre ungefähr so, als würde ein browserhersteller behaupten es sei ein Versehen gewesen, daß sein Browser JavaScript interpretiert.

Das Argument, daß es keine Hintertür sein könne, weil sie nicht wirksam kryptologisch gesichert ist halte ich für kurzsichtig aus drei Gründen.
- Grund eins wäre, daß ein kryptologischer Mechanismus auffällig gewesen wäre, diese geschichte wäre dadurch schon viel früher aufgefallen und hätte Fragen aufgeworfen.
- Grund zwei ist, daß eine kryptologische Absicherung ein zweifelsfreier Beweis gewesen wäre, daß hier absichtlich etwas eingebaut wurde. Man hätte sich nicht mehr auf einen Programmierfehler herausreden können.
- Grund drei ist, daß es nicht das erste Mal wäre, daß Microsoft auf Security by Obscurity setzt, anstatt auf vernünftige Kryptografie. Insbesondere bei älteren Implementierungen.
Alles in allem ist diese Sache schon etwas ominös. Ich halte es durchaus für plausibel, daß diese Lücke wirklich schlichtweg jahrelang übersehen oder vergessen wurde, da sie schon lange existiert. Ich halte es jedoch nicht für plausibel, daß sie nicht damals absichtlich eingebaut wurde, zu welchem Zweck auch immer. Wobei natürlich durchaus auch die Option nicht unmöglich ist, daß ein damaliger Microsoftprogrammierer hier in Eigenregie etwas hinterlassen hat, was nicht zu seinem Auftrag gehörte, sozusagen ein kleines Easteregg für seinen eigenen, privaten Gebrauch.

bei Antwort benachrichtigen