Windows 10: Producenci sprzętu stracą możliwość podpisywania sterowników
Jak słusznie zauważył kilka dni temu Rafael Rivera, Windows 10 wkrótce przestanie akceptować sterowniki podpisane przez instytucję inną, niż sam Microsoft. Naturalnie, to nie Microsoft pisze owe sterowniki, a producenci sprzętu. Nadchodząca zmiana dotyczy sposobu ich certyfikowania. Już niedługo tylko Redmond będzie decydować o tym, który sterownik jest zaufany. Wszystkie inne nie będą działać.
04.12.2020 16:54
Windows Vista wprowadził obowiązkowe podpisywanie kodu ładowanego jako sterownik jądra. Celem tej innowacji było powstrzymanie systemu przed ładowaniem "byle czego": ładując kod jako sterownik, można go bowiem ukryć przed systemem, użytkownikiem i antywirusami. Możemy wtedy skanować system do woli i żadnego szkodnika nie znajdziemy. Będzie on jednak pracował.
Trust me, I'm a dolphin
Obowiązkowe podpisywanie sterowników jądra oznacza, że aby załadować zewnętrzny kod, musi on być opatrzony podpisem wygenerowanym przez któryś z Zaufanych Głównych Urzędów Certyfikacji. Co więcej, podpis ten musi pochodzić z certyfikatu zdolnego do podpisywania sterowników. A to dlatego, że "zaufane certyfikaty" można sobie doinstalować. Korzystałyby z tego wirusy: skoro kod trojana musi być podpisany, to będzie. Przed załadowaniem go do jądra, doinstalujemy jego certyfikat jako zaufany…
Na szczęście, stosowane rozwiązanie nie jest tak łatwe do oszukania. Certyfikat musi nie tylko być "zaufany" (o to możemy zadbać samodzielnie lub może to za nas zrobić wirus), ale także być wydany przez urząd nadrzędny, którym jest "Microsoft Code Verification Root". Stworzenie takiego certyfikatu wymaga znajomości klucza prywatnego, którego właścicielem jest Microsoft. Klucz ten jest tajny i pilnie strzeżony.
Zrób to sam: certyfikat
Producenci sterowników, na przestrzeni lat, otrzymali certyfikaty zdolne do podpisywania kodu, podpisane przez Microsoft Code Verification Root. Pochodzą one z urzędów certyfikacji niższego rzędu. Tracą one ważność, a Microsoft poinformował, że nie planuje ich przedłużyć. Oznacza to, że jedynym certyfikatem wystawionym przez "Code Verification" będzie wkrótce… "Code Verification Root". I tyle.
Podpisywanie kodu przez urząd uprawniony do oznaczania sterowników jako bezpieczne stanie się niemożliwe. Producenci sprzętu będą musieli wysyłać swoje sterowniki do Microsoftu i to tam, w ramach certyfikacji WHQL, otrzymają one podpis (po czym zostaną umieszczone w Windows Update).
Centralne źródło zaufania
Skąd ta zmiana? Microsoft chce być jedynym punktem zaufania dla kodu. Jeżeli producent utraci kontrolę nad certyfikatem, może on posłużyć do podpisywania kodu, który nie jest zaufany. W ten sposób twórcy wirusów odzyskają możliwość ładowania kodu w trybie jądra. Takie certyfikaty są oczywiście naprędce odwoływane (przez publikację CRL), ale zanim się to stanie, przestępcy mają wolną rękę. Najsłynniejszym przypadkiem takiego zabiegu jest StuxNet, wykorzystujący klucz firmy Realtek.
Wydane dotychczas sterowniki nie przestaną działać. Nie zachodzi konieczność wydania nowych wersji sterowników dla setek tysięcy sztuk porzuconego przez twórców sprzętu, na którym dziś działa najnowszy Windows 10. W momencie powstania, zostały one bowiem podpisane certyfikatem, który wtedy umiał podpisywać moduły jądra. Podpis jest więc ważny i sterownik będzie dalej działać.
Problemy leżą gdzie indziej
Powodem, dla którego jakiś sterownik może nie działać w Windows 10, jest… Windows Defender, a raczej funkcja HVCI (Izolacja rdzenia), marketingowo opisana właśnie jako składnik Defendera. Jeżeli jakiś sterownik nie jest z nią zgodny, nie będą działać funkcje ochrony wspomaganej wirtualizacją. Należy do nich, poza opisywaną już Izolacją rdzenia, funkcja ochrony poświadczeń (Credential Guard). Nie opisywaliśmy dotychczas tej egzotycznej funkcji Defendera.
Decyzja Microsoftu o nieprzedłużeniu certyfikatów to jeden z tych kroków, które mają niewątpliwe uzasadnienie merytoryczne, ale kończą się zwiększonym uzależnieniem od producenta. Niestety, w świecie gdzie przestępcy żądają okupów od szpitali podczas pandemii, cyfrowe bezpieczeństwo będzie wymagać wyrzeczeń.