Por que a Anthropic criou o programa
Ao longo de seis meses, os modelos da Anthropic encontraram mais de 29,000 possíveis vulnerabilidades em softwares importantes de código aberto, mas a equipe de segurança conseguiu revisar manualmente apenas cerca de 6,000. Muitos mantenedores que receberam os primeiros relatórios verificados por humanos pediram para receber simplesmente tudo, sem validação, com propostas de correção — quase 5,000 relatórios foram enviados dessa forma.
O OSS Scanner transforma isso em uma via rápida opcional. Os relatórios verificados por humanos continuam seguindo o processo de divulgação coordenada de vulnerabilidades (CVD) da Anthropic; os projetos inscritos também recebem os resultados brutos dos modelos assim que ficam prontos. A Anthropic diz que se inspirou no OSS-Fuzz do Google.
O que os mantenedores recebem
Após a inscrição, o projeto é analisado e os mantenedores recebem um conjunto de relatórios por e-mail. O pipeline da Anthropic inclui agentes que verificam os bugs, propõem patches e fazem análise de causa raiz. Cada relatório contém:
- um reproducer independente
- uma explicação da vulnerabilidade, incluindo uma bisecção para descobrir quando o bug foi introduzido, quando possível
- um patch sugerido, quando disponível
Os projetos são analisados novamente regularmente para detectar bugs introduzidos recentemente e aqueles que não foram identificados antes. A frequência depende de quantos projetos estão no pipeline, de quanto o projeto é usado e de outros fatores.
Qual é a precisão?
Antes do lançamento, os pentesters da Anthropic verificaram 97 achados de gravidade crítica e alta em 48 projetos. 85 (88%) atenderam aos critérios do processo de CVD da Anthropic; 11 dos 12 restantes eram reais, mas duplicavam problemas conhecidos, e apenas um era um falso positivo. A Anthropic espera uma taxa de verdadeiros positivos acima de 90% e alerta que as classificações de gravidade podem estar infladas ou que o scanner pode interpretar incorretamente o modelo de ameaças de um projeto.
Os primeiros participantes tiveram uma avaliação positiva. A wolfSSL informou que, de 74 relatórios, todos, exceto dois, eram válidos e cinco se tornaram CVEs. Daniel Stenberg disse que o scanner encontrou uma das piores vulnerabilidades do curl em anos; os mantenedores de PostgreSQL, OpenSSL e HotCRP também elogiaram os relatórios.
Quem pode participar
A Anthropic usa critérios semelhantes aos do OSS-Fuzz: projetos consolidados com impacto crítico na infraestrutura e na segurança dos usuários, avaliados caso a caso. Entre os fatores importantes estão a exposição a ataques remotos (por exemplo, bibliotecas que processam entradas não confiáveis) e o número de usuários e projetos dependentes. Se a importância não for óbvia, acrescente uma frase curta explicando-a.
A Anthropic verifica manualmente se quem faz a solicitação é um mantenedor principal e pode entrar em contato com o projeto por outros canais. O serviço se destina a projetos que já conseguem acompanhar relatórios verificados de gravidade alta e crítica — se sua caixa de entrada já estiver sobrecarregada, talvez ainda não seja a opção certa.
Como se inscrever
Mantenedores principais abrem um pull request em github.com/anthropics/oss-scanner adicionando projects/your-project/project.yaml, com base no modelo desse repositório.
Campos obrigatórios:
- repo — a URL git a ser clonada, opcionalmente com #branch; não precisa estar no GitHub
- primary_contact — o e-mail que recebe todos os relatórios
- Dockerfile — caminho relativo ao repo para um Dockerfile que instala as dependências e compila o projeto; ou coloque um arquivo chamado Dockerfile ao lado de project.yaml e omita o campo
Campos opcionais:
- auto_ccs — endereços adicionais em cópia em todos os relatórios
- homepage — o site do projeto
- threat_model — caminho para o modelo de ameaças, padrão .oss-scanner/threat_model.md
- pgp — uma chave pública para criptografar os e-mails com os relatórios; se definido, não são permitidos endereços em cópia
- disabled — defina como true para pausar os relatórios
Execute tools/validate.py e compile o Dockerfile localmente antes de abrir o PR. Após a aprovação, a Anthropic compilará a imagem na própria infraestrutura e enviará um e-mail se houver falha.
O Dockerfile e a auditoria offline
O Dockerfile é compilado com acesso à rede. Depois disso, tudo — a auditoria dos agentes — é executado com o acesso à internet totalmente desativado, dentro de sandboxes reforçados. Portanto, a imagem precisa pré-instalar todas as dependências e compilar o projeto. A Anthropic recomenda verificar se os testes passam dentro do contêiner: isso permite que os agentes compilem e executem o código para confirmar os bugs.
O arquivo do modelo de ameaças
threat_model.md é opcional e não tem formato obrigatório. É uma oportunidade para informar aos agentes o que não está documentado em outros lugares:
- qual código deve ser testado, quais entradas são adversariais e o que está fora do escopo
- critérios de gravidade para níveis crítico, alto, médio e baixo
- como os relatórios devem ser apresentados, se os patches devem ser mínimos ou prontos para merge e quais provas de conceito são úteis
- o nível de granularidade da deduplicação
Sem esse arquivo, o scanner faz suposições. Você pode alterá-lo entre as análises para mudar os relatórios. Nosso gerador de modelos de ameaças cria um arquivo pronto para uso.
Divulgação, pausa e atribuição
Não há prazo de 90 dias para esses achados ainda não validados. Se a Anthropic validar posteriormente um relatório por meio do programa de CVD, poderá divulgá-lo 90 dias depois de informar que um analista humano o validou. A Anthropic afirma que poderá estabelecer prazos para alguns relatórios de gravidade alta no futuro, com aviso prévio e opção de não participar.
Para pausar, adicione disabled: true a project.yaml em um PR; para sair, exclua seu diretório projects/. Envie comentários respondendo aos e-mails dos relatórios; se você não estiver inscrito, escreva para oss-scanner-questions@anthropic.com.
Dar crédito é opcional. A Anthropic sugere uma linha na mensagem de commit, como “Descoberto pelo Anthropic OSS Scanner, como vulnerabilidade ANT-2026-ABCD1234”.
Segurança dos dados
Os relatórios são tratados como os achados padrão de CVD da Anthropic: ficam armazenados em um projeto de nuvem isolado e com acesso restrito, acessível apenas à equipe de segurança que administra o programa.
OSS Scanner vs Claude Security
Claude Security é o produto comercial da Anthropic para empresas encontrarem e corrigirem vulnerabilidades no próprio código. OSS Scanner é voltado a mantenedores de projetos de código aberto: ele adiciona harnesses experimentais que consomem muitos tokens para encontrar bugs mais profundos, e a Anthropic cobre o custo integral. Mantenedores também podem obter gratuitamente o Claude Max 20x por meio do Claude for OSS, e profissionais de segurança podem se inscrever no Cyber Verification Program.
Gerador de project.yaml
Preencha os campos para gerar um project.yaml no formato descrito no FAQ da Anthropic, além dos comandos para abrir o pull request. Antes de enviar, confira sempre o modelo atual no repositório.
Qualquer host público de git. A branch é acrescentada como #branch.
A pasta em projects/ no repositório da Anthropic.
Geralmente, seu próprio e-mail. Recebe todos os relatórios.
Relativo ao repo. Limpe este campo se colocar um Dockerfile ao lado de project.yaml.
Opcional, separados por vírgulas.
Mantenha o padrão, a menos que seu arquivo esteja em outro local.
Opcional. Os relatórios serão criptografados; nesse caso, não é permitido adicionar CCs.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Abrir a pull request
gh repo fork anthropics/oss-scanner --clone cd oss-scanner mkdir -p projects/my-project cp ~/Downloads/project.yaml projects/my-project/project.yaml python3 tools/validate.py git checkout -b enroll-my-project git add projects/my-project git commit -m "Enroll my-project in OSS Scanner" git push -u origin enroll-my-project gh pr create --repo anthropics/oss-scanner --fill
Requer a CLI do GitHub (gh) e Python 3. Anthropic verifica manualmente se você é um mantenedor principal antes de aceitar.
Dockerfile de exemplo
Um ponto de partida para um projeto C/C++ compilado com CMake. Adapte os pacotes e comandos de compilação ao seu projeto; o essencial é que tudo seja instalado e compilado dentro da imagem, pois a auditoria é executada offline.
FROM debian:bookworm
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git ca-certificates pkg-config \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . .
# Build everything and fetch all dependencies now:
# the audit itself runs with no network access.
RUN cmake -B build -DCMAKE_BUILD_TYPE=Debug && cmake --build build -j"$(nproc)"
# Optional, but recommended: make sure tests pass inside the image.
RUN ctest --test-dir build --output-on-failurePerguntas sobre o Anthropic OSS Scanner
O Anthropic OSS Scanner é gratuito?
Sim. Anthropic cobre o custo integral das verificações dos projetos inscritos.
Meu projeto precisa estar no GitHub?
Não. O campo repo pode apontar para qualquer host git. Somente a pull request de inscrição é enviada ao GitHub.
Os relatórios são analisados por uma pessoa?
Não. Os relatórios de via rápida são gerados inteiramente por modelos. Os relatórios verificados por pessoas continuam chegando separadamente pelo processo CVD da Anthropic.
E se meu projeto não for aceito?
Você pode escaneá-lo no ossscanner.org a qualquer momento e se inscrever aqui para receber varreduras aprofundadas semanais — qualquer repositório público se qualifica.
Como faço para parar de receber relatórios?
Abra um PR adicionando disabled: true ao seu project.yaml ou exclua o diretório do projeto. Você voltará a receber apenas relatórios CVD verificados por pessoas.