Microsoft dokonuje fundamentalnej zmiany w zakresie zabezpieczenia systemu operacyjnego Windows, zwracając się do języka programowania rdzy, aby budować bezpieczniejsze, bardziej niezawodne sterowniki. Zespół powierzchniowy firmy jest w czołówce tego wysiłku, mając na celu wyeliminowanie wszystkich klas błędów związanych z pamięcią.
Ten ruch sygnalizuje poważne zaangażowanie w bezpieczeństwo pamięci, co jest tematem coraz większej pilności w branży oprogramowania. Przyjmując Rust, Microsoft bezpośrednio zajmuje się lukami związanymi z C i C ++. Firma wysłała już pierwszych sterowników opartych na rdzy w swoim nowym Copilot+ PCS.
Dlaczego rdzewieć? Nowa podstawa bezpieczeństwa sterownika
Od dziesięcioleci rozwój sterowników polegał na C i C ++, potężnych językach, które oferują bezpośredni dostęp do sprzętu. Jednak stawiają one ciężar zarządzania pamięcią wprost dla programisty. Może to prowadzić do subtelnych, ale niebezpiecznych błędów, które powodują awarie systemu i tworzą dziury bezpieczeństwa.
lub błędy „bez użycia”, mogą być wykorzystywane przez atakujących w celu uzyskania kontroli nad systemem. Te luki w zakresie bezpieczeństwa pamięci były trwałym wyzwaniem dla całej branży.
Architektura Rust zapewnia przekonujące rozwiązanie. Jego kompilator działa jako czujny partner, egzekwując ścisłe zasady dotyczące własności pamięci i pożyczek. Ten „sprawdzanie pożyczki” jest kluczową funkcją, która programowo zapobiega tym niebezpiecznym błędom przed kiedykolwiek kompilowaniem i uruchomieniem kodu.
Wprowadzenie „Windows-Drivers-RS”: zestaw narzędzi open source
w celu przeniesienia tego przejścia, Microsoft uruchomił A Projekt open-source na github o nazwie `Windows-Rivers-rs`. Ten zestaw narzędzi zapewnia programistom niezbędne komponenty do rozpoczęcia budowania sterowników systemu Windows w Rust.
Repozytorium to zbiór „skrzyń”-terminu na pakiety. Zawiera „wdk-sys” dla bezpośrednich powiązań z zestawem sterownika Windows (WDK), `WDK` dla bezpiecznych, idiomatycznych opakowań i pomocników, takich jak` WDK-Alloc` dla alokacji pamięci i `WDK-Panic` w zakresie obsługi błędów.
Projekt celem jest obsługę wszystkich głównych modeli sterowników Windows, w tym modelu sterownika Windows (WDM), Kernel-Mode Framework. (Kmdf) i framework sterowników w trybie użytkownika (UMDF).
Podczas gdy Microsoft zauważa, że projekt jest wciąż na wczesnym etapie i nie jest jeszcze zalecany do powszechnego użytku produkcyjnego, aktywnie zachęca do eksperymentów i współpracy społeczności za pośrednictwem forum GitHub.