คำอธิบายโดยละเอียดของคุณสมบัติ Data Execution Prevention (DEP) ใน Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005 และ Windows Server 2003

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 875352 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Data Execution Prevention (DEP) เป็นชุดของเทคโนโลยีฮาร์ดแวร์และซอฟต์แวร์ที่ทำการตรวจสอบเพิ่มเติมกับหน่วยความจำ เพื่อช่วยป้องกันมิให้รหัสที่ไม่ประสงค์ดีทำงานในระบบ ใน Microsoft Windows XP Service Pack 2 (SP2) และ Microsoft Windows XP Tablet PC Edition 2005 นั้นจะมีการใช้งาน DEP โดยฮาร์ดแวร์และซอฟต์แวร์

ประโยชน์หลักของ DEP คือช่วยป้องกันมิให้มีการเรียกใช้รหัสจากเพจข้อมูล ตามปกติ รหัสจะไม่ทำงานจากฮีปและสแต็คที่เป็นค่าเริ่มต้น DEP ที่ใช้ฮาร์ดแวร์จะตรวจหารหัสที่ทำงานจากตำแหน่งเหล่านี้ และทำให้เกิดข้อยกเว้นเมื่อมีการเรียกใช้ DEP ที่ใช้ซอฟต์แวร์จะช่วยป้องกันมิให้รหัสที่ไม่ประสงค์ดีสามารถใช้ประโยชน์จากกลไกจัดการข้อยกเว้นของ Windows

บทนำ

บทความนี้อธิบายคุณสมบัติ DEP ใน Windows XP SP2 และใน Microsoft Windows Server 2003 ที่มี Service Pack 1 (SP1) โดยกล่าวถึงหัวข้อต่อไปนี้:

ข้อมูลเพิ่มเติม

DEP ที่ใช้กับฮาร์ดแวร์

DEP ที่ใช้กับฮาร์ดแวร์จะทำเครื่องหมายตำแหน่งทั้งหมดของหน่วยความจำในกระบวนการว่าไม่สามารถเรียกใช้รหัสได้ ยกเว้นกรณีที่มีตำแหน่งซึ่งมีรหัสที่กำหนดให้เรียกใช้ได้โดยตรง มีการโจมตีที่พยายามแทรกและเรียกใช้รหัสจากตำแหน่งของหน่วยความจำที่ไม่สามารถเรียกใช้รหัสได้ DEP ช่วยป้องกันการโจมนี้เหล่านี้ โดยตรวจสอบและทำให้เกิดข้อยกเว้น

DEP ที่ใช้กับฮาร์ดแวร์จะอาศัยฮาร์ดแวร์ของโปรเซสเซอร์เพื่อทำเครื่องหมายหน่วยความจำด้วยแอททริบิวท์ ซึ่งจะระบุว่าไม่ควรเรียกใช้รหัสจากหน่วยความจำในส่วนนั้นๆ DEP ทำงานกับเพจของหน่วยความจำเสมือนแต่ละเพจ และ DEP มักจะเปลี่ยนบิตในรายการตารางเพจ (PTE) เพื่อทำเครื่องหมายที่เพจหน่วยความจำ

สถาปัตยกรรมของโปรเซสเซอร์จะเป็นตัวกำหนดการใช้ DEP ในฮาร์ดแวร์ และการที่ DEP ทำเครื่องหมายเพจหน่วยความจำเสมือน อย่างไรก็ตาม โปรเซสเซอร์ที่รองรับ DEP ที่ใช้กับฮาร์ดแวร์อาจทำให้เกิดข้อยกเว้น เมื่อมีการเรียกใช้รหัสจากเพจที่มีการทำเครื่องหมายด้วยชุดแอททริบิวท์ที่เหมาะสม

Advanced Micro Devices (AMD) และ Intel ได้กำหนดและผลิตสถาปัตยกรรมที่ใช้กับ Windows และสามารถใช้กับ DEP ได้

นับจาก Windows XP SP2 เวอร์ชัน 32 บิตของ Windows จะใช้คุณสมบัติต่อไปนี้:
  • คุณสมบัติ no-execute page-protection (NX) ของโปรเซสเซอร์ซึ่งกำหนดโดย AMD
  • คุณสมบัติ Execute Disable Bit (XD) กำหนดโดย Intel
ในการใช้คุณสมบัติของโปรเซสเซอร์เหล่านี้ โปรเซสเซอร์จะต้องทำงานในโหมด Physical Address Extension (PAE) อย่างไรก็ตามWindows จะใช้โหมด PAE โดยอัตโนมัติเพื่อให้รองรับ DEP ผู้ใช้ไม่จำเป็นต้องเปิดใช้งาน PAE ด้วยตนเองโดยใช้สวิตช์การเริ่มระบบ /PAE

หมายเหตุ เนื่องจากเคอร์เนล 64 บิตสามารถรับรู้ Address Windowing Extensions (AWE) จึงไม่มีเคอร์เนล PAE แยกต่างหากใน Windows รุ่น 64 บิต
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ PAE และ AWE ใน Windows Server 2003 โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
283037 มีการสนับสนุนหน่วยความจำขนาดใหญ่ใน Windows 2003 และ Windows Server 2000 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)

DEP ที่ใช้กับซอฟต์แวร์

มีการเพิ่มการตรวจสอบความปลอดภัย Data Execution Prevention ใน Windows XP SP2 การตรวจสอบเหล่านี้ ซึ่งเรียกว่า DEP ที่ใช้กับซอฟต์แวร์ ได้รับการออกแบบเพื่อป้องกันไม่ให้รหัสที่ไม่ประสงค์ดีสามารถใช้ประโยชน์จากการจัดการข้อยกเว้นใน Windows DEP ที่ใช้กับซอฟต์แวร์ทำงานกับโปรเซสเซอร์ทุกชนิดที่สามารถใช้กับ Windows XP SP2 ตามปกติ DEP ที่ใช้กับซอฟต์แวร์จะช่วยป้องกันค่าไบนารีของระบบเพียงบางส่วน โดยไม่คำนึงถึงคุณสมบัติ DEP ที่ใช้กับฮาร์ดแวร์ ซึ่งมีอยู่ในโปรเซสเซอร์

ประโยชน์

ประโยชน์หลักของ DEP คือช่วยป้องกันการเรียกใช้รหัสจากเพจข้อมูล เช่น เพจฮีปที่เป็นค่าเริ่มต้น เพจสแต็คต่างๆ และเพจพูลของหน่วยความจำ ตามปกติ รหัสจะไม่ทำงานจากฮีปและสแต็คที่เป็นค่าเริ่มต้น DEP ที่ใช้ฮาร์ดแวร์จะตรวจหารหัสที่ทำงานจากตำแหน่งเหล่านี้ และทำให้เกิดข้อยกเว้นเมื่อมีการเรียกใช้ หากไม่มีการจัดการข้อยกเว้น กระบวนการจะหยุดทำงาน การเรียกใช้รหัสจากหน่วยความจำในโหมดเคอร์เนลจะทำให้เกิดข้อผิดพลาดที่หยุดการทำงาน

DEP จะช่วยป้องกันการโจมตีระบบความปลอดภัยบางประเภท โดยที่ DEP สามารถป้องกันโปรแกรมที่ไม่ประสงค์ดี ซึ่งไวรัสหรือการโจมตีประเภทอื่นจะส่งกระบวนการที่มีรหัสเพิ่มเติม และพยายามเรียกใช้รหัสดังกล่าว ในระบบที่มี DEP การเรียกใช้รหัสที่ส่งเข้ามาจะทำให้เกิดข้อยกเว้น DEP ที่ใช้ซอฟต์แวร์จะช่วยป้องกันโปรแกรมที่ใช้ประโยชน์จากกลไกจัดการข้อยกเว้นของ Windows

การกำหนดค่า DEP สำหรับทั้งระบบ

การกำหนดค่า DEP สำหรับทั้งระบบจะควบคุมได้จากสวิตช์ในแฟ้ม Boot.ini หากคุณล็อกอินในฐานะผู้ดูแลระบบ คุณสามารถกำหนดการตั้งค่า DEP โดยใช้กรอบข้อความ System ใน Control Panel

Windows รองรับการกำหนดค่าสำหรับทั้งระบบ สำหรับ DEP ที่ใช้กับฮาร์ดแวร์และซอฟต์แวร์
ยุบตารางนี้ขยายตารางนี้
การกำหนดค่า คำอธิบาย
OptInการตั้งค่านี้เป็นค่าดีฟอลต์ ในระบบที่มีโปรเซสเซอร์ที่ใช้คุณสมบัติ DEP ที่ใช้กับฮาร์ดแวร์ ระบบจะใช้งาน DEP เป็นค่าดีฟอลต์ สำหรับค่าไบนารีของระบบ และโปรแกรมซึ่ง "เลือกที่จะใช้งาน" ด้วยตัวเลือกนี้ มีเพียงไบนารีของระบบ Windows เท่านั้นที่จะอยู่ภายใต้ DEP ตามค่าเริ่มต้น
OptOutDEP มีการใช้งานเป็นค่าเริ่มต้นสำหรับทุกกระบวนการ คุณสามารถสร้างรายชื่อโปรแกรมที่ไม่ใช้ DEP โดยใช้กรอบข้อความ System ใน Control Panel ผู้ดูแลและผู้บริหารระบบไอทีสามารถใช้ Application Compatibility Toolkit เพื่อ "เลือกที่จะไม่ใช้" DEP สำหรับบางโปรแกรม การแก้ไขปัญหาการใช้งานร่วมกันหรือโปรแกรมเสริมสำหรับ DEP จะมีผล
AlwaysOnการตั้งค่านี้กำหนดให้มีการใช้ DEP สำหรับทั้งระบบ กระบวนการทั้งหมดจะทำงานโดยมี DEP ไม่สามารถใช้รายชื่อข้อยกเว้นสำหรับบางโปรแกรมจากการป้องกันของ DEP การแก้ไขการใช้งานร่วมกันของ DEP จะไม่มีผล โปรแกรมที่มีการเลือกไม่ให้ใช้งานผ่าน Application Compatibility Toolkit จะมีการใช้คุณสมบัติ DEP
AlwaysOffการตั้งค่านี้จะไม่มีการป้องกันด้วย DEP สำหรับทุกส่วนของระบบ โดยไม่คำนึงถึงการสนับสนุน DEP ของฮาร์ดแวร์ กระบวนการนี้ไม่ทำงานในโหมด PAE ยกเว้นจะมีตัวเลือก /PAE ในแฟ้ม Boot.ini
DEP ที่ใช้กับฮาร์ดแวร์และที่ใช้กับซอฟต์แวร์จะมีการกำหนดค่าในลักษณะเดียวกัน หากกำหนดนโยบายของ DEP สำหรับทั้งระบบเป็น OptIn ไบนารีหลักและโปรแกรมของ Windows จะได้รับการป้องกันโดย DEP ทั้งที่ใช้กับฮาร์ดแวร์และที่ใช้กับซอฟต์แวร์ หากระบบไม่สามารถใช้ DEP ที่ใช้กับฮาร์ดแวณ์ ไบนารีหลักและโปรแกรมของ Windows จะได้รับการป้องกันด้วย DEP ที่ใช้กับซอฟต์แวร์

ในทำนองเดียวกัน ถ้ากำหนดนโยบาย DEP สำหรับทั้งระบบเป็น OptOut โปรแกรมที่มีการยกเว้นจากการป้องกันของ DEP จะถูกยกเว้นทั้งจาก DEP ที่ใช้กับฮาร์ดแวร์และที่ใช้กับซอฟต์แวร์

การตั้งค่าแฟ้ม Boot.ini เป็นดังนี้:
/noexecute=policy_level
หมายเหตุ policy_level จะมีการกำหนดเป็น AlwaysOn, AlwaysOff, OptIn หรือ OptOut

การตั้งค่า /noexecute ที่มีอยู่ใน Boot.ini file จะไม่มีการเปลี่ยนแปลงเมื่อติดตั้ง Windows XP SP2 การตั้งค่าเหล่านี้จะไม่เปลี่ยนไป หากอิมเมจของระบบปฏิบัติการ Windows มีการย้ายจากคอมพิวเตอร์ไปยังคอมพิวเตอร์เครื่องอื่น ซึ่งอาจมีหรือไม่มีการสนับสนุน DEP

ระหว่างการติดตั้ง Windows XP SP2 และ Windows Server 2003 SP1 หรือรุ่นหลังจากนั้น นโยบาย OptIn จะถูกใช้งานเป็นค่าเริ่มต้น ยกเว้นมีการระบุระดับของนโยบายอื่นในการติดตั้งที่ไม่ได้ควบคุม หากไม่มีการตั้งค่า /noexecute=policy_level ในแฟ้ม Boot.ini สำหับ Windows รุ่นที่รองรับ DEP การทำงานจะเหมือนกับมีการตั้งค่า /noexecute=OptIn อยู่

หากคุณเข้าสู่ระบบในฐานะผู้ดูแลระบบ คุณสามารถกำหนดค่า DEP ด้วยตนเองเพื่อสลับระหว่าง OptIn และ OptOut โดยใช้แท็บ Data Execution Prevention ใน System Properties ขั้นตอนต่อไปนี้เป็นวิธีกำหนดค่า DEP ด้วยตนเองในคอมพิวเตอร์:
  1. คลิกที่ Start คลิก Run พิมพ์ sysdm.cpl และคลิกที่ OK
  2. ที่แท็บ Advanced ใต้ Performance คลิกที่ Settings
  3. ในแท็บ Data Execution Prevention ให้ใช้ขั้นตอนต่อไปนี้:
    • คลิกที่ Turn on DEP for essential Windows programs and services only เพื่อเลือกนโยบาย OptIn
    • คลิก Turn on DEP for all programs and services except those I select เพื่อเลือก OptOut policy และคลิกที่ Add เพื่อเพิ่มโปรแกรมที่ไม่ต้องการใช้คุณสมบัติ DEP
  4. คลิกที่ OK สองครั้ง
ผู้บริหารระบบไอทีสามารถควบคุมการกำหนดค่า DEP สำหรับทั้งระบบได้โดยใช้วิธีการต่างๆ คุณสามารถแก้ไขแฟ้ม Boot.ini โดยตรง ด้วยกลไกการใช้สคริปต์หรือด้วยเครื่องมือ Bootcfg.exe ที่มีอยู่ใน Windows XP SP2

ในการกำหนดค่า DEP ให้สลับเป็นข้อกำหนด AlwaysOn โดยใช้แฟ้ม Boot.ini ให้ทำตามขั้นตอนต่อไปนี้
  1. คลิกที่ Start คลิกขวาที่ My Computer และคลิกที่ Properties
  2. คลิกที่แท็บ Advanced จากนั้นคลิก Settings ใต้ฟิลด์ Startup and Recovery
  3. ในฟิลด์ System startup ให้คลิกที่ Edit แฟ้ม Boot.ini จะเปิดขึ้นใน Notepad
  4. ใน Notepad ให้คลิก Find ที่เมนู Edit
  5. ในช่อง Find what ให้พิมพ์ /noexecute แล้วคลิกที่ Find Next
  6. ในไดอะล็อกบ็อกซ์ Find คลิก Cancel
  7. แทนที่ policy_level ด้วย AlwaysOn

    คำเตือน ตรวจสอบว่าคุณป้อนข้อความถูกต้อง สวิตช์ของแฟ้ม Boot.ini ควรเป็น:
    /noexecute=AlwaysOn
  8. ใน Notepad ให้คลิก Save ที่เมนู File
  9. คลิกที่ OK สองครั้ง
  10. เริ่มต้นคอมพิวเตอร์ใหม่
สำหรับการติดตั้ง Windows XP SP2 หรือรุ่นหลังจากนี้โดยไม่มีการควบคุม คุณสามารถใช้แฟ้ม Unattend.txt เพื่อป้อนค่า DEP ที่ต้องการล่วงหน้า คุณสามารถใช้รายการ OSLoadOptionsVar ในส่วน [Data] ของแฟ้ม Unattend.txt เพื่อระบุการกำหนดค่า DEP สำหรับทั้งระบบ

การกำหนดค่า DEP สำหรับแต่ละโปรแกรม

เพื่อให้โปรแกรมสามารถทำงานร่วมกันได้ คุณสามารถตัดการทำงานของ DEP สำหรับโปรแกรม 32 บิตแต่ละโปรแกรม เมื่อมีการกำหนด DEP เป็น OptOut โดยใช้แท็บ Data Execution Prevention ใน System Properties เพื่อตัดการทำงานของ DEP สำหรับโปรแกรม สำหรับผู้บริหารระบบไอที การแก้ไขการใช้งานร่วมกันของโปรแกรม ซึ่งมีชื่อ DisableNX จะรวมอยู่ใน Windows XP SP2 การแก้ไขการทำงานร่วมกัน DisableNX จะตัดการทำงานของ Data Execution Prevention สำหรับโปรแกรมที่ใช้การแก้ไขนี้

การแก้ไข DisableNX นี้สามารถใช้กับโปรแกรม โดยใช้ Application Compatibility Toolkit โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานร่วมกันของแอปพลิเคชันใน Windows ได้ที่ Windows Application Compatibility ในเว็บไซต์ต่อไปนี้ของไมโครซอฟท์:
http://technet.microsoft.com/en-us/windows/aa905066.aspx
หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
912923 วิธีพิจารณาว่ามี DEP ของฮาร์ดแวร์ และได้รับการกำหนดค่าในคอมพิวเตอร์ของคุณ (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)

ข้อมูลอ้างอิง

หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
899298 หัวข้อวิธีใช้ "Understanding Data Execution Prevention" ระบุการตั้งค่าเริ่มต้นที่ผิดพลาดสำหรับ DEP ใน Windows Server 2003 Service Pack 1 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)

คุณสมบัติ

หมายเลขบทความ (Article ID): 875352 - รีวิวครั้งสุดท้าย: 23 พฤศจิกายน 2549 - Revision: 14.2
ใช้กับ
  • Microsoft Windows Server 2003 Service Pack 1 เมื่อใช้กับ:
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • 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
Keywords: 
kbtshoot kbinfo KB875352

ให้ข้อเสนอแนะ

 

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