Bẻ khóa RabbitOS: phát hiện log bí mật và vi phạm GPL
Tổng quan về Rabbit R1
- Rabbit R1 đang nhận nhiều chỉ trích, và người dùng đang cố bán lại sản phẩm này.
- Rabbit Inc. chấp nhận trả hàng, nhưng trên thị trường đồ cũ, R1 được bán với giá thấp hơn nhiều so với giá niêm yết.
Động cơ
- RabbitOS là một ứng dụng chạy trên Android 13 AOSP.
- Có thể đảo ngược API và thay thế bằng script Python.
- Khi Rabbit Inc. bắt đầu làm rối mã nguồn, tác giả đã mua R1 để phân tích việc này.
Phần cứng R1
- Sử dụng SoC MediaTek MT6765, 4GB DRAM và bộ nhớ eMMC 128GB.
- Bootloader bị khóa theo mặc định, nhưng có thể mở khóa và flash ROM tùy chỉnh bằng
mtkclient.
Chuỗi khởi động
- Quá trình khởi động bắt đầu từ boot ROM (
brom) do MediaTek cung cấp.
- Preloader khởi tạo DRAM và nạp các ảnh
tee, gz, lk.
- LK triển khai Android Verified Boot và kiểm tra tính toàn vẹn của thiết bị khối thông qua
dm-verity.
Phá vỡ chuỗi tin cậy
- Có thể dùng exploit boot ROM
kamakiri để phá vỡ mọi bước tiếp theo ngay từ giai đoạn đầu tiên.
- Có thể nạp và thực thi ảnh DA không được ký bằng chế độ bootloader qua USB.
Cách bẻ khóa
- Nạp một ảnh khởi động Android tùy chỉnh vào DRAM qua USB.
- Cài hook ở phần cuối của preloader, rồi cài hook tùy chỉnh trước khi nhảy sang LK.
- Kernel/initramfs tùy chỉnh sẽ khởi động và vượt qua mọi kiểm tra toàn vẹn.
Quá trình nghiên cứu
- Thu thập thông tin debug qua các test pad UART.
- Thu thập log UART bằng cách vá các cờ dòng lệnh của preloader và kernel Linux.
Các phát hiện
- RabbitOS lưu mọi log dưới dạng tệp văn bản trong bộ nhớ trong.
- Log bao gồm vị trí GPS, tên mạng WiFi, ID trạm phát sóng di động, địa chỉ IP, token người dùng, dữ liệu giọng nói và nhiều thứ khác.
- Bản cập nhật RabbitOS mới nhất (
v0.8.112) đã khắc phục vấn đề log và thêm tùy chọn khôi phục cài đặt gốc.
"Tùy biến" AOSP
- RabbitOS là chế độ ứng dụng đơn chạy trên Android 13, vô hiệu hóa hầu hết các tính năng của Android.
- Họ tuyên bố đã tăng cường bảo mật bằng cách gỡ bỏ ứng dụng cài đặt hệ thống.
Lời khuyên cho người dùng phổ thông
- Nếu nghi ngờ thiết bị đã bị bẻ khóa, hãy tắt rồi bật lại để kiểm tra.
- Nên khôi phục cài đặt gốc trước khi bán hoặc tặng thiết bị.
Kết luận
- Rabbit R1 không có phần cứng đặc biệt nào, và phần lớn các tùy biến chỉ nhằm siết chặt chế độ ứng dụng đơn.
- Bảo mật chuỗi khởi động không hiệu quả và đang vi phạm giấy phép GPL.
- Công cụ bẻ khóa đã được công bố để hỗ trợ các nhà nghiên cứu phân tích R1.
Tóm tắt của GN⁺
- Bảo mật chuỗi khởi động của Rabbit R1 yếu, và dữ liệu người dùng bị lưu log quá mức.
- RabbitOS là chế độ ứng dụng đơn chạy trên Android 13 và vô hiệu hóa phần lớn tính năng Android.
- Công cụ bẻ khóa giúp các nhà nghiên cứu có thể phân tích R1.
- Rabbit Inc. đang vi phạm giấy phép GPL và đã khắc phục vấn đề log dữ liệu người dùng.
- Các sản phẩm có tính năng tương tự gồm Google Nest Hub, Amazon Echo Show, v.v.
1 bình luận
Ý kiến Hacker News