Udostępnij przez


Ochrona stosu wymuszona sprzętowo w trybie jądra systemu

Dotyczy: Windows Server 2025

Funkcja zabezpieczeń Sprzętowa ochrona stosu została wprowadzona w celu ochrony procesów trybu użytkownika i zapobiegania przejęciu stosu w systemie Windows 10. Ochrona stosu wymuszana przez sprzęt jest teraz rozszerzana na tryb jądra, który chroni stosy w jądrze przed atakami opartymi na programowaniu zwrotnym (ROP). ROP jest powszechnym sposobem, w jaki osoby atakujące mogą przejąć kontrolę nad przepływem wykonywania programu i kontynuować łańcuch ataków w celu wykonania żądanego kodu przez atakującego.

Teraz, gdy stosy trybu użytkownika są chronione i zapobiegają modyfikacji adresu zwrotnego przez kod trybu jądra, osoby atakujące nie mogą wykorzystać luk w zabezpieczeniach pamięci. Klienci już widzą, w jaki sposób sprzętowa ochrona stosu w trybie jądra uniemożliwia sterownikom powiązanym z wirusami i złośliwym oprogramowaniem wykonanie ich złośliwego ładunku.

Sprzętowa ochrona stosu w trybie jądra jest domyślnie wyłączona, ale klienci mogą ją włączyć, jeśli spełnione są wymagania wstępne. Ten artykuł zawiera więcej informacji na temat sprzętowej ochrony stosu w trybie jądra i pokazuje, jak włączyć tę funkcję w aplikacji Zabezpieczenia Windows i za pomocą zasad grupy.

Prerequisites

  • Aktualizacja systemu Windows 11 2022 lub nowsza
  • Aplikacja Zabezpieczenia Windows w wersji 1000.25330.0.9000 lub nowszej
  • Sprzęt obsługujący technologię Intel Control-flow Enforcement Technology (CET) lub AMD Shadow Stacks.
    • Dla procesorów Intel, Intel Core Mobile 11. generacji i AMD Zen 3 Core (i nowszych).
  • Włączone są zabezpieczenia oparte na wirtualizacji (VBS) i integralność kodu wymuszana przez funkcję hypervisor (HVCI).

Używanie stosów w tle w celu wymuszenia integralności przepływu sterowania

Dzięki sprzętowej ochronie stosu w trybie jądra wszystkie stosy jądra mają odpowiadający im stos w tle, aby wymusić integralność przepływu sterowania. Jeśli osoby atakujące wykorzystają lukę w zabezpieczeniach pamięci, ich następnym krokiem jest przekierowanie przepływu sterowania programem do żądanej przez atakującego lokalizacji.

Stosy cieni zapobiegają przejęciu przepływu sterowania. System Windows używa funkcji Control Flow Guard do wymuszania integralności przy wywołaniach pośrednich oraz Hardware-enforced Stack Protection do wymuszania integralności przy zwrotach w celu ochrony przed programami wykorzystującymi luki w zabezpieczeniach, które mają na celu przekierowanie przepływu wykonywania programu. Control Flow Guard wykorzystuje mapę bitową do dodawania adnotacji do prawidłowych celów skoku, aby zapobiec przekierowaniu przepływu sterowania do dowolnych lokalizacji przez naruszone wywołanie pośrednie.

Stos cieni utrzymuje (chroniony sprzętowo) stos pomocniczy dla wszystkich stosów wywołań, a za każdym razem, gdy instrukcja CALL lub RET wypycha lub wyskakuje wartość na stos, odpowiedni wpis znajduje się w stosie cienia. Gdy wystąpi niezgodność adresu zwrotnego, system uruchamia niebieski ekran, aby zapobiec niezamierzonemu zachowaniu kontroli programu.

Aby uzyskać więcej informacji, zobacz wpis w blogu Opis sprzętowej ochrony stosu.

Włącz sprzętową ochronę stosu w trybie jądra w Zabezpieczeniach Windows

Virtualization-Based Zabezpieczenia (VBS) i integralność kodu wymuszana przez funkcję hypervisor (HVCI) są wymaganiami wstępnymi dla sprzętowej ochrony stosu w trybie jądra, przed kontynuowaniem należy najpierw upewnić się, że te funkcje są włączone. Są one automatycznie włączane w systemach Windows, które spełniają minimalne wymagania sprzętowe.

Włącz VBS i HVCI, wykonując następujące czynności:

  1. Otwórz aplikację Zabezpieczenia systemu Windows .

  2. Przejdź do szczegółów > izolacji rdzenia zabezpieczeń urządzenia > Integralność pamięci.

  3. Przełącz funkcję w pozycji Włączone.

  4. Po wprowadzeniu tej zmiany musisz ponownie uruchomić urządzenie.

Zrzut ekranu przełącznika włączającego lub wyłączającego integralność pamięci.

Włączanie sprzętowej ochrony stosu w trybie jądra

  1. Otwórz aplikację Zabezpieczenia systemu Windows .

  2. Przejdź do szczegółów > izolacji Device Security > Core, Tryb jądra, Sprzętowa ochrona stosu.

  3. Przełącz funkcję w pozycji Włączone.

Zrzut ekranu przedstawiający przełącznik włączania lub wyłączania sprzętowej ochrony stosu w trybie jądra.

Włącz sprzętową ochronę stosu w trybie jądra w Edytorze lokalnych zasad grupy

W przypadku klientów korporacyjnych można włączyć sprzętową ochronę stosu w trybie jądra przy użyciu zasad grupy.

  1. Otwórz Edytor lokalnych zasad grupy.

  2. Przejdź do pozycji Konfiguracja > komputera Szablony >> administracyjne System Device Guard > Włącz zabezpieczenia oparte na wirtualizacji.

  3. Upewnij się, że zabezpieczenia oparte na wirtualizacji są włączone.

  4. W obszarze Opcje znajdź ochronę stosu wymuszaną przez sprzęt w trybie jądra. Wybierz opcję Włączone w trybie wymuszania.

  5. Wybierz i zastosuj. Następnie ok.

Zrzut ekranu przedstawiający miejsce, w którym można włączyć sprzętową ochronę stosu w trybie jądra przy użyciu zasad grupy.

Niezgodne sterowniki

Istnieje niewielki zestaw sterowników, które nie są jeszcze kompatybilne. Sterowniki, które wykazują potencjalnie złośliwe zachowanie, takie jak przejmowanie adresów zwrotnych w celu obejścia zasad przepływu sterowania, nie są zgodne i są dodawane do listy zablokowanych sterowników podatnych na ataki w celu ochrony stosu w trybie jądra wymuszonej sprzętowo. Po współpracy z dostawcami sterowników w celu wykonania zaciemniania kodu w sposób zgodny ze stosem w tle, te sterowniki są dozwolone.

Aby zapewnić dobre wrażenia użytkownika i uniknąć niebieskich ekranów komputera, system Windows utrzymuje listę zablokowanych znanych niekompatybilnych sterowników w celu ochrony stosu w trybie jądra wymuszonej sprzętowo. Są to sterowniki, o których wiadomo, że przejmują adresy zwrotne w jądrze. Gdy ta funkcja jest włączona, sterownik nie może się załadować (w przeciwieństwie do niebieskiego ekranu, gdy podejmowana jest próba przejęcia adresu zwrotnego). Dodatkowo, jeśli system ma już zainstalowany sterownik na liście zablokowanych, ta funkcja nie może się włączyć. Możesz włączyć tę funkcję, odinstalowując skojarzony sterownik.

Przeglądanie niekompatybilnych sterowników

Tej funkcji nie można włączyć, dopóki niezgodności nie zostaną rozwiązane za pomocą zaktualizowanej wersji od dostawcy sterownika lub przez usunięcie aplikacji, która zainstalowała sterownik. Aby wyświetlić listę niekompatybilnych sterowników, wybierz "Przejrzyj niekompatybilne sterowniki".

Zrzut ekranu pokazujący, gdzie znaleźć ewentualne niekompatybilne sterowniki.

Niektóre aplikacje używają sterowników, które są niezgodne ze sprzętową ochroną stosu w trybie jądra. Na przykład aplikacje, które używają aparatów zaciemniania do ochrony adresu IP i zaciemniania przepływu sterowania, które są niezgodne ze stosami w tle. Gdy niezabezpieczony sterownik próbuje załadować się z włączoną tą funkcją zabezpieczeń, zostanie wyświetlony monit "Nie można załadować sterownika na tym urządzeniu".

Zrzut ekranu przedstawiający okno dialogowe alertu o braku załadowania sterownika.

Opcjonalnie możesz wyłączyć tę funkcję zabezpieczeń, chociaż spowoduje to obniżenie poziomu bezpieczeństwa urządzenia. Zawsze możesz ponownie włączyć tę funkcję w aplikacji Zabezpieczenia systemu Windows.