Panoramica di CodeMender

Il lancio di modelli di AI avanzati ha suscitato una diffusa preoccupazione in merito alle vulnerabilità del codice. Poiché gli aggressori ottengono l'accesso a nuove funzionalità per generare exploit, i team di sicurezza sono sottoposti a un'immensa pressione temporale per trovare e correggere in modo proattivo le vulnerabilità prima che gli aggressori le sfruttino.

CodeMender è un agente di sicurezza del codice AI in grado di trovare, verificare e correggere le vulnerabilità più profonde nel tuo codebase. CodeMender avvolge un LLM con un'imbracatura ottimizzata, utilizzando prompt, competenze e logica di orchestrazione progettati da Google DeepMind per trasformare il modello in un sistema agentico specializzato nella sicurezza del codice.

Come funziona

CodeMender gestisce la scalabilità e la diversità dei moderni ambienti aziendali, in cui il codice comprende numerosi linguaggi e tipi di sistemi:

  • Trova le vulnerabilità analizzando il codebase utilizzando un LLM guidato dall'agente, sfruttando strumenti specializzati e il prompt engineering per concentrare il modello sulle falle di sicurezza. In alternativa, puoi importare un elenco di vulnerabilità da strumenti di analisi della sicurezza esterni.
  • Verifica le vulnerabilità creando il codice e tentando di sfruttare le vulnerabilità trovate per verificare se sono sfruttabili. In questo modo è possibile dare la priorità alle vulnerabilità confermate e ridurre il tasso di falsi positivi.
  • Correggi le vulnerabilità generando e testando una patch compatibile con il linguaggio del tuo codebase.

Durante tutte e tre le fasi, puoi fornire un contesto a CodeMender per assicurarti che tenga conto delle sfumature della tua applicazione e della modellazione delle minacce. Questa combinazione di un LLM con l'harness ottimizzato di CodeMender fornisce risultati di qualità superiore rispetto all'utilizzo di un LLM da solo per trovare e correggere le vulnerabilità.

Architettura di sistema

Dal punto di vista dell'utente, il sistema CodeMender è costituito da due componenti:

  • Agente: un sistema multi-agente in hosting che esegue la logica di business e il ragionamento principali.
  • Client: un client in esecuzione sulla tua macchina, che funge sia da interfaccia a riga di comando (per inviare comandi e visualizzare gli output) sia da daemon (per eseguire comandi per conto dell'agente, con isolamento facoltativo all'interno di una sandbox locale a livello di processo per compilare il codice, eseguire test e verificare le vulnerabilità in sicurezza).

Linguaggi e framework supportati

CodeMender supporta i seguenti linguaggi per impostazione predefinita: C/C++, C# / .NET, Go, Java, JavaScript e TypeScript, Kotlin, Python, Ruby, Rust e PHP. Inoltre, fornisce un ampio supporto per le librerie standard all'interno di questi linguaggi, nonché per i framework aziendali comuni (come HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET ed Express).

I linguaggi di programmazione elencati non sono un limite rigido. Poiché CodeMender è un agente di sicurezza del codice AI, può analizzare e correggere il codice in qualsiasi linguaggio compreso dal modello sottostante. In genere, l'assistenza è disponibile per qualsiasi linguaggio non proprietario.

Scansione di altri linguaggi di programmazione

Puoi configurare CodeMender in modo che esegua la scansione dei linguaggi di programmazione che non fanno parte del suo set predefinito in uno dei seguenti modi:

  • Configurazione globale: aggiungi l'estensione del file del linguaggio di programmazione alla sezione scan.extensions.include del file di configurazione globale di CodeMender ~/.codemender/config.yaml.
  • Configurazione per repository: aggiungi l'estensione del file del linguaggio di programmazione alla sezione scan.extensions.include del file di configurazione config.yaml di CodeMender nel repository.

Ad esempio, per scansionare altre lingue o formati di 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

Per ulteriori informazioni sulla configurazione delle opzioni di scansione, consulta Parametri di configurazione (config.yaml).

Nota sulla qualità

CodeMender non pubblica valutazioni formali per linguaggio. Le lingue predefinite riflettono quelle per cui abbiamo la maggiore copertura di benchmark; i risultati in altre lingue varieranno. Se la tua organizzazione ha bisogno di dare priorità a una lingua specifica per una valutazione più approfondita o per l'inclusione predefinita, contatta il team dedicato al tuo Account Google.

Modelli supportati

CodeMender supporta i seguenti modelli:

Fai clic per espandere i modelli supportati

CodeMender supporta anche Gemini 3.8 Flash Cyber e Gemini 4 Argon Cyber Permissive per i clienti con accesso tramite il programma Fairwind.

Gemini 4 Argon (gemini-4-argon) include funzionalità di sicurezza informatica integrate che potrebbero bloccare le richieste che comportano la generazione di exploit o la verifica delle vulnerabilità. Qualsiasi blocco di sicurezza su gemini-4-argon attiva automaticamente un nuovo tentativo con Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber) e poi esegue il fallback a Gemini 3.8 Flash (gemini-3.8-flash) se il tuo progetto non ha accesso a Gemini 3.8 Flash Cyber.

Per specificare un modello durante l'esecuzione dei comandi dell'interfaccia a riga di comando di CodeMender, consulta Specifica del modello.

Aree geografiche supportate

CodeMender è disponibile a livello globale.

Monitora l'utilizzo dei token

CodeMender mostra il consumo di token in due punti: una riga di stato in tempo reale durante l'esecuzione di un comando e un riepilogo di una riga al completamento di un comando. I conteggi coprono i token di input, di output e totali per la sessione corrente.

Riga di stato in tempo reale

Mentre cm find, cm fix, cm verify o cm session resume è in esecuzione, passa il flag --compact per visualizzare una riga di stato scorrevole che si aggiorna man mano che l'agente lavora:

cm find ./src/auth/ --compact

La riga di stato riporta i totali cumulativi della sessione:

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

Le sessioni riprese continuano il conteggio da dove si era interrotta l'esecuzione precedente. Il conteggio di total potrebbe includere i token di ragionamento interni del modello, quindi può superare in + out.

Esci dal riepilogo

Quando un comando viene completato correttamente e viene eseguito almeno un passaggio dello strumento, CodeMender stampa un riepilogo di una riga con il tempo trascorso e i totali dei token:

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

Utilizzo dei token fatturato

Per visualizzare l'utilizzo cumulativo dei token fatturati e le tendenze dei costi nel tuo progetto Google Cloud , consulta Visualizza i report sulla fatturazione e le tendenze dei costi nella fatturazione Cloud.

Inizia a utilizzare l'interfaccia a riga di comando

Configura lo strumento CLI e inizializza l'area di lavoro per avviare l'analisi.

Prerequisiti

Prima di inizializzare l'interfaccia a riga di comando di CodeMender, assicurati che l'ambiente sia preparato correttamente:

Specifica del modello

Per impostazione predefinita, CodeMender utilizza Gemini 3.8 Flash. Per eseguire l'override del modello predefinito, passa il flag --model con l'identificatore del modello corrispondente:

  • Gemini 3.8 Flash (predefinito): --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 (ritiro il 28 gennaio 2027)
  • Gemini 3.6 Flash: --model gemini-3.6-flash (deprecato; verrà ritirato il 19 novembre 2026)
  • Gemini 3.5 Flash: --model gemini-3.5-flash
  • Gemini 3.1 Pro (anteprima): --model gemini-3.1-pro-preview

I modelli deprecati continuano a funzionare fino alla data di ritiro e l'interfaccia a riga di comando stampa un avviso quando ne utilizzi uno. Dopo il ritiro di un modello, le richieste che lo utilizzano non vanno a buon fine. Passa a Gemini 3.8 Flash prima della data di ritiro.

I seguenti comandi supportano il flag --model:

  • cm find
  • cm verify
  • cm fix

Per specificare un modello quando esegui uno di questi comandi, utilizza la seguente sintassi:

cm COMMAND TARGET --model MODEL_NAME

Sicurezza e privacy dei dati

Le sezioni seguenti descrivono il modello di sicurezza, le policy sulla conservazione dei dati e i controlli degli accessi di CodeMender:

Quali dati invia CodeMender al cloud?

Quando utilizzi CodeMender, lo strumento CLI locale media l'accesso al tuo codice, assicurando che non carichi mai i repository di codice sorgente completi sui server di Google e che l'agente ospitato non li cloni in modo indipendente.

Invece, l'interfaccia a riga di comando localizza rigorosamente i dati che invia all'agente ospitato da Google, che consistono in:

  • Contenuti di file o snippet di codice mirati, informazioni sulle vulnerabilità, patch proposte e risultati dell'esecuzione dei comandi.
  • Metadati, diagnostica, errori e telemetria di utilizzo (ad esempio token consumati e durata dei comandi).

Non utilizziamo mai il codice sorgente dei clienti per addestrare i pesi dei modelli sottostanti.

Quali sono le norme di conservazione?

CodeMender utilizza una policy sulla conservazione dei dati rigorosa e a breve termine:

  • Conservazione massima di 7 giorni: conserviamo i dati della sessione, inclusi gli snippet di codice e gli stati di monitoraggio, per un massimo di 7 giorni nello spazio di archiviazione di Gemini Enterprise Agent Platform per consentire agli utenti di riprendere senza problemi le scansioni interrotte. Dopo 7 giorni, il sistema lo elimina automaticamente (consulta Conservazione dei dati pari a zero).
  • Eliminazione esplicita: i clienti non devono attendere 7 giorni, ma possono attivare una pulizia immediata di tutti i dati della sessione chiamando DeleteInteraction.
  • Risultati temporanei: non archiviamo i risultati e le patch delle vulnerabilità in database di lunga durata; si accumulano in memoria durante la pipeline.

Chi può accedere ai dati?

CodeMender utilizza un approccio "Zero-Data-Access" per quanto riguarda la visibilità umana:

  • Nessun accesso umano: nessun gruppo umano o ingegnere di Google ha accesso ai dati dei clienti nell'ambiente di produzione.
  • Nessuna visibilità per gli operatori: anche per il debug di produzione e il monitoraggio degli errori, gli operatori Google sono soggetti a restrizioni e non hanno visibilità sul contesto del codice sorgente del cliente o sugli stati delle sessioni temporanee.
  • Isolamento rigoroso: isoliamo logicamente e controlliamo l'accesso a tutti i dati in base all'organizzazione e al progetto di fatturazione del cliente per proteggere la privacy dei tenant all'interno della nostra infrastruttura condivisa.
  • Controlli di servizio VPC (VPC-SC): per proteggere ulteriormente il tuo ambiente, l'architettura di CodeMender supporta completamente VPC-SC. In questo modo puoi definire un perimetro di sicurezza sicuro attorno alle tue risorse Google Cloud , contribuendo a mitigare eventuali rischi di esfiltrazione di dati quando i tuoi dati localizzati vengono inviati al motore di ragionamento cloud.

Passaggi successivi

Per istruzioni dettagliate, consulta le seguenti guide: