O CodeMender pode produzir, validar e aplicar automaticamente patches de código-fonte para vulnerabilidades verificadas, testando-os no sandbox local para evitar regressões.
Gerar correções de vulnerabilidades
Use cm fix para gerar um patch de segurança validado para uma descoberta verificada:
cm fix FINDING_ID
Quando você executa 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 sandbox local.
- Compila e testa a base de código executando o
build.commandconfigurado para garantir que o projeto seja criado e 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 pede que você confirme cada modificação de arquivo antes de gravá-la no disco no seu espaço de trabalho. Depois que todas as verificações forem aprovadas, o CodeMender vai aplicar o patch verificado ao seu espaço de trabalho. Em seguida, prepare as mudanças.
Sinalizações de correção
- Forneça contexto de correção (
-c/--context): forneça restrições de arquitetura ou diretrizes de programação:cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- Aprovar automaticamente as solicitações (
-y/--yes): aprova automaticamente todas as gravações de arquivos e solicitações de confirmação de comando durante o processo de correção: Observação: também é possível desativar as solicitações de confirmação interativas nocm fix FINDING_ID -y
config.yamldefinindotools.confirm_writes: falseetools.confirm_commands: false. - Controlar o uso de sandbox (
--sandbox): ative ou desative explicitamente o sandbox no nível do SO para essa execução (por exemplo,--sandbox=falsepara desativar):cm fix FINDING_ID --sandbox=false
- Ignorar limites de caminho (
--allow-all-paths): desativa a verificação de limite de caminho do espaço de trabalho para essa execução, permitindo que as ferramentas do agente acessem caminhos fora da raiz do projeto e doproject_pathsconfigurado (combine com--sandbox=falsepara acessar caminhos de host que não estão montados no sandbox):cm fix FINDING_ID --allow-all-paths
- Ignorar política de comando (
--allow-all-commands): desative a aplicação da lista de bloqueio decommand_policy.yamlpara esta execução:cm fix FINDING_ID --allow-all-commands
- Ignorar cache (
--no-cache): force o CodeMender a gerar um novo patch:cm fix FINDING_ID --no-cache
Inspecionar e gerenciar diferenças de VCS locais
O CodeMender inclui comandos de VCS integrados para ajudar você a inspecionar, preparar e gerenciar as mudanças de código que os patches introduzem antes de confirmá-las:
Ver o status do repositório: confira quais arquivos o CodeMender modificou ou criou no seu espaço de trabalho local.
cm vcs status
Inspecionar diferenças: analise as diferenças unificadas linha por linha de todas as modificações de código não confirmadas que o agente gerou.
cm vcs diff
Preparar mudanças: adicione as modificações verificadas do patch ao ambiente de preparo local para testar e confirmar.
cm vcs stage
Reverter modificações da sessão: descarte todas as modificações de arquivos locais que o CodeMender gerou durante a sessão atual e restaure o repositório para o estado de referência.
cm vcs reset