Consumer Reports, une organisation à but non lucratif spécialisée dans les tests de produit, a publié un rapport sur la sécurité de la mémoire qui plaide pour que les entreprises abandonnent des langages tels que C et C++ au profit de langages de programmation sûrs pour la mémoire tels que Rust. Le rapport avance que la sécurité de la mémoire a toujours été une source persistante de défauts dans l'industrie du logiciel, mais que de nouveaux langages permettent désormais de se mettre à l'abri de ces bogues dès la phase de conception. Consumer Reports met une fois encore le langage Rust en avant après le plaidoyer de la NSA en novembre.La sécurité de la mémoire est devenue un sujet de premier plan au cours de ces dernières années, les experts estimant que les erreurs de sécurité de la mémoire sont à l'origine de 65 % de tous les bogues. La sécurité de la mémoire fait référence au fait que les langages empêchent certains types d'erreurs liées à la mémoire, telles que les débordements de mémoire tampon, les références de pointeur null et les erreurs d'utilisation après libération de la mémoire, qui peuvent entraîner des pannes, la corruption de données et des failles de sécurité. Au moins deux grandes agences américaines de cybersécurité ont mis en garde récemment contre ses risques.
Voici le problème fondamental : la mémoire doit être allouée pour que le code informatique puisse exécuter des instructions, et certains anciens langages, comme les langages C et C++ vieux de plusieurs décennies, permettent aux développeurs de déplacer cette mémoire manuellement. Cependant, cette liberté crée également un risque, en permettant une variété de bogues. Ces problèmes, appelés erreurs de sécurité de la mémoire, peuvent résulter de simples fautes de frappe et de lignes de code oubliées ou de structures de mémoire complexes et d'interactions imprévues. Ces différents risques ont été pris en compte dans les langages plus récents.
Selon des experts en technologie et des défenseurs des consommateurs, les entreprises devraient utiliser des langages ayant une gestion sécurisée de la mémoire afin de ne pas s'exposer à ces vulnérabilités. Par exemple, Andrew Cornwall, analyste pour le cabinet de recherche et d'étude de marché Forrester Research, a déclaré que dans le cas d'une attaque par débordement de mémoire tampon, un attaquant pourrait, en insérant astucieusement de mauvaises données, prendre le contrôle d'un programme et le réécrire à la volée pour réaliser des actions néfastes. Il estime qu'il s'agit d'une source de vulnérabilités que l'on devrait prendre très au sérieux.
Les langages de programmation plus récents - comme Python, Java et Rust - allouent la mémoire automatiquement. Beaucoup d'entre eux éliminent pratiquement les erreurs de sécurité de la mémoire ou sont conçus pour les rendre impossibles. C'est la raison pour laquelle les experts en cybersécurité demandent aux programmeurs de passer aux langages de programmation plus récents et sûrs pour la mémoire. Les participants à la récente conférence Usenix Enigma 2023, dont des représentants de Consumer Reports et de l'Internet Security Research Group (ISRG), ont approfondi le sujet de la réduction des vulnérabilités liées à la sécurité de la mémoire.
Le rapport de l'événement encourage l'adoption généralisée de langages sûrs pour la mémoire et met en garde contre les risques liés à la sécurité de la mémoire. Josh Aas, cofondateur et directeur exécutif de l'ISRG, a déclaré que les conséquences peuvent être graves telles que des pertes financières et des vols d'identité. « C'est un problème énorme. Lorsque les systèmes hospitaliers ou les services publics sont fermés, et que les gens doivent attendre pour obtenir des soins ou des services, que ce soit à cause d'attaques de logiciels malveillants ou quelque chose comme ça, la sécurité de la mémoire en est souvent la raison », a-t-il déclaré.
Les partisans des langages sûrs pour la mémoire privilégient le l langage Rust. En effet, la plupart des logiciels de base de l'industrie technologique sont écrits en C ou C++. Selon Aas, jusqu'au développement de Rust, il n'existait pas d'alternative viable...
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.