Crédit : whiteMocca/Shutterstock/N.Hanacek/NIST
Nous confions notre vie à un logiciel chaque fois que nous montons à bord d'un avion de haute technologie ou d'une voiture moderne. Un effort de recherche à long terme guidé par deux chercheurs du National Institute of Standards and Technology (NIST) et leurs collaborateurs a développé de nouveaux outils pour rendre ce type de logiciel critique pour la sécurité encore plus sûr.
Enrichir une boîte à outils logicielle existante, la nouvelle création de l'équipe de recherche peut renforcer les tests de sécurité que les éditeurs de logiciels effectuent sur les programmes qui aident à contrôler nos véhicules, exploiter nos centrales électriques et gérer d'autres technologies exigeantes. Bien que ces tests soient souvent coûteux et longs, ils réduisent la probabilité que ce code complexe se bloque car il a reçu une combinaison inattendue de données d'entrée. Cette source de problèmes peut affecter tout progiciel sophistiqué qui doit surveiller et répondre de manière fiable à de multiples flux de données provenant de capteurs et d'opérateurs humains à chaque instant.
Avec la boîte à outils de recherche appelée Tests combinatoires automatisés pour les logiciels, ou ACTES, Les éditeurs de logiciels peuvent s'assurer qu'il n'y a pas de combinaisons d'entrées simultanées qui pourraient provoquer par inadvertance une erreur dangereuse. Comme un parallèle grossier, pensez à un raccourci clavier, comme appuyer sur CTRL-ALT-DELETE pour réinitialiser intentionnellement un système. Le risque avec les logiciels critiques pour la sécurité est que des combinaisons qui créent des conséquences non intentionnelles peuvent exister.
Jusqu'à maintenant, il n'y avait aucun moyen d'être certain que toutes les combinaisons significatives dans les très grands systèmes avaient été testées :une situation risquée. Maintenant, grâce aux avancées de l'équipe de recherche, même un logiciel qui a des milliers de variables d'entrée, dont chacun peut avoir une plage de valeurs, peut être testé à fond.
La boîte à outils ACTS du NIST comprend désormais une version mise à jour de la mesure de la couverture combinatoire (CCM), un outil qui devrait aider à améliorer la sécurité ainsi qu'à réduire les coûts logiciels. L'industrie du logiciel dépense souvent sept à 20 fois plus d'argent pour rendre les logiciels critiques fiables que pour du code plus conventionnel.
Les résultats évalués par des pairs de l'équipe de recherche apparaissent dans deux articles que l'équipe présentera le 23 avril à la conférence internationale IEEE 2019 sur les tests de logiciels, Vérification et Validation à Xi'an, Chine. La recherche comprend des collaborateurs de l'Université du Texas à Arlington, Adobe Systems Inc. et SBA Research en Autriche.
Le mathématicien du NIST Raghu Kacker a déclaré que le CCM représente une amélioration substantielle de la boîte à outils ACTS depuis son dernier ajout majeur en 2015.
"Avant de réviser le CCM, il était difficile de tester un logiciel qui gérait des milliers de variables de manière approfondie, " a déclaré Kacker. " Cette limitation est un problème pour les logiciels modernes complexes du type de ceux qui sont utilisés dans les avions de ligne et les centrales nucléaires, car ce n'est pas seulement hautement configurable, c'est aussi vital. La vie et la santé des gens en dépendent."
Les développeurs de logiciels ont été confrontés à des bogues résultant de combinaisons d'entrées inattendues pendant des décennies, le NIST a donc commencé à étudier les causes des pannes logicielles dans les années 1990 pour aider l'industrie. Il s'est avéré que la plupart des défaillances impliquaient un seul facteur ou une combinaison de deux variables d'entrée :la température et la pression d'un dispositif médical, par exemple, provoquant une réinitialisation du système au mauvais moment. Certains impliquaient jusqu'à six variables d'entrée.
Parce qu'une seule variable d'entrée peut avoir une plage de valeurs potentielles et qu'un programme peut avoir plusieurs de ces variables, il peut être pratiquement impossible de tester toutes les combinaisons imaginables, les testeurs s'appuient donc sur une stratégie mathématique pour éliminer un large éventail de possibilités. Au milieu des années 2000, la boîte à outils NIST pourrait vérifier les entrées dans des combinaisons jusqu'à six voies, éliminant de nombreux risques d'erreur.
"Nos outils ont pris le dessus, mais à la fin, tu te demandes encore à quel point tu as bien fait, à quel point vos tests ont été approfondis, " a déclaré Richard Kuhn, informaticien du NIST, qui a travaillé avec Kacker sur le projet. "Nous avons mis à jour CCM afin qu'il puisse répondre à ces questions."
Les propres outils du NIST étaient capables de gérer des logiciels qui avaient quelques centaines de variables d'entrée, mais SBA Research a développé un autre nouvel outil qui peut examiner les logiciels qui ont jusqu'à 2, 000, générer une suite de tests pour jusqu'à cinq combinaisons de variables d'entrée. Les deux outils peuvent être utilisés de manière complémentaire :alors que le logiciel NIST peut mesurer la couverture des combinaisons d'entrées, l'algorithme SBA peut étendre la couverture à des milliers de variables.
Récemment, Adobe Systems Inc. a contacté le NIST et a demandé de l'aide pour tester en cinq étapes l'un de ses progiciels. Le NIST a fourni à l'entreprise les algorithmes développés par CCM et SBA, qui, ensemble, ont permis à Adobe d'exécuter des tests de fiabilité sur son code qui se sont avérés à la fois réussis et approfondis.
Bien que l'algorithme SBA Research ne fasse pas officiellement partie de la suite de tests ACTS, l'équipe a l'intention de l'inclure à l'avenir. En attendant, Kuhn a déclaré que le NIST mettra l'algorithme à la disposition de tout développeur qui le demande.
« La collaboration a montré que nous pouvons gérer de plus grandes classes de problèmes maintenant, " Kuhn a déclaré. "Nous pouvons appliquer cette méthode à plus d'applications et de systèmes qui étaient auparavant trop difficiles à gérer. Nous invitons toute entreprise intéressée à étendre son logiciel à nous contacter, et nous partagerons toutes les informations dont ils pourraient avoir besoin."