BATE hebelt Control Flow Guard (CFG) in Windows 8.1/10 aus

Italienische Sicherheitsforscher haben ein Konzept erstellt, um den in Windows 8.1 bis Windows 10 (sowie den Server-Pendants) unterstützten Exploit-Schutz Control Flow Guard auszuhebeln. Das Konzept soll auf der Black Hat Asia öffentlich vorgestellt werden.


Anzeige

Die Site darkreading.com berichtet hier vorab über die Erkenntnisse der Sicherheitsforscher der Universität von Padua (Italien).

Was ist Control Flow Guard (cfg)?

Control Flow Guard (CFG) ist ein hochoptimiertes Plattform-Sicherheitsmerkmal, das von Microsoft entwickelt wurde. Ziel ist es, die Ausnutzung von Schwachstellen in Bezug auf Speicherbeschädigungen zu bekämpfen bzw. abzuschwächen (mitigieren). Dies erfolgt durch strenge Beschränkungen, von wo aus eine Anwendung Code ausführen kann. Dadurch es für Exploits viel schwieriger, beliebigen Code durch Schwachstellen wie Pufferüberläufe auszuführen. Microsoft schreibt in diesem Dokument, dass CFG bisherige Exploit-Abschwächungstechnologien wie /GS, DEP und ASLR (Address Space Randomization Layer) erweitert.

Diese Funktion ist ab Microsoft Visual Studio 2015 verfügbar (muss aber beim Build der Programme aktiviert werden) und läuft auf "CFG-Aware"-Versionen von Windows. Das sind die x86- und x64-Versionen von Windows 10 und Windows 8.1 Update (KB3000850) für Desktop und die entsprechenden Server-Pendants. Details zur Technik sowie weitere Hinweise beschreibt Microsoft in diesem Dokument.

Design-Schwachstellen ermöglichen ein Bypassing

Bereits im Januar 2017 gab es diesen Blog-Beitrag, der ein Umgehen (Bypassing) des Control Flow Guard beschreibt. Forscher der Universität Padua in Italien behaupten nun, eine grundlegenden Konstruktionsschwäche gefunden zu haben, mittels der Control Flow Guard (CFG) vollständig umgangen werden kann.


Anzeige

Wie bereits oben ausgeführt, beschränkt CFG den Kontrollfluss des Programmes, indem  sicherstellt wird, dass die Reihenfolge, in der ein Programm Funktionen ausführt – bestimmten gültigen Pfaden folgt.  Dazu beschränkt CFG indirekte Aufrufe oder Sprünge – zum Beispiel über Funktionszeiger – auf ein "erlaubtes" Ziel. Dieses wird bei der Kompilierung festgelegt, sagt Andrea Biondo, Informatikstudentin an der Universität Padua. "Also kann ein Angreifer nicht einfach die Ausführung [der Programmausführung]an beliebige Orte entführen."

Wie die Forscher der Universität Padua in einem technischen Dokument erklären, in dem sie ihren Exploit beschreiben, hat Microsoft einige Kompromisse, in CFG gemacht, um Performance- und Abwärtskompatibilitätsanforderungen zu erfüllen. Und genau diese Kompromisse eröffnen eine CFG-Design-Schwachstelle, die Angreifern eine Möglichkeit  gibt, Teile von Code – oder Gadgets – aufzurufen, die nicht erlaubt sein sollten. Diese Code-Teile können kombiniert werden, um CFG-Beschränkungen vollständig zu umgehen.

"Die Beschränkung [Kontrollfluss] ist nur dann präzise, wenn die erlaubten Ziele auf 16 Byte ausgerichtet sind", sagt Biondo. "Wenn sie es nicht sind, dann gibt es eine 16-Byte-Ungenauigkeit um das Ziel herum". Dies können Angreifer nutzen können, um CFG zu umgehen. Eine Auswertung der Windows-Systembibliotheken deckte viele ausnutzbare Codestellen (Gadgets) auf, die von fast allen Windows-Anwendungen auf 32-Bit-Systemen und Webbrowsern auf 64-Bit-Systemen geladen werden, sagen die Sicherheitsforscher.  "Indem wir das Vorhandensein von nicht ausgerichteten Targets in gemeinsamen Bibliotheken mit der Vorhersagbarkeit des Layouts der vom Compiler generierten Funktionen kombinieren, können wir CFG umgehen", schreibt Biondi im technischen Dokument.

Die Forscher haben ihren Exploit als Back to the Epilogue (BATE)-Angriff bezeichnet und ihn als generischen Bypass für Microsofts Control Flow Guard beschrieben. Der Proof-of-Concept-Code, den die Forscher Black Hat Asia-Konferenz in Singapur, Ende des Monats, präsentieren wollen, wendet BATE auf Microsofts Edge-Browser unter Windows 10 (64-Bit) an, sagt Biondo. Die verwendeten Edge-Schwachstellen sind seit langem bekannt, und das Ziel ist einzig und allein, zu zeigen, dass BATE in realen Angriffen ausgenutzt werden kann.

Laut Biondo unterscheidet sich BATE von anderen Flow Integrity Bypass-Techniken, wie z.B. Endgames Counterfeit Object-Oriented Programming (COOP) vom vergangenen August. Ergänzung: Ab Windows 10 Version 1803 soll das Ganze natürlich gefixt sein. Und im April 2018 kommen Updates für die Windows-Build, die CFG unterstützen. Dann wird alles besser, bis zur nächsten Lücke.  (via, via)


Anzeige

Dieser Beitrag wurde unter Sicherheit, Windows 10 abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu BATE hebelt Control Flow Guard (CFG) in Windows 8.1/10 aus

  1. Ich glaube vor allem das Problem vom Januar war das Microsoft Programme Automatisch als Sicher und Vertrauenswürdig eingestuft wurden, ich meine es ist ja selbstverständlich das Microsoft seinen eigenen Programmen wie Word und Outlook vertraut, wobei ich vertraue Outlook genauso wenig, ständig ändert sich wieder etwas mal kann ich Word Dokumente aus Outlook direkt in Word oder Excel Starten und dann gehts nach dem nächsten Update wieder nicht. Es gibt zwar eine Möglichkeit das Händisch global zu unterbinden aber eben nur Händisch von daher gehört Outlook bei uns nicht zu den Vertrauenswürdigen Programmen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.