Déjà taclés par la NSA, les langages C et C++ n’ont plus la cotes auprès des plus hautes instances américaines. En effet, la Maison-Blanche souhaite que les développeurs se servent de langages sécurisés pour la mémoire. Dans un rapport publié lundi, l'Office of the National Cyber Director (ONCD) de la Maison-Blanche invite les développeurs à réduire le risque de cyberattaques en utilisant des langages sans risque de vulnérabilités pour la mémoire. Les entreprises IT « peuvent empêcher l’introduction de multiples vulnérabilités dans l'écosystème numérique en adoptant des langages sécurisés », a déclaré la présidence dans un communiqué. Elle fait référence à ceux qui sont protégés contre les débordements de mémoire tampon, les lectures hors-limites (out-of-bounds reads ) et les fuites de mémoire.
Rust cité en exemple
Des études récentes de Microsoft et de Google ont montré qu'environ 70 % de toutes les failles de sécurité sont dues à des problèmes de sécurité de la mémoire. « En tant que nation, nous avons la capacité et la responsabilité de réduire la surface d'attaque dans le cyberespace et d'empêcher des catégories entières de bogues de sécurité d'entrer dans l'écosystème numérique, mais pour cela, nous devons nous attaquer au difficile problème de l’adoption de langages de programmation sans risque pour la mémoire », a déclaré Harry Coker, le directeur de l'Office of the National Cyber Director. Dans un billet de blog publié en septembre, la CISA (Cybersecurity and Infrastructure Security Agency), a donné le même conseil aux développeurs.
Dans son rapport de 19 pages, l'ONCD cite le C et le C++ comme deux exemples de langages présentant des vulnérabilités en matière de sécurité de la mémoire, et qualifie Rust comme sûr. Par ailleurs, une fiche d'information de la NSA sur la cybersécurité datant de novembre 2022 mentionne, en plus de Rust, les langages C#, Go, Java, Ruby et Swift, comme sécurisés. Selon Statista, en 2023, environ 22 % de tous les développeurs utilisaient le C++ et 19 % le C, ce qui les rend moins populaires que JavaScript, Python, Java et quelques autres. Cependant, l'indice Tiobe classe Python comme le plus populaire, suivi de C, C++ et Java.
Transfert de responsabilité
L'un des objectifs du rapport de l’ONCD est de transférer la responsabilité de la cybersécurité des particuliers et des petites entreprises vers les grands groupes, les entreprises IT et le gouvernement américain, qui sont « plus à même de gérer une menace en constante évolution », selon le communiqué de presse de la Maison-Blanche. L'ONCD a travaillé avec le secteur privé, y compris les sociétés IT, la communauté universitaire et d'autres organisations, pour élaborer ses recommandations.
L’organisme a lancé un appel à contribution publique sur le sujet en août. Il a également recueilli les commentaires de plusieurs firmes, dont Hewlett Packard Enterprise, Accenture et Palantir, qui soutiennent l'initiative. D'autres experts en sécurité des logiciels ont aussi fait l'éloge du rapport. Selon Dan Grossman, professeur en informatique fondamentale à l'université de Washington, le rapport de l'ONCD est utile et arrive à point nommé. Même si les « dangers du C et du C++ sont connus depuis des décennies », c'est le bon moment pour la Maison-Blanche de faire pression en faveur de la sécurité de la mémoire, « car des alternatives pratiques et matures sont désormais disponibles », a-t-il déclaré.
Un changement qui prendra du temps
Ces changements s’imposent aussi du fait de « la sophistication des menaces des adversaires qui exploitent les violations de la sécurité de la mémoire », a ajouté le professeur. « Des discussions sur la sécurité de la mémoire impliquant le gouvernement, l'industrie et les universitaires peuvent conduire à des changements significatifs », a-t-il estimé. « Naturellement, beaucoup de directions du gouvernement fédéral sont des créateurs et des vendeurs clés de logiciels et ils peuvent utiliser cette perspective pour décider de leur priorité pour les changements à venir dans les systèmes ou les nouveaux systèmes. Cependant, l'abandon du C et du C++ ne se fera pas du jour au lendemain, en particulier dans les systèmes embarqués », a reconnu Dan Grossman. « Mais l'utilisation d'autres langages pour les logiciels de systèmes, notamment Rust, a déjà augmenté de manière significative, et beaucoup prévoient une accélération de cette évolution plutôt qu'un arrêt pur et simple du développement du C et du C++, ce qui semble encore inimaginable dans son intégralité ».
L'abandon du C et du C++ sera « long et difficile », a aussi estimé Josh Aas, directeur exécutif et cofondateur de l’Internet Security Research Group. « Il faut un effort soutenu pour amener les gens à penser autrement, et des communications comme celle-ci contribuent à rappeler l’importance de la sécurité. Pour que le changement se produise, le gouvernement et le secteur privé doivent travailler ensemble pour faire du code sécurisé une priorité », a ajouté le dirigeant. « Il est clair que nous devons écrire et déployer de nouveaux codes, mais pour y parvenir, nous avons besoin de ressources et que des dirigeants à tous les niveaux, du gouvernement au secteur privé, en fassent une priorité », a-t-il insisté. « Les dirigeants concernés doivent être sensibilisés à ce problème et savoir qu'ils seront soutenus s'ils cherchent à le résoudre ».