Présentation de CodeMender

Le lancement de modèles d'IA avancés a suscité de vives inquiétudes concernant les failles de code. Les pirates informatiques ont accès à de nouvelles fonctionnalités pour générer des exploits. Les équipes de sécurité sont donc soumises à une pression temporelle immense pour trouver et corriger de manière proactive les failles avant que les pirates ne les exploitent.

CodeMender est un agent de sécurité du code IA capable de détecter, de vérifier et de corriger les failles profondes de votre codebase. CodeMender encapsule un harnais affiné autour d'un LLM, en utilisant des prompts, des compétences et une logique d'orchestration conçus par Google DeepMind pour transformer le modèle en un système agentique spécialisé dans la sécurité du code.

Fonctionnement

CodeMender gère l'échelle et la diversité des environnements d'entreprise modernes, où le code s'étend sur de nombreux langages et types de systèmes :

  • Détectez les failles en analysant votre codebase à l'aide d'un LLM guidé par l'agent, en exploitant des outils spécialisés et le prompt engineering pour concentrer le modèle sur les failles de sécurité. Vous pouvez également importer une liste de failles à partir d'outils d'analyse de sécurité externes.
  • Vérifiez les failles en compilant le code et en essayant d'exploiter les failles détectées pour vérifier si elles sont exploitables. Cela permet de prioriser les failles confirmées et de réduire le taux de faux positifs.
  • Corriger les failles en générant et en testant un correctif compatible avec le langage de votre codebase.

Au cours de ces trois étapes, vous pouvez fournir du contexte à CodeMender pour vous assurer qu'il tient compte des nuances de votre application et de votre modélisation des menaces. Cette combinaison d'un LLM avec le harnais affiné de CodeMender fournit des résultats de meilleure qualité que l'utilisation d'un LLM seul pour identifier et corriger les failles.

Architecture du système

Du point de vue de l'utilisateur, le système CodeMender se compose de deux éléments :

  • Agent : système multi-agent hébergé qui exécute la logique métier et le raisonnement de base.
  • Client : client exécuté sur votre machine, qui agit à la fois comme une CLI (pour émettre des commandes et afficher les résultats) et comme un daemon (pour exécuter des commandes au nom de l'agent, avec une isolation facultative dans un bac à sable local au niveau du processus pour compiler du code, exécuter des tests et vérifier les failles en toute sécurité).

Langages et frameworks pris en charge

CodeMender est compatible par défaut avec les langages suivants : C/C++, C# / .NET, Go, Java, JavaScript et TypeScript, Kotlin, Python, Ruby, Rust et PHP. De plus, il offre une large prise en charge des bibliothèques standards dans ces langages, ainsi que des frameworks d'entreprise courants (tels que HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET et Express).

Les langages de programmation listés ne constituent pas une limite stricte. Comme CodeMender est un agent de sécurité du code IA, il peut analyser et corriger le code dans n'importe quel langage compris par le modèle sous-jacent. L'assistance est généralement disponible pour tous les langages non propriétaires.

Analyse de langages de programmation supplémentaires

Vous pouvez configurer CodeMender pour qu'il recherche des langages de programmation qui ne figurent pas dans son ensemble par défaut de l'une des manières suivantes :

  • Configuration globale : ajoutez l'extension de fichier du langage de programmation à la section scan.extensions.include du fichier de configuration global CodeMender ~/.codemender/config.yaml.
  • Configuration par dépôt : ajoutez l'extension de fichier du langage de programmation à la section scan.extensions.include du fichier de configuration CodeMender config.yaml dans le dépôt.

Par exemple, pour analyser d'autres langues ou formats de script :

scan:
  extensions:
    include:
      # Default languages
      - .py
      - .java
      - .go
      - .js
      - .jsx
      - .mjs
      - .cjs
      - .ts
      - .tsx
      - .c
      - .cc
      - .cpp
      - .cxx
      - .h
      - .hpp
      - .cs
      - .rs
      - .kt
      - .kts
      - .rb
      - .php
      # Additional / custom languages
      - .swift
      - .scala
      - .sh

  # Exclude build, dependency, cache, and artifact directories
  exclude_dirs:
    - node_modules
    - vendor
    - dist
    - bin
    - target
    - obj
    - build
    - .gradle

Pour en savoir plus sur la configuration des options d'analyse, consultez Paramètres de configuration (config.yaml).

Remarque sur la qualité

CodeMender ne publie pas d'évaluations formelles par langage. Les langues par défaut reflètent celles pour lesquelles nous disposons de la plus grande couverture de benchmark. Les résultats pour les autres langues peuvent varier. Si votre organisation a besoin qu'un langage spécifique soit prioritaire pour une évaluation plus approfondie ou une inclusion par défaut, contactez l'équipe chargée de votre compte Google.

Modèles compatibles

CodeMender est compatible avec les modèles suivants :

Cliquez pour développer la liste des modèles compatibles

CodeMender est également compatible avec Gemini 3.8 Flash Cyber et Gemini 4 Argon Cyber Permissive pour les clients qui y ont accès via le programme Fairwind.

Gemini 4 Argon (gemini-4-argon) inclut des fonctionnalités de cybersécurité intégrées qui peuvent bloquer les requêtes impliquant la génération d'exploits ou la vérification des failles. Tout blocage de sécurité sur gemini-4-argon déclenche automatiquement une nouvelle tentative avec Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber), puis revient à Gemini 3.8 Flash (gemini-3.8-flash) si votre projet n'a pas accès à Gemini 3.8 Flash Cyber.

Pour spécifier un modèle lors de l'exécution de commandes de la CLI CodeMender, consultez Spécifier le modèle.

Régions où le service est disponible

CodeMender est disponible dans le monde entier.

Suivre l'utilisation des jetons

CodeMender affiche la consommation de jetons à deux endroits : une ligne d'état en direct pendant l'exécution d'une commande et un résumé d'une ligne lorsqu'une commande se termine correctement. Les nombres couvrent les jetons d'entrée, de sortie et totaux pour la session en cours.

Ligne d'état en direct

Pendant l'exécution de cm find, cm fix, cm verify ou cm session resume, transmettez l'option --compact pour afficher une ligne d'état déroulante qui se met à jour au fur et à mesure que l'agent travaille :

cm find ./src/auth/ --compact

La ligne d'état indique les totaux cumulés des sessions :

Tokens: 40k in / 12k out / 60k total

Les sessions reprises continuent de compter à partir de l'endroit où l'exécution précédente s'est arrêtée. Le nombre de total peut inclure les jetons de raisonnement internes du modèle, et peut donc dépasser in + out.

Résumé de la sortie

Lorsqu'une commande se termine correctement et qu'au moins une étape de l'outil a été exécutée, CodeMender affiche un résumé d'une ligne avec le temps écoulé et le nombre total de jetons :

✅ Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total

Utilisation de jetons facturée

Pour afficher l'utilisation cumulée des jetons facturés et l'évolution des coûts dans votre projet Google Cloud , consultez Afficher les rapports sur la facturation et l'évolution des coûts dans Cloud Billing.

Premiers pas avec la CLI

Configurez l'outil de CLI et initialisez votre espace de travail pour commencer l'analyse.

Prérequis

Avant d'initialiser la CLI CodeMender, assurez-vous que votre environnement est correctement préparé :

  • Configurer le projet Google Cloud  : configurez votre projet Google Cloud avec les API et les rôles IAM requis.
  • Télécharger la CLI CodeMender : téléchargez et installez le binaire de la CLI CodeMender pour votre système d'exploitation.
  • Configurer les identifiants et le projet Google Cloud  : configurez les identifiants par défaut de l'application (ADC) Google Cloud et définissez votre projet cible pour authentifier la CLI.
  • Provisionnez votre code source : clonez ou copiez le code source du projet que vous souhaitez analyser dans votre espace de travail.
  • Configurer le bac à sable : définissez les montages de répertoires, les profils d'accès réseau et les exceptions de sécurité pour l'environnement de bac à sable.

Spécifier le modèle

Par défaut, CodeMender utilise Gemini 3.8 Flash. Pour remplacer le modèle par défaut, transmettez l'option --model avec l'identifiant de modèle correspondant :

  • Gemini 3.8 Flash (par défaut) : --model gemini-3.8-flash
  • Gemini 3.8 Flash Cyber : --model gemini-3.8-flash-cyber
  • Gemini 4 Argon : --model gemini-4-argon
  • Gemini 4 Argon Cyber Permissive : --model gemini-4-argon-cyber-permissive
  • Gemini 3.7 Flash : --model gemini-3.7-flash (retrait le 28 janvier 2027)
  • Gemini 3.6 Flash : --model gemini-3.6-flash (obsolète ; sera retiré le 19 novembre 2026)
  • Gemini 3.5 Flash : --model gemini-3.5-flash
  • Gemini 3.1 Pro (preview) : --model gemini-3.1-pro-preview

Les modèles obsolètes fonctionnent toujours jusqu'à leur date de retrait, et la CLI affiche un avertissement lorsque vous en utilisez un. Une fois qu'un modèle est retiré, les requêtes qui l'utilisent échouent. Passez à Gemini 3.8 Flash avant la date de retrait.

Les commandes suivantes sont compatibles avec l'option --model :

  • cm find
  • cm verify
  • cm fix

Pour spécifier un modèle lors de l'exécution de l'une de ces commandes, utilisez la syntaxe suivante :

cm COMMAND TARGET --model MODEL_NAME

Sécurité et confidentialité des données

Les sections suivantes décrivent le modèle de sécurité, les règles de conservation des données et les contrôles des accès de CodeMender :

Quelles données CodeMender envoie-t-il au cloud ?

Lorsque vous utilisez CodeMender, l'outil CLI local sert d'intermédiaire pour l'accès à votre code. Cela garantit que vous n'importez jamais l'intégralité de vos dépôts de code source sur les serveurs de Google et que l'agent hébergé ne les clone pas de manière indépendante.

Au lieu de cela, la CLI localise strictement les données qu'elle envoie à l'agent hébergé par Google, qui se composent des éléments suivants :

  • Contenu des fichiers ou extraits de code ciblés, informations sur les failles, correctifs proposés et résultats de l'exécution des commandes.
  • Métadonnées, diagnostics, erreurs et télémétrie d'utilisation (comme les jetons consommés et la durée des commandes).

Nous n'utilisons jamais le code source de vos clients pour entraîner les pondérations du modèle sous-jacent.

Quelles sont les règles de conservation ?

CodeMender utilise une règle stricte de conservation des données à court terme :

  • Conservation maximale de sept jours : nous conservons les données de session, y compris les extraits de code et les états de suivi, pendant sept jours maximum dans l'espace de stockage de Gemini Enterprise Agent Platform pour permettre aux utilisateurs de reprendre facilement les analyses interrompues. Après sept jours, le système les supprime automatiquement (voir Zéro conservation des données).
  • Suppression explicite : les clients n'ont pas besoin d'attendre sept jours. Ils peuvent déclencher un nettoyage immédiat de toutes les données de session en appelant DeleteInteraction.
  • Résultats éphémères : nous ne stockons pas les résultats de failles et les correctifs dans des bases de données de longue durée. Ils s'accumulent en mémoire pendant le pipeline.

Qui peut accéder aux données ?

CodeMender utilise une approche "zéro accès aux données" concernant la visibilité humaine :

  • Aucun accès humain : aucun groupe humain ni ingénieur Google n'a accès aux données client en lecture dans l'environnement de production.
  • Aucune visibilité pour les opérateurs : même pour le débogage en production et le suivi des erreurs, les opérateurs Google sont limités et n'ont pas de visibilité sur le contexte du code source du client ni sur les états de session temporaires.
  • Isolation stricte : nous isolons logiquement toutes les données et en contrôlons l'accès par organisation et par projet de facturation client afin de protéger la confidentialité des locataires au sein de notre infrastructure partagée.
  • VPC Service Controls (VPC-SC) : pour protéger davantage votre environnement, l'architecture de CodeMender est entièrement compatible avec VPC-SC. Cela vous permet de définir un périmètre de sécurité sécurisé autour de vos ressources Google Cloud , ce qui contribue à limiter les risques d'exfiltration de données lorsque vos données localisées sont envoyées au moteur de raisonnement cloud.

Étapes suivantes

Pour obtenir des instructions détaillées, consultez les guides suivants :