IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Google a adopté Rust pour des raisons de sécurité et a constaté une réduction de 1 000 fois des vulnérabilités liées à la sécurité de la mémoire
Comparé à C et C++

Le , par Jade Emy

283PARTAGES

51  0 
Google a adopté Rust pour des raisons de sécurité et a constaté une réduction de 1 000 fois des vulnérabilités liées à la sécurité de la mémoire, un taux de rollback 4 fois plus faible et une réduction de 25 % du temps consacré à la révision du code par rapport au C et au C++. Google a partagé comment une stratégie de sécurité mémoire axée sur la prévention des vulnérabilités ne se contente pas de corriger les problèmes, mais aide également à aller plus vite. Selon Google, les données de 2025 continuent de valider cette approche, les vulnérabilités liées à la sécurité mémoire passant pour la première fois sous la barre des 20 % du total des vulnérabilités.

Dans le monde de la programmation, les langages C et C++ ont longtemps dominé le développement de firmware. Cependant, Google a fait une déclaration audacieuse : remplacer ces langages par Rust serait non seulement possible, mais aussi relativement facile. Les ingénieurs d'Android avait notamment affirmé : "Vous verrez à quel point il est facile de renforcer la sécurité avec des remplacements Rust".

Rust est un langage de programmation polyvalent. Il est réputé pour l'importance qu'il accorde aux performances, à la sécurité des types, à la concurrence et à la sécurité de la mémoire. Rust est réputé pour garantir la sécurité de la mémoire (c'est-à-dire que toutes les références pointent vers une mémoire valide) sans collecteur de mémoire classique. À la place, les erreurs de sécurité de la mémoire et les conflits d'accès aux données sont évités grâce au « vérificateur d'emprunt », qui suit la durée de vie des objets référencés au moment de la compilation.

Mais en novembre 2024, Google a affirmé que la transition C++ vers Rust prendra plusieurs années. Pour garantir la sécurité de ces utilisateurs, Google a décidé d'appliquer également les principes de conception sécurisée à sa base de code C++ existante "chaque fois que cela est possible". Google avait alors partagé comment elle a déployé ses principes ainsi que l'impact qu'elle a constaté dans son code C++.

Récemment, un an après cette affirmation, Google partage comment une stratégie de sécurité mémoire axée sur la prévention des vulnérabilités ne se contente pas de corriger les problèmes, mais aide également à aller plus vite. Selon Google, les données de 2025 continuent de valider cette approche, les vulnérabilités liées à la sécurité mémoire passant pour la première fois sous la barre des 20 % du total des vulnérabilités, notamment dans Android.

Android est un système d'exploitation basé sur une version modifiée du noyau Linux et d'autres logiciels open source, conçu principalement pour les appareils mobiles à écran tactile tels que les smartphones et les tablettes. Android a été développé par un consortium de développeurs connu sous le nom d'Open Handset Alliance, mais sa version la plus largement utilisée est principalement développée par Google.


Google a adopté Rust pour sa sécurité et constate une réduction de 1 000 fois de la densité des vulnérabilités de sécurité de la mémoire par rapport au code C et C++ d'Android. Mais la plus grande surprise a été l'impact de Rust sur la livraison des logiciels. Avec un taux de rollback quatre fois plus faible et un temps de révision du code réduit de 25 %, la voie la plus sûre est désormais aussi la plus rapide.

Construire de meilleurs logiciels, plus rapidement

Le développement d'un système d'exploitation nécessite le contrôle de bas niveau et la prévisibilité des langages de programmation système tels que C, C++ et Rust. Si Java et Kotlin sont importants pour le développement de la plateforme Android, leur rôle est complémentaire à celui des langages système plutôt qu'interchangeable. Google a introduit Rust dans Android comme alternative directe à C et C++, offrant un niveau de contrôle similaire, mais sans la plupart de leurs risques. Ils ont concentré cette analyse sur le code nouveau et activement développé, car les données montrent que cette approche est efficace.

Lorsqu'on examine le développement dans les langages système (à l'exclusion de Java et Kotlin), deux tendances se dégagent : une forte augmentation de l'utilisation de Rust et un déclin plus lent mais constant du nouveau C++.


Le graphique montre que le volume de nouveau code Rust rivalise désormais avec celui de C++, ce qui permet de comparer de manière fiable les mesures du processus de développement logiciel. Pour mesurer cela, ils utilisent le cadre DORA, un programme de recherche mené depuis dix ans qui est devenu la norme industrielle pour évaluer les performances des équipes d'ingénierie logicielle. Les mesures DORA se concentrent sur :

- Débit : la vitesse de livraison des modifications logicielles.
- Stabilité : la qualité de ces modifications.

Les comparaisons entre langages peuvent être difficiles. Ils ont utilisé plusieurs techniques pour garantir la fiabilité des comparaisons.

- Changements de taille similaire : Rust et C++ ont une densité fonctionnelle similaire, bien que Rust soit légèrement plus dense. Cette différence favorise C++, mais la comparaison reste valable. Ils utilisent les définitions de taille de changement de Gerrit.

- Pools de développeurs similaires : l'équipe de Google ne prend en compte que les changements effectués par les développeurs de la plateforme Android. La plupart sont des ingénieurs logiciels chez Google, et il existe un chevauchement considérable entre les pools, beaucoup contribuant aux deux.

-Suivi des tendances au fil du temps : à mesure que l'adoption de Rust augmente, les indicateurs changent-ils de manière régulière, s'accélèrent-ils ou reviennent-ils à la moyenne ?

Débit

La révision du code est une partie du processus de développement qui prend beaucoup de temps et qui présente un temps de latence élevé. La refonte du code est l'une des principales sources de ces retards coûteux. Les données montrent que le code Rust nécessite moins de révisions. Cette tendance est constante depuis 2023. Les modifications Rust d'une taille similaire nécessitent environ 20 % de révisions en moins que leurs équivalents C++.


De plus, les modifications Rust prennent actuellement environ 25 % moins de temps en révision de code que celles en C++. Selon Google, le changement significatif en faveur de Rust entre 2023 et 2024 est dû à l'expertise accrue de l'équipe Android en matière de Rust.


Si la réduction des retouches et l'accélération de la révision du code offrent des gains de productivité modestes, les améliorations les plus significatives concernent la stabilité et la qualité des modifications.

Stabilité

Rust se distingue par des modifications stables et de haute qualité. DORA utilise le taux de rollback pour évaluer la stabilité des modifications. Le taux de rollback de Rust est très faible et continue de diminuer, même si son adoption dans Android dépasse celle du C++.


Pour les modifications moyennes et importantes, le taux de rollback des modifications Rust dans Android est environ quatre fois inférieur à celui du C++. Ce faible taux de rollback n'est pas seulement un gage de stabilité, il améliore aussi activement le débit global du développement. Les retours en arrière perturbent fortement la productivité, créant des frictions organisationnelles et mobilisant des ressources bien au-delà du développeur qui a soumis la modification défectueuse. Les retours en arrière nécessitent des retouches et davantage de révisions de code, et peuvent...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 20/11/2025 à 7:02
Sauf que justement l'article parle d'une base de code C++ et C qui est très suivie niveau sécurité avec de bonne pratiques mises en place pour réduire les risques, avec succès d'ailleurs, j'ai lu dans un autre article que le nombre de vulnérabilités dans le code C++ de Google avait légèrement diminué.

Cependant les tests ne vérifient que ce que l'on a pensé a vérifier et les outils d'analyse dynamique, comme leur nom l'indique ne détectent que les cas qui se présentent a eux, là où Rust garantit que le code ne présente pas d'erreur mémoire tant que l'on abuse pas des blocs unsafe. C et C++ resteront intrinsèquement beaucoup plus sujet aux vulnérabilités mémoire que Rust qui a été construit de base pour mieux prendre en compte cette problématique.
En C++ la sécurité mémoire reste quelque chose dont il faut se soucier et même un bon programmeur n'est pas à l'abri de faire une erreur, alors que c'est le défaut en Rust.
5  0 
Avatar de freesket
Membre du Club https://www.developpez.com
Le 10/12/2025 à 18:13
Oui le code Google est audité par des experts mais... Le code de Google n'est absolument pas du "Modern C++". Leur système repose sur des outils "home made" (Oilpan, raw_ptr, MiraclePtr...)...
Plutôt que refaire en C++ moderne (avec les conflits avec les développeurs que cela entraîne...) avec outils d'analyse moderne (qu'ils utilisent sûrement en parti, je ne dis pas le contraire...), ils préfèrent réécrire en Rust (ou le développeur n'a pas le choix que d'être safe par défaut et unsafe à la demande).
0  0 
Avatar de CAMIC
Membre régulier https://www.developpez.com
Le 19/11/2025 à 18:47
Quand on programme comme des cochons et que l'on utilise pas de macro de test désactivable à la compilation, ni même d'outil de surveillance de la mémoire ce normal, c'est la différence avec des vrais professionnels qui sont plus lent, mais plus sûr.
2  3