Przepełnienie bufora - ataki na programy użytkownika
Drugim aspektem bezpieczeństwa jakim się zajmiemy jest przepełnienie bufora (stack overflow).
Aby doszło do ataku przy użyciu przepełnienia bufora napastnik musi osiągnąć dwa cele:
- zainfekować kod programu
- uruchomić zainfekowany kod z opdowiednimi parametrami
Umieszczanie zainfekowanego kodu w programie:
- można podać go jako wejście albo
- wykorzystać kod, który już jest dając mu odpowiednie parametry (exec)
Wykonywanie tego kodu:
- "stack smashing attack" - podmiana adresu powrotu z wywołania funkcji na stosie
- podmiana wskaźnika na funkcję - funkcja może być zdefiniowana gdziekolwiek na stosie czy stercie
(superprobe był podatny na ten typ ataku)
- wykorzystanie mechanizmu punktów kontrolnych i nawrotów w C (atak na Perla 5.003)
dalej