2 điểm bởi GN⁺ 2024-07-18 | 1 bình luận | Chia sẻ qua WhatsApp

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

 
GN⁺ 2024-07-18
Ý kiến Hacker News
  • Sản phẩm Rabbit gửi vị trí GPS của người dùng, tên mạng WiFi, ID trạm phát sóng di động xung quanh, địa chỉ IP Internet, token người dùng, nội dung hội thoại, v.v. lên máy chủ
  • Một người dùng đã rời công ty sau khi rà soát codebase của Rabbit
  • Rabbit Inc. chưa phản hồi về nội dung bài báo và đang cân nhắc hành động pháp lý
  • Rabbit Inc. đã vi phạm giấy phép GPL2 và không công khai mã nguồn
    • Cụ thể, driver phát hiện bánh xe cuộn hall-effect và driver điều khiển động cơ bước xoay camera là mã nguồn đóng
    • Những vi phạm như vậy gây tổn hại lớn cho hệ sinh thái phần mềm tự do
  • Truth Social cũng từng dùng mã AGPL nhưng không công khai mã nguồn, sau đó mới công bố
  • Phần mềm có chất lượng thấp và công ty cũng không được đánh giá cao
    • Tuy nhiên, nếu dễ chạy ứng dụng tùy chỉnh thì có thể có những trường hợp sử dụng thú vị
    • Nếu triển khai bằng PWA thì có thể phát triển nhanh hơn rất nhiều so với ESP32 + pin + màn hình
    • Sẽ rất tốt nếu có cách không dùng dịch vụ của Google mà vẫn tăng cường được bảo mật như GrapheneOS
    • Không rõ có ai đang dùng thiết bị này cho các ứng dụng tùy chỉnh chỉ tập trung vào một tác vụ hay không
  • Có ý kiến cho rằng cái tên "Carroot" khá buồn cười
  • Có người thắc mắc việc thu thập dữ liệu này chỉ giới hạn ở thiết bị cụ thể đó hay là tính năng của Android
  • Có người nghi ngờ giá trị thực sự của việc phân tích hành vi những người mua sản phẩm Rabbit
    • Nó có thể được dùng để nhận diện những người mua Juicero tiếp theo, multivitamin, hoặc những người tham gia mô hình đa cấp