![](https://www.developpez.com/images/logos/securite2.png)
Les vulnérabilités par débordement de tampon sont des "défauts impardonnables", des failles ayant été découvertes dans des produits de Microsoft et de VMware. Les autorités américaines ont exhorté tous les développeurs de logiciels à adopter des pratiques de conception sécurisée (secure by design). Les autorités fédérales veulent que les développeurs cessent de coder des vulnérabilités de débordement de mémoire tampon "impardonnables".
De même que les machines deviennent moins fiables avec l'âge et que les gens développent plus de problèmes de santé avec le temps, il semble que les logiciels soient plus susceptibles d'avoir des failles de sécurité à un stade avancé de leur durée de vie. Un rapport de 2023 a révélé que 70 % des applications présentent au moins une faille de sécurité après 5 ans de production. Le rapport suggérait aux développeurs de donner la priorité à la correction des failles au début du cycle de vie du développement logiciel afin de minimiser les risques causés par l'accumulation des failles.
Récemment, les autorités américaines ont qualifié les vulnérabilités de débordement de mémoire tampon de "défauts impardonnables". Les vulnérabilités de type débordement de mémoire tampon se produisent lorsqu'un logiciel écrit inopinément plus de données dans la mémoire que ce qui a été alloué pour ces données. Les informations supplémentaires se répandent dans d'autres mémoires et les modifient. Des attaquants intelligents peuvent introduire des données soigneusement élaborées dans un logiciel présentant ces bogues afin de détourner le flux du programme et de lui faire faire des choses malveillantes, ou tout simplement de le faire planter.
Dans un avis publié le 12 février, le FBI et la Cybersecurity and Infrastructure Security Agency (CISA) des ont qualifié ces failles de sécurité de la mémoire d'"impardonnables" parce qu'elles peuvent être évitées si les développeurs cessent d'utiliser des pratiques de codage et des langages obsolètes et dangereux. Ils ont notamment signalé la présence de ces failles dans des produits tels que Microsoft et VMware, et ont exhorté tous les développeurs de logiciels à adopter des pratiques de conception sécurisée afin d'éviter d'en créer d'autres.
"La CISA et le FBI maintiennent que l'utilisation de pratiques de développement logiciel peu sûres qui permettent la persistance de vulnérabilités de débordement de mémoire tampon - en particulier l'utilisation de langages de programmation peu sûrs pour la mémoire - pose un risque inacceptable pour notre sécurité nationale et économique", ont écrit les deux agences gouvernementales dans leur alerte de sécurité commune. Les autorités fédérales soulignent que les développeurs peuvent éviter de créer de telles failles en utilisant des langages de codage sans risque pour la mémoire, tels que Rust, Go et Swift.
Ce rapport des autorités américaines vient s'ajouter aux précédents rapports qui confirment la nécessité d'une conception sécurisée. Un rapport de CrowdStrike a révélé que les spécialistes de la cybersécurité n'examinent les principales mises à jour des applications logicielles que dans 54 % des cas. Si le rapport est à prendre avec des pincettes, il montre que plus d'un cinquième des personnes interrogées ont répondu qu'elles n'examinaient les modifications majeures du code que dans moins d'un quart des cas.
Un autre rapport de CyCognito avait révélé que plus de 60 % des entreprises interrogées mettent à jour les applications web toutes les semaines ou plus souvent. En outre, 35 % déclarent être confrontées à un événement de sécurité important impliquant une application web au moins une fois par semaine, tandis que 26 % subissent un incident majeur aussi souvent. Pourtant, les tests sont négligés, près de 75 % des entreprises ne testent leurs applications web qu'une fois par mois ou moins souvent, ce qui laisse plus de 40 % de la surface d'attaque non testée.
Voici le rapport de la CISA et du FBI :
Les cyberacteurs malveillants peuvent utiliser les vulnérabilités de débordement de mémoire tampon pour compromettre les logiciels
Les vulnérabilités de type débordement de tampon sont un type courant de défaut de conception de logiciels de sécurité de la mémoire qui conduit régulièrement à la compromission du système. La Cybersecurity and Infrastructure Security Agency (CISA) et le Federal Bureau of Investigation (FBI) reconnaissent que les vulnérabilités de la sécurité de la mémoire englobent un large éventail de problèmes, dont beaucoup nécessitent beaucoup de temps et d'efforts pour être correctement résolus.
Si tous les types de vulnérabilités liées à la sécurité de la mémoire peuvent être évités en utilisant des langages sans risque pour la mémoire lors du développement, d'autres mesures d'atténuation ne peuvent traiter que certains types de vulnérabilités liées à la sécurité de la mémoire. Quoi qu'il en soit, les vulnérabilités par débordement de mémoire tampon constituent un sous-ensemble bien compris de vulnérabilités de sécurité de la mémoire et peuvent être résolues en utilisant des langages de sécurité de la mémoire et d'autres techniques éprouvées énumérées dans la présente alerte.
Malgré l'existence de mesures d'atténuation efficaces et bien documentées pour les vulnérabilités de débordement de mémoire tampon, de nombreux fabricants continuent d'utiliser des pratiques de développement logiciel peu sûres qui permettent à ces vulnérabilités de persister. Pour ces raisons, ainsi que pour les dommages que l'exploitation de ces défauts peut causer, la CISA, le FBI et d'autres considèrent les vulnérabilités de débordement de mémoire tampon comme des défauts impardonnables.
La CISA et le FBI soutiennent que l'utilisation de pratiques de développement logiciel peu sûres qui permettent la persistance des vulnérabilités de débordement de mémoire tampon - en particulier l'utilisation de langages de programmation peu sûrs pour la mémoire - représente un risque inacceptable pour notre sécurité nationale et économique. Par conséquent, la CISA et le FBI demandent instamment aux fabricants d'utiliser des méthodes de prévention et des mesures d'atténuation éprouvées pour éliminer cette catégorie de défauts, tout en exhortant les clients de logiciels à exiger des fabricants des produits sûrs qui intègrent ces mesures de prévention. La présente alerte décrit des méthodes éprouvées de prévention ou d'atténuation des vulnérabilités par débordement de mémoire tampon, fondées sur les principes de la sécurité dès la conception et sur les meilleures pratiques de développement de logiciels.
Les vulnérabilités par débordement de mémoire tampon (CWE-119) surviennent lorsque des acteurs menaçants accèdent à des informations ou les écrivent dans la mauvaise partie de la mémoire d'un ordinateur (c'est-à-dire en dehors de la mémoire tampon). Ces vulnérabilités peuvent se produire dans deux régions principales de la mémoire dans lesquelles les tampons sont gérés : les débordements basés sur la pile (CWE-121) (alloués sur une pile de mémoire), et les débordements basés sur le tas (CWE-122) (alloués sur un tas de mémoire).
Les vulnérabilités de débordement de mémoire tampon posent de sérieux risques de sécurité, car elles peuvent entraîner la corruption de données, l'exposition de données sensibles, le blocage de programmes et l'exécution de code non autorisé. Les acteurs de la menace exploitent fréquemment ces vulnérabilités pour obtenir un accès initial au réseau d'une organisation, puis se déplacer latéralement vers le réseau plus large. Voici quelques exemples de vulnérabilités de débordement de mémoire tampon :
- CVE-2025-21333
- CVE-2025-0282
- CVE-2024-49138
- CVE-2024-38812
- CVE-2023-6549
- CVE-2022-0185
La CISA et la FBI demandent instamment aux fabricants de prendre des mesures immédiates pour éviter que ces vulnérabilités ne soient introduites dans leurs produits. Les fabricants peuvent prévenir les vulnérabilités de débordement de mémoire tampon en appliquant les pratiques de conception sécurisée énumérées dans la présente alerte. Les cadres supérieurs et les chefs d'entreprise des fabricants de logiciels devraient demander à leurs équipes de développement et de production de documenter les vulnérabilités antérieures en matière de débordement de mémoire tampon et d'indiquer comment ils s'efforcent d'éliminer cette catégorie de défauts.
La CISA et le FBI recommandent également aux clients de logiciels de veiller à ce que les fabricants démontrent qu'ils respectent les pratiques de développement de logiciels sûrs énoncées dans la présente alerte en leur demandant de fournir une nomenclature des logiciels (SBOM) et une attestation de développement de logiciels sûrs.
Pour prévenir les vulnérabilités liées aux débordements de mémoire tampon, la CISA recommande les responsables techniques de mettre en œuvre les pratiques suivantes de sécurisation dès la conception.
- Dans la mesure du possible, utilisez des langages à sécurité mémoire lorsque vous développez des logiciels afin de transférer la charge de la gestion de la mémoire du développeur aux fonctions de sécurité intégrées du langage de programmation.
- Les agences auteurs reconnaissent que la réécriture des bases de code dans des langages à mémoire sécurisée nécessite des efforts importants. Ils recommandent donc aux fabricants d'élaborer et de mettre en œuvre un plan de transition progressif pour accroître l'utilisation de langages sans danger pour la mémoire. Idéalement, ce plan devrait inclure l'utilisation de langages à mémoire sécurisée pour développer de nouveaux codes et - au fil du temps et lorsque cela est possible - la transition du code le plus privilégié/exposé de leur logiciel vers des langages à mémoire sécurisée. Lors de la transition vers des langages à mémoire sécurisée, les fabricants devraient également envisager d'exploiter les technologies pour limiter les vulnérabilités de sécurité mémoire dans leurs bases de code existantes.
- Activer les drapeaux du compilateur qui mettent en œuvre des protections au moment de la compilation et de l'exécution contre les débordements de mémoire tampon (dans toute la mesure du possible compte tenu des exigences de performance de l'application) et mettre en œuvre des canaris qui alertent en cas de débordement.
- Exécuter régulièrement des tests unitaires avec une chaîne d'outils instrumentée telle que AddressSanitizer et MemorySanitizer qui exerce le code source avec des contrôles d'exécution pour les débordements de mémoire tampon et d'autres problèmes de sécurité de la mémoire. Dans une base de code avec une couverture importante de tests unitaires, ces outils peuvent détecter de nombreux (mais pas tous) problèmes liés à la sécurité de la mémoire avant qu'ils ne deviennent une vulnérabilité.
- Effectuer des tests agressifs du produit, y compris l'analyse statique, le fuzzing et les examens manuels (si nécessaire) pour garantir la qualité et la sécurité du code tout au long du cycle de développement.
- Publier une feuille de route sur la sécurité de la mémoire indiquant comment le fabricant prévoit de développer de nouveaux produits avec des langages sans danger pour la mémoire et de migrer le code vers des langages sans danger pour la mémoire selon un ordre de priorité.
- Effectuer une analyse des causes profondes des vulnérabilités passées, y compris les débordements de mémoire tampon, afin de repérer les tendances et les modèles. Dans la mesure du possible, prendre des mesures pour éliminer des catégories entières de vulnérabilités dans l'ensemble des produits, plutôt que les causes superficielles.
Leçons à tirer de la sécurité dès la conception
Les produits sécurisés dès la conception protègent raisonnablement contre les cyberacteurs malveillants qui exploitent les catégories de défauts les plus courantes et les plus dangereuses. L'intégration de la sécurité dès le début du cycle de développement des logiciels (dès la phase de conception et tout au long du développement, de la publication et des mises à jour) réduit la charge pour les clients et le risque pour le public. Malgré cette constatation, les vulnérabilités par débordement de mémoire tampon restent une catégorie courante de défauts.
Dans la mesure du possible, les fabricants devraient s'efforcer d'éliminer ces vulnérabilités en développant de nouveaux logiciels à l'aide de langages à mémoire sécurisée et des meilleures pratiques décrites dans la présente alerte. En outre, l'élimination des vulnérabilités de débordement de mémoire tampon peut contribuer à réduire la prévalence d'autres problèmes de sécurité de la mémoire, tels que les vulnérabilités de type chaîne de format, off-by-one et use-after-free.
Principes de conception sécurisée à suivre
La CISA et le FBI rappellent que les fabricants devraient envisager de s'engager à respecter les trois principes « Secure by Design », élaborés conjointement par 17 agences mondiales de cybersécurité.
[LIST][*]Principe 1 : S'approprier les résultats en matière de sécurité des clients
Les fabricants de logiciels doivent donner la priorité à la sécurité de leurs clients en éliminant les vulnérabilités liées aux débordements de mémoire tampon. Les investissements clés comprennent la fourniture de blocs de construction sécurisés pour les développeurs afin d'éviter les erreurs qui pourraient compromettre la fiabilité et les données des utilisateurs. S'appuyer sur des correctifs après détection n'est pas viable ; au lieu de cela, les fabricants devraient mettre en œuvre les meilleures pratiques pendant le cycle de vie du développement logiciel. Des mesures de protection automatisées devraient empêcher les fonctions dangereuses, tandis que des outils d'analyse statique et des examens rigoureux du code peuvent aider à identifier les failles avant le déploiement. En s'attaquant aux vulnérabilités à la source, les fabricants renforcent la sécurité sans avoir à compter sur les clients pour obtenir des correctifs.
[*]Principe 2 : Adopter une transparence et une responsabilité radicales
Les fabricants doivent privilégier la transparence en divulguant les vulnérabilités de leurs produits. Ils doivent assurer le suivi des vulnérabilités des produits, y compris des produits SaaS (Software-as-a-Service), et les signaler dans le cadre du programme CVE (Common Vulnerabilities and Exposures, ou vulnérabilités et expositions communes). Les enregistrements CVE doivent être complets, précis et opportuns, et complétés par une énumération commune des faiblesses (Common Weakness Enumeration - CWE) appropriée pour faciliter le suivi des classes de d...
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.