Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 10

CPU Protection Privilege Rings คืออะไร?

CPU protection rings (วงแหวนการป้องกัน CPU) เป็นชั้นโครงสร้างที่จำกัดการปฏิสัมพันธ์ระหว่างแอปพลิเคชันที่ติดตั้งบนคอมพิวเตอร์กับกระบวนการหลัก (core processes) โดยทั่วไปจะเริ่มจากชั้นนอกสุดซึ่งเป็น Ring 3 ไปจนถึงชั้นในสุดซึ่งเป็น Ring 0 หรือที่เรียกว่ากernel (เคอร์เนล)

Ring 0 อยู่ที่แกนกลางของกระบวนการระบบทั้งหมด ใครก็ตามที่ควบคุม kernel สามารถควบคุมทุกด้านของคอมพิวเตอร์ได้ ในการป้องกันการใช้ kernel อย่างผิดวัตถุประสงค์ สถาปนิกระบบคอมพิวเตอร์จึงจำกัดการเข้าถึงโซนนี้ ดังนั้น กระบวนการส่วนใหญ่ที่ผู้ใช้คอมพิวเตอร์เข้าถึงได้ จะถูกจำกัดไว้ที่ Ring 3 เท่านั้น แล้ว privilege rings ทำงานอย่างไร?

Privilege Rings ปฏิสัมพันธ์กันอย่างไร?

กระบวนการ Ring 0 ทำงานในโหมด supervisor (ผู้ 監督) จึงไม่ต้องการอินพุตจากผู้ใช้ การรบกวนอาจทำให้เกิดข้อผิดพลาดระบบร้ายแรงและปัญหาความปลอดภัยที่แก้ไขไม่ได้ นี่คือเหตุผลที่พวกมันถูกออกแบบมาให้เข้าถึงไม่ได้โดยผู้ใช้โดยเจตนา

มาดูตัวอย่าง Windows: การเข้าถึง Ring 0 โดยกระบวนการ Ring 3 ถูกจำกัดให้เป็นเพียงคำสั่งข้อมูลบางอย่าง ในการเข้าถึง kernel แอปพลิเคชันใน Ring 3 ต้องสร้างการเชื่อมต่อที่จัดการโดยหน่วยความจำเสมือน (virtualized memory) แม้กระนั้น แอปพลิเคชันที่ได้รับอนุญาตให้ทำเช่นนั้นก็มีเพียงไม่กี่ตัว

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

Windows รุ่นเก่าๆ (เช่น Windows 95/98) มีการป้องกันระหว่าง privilege Rings น้อยกว่า นี่เป็นหนึ่งในเหตุผลหลักที่ทำให้พวกมันไม่เสถียรและเกิดข้อผิดพลาดบ่อย ในระบบทันสมัย ความปลอดภัยของหน่วยความจำ kernel ได้รับการเสริมสร้างโดยชิปฮาร์ดแวร์เฉพาะทาง

การป้องกันหน่วยความจำ Kernel ของ Windows ปัจจุบันต่อการบุกรุก

CPU Protection Privilege Rings คืออะไร?

Microsoft ได้นำการป้องกันที่ทรงพลังมาสำหรับหน่วยความจำ Kernel เริ่มจาก Windows 10 รุ่น 1803

ในจำนวนหนึ่งที่โดดเด่นคือ Kernel DMA Protection ฟีเจอร์เชิงรวมที่ออกแบบมาเพื่อป้องกันคอมพิวเตอร์ส่วนบุคคลจากโจมตี Direct Memory Access (DMA) โดยเฉพาะที่นำมาผ่าน PCI hot plugs การคุ้มครองได้ขยายในบิลด์ 1903 ไปครอบคลุมพอร์ต PCIe ภายใน เช่น สล็อต M.2

หนึ่งในเหตุผลหลักที่ Microsoft เลือกให้การป้องกันเพิ่มเติมแก่ภาคส่วนเหล่านี้ คือ เพราะอุปกรณ์ PCI เป็น DMA-capable (รองรับ DMA) ตั้งแต่กล่อง ซึ่งความสามารถนี้ช่วยให้พวกมันอ่านและเขียนบนหน่วยความจำระบบได้โดยไม่ต้องขออนุญาตจากโปรเซสเซอร์ระบบ คุณสมบัตินี้เป็นหนึ่งในเหตุผลหลักที่อุปกรณ์ PCI มีประสิทธิภาพสูง

รายละเอียดของกระบวนการป้องกัน DMA

CPU Protection Privilege Rings คืออะไร?

Windows ใช้โปรโตคอล Input/Output Memory Management Unit (IOMMU) เพื่อบล็อกอุปกรณ์ต่อพ่วงที่ไม่ได้รับอนุญาตจากการดำเนินการ DMA อย่างไรก็ตาม มีข้อยกเว้นหากไดรเวอร์ของพวกมันรองรับการแยกหน่วยความจำที่ดำเนินการด้วย DMA Remapping

ด้วยเช่นนั้น ยังต้องการสิทธิ์เพิ่มเติม โดยทั่วไป ผู้ดูแลระบบ OS จะถูกแจ้งให้ให้การอนุมัติ DMA เพื่อปรับแต่งและทำให้กระบวนการที่เกี่ยวข้องเป็นอัตโนมัติเพิ่มเติม นโยบาย DmaGuard MDM สามารถเปลี่ยนแปลงได้โดยผู้เชี่ยวชาญ IT เพื่อกำหนดว่าจะจัดการไดรเวอร์ DMA Remapping ที่ไม่เข้ากันได้อย่างไร

เพื่อตรวจสอบว่าระบบของคุณมี Kernel DMA Protection อยู่หรือไม่ ให้ใช้ Security Center และดูการตั้งค่าใน Core Isolation Details ภายใต้ Memory Access Protection สำคัญคือระบบปฏิบัติการที่เปิดตัวหลัง Windows 10 รุ่น 1803 เท่านั้นที่มีฟีเจอร์นี้

ทำไม CPU จึงนادرิพึ่งพาสิทธิ์ Ring 1 และ 2

CPU Protection Privilege Rings คืออะไร?

Ring 1 และ 2 ใช้ส่วนใหญ่โดยไดรเวอร์และระบบปฏิบัติการแขก (guest operating systems) โค้ดส่วนใหญ่ในระดับสิทธิ์เหล่านี้ก็ได้รับการนำกลับมาใช้ใหม่บางส่วน (semi-repurposed) ดังนั้น โปรแกรม Windows ร่วมสมัยส่วนใหญ่จึงทำงานเหมือนระบบมีเพียงสองระดับ—ระดับ kernel และระดับผู้ใช้

ด้วยเช่นนั้น แอปพลิเคชันเสมือนจริง (virtualization) เช่น VirtualBox และ Virtual Machine ใช้ Ring 1 ในการทำงาน

คำสุดท้ายเกี่ยวกับสิทธิ์

การออกแบบ multiple privilege rings (วงแหวนสิทธิ์หลายชั้น) เกิดจากสถาปัตยกรรมระบบ x86 แต่การใช้ระดับสิทธิ์ Ring ทั้งหมดตลอดเวลาเป็นเรื่องไม่สะดวก จะนำไปสู่ latency (เวลาเลื่อนลags) เพิ่มขึ้นและปัญหาความเข้ากันได้