Logo Zéphyrnet

Le passage aux langages sécurisés pour la mémoire prend de l'ampleur

Date :

L'industrie du logiciel progresse contre un groupe de vulnérabilités pernicieuses qui sont responsables de la grande majorité des attaques critiques, exploitables à distance et dans la nature, ont déclaré cette semaine des experts en sécurité logicielle.

La classe de vulnérabilités - les soi-disant problèmes de sécurité de la mémoire - comprend les dépassements de mémoire tampon et les erreurs d'utilisation après libération et a représenté la majorité des problèmes de sécurité des applications divulgués par les éditeurs de logiciels. Désormais, les dernières données montrent que l'utilisation croissante de langages sécurisés pour la mémoire - tels que Java, C # et, plus récemment, Rust - a entraîné un déclin rapide de toute la classe de vulnérabilités.

La semaine dernière, par exemple, Google a révélé que la dernière version du système d'exploitation Android a plus de nouveau code écrit dans des langages de programmation sécurisés pour la mémoire - tels que Java, Rust et Kotlin - que des langages non sécurisés pour la mémoire tels que C et C ++, ce qui entraîne une baisse des vulnérabilités de sécurité de la mémoire de 223 à 85 au cours des trois dernières années.

"Nous continuons à nous concentrer sur l'élimination de classes entières de vulnérabilités, en nous concentrant d'abord sur les plus graves", déclare Jeffrey Vander Stoep, ingénieur logiciel chez Google. "Alors que les vulnérabilités de sécurité de la mémoire se raréfient, nous prévoyons que la communauté des chercheurs concentrera ses efforts de recherche de vulnérabilités sur d'autres classes de vulnérabilités."

Les vulnérabilités de la sécurité de la mémoire sont dangereuses, selon Google

Les vulnérabilités de la sécurité de la mémoire sont disproportionnellement graves. Source : Google

Pendant des décennies, C et C++ ont été les langages de programmation les plus performants de l'industrie du logiciel. Pourtant, ils ne disposent pas des protections de mémoire des langages plus modernes, tels que C#, Go, Java, Python, Ruby, Rust et Swift. Le résultat? Cinquante-neuf pour cent des applications écrites en C++ présentent des failles de gravité élevée ou critique, contre 9 % pour JavaScript et 10 % pour Python, selon la société de sécurité des applications Veracode. État de la sécurité des logiciels Vol. 11 rapport.

Buffer Overflows et Wormable Flaws

La facilité avec laquelle les programmeurs peuvent créer du code défectueux est devenue un problème majeur pour les grandes sociétés de logiciels. Microsoft, par exemple, a constaté que, jusqu'en 2018, les problèmes de sécurité de la mémoire représentent 70 % des vulnérabilités découverte dans le logiciel de l'entreprise. Dans l'ensemble, les problèmes de sécurité de la mémoire ont représenté 60 % à 70 % de toutes les vulnérabilités dans une grande variété d'écosystèmes, selon Recherche 2020 par l'ingénieur en résilience logicielle Alex Gaynor.

Et parce que les failles peuvent facilement être exploitées pour attaquer les applications, elles sont à l'origine d'un nombre important de compromis, explique Chris Wysopal, directeur de la technologie de Veracode.

"Les problèmes de corruption de mémoire font partie des failles les plus graves car ils permettent souvent aux attaquants d'exploiter avec l'exécution de code, ce qui leur permet de prendre le contrôle total de l'application", dit-il. "Dans le pire des cas, cela permet la création d'un exploit de ver qui peut ensuite attaquer d'autres instances de la vulnérabilité."

In son récent article de blog sur son passage à des langages sécurisés en mémoire pour le développement Android, Google a noté que si les vulnérabilités de sécurité de la mémoire ne représentent désormais que 36 % des problèmes révélés dans Android, elles représentent 86 % des vulnérabilités de sécurité critiques et 89 % des problèmes exploitables à distance.

Passer aux langues sûres

Pour cette raison, Google et d'autres ont exhorté les développeurs à adopter des langages sécurisés pour la mémoire.

Dans le cas de Google, C et C++ représentent désormais un peu moins de la moitié de tout le nouveau code. En fait, Android 13, la dernière version, est la première où la majorité du code a été écrit dans des langages sécurisés en mémoire, avec Rust remplace C et C++ pour de nombreux développeurs. Rust est un langage de programmation efficace axé sur la création de code sécurisé.

Même l'Agence de sécurité nationale est exhortant les entreprises à adopter des langages de programmation sécurisés en mémoire.

Cependant, le passage à une langue sécurisée en mémoire n'est pas suffisant. Bien que les langages rendent plus difficile pour les programmeurs l'écriture de code non sécurisé, chaque langage a un niveau de protection différent. Pour cette raison, la NSA a également recommandé aux développeurs d'utiliser une variété d'outils de sécurité des applications - des options du compilateur aux analyseurs statiques en passant par l'analyse d'exécution - pour renforcer autant que possible les applications.

"Les outils d'analyse logicielle peuvent détecter de nombreux cas de problèmes de gestion de la mémoire et les options d'environnement d'exploitation peuvent également fournir une certaine protection, mais les protections inhérentes offertes par les langages logiciels sécurisés pour la mémoire peuvent prévenir ou atténuer la plupart des problèmes de gestion de la mémoire", indique le rapport de la NSA.

En fin de compte, bien que les langages de programmation sécurisés en mémoire ne constituent pas une solution autonome au problème des vulnérabilités logicielles, ils donnent des conseils aux développeurs qui peuvent alors éviter certaines des erreurs de programmation les plus graves, explique Wysopal de Veracode.

« Il est difficile de généraliser et de dire qu'il y a moins de vulnérabilités dans les langages à mémoire sécurisée puisque la façon dont ils sont utilisés est différente », dit-il. "Mais si vous utilisiez deux langages différents pour accomplir exactement la même tâche, et que l'un était sécurisé en mémoire, vous vous attendriez à moins de vulnérabilités dans celui-ci et généralement à des vulnérabilités moins critiques."

spot_img

Dernières informations

spot_img