- Le terminal utilisateur Starlink de SpaceX constitue le matériel clé de la connexion Internet par satellite en orbite terrestre basse
- Le démontage du terminal utilisateur montre que les principaux composants sont le frontend radiofréquence (RF) et un SoC conçu sur mesure
- L’analyse du firmware révèle que la majeure partie du logiciel critique comprend un traitement réseau en espace utilisateur contournant le kernel ainsi que certaines fonctions de chiffrement
- La puce de sécurité STSAFE-A110 joue le rôle de racine de confiance supplémentaire et fournit le chiffrement des données ainsi qu’un identifiant unique
- Le terminal inclut de multiples configurations de clés publiques SSH et un outil suspect d’enregistrement de paquets, mais aucun indice d’atteinte à la vie privée des utilisateurs n’a été observé
Vue d’ensemble
- Starlink est un service Internet par satellite en orbite terrestre basse proposé par SpaceX
- Les utilisateurs se connectent à un satellite proche via le terminal, qui est ensuite relié à Internet par une passerelle au sol
- Les satellites de nouvelle génération utilisent des liaisons laser pour communiquer entre eux, ce qui contribue à améliorer la couverture mondiale et l’efficacité
- Même sans passerelle locale, comme en Ukraine par exemple, le terminal Starlink peut accéder à Internet via une passerelle située dans un pays voisin
- Cet article présente brièvement les résultats de l’enquête approfondie de DARKNAVY sur un terminal utilisateur Starlink
Analyse matérielle
- Un terminal utilisateur Starlink se compose de deux parties : un routeur et une antenne (UTA)
- DARKNAVY a acheté à Singapour un terminal Standard Actuated (Rev3, GenV2) et a démonté l’antenne
- Le démontage a montré que les puces du frontend RF (principalement fabriquées par STMicroelectronics) occupaient une grande partie de la carte
- La zone de contrôle centrale embarque un SoC ST personnalisé exclusif à SpaceX (quad-core Cortex-A53), mais sa fiche technique n’est pas publique
- Lors de Black Hat USA 2022, le Dr Lennert Wouters de la KU Leuven a présenté un cas de compromission réussie d’un terminal de première génération (GenV1), et SpaceX a ensuite désactivé l’interface de debug UART via une mise à jour du firmware
- Cependant, d’autres méthodes ont par la suite permis à nouveau de contourner la sécurité
Extraction et analyse du firmware
- DARKNAVY a extrait directement le firmware depuis la puce eMMC
- La carte Rev3 ne disposant pas de broches de debug eMMC dédiées, la méthode utilisée a consisté à retirer l’eMMC puis à extraire les données avec un programmateur
- La majeure partie du firmware n’était pas chiffrée, ce qui a permis de révéler la chaîne de boot (hors BootROM), le kernel et une partie du système de fichiers
- Après le démarrage du kernel, l’environnement d’exécution est décompressé dans /sx/local/runtime
bin contient les exécutables logiciels de Starlink, dat les fichiers de configuration, et revision_info les informations de version
- Le programme de communication principal,
user_terminal_frontend, est développé en Go, tandis que la plupart des autres sont des binaires C++ statiques sans symboles
- L’architecture de la stack réseau ressemble à DPDK, avec des programmes en espace utilisateur chargés du traitement des paquets en contournant le kernel
- Le kernel Linux sert principalement aux pilotes matériels et à la gestion des processus
- Une partie du logiciel inclut des fonctions initialement conçues pour des usages satellite ou passerelle
- Au démarrage de l’appareil, le type est identifié à partir des périphériques matériels, puis seule la logique correspondante est chargée et utilisée
Émulation
- Un environnement d’émulation du firmware Rev3 basé sur QEMU a été mis en place pour poursuivre l’analyse
- Dans cet environnement, l’exécution et le debug de certains services exposés comme
httpd, WebSocket et gRPC ont réussi
- Il est ainsi devenu possible de suivre le fonctionnement des principaux exécutables et services
Puce de sécurité
- En plus du SoC principal, une puce de sécurité STSAFE-A110 est présente et revendique une certification CC EAL5+
- Cette puce peut être achetée sous NDA, et le programme stsafe_cli du firmware interagit avec elle
- L’analyse montre que les fonctions fournies par la puce STSAFE incluent l’attribution d’un UUID unique à l’appareil, la gestion du certificat à clé publique (
stsafe_leaf.pem) et la dérivation de clés symétriques
- Cette puce constitue une racine de confiance supplémentaire distincte du secure boot du SoC, conformément aux principes modernes de conception de sécurité embarquée
Easter egg : Elon vous surveille-t-il ?
- Au cours de l’analyse, le programme Ethernet Data Recorder a été identifié, soulevant des questions sur une éventuelle possibilité de backdoor
- Ce programme semble disposer d’une fonction d’enregistrement de paquets et capture en interne certains paquets via un mécanisme similaire à
pcap_filter
- D’après les règles observées, les paquets capturés sont principalement des paquets UDP liés à la télémétrie satellite
- Le trafic capturé est stocké après chiffrement avec une clé matérielle du SoC
- À ce jour, aucune preuve de collecte de données portant atteinte à la vie privée des utilisateurs n’a été trouvée
- Lors de l’initialisation, si l’appareil est reconnu comme terminal utilisateur, 41 clés publiques SSH sont inscrites dans /root/.ssh/authorized_keys, et le port 22 reste toujours ouvert sur le réseau local
- La présence de nombreuses clés publiques d’origine inconnue dans un produit commercial mérite l’attention
Conclusion et perspectives
- À mesure que les technologies satellitaires se déploient dans divers secteurs industriels, les composants des systèmes d’Internet par satellite comme Starlink devraient devenir un terrain central pour les futures attaques et défenses de sécurité
- En sécurité spatiale, une seule erreur peut entraîner une perte définitive de communication avec la cible, ce qui impose une approche prudente
1 commentaires
Commentaires Hacker News
/root/.ssh/authorized_keys, et que le port 22 reste également toujours ouvert sur le réseau local ; cela soulève la question du sens de 41 clés, et finalement de savoir qui n’a pas accès root à un terminal utilisateur « que vous possédez »authorized_keys, avec un mélange de clés issues de plusieurs YubiKey de mon laptop, de mon iPad et de mon iPhone, ainsi que des clés Secure Enclave de mon Mac ; j’imagine que Starlink emploie au moins une ou deux personnes de plus pour l’administration système, donc même 100 clés publiques ne me sembleraient pas si étranges