OpenAnt di Knostic è il principale prodotto open source di scoperta di vulnerabilità basato su LLM, che aiuta i difensori a individuare in modo proattivo falle di sicurezza verificate, riducendo al minimo sia i falsi positivi sia i falsi negativi. La fase 1 rileva. La fase 2 attacca. Ciò che sopravvive è reale.
OpenAnt di Knostic è il primo prodotto open source per la scoperta di vulnerabilità basato su LLM (ora chiamato harness) che aiuta i difensori a trovare proattivamente falle di sicurezza verificate, riducendo al minimo sia i falsi positivi che i falsi negativi. La Fase 1 rileva. La Fase 2 attacca. Ciò che sopravvive è reale.
Tenete presente che questo è nato come progetto di ricerca e, man mano che sviluppiamo nuove funzionalità, spesso le rilasciamo in versione beta. Accogliamo con favore i contributi.
Potete trovare il nostro paper di ricerca sulla costruzione di OpenAnt su arXiv: OpenAnt: LLM-Powered Vulnerability Discovery Through Code Decomposition, Adversarial Verification, and Dynamic Testing, di Nahum Korda e Gadi Evron.
Questa era una domanda rilevante nel readme quando abbiamo rilasciato OpenAnt per la prima volta, dato che nel frattempo sono stati rilasciati molti altri harness. Speriamo ancora che, con l'esplosione delle vulnerabilità scoperte dall'IA, OpenAnt aiuti i maintainer open source a restare un passo avanti agli attaccanti, potendolo usare direttamente. Oppure inviando il proprio repository per la scansione a costo zero.
C'è anche il fatto che il focus di Knostic è proteggere agenti e assistenti di coding, non la ricerca sulle vulnerabilità o l'appsec, e ci piace l'open source, quindi abbiamo deciso di rilasciare OpenAnt sotto licenza Apache 2. Inoltre, potreste aver sentito parlare di Aardvark di OpenAI (ora Codex Security) e di Claude Code Security di Anthropic, e non abbiamo alcuna intenzione di competere con loro.
Per dettagli tecnici, limitazioni e costi in token, consultate questo post del blog: https://knostic.ai/blog/openant
Per inviare il vostro repository per la scansione: https://knostic.ai/blog/oss-scan
Maintainer e ricerca: Gadi Evron
Ricerca originale, ideazione e prototipo originale: Nahum Korda. Productization originale: Alex Raihelgaus, Daniel Geyshis.
Con ringraziamenti a: Michal Kamensky, Imri Goldberg, Daniel Cuthbert. Josh Grossman, e Avi Douglen.
Se apprezzate il nostro lavoro, date un'occhiata a ciò che facciamo in Knostic per difendere i vostri agenti e assistenti di coding, impedire che cancellino il vostro disco rigido e il vostro codice, e controllare i rischi associati della supply chain come server MCP, estensioni e skill.
Compilate il binario CLI (richiede Go 1.25+):
cd apps/openant-cli && make build
Questo compila il sorgente Go e produce il binario in apps/openant-cli/bin/openant.
Create un symlink nel vostro PATH così potete eseguire openant da qualsiasi posizione:
ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant
Nota: eseguite questo comando dalla root del repository così che $(pwd) risolva al percorso assoluto corretto.
OpenAnt instrada ogni fase della pipeline attraverso una coppia configurabile (provider, model). Il percorso più rapido è il wizard interattivo:
openant setup llm
Assegnate un nome alla configurazione (es. my-llm), scegliete un provider per ogni fase della pipeline (uno qualsiasi degli adapter forniti elencati sotto), inserite la sua API key una volta per provider (Bedrock usa invece la catena di credenziali AWS — lasciate la chiave vuota), e il wizard verifica ogni coppia univoca provider+model con una richiesta da 1 token prima di scrivere ~/.config/openant/config.json. Eseguite una scansione con essa tramite --llm-config:
openant scan /path/to/repo --llm-config my-llm
I default del wizard riflettono le raccomandazioni per fase del progetto (modelli di ragionamento più potenti per detection / verification / reachability review; modelli più leggeri per context, report e test generation) — sovrascrivete qualsiasi risposta a vostro piacimento.
| Provider type | API key da | Note |
|---|---|---|
anthropic | console.anthropic.com | Adapter di riferimento. NON incluso negli abbonamenti Claude Pro / Max — fatturazione separata. |
openai | platform.openai.com | NON incluso negli abbonamenti ChatGPT / Codex — fatturazione separata. |
google | aistudio.google.com | NON incluso in Gemini Advanced — fatturazione separata. |
bedrock | — (catena di credenziali AWS) | Claude su AWS Bedrock. Nessuna api_key: le credenziali provengono dalle variabili d'ambiente AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY o da un profilo ~/.aws, la region da AWS_REGION. Gli ID dei modelli sono inference profile (us.anthropic.claude-sonnet-4-6, global.anthropic.claude-haiku-4-5-20251001-v1:0, ...) — abilitateli sotto "Model access" nella console Bedrock e listateli con aws bedrock list-inference-profiles. Offerto da openant setup llm (lasciate vuota la API key — catena di credenziali AWS, probe saltato) — guida completa: utilities/llm/providers/BEDROCK.md. |
openrouter | openrouter.ai | Gateway verso molti provider con una sola chiave e un solo saldo prepagato (legge anche OPENROUTER_API_KEY). Gli ID dei modelli sono slug vendor/model (anthropic/claude-sonnet-4.6, openai/gpt-4o-mini, ...) — sfogliateli su openrouter.ai/models. Offerto da openant setup llm (lasciate vuoto il base URL per il default di OpenRouter) — guida completa: utilities/llm/providers/OPENROUTER.md. |
ollama | — (server locale) | Modelli locali tramite Ollama. Nessuna api_key: lasciatela vuota (viene inviato automaticamente un placeholder); il base URL è http://localhost:11434/v1 per default. I modelli devono essere scaricati prima (ollama pull <model>); gli ID dei modelli sono esattamente ciò che mostra ollama list. L'inferenza locale è gratuita — report dei costi a $0. Offerto da openant setup llm — guida completa: utilities/llm/providers/OLLAMA.md. |
Tutti supportano il tool calling, quindi ognuno di essi può guidare le fasi enhance e verify che usano il loop agentico di tool-use. Per Ollama, scegliete un modello con supporto ai tool per quelle fasi — modelli locali molto piccoli potrebbero non gestire le chiamate ai tool in modo affidabile.
Se volete i default Claude per fase attuali e nient'altro, saltate il wizard:
openant set-api-key sk-ant-...
openant scan /path/to/repo
Questo usa la configurazione integrata openant-default (compilata nel binario, nessun config.json necessario) — Claude Opus 4.6 per le fasi di detection, Sonnet 4 per il resto.