DEP

Data Execution Prevention ( DEP ) je funkce zabezpečení zahrnuta v moderních operačních systémech . To značí oblasti paměti jako buď " spustitelný "nebo" nonexecutable ", a umožňuje pouze údaje v "spustitelný" oblasti, které mají být provozovány programy , služby , ovladače zařízení , apod Je známo, že být k dispozici v systému Linux , OS X , Microsoft Windows , iOS, a Android operační systémy.

DEP chrání proti některým chybám programu, a pomáhá zabránit určitým škodlivým zneužití , zejména útoky, které ukládají spustitelné instrukce se v datové oblasti pomocí přetečení vyrovnávací paměti . To nechrání proti útokům, které nespoléhají na provádění pokynů v datové oblasti , Ostatní bezpečnostní funkce, jako je adresa prostoru rozložení randomizace , strukturované handleru přepsat ochranu (SEHOP) a Povinné kontroly integrity , mohou být použity ve spojení s DEP.

DEP běží ve dvou režimech: hardwarem vynucované omezení spouštění dat pro CPU , které lze označit paměťových stránek jako nonexecutable, a softwarem vynucované omezení spouštění dat s omezenou ochranou pro CPU, které nemají hardwarovou podporu. Software vynucované omezení spouštění dat nechrání proti popravě kódu v datových stránek, ale pulty SEH přepsání, jiný typ útoku.

DEP byl představen v systému Linux v roce 2004 (kernel 2.6.8 ), na systému Windows v roce 2004 s Windows XP Service Pack 2, zatímco Apple představil DEP, když se přestěhoval do x86 v roce 2006.

Režim výkonu
Vymáhání Hardware
Hardware vynucované omezení spouštění dat umožňuje NX bit na kompatibilních CPU, prostřednictvím automatického použití PAE jádra v 32-bitovým systémem Windows a nativní podporu pro 64-bitové jader. Windows Vista DEP funguje tak, že označení určité části paměti jako jsou určeny držet pouze údaje, které NX nebo XD bit povolen procesor pak nerozumí jako non-spustitelný soubor. To pomáhá zabránit přetečení vyrovnávací paměti útokům ze úspěch. V systému Windows od verze Windows Vista, zda DEP je povoleno nebo zakázáno pro určitý proces lze zobrazit na procesy kartě ve Správci úloh systému Windows .

Některé legitimní programy chybně, ale neškodně vykonat instrukce se v datové oblasti; umožňující Zabránění spuštění dat může mít nezamýšlený důsledek způsobení takového softwaru k poruše. To je třeba sanovat podle vývojáře softwaru; do té doby program může být označen jako je umožněno provádět kód v datové paměti, i když to je náchylná k možnému cíleného útoku.

Microsoft Windows
Pokud x86 procesor podporuje omezení spouštění dat, a systém je BIOS podporuje, a to bylo povoleno, a to buď výrobcem nebo uživatelem, pak funkce NX jsou zapnuta v systému Windows, na omezený "OptIn" základ. (PAE musí být povoleno v 32bitovém systému Windows.) Toto nastavení poskytuje ochranu pouze na omezenou sadu systému Windows a binární soubory. K dosažení plné ochrany, musí uživatel zvolit buď "OptOut" ("zapnout spouštění dat pro všechny programové služby kromě vyberte"), pokrývající všechny programy a procesy, které nejsou výslovně osvobozeno od daně nebo "AlwaysOn", pokrývající všechny. Ty jsou konfigurovatelné přes rozhraní Vlastnosti systému.  Pokud DEP není podporován konkrétním procesorem x86 použité, žádná ochrana je dána. Intel IA-64 architektura má také formu NX, podporované systémem Windows.

Vymáhání Software
Software DEP (bez NX bit), je to, co Microsoft nazývá jejich prosazování "Safe Structured Exception Handling". Software DEP / SafeSEH pouze kontroluje, když je vyvolána výjimka, aby se ujistil, že výjimka je registrován v tabulce funkcí pro aplikaci, a vyžaduje, aby program, který bude postaven s ním. Nicméně, i když to vytváří dojem, že software DEP se vztahuje k prevenci provádění kódu v datových stranách, to je jiná forma ochrany.

Omezení
Pokud je kód napsaný a popraven za běhu-a JIT překladače je vynikajícím příkladem, kompilátor může být potenciálně použity k výrobě využívat kódu (například s využitím JIT Spray ), který byl označen za provedení, a proto by neměl být chycen Dep.

Záležitosti
Kompatibilita
DEP občas potýká s problémy softwaru, obvykle s starší software, který nebyl sestavovány a testovány, aby splňovaly jeho omezení. Uživatelé mají potíže s použitím různých příkazového řádku příkazy, které jsou součástí služby Microsoft pro Unix, která je zahrnuta jako součást Windows Vista i Windows Server 2003 R2 .

Tyto problémy mohou být zabráněno tím, že vyřadí DEP, ale to zvyšuje náchylnost systému ke škodlivým softwarem. DEP lze vypnout na jednotlivé aplikace, nebo vypnout úplně pro všechny programy a služby, non-podstatné Windows.  Společnost Microsoft doporučuje, aby DEP nesmí být globálně zakázán, kdy aplikace poruchy z důvodu nekompatibility s DEP. Místo toho, dodavatel problematický software by měl být kontaktován za aktualizovanou verzi, která neporušuje DEP; dokud problém je opraven DEP může být zakázáno na základě výjimky pouze pro aplikace problematický.

DEP je aplikována na celý proces, takže i aplikace kompatibilní s DEP může potřebovat mít ho zablokoval pokud non-DEP-kompatibilní rozšíření se dodat, že běží ve stejném prostoru procesu. Například, může DEP-související problémy občas vyskytnout s DEP-kompatibilní systémové komponenty jádra operačního jako je Průzkumník Windows , Internet Explorer a Windows Installer , protože podporují v procesu třetích stran rozšíření nebo pluginů, které nemusí být DEP-kompatibilní.