Gerenciar sessões e exportar relatórios

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 report

Relató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 por severity (padrão) ou time. 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 OPEN sã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 DISMISSED silencia alertas futuros e exclui a descoberta da saída ativa da CLI com cm report --status OPEN. Ao executar cm verify novamente em uma descoberta dispensada, os itens dispensados são reexaminados ou restaurados.
  • REOPENED
    • O que significa:uma vulnerabilidade que antes era marcada como FIXED ou DISMISSED foi 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.

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