Il lancio di modelli di AI avanzati ha suscitato una diffusa preoccupazione in merito alle vulnerabilità del codice. Man mano che gli aggressori ottengono l'accesso a nuove funzionalità per la generazione di 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 che può trovare, verificare e correggere le vulnerabilità profonde nella codebase. CodeMender avvolge un modello LLM con un harness ottimizzato, 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à degli ambienti aziendali moderni, in cui il codice si estende su numerosi linguaggi e tipi di sistema:
- Trova le vulnerabilità eseguendo la scansione della codebase utilizzando un modello LLM guidato dall'agente, sfruttando strumenti specializzati e il prompt engineering per concentrare il modello sui difetti di sicurezza. In alternativa, puoi importare un elenco di vulnerabilità da strumenti di scansione della sicurezza esterni.
- Verifica le vulnerabilità creando il codice e tentando di sfruttare le vulnerabilità trovate per verificare se sono sfruttabili. In questo modo puoi 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 della codebase.
Durante tutte e tre le fasi, puoi fornire il contesto a CodeMender per assicurarti che tenga conto delle sfumature della tua applicazione e della modellazione delle minacce. Questa combinazione di un modello LLM con l'harness ottimizzato di CodeMender fornisce risultati di qualità superiore rispetto all'utilizzo di un modello 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 ospitato che esegue la logica di business e il ragionamento.
- Client: un client in esecuzione sulla tua macchina, che funge sia da CLI (per emettere comandi e visualizzare gli output) sia da daemon (per eseguire comandi per conto dell'agente, con isolamento facoltativo all'interno di una sandbox a livello di processo locale per compilare il codice, eseguire test e verificare le vulnerabilità in modo sicuro).
Linguaggi e framework supportati
Per impostazione predefinita, CodeMender supporta i seguenti linguaggi: 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. Il supporto è generalmente disponibile per qualsiasi linguaggio non proprietario.
Scansione di altri linguaggi di programmazione
Puoi configurare CodeMender per la scansione di linguaggi di programmazione non inclusi nel set predefinito in uno dei seguenti modi:
- Configurazione globale: aggiungi l'estensione del file del linguaggio di programmazione a
la sezione
scan.extensions.includedel 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.includedel file di configurazioneconfig.yamldi CodeMender nel repository.
Ad esempio, per eseguire la scansione di altri linguaggi 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 Configurazione
parametri (config.yaml).
Nota sulla qualità
CodeMender non pubblica valutazioni formali per lingua. Le lingue predefinite riflettono la copertura di benchmark più ampia; i risultati in altre lingue variano. Se la tua organizzazione ha bisogno di dare la priorità a una lingua specifica per una valutazione più approfondita o per l'inclusione predefinita, contatta il team dell'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 riguardano la generazione di exploit o la verifica delle vulnerabilità.
Qualsiasi blocco di sicurezza su gemini-4-argon attiva automaticamente un nuovo tentativo su
Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber) e
poi torna 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 quando esegui i comandi di CodeMender CLI, consulta la sezione Specificare il modello.
Aree geografiche supportate
CodeMender è disponibile a livello globale.
Monitorare l'utilizzo dei token
CodeMender mostra il consumo di token in due punti: una riga di stato live durante l'esecuzione di un comando e un riepilogo di una riga al termine dell'esecuzione di un comando. I conteggi riguardano i token di input, output e totali per la sessione corrente.
Riga di stato live
Durante l'esecuzione di cm find, cm fix, cm verify o cm session resume, passa il flag --compact per visualizzare una riga di stato mobile 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 a contare da dove si era interrotta l'esecuzione precedente. Il conteggio total può includere i token di ragionamento interni del modello, quindi può superare in + out.
Riepilogo di uscita
Al termine dell'esecuzione di un comando e dopo l'esecuzione di 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 fatturati
Per visualizzare l'utilizzo cumulativo dei token fatturati e le tendenze dei costi nel tuo Cloud de Confiance by S3NS progetto, consulta Visualizzare i report sulla fatturazione e le tendenze dei costi in Fatturazione Cloud.
Introduzione all'interfaccia a riga di comando
Configura lo strumento CLI e inizializza il workspace per iniziare la scansione.
Prerequisiti
Prima di inizializzare CodeMender CLI, assicurati che l'ambiente sia preparato correttamente:
- Configura Cloud de Confiance il progetto: configura il tuo Cloud de Confiance progetto con le API e i ruoli IAM richiesti.
- Scarica CodeMender CLI: scarica e installa il file binario di CodeMender CLI per il tuo sistema operativo.
- Configura Cloud de Confiance le credenziali e il progetto: configura Cloud de Confiance le Credenziali predefinite dell'applicazione (ADC) e imposta il progetto di destinazione per autenticare la CLI.
- Provisioning del codice sorgente: clona o copia il codice sorgente del progetto di cui vuoi eseguire la scansione nel workspace.
- Configura la sandbox: definisci i montaggi delle directory, i profili di accesso alla rete e le eccezioni di sicurezza per l'ambiente sandbox.
Specificare il modello
Per impostazione predefinita, CodeMender utilizza Gemini 3.8 Flash. Per sostituire il 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 - Gemini 3.6 Flash:
--model gemini-3.6-flash - Gemini 3.5 Flash:
--model gemini-3.5-flash - Gemini 3.1 Pro (anteprima):
--model gemini-3.1-pro-preview
I seguenti comandi supportano il flag --model:
cm findcm verifycm 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 dell'accesso di CodeMender:
Quali dati invia CodeMender al cloud?
Quando utilizzi CodeMender, lo strumento CLI locale media l'accesso al codice, assicurandoti di non caricare mai i repository di codice sorgente completi sui server di Google e che l'agente ospitato non li cloni in modo indipendente.
Al contrario, la CLI localizza rigorosamente i dati che invia all'agente ospitato da Google, che consiste 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 del modello sottostante.
Quali sono le norme di conservazione?
CodeMender utilizza norme di conservazione dei dati rigorose 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 li elimina automaticamente (vedi Conservazione zero dei dati).
- Eliminazione esplicita: i clienti non devono attendere 7 giorni; possono attivare una pulizia immediata di tutti i dati della sessione chiamando
DeleteInteraction. - Risultati effimeri: non memorizziamo i risultati e le patch delle vulnerabilità in database a 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 di persone o ingegnere di Google ha accesso alla lettura dei dati dei clienti nell'ambiente di produzione.
- Nessuna visibilità dell'operatore: anche per il debug e il monitoraggio degli errori di produzione, gli operatori di Google sono limitati e non hanno visibilità sul contesto del codice sorgente del cliente o sugli stati transitori della sessione.
- Isolamento rigoroso: isoliamo logicamente e controlliamo l'accesso a tutti i dati per organizzazione e 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 i Controlli di servizio VPC (VPC-SC). In questo modo puoi definire un perimetro di sicurezza sicuro attorno alle tue Cloud de Confiance risorse, contribuendo a ridurre i rischi di esfiltrazione di dati quando i dati localizzati vengono inviati al motore di ragionamento cloud.
Passaggi successivi
Per istruzioni dettagliate, consulta le seguenti guide:
- Installare e configurare la CLI
- Eseguire la scansione e verificare le vulnerabilità del codice
- Modalità di ricerca di CodeMender
- Eseguire l'integrazione con CI/CD
- Importare i risultati di sicurezza di terze parti
- Correggere le vulnerabilità del codice e gestire le differenze
- Gestire le sessioni ed esportare i report