เอ็นเอ็กซ์ บิต
บิต NX ( no -execute bit ) เป็นคุณสมบัติของโปรเซสเซอร์ที่แบ่งพื้นที่ของหน่วยความจำเสมือน (โครงสร้างหน่วยความจำที่โปรแกรมใช้) ออกเป็นส่วนๆ สำหรับจัดเก็บข้อมูลหรือคำสั่งโปรแกรมระบบปฏิบัติการที่รองรับบิต NX สามารถทำเครื่องหมายบางส่วนของหน่วยความจำเสมือนว่าเป็นพื้นที่ที่ไม่สามารถเรียกใช้งานได้ ซึ่งจะป้องกันไม่ให้โปรเซสเซอร์รันโค้ดใดๆ ที่จัดเก็บไว้ในนั้น เทคนิคนี้เรียกว่าการป้องกันพื้นที่ที่สามารถเรียกใช้งานได้หรือWrite XOR Execute ซึ่งช่วยปกป้องคอมพิวเตอร์จากซอฟต์แวร์ที่เป็นอันตรายที่พยายามแทรกโค้ดที่เป็นอันตรายเข้าไปในพื้นที่จัดเก็บข้อมูลของโปรแกรมอื่นและเรียกใช้งาน เช่น ในการโจมตีแบบ buffer overflow
คำว่า "NX bit" ถูกนำมาใช้โดยAdvanced Micro Devices (AMD) ในฐานะคำทางการตลาดIntelทำการตลาดคุณสมบัตินี้ในชื่อXD bit ( execute disable ) ในขณะที่สถาปัตยกรรม MIPSเรียกมันว่าXI bit ( execute inhibit ) ในสถาปัตยกรรม ARMซึ่งนำมาใช้ในARMv6เรียกว่าXN ( execute never ) [ 1 ]คำว่า NX bit มักถูกใช้ในวงกว้างเพื่ออธิบายเทคโนโลยีการป้องกันพื้นที่ปฏิบัติการที่คล้ายกันในโปรเซสเซอร์อื่นๆ
การสนับสนุนด้านสถาปัตยกรรม
x86
โปรเซสเซอร์x86 ตั้งแต่รุ่น 80286 เป็นต้น มา มีความสามารถที่คล้ายกันนี้ซึ่งถูกนำมาใช้ใน ระดับ เซกเมนต์อย่างไรก็ตาม ระบบปฏิบัติการเกือบทั้งหมดสำหรับ โปรเซสเซอร์ 80386และ x86 รุ่นต่อมา ใช้โมเดลหน่วยความจำแบบแบน (flat memory model ) ดังนั้นจึงไม่สามารถใช้ความสามารถนี้ได้ เนื่องจากไม่มีแฟล็ก "Executable" ในรายการตารางเพจ (page descriptor) ในโปรเซสเซอร์เหล่านั้น เพื่อให้ระบบปฏิบัติการที่ใช้โมเดลหน่วยความจำแบบแบนสามารถใช้ความสามารถนี้ได้ จนกระทั่ง AMD เพิ่มบิต "no-execute" หรือ NX เข้าไปในรายการตารางเพจใน สถาปัตยกรรม AMD64ซึ่งเป็นกลไกที่สามารถควบคุมการทำงานต่อหน้าแทนที่จะเป็นทั้งเซกเมนต์
Intel ได้นำคุณสมบัติที่คล้ายกันมาใช้ใน โปรเซสเซอร์ Itanium ( Merced ) ซึ่งมีสถาปัตยกรรมIA-64 ในปี 2544 แต่ไม่ได้นำมาใช้กับตระกูลโปรเซสเซอร์ x86 ที่ได้รับความนิยมมากกว่า ( Pentium , Celeron , Xeonเป็นต้น) ในสถาปัตยกรรม x86 นั้น AMD เป็นผู้นำมาใช้เป็นครั้งแรกในชื่อNX bitสำหรับใช้ใน โปรเซสเซอร์ตระกูล AMD64เช่นAthlon 64และOpteron [ 2 ]
หลังจากที่ AMD ตัดสินใจรวมฟังก์ชันนี้ไว้ในชุดคำสั่ง AMD64 แล้ว Intel ก็ได้นำคุณสมบัติบิต XD ที่คล้ายกันมาใช้ในโปรเซสเซอร์ x86 โดยเริ่มจาก โปรเซสเซอร์ Pentium 4ที่ใช้แกน Prescott รุ่นหลังๆ[ 3 ]บิต NX หมายถึงบิตหมายเลข 63 (เช่น บิตที่มีนัยสำคัญที่สุด) ของรายการ 64 บิตในตารางเพจ โดยเฉพาะ หากบิตนี้ถูกตั้งค่าเป็น 0 โค้ดสามารถถูกเรียกใช้จากเพจนั้นได้ หากตั้งค่าเป็น 1 โค้ดจะไม่สามารถถูกเรียกใช้จากเพจนั้นได้ และสิ่งใดก็ตามที่อยู่ในนั้นจะถือว่าเป็นข้อมูล ฟังก์ชันนี้มีให้ใช้งานเฉพาะในโหมดแบบยาว (โหมด 64 บิต) หรือ รูปแบบตารางเพจ Physical Address Extension (PAE) แบบดั้งเดิมเท่านั้น แต่ไม่ใช่รูปแบบตารางเพจ 32 บิตดั้งเดิมของ x86 เนื่องจากรายการตารางเพจในรูปแบบนั้นขาดบิตที่ 64 ที่ใช้ในการปิดใช้งานและเปิดใช้งานการเรียกใช้
ระบบปฏิบัติการ Windows XP SP2 และเวอร์ชันที่ใหม่กว่ารองรับการป้องกันการเรียกใช้ข้อมูล (Data Execution Prevention หรือ DEP)
แขน
ในARMv6มีการนำรูปแบบรายการตารางเพจใหม่มาใช้ ซึ่งรวมถึงบิต "ห้ามเรียกใช้งาน" [ 1 ]สำหรับARMv8-Aตัวอธิบายบล็อกและเพจ VMSAv8-64 และตัวอธิบายบล็อกและเพจแบบยาว VMSAv8-32 สำหรับการแปลขั้นที่ 1 จะมีบิต "ห้ามเรียกใช้งาน" สำหรับทั้งโหมดที่มีสิทธิ์และไม่มีสิทธิ์ และตัวอธิบายบล็อกและเพจสำหรับการแปลขั้นที่ 2 จะมีบิต "ห้ามเรียกใช้งาน" เพียงบิตเดียว (สองบิตเนื่องจากคุณสมบัติ ARMv8.2-TTS2UXN) ตัวอธิบายตารางการแปลแบบสั้น VMSAv8-32 ที่ระดับ 1 จะมีบิต "ห้ามเรียกใช้งาน" สำหรับทั้งโหมดที่มีสิทธิ์และไม่มีสิทธิ์ และที่ระดับ 2 จะมีบิต "ห้ามเรียกใช้งาน" เพียงบิตเดียว[ 4 ]
อัลฟ่า
ตามคู่มือสถาปัตยกรรม Alpha ฉบับที่สี่DEC (ปัจจุบัน คือ HP) Alphaมีข้อผิดพลาดในบิตการดำเนินการในรายการตารางเพจด้วยOpenVMS , Tru64 UNIXและ Alpha Linux PALcode [ 5 ]
สปาร์ค
MMU อ้างอิง SPARC สำหรับSun SPARCเวอร์ชัน 8 มีค่าสิทธิ์การอ่านอย่างเดียว อ่าน/เขียน อ่าน/เรียกใช้ และอ่าน/เขียน/เรียกใช้ในรายการตารางเพจ[ 6 ]แม้ว่าโปรเซสเซอร์ SPARC ทั้งหมดจะไม่มี MMU อ้างอิง SPARC ก็ตาม
MMU เวอร์ชัน SPARC 9 อาจให้สิทธิ์การอ่าน/เขียน/เรียกใช้งานแบบใดก็ได้ แต่ไม่จำเป็นต้องให้[ 7 ] รายการตารางการแปลในบัฟเฟอร์จัดเก็บการแปลใน Oracle SPARC Architecture 2011 ฉบับร่าง D1.0.0 มีบิตที่สามารถเรียกใช้งานและเขียนได้แยกกัน[ 8 ]
PowerPC/Power ISA
รายการตารางเพจสำหรับ ตารางเพจแบบแฮชของ IBM PowerPCมีบิตเพจที่ไม่สามารถเรียกใช้ได้[ 9 ] รายการตารางเพจสำหรับตารางเพจแบบเรดิกซ์ทรีใน Power ISA มีบิตสิทธิ์แยกต่างหากที่ให้สิทธิ์ในการอ่าน/เขียนและการเรียกใช้[ 10 ]
พีเอ-ริสซี
รายการ บัฟเฟอร์ค้นหาการแปล (TLB) และรายการตารางเพจในPA-RISC 1.1 และ PA-RISC 2.0 รองรับเพจแบบอ่านอย่างเดียว อ่าน/เขียน อ่าน/เรียกใช้งาน และอ่าน/เขียน/เรียกใช้งาน[ 11 ] [ 12 ]
ไอทาเนียม
รายการ TLB ในItaniumรองรับเพจแบบอ่านอย่างเดียว อ่าน/เขียน อ่าน/เรียกใช้งาน และอ่าน/เขียน/เรียกใช้งาน[ 13 ]
z/สถาปัตยกรรม
ตามหลักการปฏิบัติการของ สถาปัตยกรรม z/Architecture ฉบับที่สิบสอง โปรเซสเซอร์สถาปัตยกรรม z/Architecture อาจรองรับฟังก์ชันการป้องกันการดำเนินการคำสั่ง ซึ่งเพิ่มบิตในรายการตารางเพจที่ควบคุมว่าคำสั่งจากภูมิภาค เซ็กเมนต์ หรือเพจที่กำหนดสามารถดำเนินการได้หรือไม่[ 14 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- AMD และ Intel นำเทคโนโลยีป้องกันไวรัสมาใส่ในชิป
- ไมโครซอฟต์ให้สัมภาษณ์เกี่ยวกับการประมวลผลที่น่าเชื่อถือและเทคโนโลยี NX
- ประกาศ LKML NX
- การเปลี่ยนแปลงฟังก์ชันการทำงานใน Microsoft Windows XP Service Pack 2ตอนที่ 3: เทคโนโลยีการป้องกันหน่วยความจำ
- ศูนย์พัฒนาความปลอดภัยของ Microsoft: Windows XP SP 2: การป้องกันการเรียกใช้งาน