CodeMender realiza un seguimiento de cada intento de análisis, verificación y corrección como una sesión con estado respaldada por una base de datos SQLite local (state.db). Puedes inspeccionar las sesiones activas, reanudar las tareas pausadas y exportar informes detallados de los resultados.
Administración de las sesiones
La CLI de CodeMender mantiene sesiones de ejecución con estado de forma local, lo que te permite hacer un seguimiento de las tareas activas, reanudar flujos de trabajo interrumpidos y exportar informes de seguridad.
Enumera las sesiones activas y anteriores
Ejecuta el siguiente comando para enumerar todas las sesiones, sus estados (RUNNING, WAITING_FOR_TOOL, COMPLETED, FAILED, CANCELLED) y las rutas de destino:
cm session list
Cómo reanudar una sesión interrumpida
Si una sesión se pausa debido a una interrupción de la red o a una falla en el paso, reanúdala desde la etapa del punto de control más reciente:
cm session resume SESSION_ID
Cómo cancelar una sesión en ejecución
Para finalizar una sesión activa y detener la ejecución del procesamiento del agente de backend, haz lo siguiente:
cm session cancel SESSION_ID
Cómo ver informes y exportar parches
Muestra los resultados de la sesión, los estados de verificación y los detalles de los parches con cm report.
Formatos de salida
Tabla de terminal (predeterminada)
Es una lista resumida de los hallazgos.
cm reportInforme HTML
Genera un informe HTML con formato. Usa --open (o -o) para iniciarlo automáticamente en tu navegador predeterminado.
cm report --format html --open
Markdown
Genera un informe en Markdown compatible con GitHub.
cm report --format md
JSON
Exporta todos los detalles de los hallazgos de la sesión como JSON sin procesar.
cm report --format json
SARIF
Exporta los resultados en formato SARIF estándar (v2.1.0) para la integración con otras herramientas de seguridad.
cm report --format sarif
Cómo filtrar y ordenar marcas
- Mostrar parches de código propuestos (
--patches): Incluye diffs unificados completos de las correcciones generadas en el informe.bash cm report --patches - Filtrar por gravedad (
--severity): Consulta los resultados que coinciden con un nivel (CRITICAL,HIGH,MEDIUM,LOW).bash cm report --severity HIGH - Filtrar por estado (
--status): Consulta los resultados que coinciden con un estado (OPEN,FIXED,DISMISSED,REOPENED).bash cm report --status OPEN - Filtrar por sesión (
--session): Consulta los resultados de un prefijo de ID de sesión específico.cm report --session SESSION_ID_PREFIX
- Mostrar artefactos del agente (
--artifacts): Incluye rutas de acceso a artefactos de ejecución generados por el agente (como registros y secuencias de comandos de exploit).bash cm report --artifacts - Ordenar los resultados (
--sort): Ordena los resultados porseverity(predeterminado) otime.bash cm report --sort time - Filtrar por ID de hallazgo: Pasa un ID de hallazgo específico (o prefijo) como argumento posicional para ver los detalles de un solo hallazgo.
cm report FINDING_ID_PREFIX
Estados de los hallazgos de vulnerabilidades
CodeMender hace un seguimiento de los hallazgos en los siguientes estados de vulnerabilidad:
OPEN- Qué significa: La vulnerabilidad se detectó correctamente durante un análisis (o se importó desde una herramienta de terceros), pero aún no se verificó, corrigió ni marcó como inactiva.
- Cómo se maneja: Este es el estado inicial de cualquier falla de seguridad recién descubierta. Las vulnerabilidades en el estado
OPENse ponen en cola de forma activa para su verificación (cm verify) o aplicación de parches (cm fix).
FIXED- Qué significa: CodeMender generó un parche para la vulnerabilidad, aplicó el diff a tu base de código local y compiló y ejecutó correctamente pruebas de verificación para demostrar que el exploit ya no tiene éxito.
- Cómo se maneja: Una vez que se confirma que un parche resuelve el problema sin interrumpir la lógica del código existente, CodeMender cambia el hallazgo a
FIXED. Permanecerá en este estado, a menos que un análisis futuro detecte una regresión.
DISMISSED- Qué significa: La vulnerabilidad se designa como inactiva porque se identificó como un falso positivo o ya se corrigió, o bien el hallazgo no tiene la suficiente confianza para confirmarse como explotable (incluso en relación con el modelo de amenazas de tu proyecto, si se proporcionó uno durante la incorporación).
- Cómo se maneja: Marcar un elemento como
DISMISSEDsilencia las alertas futuras y excluye el hallazgo de tu resultado activo de la CLI concm report --status OPEN. Si vuelves a ejecutarcm verifyen un hallazgo descartado, se vuelven a examinar o restablecer los elementos descartados.
REOPENED- Qué significa: Se volvió a detectar una vulnerabilidad que se había marcado como
FIXEDoDISMISSEDen un análisis posterior del código base. - Cómo se maneja: Este estado indica una regresión (como una mala combinación de git que revierte el parche) o una estrategia de mitigación fallida. Marca el problema para una reevaluación inmediata y requiere que los desarrolladores revisen el proceso de aplicación de parches.
- Qué significa: Se volvió a detectar una vulnerabilidad que se había marcado como
Niveles de gravedad de las vulnerabilidades
CodeMender categoriza los hallazgos en los siguientes niveles de gravedad:
CRITICAL- Qué significa: La vulnerabilidad representa un riesgo grave e inmediato para tu aplicación o infraestructura subyacente, lo que podría provocar que se vea comprometido todo el sistema.
- Por qué se categoriza como Crítico: Cumple con los umbrales de impacto de alta consecuencia (como la ejecución remota de código o las escrituras a nivel de la raíz), se puede acceder directamente desde límites no confiables sin requisitos previos y se respalda con un análisis de flujo de datos de alta confianza o una prueba de concepto (PoC) validada que se ejecuta dentro del sandbox de CodeMender.
HIGH- Qué significa: La vulnerabilidad representa una falla de seguridad grave que podría provocar el control no autorizado del sistema, la elevación de privilegios o la exposición de datos significativa, pero requiere condiciones específicas para ejecutarse.
- Por qué se categoriza como Alta: Si bien el impacto de la explotación es alto (por ejemplo, lecturas arbitrarias de la base de datos o secuestro administrativo), la capacidad de explotación está ligeramente restringida. Es posible que un atacante deba tener autenticación de usuario estándar, depender de una configuración específica del sistema o requerir una cadena de acciones muy precisa.
MEDIUM- Qué significa: La vulnerabilidad presenta un riesgo moderado, ya que, por lo general, expone datos restringidos o permite interrupciones localizadas, pero representa un riesgo bajo para el sistema host.
- Por qué se categoriza como media: La explotación está muy limitada por la accesibilidad o la complejidad. Por lo general, requiere interacción activa del usuario (como hacer clic en un vínculo malicioso), privilegios profundos o condiciones complejas para eludir las capas defensivas, y su área afectada final está restringida.
LOW- Qué significa: El hallazgo representa un riesgo de seguridad menor o una falta general de higiene de defensa en profundidad que no presenta una amenaza inmediata por sí sola.
- Por qué se clasifica como Baja: Presenta una explotabilidad extremadamente baja o un impacto mínimo. Por lo general, los atacantes usan el hallazgo para el reconocimiento o la huella digital de la configuración, en lugar de para la vulneración directa, y no se puede usar para ejecutar código arbitrario ni filtrar datos sensibles de la aplicación.
Mantenimiento de Workspace
Para restablecer los archivos de seguimiento del estado local y limpiar las cachés de ejecución temporales, ejecuta el siguiente comando:
cm clean