Is the iPhone 17 the First Un-Breakable Phone?

Billy Ellis www.youtube.com

สรุปย่อ

วิดีโอนี้สรุปเกี่ยวกับคุณสมบัติ Memory Tagging Extension (MTE) ที่ Apple นำมาใช้ใน iPhone รุ่นใหม่ ซึ่งใช้สถาปัตยกรรม ARMv9A โดย MTE เป็นกลไกที่ช่วยตรวจจับและป้องกันการโจมตีที่เกิดจากข้อผิดพลาดในการจัดการหน่วยความจำ เช่น การเข้าถึงหน่วยความจำนอกขอบเขต หรือการใช้หน่วยความจำที่ถูกปล่อยไปแล้ว โดยใช้ฮาร์ดแวร์ในการตรวจสอบแท็กที่ตัวชี้และหน่วยความจำ เพื่อให้การโจมตีทำได้ยากขึ้นอย่างมาก

  • MTE ช่วยลดความเสี่ยงจากการโจมตีที่เกิดจากข้อผิดพลาดในการจัดการหน่วยความจำ
  • การใช้ฮาร์ดแวร์ช่วยให้การตรวจสอบมีประสิทธิภาพสูง และไม่ส่งผลกระทบต่อประสิทธิภาพของระบบมากนัก
  • Apple มองว่า MTE เป็นการอัปเกรดที่สำคัญที่สุดสำหรับความปลอดภัยของหน่วยความจำในระบบปฏิบัติการสำหรับผู้บริโภค

บทนำ

Apple ได้เปิดตัว iPhone รุ่นใหม่ที่มีการเปลี่ยนแปลงด้านความปลอดภัยที่สำคัญคือการใช้ Memory Tagging Extension (MTE) ซึ่งเป็นคุณสมบัติที่อยู่ในสถาปัตยกรรม ARMv9A โดย Apple เรียกว่าการบังคับใช้ความสมบูรณ์ของหน่วยความจำ (Memory Integrity Enforcement) วิดีโอนี้จะสำรวจมาตรการนี้และอธิบายว่ามันทำให้การโจมตีอุปกรณ์ iOS ยากขึ้นได้อย่างไร

ข้อบกพร่องที่ทำให้หน่วยความจำเสียหาย

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

การบังคับใช้ความสมบูรณ์ของหน่วยความจำ

Apple ได้นำ Memory Integrity Enforcement (MIE) มาใช้เพื่อตรวจจับการเข้าถึงหน่วยความจำนอกขอบเขตหรือการใช้งานหน่วยความจำที่ถูกปล่อยไปแล้วโดยเร็วที่สุด และทำให้ระบบหยุดทำงานเพื่อป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่นี้ MIE ทำงานคล้ายกับ AddressSanitizer (ASan) ซึ่งเป็นเครื่องมือแก้ไขจุดบกพร่องที่ใช้ในการพัฒนาซอฟต์แวร์ แต่ MIE ใช้ประโยชน์จากคำสั่งฮาร์ดแวร์ใหม่ในสถาปัตยกรรม ARMV9A ทำให้มีประสิทธิภาพสูงกว่า ASan ที่ใช้ซอฟต์แวร์

รายละเอียดทางเทคนิคของ MTE

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

การป้องกันการถูกแสวงหาประโยชน์

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

ข้อควรระวังและข้อสรุป

เนื่องจากแท็กหน่วยความจำมีขนาดเพียงสี่บิต จึงสามารถจัดสรรหน่วยความจำแยกกันโดยใช้แท็กเดียวกันได้ แต่สิ่งนี้ยังคงเป็นการป้องกันการโจมตีที่แข็งแกร่งพอสมควร เนื่องจากความน่าเชื่อถือจะลดลงเหลือ 1 ใน 16 โอกาสที่จะประสบความสำเร็จ Apple เชื่อว่าการบังคับใช้ความสมบูรณ์ของหน่วยความจำถือเป็นการอัปเกรดที่สำคัญที่สุดสำหรับความปลอดภัยของหน่วยความจำในประวัติศาสตร์ของระบบปฏิบัติการสำหรับผู้บริโภค และทีมวิจัยภายในของพวกเขาก็ไม่สามารถสร้างโซ่การโจมตีตัวอย่างใดๆ ขึ้นมาใหม่เพื่อหลีกเลี่ยงการบรรเทาปัญหานี้บน iOS ได้

Summarize any YouTube video in seconds

Get summaries like this one for any video, in your language, with the free Summ app.

Download on the Apple Store
Get it on Google Play

Transcript

YouTube Transcript Generator

0:00 Apple เพิ่งเปิดตัว iPhone รุ่นใหม่ และนอกเหนือจากคุณสมบัติ และการปรับปรุงใหม่แล้ว ยังมี การเปลี่ยนแปลงด้านความปลอดภัยที่สำคัญอย่างหนึ่งที่ ผู้บริโภคทั่วไปมองข้าม เนื่องจาก ชิป A19 ใหม่ใช้ สถาปัตยกรรม ARMv9A ทำให้ iOS รองรับ คุณสมบัติส่วนขยายการแท็กหน่วยความจำแล้ว MTE เป็นฟีเจอร์ของ ARM ที่เปิดตัวเมื่อไม่กี่ ปีที่ผ่านมาในสถาปัตยกรรม ARV 8.5 และมีการใช้ในอุปกรณ์สำหรับ ผู้บริโภคอื่นๆ ในตลาดเพียงไม่กี่รายการเท่านั้น จนถึงปัจจุบัน Apple เรียก การใช้งานของตนว่าการบังคับใช้ความสมบูรณ์ของหน่วยความจำ และเมื่อมีการเปิดตัว โทรศัพท์รุ่นใหม่เหล่านี้ พวกเขาก็ได้เผยแพร่ รายละเอียดทางเทคนิคบนบล็อกด้านความปลอดภัยด้วย วันนี้ในวิดีโอนี้ เรา จะมาสำรวจมาตรการบรรเทาผลกระทบนี้ และดูว่ามาตรการดังกล่าว มีเป้าหมายเพื่อทำให้การโจมตี อุปกรณ์ iOS ยากขึ้นอย่างมีนัยสำคัญอย่างไร การโจมตี

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

1:31 โค้ดการตรวจสอบตัวชี้มาใช้เพื่อลดการแฮ็ กการควบคุมการไหล การแบ่งโซน และ เทคนิคการจัดสรรที่แข็งแกร่งอื่นๆ เพื่อ ลดการโจมตีฮีปบางประเภท และการบรรเทาปัญหาฮาร์ดแวร์ที่เป็นกรรมสิทธิ์อื่นๆ เช่น KTRR และ PPL การบังคับใช้ความสมบูรณ์ของหน่วยความจำของ Apple ถือ เป็นการตอกฝาโลงครั้งสุดท้าย ซึ่ง อาจยุติการแสวงหาประโยชน์จากการทุจริตหน่วยความจำ ใน iOS ได้โดยสมบูรณ์ เป้าหมาย ของ MIE คือการตรวจจับการ เข้าถึงหรือการใช้งานนอกขอบเขตทุกประเภทหลังจาก สถานการณ์ว่างโดยเร็วที่สุดเท่าที่จะเป็นไปได้ และทำให้ระบบตื่นตระหนกเพื่อป้องกันไม่ให้ ผู้โจมตีใช้ประโยชน์จากช่อง โหว่นี้ มันทำงานคล้ายกับโปรแกรม ทำความสะอาดที่อยู่ ซึ่งเป็นเครื่องมือแก้ไขจุดบกพร่องทั่วไปที่ ใช้ในการพัฒนาซอฟต์แวร์ เครื่องมือทำความสะอาดที่อยู่เป็นโปรแกรมที่ จะรวมการตรวจสอบความเรียบร้อยเพิ่มเติมในทุก การดำเนินการเข้าถึงหน่วยความจำ การ

2:17 ตรวจสอบความสมบูรณ์เหล่านี้จะช่วยให้แน่ใจว่าโปรแกรม ไม่ได้กำลังอ่านหรือเขียนนอก บัฟเฟอร์ที่จัดสรรไว้ และไม่ได้กำลัง เข้าถึงหน่วยความจำที่ถูก ปลดปล่อยไปแล้ว ปัญหาของโปรแกรม ทำความสะอาดที่อยู่ที่ใช้ซอฟต์แวร์ก็คือมี ค่าใช้จ่ายทางการจัดการที่สูงเนื่องจาก ไม่มีประสิทธิภาพในการดำเนินการตรรกะเพิ่มเติม ในการเข้าถึงหน่วยความจำแต่ละครั้ง การ จัดส่ง อุปกรณ์การผลิตที่มีโปรแกรม ทำความสะอาดที่อยู่แบบซอฟต์แวร์ทำงานอยู่จะไม่ใช่ความคิดที่ดีนัก เนื่องจาก ประสิทธิภาพการทำงานจะลดลงมากเกินไป สิ่งที่น่าสนใจเกี่ยวกับ ฟีเจอร์ mte คือการใช้ประโยชน์จาก คำสั่งฮาร์ดแวร์ใหม่ที่มีอยู่ใน สถาปัตยกรรม ARMV9A ซึ่งใช้งาน ฟังก์ชันการทำงานของโปรแกรม ทำความสะอาดที่อยู่ซอฟต์แวร์ แต่ในลักษณะที่ได้รับการสนับสนุนจากฮาร์ดแวร์ CPU ใหม่เหล่านี้มีวงจรในตัว เพื่อจัดการการตรวจสอบความเรียบร้อย ดังนั้น ประสิทธิภาพจึงไม่ได้รับผลกระทบมากนัก ลองมา

3:03 ดูเรื่องนี้ใน ระดับเทคนิคกันดีกว่า หากเราดาวน์โหลด IPSW ของ iOS 26 เวอร์ชันล่าสุด สำหรับ iPhone รุ่นใหม่ล่าสุด เราก็สามารถ ตรวจสอบเคอร์เนลเองและดู คำสั่ง MTE ใหม่เหล่านี้ที่มีอยู่ใน ไบนารีแคชเคอร์เนลได้ คำสั่งใหม่คำสั่งแรกที่เราเห็นคือ คำสั่ง IRG ซึ่งแทรกแท็กสุ่ม ลงในตัวชี้ ขณะนี้ คำสั่ง IRG จะสร้างแท็ก 4 บิตแบบสุ่ม และแทรกเข้าไปในบิตบนสุดของ ตัวชี้ที่กำหนด เช่นเดียวกับรหัสการตรวจสอบสิทธิ์ตัวชี้ บิตเหล่านี้จะไม่ได้ใช้งาน ภายใต้สถานการณ์ปกติ ดังนั้น ระบบจึงสามารถเก็บข้อมูลไว้ที่นี่ได้ โดยไม่กระทบต่อการดำเนินการปกติ เมื่อ แท็กตัวชี้แล้ว ก็สามารถแท็กหน่วยความจำที่ เชื่อมโยงกับตัวชี้ ด้วยค่าเดียวกันได้โดยใช้ คำสั่ง STG คำสั่งนี้จะนำ

3:49 ค่าแท็กจากบิตบนสุดของตัวชี้ และเขียนลงใน พื้นที่หน่วยความจำเงาส่วนตัวพิเศษที่สามารถเก็บแท็กได้ ต่อเม็ดหน่วยความจำขนาด 16 ไบต์ ซึ่งหมายความ ว่าสำหรับหน่วยความจำขนาด 16 ไบต์ เรา สามารถจัดเก็บแท็ก 4 บิตที่แตกต่างกันใน พื้นที่เงาพิเศษนี้ได้ ในขณะนี้ แตกต่างจาก โปรแกรมทำความสะอาดที่อยู่ซอฟต์แวร์ ภูมิภาค หน่วยความจำเงาไม่ใช่ส่วนหนึ่งของ หน่วยความจำปกติ แต่เป็น ภูมิภาคส่วนตัวที่เชื่อมต่อได้ผ่าน คำสั่ง MTE เท่านั้น ดังนั้น เมื่อ ตัวชี้และหน่วยความจำที่สอดคล้องกันได้รับ การแท็กโดยใช้ คำสั่ง MTE คำสั่งการเข้าถึงหน่วยความจำที่ดำเนินการในภายหลังจะทริกเกอร์ ข้อยกเว้น หากพบว่าแท็ก ไม่ตรงกัน การตรวจสอบ แท็กที่ไม่ตรงกันไม่จำเป็นต้องมีการนำตรรกะใหม่ใดๆ มา

4:34 ใช้ในซอฟต์แวร์ คำสั่งโหลดและจัดเก็บแบบทั่วไปของ ARM 64 มีวงจรใหม่ที่เข้ารหัสแบบ ฮาร์ดโค้ดใน CPU ARM รุ่นล่าสุด ซึ่งสามารถยืนยันตัวชี้และ แท็กหน่วยความจำได้เกือบจะทันทีโดยไม่มี ค่าใช้จ่ายด้านประสิทธิภาพที่เห็นได้ชัด แล้วใน ทางปฏิบัติ จะป้องกัน การถูกแสวงหาประโยชน์ได้อย่างไร? Apple ได้อัปเดตตรรกะ การจัดสรรของตนเพื่อนำคำสั่ง MTE ใหม่เหล่านี้ไปใช้ ดังนั้นทุกครั้งที่ มีการจัดสรร ตัวชี้และ หน่วยความจำที่จัดสรรจะถูกแท็กทั้งคู่ และ เมื่อการจัดสรรได้รับการปลดปล่อย หน่วยความจำ จะถูกแท็กใหม่ด้วยค่าใหม่ สำหรับ การใช้งานทั่วไปหลังจากแก้ไขจุดบกพร่อง โปรแกรมจะ ใช้ตัวชี้ที่ อ้างอิงถึงหน่วยความจำที่ได้รับการปลดปล่อยแล้วโดยไม่ได้ตั้งใจ แต่ ด้วยการเปิดใช้งาน MTE แล้ว สิ่งนี้จะไม่สามารถทำได้อีกต่อไป เนื่องจากทันทีที่มี การเข้าถึงหน่วยความจำบนตัวชี้ที่ถูกปลดปล่อย

5:21 ฮาร์ดแวร์ ARM จะรับรู้ว่า ตัวชี้และแท็กหน่วยความจำไม่ตรงกัน และจะเกิดการเรียกใช้ข้อยกเว้น ใน ทำนองเดียวกัน สำหรับการล้นบัฟเฟอร์และ ข้อบกพร่องในการเข้าถึงนอกขอบเขตอื่นๆ สิ่งเหล่านี้จะ ไม่มีประโยชน์ต่อผู้โจมตีอีกต่อไป เนื่องจากการจัดสรรที่แตกต่างกันได้รับการแท็ก แยกจากกัน ดังนั้นหากโปรแกรม พยายามเขียนเกินขอบเขตของ บัฟเฟอร์ที่จัดสรรโดยไม่ได้ตั้งใจ การ เขียนนอกขอบเขตครั้งแรกจะล้มเหลวเนื่องจาก แท็กที่อยู่และแท็กหน่วยความจำไม่ตรงกัน ข้อควรระวังเล็กน้อยประการหนึ่งที่ควรกล่าวถึงที่นี่ คือ เนื่องจากแท็กหน่วยความจำเหล่านี้มีขนาดเพียง สี่บิต จึงสามารถจัดสรรหน่วยความจำแยกกันโดย ใช้แท็กเดียวกันได้ แต่ สิ่งนี้ยังคงเป็นการ ป้องกันการโจมตีที่แข็งแกร่งพอสมควร เนื่องจาก ความน่าเชื่อถือจะลดลงเหลือ 1 ใน 6 โอกาสที่จะ ประสบความสำเร็จ มี การศึกษาวิจัยสาธารณะบางส่วนเกี่ยวกับการใช้ประโยชน์จาก MTE บน แพลตฟอร์ม Android และนักวิจัยบางส่วนก็

6:08 สามารถหลีกเลี่ยง ปัญหานี้ได้ อย่างไรก็ตาม การแก้ปัญหาเฉพาะหน้าเหล่านี้ เกี่ยวข้องกับฟังก์ชันพื้นฐานเฉพาะตัวที่ ไม่จำเป็นต้องทริกเกอร์ ข้อบกพร่องด้านการทุจริตหน่วยความจำแบบทั่วไป ดังนั้น เราจึง มั่นใจได้ว่านี่คือ การบรรเทาผลกระทบอันทรงพลังและเป็นเครื่องมือในการป้องกันการแสวงหาประโยชน์จากการทุจริต หน่วยความจำแบบดั้งเดิมอย่างแน่นอน ในบล็อกการวิจัยของ Apple เอง พวกเขาระบุว่าเชื่อว่า การบังคับใช้ความสมบูรณ์ของหน่วยความจำถือเป็นการ อัปเกรดที่สำคัญที่สุดสำหรับความปลอดภัยของหน่วยความจำ ในประวัติศาสตร์ของ ระบบปฏิบัติการสำหรับผู้บริโภค และแม้จะใช้ ความพยายามอย่างมาก ทีมวิจัยภายในของพวกเขาก็ ไม่สามารถ สร้างโซ่การโจมตีตัวอย่างใดๆ ขึ้นมาใหม่ เพื่อหลีกเลี่ยงการบรรเทาปัญหานี้บน iOS ได้ สำหรับผู้ใช้งาน iPhone นี่อาจเป็น ข้อความที่ให้กำลังใจได้มาก แต่สำหรับ ชุมชนแฮกเกอร์ นี่ถือเป็น ความท้าทายที่น่าหวั่นเกรง ลองอ่าน บล็อกทางเทคนิคของ Apple เกี่ยวกับการบรรเทาปัญหาใหม่นี้ ยังมี รายละเอียดอื่นๆ อีกบางส่วนที่ไม่ได้

6:55 กล่าวถึงในวิดีโอนี้ซึ่ง คุ้มค่าแก่การอ่าน ฉันจะฝากลิงค์ไว้ใน คำอธิบายด้านล่าง

Share

YouTube Video Summaries