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:
  1. zainfekować kod programu
  2. uruchomić zainfekowany kod z opdowiednimi parametrami

Umieszczanie zainfekowanego kodu w programie:
  1. można podać go jako wejście albo
  2. wykorzystać kod, który już jest dając mu odpowiednie parametry (exec)
Wykonywanie tego kodu:
  1. "stack smashing attack" - podmiana adresu powrotu z wywołania funkcji na stosie
  2. podmiana wskaźnika na funkcję - funkcja może być zdefiniowana gdziekolwiek na stosie czy stercie (superprobe był podatny na ten typ ataku)
  3. wykorzystanie mechanizmu punktów kontrolnych i nawrotów w C (atak na Perla 5.003)




dalej