Co to jest przepełnienie bufora stosu?

Przepełnienie buforu stosu ma miejsce, gdy program dokonuje wpisu do pamięci komputera, która jest dłuższa niż przydzielone miejsce. W niektórych okolicznościach może to uszkodzić inne dane w pamięci, powodując problemy z działaniem komputera. W innych przypadkach złośliwa aplikacja może wykorzystać przepełnienie buforu stosu, aby przejąć kontrolę nad innymi częściami komputera.

Nazwa z przepełnienia bufora stosu wywodzi się najpierw ze stosu, który jest faktycznie aktywną listą, na której uporządkowane są dane: termin pochodzi od analogii gromadzenia elementów fizycznych. Jedna z wersji, stos wywołań, jest listą używaną przez program komputerowy do śledzenia różnych części programu, podprogramów, które działają w danym momencie. Ponieważ stos wywołań działa tymczasowo i wymaga szybkiego dostępu, znajduje się on w pamięci komputera, a nie w pamięci stałej, takiej jak dysk twardy.

Ponieważ nowoczesne systemy operacyjne pozwalają na uruchamianie wielu programów jednocześnie, istnieje potrzeba uporządkowania sposobu przydzielania pamięci, w tym stosów wywołań. Dokonuje się tego efektywnie poprzez przypisanie buforów, miejsca w pamięci zaprojektowanego tak, aby było wystarczająco duże, aby poradzić sobie z maksymalną ilością miejsca wymaganą przez określony bufor. W większości przypadków część miejsca będzie nieużywana, więc działa jak bufor między danymi z różnych aplikacji, pozostawiając miejsce na poradzenie sobie, jeśli nagle zajdzie potrzeba dodatkowego miejsca. Jednym ze sposobów wizualizacji byłoby pomyślenie o bibliotece, która przydzieliła pewną ilość miejsca do każdego obszaru tematycznego, upewniając się, że pozostawi trochę dodatkowego miejsca, aby poradzić sobie, jeśli na przykład wszystkie książki na jeden temat znajdą się w bibliotece w w tym samym czasie, zamiast sprawdzania któregokolwiek z nich.

Przepełnienie bufora stosu występuje, gdy program zapisuje dane stosu wywołań do bufora w sposób, który przekracza przydzielone miejsce. Może się to zdarzyć przez pomyłkę, zwykle przez błąd w programie. Na przykład, jeśli aplikacja została zaprojektowana tak, aby umożliwić użytkownikowi wpisanie numeru telefonu, ale nie ma limitu liczby znaków, które można wprowadzić, haker może być w stanie użyć nieograniczonego pola, aby celowo spowodować przepełnienie bufora stosu . W zależności od sposobu działania systemu operacyjnego może to pozwolić hakerowi na pośredni dostęp do innej aplikacji lub samego systemu operacyjnego.

Istnieje kilka podejść do ograniczania skutków przepełnienia bufora stosu. Jeden jest znany jako randomizacja układu przestrzeni adresowej. To losowo porządkuje najważniejsze obszary danych na komputerze. Chodzi o to, że nawet jeśli haker spowoduje lub wykorzysta przepełnienie bufora stosu, nie będzie w stanie wykorzystać naruszenia w wiarygodny sposób.

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?