Ubuntu ใช้คุณลักษณะด้านความปลอดภัยเช่น DEP และ ALSR หรือไม่


11

ฉันมักจะอ่านว่ามีคุณสมบัติเช่น DEP (Data Execution Prevention) และ ASLR (การสุ่มตัวอย่างพื้นที่ที่อยู่เค้าโครง) บน Windows ใน Windows คุณสามารถควบคุมการเปิด DEP สำหรับโปรแกรม 32 บิตได้

  • ฟีเจอร์เหล่านี้มีใน Ubuntu หรือไม่
  • มีอะไรที่เราต้องทำเพื่อเปิดคุณสมบัติเหล่านี้?

คำตอบ:


20

ใช่ทั้งคู่ โดยค่าเริ่มต้นจะเปิดอยู่ คุณไม่จำเป็นต้องทำอะไรเพื่อเปิดใช้งาน คำตอบอีกต่อไปนี้ ...

DEP ถูกใช้เป็นค่าเริ่มต้นใน Ubuntu ทำได้โดยใช้บิต NX หาก CPU รองรับหรือจำลองผ่านการแบ่งส่วนหน่วยความจำหาก CPU ไม่รองรับ สำหรับรายละเอียดเพิ่มเติมให้ดูรายการคุณลักษณะหน่วยความจำที่ไม่สามารถใช้งานได้

ASLR ถูกใช้เป็นค่าเริ่มต้นใน Ubuntu ในส่วนหน่วยความจำใด ๆ ที่สามารถเปลี่ยนตำแหน่งได้ (สแต็กไลบรารีฮีป mmap) ส่วนเดียวของโปรแกรมที่ไม่สามารถเปลี่ยนตำแหน่งได้ตามค่าเริ่มต้นคือพื้นที่รหัสหลัก (ส่วน "ข้อความ") โปรแกรมจะต้องรวบรวมเป็นพิเศษเป็น PIE (ตำแหน่งอิสระปฏิบัติการ) เพื่อเปิดใช้งานนี้ โปรแกรมที่ละเอียดอ่อนจำนวนมากถูกสร้างขึ้นด้วยวิธีนี้ สำหรับรายละเอียดเพิ่มเติมดูรายการ

คุณลักษณะด้านความปลอดภัยเพิ่มเติมมากมายนั้นมีอยู่ใน Ubuntu ด้วยเช่นกัน ดูเอกสารประกอบ Ubuntu Security Featuresสำหรับรายการทั้งหมด


1

โดยค่าเริ่มต้นเคอร์เนล Linux ใช้ประโยชน์จากเทคโนโลยีที่คล้ายคลึงกันอย่างไรก็ตามจะแตกต่างจากรุ่น Windows หากโปรเซสเซอร์ของคุณมีความสามารถในการตั้งค่าบิต NX (CPU ที่ทันสมัยที่สุด) จากนั้นเคอร์เนลจะใช้ประโยชน์จากมัน นอกจากนี้ยังมีการใช้งานที่อ่อนแอใน ASLR ในเคอร์เนลและสามารถติดตั้งที่แข็งแกร่งกว่าได้ แต่จะไม่ติดตั้งตามค่าเริ่มต้นบน Ubuntu


3
ฉันไม่สามารถหาข้อมูลอ้างอิงได้ในขณะนี้ (บทความ Wikipedia ที่ en.wikipedia.org/wiki/ASLRไม่มีบิตของการเปรียบเทียบเอนโทรปี) แต่ความเข้าใจของฉันคือ Windows ASLR นั้นอ่อนแอกว่า Linux และถ้าคุณต้องการ ASLR ที่หนักกว่าค่าดีฟอลต์ของ Linux คุณสามารถสร้างเคอร์เนล PaX patchset ของคุณเองได้
Kees Cook

บทความที่ดีทำลายความแตกต่างcert.org/blogs/certcc/post.cfm?EntryID=191แน่นอนว่าจะไม่สมบูรณ์เมื่อมีการโต้วาทีในรายละเอียดปลีกย่อย: D reddit.com/r/netsec/comments/ 1xjwde / …
Univ426

0

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


3
PAE จำเป็นสำหรับฮาร์ดแวร์ NX เท่านั้น 64 บิตเป็น PAE อยู่แล้วดังนั้นในรุ่น 32 บิตหากคุณไม่ได้ใช้เคอร์เนล PAE หรือฮาร์ดแวร์ของคุณขาด NX บิต Ubuntu จะจำลองคุณสมบัติ NX โดยใช้การแบ่งส่วนหน่วยความจำ
Kees Cook

@Kees Cook: ขอบคุณสำหรับข้อมูล OP ถามถึง 32 บิต ในระบบของฉัน (อูบุนตู 10.10 32bit) กล่าวว่าdmesg NX (Execute Disable) protection cannot be enabled: non-PAE kernelในทางกลับกันเมื่อฉันรันการทดสอบจากbazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/ ......ดูเหมือนว่าจะมีการบังคับใช้ แต่ไม่ใช่สำหรับการทดสอบ-pieและ -rieดังนั้นมันค่อนข้างสับสนสำหรับฉัน
จัดการ

2
น่าเสียดายที่รายงาน dmesg ของ 10.10 ขึ้นไปมีข้อผิดพลาดที่ไม่ได้บอกว่าเมื่อเปิดใช้งานการจำลอง NX บนฮาร์ดแวร์ที่มี NX แต่ไม่มีเคอร์เนล PAE: kernel.ubuntu.com/git?p=ubuntu/ …
Kees Cook

1
(สิ่งนี้ได้รับการรายงานว่าเป็นข้อบกพร่องในขณะนี้: bugs.launchpad.net/ubuntu/+source/linux/+bug/745181 )
Kees Cook
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.