Le fuzzing par modèles typés produit de nombreux programmes valides
En termes simples
Les tests logiciels envoient souvent des programmes à des compilateurs et à des bibliothèques pour y chercher des bogues. Mais les programmes générés peuvent être rejetés avant de solliciter des fonctions plus profondes.
Typed Template Fuzzing demande à un modèle de langage de baliser les types et les variables disponibles dans des programmes d’exemple, puis Typos modifie les parties balisées en rétablissant le texte d’origine autour d’elles.
Dans les nombreux langages testés, Typos a produit surtout des entrées acceptées. Au cours d’une campagne de six mois, les auteurs ont signalé 135 bogues, dont 128 qui n’avaient pas été découverts auparavant. Ces résultats concernent les systèmes testés, et non tous les programmes ou tous les langages.
La recherche
Pour les compilateurs et les bibliothèques aux formats d’entrée complexes, un fuzzer général peut-il générer des programmes acceptés par le logiciel sans demander à des spécialistes de créer des analyseurs et des vérificateurs de types pour chaque langage ?
Les entrées rejetées ne peuvent pas solliciter les fonctions plus profondes que le fuzzing cherche à tester.
Typed Template Fuzzing transforme des programmes de départ en modèles typés réparés, que Typos mute pour produire des entrées acceptées par le logiciel sans analyseurs propres à chaque langage.
Typos demande d’abord à un LLM d’annoter des programmes de départ, puis rétablit le texte d’origine autour des annotations et mute les parties compatibles.
Au cours d’une campagne de six mois sur 27 cibles réparties entre 21 langages, les auteurs ont signalé 135 bogues, dont 128 qui n’avaient pas été découverts auparavant.
Sur une période de sept jours, le taux de validité moyen de Typos a atteint 96 % sur les 27 systèmes.
La validité est la part des mutants uniques acceptés avec un code de sortie nul. Ensemble, les résultats de la campagne montrent que Typos a généré de nombreuses entrées exploitables et détecté des bogues dans les systèmes sélectionnés.
Ces résultats portent sur les cibles et les expériences sélectionnées. Les auteurs indiquent que le choix des cibles limite la portée de leur généralisation, et que des erreurs dans les termes balisés par le LLM peuvent encore affecter les modèles.
Analyse
Détails
- Auteurs de l’article original
- Lu Maltsis, Dominik Winterer
- Soumis à arXiv
- Licence
- CC BY 4.0