Google veut du Rust dans les firmwares Android
mar, 10/09/2024 - 08:32
Ce n'est un mystère pour personne : Google aime Rust et ne veut plus de C et de C++. Les équipes d'Android ont dévoilé un nouveau post sur comment et pourquoi changer le code source des firmwares en favorisant Rust. L'argument premier est la sécurité : le memory safe est l'argument majeur. Les équipes ont introduit Rust dans le firmware d'Android pour le nouveau code et élever la sécurité du code et donc de la plateforme. Les équipes remplacent le code C historique, déjà fait sur la librsvg.
Le firmware est un élément crucial car il fait le lien entre le matériel et le logiciel. Pour les équipes Google, Rust est aussi performant et la taille du code est identique tout en apportant une interopérabilité avec le C.
Mais attention, pas question de faire un big bang : l'usage de Rust est incrémental, donc progressif. Il concerne les nouveaux codes et les codes existants critiques. L'usage de Rust doit réduire les vulnérabilités. "Vous pouvez remplacer une fonctionnalité C existante en écrivant une couche d'interface en Rust (shim) qui effectue la traduction entre une API Rust existante et l'API C. L'API C est répliquée et exportée par cette couche, permettant à la base de code existante de s'y lier. Cette couche sert de wrapper entre l'API C et l'API Rust. C'est une approche courante lors de la réécriture ou du remplacement de bibliothèques existantes par une alternative en Rust." dixit Google.
Bien entendu, il y a des défis à relever : ne pas nuire à la qualité du firmware ni aux fonctionnalités exposées ou encore bien choisir le composant à réécrire / écrire. Il faut bien choisir la librairie Rust que les dévs veulent utiliser. La partie compilation doit être maîtrisée : est-ce que l'architecture cible est supportée, notamment nativement.
Le post complet est ici : https://security.googleblog.com/2024/09/deploying-rust-in-existing-firmware.html