NFsec Logo

Address Space Layout Randomization

13/04/2014 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 443, ilość słów: 253)

O

d wersji jądra 2.6.12 (w innych dystrybucjach jak np. CentOS poszczególne patche mogą być aplikowane do niższych wersji) włączony jest mechanizm ASLRAddress Space Layout Randomization, czyli Losowe Ułożenie Przestrzeni Adresowej, który umożliwia wprowadzenie losowości do schematu adresowania danych procesu, które ładowane są do pamięci. Oznacza to, że ASLR może ulokować położenie kodu wykonalnego, bibliotek, sterty oraz stosu w losowych pozycjach przestrzeni adresowej procesu. Utrudnia to przewidywanie przez atakujący program adresu następnych instrukcji i zabezpieczenie systemu przed atakami typu ret2libc.

ASLR jest kontrolowany przez parametr /proc/sys/kernel/randomize_va_space lub kernel.randomize_va_space, jeśli chcemy skorzystać z sysctl. Wyłączyć tą funkcjonalność możemy poprzez przekazanie wartości “0” do w/w parametru lub dodaniu parametru startowego “norandmaps” do jądra.

Warto wspomnieć, że od wersji jądra 3.14 został wprowadzony mechanizm ASLR dla samego jądra Linuksa (KASLR – Kernel ASLR), który losowo decyduje, gdzie kod jądra ma zostać umieszczony podczas startu systemu. Ważną uwagą, jaką podzielił się Kees Cook jest, aby przy korzystaniu z tego mechanizmu uniknąć wycieku wrażliwych informacji należy wspomóc się mechanizmem kptr_restrict oraz dmesg_restrict. Funkcjonalność możemy wyłączyć poprzez dodanie parametru “nokaslr” podczas startu systemu.

Więcej informacji: Configuring and Using Kernel Security Mechanisms

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , ,

Komentowanie tego wpisu jest zablokowane.