Un chercheur fait un jailbreak de RabbitOS et dcouvre que le rabbit r1 enregistre vos positions GPS prcises Le nom de votre rseau WiFi et d’autres infos qui sont transmises aux serveurs de l’entreprise

LinkedIn est la marque la plus usurpe par les cybercriminels et reprsente 52 % de toutes les attaques de phishing mondiales Il s'agit d'une hausse de 44 % par rapport au trimestre prcdent



Aprs que le rabbit r1 a fait les gros titres pour des situations comme l’enregistrement en secret des conversations des utilisateurs sur l’appareil sans qu’il soit possible de les effacer, le codage en dur de cls d’API et plusieurs autres scandales, des individus tenter de le jailbreaker pour dcouvrir d’autres secrets cachs dans le firmware.

Motivations

Aprs que les titres aient attir mon attention, j’ai commenc faire de la rtro-ingnierie sur une copie de l’APK que j’ai trouv sur internet (oui, RabbitOS est juste une application fonctionnant en mode kiosque sur Android 13 AOSP). Il n’y a pas de modles d’IA locaux ou quoi que ce soit de ce genre, donc une fois que vous comprenez l’API qu’il utilise pour parler au Cloud, vous pouvez remplacer le matriel Rabbit R1 par un petit script Python. J’ai fait de la rtro-ingnierie de leur API, et j’ai crit mes conclusions (ce n’est rien de trs excitant, juste du JSON sur une websocket).

Il y a environ une semaine, j’ai achet un R1 sur eBay pour 122 livres sterling (ce qui est toujours bien plus que ce qu’il vaut objectivement). Alors pourquoi l’ai-je achet en toute connaissance de cause ?

Eh bien, dans les mises jour ultrieures de l’application, ils ont commenc obscurcir leur code, et je l’ai pris personnellement ! J’adore le jeu du chat et de la souris (ou de la tortue et du livre ?), et le jeu tait lanc. Quels sont les secrets qu’ils essaient de me cacher ?

Ils utilisent un obscurcisseur commercial, et pour tre honnte, il est plutt bon, ce qui rend mon approche purement statique fastidieuse. J’ai donc dcid qu’il tait temps d’avoir une R1 en main, pour la manipuler. Oui, j’avais dj compris l’API, mais je ne voulais pas tre exclu des futures mises jour. Non pas parce que je tiens particulirement pouvoir interroger les mdiocres API de Rabbit, mais parce que c’est ma fiert qui est en jeu.

De plus, je n’avais jamais examin la scurit de dmarrage d’un appareil Android moderne auparavant, c’tait donc une occasion d’apprentissage intressante sur ce front.

Au cours de mon analyse statique de leur code obscurci, j’ai not une logique permettant de dtecter des outils d’analyse standard tels que Magisk et Frida (s’il tait dtect, il refuserait de s’excuter). J’allais donc probablement devoir dvelopper mon propre outil. Amusant ! Bien sr, je pourrais essayer de contourner leurs dtections anti-analyse, mais c’est beaucoup moins amusant. Le code obfusqu prend galement des mesures pour vrifier qu’il s’excute sur un R1, par opposition n’importe quel autre appareil Android, et je pourrais usurper ou patcher ces vrifications, mais cela devient ennuyeux (et tend ne pas tre une approche l’preuve du temps).

Pousser la charge utile

J’ai commenc crire mon propre logiciel client USB en Python, non pas parce qu’il y a quelque chose de mal avec mtkclient (qui implmente dj tout ce qui est ncessaire) mais parce que je voulais m’assurer que je comprenais tout autant que possible. Une fois que j’ai russi le faire fonctionner, j’ai dcid de le porter sur js/WebSerial, juste pour le plaisir.

Et maintenant, j’ai une page web qui peut jailbreaker un Rabbit R1 physiquement connect.

Dans l’esprit des jeux de mots terribles sur le thme du lapin, j’ai nomm le jailbreak carroot .

Au dmarrage, a ressemble a :

Une fois qu’il aura dmarr, nous pourrons nous connecter et jeter un coup d’il rapide :

1
2
3
4
5

$ rlwrap nc 192.168.0.69 1337
# id
uid=0(root) gid=0(root) groups=0(root) context=u:r:rootkit:s0
# getprop ro.boot.verifiedbootstate
green

Comme vous pouvez le voir, nous sommes root, et le systme pense qu'il a t dmarr de manire scurise, sans mme avoir besoin de modifier les valeurs des proprits du systme. Notez que mon shell TCP est tellement dpouill qu'il n'y a pas d'invite # par dfaut, je l'ai ajoute ici pour plus de clart.

Le domaine SELinux privilgi rootkit est configur dans le cadre de flashable-android-rootkit.

Constatations

Alors, qu'est-ce qu'ils essayaient de nous cacher ?

Pour tre honnte, je n'ai encore rien trouv de particulirement intressant. L'analyse ne fait que commencer ! Si je partage mon jailbreak, c'est en grande partie dans l'espoir que d'autres personnes se joindront moi dans mon analyse.

Ce que j'ai remarqu, c'est qu'ils enregistraient tout dans des fichiers texte sur le stockage interne :

1
2
3
4
5
6
7
8
9

:/storage/emulated/0 # ls -al ./Android/data/tech.rabbit.r1launcher.r1/files/logs/
total 7140
drwxrws--- 2 u0_a66 ext_data_rw    4096 2024-07-07 00:52 .
drwxrws--- 3 u0_a66 ext_data_rw    4096 2024-07-04 22:11 ..
-rw-rw---- 1 u0_a66 ext_data_rw  671954 2024-07-05 01:37 2024-07-01.log
-rw-rw---- 1 u0_a66 ext_data_rw 1472020 2024-07-04 23:40 2024-07-04.log
-rw-rw---- 1 u0_a66 ext_data_rw  782800 2024-07-06 16:45 2024-07-05.log
-rw-rw---- 1 u0_a66 ext_data_rw 1747449 2024-07-07 00:52 2024-07-06.log
-rw-rw---- 1 u0_a66 ext_data_rw 2565224 2024-07-07 03:47 2024-07-07.log

l'poque (le 7 juillet), je l'ai signal publiquement dans le discord de la communaut Rabbitude. Je trouvais simplement amusant qu'ils choisissent de remplir leurs 128 Go d'espace de stockage avec des enregistrements aussi verbeux.

Mais en y regardant de plus prs, et en y rflchissant plus profondment, les choses sont devenues inquitantes.

Ces enregistrements comprennent :

  • Vos positions GPS prcises (qui sont galement envoyes leurs serveurs).
  • Le nom de votre rseau WiFi.
  • Les identifiants des tours de tlphonie mobile proximit (mme si aucune carte SIM n'est insre, ces identifiants sont galement envoys leurs serveurs).
  • Votre adresse IP oriente vers l'internet.
  • Le jeton d'utilisateur utilis par l'appareil pour s'authentifier auprs de l'API de Rabbit.
  • Les MP3 cods en base64 de tout ce que le Rabbit vous a dit (et leur transcription textuelle).

Cette situation est proccupante pour les raisons suivantes : il n'est tout simplement pas ncessaire d'enregistrer autant de donnes de manire aussi dtaille :

  • Il n'est tout simplement pas ncessaire d'enregistrer autant de donnes avec autant de dtails, en particulier sur un appareil qui ne dispose pas d'une scurit matrielle digne de ce nom. Je n'ose imaginer ce qu'ils enregistrent aussi du ct du back-end !
  • Il n'existait aucun moyen pour l'utilisateur final de rinitialiser l'appareil en usine, ce qui rendait les enregistrements permanents. Si l'on ajoute cela le fait que les marchs d'occasion sont trs actifs, on obtient la recette d'un dsastre. Il n'y a mme pas de bouton dconnexion sur l'appareil !

Heureusement pour la personne qui j'ai achet mon R1, je l'ai rinitialis en utilisant mtkclient avant de faire quoi que ce soit avec.

Heureusement pour tous les autres, la dernire mise jour de RabbitOS (v0.8.112) a corrig ce problme alors que j'tais en train d'crire cet article. Ils ont rduit la journalisation et ajout une option de rinitialisation des paramtres d'usine !

C'est la premire fois que je vois Rabbit tre un tant soit peu proactif en ce qui concerne les problmes de confidentialit et de scurit des utilisateurs, plutt que de simplement ragir aux articles de presse crits ce sujet.

Je n'ai pas pris la peine de le signaler en tant que problme de scurit, tout d'abord parce que je n'avais pas pleinement rflchi aux consquences ce moment-l, et ensuite parce que je ne m'attendais pas tre pris au srieux par l'entreprise, sur la base de ses rponses antrieures aux problmes de scurit. J'tais galement proccup par le dveloppement de mon outil de jailbreaking ! Je suppose que quelqu'un d'autre leur a signal le problme et je dois admettre que j'ai t positivement surpris par leur rponse. J'espre que cela marque un pas dans la bonne direction en ce qui concerne leur attitude vis--vis des problmes de scurit. En tout cas, ils ont fait paratre le problme plus grave qu'il ne l'est en ralit, plutt que d'essayer de le minimiser.

Il serait videmment prfrable qu'ils n'enregistrent jamais ces informations, mais cela fait partie de l'tat d'esprit aller vite et pulvriser des informations confidentielles partout que nous attendons de l'industrie technologique moderne.

Cela raffirme ma conviction que les consommateurs devraient avoir la possibilit d'inspecter et de modifier le code qui s'excute sur les appareils qu'ils possdent. Lorsque ces capacits sont refuses par un fournisseur, je prends des mesures pour rectifier la situation.

l'outil exprimental de jailbreaking qu'il a dvelopp (Tethered Jailbreak) pour aider les chercheurs accder leurs propres R1

Source : David Buchanan

Et vous ?

Quelle est votre opinion sur les pratiques de scurit de Rabbit Inc. ? Pensez-vous que lentreprise a agi de manire responsable en matire de scurit et de confidentialit des donnes.

Pensez-vous que le jailbreak est justifi dans ce cas ? Explorez les avantages et les inconvnients du jailbreak du Rabbit R1, en tenant compte des problmes de scurit et des restrictions imposes par lentreprise.

Quelles autres mesures de scurit devrait-on prendre pour protger les appareils IoT ? Parlez des meilleures pratiques pour scuriser les appareils connects, en particulier ceux qui utilisent des systmes dexploitation personnaliss.

Comment RabbitOS pourrait-il amliorer sa transparence envers les utilisateurs ? Proposez des ides pour que Rabbit Inc. communique davantage sur les fonctionnalits, les mises jour et les problmes de scurit.

Avez-vous dj possd un appareil IoT qui vous a du ? Partagez vos expriences avec des appareils connects et les leons que vous en avez tires.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.