← Derniers articles
💻 computer science

Vulnerability Detection with Interprocedural Context in Multiple Languages: Assessing Effectiveness and Cost of Modern LLMs

Cette étude évalue l'efficacité et le coût de quatre grands modèles de langage modernes pour détecter les vulnérabilités interprocédurales en C, C++ et Python, démontrant que l'inclusion du contexte des fonctions appelantes et appelées améliore la détection, avec Gemini 3 Flash offrant le meilleur compromis coût-performance pour le C et Claude Haiku 4.5 fournissant les explications les plus fiables.

Auteurs originaux : Kevin Lira, Baldoino Fonseca, Davy Baía, Márcio Ribeiro, Wesley K. G. Assunção

Publié 2026-04-10
📖 4 min de lecture☕ Lecture pause café

Auteurs originaux : Kevin Lira, Baldoino Fonseca, Davy Baía, Márcio Ribeiro, Wesley K. G. Assunção

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

🕵️‍♂️ Le Grand Défi : Trouver les failles dans le code

Imaginez que le code informatique est une immense ville remplie de bâtiments (les programmes). Parfois, il y a des portes dérobées ou des fenêtres cassées : ce sont les failles de sécurité (vulnérabilités). Si un voleur les trouve, il peut voler des données ou prendre le contrôle de la ville.

Pour trouver ces failles, les chercheurs ont fait appel à des super-détecteurs intelligents : des Intelligences Artificielles (les LLMs, comme ChatGPT ou Gemini).

🧩 Le Problème : Regarder une seule pièce ou toute la maison ?

Jusqu'à présent, la plupart des détecteurs regardaient une seule pièce d'un bâtiment à la fois pour voir si elle était dangereuse.

  • L'ancienne méthode : "Cette pièce a-t-elle une porte cassée ?"
  • La nouvelle hypothèse : "Et si la porte cassée était dans le couloir, mais que c'est la pièce d'à côté qui l'a laissée ouverte ?"

Les chercheurs se sont demandé : Est-ce que donner plus de contexte au détecteur (en lui montrant les pièces voisines, celles qui appellent la pièce cible ou celles qu'elle appelle) l'aide à mieux trouver les voleurs ?

C'est comme demander à un détective :

  1. "Regarde juste cette pièce." (Contexte seul)
  2. "Regarde cette pièce et celle où le voleur est entré." (Contexte + appelant)
  3. "Regarde cette pièce et celle où le voleur va sortir." (Contexte + appelé)

🧪 L'Expérience : 4 Détecteurs, 3 Langues, 509 Cas

Les chercheurs ont testé 4 détecteurs modernes (Claude Haiku, GPT-4.1 Mini, GPT-5 Mini, Gemini 3 Flash) sur 509 cas réels de failles dans trois langages de programmation différents (C, C++, Python), qui sont comme trois quartiers différents de la ville avec des règles différentes.

Ils ont mesuré deux choses :

  1. L'efficacité : Le détective trouve-t-il le voleur ?
  2. Le prix : Combien coûte l'enquête (en argent et en temps de calcul) ?

📉 Les Résultats Surprenants : "Moins, c'est parfois mieux !"

C'est ici que ça devient intéressant. On pensait que "plus d'informations = meilleur détective". Faux !

  • Le choc : Pour certains détecteurs (surtout les modèles "GPT" de OpenAI), donner trop de contexte a rendu le détective plus bête. C'est comme si on lui donnait un dossier de 1000 pages alors qu'il suffisait de lire 10 pages. Il s'est perdu dans les détails inutiles et a raté le coupable.

    • Exemple : Pour le langage C, donner le contexte des pièces voisines a fait chuter la performance de certains détecteurs de 25 %.
  • Les champions : Deux détecteurs (Claude Haiku et Gemini 3 Flash) sont restés calmes et efficaces, qu'on leur donne une seule pièce ou tout le quartier. Ils savent filtrer l'information inutile.

💰 Le Prix de l'Enquête

Donner plus de contexte coûte cher.

  • Ajouter les pièces voisines a presque doublé la facture (plus de pages à lire = plus de tokens = plus d'argent).
  • Le gagnant du rapport qualité/prix : Gemini 3 Flash. Il est très bon (presque parfait) pour le langage C et coûte moins cher que les autres pour un résultat similaire.
  • Le champion de l'explication : Claude Haiku 4.5. Il ne se contente pas de dire "Il y a un voleur", il explique exactement comment le voleur est entré et comment le chasser, avec une précision incroyable (93,6 % des cas).

🇫🇷 En Résumé : Ce qu'il faut retenir

  1. Ne noyez pas vos détecteurs : Pour certaines IA, donner trop de contexte (les fonctions voisines) les embrouille et les rend moins performantes. Parfois, il vaut mieux se concentrer sur le cœur du problème.
  2. Tout dépend du langage : Ce qui marche pour le langage C ne marche pas forcément pour Python. Il faut adapter sa stratégie.
  3. Le prix compte : Ajouter du contexte coûte cher sans toujours améliorer le résultat. Gemini 3 Flash est le meilleur compromis pour trouver les failles rapidement et pas cher.
  4. L'explication est cruciale : Un bon détective doit savoir pourquoi il a trouvé la faille. Claude Haiku est le meilleur pour rédiger un rapport clair et utile pour les développeurs.

La leçon finale : Pour construire un outil de sécurité parfait, il ne faut pas juste jeter toutes les informations à l'IA. Il faut choisir le bon détective (le bon modèle) et lui donner juste la quantité d'information nécessaire, selon la langue du code.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →