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

ห่วงโซ่การโจมตีของ '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 ความคิดเห็น

 
GN⁺ 2023-12-28
ความคิดเห็นบน Hacker News
  • สิ่งที่น่าทึ่งเกี่ยวกับการนำ MMIO ไปใช้ในทางที่ผิด

    • ผู้โจมตีน่าจะมีความสามารถด้านการวิจัยสูงมาก หรือมีความเป็นไปได้มากกว่าว่าได้แฮ็ก Apple เพื่อให้ได้เอกสารฮาร์ดแวร์ภายใน
    • Apple รู้ว่าฟังก์ชันนี้มีความเสี่ยง จึงซ่อนไว้และเพิ่มการป้องกันด้วยฟังก์ชันลายเซ็นดิจิทัล
    • หากไม่มีการแกะซิลิคอนและทำวิศวกรรมย้อนกลับ ก็แทบเป็นไปไม่ได้ที่จะค้นพบฟังก์ชันนี้ ดังนั้นจึงอาจเป็นไปได้ว่ามีการแฮ็กนักพัฒนาเพื่อขโมยเอกสารภายใน
    • วิธีโจมตีซ้ำผ่าน Safari โดยใช้ชุดโซ่ช่องโหว่อื่น บ่งชี้ถึงองค์กรขนาดใหญ่ที่มีการแบ่งแยกภายในอย่างมาก
    • เมื่อพิจารณาว่านักวิจัยเป็นชาวรัสเซีย จึงมีความเป็นไปได้สูงว่านี่เป็นผลงานของ NSA หรือ GCHQ
    • มัลแวร์อาจเปิดใช้การติดตามโฆษณา และตรวจจับบริการโฮสต์ iPhone บนคลาวด์ที่นักวิจัยด้านความปลอดภัยใช้บ่อย
    • แพลตฟอร์มมัลแวร์ iOS/macOS นี้ถูกพัฒนามานานกว่า 10 ปี และใช้ ML สำหรับการรู้จำวัตถุและ OCR ของภาพถ่ายบนอุปกรณ์ โดยไม่ต้องอัปโหลดไบต์ของภาพ
    • ไม่เห็นด้วยกับข้ออ้างที่ว่าการปกปิดด้วยความปลอดภัยใช้ไม่ได้ผล แพลตฟอร์มนี้ถูกใช้งานมา 10 ปีโดยไม่มีใครรู้
  • สรุปบน Twitter ของ Steve Weis

    • ช่องโหว่ iMessage นั้นน่าทึ่ง เพราะประกอบด้วยช่องโหว่ TrueType ที่มีมาตั้งแต่ยุค 90, ช่องโหว่เคอร์เนล 2 รายการ, ช่องโหว่เบราว์เซอร์ และฟีเจอร์ฮาร์ดแวร์ที่ไม่มีเอกสารและไม่ได้ถูกใช้งานในซอฟต์แวร์ที่ปล่อยออกมา
  • คำอธิบายเกี่ยวกับ Coresight

    • Coresight ไม่ใช่แบ็กดอร์ แต่เป็นฟีเจอร์ดีบักของ ARM CPU ทุกตัว
    • ดูเหมือนว่าจะเป็นส่วนขยายของ Coresight ที่จำเป็นต่อการทำงานร่วมกับฟีเจอร์ป้องกันหน่วยความจำของ Apple
    • แม้จะไม่มีเอกสารสาธารณะ แต่วิศวกร Apple หลายพันคนก็น่าจะเข้าถึง gdb ที่ถูกปรับแต่งหรือเครื่องมืออื่น ๆ ที่ใช้ประโยชน์จากสิ่งนี้ได้
  • การคาดเดาเกี่ยวกับความเป็นไปได้ในการค้นพบรีจิสเตอร์ MMIO

    • มีคำถามว่าเป็นไปได้หรือไม่ที่จะค้นพบรีจิสเตอร์ MMIO โดยการไล่สำรวจแอดเดรสรีจิสเตอร์ทั้งหมดแบบสุ่ม
    • น่าจะสามารถรู้ได้ว่าเป็นแอดเดรสที่ใช้ได้จากความต่างของ timing เพียงอย่างเดียว และแฮชในฐานะ 20-bit hash ก็น่าจะถูก brute force ได้เช่นกัน
  • ข้อสงสัยเกี่ยวกับการใช้ data hash ในฟังก์ชันดีบักของชิป

    • มีข้อสงสัยว่าจุดประสงค์ของการใช้แฮชในฟังก์ชันดีบักที่ควรถูกปิดใช้งานในการผลิตคืออะไร
    • แม้จะไม่ใช่วิศวกรอิเล็กทรอนิกส์ แต่ฟังก์ชันดีบักควรทำงานให้เรียบง่ายและรวดเร็วเพื่อลดการรบกวนให้น้อยที่สุด
    • มีความเป็นไปได้ต่ำมากที่ผู้โจมตีห่วงโซ่อุปทานจะฝังสิ่งนี้ลงในชิป Apple ทุกตัวได้
  • ข้อสังเกตเกี่ยวกับลักษณะของอัลกอริทึมแฮช

    • เมื่อข้อมูลทั้งหมดเป็น 0 ค่าแฮชจะเป็น 0 และสำหรับบิตเดี่ยวจะมีค่าเดียวจากตาราง sbox
    • อัลกอริทึมแฮชลักษณะนี้อาจถูกทำวิศวกรรมย้อนกลับได้แม้ไม่มีเอกสารภายใน
  • ความทึ่งต่อความพยายามของผู้โจมตี

    • สงสัยว่าผู้โจมตีเหล่านี้จะรู้สึกไม่พอใจหรือไม่ที่ไม่ได้รับการยอมรับต่อผลงานของตน
  • คำอธิบายเกี่ยวกับฟังก์ชันที่ผู้โจมตีใช้

    • ผู้โจมตีสามารถข้ามการป้องกันหน่วยความจำแบบฮาร์ดแวร์และเขียนข้อมูลไปยัง physical address ที่ระบุได้
    • วิธีการคือเขียนข้อมูล, แอดเดรสปลายทาง และ data hash ไปยัง hardware register ที่ไม่เป็นที่รู้จักบนชิปซึ่งไม่ได้ถูกใช้งานในเฟิร์มแวร์
  • ความสำคัญของช่องโหว่ที่ค้นพบใหม่

    • การรู้ว่าช่องโหว่ของตัวเองอาจถูกทำให้เสียหายหรือถูกเปิดโปงได้หรือไม่นั้นสำคัญกว่าการได้ช่องโหว่ใหม่
    • สิ่งนี้อาจช่วยป้องกันปฏิบัติการข่าวกรองตอบโต้ได้