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é à hsolomon@soloreporter.com.

Articles connexes

Le monde selon Hinton: Ralentir l’IA n’est pas la solution

Y a huit mois, Geoffrey Hinton, professeur émérite à...

Corrigez ces vulnérabilités dans des produits VMware et Cisco

Les administrateurs de VMware et de certains appareils de Cisco Systems sont prévenus d'installer des correctifs dès que possible pour corriger des vulnérabilités graves.

DAZZM, une nouvelle plateforme sans code qui veut réinventer la création de logiciels métiers

L’entreprise de Montréal Octopus-ITSM devient DAZZM et lance une nouvelle plateforme sans code qui permet aux organisations de créer des solutions pour entreprises à vive allure, avec une expérience utilisateur optimale. 

Avansai veut révolutionner le recrutement informatique avec sa nouvelle plateforme 

La montréalaise Avansai, une entreprise de recrutement technologique, vient de lancer une nouvelle plateforme permettant aux développeurs logiciels de créer leur profil en ligne.

La plate-forme développement et exploitation CircleCI exhorte les utilisateurs à faire la rotation des codes secrets

Les développeurs d'applications utilisant la plate-forme d'intégration continue CircleCI sont invités à faire la rotation de tous les codes secrets – y compris les mots de passe, les clés d’API et les certificats numériques – stockés dans le système, après la découverte d'un incident de sécurité non spécifié.

Emplois en vedette

Les offres d'emplois proviennent directement des employeurs actifs. Les détails de certaines offres peuvent être soit en français, en anglais ou bilinguqes.