Udostępnij za pośrednictwem


Zabezpieczenia oparte na wirtualizacji (VBS)

Zabezpieczenia oparte na wirtualizacji wykorzystują wirtualizację sprzętową oraz hypervisor systemu Windows do utworzenia izolowanego środowiska wirtualnego, które staje się korzeniem zaufania systemu operacyjnego, zakładając, że jądro może zostać naruszone. System Windows używa tego izolowanego środowiska do hostowania wielu rozwiązań zabezpieczeń, zapewniając im znacznie większą ochronę przed lukami w zabezpieczeniach w systemie operacyjnym i zapobiegającym wykorzystaniu złośliwych luk w zabezpieczeniach, które próbują pokonać zabezpieczenia. VbS wymusza ograniczenia ochrony ważnych zasobów systemu i systemu operacyjnego lub ochrony zasobów zabezpieczeń, takich jak uwierzytelnione poświadczenia użytkownika.

Jednym z przykładowych rozwiązań zabezpieczeń jest integralność pamięci operacyjnej, która wzmacnia zabezpieczenia systemu Windows przez uruchomienie integralności kodu trybu jądra w izolowanym środowisku wirtualnym VBS. Integralność kodu trybu jądra to proces systemu Windows, który sprawdza wszystkie sterowniki i pliki binarne trybu jądra przed ich uruchomieniem i zapobiega ładowaniu niepodpisanych lub niezaufanych sterowników lub plików systemowych do pamięci systemowej. Integralność pamięci ogranicza również alokacje pamięci jądra, które mogą być użyte do naruszenia bezpieczeństwa systemu. Zapewnia, że strony pamięci jądra stają się wykonywalne dopiero po przejściu kontroli integralności kodu w bezpiecznym środowisku uruchomieniowym, a same strony wykonywalne nigdy nie są zapisywalne. W ten sposób, nawet jeśli istnieją luki w zabezpieczeniach, takie jak przepełnienie buforu, które umożliwiają złośliwemu oprogramowaniu próbę zmodyfikowania pamięci, nie można modyfikować stron kodu wykonywalnego, a zmodyfikowana pamięć nie może być wykonywalna.

Notatka

Integralność pamięci jest czasami określana jako integralność kodu chronionego przez hypervisor (HVCI) lub jako integralność kodu wymuszana przez hypervisori została pierwotnie wydana jako część Device Guard. Funkcja Device Guard nie jest już używana z wyjątkiem lokalizacji integralności pamięci i ustawień VBS w zasadach grupy lub rejestrze systemu Windows.

VBS wymaga, aby następujące składniki były obecne i prawidłowo skonfigurowane.

Wymaganie sprzętowe Szczegóły
64-bitowy procesor Zabezpieczenia oparte na wirtualizacji (VBS) wymagają funkcji hypervisor systemu Windows, która jest obsługiwana tylko w 64-bitowych procesorach IA z rozszerzeniami wirtualizacji, w tym Intel VT-X i AMD-v.
Translacja adresów drugiego poziomu (SLAT) VBS wymaga również, aby obsługa wirtualizacji procesora obejmowała translację adresów drugiego poziomu (SLAT), czyli Intel VT-X2 z rozszerzonymi tabelami stron (EPT) lub AMD-v z indeksowaniem szybkiej wirtualizacji (RVI).
IOMMU lub SMMU (Intel VT-D, AMD-Vi, Arm64 SMMU) Wszystkie urządzenia we/wy, które mogą mieć funkcję DMA, muszą znajdować się za rozwiązaniem IOMMU lub SMMU. Za pomocą IOMMU można zwiększyć odporność systemu na ataki pamięci.
Moduł TPM (Trusted Platform Module) 2.0 Aby uzyskać więcej informacji, zobacz Trusted Platform Module (TPM) 2.0.
Obsługa oprogramowania układowego na potrzeby ochrony SMM Oprogramowanie układowe systemu musi być zgodne z zaleceniami dotyczącymi wzmacniania funkcjonalności kodu SMM opisanego w specyfikacji Tabela ograniczania zabezpieczeń programu Windows SMM (WMST). Specyfikacja narzędzia WSMT zawiera szczegółowe informacje o tabeli ACPI, która została utworzona do użycia z systemami operacyjnymi Windows obsługującymi funkcje VBS. Oprogramowanie układowe musi zaimplementować zabezpieczenia opisane w specyfikacji narzędzia WSMT i ustawić odpowiednie flagi ochrony zgodnie ze specyfikacją w celu raportowania zgodności z tymi wymaganiami do systemu operacyjnego.
Raportowanie pamięci ujednoliconego rozszerzalnego oprogramowania układowego (UEFI) Oprogramowanie układowe UEFI musi być zgodne z następującymi wytycznymi dotyczącymi formatowania raportowania mapy pamięci i alokacji pamięci w celu zapewnienia zgodności oprogramowania układowego z językiem VBS.

  • Tabela atrybutów pamięci UEFI w wersji 2.6 (MAT) — Aby zapewnić zgodność z VBS, oprogramowanie układowe musi wyraźnie oddzielać zakresy pamięci środowiska uruchomieniowego EFI dla kodu i danych oraz zgłaszać je do systemu operacyjnego. Odpowiednie segregowanie i raportowanie zakresów pamięci środowiska uruchomieniowego EFI umożliwia VBS stosowanie niezbędnych zabezpieczeń stron do stron kodowych usług środowiska uruchomieniowego EFI w bezpiecznym regionie VBS. Przekazywanie tych informacji do systemu operacyjnego odbywa się przy użyciu EFI_MEMORY_ATTRIBUTES_TABLE. Aby wdrożyć UEFI MAT, postępuj zgodnie z następującymi wytycznymi:
    1. Całe środowisko uruchomieniowe EFI musi być opisane w tej tabeli.
    2. Wszystkie odpowiednie atrybuty dla stron EfiRuntimeServicesData i EfiRuntimeServicesCode muszą być oznaczone.
    3. Te zakresy muszą być wyrównane do granic stron (4 KB) i nie mogą się nakładać.
  • ochrony stron EFI —Wszystkie wpisy muszą zawierać atrybuty EFI_MEMORY_RO, EFI_MEMORY_XP lub oba. Cała pamięć UEFI oznaczona jako plik wykonywalny musi być tylko do odczytu. Pamięć oznaczona jako zapisywalna nie może być plikiem wykonywalnym. Wpisy nie mogą być pozostawione bez ustawionych atrybutów wskazujących pamięć, która jest zarówno wykonywalna, jak i zapisywalna.
  • Żądanie Bezpiecznego Nadpisania Pamięci (MOR) wersja 2 Protokół Secure MOR w wersji 2 został rozszerzony w celu ochrony ustawienia blokady MOR przy użyciu bezpiecznej zmiennej UEFI. Pomaga to chronić przed zaawansowanymi atakami pamięci. Aby uzyskać szczegółowe informacje, zobacz Implementacja protokołu Secure MOR.
    Sterowniki zgodne z integralnością pamięci Upewnij się, że wszystkie sterowniki systemowe zostały przetestowane i zweryfikowane pod kątem zgodności z integralnością pamięci. Zestaw Windows Driver Kit i Driver Verifier zawierają testy zgodności sterowników z integralnością pamięci. Istnieją trzy kroki weryfikacji zgodności sterowników:
    1. Użyj weryfikatora sterowników z włączonymi kontrolami zgodności integralności kodu oraz .
    2. Uruchom test gotowości integralności kodu Hypervisor w programie Windows HLK.
    3. Przetestuj sterownik w systemie z włączonym VBS i integralnością pamięci. Ten krok jest niezbędny do zweryfikowania zachowania sterownika z integralnością pamięci, ponieważ narzędzia do analizy kodu statycznego po prostu nie są w stanie wykrywać wszystkich naruszeń integralności pamięci w czasie wykonywania.
    Bezpieczny rozruch Bezpieczny rozruch musi być włączony na urządzeniach korzystających z VBS. Aby uzyskać więcej informacji, zobacz Secure Boot

    VBS działa na maszynach wirtualnych, które mają obsługę wirtualizacji zagnieżdżonej lub włączony VSM gościa. Ten ostatni jest domyślnie włączony dla maszyn wirtualnych generacji 2 na Hyper-V. Obejmuje to również wszystkie maszyny wirtualne generacji 2 na platformie Microsoft Azure oraz generacji 1 z włączoną wirtualizacją zagnieżdżoną. Lista obsługiwanych serii maszyn wirtualnych platformy Azure znajduje się w poniższej tabeli.

    nazwa serii maszyn wirtualnych Zagnieżdżona Wirtualizacja Generacja maszyn wirtualnych
    Av2 Tak 1 (niektóre rozmiary wewnętrzne obsługują generację 2)
    B Nie 1 i 2
    Dsv2/Dv2/Dv3/Ev3 Tak 1
    Dsv3/Ddsv3 Tak 1 i 2
    Dsv4/Ddsv4 Tak 1 i 2
    Esv3/Edsv3 Tak 1 i 2
    Esv4/Edsv4 Tak 1 i 2
    Ev4/Edv4 Tak Ev4 - tylko 1
    Edv4 -1&2
    Dv4/Ddv4 Tak 1 i 2
    Dv5/Ddv5/Dsv5/Ddsv5 Tak 1 i 2
    Ev5/Edv5/Esv5/Edsv5 Tak 1 i 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 Tak 1 i 2
    Ebsv5/Edbsv5 Tak 1 i 2
    Fsv2 Tak 1 i 2
    Fx Tak 2
    Lsv2 Tak 1 i 2

    Aby uzyskać więcej informacji na temat funkcji Hyper-V, zobacz Hyper-V w systemie Windows Server 2016 lub Introduction to Hyper-V on Windows 10. Aby uzyskać więcej informacji na temat funkcji hypervisor, zobacz Specyfikacje funkcji Hypervisor.