OpenAnt de Knostic es el producto líder de código abierto de descubrimiento de vulnerabilidades basado en LLM, que ayuda a los defensores a encontrar de forma proactiva fallos de seguridad verificados mientras minimiza tanto los falsos positivos como los falsos negativos. La Etapa 1 detecta. La Etapa 2 ataca. Lo que sobrevive es real.
OpenAnt de Knostic es el primer producto de código abierto basado en LLM para el descubrimiento y la remediación de vulnerabilidades (ahora llamado harness) que ayuda a los defensores a encontrar de forma proactiva fallos de seguridad verificados, minimizando tanto los falsos positivos como los falsos negativos. La etapa 1 detecta. La etapa 2 ataca. Lo que sobrevive es real.
Ten en cuenta que esto comenzó como un proyecto de investigación y, a medida que desarrollamos nuevas capacidades, a menudo las publicamos como beta. Agradecemos las contribuciones.
Puedes encontrar nuestro artículo de investigación sobre la creación de OpenAnt en arXiv: OpenAnt: LLM-Powered Vulnerability Discovery Through Code Decomposition, Adversarial Verification, and Dynamic Testing, de Nahum Korda y Gadi Evron.
Esta fue una pregunta relevante en el readme cuando lanzamos OpenAnt por primera vez, ya que se han publicado muchos otros harnesses. Seguimos esperando que, con la explosión de vulnerabilidades descubiertas por IA, OpenAnt ayude a los mantenedores de código abierto a mantenerse por delante de los atacantes, permitiéndoles usarlo ellos mismos. O enviar su repositorio para escanearlo sin coste alguno.
También está el hecho de que el enfoque de Knostic es proteger agentes y asistentes de programación, y no la investigación de vulnerabilidades ni la seguridad de aplicaciones, y nos gusta el código abierto, así que decidimos publicar OpenAnt bajo la licencia Apache 2. Además, es posible que hayas oído hablar de Aardvark de OpenAI (ahora Codex Security) y Claude Code Security de Anthropic, y no tenemos ninguna intención de competir con ellos.
Para detalles técnicos, limitaciones y costes de tokens, consulta esta entrada del blog: https://knostic.ai/blog/openant
Para enviar tu repositorio para escanear: https://knostic.ai/blog/oss-scan
Mantenimiento e investigación: Gadi Evron
Investigación original, ideación y prototipo original: Nahum Korda. Productización original: Alex Raihelgaus, Daniel Geyshis.
Con agradecimiento a: Michal Kamensky, Imri Goldberg, Daniel Cuthbert. Josh Grossman, y Avi Douglen.
Si te gusta nuestro trabajo, echa un vistazo a lo que hacemos en Knostic para defender tus agentes y asistentes de programación, evitar que borren tu disco duro y tu código, y controlar los riesgos asociados de la cadena de suministro, como servidores MCP, extensiones y skills.
Compila el binario de la CLI (requiere Go 1.25+):
cd apps/openant-cli && make build
Esto compila el código fuente de Go y genera el binario en apps/openant-cli/bin/openant.
Crea un enlace simbólico en tu PATH para que puedas ejecutar openant desde cualquier lugar:
ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant
Nota: ejecuta esto desde la raíz del repositorio para que $(pwd) se resuelva a la ruta absoluta correcta.
OpenAnt enruta cada fase del pipeline a través de un par configurable (proveedor, modelo). La vía más rápida es el asistente interactivo:
openant setup llm
Le das un nombre a la configuración (p. ej. my-llm), eliges un proveedor por fase del pipeline (cualquiera de los adaptadores incluidos a continuación), introduces su clave de API una vez por proveedor (Bedrock usa la cadena de credenciales de AWS en su lugar — deja la clave en blanco), y el asistente sondea cada par único de proveedor+modelo con una solicitud de 1 token antes de escribir ~/.config/openant/config.json. Ejecuta un escaneo contra él con --llm-config:
openant scan /path/to/repo --llm-config my-llm
Los valores predeterminados del asistente reflejan las recomendaciones por fase del proyecto (modelos de razonamiento más potentes para la detección / verificación / revisión de alcanzabilidad; modelos más ligeros para el contexto, el informe y la generación de pruebas) — sobrescribe cualquier respuesta a tu gusto.
| Tipo de proveedor | API key de | Notas |
|---|---|---|
anthropic | console.anthropic.com | Adaptador de referencia. NO incluido en las suscripciones Claude Pro / Max — facturación independiente. |
openai | platform.openai.com | NO incluido en las suscripciones ChatGPT / Codex — facturación independiente. |
google | aistudio.google.com | NO incluido en Gemini Advanced — facturación independiente. |
bedrock | — (cadena de credenciales de AWS) | Claude en AWS Bedrock. Sin api_key: las credenciales provienen de las variables de entorno AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY o de un perfil en ~/.aws, la región de AWS_REGION. Los IDs de modelo son perfiles de inferencia (us.anthropic.claude-sonnet-4-6, global.anthropic.claude-haiku-4-5-20251001-v1:0, ...) — habilítalos en "Model access" en la consola de Bedrock y lístalos con aws bedrock list-inference-profiles. Ofrecido por openant setup llm (deja la API key en blanco — cadena de credenciales de AWS, sonda omitida) — guía completa: utilities/llm/providers/BEDROCK.md. |
openrouter | openrouter.ai | Pasarela a muchos proveedores con una sola clave y un solo saldo prepago (también lee OPENROUTER_API_KEY). Los IDs de modelo son slugs vendor/model (anthropic/claude-sonnet-4.6, openai/gpt-4o-mini, ...) — explóralos en openrouter.ai/models. Ofrecido por openant setup llm (deja la URL base en blanco para el valor predeterminado de OpenRouter) — guía completa: utilities/llm/providers/OPENROUTER.md. |
ollama | — (servidor local) | Modelos locales vía Ollama. Sin api_key: déjala en blanco (se envía un marcador de posición automáticamente); la URL base predeterminada es http://localhost:11434/v1. Los modelos deben descargarse primero (ollama pull <model>); los IDs de modelo son exactamente lo que muestra ollama list. La inferencia local es gratuita — informe de coste de $0. Ofrecido por openant setup llm — guía completa: utilities/llm/providers/OLLAMA.md. |
Todos ellos admiten el uso de herramientas, por lo que cualquiera de ellos puede impulsar las fases enhance y verify que utilizan el bucle agéntico de uso de herramientas. Para Ollama, elige un modelo compatible con herramientas para esas fases — los modelos locales muy pequeños pueden no gestionar las llamadas a herramientas de forma fiable.
Si quieres los valores predeterminados actuales de Claude por fase y nada más, omite el asistente:
openant set-api-key sk-ant-...
openant scan /path/to/repo