L’IA générative s’adapte aussi aux tests de sécurité. Code Intelligence, spécialisée dans ce domaine, vient de se servir d’un grand modèle de langage pour son offre de test automatisé Spark. Celui-ci a pour mission d’évaluer les surfaces d’attaques et de suggérer du code de test. Il s’appuie pour cela sur les capacités d’analyse et de génération de code des LLM. Selon le fournisseur, Spark a été testé pour la première fois dans le cadre du projet OSS-Fuzz de Google, qui vise à garantir une sécurité permanente des projets open source grâce à des tests automatisés en continu.
Un impact sur la cybersécurité
L'émergence rapide de l'IA générative et des LLM a été l'un des plus grands évènements de l'année, et l'impact potentiel de ces technologies sur la cybersécurité a suscité des débats essentiels. Elles ont fait couler beaucoup d'encre en raison des risques qu'elles pourraient présenter pour la sécurité, que ce soit par crainte de partager des informations métiers sensibles avec des algorithmes d'auto-apprentissage avancés ou de voir des acteurs malveillants les utiliser pour renforcer considérablement leurs attaques.
Cependant, les chatbots/LLM d'IA générative peuvent également améliorer la cybersécurité des entreprises à bien des égards, et pourraient apporter une aide précieuse aux équipes de sécurité pour lutter contre les activités cybercriminelles. C'est la raison pour laquelle de nombreux fournisseurs de solutions de sécurité ont intégré cette technologie afin d’améliorer l'efficacité et les capacités de leurs offres.
Des tests en JavaScript/TypeScript, Java, C/C++
« Le fuzzing basé sur le retour d'expérience est l'une des principales méthodes utilisées par les tests alimentés par l'IA », a écrit Code Intelligence dans un article de blog. Cette approche de test s'appuie sur des algorithmes qui améliorent itérativement les cas de test en fonction du degré de couverture du code. Cependant, il faut toujours une expertise humaine pour identifier les points d'entrée et développer manuellement un test. Ainsi, selon Code Intelligence, le développement d'une suite de tests suffisante peut souvent prendre des jours ou des semaines. Le travail manuel nécessaire est un obstacle non négligeable à l'adoption à grande échelle des tests optimisés par l’IA. «
CI Spark exploite les capacités d'analyse et de génération de code de l'IA générative pour automatiser la génération de tests de fuzzing en JavaScript/TypeScript, Java et C/C++ », a encore déclaré le fournisseur. « L’ensemble complet de prompts que nous avons créées guide les LLM pour identifier les fonctions critiques pour la sécurité et générer des tests de fuzzing de haute qualité. Les invites fournissent des instructions sur la manière de générer des tests en optimisant nos moteurs de fuzzing sous-jacents », a encore expliqué l’entreprise. Ils fournissent également les informations nécessaires à CI Spark pour créer des tests qui offrent la couverture de code la plus étendue. CI Spark dispose aussi d’un mode interactif qui permet aux utilisateurs d'interagir rapidement avec lui pour corriger les éventuels faux positifs et améliorer la qualité des tests générés.
Les autres apports
Code Intelligence liste les autres bénéfices de sa solution :
- Identifier automatiquement les candidats au fuzzing, en fournissant une liste de fonctions/méthodes publiques utilisables comme points d'entrée pour ces tests.
- Générer automatiquement des tests qui créent un test de fuzzing pour un candidat sélectionné. Le mode interactif permet de donner des conseils à l'IA pour améliorer la qualité du test généré et corriger les erreurs.
- Améliorer les tests existants pour augmenter la couverture du code.
- Exploiter les tests unitaires existants pour générer des tests de fuzzing de haute qualité pouvant appeler l'API candidate qui servira d'indice pour CI Spark. Ceux-ci fournissent des exemples précieux sur la bonne utilisation de l'API dans les tests et permettent d'obtenir de meilleurs tests de fuzzing.
« Les résultats obtenus par CI Spark sont encourageants et démontrent les apports possibles de l'IA générative dans ce domaine », a déclaré Code Intelligence. Cependant, le fournisseur cherche toujours à améliorer sa solution. D’après sa feuille de route, il prévoit de doter sa solution d’un système plug-and-play pour différents LLM, d’offrir un réglage plus fin du modèle pour améliorer les résultats, d’ajouter une validation automatique des tests de fuzzing, une analyse statique pour les sélections de candidats, l'identification des API insuffisamment testées et la prise en charge de plusieurs langages.