เจลเบรก RabbitOS: พบล็อกลับและการละเมิด GPL
ภาพรวมของ Rabbit R1
- Rabbit R1 ถูกวิจารณ์อย่างหนัก และผู้ใช้จำนวนมากกำลังพยายามขายต่อผลิตภัณฑ์นี้
- Rabbit Inc. รับคืนสินค้า แต่ในตลาดมือสอง R1 ขายในราคาที่ต่ำกว่าราคาป้ายมาก
แรงจูงใจ
- RabbitOS เป็นแอปที่ทำงานอยู่บน Android 13 AOSP
- สามารถทำ reverse engineer API และแทนที่ด้วยสคริปต์ Python ได้
- เมื่อ Rabbit Inc. เริ่มทำ code obfuscation จึงซื้อ R1 มาเพื่อวิเคราะห์สิ่งนี้
ฮาร์ดแวร์ของ R1
- ใช้ MediaTek MT6765 SoC, DRAM 4GB และ eMMC storage 128GB
- bootloader ถูกล็อกไว้เป็นค่าเริ่มต้น แต่สามารถปลดล็อกและแฟลช custom ROM ได้ด้วย
mtkclient
บูตเชน
- กระบวนการบูตเริ่มจาก boot ROM (
brom) ที่ MediaTek จัดเตรียมไว้
- Preloader จะเริ่มต้น DRAM และโหลดอิมเมจ
tee, gz, lk
- LK ใช้งาน Android Verified Boot และตรวจสอบความสมบูรณ์ของ block device ผ่าน
dm-verity
การทำลาย chain of trust
- ใช้บูต ROM exploit ชื่อ "kamakiri" เพื่อทำให้ทุกขั้นตอนถัดไปถูก subvert ได้ตั้งแต่ขั้นแรก
- สามารถโหลดและรันอิมเมจ DA ที่ไม่ได้ลงลายเซ็นได้ผ่านโหมด USB bootloader
วิธีเจลเบรก
- โหลด Android boot image แบบกำหนดเองเข้า DRAM ผ่าน USB
- ติดตั้ง hook ไว้ในช่วงท้ายของ Preloader และติดตั้ง custom hook ก่อนกระโดดไปยัง LK
- custom kernel/initramfs จะบูตขึ้นมาและผ่านการตรวจสอบความสมบูรณ์ทั้งหมด
กระบวนการวิจัย
- เก็บข้อมูลดีบักผ่านแผ่นทดสอบ UART
- เก็บล็อก UART โดยแพตช์ command line flags ของ Preloader และ Linux kernel
สิ่งที่ค้นพบ
- RabbitOS เก็บล็อกทั้งหมดเป็นไฟล์ข้อความไว้ใน internal storage
- ล็อกมีข้อมูลอย่างตำแหน่ง GPS, ชื่อเครือข่าย WiFi, ID เสาสัญญาณมือถือ, ที่อยู่ IP, โทเค็นผู้ใช้, ข้อมูลเสียง เป็นต้น
- RabbitOS อัปเดตล่าสุด (v0.8.112) ได้แก้ปัญหาเรื่องล็อกและเพิ่มตัวเลือก factory reset
"การปรับแต่ง" AOSP
- RabbitOS เป็นโหมดแอปเดี่ยวที่ทำงานบน Android 13 และปิดการใช้งานฟังก์ชันส่วนใหญ่ของ Android
- อ้างว่าการลบแอประบบ Settings ออกช่วยเพิ่มความปลอดภัย
คำแนะนำสำหรับผู้ใช้ทั่วไป
- หากสงสัยว่าอุปกรณ์อาจถูกเจลเบรก ให้ลองปิดแล้วเปิดเครื่องใหม่เพื่อตรวจสอบ
- แนะนำให้ทำ factory reset ก่อนขายต่อหรือบริจาคอุปกรณ์
บทสรุป
- Rabbit R1 ไม่มีฮาร์ดแวร์พิเศษ และการปรับแต่งส่วนใหญ่มีไว้เพื่อทำให้โหมดแอปเดี่ยวเข้มงวดยิ่งขึ้น
- ความปลอดภัยของบูตเชนไม่มีประสิทธิภาพ และยังละเมิดไลเซนส์ GPL
- มีการเผยแพร่เครื่องมือเจลเบรกเพื่อช่วยให้นักวิจัยสามารถวิเคราะห์ R1 ได้
สรุปโดย GN⁺
- ความปลอดภัยของบูตเชนของ Rabbit R1 อ่อนแอ และข้อมูลผู้ใช้ถูกเก็บเป็นล็อกมากเกินไป
- RabbitOS เป็นโหมดแอปเดี่ยวที่ทำงานบน Android 13 และปิดการใช้งานฟังก์ชันส่วนใหญ่ของ Android
- เครื่องมือเจลเบรกช่วยให้นักวิจัยสามารถวิเคราะห์ R1 ได้
- Rabbit Inc. กำลังละเมิดไลเซนส์ GPL และได้แก้ปัญหาเรื่องล็อกข้อมูลผู้ใช้แล้ว
- ผลิตภัณฑ์ที่มีฟังก์ชันคล้ายกัน ได้แก่ Google Nest Hub, Amazon Echo Show เป็นต้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News