Data Execution Prevention
DEP (Data Execution Prevention) – zabezpieczenie stosowane we współczesnych systemach operacyjnych, takich jak Microsoft Windows, Linux i Android. Jego celem jest uniemożliwienie wykonywania kodu z segmentu danych. Pomaga to w ochronie przed exploitami wykorzystującymi przepełnienie bufora.
DEP działa w dwóch trybach: sprzętowym, w którym procesor oznacza strony pamięci jako niewykonywalne, oraz programowym, który daje ograniczoną ochronę i jest stosowany wtedy, gdy procesor nie potrafi oznaczyć stron pamięci jako niewykonywalne.
Po raz pierwszy technologia DEP w systemach Microsoftu pojawiła się w Windows XP Service Pack 2. Następnie została zaimplementowana we wszystkich kolejnych edycjach systemu Windows. Od wydania Vista Menadżer zadań wyświetla informacje o włączeniu lub wyłączeniu ochrony DEP dla konkretnego procesu.
Inne systemy
DEP jest w jądrze Linuksa od 2004 roku (od kernela 2.6.8[1]). W systemach deskopowych firmy Apple od roku 2006 kiedy Apple przeszło na procesory Intela[2]. Istnieje też jego dość prymitywna wersja na iOS5[3] i Androida 4.1[4] (też w tych systemach o wyższych numerach).
Konfiguracja pod Windows
DEP można skonfigurować bezpośrednio zmieniając opcje w pliku Boot.ini lub korzystając z zakładki System Panelu Sterowania.
Ustawienia w pliku Boot.ini wyglądają następująco: /noexecute = poziom_bezpieczeństwa, gdzie poziom_bezpieczenstwa zastępujemy jednym z wyrażeń: AlwaysOn, AlwaysOff, OptIn lub OptOut.
OPTIN: domyślne ustawienie w systemach Windows XP oraz Windows Vista. DEP obejmuje ochroną tylko programy systemu Windows.
OPTOUT: domyślne ustawienie w systemie Windows Server 2003 SP1. DEP obejmuje ochroną wszystkie procesy. W zakładce System Panelu Sterowania można jednak wprowadzić listę programów, których ochrona DEP ma nie obejmować.
ALWAYSON: Ta opcja włącza pełną ochronę DEP dla systemu. Wszystkie procesy są kontrolowane przez DEP i nie ma możliwości stworzenia wyjątków.
ALWAYSOFF: Ta opcja powoduje wyłączenie ochrony DEP niezależnie od tego, czy jest wspierana sprzętowo czy nie.