Un développeur réécrit le firmware de sa trottinette en Rust

Original : Reverse engineering my e-scooter and rewriting the firmware in Rust

Pourquoi c'est important

Révèle comment des données privées circulent sans consentement explicite dans les engins connectés grand public.

Ben Simms a rétro-ingéniéré le matériel et le firmware de sa trottinette électrique Egret GT, découvrant un bus CAN dissimulé sur le port USB-C, des données transmises au fabricant à son insu, et une faille de sécurité permettant de contourner le PIN.

Tout commence par une curiosité : maintenir le bouton « bas » au démarrage de l'Egret GT fait entrer la trottinette en mode mise à jour firmware, puis en mode conduite sans saisir le PIN. Simms démarre par l'application mobile et ses handlers Bluetooth. Il y découvre que des métriques cachées — température, courant moteur, historique de charge — sont transmises au fabricant liées à l'identifiant du scooter, sans mention claire dans l'app.

Il tente de spoofer le VIN du modèle 45 km/h pour lever la limitation de vitesse, sans succès. L'attention se tourne ensuite vers le port USB-C présenté comme simple chargeur. Avec un oscilloscope et un breakout board, il constate que deux broches USB-C véhiculent en réalité un bus CAN — usage non conforme au standard USB-C. Pour sniffer ce trafic, il assemble un dispositif à base d'ESP32-C6, SN65HVD230 et MCP2515, et commence à logger chaque message CAN. La suite : réécriture d'un firmware personnalisé pour l'unité d'affichage, en Rust.

Source

bensimms.moe — Lire l'original →