O CodeMender pode gerar, validar e aplicar automaticamente patches de código-fonte para vulnerabilidades verificadas, testando-os no seu sandbox local para evitar regressões.
Gerar correções de vulnerabilidade
Use cm fix para gerar um patch de segurança validado para uma descoberta verificada:
cm fix FINDING_ID
Ao executar cm fix, o CodeMender realiza as seguintes etapas de validação:
- Gera um candidato a patch usando o mecanismo de raciocínio hospedado na nuvem.
- Aplica o patch a uma cópia do código-fonte no seu sandbox local.
- Compila e testa a base de código executando o
build.commandconfigurado para garantir que o projeto seja criado e que os testes de unidade sejam aprovados. - Executa novamente o exploit de PoC verificado para confirmar que a vulnerabilidade não pode mais ser explorada.
Por padrão, o CodeMender solicita que você confirme cada modificação de arquivo antes de gravá-la no disco no seu espaço de trabalho. Quando todas as verificações forem aprovadas, o CodeMender vai aplicar o patch verificado ao seu espaço de trabalho. Em seguida, você pode preparar as mudanças.
Flags de correção
- Fornecer contexto de correção (
-c/--context): forneça restrições arquitetônicas ou diretrizes de codificação:cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- Aprovar gravações automaticamente (
-y/--yes): aprovar automaticamente todas as gravações e solicitações de arquivos durante o processo de correção: Observação:também é possível desativar as solicitações de gravação interativas globalmente definindocm fix FINDING_ID -y
confirm_writes: falseno seuconfig.yaml. - Controlar o uso de sandbox (
--sandbox): ative ou desative explicitamente o sandbox para essa execução (por exemplo,--sandbox=falsepara desativar):cm fix FINDING_ID --sandbox=false
- Ignorar o uso de sandbox (
--unrestricted): ignore temporariamente todas as proteções de sandbox para essa execução, desativando os limites do sistema de arquivos e o isolamento de contêiner no nível do SO:cm fix FINDING_ID --unrestricted
- Ignorar o cache (
--no-cache): force o CodeMender a gerar um novo patch:cm fix FINDING_ID --no-cache
Inspecionar e gerenciar diffs do VCS local
O CodeMender inclui comandos VCS integrados para ajudar você a inspecionar, preparar e gerenciar mudanças de código introduzidas por patches antes de confirmá-las:
Conferir o status do repositório: verifique quais arquivos o CodeMender modificou ou criou no seu espaço de trabalho local.
cm vcs status
Inspecionar diffs: revise diffs unificados linha por linha de todas as modificações de código não confirmadas geradas pelo agente.
cm vcs diff
Preparar mudanças: adicione modificações de patch verificadas ao seu ambiente de preparação local para que você possa testá-las e confirmá-las.
cm vcs stage
Reverter modificações de sessão: descarte todas as modificações de arquivos locais geradas pelo CodeMender durante a sessão atual e restaure o repositório ao estado de linha de base.
cm vcs reset