Return-Oriented Programming (ROP)
Return-Oriented Programming (ROP) to metoda programowania, która może być wykorzystana w ataku komputerowym. W tym celu kryminaliści wykorzystują pewne błędy w oprogramowaniu, które pozwala im na wykorzystanie już istniejącego kodu w celu wykonania działań nieautoryzowanych.
Aby zrozumieć, jak działa ROP, należy najpierw zrozumieć, co to jest stos. Stos jest obszarem pamięci, który przechowuje informacje o wywołanych funkcjach programu. Kiedy funkcja jest wywoływana, dane są umieszczane na szczycie stosu, a kiedy funkcja kończy działanie, dane są usuwane ze stosu.
Criminals use ROP to take advantage of certain software errors that allow them to use existing code to perform unauthorized actions.
W ataku ROP złoczyńcy wprowadzają kod, który zmienia wartości na stosie, w taki sposób, że w pewnym momencie program skacze do innej, szkodliwej funkcji zamiast do funkcji, która miała zostać wykonana. Wykorzystując ten sposób, błędne oprogramowanie może być zmuszone, aby wykonywać szkodliwe działania, takie jak krążenie w nieskończoność lub przesyłanie poufnych informacji do atakującego.
Celem ROP jest zniekształcenie toku wykonywania programu, tak aby atakujący mógł osiągnąć swój cel. Dlatego też, programiści muszą działać w celu zapobieżeniu atakom ROP poprzez zabezpieczenie swojego kodu przed błędami, które mogą zostać wykorzystane przez przestępców.