The Windows IOCTL Census: A Corpus-Scale, Multi-Architecture Database of the Driver Control-Code Surface
Dieses Paper führt die Windows IOCTL Census ein, eine öffentliche, abfragbare Datenbank, die zehntausende Millionen Zeilen dekodierter Kontrollcodes und Aufruf-Graphen für 27.087 signierte Windows-Treiber über mehrere Architekturen hinweg enthält, erreicht durch eine deterministische, architekturneutrale Analyse gehobener Zwischenrepräsentationen, die skaliert, um 80 % des Treiber-Korpus ohne symbolische Ausführung abzudecken.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich das Windows-Betriebssystem als eine riesige, geschäftige Stadt vor. In dieser Stadt gibt es Tausende von spezialisierten „Service-Stationen“, die Treiber genannt werden. Diese Treiber ermöglichen es dem Computer, mit der Hardware wie Ihrer Grafikkarte, Ihrem Drucker oder Ihrem WLAN-Adapter zu kommunizieren.
Um mit diesen Stationen zu kommunizieren, senden normale Menschen (unprivilegierte Benutzer) „Tickets“, die IOCTL-Codes genannt werden. Denken Sie an diese als spezifische Befehle wie „Drucke diese Seite“ oder „Zeige dieses Bild“.
Das Problem: Das unverschlossene Tor
Normalerweise haben diese Service-Stationen Sicherheitskräfte. Aber manchmal schläft ein Wachmann oder die Station hat ein kaputtes Schloss. Wenn eine normale Person ein Ticket an eine Station mit einem kaputten Schloss sendet, kann sie vielleicht in den „Kontrollraum“ (den Kernel) eindringen und die Regeln der Stadt umschreiben. So übernehmen Hacker die Kontrolle über Computer.
Lange Zeit hatten Sicherheitsforscher zwei Wege, um diese kaputten Schlösser zu finden:
- Der „Super-Scanner“ (Symbolische Ausführung): Dies sind wie hochtechnisierte Roboter, die versuchen, durch jede Tür in jeder Service-Station zu gehen, um zu sehen, ob irgendwelche unverschlossen sind. Aber sie sind langsam, werden leicht verwirrt und können nur den „modernen“ Teil der Stadt (64-Bit-Systeme) überprüfen. Sie geben bei den älteren, 32-Bit-Gebäuden sogar völlig auf, obwohl dort viele gefährliche Gebäude existieren.
- Die „Gesuchte-Liste“ (Kuratierte Listen): Dies ist eine Liste bekannter Krimineller. Sie ist präzise, aber sie enthält nur die Verbrecher, die wir bereits gefasst haben. Sie hilft nicht dabei, die neuen zu finden, die sich im Schatten verstecken.
Die Lücke: Niemand hatte eine vollständige Karte der Stadt, die jede Service-Station und jeden Ticket-Typ zeigte, unabhängig davon, ob das Gebäude alt oder neu war.
Die Lösung: Die Windows IOCTL Volkszählung
Die Autoren dieses Papers haben diese fehlende Karte erstellt. Sie nennen sie die Windows IOCTL Census.
Anstatt zu versuchen, durch jede Tür zu gehen (was langsam und fehleranfällig ist), verwendeten sie einen anderen Ansatz:
- Der „Übersetzer“ (Deterministische Rekonstruktion): Stellen Sie sich einen Übersetzer vor, der die Baupläne eines Gebäudes in jeder Sprache (altes 32-Bit oder neues 64-Bit) sofort lesen kann. Dieser Übersetzer versucht nicht zu „raten“, was passiert, wenn man einen Knopf drückt; er liest einfach den Bauplan, um zu sehen, welche Knöpfe genau existieren und wohin sie führen.
- Das Ergebnis: Sie erstellten eine riesige Datenbank, die 27.087 Treiber enthält. Sie kartierten 3,1 Millionen verschiedene Kontrollcodes (Tickets) und 8 Millionen interne Funktionen.
Wie sie es nützlich machten (Der Drei-Schritte-Prozess)
Die Autoren haben die Daten nicht einfach nur hingekippt; sie organisierten sie in einer Pipeline:
Rekonstruieren (Der Kartograf):
Sie scannten jeden Treiber und extrahierten die „Dispatch-Routinen“. Denken Sie dies als Identifizierung der Hauptlobby jeder Service-Station und das Auflisten jedes Ticket-Typs (IOCTL-Code), der dort verwendet werden kann. Sie taten dies sowohl für alte als auch für neue Gebäude und deckten 80 % aller Treiber ab.- Der entscheidende Gewinn: Sie fanden die „alten Gebäude“ (32-Bit), die die Super-Scanner nicht erreichen konnten.
Anreichern (Der Risiko-Assessor):
Nicht jedes Ticket ist gefährlich. Sie nutzten eine intelligente KI (ein LLM), um nur die verdächtigsten Lobbys zu betrachten – also jene mit schwachen Sicherheitskräften (permissive Access) und ungeprüften Eingaben (unchecked input). Die KI rät nicht; sie betrachtete die spezifischen Details des Bauplans, die der Kartograf gefunden hatte, und vergab eine „Risikobewertung“ (Kritisch, Hoch, Mittel).- Der entscheidende Gewinn: Sie verschwendeten keine Zeit mit der Bewertung sicherer Stationen. Sie konzentrierten sich nur auf die, die gefährlich aussah.
Ranken (Die Prioritätenliste):
Schließlich erstellten sie eine durchsuchbare Liste. Anstatt dass ein Forscher raten muss, welchen der 27.000 Treiber er zuerst prüfen soll, kann er nun fragen: „Zeige mir alle Treiber mit einem bestimmten gefährlichen Ticket-Typ“ oder „Zeige mir die 100 riskantesten Stationen“.
Was sie herausfanden
- Die Karte ist real: Sie verifizierten ihre Karte anhand bekannter Schwachstellen. Zum Beispiel fanden sie einen bekannten gefährlichen Treiber (den NVIDIA-Display-Treiber) und sahen, dass dieser auf ihrer Gefahrenliste sehr hoch gerankt wurde, was beweist, dass das System funktioniert.
- Die „alte Stadt“ ist voll: Durch die Einbeziehung der 32-Bit-Treiber deckten sie einen riesigen Teil der Angriffsfläche auf, den vorherige Werkzeuge ignorierten.
- Abgleich: Sie verglichen ihre Methode des „Bauplan-Lesens“ mit den „Super-Scanner“-Robotern. Sie fanden heraus, dass die Roboter zwar gut darin waren, einige Dinge zu finden, aber viele der älteren Gebäude übersahen. Die Bauplan-Methode fand Dinge, die die Roboter nicht sehen konnten, und umgekehrt.
Was sie nicht behaupten
- Sie haben nicht jeden Bug gefunden: Sie fanden das Potenzial für Bugs (die unverschlossenen Türen), aber sie haben nicht jeden einzelnen Bug manuell verifiziert, um zu sehen, ob er tatsächlich funktioniert.
- Sie veröffentlichen nicht die „Kill-Liste“: Sie veröffentlichten die Karte (die Struktur der Treiber), damit Forscher ihre eigene Arbeit leisten können. Die spezifischen „gefährlichen Stellen“ (die exakten Code-Positionen der Bugs) hielten sie jedoch privat, um zu verhindern, dass Akteure mit bösen Absichten die Karte nutzen können, um sofort Computer anzugreifen.
- Es ist keine magische Lösung: Es ist ein Werkzeug, um Forschern zu helfen, ihre Arbeit zu priorisieren. Es verwandelt ein Problem der Suche nach der Nadel im Heuhaufen in ein Problem von der Art: „Hier ist eine Liste der wahrscheinlichsten Nadeln“.
Das Fazit
Die Autoren haben Google Maps für die Sicherheit von Windows-Treibern gebaut. Vorher mussten Forscher ziellos umherwandern oder sich auf eine kurze Liste bekannter Krimineller verlassen. Jetzt haben sie eine umfassende, durchsuchbare Datenbank, die ihnen genau zeigt, wo die Türen sind, welche davon unverschlossen sind und welche in den ältesten, vernachlässigtsten Teilen der Stadt liegen. Dies ermöglicht es ihnen, ihre Energie auf die Orte zu konzentrieren, die am wichtigsten sind.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.