Visão geral do CodeMender

O lançamento de modelos avançados de IA gerou uma preocupação generalizada em relação às vulnerabilidades de código. À medida que os invasores ganham acesso a novos recursos para gerar exploits, as equipes de segurança ficam sob imensa pressão para encontrar e corrigir vulnerabilidades de forma proativa antes que os invasores as explorem.

O CodeMender é um agente de segurança de código de IA que pode encontrar, verificar e corrigir vulnerabilidades profundas na sua base de código. O CodeMender envolve um conjunto ajustado em um LLM, usando comandos, habilidades e lógica de orquestração projetados pelo Google DeepMind para transformar o modelo em um sistema de agente especializado em segurança de código.

Como funciona

O CodeMender lida com a escala e a diversidade dos ambientes corporativos modernos, em que o código abrange várias linguagens e tipos de sistema:

  • Encontre vulnerabilidades verificando sua base de código com um LLM guiado pelo agente, usando ferramentas especializadas e engenharia de comandos para focar o modelo em falhas de segurança. Ou importe uma lista de vulnerabilidades de ferramentas externas de verificação de segurança.
  • Verifique as vulnerabilidades criando o código e tentando explorar as vulnerabilidades encontradas para verificar se elas são exploráveis. Isso ajuda a priorizar vulnerabilidades confirmadas e reduz a taxa de falso positivo.
  • Corrija vulnerabilidades gerando e testando um patch compatível com a linguagem da sua base de código.

Durante todas as três etapas, você pode fornecer contexto ao CodeMender para garantir que ele considere as nuances do seu aplicativo e modelo de ameaça. Essa combinação de um LLM com o conjunto ajustado do CodeMender oferece resultados de maior qualidade em comparação com o uso de um LLM sozinho para encontrar e corrigir vulnerabilidades.

Arquitetura do sistema

Da perspectiva do usuário, o sistema CodeMender consiste em dois componentes:

  • Agente: um sistema multiagente hospedado que executa a lógica de negócios e o raciocínio principais.
  • Cliente: um cliente em execução na sua máquina, atuando como uma CLI (para emitir comandos e ver saídas) e um daemon (para executar comandos em nome do agente, com isolamento opcional em uma sandbox local no nível do processo para compilar código, executar testes e verificar vulnerabilidades com segurança).

Idiomas e bibliotecas compatíveis

O CodeMender é compatível com as seguintes linguagens por padrão: C/C++, C# / .NET, Go, Java, JavaScript e TypeScript, Kotlin, Python, Ruby, Rust e PHP. Além disso, ele oferece amplo suporte para bibliotecas padrão nessas linguagens, bem como frameworks corporativos comuns (como HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET e Express).

As linguagens de programação listadas não são um limite rígido. Como o CodeMender é um agente de segurança de código de IA, ele pode analisar e corrigir código em qualquer linguagem entendida pelo modelo subjacente. O suporte está disponível para qualquer linguagem não proprietária.

Verificação de outras linguagens de programação

É possível configurar o CodeMender para verificar linguagens de programação que não estão no conjunto padrão de uma das seguintes maneiras:

  • Configuração global: adicione a extensão do arquivo da linguagem de programação à seção scan.extensions.include do arquivo de configuração global ~/.codemender/config.yaml do CodeMender.
  • Configuração por repositório: adicione a extensão do arquivo da linguagem de programação à seção scan.extensions.include do arquivo de configuração config.yaml do CodeMender no repositório.

Por exemplo, para digitalizar outros idiomas ou formatos 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

Para mais informações sobre a configuração das opções de verificação, consulte Parâmetros de configuração (config.yaml).

Observação sobre a qualidade

O CodeMender não publica avaliações formais por idioma. Os idiomas padrão refletem onde temos mais cobertura de comparativo de mercado. Os resultados em outros idiomas variam. Se sua organização precisar de um idioma específico para avaliação mais detalhada ou inclusão padrão, entre em contato com a equipe da sua Conta do Google.

Modelos compatíveis

O CodeMender é compatível com os seguintes modelos:

Clique para abrir os modelos compatíveis

Para especificar um modelo ao executar comandos da CLI do CodeMender, consulte Especificar o modelo.

Regiões compatíveis

O CodeMender está disponível no mundo todo.

Acompanhar o uso de tokens

O CodeMender mostra o consumo de tokens em dois lugares: uma linha de status em tempo real enquanto um comando é executado e um resumo de uma linha quando um comando é concluído com sucesso. As contagens abrangem tokens de entrada, saída e totais da sessão atual.

Linha de status ao vivo

Enquanto cm find, cm fix, cm verify ou cm session resume estiver em execução, transmita a flag --compact para mostrar uma linha de status contínua que é atualizada à medida que o agente trabalha:

cm find ./src/auth/ --compact

A linha de status informa os totais cumulativos de sessões:

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

As sessões retomadas continuam a contagem de onde a execução anterior parou. A contagem de total pode incluir os tokens de raciocínio interno do modelo, então pode exceder in + out.

Resumo da saída

Quando um comando é concluído com sucesso e pelo menos uma etapa da ferramenta é executada, o CodeMender imprime um resumo de uma linha com o tempo decorrido e os totais de tokens:

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

Uso de tokens faturado

Para conferir o uso cumulativo de tokens faturados e as tendências de custo no seu projeto Google Cloud , consulte Visualizar relatórios de faturamento e tendências de custo no Cloud Billing.

Começar a usar a CLI

Configure a ferramenta CLI e inicialize seu espaço de trabalho para começar a verificação.

Pré-requisitos

Antes de inicializar a CLI do CodeMender, verifique se o ambiente está preparado corretamente:

Especificar o modelo

Por padrão, o CodeMender usa o Gemini 3.8 Flash. Para substituir o modelo padrão, transmita a flag --model com o identificador do modelo correspondente:

  • Gemini 3.8 Flash (padrão): --model gemini-3.8-flash
  • 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
  • Pré-lançamento do Gemini 3.1 Pro: --model gemini-3.1-pro-preview

Os comandos a seguir aceitam a sinalização --model:

  • cm find
  • cm verify
  • cm fix

Para especificar um modelo ao executar qualquer um desses comandos, use a seguinte sintaxe:

cm COMMAND TARGET --model MODEL_NAME

Segurança e privacidade de dados

As seções a seguir descrevem o modelo de segurança, as políticas de retenção de dados e os controles de acesso do CodeMender:

Quais dados o CodeMender envia para a nuvem?

Ao usar o CodeMender, a ferramenta de CLI local medeia o acesso ao seu código, garantindo que você nunca faça upload dos repositórios de código-fonte completos para os servidores do Google e que o agente hospedado não os clone de forma independente.

Em vez disso, a CLI localiza estritamente os dados enviados ao agente hospedado pelo Google, que consistem em:

  • Conteúdo ou snippets de código de arquivos segmentados, informações de vulnerabilidade, patches propostos e resultados da execução de comandos.
  • Metadados, diagnósticos, erros e telemetria de uso (como tokens consumidos e duração do comando).

Nunca usamos seu código-fonte do cliente para treinar os pesos do modelo subjacente.

Qual é a política de retenção?

O CodeMender usa uma política de retenção de dados estrita e de curto prazo:

  • Retenção máxima de 7 dias:mantemos os dados da sessão, incluindo snippets de código e estados de rastreamento, por até 7 dias no armazenamento da Gemini Enterprise Agent Platform para permitir que os usuários retomem sem problemas as verificações interrompidas. Após sete dias, o sistema exclui automaticamente (consulte Retenção de dados zero).
  • Exclusão explícita:os clientes não precisam esperar sete dias. Eles podem acionar uma limpeza imediata de todos os dados da sessão chamando DeleteInteraction.
  • Descobertas temporárias:não armazenamos descobertas de vulnerabilidades e patches em bancos de dados de longa duração. Eles se acumulam na memória durante o pipeline.

Quem pode acessar os dados?

O CodeMender usa uma abordagem de "acesso zero a dados" em relação à visibilidade humana:

  • Sem acesso humano:nenhum grupo de pessoas ou engenheiro do Google tem acesso para ler dados do cliente no ambiente de produção.
  • Sem visibilidade do operador:mesmo para depuração de produção e rastreamento de erros, os operadores do Google são restritos e não têm visibilidade do contexto do código-fonte do cliente ou dos estados de sessão temporários.
  • Isolamento estrito:isolamos logicamente e controlamos o acesso a todos os dados por organização e projeto de faturamento do cliente para proteger a privacidade do locatário na nossa infraestrutura compartilhada.
  • VPC Service Controls (VPC-SC): para proteger ainda mais seu ambiente, a arquitetura do CodeMender oferece suporte total ao VPC Service Controls (VPC-SC). Isso permite definir um perímetro de segurança seguro em torno dos recursos do Google Cloud, ajudando a reduzir os riscos de exfiltração de dados enquanto os dados localizados são enviados para o mecanismo de raciocínio da nuvem.

A seguir

Para instruções detalhadas, consulte os seguintes guias: