Return-to-libc attack

Return-to-libc attack – technika wykorzystywania błędów w aplikacjach w celu dokonania ataku na system komputerowy.

Szczegóły techniczne edytuj

Zazwyczaj użycie tej techniki poprzedza wykorzystanie błędów przepełnienia bufora lub format bugów, które to pozwalają na nadpisanie adresu powrotu na stosie. Wskaźnik ten pozwala przekierować sterowanie do wybranej funkcji (najczęściej ze zbioru funkcji biblioteki standardowej języka C). Dalsze pozycje stosu wypełniane są wartościami służącymi jako argumenty tego wywołania.

Biblioteka standardowa języka C (libc) zapewnia środowisko wykonawcze dla aplikacji napisanych w tym języku. Pomimo że atakujący mógłby przekierować sterowanie do dowolnego miejsca, najczęstszym celem jest właśnie libc, jako że biblioteka ta prawie zawsze rezyduje w przestrzeni adresowej procesów w systemach uniksowych oraz zawiera przydatne dla atakującego funkcje (np. funkcja system(), która wymaga tylko jednego argumentu, by uruchomić wybrane polecenie).

Obrona edytuj

Losowość ułożenia przestrzeni adresowej procesu (ang. Address space layout randomization) czyni ten atak wyjątkowo trudnym do przeprowadzenia, ze względu na zmieniające za każdym wywołaniem procesu adresy wywołań funkcji, znajdujących się w bibliotekach lub – w niektórych rozwiązaniach – w sekcji kodu procesu[1].

Zobacz też edytuj

Przypisy edytuj

Linki zewnętrzne edytuj