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 entorno 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 candidato de parche 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 tu build.command configurado para garantizar que el proyecto se compile y que las pruebas de unidades se aprueben.
  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 superen todas las verificaciones, CodeMender aplicará el parche verificado a tu espacio de trabajo. Luego, puedes preparar los cambios.

Marcas de corrección

  • Proporciona contexto de 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"
  • Aprobación automática de escrituras (-y / --yes): Se aprueban automáticamente todas las escrituras de archivos y las indicaciones durante el proceso de corrección:
    cm fix FINDING_ID -y
    Nota: También puedes inhabilitar las instrucciones de escritura interactivas de forma global configurando confirm_writes: false en tu config.yaml.
  • Control de zona de pruebas (--sandbox): Habilita o inhabilita explícitamente la zona de pruebas para esta ejecución (por ejemplo, --sandbox=false para inhabilitarla):
    cm fix FINDING_ID --sandbox=false
  • Cómo omitir la zona de pruebas (--unrestricted): Omite temporalmente todas las protecciones de la zona de pruebas para esta ejecución, lo que inhabilita los límites del sistema de archivos y el aislamiento de contenedores a nivel del SO:
    cm fix FINDING_ID --unrestricted
  • Omitir caché (--no-cache): Fuerza a CodeMender a generar un parche nuevo:
    cm fix FINDING_ID --no-cache

Inspecciona y administra las diferencias del VCS local

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

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

    cm vcs status

  • Inspeccionar 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

  • Etapa de cambios: Agrega modificaciones de parches verificados a tu entorno de etapa de pruebas local para que puedas probarlos y confirmarlos.

    cm vcs stage

  • Revert session modifications: Descarta todas las modificaciones de archivos locales que generó CodeMender durante la sesión actual y restablece tu repositorio a su estado inicial.

    cm vcs reset