1 คะแนน โดย GN⁺ 2025-03-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ปัญหาของเคอร์เนลระบบปฏิบัติการแบบ monolithic

  • ระบบปฏิบัติการสมัยใหม่โดยทั่วไปแบ่งออกเป็น 2 โดเมนการป้องกันหลัก:
    • โดเมนที่ไม่มีสิทธิพิเศษ (user mode): โปรแกรมไม่สามารถทำงานที่มีสิทธิสูงโดยตรงได้ เช่น การเข้าถึงไฟล์หรือการสื่อสารผ่านเครือข่าย
    • โดเมนที่มีสิทธิพิเศษ (kernel mode): เมื่อโปรแกรมร้องขอให้เคอร์เนลดำเนินงานผ่าน system call โค้ดของเคอร์เนลจะทำงานนั้นและส่งผลลัพธ์กลับไปยัง user mode
  • ระบบปฏิบัติการส่วนใหญ่ใช้การออกแบบแบบ monolithic kernel:
    • เคอร์เนลมีสิทธิ์เข้าถึงฮาร์ดแวร์ หน่วยความจำ และข้อมูลผู้ใช้ทั้งหมดของระบบได้อย่างไม่จำกัด
    • หากซอฟต์แวร์ไม่มีข้อบกพร่องและไม่มีความพยายามเจาะระบบก็คงไม่มีปัญหา แต่ในความเป็นจริงย่อมมีทั้งบั๊กและช่องโหว่ด้านความปลอดภัย
    • เนื่องจาก monolithic kernel มีขนาดใหญ่ จึงมีโอกาสเกิดช่องโหว่ด้านความปลอดภัยสูง และช่องโหว่เพียงจุดเดียวก็อาจนำไปสู่ความเสียหายของทั้งระบบได้
  • การออกแบบแบบ microkernel เพิ่มความปลอดภัยด้วยการนำฟังก์ชันส่วนใหญ่ออกจากเคอร์เนล แล้วให้ประมวลผลในโปรเซสแยกที่ไม่มีสิทธิพิเศษ:
    • สามารถเสริมความปลอดภัยได้
    • แต่อาจทำให้ประสิทธิภาพลดลงและเพิ่มความซับซ้อนของซอฟต์แวร์แอปพลิเคชัน
    • ถึงอย่างนั้น monolithic kernel ก็ยังถูกใช้อย่างแพร่หลายเพราะข้อได้เปรียบด้านประสิทธิภาพ
  • เคอร์เนล XNU ของ Apple:
    • เป็นเคอร์เนลที่ใช้ร่วมกันใน iOS, macOS, tvOS, visionOS และ watchOS
    • แม้จะเป็น microkernel ที่มีพื้นฐานจาก Mach แต่เพราะฟังก์ชันของระบบส่วนใหญ่รันอยู่ภายใต้ขอบเขตสิทธิพิเศษเดียวกัน จึงทำงานไม่ต่างจาก monolithic kernel ในทางปฏิบัติ
    • ดังนั้นจึงอาจเผชิญช่องโหว่ด้านความปลอดภัยแบบเดียวกับ monolithic kernel ได้

ความพยายามในการแยกส่วน

  • มีความพยายามหลายรูปแบบในการนำเทคโนโลยีการแยกส่วนทั้งฝั่งซอฟต์แวร์และฮาร์ดแวร์มาใช้:
    • Microsoft Virtualisation-based Security (VBS) – ใช้ใน Credential Guard ของ Windows
    • Intel Software Guard Extension (SGX) และ VT-X2
    • ARM TrustZone – ใช้ใน Samsung Knox, Samsung Pay, Android Verified Boot, การป้อน PIN ด้านความปลอดภัยของ Android เป็นต้น

Apple เองก็พยายามขยายการแยกข้อมูลออกจากเคอร์เนลอย่างต่อเนื่อง

  • 2013 — Apple Secure Enclave

    • เปิดตัวครั้งแรกใน iPhone 5s ปี 2013
    • Secure Enclave ทำงานบนคอร์ CPU ที่เสริมความแข็งแกร่งและแยกออกมาต่างหาก โดยรันบน SepOS ซึ่งเป็น OS แบบ microkernel
      • เคอร์เนลของ SepOS ใช้ cL4 ซึ่งเป็น embedded microkernel แบบ L4 ที่ Apple ปรับแต่งเอง
      • จัดเก็บและปกป้องข้อมูลอ่อนไหว เช่น คีย์เข้ารหัสและข้อมูลชีวมิติ (เช่น Face ID)
      • ทำงานแยกจากเคอร์เนล iOS และให้บริการแก่ iOS ผ่านการโต้ตอบที่ปลอดภัยเท่านั้น
      • แม้เคอร์เนล iOS จะถูกเจาะ Secure Enclave ก็จะไม่ได้รับผลกระทบ เว้นแต่จะมีการ exploit เพิ่มเติมเกิดขึ้น
    • โปรดสังเกตว่า Secure Enclave และ Secure Exclave เป็นคนละแนวคิดกัน
  • 2017 — Page Protection Layer (PPL)

    • ฟีเจอร์ด้านความปลอดภัยที่เปิดตัวใน ชิป A11 ของ iPhone 8 และ iPhone X
    • เป็นฟีเจอร์ที่อาศัยทั้งฮาร์ดแวร์และซอฟต์แวร์ โดยให้สิทธิ์แก้ไข page table เฉพาะกับบางส่วนของเคอร์เนลเท่านั้น
      • ส่วนที่เหลือของเคอร์เนลจะถูกจำกัดสิทธิ์ในการแก้ไข page table
      • ทำให้ attack surface เล็กลงและความพยายามในการ bypass เกิดขึ้นได้ยากขึ้น
    • แม้ PPL จะเพิ่มชั้นการป้องกัน แต่สิทธิ์ส่วนใหญ่ของเคอร์เนลยังคงอยู่ จึงยังมีข้อจำกัดในการเสริมความปลอดภัยแบบสมบูรณ์
  • 2021–2023 — Secure Page Table Monitor (SPTM)

    • ฟีเจอร์ใหม่ที่เปิดตัวใน ชิป A15 ของ iPhone 13 และ iOS 17
    • เข้ามาแทนที่ PPL ปกป้องฟังก์ชันหน่วยความจำเพิ่มเติม และแยกสิ่งเหล่านี้ออกเป็นหลาย subsystem
    • เสริมความปลอดภัยของการตรวจสอบ code signing และทำให้รันได้เฉพาะโค้ดที่ Apple ลงนามเท่านั้น
    • ในช่วงเวลานี้มีการอ้างถึง exclave แบบอ้อม ๆ ในซอร์สโค้ด XNU
      • มีการตั้งข้อสังเกตว่า subsystem ที่ SPTM จัดการอยู่อาจเป็น exclave
  • 2024 — Exclaves: การยกเครื่องโมเดลความปลอดภัยครั้งใหญ่ของ XNU

    • แนวคิดเรื่อง exclave ปรากฏในซอร์สโค้ด XNU ที่รองรับชิป M4 และ A18
    • ในชิปรุ่นก่อนหน้า exclave จะไม่ถูกเปิดใช้งาน
    • ทำให้เห็นชัดว่า exclave คือผลลัพธ์ของการออกแบบโมเดลความปลอดภัยของ XNU ใหม่ครั้งใหญ่
  • XNU Exclaves

    ข้อสงวนสิทธิ์: โครงสร้างภายในของ exclave ไม่ได้เปิดซอร์สทั้งหมด ดังนั้นบางส่วนอาจเป็นการคาดเดาหรือการตีความ

    • exclave คือชุดฟีเจอร์ใหม่ที่ยกระดับโมเดลความปลอดภัยของเคอร์เนล XNU แบบ monolithic เดิมอย่างมาก
    • exclave คือ ทรัพยากรที่ถูกแยกออกจาก XNU และยังคงได้รับการปกป้องแม้เคอร์เนลจะถูกเจาะ
    • คุณลักษณะของ exclave:
      • ถูกกำหนดไว้ล่วงหน้าตอน build OS
      • ระบุได้ด้วยชื่อหรือ ID
      • ประกอบด้วยหลายประเภท
      • ถูกเริ่มต้นในช่วงบูต
      • ถูกจัดระเบียบเป็น โดเมนอิสระ
      • SPTM ปกป้องหน่วยความจำของ exclave ด้วย page type ใหม่ที่ออกแบบมาสำหรับ exclave โดยเฉพาะ
    • ประเภททรัพยากรของ exclave
      • shared memory buffer – เข้าถึงได้ทั้งจากเคอร์เนลและ exclave
        • สามารถตั้งค่าให้เป็น read-only หรือ read/write จากฝั่ง XNU ได้
      • audio buffer และ sensor – เสริมความปลอดภัยของตัวบ่งชี้การเข้าถึงกล้องและไมโครโฟน
      • Conclave – จัดกลุ่มทรัพยากรหลายอย่างให้อยู่ในโดเมนความปลอดภัยของตนเอง และมี Conclave Manager สำหรับจัดการ
      • service – รันโค้ดใน exclave เมื่อ thread ของ XNU เรียกใช้งาน
  • Secure Kernel — มีพื้นฐานจาก seL4?

    • มีการนำเคอร์เนลใหม่ชื่อ Secure Kernel (SK) มาใช้เพื่อให้บริการ exclave ทำงานแยกจาก XNU ได้
    • พบสตริงเวอร์ชันของ "cL4" ในไฟล์ image ของ SK
    • มีความเป็นไปได้สูงว่า SK จะมีพื้นฐานจาก seL4 ไม่ใช่เคอร์เนล cL4 (ที่มีพื้นฐานจาก L4) เดิมของ Apple
      • โครงสร้าง IPC ที่ XNU ใช้สื่อสารกับ SK คล้ายกับของ seL4
      • พบแนวคิดที่ seL4 ใช้จำนวนมากในสตริงที่ใช้ใน SK (เช่น capabilities, frames, untyped memory เป็นต้น)
    • การที่ Apple เข้าร่วม seL4 Foundation ในเดือนเมษายน 2024 อาจไม่ใช่เรื่องบังเอิญ
      • เคอร์เนลของ ชิป C1 (ชิปเบสแบนด์รุ่นใหม่ของ Apple) ก็ดูเหมือนจะมีพื้นฐานจาก L4 เช่นกัน
  • Secure World — ARM TrustZone?

    • SepOS ทำงานบนโปรเซสเซอร์แยกต่างหาก ขณะที่ SK ทำงานบน application processor ความเร็วสูง
    • สิ่งนี้ต้องการระดับสิทธิพิเศษของโปรเซสเซอร์เพิ่มเติม → อาจถูกทำให้เกิดขึ้นด้วยหนึ่งในวิธีต่อไปนี้:
      • รองรับ virtualization extension
      • ส่วนขยาย SPTM ของ Apple
      • มีความเป็นไปได้มากที่สุดคือใช้เทคโนโลยี ARM TrustZone
    • โครงสร้างของ TrustZone
      • แบ่งระบบออกเป็นสอง world:
        • Secure World – รันโค้ดที่ปลอดภัย
        • Insecure World – รันโค้ดทั่วไป (รัน XNU และ iOS)
      • พบการอ้างอิงจำนวนมากในซอร์สโค้ด XNU เกี่ยวกับการสลับระหว่าง Secure World และ Insecure World ของ TrustZone
        • Apple ใช้โมเดลบริการ exclave แทน Trusted Application model ที่ TrustZone เสนอ
      • SK มอบบริการและทรัพยากรของ exclave ในสภาพแวดล้อมที่แยกออกมา → เพิ่มความปลอดภัย
        • คาดว่าจะเป็นเรื่องยากมากที่จะหลบหนีจาก Secure World ไปยัง Insecure World เพื่อเจาะ XNU
    • RINGGATE
      • Apple อาจใช้ SPTM เพื่อจัดการการสลับระหว่าง Secure World ↔ Insecure World
      • ในโค้ดมีการอ้างถึงการสลับนี้ว่า "RINGGATE"

บทสรุป

  • ความหมายของการนำ exclave มาใช้
    • เพื่อรับมือกับการโจมตีต่อเนื่องจากผู้คุกคามระดับสูง Apple จึงนำ exclave มาใช้เพื่อยกระดับความปลอดภัยของระบบปฏิบัติการ
    • การแยกทรัพยากรที่อ่อนไหวออกมาคาดว่าจะให้ผลดังนี้:
      • ลด attack surface
      • ลดผลกระทบจากช่องโหว่ในเคอร์เนลเพียงจุดเดียว
  • การป้องกัน monolithic kernel เป็นความท้าทายที่ไม่สิ้นสุด และ exclave คือหนึ่งในแนวทางในการแก้ปัญหานี้
    • ยังไม่แน่ชัดว่าในระยะยาวนี่คือทิศทางที่ถูกต้อง หรือเป็นเพียงมาตรการชั่วคราว
    • ความหวังส่วนตัว → อยากเห็นการออกแบบใหม่บนพื้นฐานของ CHERI และ ARM Morello ในอนาคต 😊
    • แต่ ณ ตอนนี้นี่คือ ความพยายามด้านการป้องกันที่ใหญ่ที่สุดในบรรดาผู้ผลิตอุปกรณ์สำหรับผู้บริโภค
  • บทความนี้ไม่ได้ลงรายละเอียดอย่างชัดเจนว่า component ใดถูกย้ายไปอยู่ใน exclave บ้าง
    • จาก build image ดูเหมือนว่าองค์ประกอบต่อไปนี้กำลังทำงานอยู่ใน exclave:
      • ตัวบ่งชี้ความปลอดภัยของกล้อง/ไมโครโฟน
      • ฟังก์ชันบางส่วนของ Apple Neural Engine (ANE)
      • device driver บางตัว
      • component สำหรับสื่อสารกับ Secure Enclave
  • มีความเป็นไปได้ว่าในอนาคตจะมี component เพิ่มเติมถูกย้ายไปยัง exclave
    • ผลลัพธ์ด้านความปลอดภัยของ exclave ขึ้นอยู่กับ ระดับการปรับให้เหมาะสม ของการย้ายเหล่านี้
  • exclave อาจถูกนำไปใช้ในโครงสร้างพื้นฐาน Apple Private Cloud Compute
    • สามารถรับประกันความปลอดภัยและความเป็นส่วนตัวในระดับสูงสำหรับ AI บนคลาวด์ได้

1 ความคิดเห็น

 
GN⁺ 2025-03-10
ความเห็นบน Hacker News
  • SoC รุ่นล่าสุดของ Apple รองรับ nested virtualization และใน M4 iPad Pro มีการใช้ exclave สำหรับไฟ LED ของกล้อง
    • หวังว่า Apple Platform Security guide ฉบับปรับปรุงถัดไปจะกล่าวถึง SK exclave และการบรรเทาความเสี่ยงของ baseband สำหรับการตรวจจับเรดาร์ Wi‑Fi
  • Apple มีส่วนเพิ่มเติมเฉพาะบางอย่างเกี่ยวกับ SPTM
    • XNU กำลังถูกรีแฟกเตอร์ไปเป็นสถาปัตยกรรมที่ได้แรงบันดาลใจจาก microkernel เพื่อลดขนาด codebase และแยกงานที่อ่อนไหวด้านความปลอดภัยออกมา
    • การแยกพื้นที่หน่วยความจำทำโดยอาศัย Secure Page Table Monitor (SPTM)
    • งานที่อ่อนไหวด้านความปลอดภัย เช่น code signing, การตรวจสอบสิทธิ์, developer mode และ restricted execution mode ถูกจัดการโดย Trusted eXecution Monitor (TXM)
  • มีความเป็นไปได้สูงว่าจะทำผ่านเทคโนโลยี TrustZone ของ ARM
    • ในซอร์สโค้ด XNU มีการอ้างอิงหลายจุดเกี่ยวกับการเปลี่ยนผ่านไปสู่แนวคิด secure world ของ TrustZone
    • มี CVE ของ TrustZone มากกว่า 150 รายการ
  • Google ได้นำ hardware nested virtualization มาใช้บน Pixel เมื่อหลายปีก่อนเพื่อทำ pKVM และอัปสตรีมโค้ดเข้าสู่ Linux mainline
    • แต่ยังไม่ได้ประกาศฟีเจอร์เชิงป้องกันที่ใช้ pKVM/AVF นอกเหนือจาก VM "Linux Terminal" ของ Debian
  • Steve เชื่อว่าแล็ปท็อปคือไดอารี และคิดว่าตนมีความรับผิดชอบต่อเรื่องนั้น
    • ถ้า Tim ไม่ได้มีความเชื่อแบบเดียวกับ Steve เขาคงไม่ได้เป็น CEO
    • มีความเห็นว่าคิดถึง Steve
  • Apple กำลังปรับโครงสร้างเคอร์เนล XNU ให้เป็น exclave
    • ผู้เขียนบทความนี้เขียนได้ประณีตมากและเรียบเรียงดีมาก
    • ในฐานะคนที่ติดตาม exclave มา ก็คิดว่าเขียนได้ดี
  • ไม่คุ้นกับความรู้ระดับนี้นัก แต่สงสัยว่าสามารถโจมตี enclave เองเพื่อยกระดับสิทธิ์ให้สูงกว่าเคอร์เนลได้หรือไม่
    • สงสัยว่าฮาร์ดแวร์นี้เป็นอะไรคล้าย coprocesor หรือไม่
  • สงสัยว่าจะมีผลกระทบต่อความปลอดภัยของ macOS อย่างไร
    • ตามเอกสารของ Apple ระบุว่าไม่ได้ใช้ SPTM
    • ปัจจุบัน exclave ที่ใช้แสดงตัวบ่งชี้กล้องยังไม่ใช้กับ macOS แต่ในอนาคตอาจใช้ได้
  • Apple เก่งมากในการปกป้อง "plantation" ของพวกเขา
    • แต่ก็สงสัยว่าอะไรจะปกป้องเราจากพวกเขา
    • ถามว่าเคยคิดถึงความเป็นไปได้ของ "geohot คนสุดท้าย" หรือไม่
  • Apple อาจใช้ SPTM เพื่อจัดการการสลับระหว่าง secure world และ non-secure world
    • เพราะไม่มี TrustZone