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.