...czyli Zapobieganie wykonywaniu danych. Niektórzy z Was zapewne już się spotkali z tym określeniem pracując w środowisku Windows. Czym więc jest Data Executive Protection (w skrócie DEP)? Dowiedzmy się.
Data Execution Prevention jest mechanizmem zabezpieczeń zintegrowanym w systemach z rodziny Windows. Umożliwia ochronę środowiska pracy przed działaniem wirusów oraz innego szkodliwego oprogramowania monitorując obszary pamięci i zapobiegając aktywności złośliwego kodu na komputerze. Funkcja ta występuje zarówno w systemach Windows 32 bitowych, jak i x64. Jednakże w obu tych środowiskach działa poniekąd w inny sposób. W 64 bitowych okienkach mechanizm ten funkcjonalnie powiązany jest z Kernel Patch Protection. DEP jest technologią działająca na poziomie programowym oraz sprzętowym - wspierana przez Execute Disable Bit zaszytą w nowych, 64 bitowych procesorach Intel, a także AMD (pod inną nazwą).
Czym więc jest Execute Disable Bit?
Odpowiedzmy więc na pytanie, czym jest technologia Execute Disable Bit? Gdyż dopiero wtedy zrozumiemy w jaki sposób funkcja DEP jest wspomagana sprzętowo. Mianowicie Execute Disable Bit jest funkcją wbudowaną w najnowsze procesory, która umożliwia wydzielanie odpowiednich obszarów w pamięci operacyjnej do użycia dla każdego wykonywanego kodu, czy też instrukcji i zapobiega operacjom przepełniania buforu (typu buffer overflow). Producenci mikroprocesorów stosują różne nazewnictwo tej technologii:
- Execute Disable Bit - nazewnictwo stosowane w procesorach firmy Intel
- No eXecute (NX bit) - nazwa wykorzystywana w procesorach AMD. Pomimo innego określenia jest to ta sama technologia, która znajduje się w jednostkach centralnych firmy Intel.
Oczywiście sam procesor to nie wszystko. Do pełni szczęścia potrzebujemy także odpowiedniego środowiska pracy, które posiada wsparcie dla Execute Disable Bit. Poniższa tabela przedstawia systemy operacyjne Windows, które obsługują tą technologię.
System operacyjny: | Wymagany dodatek Service Pack: |
---|---|
Windows XP | Service Pack 2 |
Windows XP x64 | Service Pack 1 |
Windows Server 2003 | Service Pack 1 |
Windows Vista | nie |
Windows Server 2008 | nie |
Aby funkcja ta działała prawidłowo procesor musi pracować w trybie PAE (Physical Address Extension) - oczywiście dotyczy to tylko 32 bitowego środowiska pracy. O tym jak to zrobić piszemy w dalszej części artykułu. W systemach opartych na architekturze x64 nie musimy stosować tego zabiegu.
A jak wygląda wsparcie programowe?
Wraz z dodatkiem SP1 dla Windows Server 2003 zostały dodane nowe funkcje znane jako software-enforced DEP. Dzięki temu otrzymaliśmy mechanizm programowy sprawdzający obsługę wyjątków w systemie operacyjnym. Oczywiście programowe zapobieganie wykonywaniu danych zostało także zaimplementowane w Windows Vista. Jeśli system operacyjny nie wykryje obsługi sprzętowej dla DEP to automatycznie uruchamia rozwiązanie programowe.
Jak to działa?
Funkcja ta jest domyślnie włączona. Mechanizm Data Executive Prevention monitoruje istotne procesy oraz programy Windows. Możemy oczywiście podnieść level bezpieczeństwa na wyższy poziom włączając funkcję dla wszystkich programów. Gdy zostanie wykryty atak lub inne potencjalne zagrożenie aplikacja zostanie zamknięta i zostanie wygenerowana sygnatura błędu w systemie. Poniższa tabela przedstawia opis wyjątków.
Parametr | Przykładowa wartość | Opis |
---|---|---|
Typ wyjątku: |
BEX |
Identyfikuje przepełnienie bufora (/GS) lub wyjątek DEP (BEX64 określa ten stan w 64 bitowych systemach Windows) |
P1 |
DEPDemo.exe |
Nazwa aplikacji generującej zamknięcie programu |
P2 |
5.1.2600.2180 |
Wersja aplikacji generującej zamknięcie programu |
P3 |
416725f2 |
Oznaczenie błędnej aplikacji |
P4 |
DEPDemo.exe |
Nazwa błędnej aplikacji |
P5 |
5.1.2600.2180 |
Wersja błędnej aplikacji |
P6 |
416725f2 |
Oznaczenie błędnego modułu |
P7 |
00002060 |
Błędny występ |
P8 |
C0000005 |
Wskazuje wyjątek typu STATUS_ACCESS_VIOLATION (Jeśli tym parametrem jest c0000409, to problem jest powiązany z błędem /GS) |
P9 |
00000008 |
Wskazuje zamknięcie typu STATUS_ACCESS_VIOLATION (00000002 wskazuje STATUS_ACCESS_VIOLATION w 64 bitowych systemach Windows opartych na architekturze Intel Itanium - IA64) |
Gdy program zostaje zatrzymany przez DEP zostanie wyświetlony monit z alertem Aby pomóc w ochronie tego komputera, system Windows zamknął ten program. Natomiast w dzienniku zdarzeń zostanie utworzony raport dotyczący błędu. Dowiedzmy się więc jak poprawnie skonfigurować mechanizm Zapobiegania wykonywaniu danych.
Włączanie sprzętowego wsparcia dla DEP
Aby mechanizm sprzętowego wsparcia dla Data Executive Prevention działał poprawnie w 32 bitowych systemach Windows musimy aktywować funkcję PAE, czyli fizyczne rozszerzenie adresu pamięci. Rozwiązanie tego typu operacji przedstawia poniższa tabela.
System operacyjny: | Opis aktywacji PAE: |
---|---|
Windows 2000, Windows XP, Windows Server 2003 | Lokalizujemy plik boot.ini (zazwyczaj znajduje się on na partycji C:) i otwieramy go w edytorze tekstu. Następnie dodajemy przełącznik Physical Address Extension w ścieżce ARC (/PAE). Przykład: multi(0)disk(0)rdisk(0)partition(1) \WINNT="Windows 2003 Datacenter Server" /PAE /basevideo /sos |
Windows Vista, Windows Server 2008 | Uruchamiamy wiersz polecenia na prawach administratora. Następnie wpisujemy polecenie BCDEDIT /SET PAE ForceEnable i zatwierdzamy klawiszem Enter. |
Konfiguracja usługi Zapobieganie wykonywaniu danych
Domyślnie mechanizm DEP jest uruchomiony tylko dla istotnych procesów oraz programów systemu Windows. Przyjrzyjmy się bliżej pozostałym sposobnościom konfiguracji.
- Włączanie DEP dla wszystkich programów - w tym celu przechodzimy do menu Start/Panel sterowania/System i konserwacja/System. Następnie w module System klikamy Zaawansowane ustawienia systemu. Na zakładce Zaawansowane naciskamy kontrolkę Ustawienia w obszarze Wydajność i klikamy kartę Zapobieganie wykonywaniu danych. Zaznaczamy opcję Włącz funkcję DEP dla wszystkich programów i usług oprócz tych wybranych poniżej: i naciskamy Zastosuj.
- Tworzenie wyjątku dla programu - Po włączeniu usługi DEP dla wszystkich programów może się okazać, że część z nich nie chce poprawnie funkcjonować, gdyż jest niezgodna z tym mechanizmem. Rozwiązania są dwa, mianowicie możemy poszukać nowszej wersji aplikacji, lub też dodać program do listy wyjątków. W tym celu w module Zapobieganie wykonywaniu danych klikamy przycisk Dodaj, następnie odnajdujemy plik wykonywalny (.exe) programu, który chcemy dodać do listy i naciskamy Otwórz.
Podsumowanie
Mechanizm Data Execution Prevention jest bardzo udaną implementacją funkcji ochronnych podnoszącą jeszcze bardziej bezpieczeństwo użytkowania komputera z systemem Windows. Wsparcie zarówno programowe, jak i sprzętowe daje ochronę na wiele sposobów uniemożliwiając tym samym potencjalne zagrożenia ze strony złośliwego oprogramowania.