La NSA exhorte les développeurs à passer à des langages à mémoire sécurisée

Les développeurs d’applications peuvent réduire les chances que leur code comporte des vulnérabilités de mémoire en passant à un langage moderne, déclare la National Security Agency (NSA) des États-Unis.

Dans un avis, l’agence exhorte les développeurs à envisager d’abandonner C et C++ et de passer à des langages tels que C#, Go, Java, Ruby, Rust et Swift.

Dans ces langages, la mémoire est gérée automatiquement, précise la NSA. Ils ne s’appuient pas sur l’ajout de code par le programmeur pour implémenter la protection de la mémoire.

« Les problèmes de mémoire dans les logiciels représentent une grande partie des vulnérabilités exploitables existantes », note l’agence. Par exemple, dit-elle, une étude de Microsoft a révélé que, de 2006 à 2018, 70 % de leurs vulnérabilités étaient dues à des problèmes de sécurité de la mémoire. Google a également trouvé un pourcentage similaire de vulnérabilités de sécurité de la mémoire sur plusieurs années dans son navigateur Chrome.

Les langages couramment utilisés, tels que C et C++, offrent beaucoup de liberté et de flexibilité dans la gestion de la mémoire, admet l’avis. Mais ils s’appuient également fortement sur le programmeur pour effectuer les vérifications nécessaires sur les références mémoire. « De simples erreurs peuvent conduire à des vulnérabilités exploitables basées sur la mémoire », indique-t-il. Et bien que les outils d’analyse logicielle puissent détecter de nombreux cas de problèmes de gestion de la mémoire et que les options d’environnement d’exploitation puissent également fournir une certaine protection, les protections inhérentes offertes par les langages logiciels à mémoire sécurisée peuvent prévenir ou atténuer la plupart des problèmes de gestion de la mémoire.

« Les langages à mémoire sécurisée offrent différents degrés de protection contre l’utilisation de la mémoire », prévient l’avis, « les défenses de renforcement du code disponibles, telles que les options du compilateur, l’analyse des outils et les configurations du système d’exploitation, doivent également être utilisées pour leurs protections ». Mais, ajoute l’avis, « en utilisant des langages à mémoire sécurisée et des défenses de renforcement du code disponibles, de nombreuses vulnérabilités de la mémoire peuvent être évitées, atténuées ou rendues très difficiles à exploiter par les cybercriminels ».

L’avis répertorie plusieurs problèmes de mémoire courants. L’un est appelé « buffer overflow », où les données sont accessibles en dehors des limites d’un tableau. D’autres problèmes courants concernent l’allocation de mémoire. Les langages peuvent allouer de nouveaux emplacements de mémoire pendant l’exécution d’un programme, puis désallouer la mémoire, également appelée libération ou libération de la mémoire, plus tard lorsque la mémoire n’est plus nécessaire. Mais si cela n’est pas fait avec soin par le développeur, de la nouvelle mémoire peut être allouée encore et encore au fur et à mesure que le programme s’exécute. Par conséquent, la mémoire n’est pas toujours libérée lorsqu’elle n’est plus nécessaire, ce qui pourrait entraîner le programme à manquer de mémoire disponible.

En exploitant les problèmes de mémoire, les cybercriminels peuvent être en mesure d’ajouter des entrées inhabituelles dans le programme, provoquant l’accès, l’écriture, l’allocation ou la désallocation de la mémoire de manière inattendue. Dans certains cas, selon l’avis, un cybercriminel peut exploiter ces erreurs de gestion de la mémoire pour accéder à des informations sensibles, exécuter du code non autorisé ou causer d’autres impacts négatifs.

Ce n’est pas une mince affaire de faire passer une infrastructure de développement logiciel mature d’un langage informatique à un autre, admet la NSA. Les programmeurs qualifiés doivent être formés dans un nouveau langage et il y a une perte d’efficacité lors de l’utilisation d’un nouveau langage. Les programmeurs doivent parcourir une courbe d’apprentissage et se frayer un chemin à travers toutes les erreurs de « débutant ». Alors qu’une autre approche consiste à embaucher des programmeurs compétents dans un langage à mémoire sécurisée, ils auront eux aussi leur propre courbe d’apprentissage pour comprendre la base de code existante et le domaine dans lequel le logiciel fonctionnera.

Mais la NSA estime que le changement est nécessaire.

L’article original (en anglais) est disponible sur IT World Canada, une publication sœur de Direction informatique.

Adaptation et traduction française par Renaud Larue-Langlois.

Howard Solomon
Howard Solomon
Actuellement rédacteur pigiste, Howard est l'ancien rédacteur en chef de ITWorldCanada.com et de Computing Canada. Journaliste informatique depuis 1997, il a écrit pour plusieurs publications sœurs d'ITWC, notamment ITBusiness.ca et Computer Dealer News. Avant cela, il était journaliste au Calgary Herald et au Brampton Daily Times en Ontario. Il peut être contacté à [email protected]

Articles connexes

Le studio Ubisoft de Sherbrooke travaillera sur Assassin’s Creed

Le studio de Sherbrooke du géant du jeu Ubisoft se joindra au développement de la marque Assassin's Creed, annonce-t-il dans un communiqué.

PrestaShop exhorte les administrateurs à mettre à jour l’application

Les administrateurs de sites de commerce électronique utilisant la plate-forme open-source PrestaShop ont été avisés de mettre à jour l'application immédiatement pour éliminer de graves vulnérabilités.

De nombreux produits TO sont « de conception non sécurisés »

Les chercheurs des laboratoires Vedere de Forescout ont voulu montrer à quel point de nombreux systèmes de technologie opérationnelle (TO) connectés à Internet peuvent être peu sûrs.

Correctif de sécurité pour les commutateurs Avaya et Aruba

Après la découverte de cinq vulnérabilités logicielles critiques, les administrateurs de réseau disposant de certains modèles de commutateurs Extreme Networks d’Avaya et HPE d’Aruba dans leur environnement sont invités à mettre à jour les appareils dès que possible.

Quatre des 15 principales vulnérabilités exploitées l’an dernier dataient de plus d’un an

Des vulnérabilités corrigées qui remontent à 2017 sont toujours exploitées par les cybercriminels, selon le dernier rapport des agences de cyberrenseignement au Canada et de ses alliés du Groupe des cinq.