La nouvelle méthode SecureForge vise à réduire les failles de sécurité dans le code généré par les grands modèles de langage. Des chercheurs de l'Université Stanford ont démontré qu'une optimisation automatique des invites système pouvait considérablement réduire la proportion de code Python vulnérable, sans pour autant affecter sa fonctionnalité.

Les grands modèles de langage sont de plus en plus utilisés dans le développement logiciel, mais leurs résultats ne sont pas toujours sûrs. Même un code fonctionnel peut contenir des vulnérabilités qui pourraient être exploitées par un attaquant.

Une équipe de chercheurs dirigée par Houjun Liu, Lisa Einstein et John Jang a donc développé SecureForge. Cette méthode modifie automatiquement les invites système, c'est-à-dire les instructions de base que le modèle suit lors de la génération de code.

La recherche a montré qu'une simple instruction du type "écrivez un code sûr" ne suffit pas. Le modèle peut respecter partiellement cette instruction et générer malgré tout un code vulnérable aux attaques par injection SQL ou à d'autres types d'attaques courants.

SecureForge utilise donc un processus de test itératif. Le modèle reçoit d'abord une tâche de programmation réaliste et génère du code. Ce code est ensuite analysé par un analyseur statique, Semgrep. Si le programme détecte un problème de sécurité, un autre modèle de langage propose une modification de l'invite système, et tout le processus se répète.

Les chercheurs se sont basés sur la base de données MITRE Common Weakness Enumeration, qui contient des types connus de vulnérabilités logicielles. Ils ont créé, à partir de 25 catégories importantes de failles de sécurité, des tâches réalistes et formulées couramment pour le développement en Python.

Parmi les exemples, on trouve une tâche consistant à créer une fonction qui recherche un utilisateur par son nom dans une base de données SQLite. Une telle tâche peut entraîner une erreur d'injection SQL si elle n'est pas correctement traitée, même si la tâche ne mentionne explicitement aucune vulnérabilité.

Les auteurs ont initialement collecté 500 tâches qui conduisaient à la création de code vulnérable. Ils ont conservé la moitié pour l'évaluation finale et ont progressivement étendu l'autre moitié à environ 80 000 variantes.

Pour optimiser les invites, ils ont utilisé un algorithme génétique appelé GEPA. Cet algorithme testait itérativement différentes versions des instructions système, évaluait les erreurs détectées et proposait des modifications.

SecureForge a été testé sur différents modèles, notamment CodeLlama 7B, Qwen2.5-Coder, Qwen3, Kimi K2, Claude Sonnet 4.6 et plusieurs modèles de la série GPT.

Les résultats ont montré une amélioration significative. Avec SecureForge, le pourcentage de programmes contenant des failles de sécurité était en moyenne de 11,8 %, contre 20,1 % avec une instruction standard demandant un code sûr.

Pour GPT-5.4, le taux d'erreur est passé de 15,8 % à 10,1 %. Pour GPT-5.4 Mini, il a diminué de 21,4 % à 12,4 %, et pour GPT-5.4 Nano, de 22,1 % à 15,6 %.

Cette méthode présente toutefois certaines limites. Elle a été optimisée principalement pour les classes de vulnérabilités déjà connues. Il n'est donc pas encore clair dans quelle mesure elle sera efficace pour se protéger contre de nouveaux problèmes de sécurité ou ceux qui n'ont pas encore été décrits.

SecureForge montre néanmoins une des voies possibles pour améliorer la sécurité des assistants de programmation basés sur l'intelligence artificielle. Les mêmes modèles qui peuvent détecter les vulnérabilités peuvent, en cas de mauvaise configuration, créer de nouvelles erreurs.

deeplearning.ai/gnews.cz - GH