值得注意的是 ช่องโหว่ checkm8 ก่อนหน้านี้ (2019) ครอบคลุมอุปกรณ์ A5–A11 ในขณะที่ usbliter8 ขยายการโจมตีไปยังรุ่นถัดไป ชิป A11 ไม่ได้รับผลกระทบเนื่องจากไดรเวอร์ USB รีเซ็ตพอยน์เตอร์ DMA หลังจากแต่ละแพ็กเก็ต
ชิป A14 และรุ่นใหม่กว่าก็ปลอดภัยเช่นกัน เนื่องจากมีการกำหนดค่า USB DART (การป้องกันหน่วยความจำ) อย่างถูกต้องใน SecureROM
ความไม่ตรงกันของพอยน์เตอร์แบบวงแหวน: ตัวควบคุมจะจัดเก็บแพ็กเก็ต USB Setup ได้สูงสุดสามแพ็กเก็ตในบัฟเฟอร์ DMA หลังจากเขียนแต่ละครั้ง มันจะเพิ่มพอยน์เตอร์ฮาร์ดแวร์ตามขนาดข้อมูล หลังจากแพ็กเก็ตที่สาม มันจะรีเซ็ตโดยลดพอยน์เตอร์ลง 24 ไบต์คงที่
เทคนิคแพ็กเก็ตขนาดเล็ก: ตัวควบคุมยอมรับแพ็กเก็ตที่เล็กกว่าขนาดมาตรฐาน 8 ไบต์ แต่จะจัดเก็บในกลุ่มที่เรียงตาม 4 ไบต์เสมอ เมื่อได้รับแพ็กเก็ตขนาดเล็ก การเพิ่มของพอยน์เตอร์ (ข้อมูลที่เขียนจริง) จะไม่ตรงกับการลดลงคงที่ 24 ไบต์ ทำให้เกิด บัฟเฟอร์อันเดอร์โฟลว์ 12 ไบต์ — พอยน์เตอร์จะย้อนกลับในหน่วยความจำ
การเขียนทับหน่วยความจำ: สิ่งนี้ทำให้ผู้โจมตีเขียนทับพื้นที่ SRAM ที่ควรจะไม่สามารถเข้าถึงได้ระหว่างการบูต รวมถึงข้อมูลสแต็กและเมตาดาต้าฮีป
การรันโค้ด: บน A12 ผู้โจมตีเขียนทับรีจิสเตอร์ลิงก์ (LR) ที่บันทึกไว้บนสแต็กของงาน USB เพื่อควบคุมโปรแกรมเคาน์เตอร์ (PC) โดยตรง บน A13 PAC (Pointer Authentication Codes) ทำให้ซับซ้อนขึ้น ต้องใช้เทคนิคหลายขั้นตอนที่หลีกเลี่ยงเช็คซัมฮีปและเคาน์เตอร์พานิค
BootROM (SecureROM) เป็นโค้ดชุดแรกที่ชิปเรียกใช้เมื่อเปิดเครื่อง มันถูก ฝังในหน่วยความจำแบบอ่านอย่างเดียว (ROM) ระหว่างการผลิตชิป และไม่สามารถเปลี่ยนแปลงได้หลังจากอุปกรณ์ออกจากโรงงาน เนื่องจากสาเหตุพื้นฐานคือ ข้อบกพร่องของฮาร์ดแวร์ในตัวควบคุม USB ไม่ใช่ข้อบกพร่องของซอฟต์แวร์ Apple จึงไม่สามารถแก้ไขได้ด้วยการอัปเดตเฟิร์มแวร์หรือระบบปฏิบัติการ
วิธีบรรเทาผลกระทบที่มีประสิทธิภาพเพียงอย่างเดียวคือการย้ายไปยังฮาร์ดแวร์รุ่นใหม่กว่า (A14 หรือใหม่กว่า)
Comments
0 comments