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:
- Genera un parche candidato con el motor de razonamiento alojado en la nube.
- Aplica el parche a una copia del código fuente dentro de tu zona de pruebas local.
- Compila y prueba la base de código ejecutando el
build.commandconfigurado para garantizar que se compile el proyecto y se aprueben las pruebas de unidades. - 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: Nota: También puedes inhabilitar las solicitudes de confirmación interactivas en tucm fix FINDING_ID -y
config.yamlconfigurandotools.confirm_writes: falseytools.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=falsepara 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 laproject_pathsconfigurada (combínala con--sandbox=falsepara 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 decommand_policy.yamlpara 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