Co to jest opryskiwanie sterty?
Opryskiwanie hałd to technika hakerska wykorzystywana w celu wykorzystania luk w oprogramowaniu komputerowym. Działa, aby uzyskać kontrolę nad programem, wykorzystując część jego pamięci. Gdy część pamięci jest kontrolowana przez kod hakujący, haker może przejąć kontrolę nad wykonaniem kodu, implementując przepełnienie bufora w obszarze sterty pamięci. Najpopularniejszą aplikacją do opryskiwania stosów jest hakowanie przeglądarek internetowych, takich jak Internet Explorer®.
„Sterty” to dynamiczny blok pamięci, który komputer przypisuje do określonego programu, tak nazwany, ponieważ komputer poświęca programowi wirtualną stertę pamięci. Można to uznać za miejsce do przechowywania w szafie lub biurku. Ta sterta pamięci należy do programu, dopóki oprogramowanie lub kod kolekcji systemu operacyjnego nie zwolni jej. Kod kolekcji jest po prostu bezpiecznym urządzeniem, które odzyskuje pamięć, jeśli program ulegnie awarii lub samo oprogramowanie nie zwolni pamięci po zakończeniu użytkowania.
Podczas rozpylania sterty haker próbuje „spryskać” stertę pamięci określoną częścią kodu. Celem jest umieszczenie kodu w określonym miejscu w stosie pamięci programu, na przykład wciśnięcie łomu w krawędź ościeżnicy, aby zapewnić dźwignię w celu wymuszenia otwarcia drzwi. Po zaklinowaniu informacji w stercie pamięci za pomocą natryskiwania cieplnego haker może następnie przepełnić stos lub cały bufor pamięci, generując błędy w systemie. Gdy wystąpią błędy, haker może je wykorzystać do wykonania własnego kodu w systemie.
Opryskiwanie hałd działa dzięki dynamicznej alokacji pamięci w systemie. Program komputerowy zasadniczo „posiada” na razie całą część pamięci, więc haker zna już względne położenie w pamięci, które komputer przypisał do programu. Dlatego haker nie potrzebuje szczególnej wiedzy, aby zaklinować swój kod w szczelinach; może rozpylać kod na ślepo, wiedząc, że blok pamięci będzie zawsze tam, dopóki program będzie działał. Można to porównać do próby otwarcia zamka z zasłoniętymi oczami; zadanie staje się prawie niemożliwe, jeśli zamek się porusza, ale dopóki pozostaje w jednym ustalonym miejscu - podobnie jak sterty pamięci w systemie - zadanie staje się możliwe.