ใช้ประโยชน์จากเป้าหมายโหมด EDL ของ Qualcomm ส่งผลกระทบต่อ Xiaomi, OnePlus, Nokia และอุปกรณ์อื่น ๆ บางรุ่น

อุปกรณ์ Qualcomm มีโหมด EDL ซึ่งดูเหมือนว่าจะสามารถหาประโยชน์ได้หากคุณมีเครื่องมือที่เหมาะสมที่ออกโดย OEM

อุปกรณ์ที่มีชิปเซ็ต Qualcomm มี ขอบสนาม บีอู๊ดoader (PBL) ซึ่งโดยทั่วไปจะบู๊ตระบบ Android แต่ยังมีโหมดการบูตสำรองที่เรียกว่าโหมด EDL โหมด EDL เป็นของ Qualcomm อีการรวมตัวกัน ดีโหลดของตัวเอง บทกวีและอนุญาตให้ โอดั้งเดิม อีอุปกรณ์ ผู้ผลิต (OEM) เพื่อบังคับใช้ซอฟต์แวร์แฟลชบนอุปกรณ์ สิ่งนี้ไม่สามารถแก้ไขได้ (โหมดอ่านอย่างเดียว) และสามารถควบคุมพื้นที่เก็บข้อมูลของอุปกรณ์ได้อย่างสมบูรณ์ OEM หลายรายรวมถึง OnePlus และ Xiaomi ได้เปิดตัวเครื่องมือ (เรียกว่าโปรแกรมเมอร์) ซึ่งใช้โหมด EDL และ โปรโตคอลที่เรียกว่า Firehose เพื่อปลดบล็อกอุปกรณ์ ในขณะที่เครื่องมืออื่นๆ จากบริษัทอย่าง Nokia รั่วไหลออกมา Firehose สามารถใช้คำสั่งจำนวนหนึ่งเพื่อแฟลชอุปกรณ์ พร้อมด้วยความสามารถในการตรวจสอบข้อมูลภายในหน่วยความจำของอุปกรณ์ นักวิจัยด้านความปลอดภัย โรอี้ เฮย์ (@roeehay) และ นอม ฮาดัด จาก การวิจัยของอาเลฟ ได้ค้นพบช่องโหว่ที่สำคัญของอุปกรณ์โดยใช้โหมดนี้ ซึ่งมอบสิทธิ์แก่ผู้โจมตีอย่างมีประสิทธิภาพ การเข้าถึงอุปกรณ์เต็มรูปแบบ.

สิ่งสำคัญคือต้องทราบว่า การหาประโยชน์นี้จำเป็นต้องมีการเข้าถึงอุปกรณ์ทางกายภาพ แต่ก็ยังมีอันตรายอย่างไม่น่าเชื่อและมีแนวโน้มที่จะไม่สามารถแพตช์ได้. ผู้โจมตีใช้ระดับการเข้าถึงที่มอบให้กับโหมด EDL เพื่อเลี่ยงผ่านการบูตอย่างปลอดภัยบน Nokia 6 โดยเอาชนะ ห่วงโซ่แห่งความไว้วางใจและการเรียกใช้โค้ดเต็มรูปแบบในทุกส่วนของลำดับการบูตรวมถึงระบบปฏิบัติการ Android ตัวมันเอง มีทฤษฎีให้ทำงานในลักษณะเดียวกันบนอุปกรณ์อื่นๆ และนักวิจัยยังสามารถปลดล็อกและรูทอุปกรณ์ Xiaomi หลายเครื่องได้โดยไม่สูญเสียข้อมูลใดๆ

อุปกรณ์ใดบ้างที่ได้รับผลกระทบจากช่องโหว่นี้

ประการแรก อุปกรณ์ที่ได้รับผลกระทบ

รายชื่ออุปกรณ์ที่ได้รับผลกระทบ

  • แอลจี G4
  • โนเกีย 6 (d1c)
  • โนเกีย 5
  • Nexus 6 (ชามุ)
  • Nexus 6P (นักตกปลา)
  • โมโต จี4 พลัส
  • OnePlus 5 (ชีสเบอร์เกอร์)
  • โอเปิ้ล 3T
  • โอเปิ้ล 3
  • โอเปิ้ล 2
  • OnePlus X
  • วันพลัสวัน
  • ซีทีอี แอกซอน 7
  • ซุก Z1
  • ซุก Z2
  • Xiaomi Note 5A (ugglite)
  • Xiaomi Note 5 นายกรัฐมนตรี (ugg)
  • Xiaomi Note 4 (มิโด้)
  • Xiaomi Note 3 (เจสัน)
  • Xiaomi Note 2 (แมงป่อง)
  • Xiaomi Mix (ลิเธียม)
  • Xiaomi Mix 2 (ไครอน)
  • Xiaomi Mi 6 (รุ่น)
  • Xiaomi Mi 5s (ราศีมังกร)
  • Xiaomi Mi 5s Plus (สีธรรมชาติ)
  • Xiaomi Mi 5x (ทิฟฟานี่)
  • Xiaomi Mi 5 (ราศีเมถุน)
  • Xiaomi Mi 3 (แคนโคร)
  • Xiaomi Mi A1 (ทิสโซต์)
  • Xiaomi Mi Max2 (ออกซิเจน)
  • Xiaomi Redmi Note 3 (เคนโซ)
  • Xiaomi Redmi 5A (ริว่า)
  • Xiaomi Redmi 4A (สีดอกกุหลาบ)

อ่านเพิ่มเติม

การใช้ประโยชน์จากโทรศัพท์ Android

ลำดับการบูตของโทรศัพท์ Android Qualcomm ทั่วไป

สิ่งสำคัญคือต้องทำความเข้าใจลำดับการบูตของอุปกรณ์ Android ทั่วไปก่อนจึงจะอธิบายวิธีใช้ประโยชน์จากอุปกรณ์ดังกล่าวได้ ที่ ออฟแวร์ บีอู๊ดoader (SBL) เป็น bootloader ที่เซ็นชื่อแบบดิจิทัลซึ่งได้รับการตรวจสอบความถูกต้องก่อนที่จะโหลดลงใน imem imem เป็นหน่วยความจำแบบเร็วบนชิปที่ใช้สำหรับการดีบักและ DMA (ตรง เอมอรี ccess) และเป็นกรรมสิทธิ์ของชิปเซ็ต Qualcomm

อุปกรณ์บางอย่างมี eเอ็กซ์ตึงเครียด บีอู๊ดoader (XBL) แทนที่จะเป็น SBL แต่กระบวนการบู๊ตค่อนข้างจะเหมือนกัน จากนั้น SBL หรือ XBL จะเปิดตัว ABOOT ซึ่งใช้ fastboot หลังจากนี้ TrustZone (การรักษาความปลอดภัยด้วยฮาร์ดแวร์) ก็จะถูกโหลดเช่นกัน TrustZone ตรวจสอบความถูกต้องของ ABOOT โดยใช้ใบรับรองหลักที่ใช้ฮาร์ดแวร์ SBL (หรือ XBL ในบางกรณี) ได้รับการออกแบบมาเพื่อปฏิเสธ ABOOT ที่ลงนามอย่างไม่ถูกต้อง (หรือไม่ได้ลงนาม)

เมื่อได้รับการรับรองความถูกต้องแล้ว ABOOT จะตรวจสอบ /boot และ /recovery เพื่อตรวจสอบความถูกต้องก่อนที่จะเปิดเคอร์เนล Linux การเตรียมระบบบางอย่างเสร็จสิ้นแล้ว จากนั้นการเรียกใช้โค้ดจะถูกถ่ายโอนไปยังเคอร์เนล ABOOT เป็นที่รู้จักกันทั่วไปในชื่อ "Android Bootloader" และเมื่อเราปลดล็อค bootloader ของอุปกรณ์ เราจะปิดการใช้งานการตรวจสอบความถูกต้องนี้ใน ABOOT

ลำดับการบูตของอุปกรณ์ Android มาตรฐานที่มองเห็น // แหล่งที่มา: การวิจัยของอาเลฟ

การเข้าถึงโหมด EDL

แม้ว่าอุปกรณ์บางตัวจะมีการใช้ฮาร์ดแวร์ร่วมกันอย่างง่าย (หรือแย่กว่านั้น แต่ก็มีคำสั่ง fastboot ที่เป็นกรรมสิทธิ์อย่างง่าย ๆ ปรากฏอยู่ในอุปกรณ์จำนวนมาก อุปกรณ์ Xiaomi) อื่นๆ เช่น อุปกรณ์ Nokia จำเป็นต้องมีหมุดสั้นที่เรียกว่า "จุดทดสอบ" อยู่บนหลักของอุปกรณ์ กระดาน. ก่อนแพทช์รักษาความปลอดภัยเดือนธันวาคม 2560 เคยเป็นไปได้เช่นกัน เพียงเรียกใช้ "adb รีบูต edl" บนอุปกรณ์จำนวนมาก (รวมถึง Nexus 6 และ 6P) และเข้าสู่โหมด EDL สิ่งนี้ได้รับการแก้ไขแล้ว

จุดทดสอบจะแสดงในกล่องสีเหลืองที่วาดไว้ที่ด้านล่างของเมนบอร์ดของอุปกรณ์ // แหล่งที่มา: การวิจัยของอาเลฟ

อุปกรณ์อื่นๆ ยังสามารถใช้สิ่งที่เรียกว่าสายเคเบิล "ดีพแฟลช" ซึ่งเป็นสายเคเบิลพิเศษที่มีพินบางตัวลัดวงจรเพื่อบอกให้ระบบบูตเข้าสู่โหมด EDL แทน อุปกรณ์ Xiaomi รุ่นเก่าสามารถใช้วิธีนี้ร่วมกับ Nokia 5 และ Nokia 6 อุปกรณ์อื่นๆ จะบูตเข้าสู่โหมด EDL เมื่อตรวจสอบ SBL ไม่สำเร็จ

สายเคเบิลแฟลชลึก

การใช้โหมด EDL เพื่อเข้าถึง OnePlus 3/3T อย่างเต็มรูปแบบ

โหมด EDL สามารถใช้งานได้หลายวิธีบนอุปกรณ์ โดยส่วนใหญ่จะใช้สำหรับปลดอุปกรณ์โดยการบังคับแฟลช ตามที่อธิบายไว้ข้างต้น ในทางทฤษฎีแล้ว มันควรจะปลอดภัยสำหรับทุกคนในการเข้าถึงโหมดนี้ เนื่องจากสถานการณ์กรณีที่แย่กว่านั้นคือ ABOOT จะปฏิเสธซอฟต์แวร์ที่ไม่ได้ลงนามอย่างเป็นทางการจากผู้ผลิต แม้ว่าสิ่งนี้จะเป็นเรื่องจริง แต่ก็เป็นไปได้จริง ๆ ที่จะสามารถควบคุม OnePlus 3 หรือ 3T และไฟล์ของมันได้อย่างสมบูรณ์ โดยเป็นการพิสูจน์การใช้ประโยชน์จากแนวคิดที่แสดงโดยนักวิจัย

สิ่งนี้จะดำเนินการผ่านคำสั่งที่อันตรายมากสองคำสั่งซึ่ง OnePlus ปล่อยให้สามารถเข้าถึงได้ใน ABOOT เวอร์ชันเก่า (ระบบปฏิบัติการ Android bootloader) เพื่อปลดล็อค bootloader ของอุปกรณ์ (โดยไม่มีคำเตือนแสดงให้ผู้ใช้เห็นขณะบู๊ต) และปิดการใช้งาน dm_verity. dm_verity เรียกอีกอย่างว่าการบูตที่ได้รับการยืนยัน และเป็นส่วนหนึ่งของลำดับการบูตเครื่องอย่างปลอดภัยบนอุปกรณ์ Android คำสั่งทั้งสองมีดังนี้

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

สังเกตกระบวนการง่ายๆ 4 ขั้นตอนด้านล่างซึ่งใช้โปรโตคอล Firehose

  1. ขั้นแรก ให้บู๊ตอุปกรณ์เข้าสู่โหมด EDL ซึ่งสามารถทำได้ผ่าน adb บน OxygenOS 5.0 หรือต่ำกว่า หรือใช้การรวมคีย์ฮาร์ดแวร์อย่างง่าย
  2. ดาวน์โหลดอิมเมจระบบเก่าที่ต่ำกว่า OxygenOS 4.0.2
  3. Flash aboot.bin ผ่าน firehose (โปรดจำไว้ว่า aboot.bin ใช้ fastboot ดังที่เราได้กล่าวไว้ก่อนหน้านี้)
  4. ขณะนี้คุณจะสามารถปิดใช้งานการบูตแบบปลอดภัยและปลดล็อกโปรแกรมโหลดบูตได้ โดยไม่ต้องเช็ดเครื่อง เพียงใช้คำสั่ง fastboot สองคำสั่งด้านบน

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

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

Firehose ทำงานผ่านโปรโตคอล Qualcomm Sahara ซึ่งยอมรับโปรแกรมเมอร์ที่ลงนามโดย OEM และเป็นวิธีการโจมตีข้างต้น เมื่อเชื่อมต่อกับอุปกรณ์ อุปกรณ์จะทำหน้าที่เป็น SBL ผ่าน USB โปรแกรมเมอร์ส่วนใหญ่ใช้ สายดับเพลิง เพื่อสื่อสารกับโทรศัพท์ในโหมด EDL ซึ่งเป็นสิ่งที่นักวิจัยใช้ประโยชน์เพื่อให้สามารถควบคุมอุปกรณ์ได้เต็มรูปแบบ นักวิจัยยังใช้สิ่งนี้เพื่อ ปลดล็อคอุปกรณ์ Xiaomi เพียงแค่กระพริบภาพที่แก้ไข ซึ่งปลดล็อค bootloader จากนั้นพวกเขาก็แฟลชเคอร์เนลแบบกำหนดเองซึ่งให้สิทธิ์การเข้าถึงรูทและเปิดใช้งาน SELinux โดยได้รับอนุญาต และยังแยกอิมเมจข้อมูลผู้ใช้ที่เข้ารหัสออกจากอุปกรณ์ด้วย

บทสรุป

ไม่ทราบว่าเหตุใด OEM จึงปล่อยโปรแกรมเมอร์เหล่านี้จาก Qualcomm โปรแกรมเมอร์ Nokia, LG, Motorola และ Google รั่วไหลแทนที่จะถูกปล่อยออกมา แต่นักวิจัยก็สามารถจัดการได้ ทำลายห่วงโซ่ความไว้วางใจทั้งหมดบน Nokia 6 และเข้าถึงอุปกรณ์ได้เต็มรูปแบบผ่านวิธีการที่คล้ายกัน การแสวงหาผลประโยชน์ พวกเขามั่นใจว่าการโจมตีสามารถส่งไปยังอุปกรณ์ใดๆ ที่รองรับโปรแกรมเมอร์เหล่านี้ได้ หากเป็นไปได้ OEM ควรใช้ฮาร์ดแวร์ qFuses ซึ่งป้องกันการย้อนกลับของซอฟต์แวร์ โดยการระเบิดเมื่อฮาร์ดแวร์ของอุปกรณ์ถูกย้อนกลับ และสามารถเตือนผู้ใช้ได้ว่ามันเกิดขึ้นแล้ว ผู้ที่สนใจสามารถดูงานวิจัยฉบับเต็มได้ที่ด้านล่างนี้ และอ่านข้อมูลการใช้งาน Nokia ฉบับเต็มได้เช่นกัน


ที่มา: การวิจัยของ Aleph