O CodeMender rastreia cada verificação, verificação e tentativa de correção como uma sessão com estado apoiada por um banco de dados SQLite local (state.db). Você pode inspecionar sessões ativas, retomar tarefas pausadas e exportar relatórios detalhados de descobertas.
Gerenciamento de sessões
A CLI do CodeMender mantém sessões de execução com estado localmente, permitindo que você acompanhe tarefas ativas, retome fluxos de trabalho interrompidos e exporte relatórios de segurança.
Listar sessões ativas e anteriores
Execute o comando a seguir para listar todas as sessões, os status delas (RUNNING, WAITING_FOR_TOOL, COMPLETED, FAILED, CANCELLED) e os caminhos de destino:
cm session list
Retomar uma sessão interrompida
Se uma sessão for pausada devido a uma interrupção de rede ou falha na etapa, retome-a do estágio de checkpoint mais recente:
cm session resume SESSION_ID
Cancelar uma sessão em andamento
Para encerrar uma sessão ativa e interromper a execução da computação do agente de back-end:
cm session cancel SESSION_ID
Ver relatórios e exportar patches
Mostre descobertas da sessão, status de verificação e detalhes do patch usando cm report.
Formatos de saída
Tabela de terminal (padrão)
Lista resumida de descobertas.
cm reportRelatório HTML
Gerar um relatório HTML formatado. Use --open (ou -o) para abrir automaticamente no navegador padrão.
cm report --format html --open
Markdown
Gere um relatório em Markdown com sabor do GitHub.
cm report --format md
JSON
Exporta todos os detalhes das descobertas da sessão como JSON bruto.
cm report --format json
SARIF
Exporte descobertas no formato SARIF padrão (v2.1.0) para integração com outras ferramentas de segurança.
cm report --format sarif
Filtrar e classificar flags
- Mostrar patches de código propostos (
--patches): inclui diffs unificados completos de correções geradas no relatório.bash cm report --patches - Filtrar por gravidade (
--severity): veja descobertas que correspondem a um nível (CRITICAL,HIGH,MEDIUM,LOW).bash cm report --severity HIGH - Filtrar por status (
--status): veja descobertas que correspondem a um estado (OPEN,FIXED,DISMISSED,REOPENED).bash cm report --status OPEN - Filtrar por sessão (
--session): veja descobertas de um prefixo de ID de sessão específico.cm report --session SESSION_ID_PREFIX
- Mostrar artefatos do agente (
--artifacts): inclui caminhos para artefatos de execução gerados pelo agente, como registros e scripts de exploração.bash cm report --artifacts - Ordenar descobertas (
--sort): classifique os resultados porseverity(padrão) outime.bash cm report --sort time - Filtrar por ID da descoberta: transmita um ID (ou prefixo) específico como um argumento posicional para conferir detalhes de uma única descoberta.
cm report FINDING_ID_PREFIX
Estados de descoberta de vulnerabilidade
O CodeMender rastreia descobertas nos seguintes estados de vulnerabilidade:
OPEN- O que isso significa:a vulnerabilidade foi detectada durante uma verificação (ou importada de uma ferramenta de terceiros), mas ainda não foi verificada, corrigida ou marcada como inativa.
- Como é processado:é o estado inicial de qualquer falha de segurança
recém-descoberta. As vulnerabilidades no estado
OPENsão ativamente enfileiradas para verificação (cm verify) ou correção (cm fix).
FIXED- O que isso significa:o CodeMender gerou um patch para a vulnerabilidade, aplicou o diff à sua base de código local e compilou e executou testes de verificação para provar que a exploração não funciona mais.
- Como ele é processado:depois que um patch é confirmado para resolver o problema sem interromper a lógica de código atual, o CodeMender faz a transição da descoberta para
FIXED. Ele vai permanecer nesse estado, a menos que uma verificação futura detecte uma regressão.
DISMISSED- O que isso significa:a vulnerabilidade é designada como inativa porque foi identificada como um falso positivo ou já foi corrigida, ou porque a descoberta não tem confiança suficiente para ser confirmada como explorável (inclusive contra o modelo de ameaça do seu projeto, se um foi fornecido durante a integração).
- Como isso é tratado:marcar um item como
DISMISSEDsilencia alertas futuros e exclui a descoberta da saída ativa da CLI comcm report --status OPEN. Ao executarcm verifynovamente em uma descoberta dispensada, os itens dispensados são reexaminados ou restaurados.
REOPENED- O que significa:uma vulnerabilidade que antes era marcada como
FIXEDouDISMISSEDfoi detectada novamente em uma verificação subsequente do codebase. - Como é processado:esse estado indica uma regressão (como uma mesclagem do git ruim que reverte o patch) ou uma estratégia de mitigação com falha. Ele sinaliza o problema para reavaliação imediata e exige que os desenvolvedores revisem o processo de aplicação de patch.
- O que significa:uma vulnerabilidade que antes era marcada como
Níveis de gravidade de vulnerabilidades
O CodeMender categoriza as descobertas nos seguintes níveis de gravidade:
CRITICAL- O que isso significa:a vulnerabilidade representa um risco imediato e grave para seu aplicativo ou infraestrutura subjacente, podendo levar a um comprometimento total do sistema.
- Por que é categorizado como crítico:atende a limites de impacto de alta consequência (como execução remota de código ou gravações no nível da raiz), pode ser acessado diretamente de limites não confiáveis sem pré-requisitos e é respaldado por uma análise de fluxo de contaminação de alta confiança ou uma prova de conceito (PoC) validada executada na sandbox do CodeMender.
HIGH- O que isso significa:a vulnerabilidade representa uma falha de segurança grave que pode levar ao controle não autorizado do sistema, escalonamento de privilégios ou exposição significativa de dados, mas requer condições específicas para ser executada.
- Por que é classificado como "Alto":embora o impacto da exploração seja alto (por exemplo, leituras arbitrárias de banco de dados ou sequestro administrativo), a capacidade de exploração é um pouco restrita. Ele pode exigir que um invasor tenha autenticação de usuário padrão, dependa de uma configuração específica do sistema ou exija uma cadeia de ações altamente precisa.
MEDIUM- O que isso significa:a vulnerabilidade apresenta um risco moderado, geralmente expondo dados restritos ou permitindo interrupções localizadas, mas é de baixo risco para o sistema host.
- Por que é classificado como médio:o exploit é fortemente limitado pela capacidade de alcance ou pela complexidade. Em geral, ela exige interação ativa do usuário (como clicar em um link malicioso), privilégios profundos ou condições complexas para ignorar camadas de defesa, e a área afetada final é restrita.
LOW- O que isso significa:a descoberta representa um risco de segurança menor ou uma falta geral de higiene de defesa em profundidade que não apresenta uma ameaça imediata por si só.
- Por que é categorizado como baixo:apresenta capacidade de exploração extremamente baixa ou impacto mínimo. Normalmente, a descoberta é usada por invasores para reconhecimento ou impressão digital de configuração em vez de comprometimento direto, e não pode ser usada para executar código arbitrário ou exfiltrar dados sensíveis do aplicativo.
Manutenção do espaço de trabalho
Para redefinir os arquivos de rastreamento de estado local e limpar os caches de execução temporários, execute:
cm clean