Randomizacja ASLR działa, jak należy. Winny jest Windows Defender Exploit Guard

Randomizacja ASLR działa, jak należy. Winny jest Windows Defender Exploit Guard

Autor: Krzysztof Sulikowski

Opublikowano: 11/30/2017, 3:51 PM

Liczba odsłon: 4893

W tym miesiącu na łamach CentrumXP pisaliśmy o problemie z ASLR (Address Space Layout Randomization), czyli mechanizmem losowego generowania lokalizacji alokacji pamięci wirtualnej. Pod tą nazwą kryje się funkcja mająca chronić Windows przed atakami związanymi z naruszeniem pamięci, np. przepełnieniom bufora. Problem miał polegać na tym, że owa losowość była w niektórych przypadkach tylko teoretyczna. Microsoft z kolei twierdzi, że tak miało być, a użytkownicy mogą się czuć bezpiecznie.

ASLR

Podstawowym zadaniem ASLR jest losowe rozmieszczanie kodu procesów w pamięci. Odkrywca rzekomego błędu, Will Dormann, wykazał jednak, że mechanizm - począwszy od implementacji w Windows 8 - dokonuje wprawdzie relokacji programów, ale zawsze do tych samych adresów, także po ponownym uruchomieniu komputera i w innych systemach. Miało to oznaczać, że ASLR stał się bezużyteczny. Matt Miller z Microsoft Security Response Center (MSRC) przekonuje tymczasem, że funkcja działa, jak należy. Opublikował on drobiazgowe wyjaśnienia i tabelę, która ma pomóc lepiej zrozumieć zasady działania ASLR.

ASLR

"Mówiąc krótko, ASLR działa zgodnie z założeniami, zaś opisany przez CERT/CC problem z konfiguracją dotyczy jedynie aplikacji, których EXE nie wyrażają zgody na ASLR. Problem z konfiguracją nie jest podatnością, nie wywołuje dodatkowego ryzyka i nie osłabia dotychczasowego poziomu ochrony aplikacji". Problem, o którym mowa, odnosi się do scenariusza zaznaczonego w tabeli na żółto. Chociaż w ASLR podatności nie wykryto, Microsoft przyznał, że faktycznie istnieje problem po stronie Windows Defender Exploit Guard, a jego zespół pracuje już nad poprawką. WDEG uniemożliwia działanie obowiązkowego ASLR wespół z ASLR "od dołu do góry". Jednocześnie Miller podaje sposób tymczasowego obejścia problemu z udziałem Edytora rejestru. Jest on praktycznie taki sam, jak podany wcześniej przez Dormanna.

Dlaczego więc ASLR w Windows 7 wykonuje randomizację poprawnie, a w nowszych systemach już nie? Microsoft tłumaczy to tym, że EMET (Zestaw narzędzi rozszerzonego środowiska ograniczającego ryzyko) w Windows 7 działa na innych ustawieniach i pozwala traktować wszystkie obrazy jako wyrażające zgodę na ASLR (tj. podlinkowane do /DYNAMICBASE). W rezultacie proces randomizacji przebiega tak samo, jak w aplikacjach korzystających z ASLR.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia