Visual Studio-Applikationen anfällig für Binary Planting

Einem Bericht von ACROS Security zufolge können sämtliche mit Visual Studio kompilierten MFC-Applikationen anfällig für das sogenannte Binary Planting sein. Dabei wird eine ausführbare Binärdatei lediglich in einem Programmverzeichnis hinterlegt und beim nächsten Programmstart ohne Zutun des Benutzers ausgeführt.

Dem Binary Planting liegt das Fehlverhalten einiger Anwendungen zu Grunde, beim Anfordern einer DLL-Datei keinen vollständig definierten Pfad (FQPN – Fully Qualified Path Name) anzugeben sondern die Suche nach der passenden DLL-Datei entweder Windows zu überlassen oder zunächst selbst im lokalen Verzeichnis nachzusehen.

Nun ist es nicht selten, daß ein Benutzer U mit eingeschränkten Rechten zwar bestimmte Programme oder Betriebssystemaktionen nicht ausführen darf, die nur für den Administrator A vorgesehen sind. Allerdings ist es bei schlechter Systemkonfiguration oft möglich, in den Programmverzeichnissen Daten ablegen zu können – unter anderem maliziöse DLL-Dateien. So kann beispielsweise eine DLL von A versteckt in einem Netzlaufwerk abgelegt und im gleichen Verzeichnis eine Visitenkarten-Datei für das installierte Kalenderprogramm gespeichert sein. Klickt ein Administrator oder anderer Benutzer mit erweiterten Rechten auf die Visitenkarten-Datei um sie in seinem Kalender zu importieren, sucht ein verwundbares Kalenderprogramm die von ihm benötigten Dateien zunächst auf dem Verzeichnis im Netzlaufwerk und lädt sie. Auf diese Weise kann ein unprivilegierter Benutzer U einen Administrator unbemerkt dazu veranlassen, die DLL-Datei mit Administrationsrechten auszuführen.

Binary Planting

Binary Planting

Bei Programmen, die z.B. vom Taskplaner regelmäßig automatisch aufgerufen werden, kann ein unprivilegierter Nutzer oder Gast im System sogar ohne jegliches manuelles Zutun eines Administrators gefährliche Dateien starten und das System kompromittieren.

Diese Problematik wurde unter anderem von Stuxnet erfolgreich genutzt, um unbemerkten Zugang zum System zu ermöglichen.

Da sowohl Windows als auch beliebige Programme verwundbar sein können, muss jedes Softwareprogramm von seinem Hersteller aktualisiert werden. Dies war der Grund für die Update-Welle populärer Softwareprogramme Anfang September 2010.

ACROS Security fand nun heraus, daß sämtliche Programme, die mit Visual Studio unter Nutzung der MFC (Microsoft Foundation Classes) kompiliert wurden, anfällig für Binary Planting sind. Bei dynamisch gelinkten PE-Dateien kann der Fehler relativ leicht durch ein Update der Microsoft VC++ Redistributable-Pakete auf dem Einsatzsystem der Software behoben werden. Dynamisch gelinkte PE-Dateien rufen die MFC-Dateien aus dem Redistributable-Paket auf. Daher reicht ein einmaliges VC++ Redist-Update, um sämtliche dynamisch gelinkten PEs vor dieser Art des Binary Planting zu schützen.

Schwieriger hingegen wird es bei statisch gelinkten Dateien. Der für die Binary Planting-Schwachstelle verantwortliche MFC-Code ist bei statisch gelinkten PEs im Programm integriert. Der Nutzer ist auf ein Softwareupdate von Seiten der Herstellers angewiesen, jeweils für jedes installierte Programm, das mit Visual Studio und MFC-Unterstützung kompiliert wurde.