Plonger dans le micrologiciel du terminal utilisateur de Starlink
MaisonMaison > Blog > Plonger dans le micrologiciel du terminal utilisateur de Starlink

Plonger dans le micrologiciel du terminal utilisateur de Starlink

Jun 17, 2023

L'utilisateur moyen de Starlink ne passe probablement pas beaucoup de temps à réfléchir à son matériel après avoir aligné l'antenne parabolique et effectué le câblage. Pour les chercheurs en sécurité, cependant, il s'agit d'un autre dispositif fascinant à bricoler lorsqu'ils effectuent une rétro-ingénierie du micrologiciel et tentent à la fois de découvrir ce qui le fait fonctionner et comment le casser. C'est essentiellement le sujet de l'article de [Carlo Ramponi] sur Quarkslab alors qu'il étudie l'architecture du micrologiciel et les faiblesses potentielles de sa communication interne.

Le matériel du terminal utilisateur lui-même est un SoC assez standard basé sur ARM AArch64, ainsi que l'interface de communication propriétaire, le tout contrôlé par le micrologiciel basé sur Linux. Le dumping du micrologiciel lui-même a été facilité grâce aux travaux existants menés par des chercheurs de la KU Leuven, impliquant le dumping du contenu du stockage eMMC intégré. Après cela, l'architecture du micrologiciel a pu être analysée, qui s'est avérée être principalement composée de binaires basés sur C++, mais avec un seul gros binaire pour le front-end de l'utilisateur écrit en Go.

La communication entre ces processus est gérée via un protocole inter-processus personnalisé appelé « Slate Sharing », le tout coordonné via le processus principal de contrôle des terminaux utilisateur. Ce sont ces messages Slate IPC qui constituent la surface d'attaque la plus probable pour une attaque par fuzzing, la commande SoftwareUpdateRequest étant une cible intéressante car elle ne semble pas nécessiter d'authentification puisqu'elle ne s'adresse pas à un utilisateur spécifique. Ce travail fait partie du mémoire de maîtrise de [Carlo] et devrait constituer la base de recherches ultérieures sur le micrologiciel du terminal utilisateur Starlink.