Szczegółowy opis funkcji zapobiegania wykonywaniu danych w systemach Windows XP z dodatkiem Service Pack 2, Windows XP Tablet PC Edition 2005 i Windows Server 2003

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 875352 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Funkcja zapobiegania wykonywaniu danych (DEP, Data Execution Prevention) obejmuje zestaw technologii programowo-sprzętowych, które umożliwiają dodatkowe sprawdzanie zawartości pamięci w celu ochrony systemu przed uruchomieniem złośliwego kodu. W systemach Microsoft Windows XP z dodatkiem Service Pack 2 (SP2) i Microsoft Windows XP Tablet PC Edition 2005 zapobieganie wykonywaniu danych jest wymuszane przez sprzęt i oprogramowanie.

Podstawową zaletą funkcji DEP jest zapobieganie wykonywaniu kodu ze stron danych. Zwykle kod nie jest uruchamiany z domyślnej sterty ani domyślnego stosu. Sprzętowa funkcja DEP wykrywa kod znajdujący się w takich lokalizacjach i zgłasza wyjątek przy próbie jego wykonania. Programowa funkcja DEP zapobiega wykorzystaniu mechanizmów obsługi wyjątków systemu Windows przez złośliwy kod.

WPROWADZENIE

W tym artykule opisano funkcję DEP systemów Windows XP z dodatkiem SP2 i Microsoft Windows Server 2003 z dodatkiem Service Pack 1 (SP1), a ponadto opisano następujące zagadnienia:

Więcej informacji

Sprzętowa funkcja DEP

Sprzętowa funkcja DEP oznacza wszystkie lokalizacje pamięci używane w procesie jako zawierające kod niewykonywalny, o ile nie określono wyraźnie, że w danej lokalizacji znajduje się kod wykonywalny. Istnieje klasa ataków polegających na próbie wstawienia i uruchomienia kodu z lokalizacji pamięci zawierających kod niewykonywalny. Funkcja DEP ułatwia zapobieganie takim atakom, przechwytując je i zgłaszając wyjątek.

Sprzętowa funkcja DEP używa procesora do przypisania obszarowi pamięci atrybutu, który uniemożliwia wykonywanie kodu z tego obszaru pamięci. Funkcja DEP działa na stronach pamięci wirtualnej i zwykle zaznacza stronę pamięci, zmieniając bit we wpisie tablicy stron (PTE).

Sposób implementacji sprzętowej funkcji DEP i sposób zaznaczania stron pamięci wirtualnej zależą od architektury procesora. Procesory z obsługą sprzętowej funkcji DEP mogą zgłosić wyjątek przy próbie wykonania kodu ze strony, która została oznaczona za pomocą odpowiedniego zestawu atrybutów.

Architektury procesorów firm AMD i Intel zgodne z systemem Windows są też zgodne z funkcją DEP.

Począwszy od systemu Windows XP z dodatkiem SP2, w 32-bitowych wersjach systemu Windows jest używana jedna z następujących funkcji:
  • Funkcja ochrony strony pamięci przed wykonywaniem (NX) zdefiniowana przez firmę AMD.
  • Funkcja bitu zapobiegającego wykonywaniu kodu (XD) zdefiniowana przez firmę Intel.
Aby można było korzystać z tych funkcji procesora, procesor musi działać w trybie rozszerzenia adresu fizycznego (PAE, Physical Address Extension). Jednak na potrzeby funkcji DEP system Windows włącza tryb PAE automatycznie, dlatego nie trzeba specjalnie włączać trybu PAE przy użyciu przełącznika rozruchu /PAE.

Uwaga Ponieważ jądra 64-bitowe obsługują rozszerzenia AWE (Address Windowing Extensions), w 64-bitowych wersjach systemu Windows nie ma osobnego jądra PAE.
Aby uzyskać więcej informacji dotyczących trybu PAE i rozszerzeń AWE w systemie Windows Server 2003, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
283037 Large memory support is available in Windows Server 2003 and in Windows 2000

Programowa funkcja DEP

W systemie Windows XP z dodatkiem SP2 zaimplementowano dodatkowy zestaw zabezpieczeń funkcji zapobiegania wykonywaniu danych. Zabezpieczenia te są znane jako programowa funkcja DEP i służą do blokowania złośliwego kodu wykorzystującego mechanizmy obsługi wyjątków w systemie Windows. Programową funkcję DEP można uruchomić na każdym procesorze działającym w systemie Windows XP z dodatkiem SP2. Domyślnie programowa funkcja DEP chroni tylko ograniczoną ilość danych binarnych systemu, niezależnie od możliwości sprzętowej funkcji DEP procesora.

Zalety

Podstawową zaletą funkcji DEP jest zapobieganie wykonywania kodu ze stron zawierających dane, takich jak domyślne strony sterty, różne strony stosu oraz strony puli pamięci. Zwykle kod nie jest uruchamiany z domyślnej sterty ani domyślnego stosu. Sprzętowa funkcja DEP wykrywa kod znajdujący się w takich lokalizacjach i zgłasza wyjątek przy próbie jego wykonania. Jeśli wyjątek nie zostanie obsłużony, proces zostanie zatrzymany. Wyjątek dotyczący kodu z pamięci chronionej w trybie jądra jest przyczyną wystąpienia błędu zatrzymania.

Funkcja DEP ułatwia blokowanie ataków opartych na nieautoryzowanym dostępie. W szczególności funkcja DEP umożliwia zablokowanie złośliwego programu, w którym wstawiono dodatkowy kod za pomocą wirusa lub szkodliwej funkcji innego typu, a następnie podjęto próbę jego uruchomienia. Przy próbie wykonania takiego kodu w systemie z funkcją DEP wystąpi wyjątek. Programowa funkcja DEP umożliwia zablokowanie programów korzystających z mechanizmów obsługi wyjątków systemu Windows.

Konfiguracja funkcji DEP dla całego systemu

Konfiguracja funkcji DEP dla całego systemu jest wykonywana za pomocą przełączników w pliku Boot.ini. Po zalogowaniu się jako administrator można łatwo skonfigurować ustawienia funkcji DEP w oknie dialogowym System w Panelu sterowania.

W systemie Windows można zdefiniować cztery konfiguracje dla całego systemu dotyczące zarówno sprzętowej, jak i programowej funkcji DEP.
Zwiń tę tabelęRozwiń tę tabelę
KonfiguracjaOpis
OptInJest to konfiguracja domyślna. W systemach z procesorami obsługującymi sprzętową funkcję DEP jest ona włączona domyślnie dla ograniczonej ilości danych binarnych i programów objętych konfiguracją „opt-in”. Po wybraniu tej opcji funkcja DEP domyślnie chroni tylko dane binarne systemu Windows.
OptOutFunkcja DEP jest domyślnie włączona dla wszystkich procesów. W oknie dialogowym System w Panelu sterowania można ręcznie utworzyć listę programów, które nie będą chronione za pomocą funkcji DEP. Za pomocą zestawu narzędzi zgodności aplikacji Application Compatibility Toolkit informatycy mogą „wykluczyć” (opt-out) stosowanie funkcji DEP dla jednego lub większej liczby programów. Poprawki zgodności dla systemu („kliny”) dotyczące funkcji DEP są uwzględniane.
AlwaysOnTo ustawienie zapewnia pełną ochronę całego systemu za pomocą funkcji DEP. Ochroną za pomocą funkcji DEP zawsze są objęte wszystkie uruchomione procesy. Lista wyjątków umożliwiająca wskazanie programów wykluczonych z ochrony za pomocą funkcji DEP jest niedostępna. Poprawki zgodności dla systemu dotyczące funkcji DEP nie są uwzględniane. Programy, które zostały wykluczone za pomocą zestawu narzędzi zgodności aplikacji Application Compatibility Toolkit, są objęte ochroną za pomocą funkcji DEP.
AlwaysOffTo ustawienie wyłącza funkcję DEP dla wszystkich składników systemu, niezależnie od obsługi sprzętowej funkcji DEP. Procesor nie działa w trybie PAE, chyba że w pliku Boot.ini dodano opcję /PAE.
Sprzętowa funkcja DEP i programowa funkcja DEP są skonfigurowane tak samo. Jeśli zasady systemowego zapobiegania wykonywaniu danych są ustawione na wartość OptIn, sprzętowa funkcja DEP i programowa funkcja DEP chronią te same podstawowe dane binarne i programy systemu Windows. Jeśli komputer nie obsługuje sprzętowej funkcji DEP, podstawowe dane binarne i programy systemu Windows będą chronione tylko za pomocą programowej funkcji DEP.

Analogicznie, jeśli zasady systemowego zapobiegania wykonywaniu danych są ustawione na wartość OptOut, programy wykluczone z ochrony funkcji DEP zostaną wykluczone zarówno ze sprzętowej, jak i z programowej ochrony DEP.

Ustawienia w pliku Boot.ini są następujące:
/noexecute=poziom_zasad
Uwaga poziom_zasad jest zdefiniowany jako AlwaysOn, AlwaysOff, OptIn lub OptOut.

Istniejące ustawienia /noexecute w pliku Boot.ini nie zostaną zmienione po zainstalowaniu dodatku SP2 dla systemu Windows XP. Ustawienia te nie zostaną również zmienione po przeniesieniu obrazu systemu operacyjnego Windows na inne komputery z obsługą lub bez obsługi sprzętowej funkcji DEP.

W trakcie instalacji systemu Windows XP z dodatkiem SP2 i systemu Windows Server 2003 z dodatkiem SP1 lub ich nowszych wersji domyślnie jest włączony poziom zasad OptIn, chyba że podczas instalacji nienadzorowanej zostanie określony inny poziom zasad. Jeśli w pliku Boot.ini nie ma ustawienia /noexecute=poziom_zasad dotyczącego wersji systemu Windows, w której jest obsługiwana funkcja DEP, zachowanie systemu będzie takie same, jak po dodaniu ustawienia /noexecute=OptIn.

Po zalogowaniu się jako administrator można ręcznie skonfigurować funkcję DEP, przełączając się między zasadami OptIn i OptOut na karcie Zapobieganie wykonywaniu danych w oknie Właściwości systemu. Oto procedura ręcznej konfiguracji funkcji DEP na komputerze:
  1. Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz polecenie sysdm.cpl, a następnie kliknij przycisk OK.
  2. Na karcie Zaawansowane w obszarze Wydajność kliknij przycisk Ustawienia.
  3. Na karcie Zapobieganie wykonywaniu danych wykonaj jedną z następujących procedur:
    • Kliknij opcję Włącz funkcję DEP tylko dla istotnych programów i usług systemu Windows, aby wybrać zasadę OptIn.
    • Kliknij opcję Włącz funkcję DEP dla wszystkich programów i usług oprócz tych wybranych poniżej, aby wybrać zasadę OptOut, a następnie kliknij przycisk Dodaj, aby dodać programy, które mają nie korzystać z funkcji DEP.
  4. Kliknij przycisk OK dwa razy.
Informatycy mogą zmieniać konfigurację funkcji DEP dla całego systemu przy użyciu różnych metod. Plik Boot.ini można modyfikować bezpośrednio za pomocą mechanizmów skryptów lub przy użyciu narzędzia Bootcfg.exe dostępnego w systemie Windows XP z dodatkiem SP2.

Aby skonfigurować funkcję DEP do przełączania zasady AlwaysOn za pomocą pliku Boot.ini, wykonaj następujące kroki:
  1. Kliknij przycisk Start, kliknij prawym przyciskiem myszy polecenie Mój komputer, a następnie kliknij polecenie Właściwości.
  2. Kliknij kartę Zaawansowane, a następnie kliknij przycisk Ustawienia w polu Uruchamianie i odzyskiwanie.
  3. W polu Uruchamianie systemu kliknij przycisk Edytuj. Plik Boot.ini otworzy się w programie Notatnik.
  4. W Notatniku kliknij polecenie Znajdź w menu Edycja.
  5. W polu Znajdź wpisz /noexecute, a następnie kliknij przycisk Znajdź następny.
  6. W oknie dialogowym Znajdź kliknij przycisk Anuluj.
  7. Zastąp ciąg poziom_zasad ciągiem AlwaysOn.

    OSTRZEŻENIE: Pamiętaj, aby dokładnie wprowadzić tekst. W pliku Boot.ini powinien być teraz obecny następujący wiersz:
    /noexecute=AlwaysOn
  8. W Notatniku kliknij polecenie Zapisz w menu Plik.
  9. Kliknij przycisk OK dwa razy.
  10. Ponownie uruchom komputer.
W przypadku instalacji nienadzorowanych systemu Windows XP z dodatkiem SP2 lub nowszym można wstępnie określić konfigurację funkcji DEP w pliku Unattend.txt. Za pomocą wpisu OSLoadOptionsVar w sekcji [Data] pliku Unattend.txt można określić konfigurację funkcji DEP dla całego systemu.

Konfiguracja funkcji DEP dla programu

W celu zapewnienia zgodności programu można selektywnie wyłączyć funkcję DEP dla poszczególnych programów 32-bitowych, jeśli poziom zasad funkcji DEP jest ustawiony na wartość OptOut. W tym celu należy użyć karty Zapobieganie wykonywaniu danych w oknie Właściwości systemu. Informatycy mogą użyć nowej poprawki zgodności dla programu o nazwie DisableNX, dostępnej w systemie Windows XP z dodatkiem SP2. Poprawka ta wyłącza zapobieganie wykonywaniu danych w programach, do których zostanie zastosowana.

Poprawkę zgodności DisableNX można zastosować do programów, używając zestawu narzędzi zgodności aplikacji Application Compatibility Toolkit. Aby uzyskać więcej informacji o zgodności aplikacji systemu Windows zobacz temat Zgodność aplikacji systemu Windows w następującej witrynie firmy Microsoft w sieci Web:
http://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspx
Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
912923 How to determine that hardware DEP is available and configured on your computer

Materiały referencyjne

Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
899298 The "Understanding Data Execution Prevention" help topic incorrectly states the default setting for DEP in Windows Server 2003 Service Pack 1

Właściwości

Numer ID artykułu: 875352 - Ostatnia weryfikacja: 24 listopada 2006 - Weryfikacja: 14.1
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Windows Server 2003 Service Pack 1 na następujących platformach
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Professional Service Pack 2 (SP2)
  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Media Center Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Tablet PC Edition 2005
Słowa kluczowe: 
kbinfo kbtshoot KB875352

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com