O que e o defending-code-reference-harness
Em junho de 2026, a Anthropic publicou no GitHub um framework open-source chamado defending-code-reference-harness. O objetivo e direto: usar modelos de linguagem grande (LLMs), especialmente o Claude, para analisar codigo e identificar vulnerabilidades de seguranca de forma automatica, sem que um analista humano precise revisar linha por linha.
A ideia de usar IA para seguranca de software nao e nova, mas a abordagem da Anthropic traz um diferencial importante: o framework funciona como um harness de referencia. Isso significa que ele define um padrao para avaliar o quao bom um modelo de IA e na tarefa de encontrar falhas em codigo, permitindo comparar modelos diferentes com as mesmas metricas.
O nome "defending code" reflete a proposta: usar IA na postura defensiva, ou seja, encontrar e corrigir problemas antes que um atacante explore. O framework esta disponivel sob licenca open-source no perfil oficial da Anthropic no GitHub e ganhou mais de 400 upvotes no Hacker News no dia do lancamento, mostrando o interesse da comunidade tech no tema.
Como funciona
O framework funciona como uma camada de orquestracao entre o codigo a ser analisado e o modelo de IA. Voce aponta o harness para um repositorio ou arquivo, ele prepara o contexto e envia para o modelo junto com instrucoes especificas sobre o que procurar: injecao de SQL, XSS, buffer overflow, credenciais expostas, logica de autenticacao fragil, entre outros.
Por baixo dos panos, o harness estrutura o problema como uma tarefa de raciocinio em multiplos passos. O modelo nao ve o codigo inteiro de uma vez, o que seria ineficiente. Em vez disso, o framework divide o analise em etapas: primeiro o modelo identifica as areas criticas (endpoints de entrada de dados, funcoes de autenticacao, pontos de acesso ao banco), depois aprofunda a analise so nessas areas.
O resultado e um relatorio estruturado com: localizacao exata da vulnerabilidade (arquivo e linha), tipo de falha segundo classificacoes como OWASP Top 10 ou CWE, nivel de severidade estimado, e uma sugestao de correcao. O formato de saida e JSON por padrao, o que facilita a integracao com pipelines de CI/CD e ferramentas de rastreamento de bugs.
Principais recursos
O framework vem com um conjunto de capacidades pensadas para uso real em projetos de software:
- Analise de multiplas linguagens: funciona com Python, JavaScript, TypeScript, Java, Go, C, C++ e outras linguagens populares, pois o modelo entende semantica de codigo independente da sintaxe especifica
- Categorias de vulnerabilidade: cobre as principais classes de falhas: injecao (SQL, comando, LDAP), controle de acesso, criptografia fragil, exposicao de dados sensiveis, configuracao insegura e componentes vulneraveis
- Metricas de benchmark: o harness inclui conjuntos de codigo com vulnerabilidades conhecidas para que voce avalie a precisao do modelo, calculando taxa de verdadeiros positivos e falsos positivos
- Integracao com CI/CD: saida em JSON estruturado pronto para integrar com GitHub Actions, GitLab CI, Jenkins ou qualquer pipeline automatizado
- Prompt engineering especializado: o framework ja inclui prompts otimizados para analise de seguranca, que voce pode customizar para o contexto do seu projeto
- Comparacao entre modelos: por ser um harness de referencia, facilita testar Claude vs GPT-4 vs modelos open-source na mesma base de codigo
Como comecar: instalacao passo a passo
O repositorio fica em github.com/anthropics/defending-code-reference-harness. Para comecar, voce precisa do Python 3.10 ou superior e uma chave de API da Anthropic (disponivel em console.anthropic.com). Clone o repositorio com git clone, entre na pasta e instale as dependencias com pip install -r requirements.txt.
Com o ambiente pronto, configure sua chave de API como variavel de ambiente: ANTHROPIC_API_KEY=sua-chave-aqui. Depois aponte o framework para o codigo que quer analisar. O comando basico e algo como python run_harness.py --target ./seu-projeto --output relatorio.json. O processo pode levar alguns minutos dependendo do tamanho do projeto.
Para ver o framework em acao antes de usar no seu codigo real, o repositorio inclui exemplos de codigo com vulnerabilidades conhecidas na pasta examples/. E uma boa forma de ver o que o modelo consegue (e nao consegue) detectar antes de confiar a analise no codigo de producao.
Exemplo pratico: analisando uma API Node.js
Imagine uma API em Node.js com Express que recebe um parametro userId na URL e consulta o banco assim: const query = "SELECT * FROM users WHERE id = " + req.params.userId. Isso e injecao de SQL classica, a falha mais comum em aplicacoes web.
Ao rodar o harness nessa API, o modelo identifica a concatenacao direta de parametro de usuario na query SQL, classifica como CWE-89 (Improper Neutralization of Special Elements in SQL Command), avalia a severidade como critica, e sugere a correcao usando prepared statements: db.query("SELECT * FROM users WHERE id = ?", [req.params.userId]).
O relatorio gerado indica o arquivo e a linha exata, explica o vetor de ataque (o que um invasor faria), e fornece o codigo corrigido. Em projetos grandes com centenas de arquivos, isso economiza horas de revisao manual e captura padroes que passariam despercebidos numa revisao de codigo tradicional.
Comparacao com ferramentas tradicionais
Ferramentas de analise estatica tradicionais como SonarQube, Semgrep e Bandit funcionam com regras fixas. Sao rapidas e precisas para padroes conhecidos, mas nao entendem contexto. Uma variavel chamada password que armazena um hash nao e falha, mas uma variavel password passada em texto plano para um log e. Regras fixas dificilmente distinguem os dois casos.
O framework da Anthropic usa raciocinio semantico, nao busca por padroes. O modelo entende o que o codigo faz de verdade, nao apenas como ele parece. Isso gera menos falsos positivos em codigo legado e captura vulnerabilidades logicas que ferramentas baseadas em regras nao veem, como fluxos de autenticacao com racecondition ou validacoes de permissao posicionadas no lugar errado.
A desvantagem e o custo e a velocidade: chamar um LLM para cada analise e mais caro e mais lento do que rodar um linter. Para projetos grandes, o ideal e usar as duas abordagens em conjunto: ferramentas tradicionais no pre-commit (rapido) e a analise com IA em pull requests ou schedulado (profundo).
Pontos positivos e limitacoes
O maior ponto positivo e a capacidade de entender codigo em contexto. O modelo ve a funcao inteira, entende o fluxo de dados e identifica problemas que dependem de como as pecas se conectam, nao apenas de como cada linha esta escrita. Para code reviews de seguranca em PRs criticos, isso e um diferencial real.
As limitacoes sao claras: o modelo pode errar, especialmente em codigos com logica de negocio muito especifica. Falsos positivos acontecem quando o modelo interpreta uma logica customizada como insegura sem ter contexto suficiente. E falsos negativos tambem existem, principalmente em vulnerabilidades que dependem de interacao complexa entre servicos externos.
Outro ponto de atencao: voce esta enviando codigo para a API da Anthropic. Para projetos com codigo proprietario sensivel, avaliar a politica de uso de dados e fundamental. O Claude nao usa dados de API para treinamento por padrao, mas e sempre bom confirmar os termos atuais antes de usar em producao.
Casos de uso reais
Revisao de codigo em pull requests: integrar o harness no pipeline de CI para analisar automaticamente cada PR antes do merge. O bot comenta diretamente no PR com as vulnerabilidades encontradas e sugestoes de correcao, sem precisar esperar por um code review manual de seguranca.
Auditoria de codigo legado: projetos antigos acumulam anos de patches e gambiarras. Rodar o harness num modulo legado antes de uma migracao ou refatoracao da uma visao rapida dos riscos de seguranca existentes, priorizando o que precisa ser corrigido antes de qualquer mudanca estrutural.
Treinamento de desenvolvedores: usar o relatorio gerado como material educativo para o time. Quando o modelo explica por que um padrao e inseguro e mostra a correcao, o desenvolvedor aprende o conceito, nao apenas o fix. E mais efetivo do que simplesmente mandar o codigo de volta com um comentario "vulneravel, corrija".
Comparacao de modelos de IA para seguranca: times de seguranca que avaliam qual modelo de IA usar em seus processos internos podem usar o harness para testar diferentes modelos com as mesmas bases de codigo e comparar resultados de forma objetiva.
Dicas e boas praticas
Comece pelos modulos mais criticos do seu sistema, nao pelo projeto inteiro. Analise primeiro o codigo que lida com autenticacao, autorizacao, pagamentos e dados sensiveis. Esses sao os alvos mais valiosos e onde um bug de seguranca tem maior impacto real.
Combine o framework com testes de seguranca existentes, nao substitua. O harness e uma camada adicional de analise, nao um substituto para OWASP ZAP, pentest ou analise manual de codigo critico. A seguranca em profundidade funciona com multiplas camadas, cada uma capturando o que a outra deixou passar.
Revise os prompts incluidos no framework para o contexto do seu projeto. Se voce trabalha com uma stack especifica, como microservicos em Go ou APIs GraphQL, personalizar os prompts com exemplos do seu contexto melhora a precisao da analise e reduz falsos positivos.
Vale a pena usar?
Para times que levam seguranca a serio e querem adicionar uma camada de analise inteligente ao pipeline, sim, vale muito a pena experimentar. O framework e open-source, o custo e o da API da Anthropic (que tem plano gratuito para testes), e o setup e relativamente simples.
Para projetos pequenos ou pessoais, o ganho pode nao justificar a configuracao. Ferramentas como Semgrep com as regras certas ja entregam bastante resultado com zero custo. Mas para times com um CI/CD maduro e preocupacao real com seguranca de codigo, o harness da Anthropic e um dos melhores exemplos praticos de como usar IA como aliada na seguranca de software.