Datová prevence (DEP)
Datová prevence, tzv. DEP (Data Execution Prevention), je mechanismus, který brání přístupu kódu k datům v okamžiku, kdy procesor rozpoznává, co je spuštěný kód, a co data. Mechanismus se využívá při exploitu, který se snaží spustit tzv. payload, který uměle zatěžuje procesor. Mechanismus DEP je rozpozná a posoudí jako data, která nemohou být spuštěna. Útočníci se snaží mechanismus DEP obcházet používáním návratově orientovaného programování. Návratově orientované programování, tzv. ROP (Return Oriented Programming) je procedura, kdy útočník zpětně využívá části kódu, které nebyly zpracovány procesorem k ovládnutí systému. Typickým útokem s využitím ROP je tvorba spustitelné a zapisovatelné oblasti v paměti, kterou nemá DEP pod plnou kontrolou. Útočník následně využije vzniklý prostor k exploitu. Problémem při využívání exploitu při obcházení DEP se stává podepisování kódu. Nepodepsaný kód nemůže spustit jinou aplikaci, ani zapisovat data. Právě kombinace mechanismu DEP a podepisování je pro útočníky prakticky neproniknutelná. Jedinou možností, 15 jak systém DEP zcela obejít je využití ROP pro úplné přepsání exploitu, což bývá velmi časově náročné.