RabbitOS 탈옥: 비밀 로그와 GPL 위반 발견
Rabbit R1 개요
- Rabbit R1은 많은 비판을 받고 있으며, 사용자들은 이 제품을 되팔기 위해 노력 중임.
- Rabbit Inc.는 반품을 수락하지만, 중고 시장에서 R1은 정가보다 훨씬 저렴하게 판매됨.
동기
- RabbitOS는 Android 13 AOSP에서 실행되는 앱임.
- API를 역공학하여 Python 스크립트로 대체 가능함.
- Rabbit Inc.가 코드 난독화를 시작하면서, 이를 분석하기 위해 R1을 구매함.
R1 하드웨어
- MediaTek MT6765 SoC, 4GB DRAM, 128GB eMMC 스토리지 사용.
- 부트로더는 기본적으로 잠겨 있지만, mtkclient를 사용해 잠금 해제 및 커스텀 ROM 플래싱 가능.
부트 체인
- 부트 과정은 MediaTek에서 제공하는 부트롬(brom)에서 시작됨.
- Preloader가 DRAM을 초기화하고, tee, gz, lk 이미지를 로드함.
- LK는 Android Verified Boot를 구현하며, dm-verity를 통해 블록 장치의 무결성을 확인함.
신뢰 체인 깨기
- "kamakiri" 부트롬 익스플로잇을 통해 첫 번째 단계에서 모든 후속 단계를 서브버트 가능.
- USB 부트로더 모드를 사용해 서명되지 않은 DA 이미지를 로드하고 실행 가능.
탈옥 방법
- 커스텀 Android 부트 이미지를 USB를 통해 DRAM에 로드.
- Preloader의 마지막 부분에 훅을 설치하고, LK로 점프하기 전에 커스텀 훅을 설치.
- 커스텀 커널/초기 램디스크가 부팅되며, 모든 무결성 검사를 통과함.
연구 과정
- UART 테스트 패드를 통해 디버그 정보 수집.
- Preloader와 Linux 커널의 커맨드라인 플래그를 패치해 UART 로그 수집.
발견 사항
- RabbitOS는 내부 저장소에 모든 로그를 텍스트 파일로 저장.
- 로그에는 GPS 위치, WiFi 네트워크 이름, 셀 타워 ID, IP 주소, 사용자 토큰, 음성 데이터 등이 포함됨.
- 최신 RabbitOS 업데이트(v0.8.112)에서 로그 문제를 해결하고 공장 초기화 옵션 추가.
AOSP "커스터마이징"
- RabbitOS는 Android 13에서 실행되는 단일 앱 모드로, 대부분의 Android 기능을 비활성화함.
- 시스템 설정 앱을 제거해 보안성을 높였다고 주장.
일반 사용자 조언
- 탈옥 여부가 의심되면 기기를 껐다 켜서 확인.
- 기기를 판매하거나 기증하기 전에 공장 초기화 권장.
결론
- Rabbit R1은 특별한 하드웨어가 없으며, 대부분의 커스터마이징은 단일 앱 모드를 강화하기 위한 것임.
- 부트 체인 보안이 비효과적이며, GPL 라이선스를 위반하고 있음.
- 탈옥 도구를 공개하여 연구자들이 R1을 분석할 수 있도록 지원.
GN⁺의 정리
- Rabbit R1의 부트 체인 보안이 취약하며, 사용자 데이터가 과도하게 로그로 저장됨.
- RabbitOS는 Android 13에서 실행되는 단일 앱 모드로, 대부분의 Android 기능을 비활성화함.
- 탈옥 도구를 통해 연구자들이 R1을 분석할 수 있도록 지원함.
- Rabbit Inc.는 GPL 라이선스를 위반하고 있으며, 사용자 데이터 로그 문제를 해결함.
- 비슷한 기능을 가진 제품으로는 Google Nest Hub, Amazon Echo Show 등이 있음.