ASLR w Windows 8 i Windows 10 pozostaje bezużyteczny

ASLR w Windows 8 i Windows 10 pozostaje bezużyteczny

Autor: Krzysztof Sulikowski

Opublikowano: 11/21/2017, 2:09 AM

Liczba odsłon: 4987

Windows w wersji 8 i wyższych posiada nowo odkrytą słabość, która czyni ASLR bezużytecznym. ASLR (Address Space Layout Randomization) tłumaczony jest jako mechanizm losowego generowania lokalizacji alokacji pamięci wirtualnej. Mówiąc jaśniej, zaimplementowany już w Windows Vista mechanizm używa losowego rozmieszczania kodu procesów, by zapobiegać atakom związanym z naruszeniem pamięci, np. przepełnieniom bufora. Okazuje się, że ASLR nie został poprawnie zaimplementowany w Windows 8 i Windows 10.

ASLR w Windows 10

Podstawowym zarzutem kierowanym przeciw ASLR w następcach Visty i Siódemki jest to, że nie wykonuje swojego podstawowego zadania, jakim jest randomizacja przestrzeni adresowej. Mechanizm stał się więc bezużyteczny. Odkrycie opisano na stronie instytutu CERT. Z raportu wynika, że Windows 8 wprowadził zmiany w implementacji ASLR. By uzyskać entropię, wymagane jest włączenie działającego "od dołu do góry" systemowego ASLR. Narzędzia, które włączają systemowy ASLR bez ustawienia oddolnego ASLR, nie będą mogły we właściwy sposób randomizować plików wykonywalnych. W taki sposób działa zarówno EMET (Zestaw narzędzi rozszerzonego środowiska ograniczającego ryzyko), jak i Windows Defender Exploit Guard. Choć ten drugi posiada możliwość włączenia obu rodzajów ASLR, opcja "Włączone domyślnie" w graficznym interfejsie użytkownika nie odzwierciedla właściwej wartości w rejestrze. W rezultacie następować będzie relokacja programów, ale zawsze do tych samych adresów - także po ponownym uruchomieniu komputera i w innych systemach. W przypadku Windows 7 relokacja będzie prowadziła do innego adresu po każdym nowym restarcie.

Dobra wiadomość jest taka, że błąd można naprawić samodzielnie. Sposób przedstawił jego odkrywca, Will Dormann. Mamy tu do czynienia z edycją rejestru, dlatego metodę stosujemy na własną odpowiedzialność:

  1. Tworzymy plik tekstowy o następującej treści:
  2. Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
    “MitigationOptions”=hex:00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00
  3. Zapisujemy go z rozszerzeniem .reg
  4. Otwieramy Edytor rejestru i klikamy Plik > Importuj
  5. Wybieramy utworzony przed chwilą plik .reg.

Powyżej opisana metoda może stanowić rozwiązanie tymczasowe, nim Microsoft wypuści oficjalną łatkę. Firma nie odniosła się jeszcze do ujawnionych informacji.