Descripción general de CodeMender

El lanzamiento de modelos avanzados de IA generó una preocupación generalizada con respecto a las vulnerabilidades del código. A medida que los atacantes obtienen acceso a nuevas capacidades para generar exploits, los equipos de seguridad se encuentran bajo una inmensa presión para encontrar y corregir vulnerabilidades de forma proactiva antes de que los atacantes las exploten.

CodeMender es un agente de seguridad de código basado en IA que puede encontrar, verificar y corregir vulnerabilidades profundas en tu base de código. CodeMender incluye un arnés optimizado alrededor de un LLM, que usa instrucciones, habilidades y lógica de organización diseñadas por Google DeepMind para convertir el modelo en un sistema basado en agentes especializado en seguridad del código.

Cómo funciona

CodeMender maneja la escala y la diversidad de los entornos corporativos modernos, en los que el código abarca numerosos lenguajes y tipos de sistemas:

  • Encuentra vulnerabilidades analizando tu base de código con un LLM guiado por el agente, aprovechando herramientas especializadas y la ingeniería de instrucciones para enfocar el modelo en las fallas de seguridad. Como alternativa, puedes importar una lista de vulnerabilidades desde herramientas externas de análisis de seguridad.
  • Verifica las vulnerabilidades compilando el código y tratando de aprovechar las vulnerabilidades encontradas para verificar si se pueden explotar. Esto ayuda a priorizar las vulnerabilidades confirmadas y reduce la tasa de falsos positivos.
  • Corrige vulnerabilidades generando y probando un parche que sea compatible con el lenguaje de tu base de código.

Durante las tres etapas, puedes proporcionar contexto a CodeMender para asegurarte de que tenga en cuenta los matices de tu aplicación y tu modelo de amenazas. Esta combinación de un LLM con el agente de seguridad optimizado de CodeMender proporciona resultados de mayor calidad en comparación con el uso de un LLM solo para encontrar y corregir vulnerabilidades.

Arquitectura del sistema

Desde la perspectiva del usuario, el sistema de CodeMender consta de dos componentes:

  • Agente: Es un sistema multiagente alojado que ejecuta la lógica empresarial y el razonamiento principales.
  • Cliente: Es un cliente que se ejecuta en tu máquina y actúa como una CLI (para emitir comandos y ver resultados) y como un daemon (para ejecutar comandos en nombre del agente, con aislamiento opcional dentro de un entorno de pruebas local a nivel del proceso para compilar código, ejecutar pruebas y verificar vulnerabilidades de forma segura).

Lenguajes y marcos de trabajo admitidos

De forma predeterminada, CodeMender admite los siguientes lenguajes: C/C++, C# / .NET, Go, Java, JavaScript y TypeScript, Kotlin, Python, Ruby, Rust y PHP. Además, proporciona una amplia compatibilidad con bibliotecas estándar en estos lenguajes, así como con frameworks empresariales comunes (como HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET y Express).

Los lenguajes de programación que se indican no son un límite estricto. Dado que CodeMender es un agente de seguridad de código basado en IA, puede analizar y corregir código en cualquier lenguaje que comprenda el modelo subyacente. La asistencia está disponible de forma general para cualquier idioma no propietario.

Análisis de lenguajes de programación adicionales

Puedes configurar CodeMender para que analice lenguajes de programación que no se encuentran en su conjunto predeterminado de cualquiera de las siguientes maneras:

  • Configuración global: Agrega la extensión de archivo del lenguaje de programación a la sección scan.extensions.include del archivo de configuración global ~/.codemender/config.yaml de CodeMender.
  • Configuración por repositorio: Agrega la extensión de archivo del lenguaje de programación a la sección scan.extensions.include del archivo de configuración config.yaml de CodeMender en el repositorio.

Por ejemplo, para analizar idiomas o formatos de escritura adicionales, haz lo siguiente:

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 obtener más información sobre cómo configurar las opciones de análisis, consulta Parámetros de configuración (config.yaml).

Nota sobre la calidad

CodeMender no publica evaluaciones formales por idioma. Los idiomas predeterminados reflejan dónde tenemos la mayor cobertura de comparativas. Los resultados en otros idiomas variarán. Si tu organización necesita que se priorice un idioma específico para una evaluación más profunda o para su inclusión predeterminada, comunícate con tu equipo de cuentas de Google.

Modelos compatibles

CodeMender admite los siguientes modelos:

Haz clic para expandir los modelos compatibles

Para especificar un modelo cuando ejecutes comandos de la CLI de CodeMender, consulta Cómo especificar el modelo.

Regiones admitidas

CodeMender está disponible a nivel mundial.

Haz un seguimiento del uso de tokens

CodeMender muestra el consumo de tokens en dos lugares: una línea de estado en tiempo real mientras se ejecuta un comando y un resumen de una línea cuando un comando se completa correctamente. Los recuentos abarcan los tokens de entrada, salida y totales de la sesión actual.

Línea de estado en vivo

Mientras se ejecuta cm find, cm fix, cm verify o cm session resume, pasa la marca --compact para mostrar una línea de estado continua que se actualiza a medida que el agente trabaja:

cm find ./src/auth/ --compact

La línea de estado informa los totales acumulativos de sesiones:

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

Las sesiones reanudadas siguen contando desde donde se detuvo la ejecución anterior. El recuento de total puede incluir los tokens de razonamiento interno del modelo, por lo que puede superar in + out.

Resumen de salida

Cuando un comando finaliza correctamente y se ejecutó al menos un paso de la herramienta, CodeMender imprime un resumen de una línea con el tiempo transcurrido y los totales de tokens:

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

Uso de tokens facturado

Para ver el uso acumulativo de tokens facturados y las tendencias de costos en tu proyecto de Google Cloud , consulta Visualiza los informes de facturación y las tendencias de costos en la Facturación de Cloud.

Comienza a usar la CLI

Configura la herramienta de la CLI y, luego, inicializa tu espacio de trabajo para comenzar el análisis.

Requisitos previos

Antes de inicializar la CLI de CodeMender, asegúrate de que tu entorno esté preparado correctamente:

  • Configura el proyecto Google Cloud : Configura tu proyecto Google Cloud con las APIs y los roles de IAM necesarios.
  • Descarga la CLI de CodeMender: Descarga e instala el objeto binario de la CLI de CodeMender para tu sistema operativo.
  • Configura Google Cloud credenciales: Configura Google Cloud credenciales predeterminadas de la aplicación (ADC) para autenticar la CLI.
  • Aprovisiona tu código fuente: Clona o copia el código fuente del proyecto que deseas analizar en tu espacio de trabajo.
  • Configurar zona de pruebas: Define los puntos de montaje de directorios, los perfiles de acceso a la red y las excepciones de seguridad para el entorno de zona de pruebas.

Cómo especificar el modelo

De forma predeterminada, CodeMender usa Gemini 3.8 Flash. Para anular el modelo predeterminado, pasa la marca --model con el identificador del modelo correspondiente:

  • Gemini 3.8 Flash (predeterminado): --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
  • Versión preliminar de Gemini 3.1 Pro: --model gemini-3.1-pro-preview

Los siguientes comandos admiten la marca --model:

  • cm find
  • cm verify
  • cm fix

Para especificar un modelo cuando ejecutes cualquiera de estos comandos, usa la siguiente sintaxis:

cm COMMAND TARGET --model MODEL_NAME

Seguridad y privacidad de los datos

En las siguientes secciones, se describen el modelo de seguridad, las políticas de retención de datos y los controles de acceso de CodeMender:

¿Qué datos envía CodeMender a la nube?

Cuando usas CodeMender, la herramienta de CLI local media el acceso a tu código, lo que garantiza que nunca subas tus repositorios de código fuente completos a los servidores de Google y que el agente alojado no los clone de forma independiente.

En cambio, la CLI localiza estrictamente los datos que envía al agente alojado en Google, que consta de lo siguiente:

  • Contenido de archivos o fragmentos de código específicos, información sobre vulnerabilidades, parches propuestos y resultados de ejecución de comandos
  • Metadatos, diagnósticos, errores y telemetría de uso (como los tokens consumidos y la duración de los comandos)

Nunca usamos el código fuente de tus clientes para entrenar los pesos del modelo subyacente.

¿Cuál es la política de retención?

CodeMender usa una política de retención de datos estricta y a corto plazo:

  • Retención máxima de 7 días: Conservamos los datos de sesión, incluidos los fragmentos de código y los estados de seguimiento, durante un máximo de 7 días en el almacenamiento de Gemini Enterprise Agent Platform para permitir que los usuarios reanuden sin problemas los análisis interrumpidos. Después de 7 días, el sistema lo borra automáticamente (consulta Retención de datos cero).
  • Borrado explícito: Los clientes no tienen que esperar 7 días, sino que pueden activar una limpieza inmediata de todos los datos de la sesión llamando a DeleteInteraction.
  • Descubrimientos efímeros: No almacenamos los descubrimientos de vulnerabilidades ni los parches en bases de datos de larga duración; se acumulan en la memoria durante la canalización.

¿Quién puede acceder a los datos?

CodeMender usa un enfoque de "cero acceso a los datos" en relación con la visibilidad humana:

  • Sin acceso humano: Ningún grupo de personas ni ingenieros de Google tienen acceso para leer los datos de los clientes en el entorno de producción.
  • Sin visibilidad del operador: Incluso para la depuración de producción y el seguimiento de errores, los operadores de Google están restringidos y no tienen visibilidad del contexto del código fuente del cliente ni de los estados de sesión transitorios.
  • Aislamiento estricto: Aislamos de forma lógica y controlamos el acceso a todos los datos por organización y proyecto de facturación del cliente para proteger la privacidad del arrendatario dentro de nuestra infraestructura compartida.
  • Controles del servicio de VPC (VPC-SC): Para proteger aún más tu entorno, la arquitectura de CodeMender admite por completo los Controles del servicio de VPC (VPC-SC). Esto te permite definir un perímetro de seguridad seguro alrededor de tus recursos de Google Cloud , lo que ayuda a mitigar los riesgos de robo de datos cuando se envían tus datos localizados al motor de razonamiento en la nube.

¿Qué sigue?

Para obtener instrucciones detalladas, consulta las siguientes guías: