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 de código aberto baseado em LLM para descoberta e remediação de vulnerabilidades (agora chamado de harness) que ajuda 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.
Tenha em mente que isso começou como um projeto de pesquisa e, à medida que desenvolvemos novas capacidades, frequentemente as lançamos como beta. Aceitamos contribuições.
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 código aberto 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 código aberto, 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.
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 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
Isto compila o código-fonte Go e gera o binário em apps/openant-cli/bin/openant.
Crie um link simbólico para o seu PATH para que possa executar openant a partir de qualquer lugar:
ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant
Nota: execute isto a partir da raiz do repositório para que $(pwd) resolva para o caminho absoluto correto.
O OpenAnt encaminha 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 provedor por fase do pipeline (qualquer um dos adaptadores fornecidos abaixo), insere sua chave de API uma vez por provedor (o Bedrock usa a cadeia de credenciais da AWS — deixe a chave em branco), e o assistente testa cada par único de provedor+modelo com uma requisição de 1 token antes de gravar ~/.config/openant/config.json. Execute uma varredura contra ele com --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) — substitua qualquer resposta ao seu gosto.
| Tipo de provedor | Chave de API 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 AWS) | Claude na 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 ~/.aws, região de AWS_REGION. Os IDs de modelo são perfis de inferência (us.anthropic.claude-sonnet-4-6, global.anthropic.claude-haiku-4-5-20251001-v1:0, ...) — habilite-os em "Model access" no console da Bedrock e liste-os com aws bedrock list-inference-profiles. Oferecido por openant setup llm (deixe a chave de API em branco — cadeia de credenciais AWS, sondagem ignorada) — guia completo: utilities/llm/providers/BEDROCK.md. |
openrouter | openrouter.ai | Gateway para muitos provedores com uma chave 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 URL base 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 URL base 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 chamadas de ferramentas, então qualquer um deles pode conduzir as fases enhance e verify que usam o loop agêntico de uso de ferramentas. Para o Ollama, escolha um modelo compatível com ferramentas para essas fases — modelos locais muito pequenos podem não lidar com chamadas de ferramentas de forma confiável.
Se você quer os padrões Claude por fase atuais e nada mais, pule o assistente:
openant set-api-key sk-ant-...
openant scan /path/to/repo
Isso usa a configuração integrada openant-default (compilada no binário, sem necessidade de config.json) — Claude Opus 4.6 para as fases de deteção, Sonnet 4 para o resto.