Windows-Treiber in Rust für mehr Freiheit und Sicherheit

Das Microsoft-Team hat kürzlich Rust-Komponenten zur Entwicklung von Windows-Treibern auf GitHub veröffentlicht. Ziel dieser überraschenden Initiative sind sicherere und zuverlässigere Windows-Treiber.

Microsoft hat einen aufregenden Schritt unternommen, um die Sicherheit, Freiheit und Zuverlässigkeit von Windows-Treibern zu verbessern. Das Surface-Entwicklerteam hat kürzlich auf GitHub eine Reihe von Rust-Paketen, die als „Crates“ bezeichnet werden, vorgestellt. Diese Crates sind Open Source und ermöglichen es EntwicklerInnen, Windows-Treiber mit der Programmiersprache Rust zu schreiben. Besonders interessant ist eben die Tatsache, dass Microsoft selbst diese Tools veröffentlicht hat.

Die Rust-Crates ermöglichen es ProgrammiererInnen, Treiber zu erstellen, die mit dem Windows Driver Model (WDM) und den Windows Driver Frameworks (WDF) sowohl im Benutzer- als auch im Kernel-Modus kompatibel sind. Sie erweitern ihre Unterstützung auch auf W32-Dienste und bieten eine umfassende Lösung für die Treiberentwicklung. Von der Erstellung von Systemdiensten über die Arbeit auf Kernel-Ebene bis zur Annäherung an Hardwarekomponenten bieten diese Rust-Pakete EntwicklerInnen eine vielseitige Plattform.

Feedback aus der Entwicklergemeinschaft sammeln

Zunächst ist wichtig zu erwähnen, dass diese Initiative in erster Linie ein experimentelles Testprojekt ist. Microsoft zielt darauf ab, Experimente und Diskussionen in der Entwicklergemeinschaft zu fördern. Es ist derzeit nicht für den kommerziellen Einsatz vorgesehen.

Derzeit unterstützen die auf Crates.io verfügbaren sechs Pakete ausschließlich die Kernel Mode Driver Framework (KMDF) Version 1.33. Die ProjektbetreiberInnen haben jedoch darauf hingewiesen, dass andere Bindungen generiert werden können. Interessierte EntwicklerInnen können das GitHub-Repository des Projekts importieren und in der Datei build.rs im Ordner wdk-sys konfigurieren. In Zukunft plant das Team, die Kompatibilität des Projekts um andere Versionen des Windows Development Kit (WDK) zu erweitern.

Was diese Rust-Crates auszeichnet, ist ihre Fähigkeit, die Lücke zwischen Rust und dem Windows Development Kit zu schließen und eine Foreign Function Interface (FFI) zu den Windows APIs im WDK anzubieten. Um mit diesen Tools zu arbeiten, benötigen EntwicklerInnen LLVM, Cargo Make und ein installiertes Windows Development Kit.

Motivation, Rust in Microsoft-Systemkern zu integrieren

In einem verwandten Bereich hat die Hardwareabteilung von Microsoft bereits die Initiative ergriffen, Beispiel-Treiber in Rust neu zu schreiben. Dies zeigt das Engagement von Microsoft, Rust in seinen Systemkern zu integrieren. Ein Schritt, der bereits 2020 begonnen hat. Die Motivation hinter diesem Übergang, wie von Microsoft angegeben, ist die Verfolgung höherer Sicherheit, ohne die Leistung zu beeinträchtigen.

Zusammenfassend birgt die Veröffentlichung von Windows-Treiberentwicklungstools auf Basis von Rust durch Microsoft die Aussicht auf ein sichereres und zuverlässigeres Windows-Treiberökosystem in der Zukunft.

Quelle: heise.de