Une nouvelle boîte à outils pour la sécurité des logiciels améliore la fiabilité des processus existants
Dans une société axée sur la technologie et la communication, la sécurité et la sûreté des logiciels sont devenues des enjeux cruciaux. Financé par l'UE, le projet STANCE s'est attaqué à ce problème. Il s'agissait d'une initiative multidisciplinaire qui a débouché sur de nombreuses avancées scientifiques et technologiques dans le domaine de la sécurité des logiciels. D'une durée de trois ans et demi, le projet a défini, mis en œuvre et distribué une boîte à outils (un ensemble d'outils d'analyse du code source) capable de vérifier les propriétés de sécurité d'applications écrites en C, C++ et Java. En substance, cette boîte à outils rassemble et coordonne le travail des outils d'analyse existants, dont la plateforme Frama-C, le vérificateur VeriFast et un outil de test de logiciel par «fuzzing». Frama-C est une plateforme d'analyse de logiciel qui permet la conception, la mise en œuvre et la diffusion de solutions de vérification formelle. VeriFast, quant à lui, est un analyseur de code source C et Java annoté avec des prédicats écrits en fonction d'une logique de séparation. «L'architecture de STANCE est basée sur les outils d'analyse mentionnés ci-dessus», explique Armand Puccetti, chercheur du projet. «Le projet a développé de nombreux plug-ins destinés à ces outils, leur permettant d'effectuer des analyses de sécurité spécifiques, telles que des analyses de code modulaire.» Selon M. Puccetti, il s'agit d'outils puissants pour vérifier de façon formelle la robustesse des applications sensibles en matière de sécurité. «Le projet STANCE a en outre optimisé l'utilité de ces outils en créant des méthodes permettant de les combiner et de les utiliser dans des études de cas réelles, ainsi que dans le cadre de la certification Critères Communs», ajoute-t-il. Comment ça marche L'outil de STANCE définit des algorithmes permettant de détecter dans le code source des classes bien définies de menaces contre la sécurité. Il atteint cet objectif en utilisant et développant des techniques connues pour analyser la sécurité du code source, y compris des interprétations abstraites, des vérifications déductives et la vérification de modèle. Ces analyses sont ensuite approfondies grâce à des capacités de diagnostic ainsi qu'à des diagnostics et des contre-exemples à base de modèle. Les analyses peuvent également être effectuées en utilisant une analyse dynamique avec injection d'erreurs et génération automatique de jeux de test. À l'issue de cette première phase, l'outil fournit à l'utilisateur une base théorique lui garantissant formellement qu'une partie donnée du logiciel est exempte de tout défaut de sécurité. Une fiabilité améliorée Avec cette boîte à outils et ses méthodes de soutien, le projet STANCE a réussi à améliorer la fiabilité et la rentabilité des processus de sécurité existants. «Grâce à ses travaux, le projet a fait progresser le domaine de l'assurance de la sécurité des logiciels, avec un impact important sur ses aspects juridiques, sociaux et économiques», estime M. Puccetti. «En outre, parmi les nouveaux outils développés dans les plateformes Frama-C et Verifast, plusieurs seront distribués en open source, alors que d'autres resteront à l'état de prototypes, en vue de prochaines recherches.» D'un point de vue économique, les résultats du projet STANCE apporteront un facteur de différenciation stratégique sur le marché aux entreprises utilisant son outil et ses méthodes, avec des avantages à long terme sur les coûts de développement et de maintenance. De manière plus générale, le projet a apporté à la société un nouveau niveau de confiance, une impulsion nécessaire au développement des cyber-technologies. «Le projet STANCE a contribué à la réalisation des stratégies de politique de l'UE en permettant de détecter les failles de sécurité des applications logicielles critiques. Cela signifie que les citoyens européens peuvent avoir confiance en la sécurité des dispositifs pilotés par logiciel», conclut M. Puccetti.
Mots‑clés
STANCE, boîte à outils, code source, C++, java, cyber-sécurité, frama-c, verifast, analyse de code, menaces, diagnostic, logiciel, maintenance, vulnérabilité