Hacker-Tricks auf der Black Hat 2016

Malware verstecken in signierten Windows-Dateien

08.08.2016
Von  und


Simon Hülsbömer betreut als Senior Research Manager Studienprojekte in der Marktforschung von CIO, CSO und COMPUTERWOCHE. Zuvor entwickelte er Executive-Weiterbildungen und war rund zehn Jahre lang als (leitender) Redakteur tätig. Hier zeichnete er u.a. für die Themen IT-Sicherheit und Datenschutz verantwortlich.
Lucian Constantin arbeitet als Korrespondent für den IDG News Service.
Einem IT-Sicherheitsforscher ist es gelungen, Malware in Windows-Systemdateien zu verstecken, ohne deren Signatur zu verändern. Macht diese Technik Schule, ist das signaturbasierte Virenscanning am Ende.

Dank einer neuen Technik können Angreifer Schadcode innerhalb digital signierter Windows-Dateien verstecken, ohne an diesen Signaturänderugen vornehmen zu müssen - anschließend lässt sicht der Schadcode direkt in den Arbeitsspeicher eines anderen Prozesses laden. Diese Angriffsmethode wurde von Tom Nipravsky entwickelt, einem Forscher des IT-Security-Anbieters Deep Instinct, und auf der Black Hat Security-Konferenz in Las Vegas vorgestellt. Sie könnte ein wertvolles Werkzeug für Kriminelle und Cyberspione werden, um Virenscanner und andere Sicherheits-Tools auszutricksen.

In der Vergangenheit wurde Malware bereits in Bilddateien versteckt - Nipravsky gelang es nun, auf der Basis der dahinterstehenden Datei-Steganographie, Schadcode in digital signierten Dateien unterzubringen. Das ist entscheidend - Dateien digital zu signieren ergibt nämlich gerade dann Sinn, wenn garantiert werden soll, dass die Datei von einem ganz bestimmten Entwickler stammt und nicht auf dem Weg zum Empfänger durch jemand anderen verändert wurde.

Der Datei-Header lässt sich editieren

Wird eine ausführbare Datei signiert, werden die Signaturinformationen im Datei-Header in der sogenannten "Attribute Certificate Table" (ACT) gespeichert. Die ACT spielt bei der Berechnung des Datei-Hashwertes hingegen keine Rolle - die Signaturinformationen werden ausgeklammert, wenn die Zeichenfolge erstellt wird, die den Dateiinhalt in kryptografischer Form repräsentiert. Das ist sinnvoll, weil die digitale Signatur im Moment des Signierens kein Teil des originären Files ist. Sie wird lediglich später ergänzt, um zu belegen, dass die Datei so konfiguriert ist, wie ihr Ersteller es vorgesehen hat.

Der große Nachteil dieses Vorgehens ist jedoch, dass Angreifer Informationen oder auch komplette Dateien in die ACT schreiben können, ohne den Hashwert zu verändern und die Signatur aufzubrechen. Lediglich die Dateigröße ändert sich - und diese wird von MicrosoftsAuthenticode-Technik nur unzureichend geprüft, wenn eine Signatur verifiziert wird. Denn: Auch die vorgesehene Dateigröße wird im Datei-Header festgelegt und zwar an drei verschiedenen Stellen, von denen sich zwei anpassen lassen - ebenfalls, ohne die Signatur zu verändern. Lediglich die dritte Position ist unveränderbar - aber gerade diese bezieht Authenticode eben wegen ihrer Unmodifizierbarkeit nicht mit in die Prüfung ein. Würde die dritte Stelle mit abgeprüft, würde die abweichende Dateigröße sofort auffallen - trotz intakter Signatur. Laut Nipravsky handelt es sich hier um einen Fehler in der Authenticode-Designlogik.

Wer den Datei-Header an den richtigen Stellen manipuliert, kann Schadcode ungesehen in ein Windows-System schleusen.
Wer den Datei-Header an den richtigen Stellen manipuliert, kann Schadcode ungesehen in ein Windows-System schleusen.
Foto: Ton Snoei - shutterstock.com

Schadcode, der der ACT hinzugefügt wurde, wird nicht in den Arbeitsspeicher geladen, wenn sich die veränderte Datei in der Ausführung befindet, weil er Teil des Datei-Headers und nicht des Datei-Bodys ist. Die ACT dient vielmehr als Versteck, um Schadcode an Security-Programmen vorbeizuschleusen. Beispielsweise könnten Angreifer ihren Schadcode über von Microsoft signierte Systemdateien oder eine Office-Datei auf ein Client-System bringen - alle Signaturen wären weiterhin gültig und die betroffenen Dateien voll funktionsfähig. Damit nicht genug: Die meisten Virenscanner würden die Dateien sogar ohne Prüfung passieren lassen, weil sie eben von Microsoft selbst signiert wurden und ein möglicher "False Positive"-Befund in diesem Bereich schnell zum Systemcrash führen könnte.

Versteckter Angriff via PE-Fileloader

Wie lassen sich aber nun schädliche Codezeilen oder ausführbare Malware möglichst unbemerkt in signierten Dateien unterbringen? Dazu analysierte Nipravsky den Hintergrund-Prozess, den Windows ausführt, wenn es PE-Dateien (Portable Executables) in den Arbeitsspeicher lädt, per Reverse Engineering. Diese Prozedur ist bislang nicht öffentlich dokumentiert, weil sich Entwickler bei der Dateiausführung grundsätzlich auf das Betriebssystem verlassen.

Vier Monate voller Acht-Stunden-Arbeitstage später hat Nipravsky einen sogenannten "reflective PE Loader" erstellt - eine Anwendung, die Portable Executables direkt in den Systemspeicher hieven kann, ohne Spuren auf der Festplatte zu hinterlassen. Weil der Loader den exakt gleichen Prozess wie Windows verwendet, ist es für Security-Programme schwieriger, sein Verhalten als verdächtig zu erkennen. Der PE-Loader lässt sich als Teil eines versteckten Angriffs nutzen, bei dem ein Drive-by-Download-Exploit eine Malware im Arbeitsspeicher ausführt. Anschließend wird eine mit ACT-Schadcode versehene digital signierte Datei heruntergeladen und die Malware direkt in den Arbeitsspeicher weitergegeben.

Nipravsky testete den PE Loader gegen zahlreiche Security-Lösungen - überall gelang ihm die Ausführung von Schadcode, den diese Produkte normalerweise erkennen würden. In einer Demo auf der Black Hat fügte er der Header einer digital signierten Datei bekannte - und im Regelfall geblockte - Ransomware hinzu und führte diese mit dem PE Loader problemlos aus. Erst, als sämtliche Daten der Festplatte verschlüsselt waren und die Lösegeldforderung auf dem Bildschirm erschien, schlug die Security-Software an - viel zu spät.

Nipravsky wird den PE Loader eigenen Angaben zufolge nicht veröffentlichen - das Missbrauchspotenzial sei zu hoch. Talentierte Hacker sollten aber trotzdem in der Lage sein, eine solche Software zu programmieren, wenn sie bereit sind, den gleichen Aufwand hineinzustecken wie der Sicherheitsforscher von Deep Instinct. Und selbst ohne PE Loader könnten Kriminelle immer noch manuell die Attribute Certificate Tables von signierten Dateien manipulieren, um dort Schadcode zu verstecken und diesen in fremde Netze einzuschleusen.