Neu von MSI

Microsoft stopft irre gefährliche Sicherheitslücke

reported by doelf, Dienstag der 09.05.2017, 13:08:06 Uhr

Das ging schnell: Kaum hatten Natalie Silvanovich und Tavis Ormandy von Googles Project Zero eine kritische Sicherheitslücke in Windows entdeckt, da präsentiert Microsoft auch schon die Lösung. Das Problem steckt übrigens in Microsofts Malware Protection Engine (MsMpEng) - also jenem Dienst, der Windows-Nutzer eigentlich vor Schadsoftware schützen soll.

MsMpEng ist seit Windows 8 und Server 2012 standardmäßig aktiviert und soll die Betriebssysteme vor Malware schützen. Auch viele Sicherheitsprodukte aus Redmond, beispielsweise Windows Defender, Microsoft Security Essentials, Forefront Security für SharePoint und Endpoint Protection, setzen auf MsMpEng. Der Dienst läuft als "NT AUTHORITYSYSTEM", also mit den höchsten Systemrechten. Er wird nicht von einer Sandbox abgeschirmt und lässt sich von außen ohne Authentifizierung über zahlreiche andere Dienste wie Exchange oder IIS ansteuern. Da MsMpEng einen Filtertreiber für das Dateisystem nutzt, kann die Malware-Erkennung auch auf ungelesene E-Mails und Mitteilungen, Downloads und Anhänge sowie temporäre Internetdateien zugreifen. Der Dienst kann unterschiedlichste Dateiarten erkennen und analysieren, darüber hinaus kann er unterschiedliche Rechnerarchitekturen emulieren und Programmiersprachen ausführen.

Wie man sieht, ist MsMpEng ein mächtiges Werkzeug. Was Microsoft allerdings vergessen hat, ist dieses Werkzeug ausreichend vor Missbrauch zu schützen. Einerseits wäre eine Beschränkung des Zugriffs sinnvoll, andererseits würde eine Sandbox potentiell gefährlichen Code während seiner Überprüfung isolieren und das Betriebssystem vor unerwarteten Nebenwirkungen schützen. Da Microsoft dies nicht gemacht hat, mussten Googles Sicherheitsexperten nur noch einen Weg finden, um der Malware-Prüfung Schadcode unterzuschieben. Und das gelangt, wie schon so oft, mit Hilfe von JavaScript, denn MsMpEng besitzt natürlich auch einen eigenen JavaScript-Interpreter namens NScript.

Wie sich herausstellte, liest die Funktion JsDelegateObject_Error::toString() die Message-Eigenschaft von Objekten und reicht diese an JsRuntimeState::triggerShortStrEvent() als Zeichenkette weiter, ohne zuvor den tatsächlich verwendeten Typ validiert zu haben. Bei vermeintlich langen Zeichenketten wird deren Länge über einen vtable-Aufruf ermittelt. Dabei lässt sich ein Ganzzahlenwert erzeugen, der dem Angreifer als Zeiger auf das Objekt dient. Es sind zwar nur bestimmte Werte möglich, doch den beiden Entdeckern gelang es, ihren eigenen Code im Speicher zu platzieren und dessen Adresse gezielt anzuspringen.

Da MsMpEng unzählige Dateitypen und Programmiersprachen erkennt, darunter das Archivformat Zoo aus alten Amiga-Zeiten oder MagicISO UIF, ein proprietäres Format für CD- und DVD-Abbilder, helfen Netzwerkfilter wenig. Der Angriffscode kann sich praktisch überall verstecken, so dass man MsMpEng die Echtzeitsuche nach Malware untersagen muss. Schlimmer noch: Auch bei manuellen Prüfungen sollte man sich auf Dateien beschränken, die sicher sind, was eine Sicherheitsprüfung ein klein wenig unsinnig erscheinen lässt.

Microsoft hat inzwischen ein Sicherheits-Update für seine Malware Protection Engine veröffentlicht, das den von Natalie Silvanovich und Tavis Ormandy beschriebenen Angriffsvektor eliminiert, indem die Typenverwechslung korrigiert wurde. Das Grundproblem bleibt indes ungelöst und so ist es nur eine Frage der Zeit, bis MsMpEng über den nächsten Bug stolpern wird.

Diese Werbefläche wurde deaktiviert. Damit geht Au-Ja.de eine wichtige Einnahmequelle verloren.

Werbung erlauben ]