Corrige vulnerabilidades de código y administra las diferencias

CodeMender puede producir, validar y aplicar automáticamente parches de código fuente para vulnerabilidades verificadas, y probarlos en tu zona de pruebas local para evitar regresiones.

Genera correcciones de vulnerabilidades

Usa cm fix para generar un parche de seguridad validado para un hallazgo verificado:

cm fix FINDING_ID

Cuando ejecutas cm fix, CodeMender realiza los siguientes pasos de validación:

  1. Genera un parche candidato con el motor de razonamiento alojado en la nube.
  2. Aplica el parche a una copia del código fuente dentro de tu zona de pruebas local.
  3. Compila y prueba la base de código ejecutando el build.command configurado para garantizar que se compile el proyecto y se aprueben las pruebas de unidades.
  4. Vuelve a ejecutar el exploit de PoC verificado para confirmar que la vulnerabilidad ya no se puede explotar.

De forma predeterminada, CodeMender te solicita que confirmes cada modificación de archivo antes de escribirla en el disco de tu espacio de trabajo. Una vez que se aprueban todas las verificaciones, CodeMender aplica el parche verificado a tu espacio de trabajo. Luego, puedes preparar los cambios.

Marcas de corrección

  • Proporciona contexto para la corrección (-c/--context): Proporciona restricciones de arquitectura o lineamientos de programación:
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • Aprobar automáticamente las solicitudes (-y / --yes): Aprueba automáticamente todas las solicitudes de escritura de archivos y confirmación de comandos durante el proceso de corrección:
    cm fix FINDING_ID -y
    Nota: También puedes inhabilitar las solicitudes de confirmación interactivas en tu config.yaml configurando tools.confirm_writes: false y tools.confirm_commands: false.
  • Controla la zona de pruebas (--sandbox): Habilita o inhabilita de forma explícita la zona de pruebas a nivel del SO para esta ejecución (por ejemplo, --sandbox=false para inhabilitarla):
    cm fix FINDING_ID --sandbox=false
  • Omitir límites de ruta de acceso (--allow-all-paths): Inhabilita la verificación de límites de ruta de acceso del espacio de trabajo para esta ejecución, de modo que las herramientas del agente puedan acceder a rutas de acceso fuera de la raíz del proyecto y de la project_paths configurada (combínala con --sandbox=false para acceder a rutas de acceso del host que no estén activadas dentro de la zona de pruebas):
    cm fix FINDING_ID --allow-all-paths
  • Política de omisión de comandos (--allow-all-commands): Inhabilita la aplicación de la lista de entidades bloqueadas de command_policy.yaml para esta ejecución:
    cm fix FINDING_ID --allow-all-commands
  • Omitir la caché (--no-cache): Obliga a CodeMender a generar un parche nuevo:
    cm fix FINDING_ID --no-cache

Inspecciona y administra las diferencias del VCS local

CodeMender incluye comandos de VCS integrados para ayudarte a inspeccionar, almacenar en etapa intermedia y administrar los cambios de código que introducen los parches antes de confirmarlos:

  • Ver el estado del repositorio: Consulta qué archivos modificó o creó CodeMender en tu espacio de trabajo local.

    cm vcs status

  • Inspecciona las diferencias: Revisa las diferencias unificadas línea por línea de todas las modificaciones de código no confirmadas que generó el agente.

    cm vcs diff

  • Cambios de etapa de pruebas: Agrega modificaciones de parches verificadas a tu entorno de etapa de pruebas local para que puedas probarlas y confirmarlas.

    cm vcs stage

  • Revertir las modificaciones de la sesión: Descarta todas las modificaciones de archivos locales que CodeMender generó durante la sesión actual y restablece el repositorio a su estado de referencia.

    cm vcs reset