ห่วงโซ่การโจมตีของ 'Operation Triangulation'
- ส่งไฟล์แนบ iMessage ที่เป็นอันตรายเพื่อให้แอปพลิเคชันประมวลผลโดยที่ผู้ใช้ไม่รู้ตัว
- ไฟล์แนบนี้ใช้ประโยชน์จากช่องโหว่การรันโค้ดจากระยะไกล CVE-2023-41990 ในคำสั่งฟอนต์ ADJUST TrueType เฉพาะของ Apple ที่ไม่มีการจัดทำเอกสาร
- ใช้หลายขั้นตอนที่เขียนด้วย return/jump-oriented programming และภาษาคิวรี NSExpression/NSPredicate เพื่อแพตช์สภาพแวดล้อมของไลบรารี JavaScriptCore และรันเอ็กซ์พลอยต์ยกระดับสิทธิ์ที่เขียนด้วย JavaScript
- เอ็กซ์พลอยต์ JavaScript ถูกทำให้อ่านแทบไม่ออกด้วยการ obfuscate อย่างหนักและลดขนาดให้เล็กที่สุด โค้ดราว 11,000 บรรทัดส่วนใหญ่ใช้ไปกับการพาร์สและจัดการหน่วยความจำของ JavaScriptCore และเคอร์เนล
- ใช้ความสามารถดีบัก DollarVM($vm) ของ JavaScriptCore เพื่อให้สคริปต์สามารถจัดการหน่วยความจำของ JavaScriptCore และเรียกใช้ฟังก์ชัน Native API ได้
- ออกแบบมาให้รองรับทั้ง iPhone รุ่นเก่าและรุ่นใหม่ รวมถึงมีการ bypass Pointer Authentication Code (PAC) เพื่อใช้ประโยชน์จากช่องโหว่ในรุ่นล่าสุด
- ใช้ช่องโหว่ integer overflow CVE-2023-32434 ใน system call สำหรับการแมปหน่วยความจำของ XNU (
mach_make_memory_entry และ vm_map) เพื่อให้ได้สิทธิ์อ่าน/เขียนหน่วยความจำกายภาพทั้งหมดของอุปกรณ์จากระดับผู้ใช้
- ใช้รีจิสเตอร์ memory-mapped I/O (MMIO) ของฮาร์ดแวร์เพื่อ bypass Page Protection Layer (PPL) ซึ่งได้รับการบรรเทาใน CVE-2023-38606
- หลังใช้ประโยชน์จากทุกช่องโหว่แล้ว เอ็กซ์พลอยต์ JavaScript สามารถทำงานใดก็ได้ตามต้องการบนอุปกรณ์ โดยแทนที่จะรันสปายแวร์ มันจะเริ่มโปรเซส IMAgent แล้วฉีดเพย์โหลดเพื่อลบร่องรอยเอ็กซ์พลอยต์ออกจากอุปกรณ์ หรือรันโปรเซส Safari ในโหมดที่มองไม่เห็นเพื่อส่งต่อไปยังหน้าเว็บที่มีขั้นตอนถัดไป
- หน้าเว็บมีสคริปต์สำหรับตรวจสอบเหยื่อ และหากผ่านการตรวจสอบก็จะได้รับ Safari exploit ซึ่งเป็นขั้นตอนถัดไป
- Safari exploit ใช้ CVE-2023-32435 เพื่อรัน shellcode
- shellcode จะรันเคอร์เนลเอ็กซ์พลอยต์อีกตัวหนึ่งในรูปแบบไฟล์อ็อบเจ็กต์ Mach ซึ่งใช้ช่องโหว่เดียวกับ CVE-2023-32434 และ CVE-2023-38606 แม้จะมีขนาดใหญ่และความสามารถมาก แต่แตกต่างจากเคอร์เนลเอ็กซ์พลอยต์ที่เขียนด้วย JavaScript อย่างสิ้นเชิง ส่วนที่เกี่ยวข้องกันนั้นทั้งสองเอ็กซ์พลอยต์ใช้ร่วมกัน แต่โค้ดส่วนใหญ่ใช้ไปกับการพาร์สและจัดการหน่วยความจำเคอร์เนล มียูทิลิตีหลังการเจาะระบบหลายอย่างรวมอยู่ด้วย แต่ส่วนใหญ่ไม่ได้ถูกใช้งาน
- เอ็กซ์พลอยต์จะได้สิทธิ์ root และรันอีกขั้นตอนหนึ่งเพื่อโหลดสปายแวร์
ปริศนาและช่องโหว่ CVE-2023-38606
- iPhone รุ่นล่าสุดมีฟีเจอร์ป้องกันความปลอดภัยเพิ่มเติมแบบอิงฮาร์ดแวร์สำหรับพื้นที่อ่อนไหวของหน่วยความจำเคอร์เนล
- การป้องกันนี้ทำให้แม้ผู้โจมตีจะสามารถอ่านและเขียนหน่วยความจำเคอร์เนลได้ ก็ยังไม่สามารถควบคุมอุปกรณ์ได้อย่างสมบูรณ์
- ผู้โจมตีใช้ฟีเจอร์ฮาร์ดแวร์อีกอย่างหนึ่งใน SoC ที่ Apple ออกแบบไว้เพื่อ bypass การป้องกันความปลอดภัยแบบอิงฮาร์ดแวร์นี้
- ผู้โจมตี bypass การป้องกันหน่วยความจำแบบอิงฮาร์ดแวร์ด้วยการเขียนข้อมูล ที่อยู่ปลายทาง และแฮชของข้อมูล ลงในฮาร์ดแวร์รีจิสเตอร์ที่ไม่รู้จักของชิปซึ่งเฟิร์มแวร์ไม่ได้ใช้งาน
- คาดว่าฟีเจอร์ฮาร์ดแวร์ที่ไม่รู้จักนี้อาจถูกตั้งใจให้วิศวกรของ Apple หรือโรงงานใช้เพื่อการดีบักหรือทดสอบ หรืออาจถูกใส่มาโดยไม่ตั้งใจ
รายละเอียดทางเทคนิค
- อุปกรณ์ต่อพ่วงหลากหลายชนิดใน SoC มีฮาร์ดแวร์รีจิสเตอร์พิเศษที่ CPU สามารถใช้เพื่อควบคุมอุปกรณ์เหล่านี้ได้
- ฮาร์ดแวร์รีจิสเตอร์เหล่านี้ถูกแมปไว้ในหน่วยความจำที่ CPU เข้าถึงได้ ซึ่งเรียกว่า "memory-mapped I/O (MMIO)"
- ช่วงที่อยู่ MMIO ของอุปกรณ์ต่อพ่วงในผลิตภัณฑ์ Apple (iPhone, Mac ฯลฯ) ถูกเก็บไว้ในรูปแบบไฟล์พิเศษที่เรียกว่า DeviceTree
- MMIO ส่วนใหญ่ที่ใช้ในการโจมตีไม่ได้อยู่ในช่วง MMIO ใด ๆ ที่กำหนดไว้ใน DeviceTree
- ยังไม่ชัดเจนว่าผู้โจมตีค้นพบ MMIO ที่เฟิร์มแวร์ไม่ได้ใช้งานเหล่านี้ได้อย่างไร และอุปกรณ์ต่อพ่วงใดเป็นเจ้าของที่อยู่ MMIO เหล่านี้
- ยืนยันได้ว่ารีจิสเตอร์ MMIO เหล่านี้เป็นของ GPU coprocessor
- ผู้โจมตีใช้รีจิสเตอร์ MMIO เหล่านี้เพื่อ bypass Page Protection Layer (PPL) และใช้แพตช์ page table entry
- วิธีคำนวณแฮชทำให้ฟีเจอร์ฮาร์ดแวร์ที่ใช้ในการโจมตีสามารถทำ direct memory access (DMA) เพื่อเขียนข้อมูลไปยังตำแหน่งที่ร้องขอได้โดยตรง
ความเห็นของ GN⁺
- งานวิจัยนี้เปิดเผยห่วงโซ่การโจมตีที่ซับซ้อนอย่างยิ่งซึ่งมุ่งเป้าไปที่ iPhone นี่เป็นการค้นพบที่สำคัญมากสำหรับนักวิจัยด้านความปลอดภัย และอาจช่วยเสริมความปลอดภัยของผลิตภัณฑ์ Apple ได้
- ยังเป็นปริศนาอยู่ว่าผู้โจมตีค้นพบฟีเจอร์ฮาร์ดแวร์ที่เฟิร์มแวร์ไม่ได้ใช้งานได้อย่างไร ซึ่งตอกย้ำความสำคัญของการวิจัยด้านความปลอดภัยฮาร์ดแวร์
- บทความนี้มีเนื้อหาที่น่าสนใจอย่างมากสำหรับผู้ที่สนใจด้านความปลอดภัยของซอฟต์แวร์และฮาร์ดแวร์ วิธีการโจมตีที่ซับซ้อนมากและกระบวนการวิเคราะห์แสดงให้เห็นถึงความลึกและความจำเป็นของงานวิจัยด้านความปลอดภัย
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
สิ่งที่น่าทึ่งเกี่ยวกับการนำ MMIO ไปใช้ในทางที่ผิด
สรุปบน Twitter ของ Steve Weis
คำอธิบายเกี่ยวกับ Coresight
การคาดเดาเกี่ยวกับความเป็นไปได้ในการค้นพบรีจิสเตอร์ MMIO
ข้อสงสัยเกี่ยวกับการใช้ data hash ในฟังก์ชันดีบักของชิป
ข้อสังเกตเกี่ยวกับลักษณะของอัลกอริทึมแฮช
ความทึ่งต่อความพยายามของผู้โจมตี
คำอธิบายเกี่ยวกับฟังก์ชันที่ผู้โจมตีใช้
ความสำคัญของช่องโหว่ที่ค้นพบใหม่