O OpenAnt da Knostic é o principal produto open source de descoberta de vulnerabilidades baseado em LLM, ajudando defensores a encontrar proativamente falhas de segurança verificadas, minimizando tanto falsos positivos quanto falsos negativos. O Estágio 1 detecta. O Estágio 2 ataca. O que sobrevive é real.
OpenAnt da Knostic é o primeiro produto open source de descoberta de vulnerabilidades baseado em LLM (agora chamado de harness) que ajuda defensores a encontrar proativamente falhas de segurança verificadas, minimizando tanto falsos positivos quanto falsos negativos. A Etapa 1 detecta. A Etapa 2 ataca. O que sobrevive é real.
Tenha em mente que isso começou como um projeto de pesquisa e, à medida que desenvolvemos novas capacidades, frequentemente as lançamos como beta. Contribuições são bem-vindas.
Você pode encontrar nosso artigo de pesquisa sobre a construção do OpenAnt no arXiv: OpenAnt: LLM-Powered Vulnerability Discovery Through Code Decomposition, Adversarial Verification, and Dynamic Testing, de Nahum Korda e Gadi Evron.
Esta foi uma pergunta relevante no readme quando lançamos o OpenAnt pela primeira vez, já que muitos outros harnesses foram lançados. Ainda esperamos que, com a explosão de vulnerabilidades descobertas por IA, o OpenAnt ajude mantenedores de open source a se manterem à frente dos atacantes, permitindo que eles mesmos o utilizem. Ou enviem seu repositório para escaneamento sem custo.
Há também o fato de que o foco da Knostic está em proteger agentes e assistentes de código, e não em pesquisa de vulnerabilidades ou segurança de aplicações, e gostamos de open source, então decidimos lançar o OpenAnt sob a licença Apache 2. Além disso, você pode ter ouvido falar do Aardvark da OpenAI (agora Codex Security) e do Claude Code Security da Anthropic, e não temos nenhuma intenção de competir com eles.
Para detalhes técnicos, limitações e custos de tokens, confira este post no blog: https://knostic.ai/blog/openant
Para enviar seu repositório para escaneamento: https://knostic.ai/blog/oss-scan
Mantenedor e pesquisa: Gadi Evron
Pesquisa original, ideação e protótipo original: Nahum Korda. Productização original: Alex Raihelgaus, Daniel Geyshis.
Com agradecimentos a: Michal Kamensky, Imri Goldberg, Daniel Cuthbert. Josh Grossman, e Avi Douglen.
Se você gosta do nosso trabalho, confira o que fazemos na Knostic para defender seus agentes e assistentes de código, impedi-los de deletar seu disco rígido e seu código, e controlar riscos associados de cadeia de suprimentos, como servidores MCP, extensões e skills.
Compile o binário da CLI (requer Go 1.25+):
cd apps/openant-cli && make build
Isso compila o código-fonte Go e gera o binário em apps/openant-cli/bin/openant.
Crie um symlink no seu PATH para poder executar openant de qualquer lugar:
ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant
Nota: execute isso a partir da raiz do repositório para que $(pwd) resolva para o caminho absoluto correto.
O OpenAnt roteia cada fase do pipeline através de um par configurável (provider, model). O caminho mais rápido é o assistente interativo:
openant setup llm
Você nomeia a configuração (por exemplo, my-llm), escolhe um provider por fase do pipeline (qualquer um dos adaptadores incluídos abaixo), insere sua API key uma vez por provider (o Bedrock usa a cadeia de credenciais da AWS — deixe a key em branco), e o assistente testa cada par único provider+model com uma requisição de 1 token antes de gravar ~/.config/openant/config.json. Execute um scan com ela usando --llm-config:
openant scan /path/to/repo --llm-config my-llm
Os padrões do assistente refletem as recomendações por fase do projeto (modelos de raciocínio mais fortes para detecção / verificação / revisão de alcançabilidade; modelos mais leves para contexto, relatório e geração de testes) — sobrescreva qualquer resposta ao seu gosto.
| Tipo de provider | API key de | Notas |
|---|---|---|
anthropic | console.anthropic.com | Adaptador de referência. NÃO incluído nas assinaturas Claude Pro / Max — cobrança separada. |
openai | platform.openai.com | NÃO incluído nas assinaturas ChatGPT / Codex — cobrança separada. |
google | aistudio.google.com | NÃO incluído no Gemini Advanced — cobrança separada. |
bedrock | — (cadeia de credenciais da AWS) | Claude no AWS Bedrock. Sem api_key: as credenciais vêm das variáveis de ambiente AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY ou de um perfil em ~/.aws, região de AWS_REGION. Os IDs de modelo são inference profiles (us.anthropic.claude-sonnet-4-6, global.anthropic.claude-haiku-4-5-20251001-v1:0, ...) — habilite-os em "Model access" no console do Bedrock e liste-os com aws bedrock list-inference-profiles. Oferecido por openant setup llm (deixe a API key em branco — cadeia de credenciais da AWS, teste ignorado) — guia completo: utilities/llm/providers/BEDROCK.md. |
openrouter | openrouter.ai | Gateway para muitos providers com uma key e um saldo pré-pago (também lê OPENROUTER_API_KEY). Os IDs de modelo são slugs vendor/model (anthropic/claude-sonnet-4.6, openai/gpt-4o-mini, ...) — navegue por eles em openrouter.ai/models. Oferecido por openant setup llm (deixe a base URL em branco para o padrão do OpenRouter) — guia completo: utilities/llm/providers/OPENROUTER.md. |
ollama | — (servidor local) | Modelos locais via Ollama. Sem api_key: deixe em branco (um placeholder é enviado automaticamente); a base URL padrão é http://localhost:11434/v1. Os modelos devem ser baixados primeiro (ollama pull <model>); os IDs de modelo são exatamente o que ollama list mostra. A inferência local é gratuita — relatório de custo de $0. Oferecido por openant setup llm — guia completo: utilities/llm/providers/OLLAMA.md. |
Todos eles suportam tool calling, então qualquer um deles pode conduzir as fases enhance e verify que usam o loop agêntico de uso de ferramentas. Para Ollama, escolha um modelo compatível com tools para essas fases — modelos locais muito pequenos podem não lidar com tool calls de forma confiável.
Se você quer os padrões atuais de Claude por fase e nada mais, pule o assistente:
openant set-api-key sk-ant-...
openant scan /path/to/repo
Isso usa a configuração embutida openant-default (compilada no binário, sem necessidade de config.json) — Claude Opus 4.6 para as fases de detecção, Sonnet 4 para o restante.
O assistente grava ~/.config/openant/config.json para você, mas você também pode editá-lo diretamente. Toda llm-config deve listar todas as sete fases do pipeline: