2 points par GN⁺ 2024-07-18 | 1 commentaires | Partager sur WhatsApp

Jailbreak de RabbitOS : découverte de journaux secrets et d’une violation de la GPL

Aperçu du Rabbit R1

  • Le Rabbit R1 fait l’objet de nombreuses critiques, et les utilisateurs essaient de revendre le produit.
  • Rabbit Inc. accepte les retours, mais sur le marché de l’occasion, le R1 se vend bien en dessous de son prix public.

Motivation

  • RabbitOS est une application qui fonctionne sur Android 13 AOSP.
  • Il est possible de faire de la rétro-ingénierie de l’API et de la remplacer par un script Python.
  • Rabbit Inc. ayant commencé à obfusquer le code, l’auteur a acheté un R1 pour l’analyser.

Matériel du R1

  • Utilise un SoC MediaTek MT6765, 4 Go de DRAM et 128 Go de stockage eMMC.
  • Le bootloader est verrouillé par défaut, mais il est possible de le déverrouiller et de flasher une ROM personnalisée avec mtkclient.

Chaîne de démarrage

  • Le processus de démarrage commence dans la boot ROM (brom) fournie par MediaTek.
  • Le preloader initialise la DRAM, puis charge les images tee, gz et lk.
  • LK implémente Android Verified Boot et vérifie l’intégrité du périphérique de blocs via dm-verity.

Briser la chaîne de confiance

  • L’exploit de boot ROM "kamakiri" permet, dès la première étape, de compromettre toutes les étapes suivantes.
  • Il est possible de charger et d’exécuter des images DA non signées via le mode bootloader USB.

Méthode de jailbreak

  • Chargement d’une image de boot Android personnalisée en DRAM via USB.
  • Installation d’un hook à la fin du preloader, puis d’un hook personnalisé avant le saut vers LK.
  • Un noyau / initramfs personnalisés démarrent tout en passant toutes les vérifications d’intégrité.

Processus de recherche

  • Collecte d’informations de débogage via les pastilles de test UART.
  • Collecte des journaux UART en patchant les indicateurs de ligne de commande du preloader et du noyau Linux.

Découvertes

  • RabbitOS enregistre tous les journaux sous forme de fichiers texte dans le stockage interne.
  • Ces journaux incluent la position GPS, les noms des réseaux Wi‑Fi, les identifiants des antennes cellulaires, les adresses IP, les jetons utilisateur, les données vocales, etc.
  • La dernière mise à jour de RabbitOS (v0.8.112) corrige le problème des journaux et ajoute une option de réinitialisation d’usine.

"Personnalisation" d’AOSP

  • RabbitOS fonctionne comme un mode application unique sur Android 13 et désactive la plupart des fonctions d’Android.
  • L’entreprise affirme avoir renforcé la sécurité en supprimant l’application des paramètres système.

Conseils pour les utilisateurs ordinaires

  • En cas de doute sur un éventuel jailbreak, redémarrer l’appareil pour vérifier.
  • Une réinitialisation d’usine est recommandée avant de vendre ou de donner l’appareil.

Conclusion

  • Le Rabbit R1 ne dispose d’aucun matériel vraiment particulier, et la plupart des personnalisations visent surtout à renforcer le mode application unique.
  • La sécurité de la chaîne de démarrage est inefficace et enfreint la licence GPL.
  • Les outils de jailbreak sont publiés afin d’aider les chercheurs à analyser le R1.

Résumé de GN⁺

  • La sécurité de la chaîne de démarrage du Rabbit R1 est faible, et les données utilisateur sont excessivement enregistrées dans les journaux.
  • RabbitOS fonctionne comme un mode application unique sur Android 13 et désactive la plupart des fonctions d’Android.
  • Les outils de jailbreak permettent aux chercheurs d’analyser le R1.
  • Rabbit Inc. enfreint la licence GPL et a corrigé le problème des journaux de données utilisateur.
  • Parmi les produits aux fonctions similaires figurent le Google Nest Hub et l’Amazon Echo Show.

1 commentaires

 
GN⁺ 2024-07-18
Avis sur Hacker News
  • Les produits Rabbit envoient au serveur la position GPS des utilisateurs, les noms des réseaux Wi‑Fi, les identifiants des antennes cellulaires à proximité, l’adresse IP Internet, les jetons utilisateur, le contenu des conversations, etc.
  • Un utilisateur a quitté l’entreprise après avoir examiné la base de code de Rabbit.
  • Rabbit Inc. n’a pas répondu au contenu de l’article et envisagerait une action en justice.
  • Rabbit Inc. a violé la licence GPL2 et n’a pas publié le code source.
    • En particulier, les pilotes de détection de la molette de défilement à effet Hall et de contrôle du moteur pas à pas de rotation de la caméra sont propriétaires.
    • De telles violations nuisent gravement à l’écosystème du logiciel libre.
  • Il existe aussi le précédent de Truth Social, qui utilisait du code AGPL sans publier les sources avant de finalement les rendre publiques.
  • Le logiciel est de mauvaise qualité et l’entreprise n’a pas bonne réputation.
    • Cependant, s’il est facile d’exécuter des applications personnalisées, il pourrait y avoir des cas d’usage intéressants.
    • En l’implémentant en PWA, le développement pourrait être bien plus rapide qu’avec un ESP32 + batterie + écran.
    • Ce serait bien s’il existait un moyen d’améliorer la sécurité, comme avec GrapheneOS, sans utiliser les services Google.
    • Certains se demandent si des gens utilisent cet appareil pour des applications personnalisées à usage unique.
  • Certains trouvent le nom "Carroot" amusant.
  • Certains se demandent si la collecte de données est limitée à cet appareil précis ou s’il s’agit d’une fonctionnalité d’Android.
  • Certains s’interrogent sur la valeur réelle qu’il y a à analyser le comportement des personnes ayant acheté un produit Rabbit.
    • Cela pourrait servir à identifier les prochains acheteurs de Juicero, de multivitamines ou de systèmes de marketing multiniveau.