Gabinet

Implementacja przestrzeni adresowej Układ Randomizacji w Windowsie

Badania Kliniczne - nowe otwarcie. Debata. 20.05.2015

Badania Kliniczne - nowe otwarcie. Debata. 20.05.2015
Anonim

Badacze bezpieczeństwa z CERT stwierdzili, że system Windows 10, Windows 8,1 i Windows 8 nie są w stanie odpowiednio dobrać losowo każdej aplikacji, jeśli ASLR działający w całym systemie jest włączony przez EMET lub Windows Defender Exploit Guard. Microsoft odpowiedział, że implementacja Randomizacji układu przestrzeni adresowej (ASLR) w systemie Microsoft Windows działa zgodnie z zamierzeniami. Spójrzmy na ten problem.

Co to jest ASLR

ASLR jest rozszerzany jako Randomizacja Układu Przestrzeni Adresowej, funkcja zadebiutowała w systemie Windows Vista i została zaprojektowana w celu zapobiegania atakom wykorzystującym powtórne kody. Ataki są powstrzymywane przez ładowanie wykonywalnych modułów na nieprzewidywalnych adresach, co łagodzi ataki, które zwykle zależą od kodu umieszczonego w przewidywalnych lokalizacjach. ASLR został dostosowany do zwalczania technik exploitów, takich jak programowanie zorientowane na Return, które opiera się na kodzie, który jest zwykle ładowany do przewidywalnej lokalizacji. Poza jednym z głównych wad ASLR jest to, że musi być powiązany z flagą / DYNAMICBASE.

Zakres zastosowania

ASLR zapewnia ochronę aplikacji, ale nie obejmować ogólnosystemowe ograniczenia. Z tego właśnie powodu wydano pakiet Microsoft EMET. EMET zapewniało, że obejmuje ono zarówno ogólnosystemowe, jak i specyficzne dla aplikacji ograniczenia. EMET okazał się twarzą ogólnoustrojowych działań ograniczających, oferując użytkownikom końcowy interfejs. Jednak począwszy od aktualizacji Windows 10 Fall Creators, funkcje EMET zostały zastąpione przez Ochronę przed zagrożeniami Windows Defender.

ASLR może być włączany obowiązkowo zarówno dla EMET, jak i Windows Defender Exploit Guard dla kodów, które nie są powiązane z flagą / DYNAMICBASE a to może być wdrożone albo na podstawie aplikacji, albo na podstawie całego systemu. Oznacza to, że system Windows automatycznie przeniesie kod do tymczasowej tabeli relokacji, a zatem nowe położenie kodu będzie się różnić przy każdym ponownym uruchomieniu. Począwszy od systemu Windows 8, zmiany w projekcie nakazały, aby ASLR dla całego systemu miał włączony system ASLR z włączonym oddolnym systemem, aby zapewnić entropię obowiązkowej ASLR.

Problem

ASLR jest zawsze bardziej efektywny, gdy entropia jest czymś więcej. W znacznie prostszy sposób zwiększenie entropii zwiększa liczbę przestrzeni poszukiwań, które muszą zostać zbadane przez atakującego. Jednak zarówno EMET, jak i Windows Defender Exploit Guard umożliwiają ASLR w całym systemie bez włączania ASLR z całego systemu. Gdy tak się stanie, programy bez / DYNMICBASE zostaną przeniesione, ale bez entropii. Jak wyjaśniliśmy wcześniej, brak entropii sprawiłby, że atakujący byliby względnie łatwiejsi, ponieważ program będzie za każdym razem ponownie uruchamiał ten sam adres.

Ten problem dotyczy obecnie systemów Windows 8, Windows 8.1 i Windows 10, które mają włączoną obsługę ASLR w całym systemie za pośrednictwem Windows Defender Exploit Guard lub EMET. Ponieważ przeniesienie adresu ma charakter inny niż DYNAMICBASE, zwykle zastępuje on zalety ASLR.

To, co Microsoft ma do powiedzenia

Firma Microsoft była szybka i wydała już oświadczenie. To właśnie mieli do powiedzenia ludzie z firmy Microsoft,

"Zachowanie obowiązkowego ASLR obserwowanego przez CERT jest zgodne z projektem, a ASLR działa zgodnie z zamierzeniami. Zespół WDEG bada problem z konfiguracją, który uniemożliwia ogólnosystemowe włączanie oddolnego ASLR i pracuje nad jego odpowiednim rozwiązaniem. Ten problem nie powoduje dodatkowego ryzyka, ponieważ występuje tylko podczas próby zastosowania innej niż domyślna konfiguracji w istniejących wersjach systemu Windows. Nawet wtedy, efektywna postawa bezpieczeństwa nie jest gorsza niż to, co jest zapewniane domyślnie i łatwo jest obejść problem poprzez kroki opisane w tym poście. "

Oni szczegółowo opisali obejścia, które pomogą w osiągnięciu pożądanego poziomu asekuracyjny. Istnieją dwa obejścia dla osób, które chciałyby włączyć obowiązkowe ASLR i randomizację oddolną dla procesów, których EXE nie wyraził zgody na ASLR.

1] Zapisz następujące dane w pliku optin.reg i zaimportuj je, aby włączyć obowiązkowe ASLR i całą procedurę randomizacji z dołu do góry.

Edytor rejestru systemu Windows wersja 5.00 [HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Session Manager kernel] "MitigationOptions" = hex: 00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

2] Włącz obowiązkowy ASLR i randomizację oddolną poprzez program- specyficzna konfiguracja za pomocą WDEG lub EMET.

Said Microsoft - Ten problem nie stwarza dodatkowego ryzyka, ponieważ występuje tylko przy próbie zastosowania innej niż domyślna konfiguracji w istniejących wersjach systemu Windows.