Por qué Anthropic lo creó
Durante más de seis meses, los modelos de Anthropic detectaron más de 29,000 posibles vulnerabilidades en software de código abierto importante, pero su equipo de seguridad solo pudo revisar manualmente unas 6,000. Muchos mantenedores que recibieron los primeros informes verificados por personas pidieron recibir sencillamente todos los informes, sin verificar, junto con parches propuestos: se enviaron casi 5,000 informes de esa forma.
OSS Scanner convierte esto en una vía rápida de participación voluntaria. Los informes verificados por personas siguen el proceso de divulgación coordinada de vulnerabilidades (CVD) de Anthropic; además, los proyectos inscritos reciben los resultados sin procesar del modelo en cuanto están listos. Anthropic afirma que se inspiró en OSS-Fuzz de Google.
Qué reciben los mantenedores
Después de la inscripción, se escanea el proyecto y los mantenedores reciben por correo electrónico un conjunto de informes. El pipeline de Anthropic incluye agentes que verifican los errores, proponen parches y realizan un análisis de causa raíz. Cada informe contiene:
- un reproducer autónomo
- una explicación de la vulnerabilidad, incluida una búsqueda por bisección para determinar cuándo se introdujo el error, cuando es posible
- un parche propuesto, si hay uno disponible
Los proyectos se vuelven a escanear periódicamente para detectar errores recién introducidos y otros que se pasaron por alto anteriormente. La frecuencia depende de cuántos proyectos haya en el pipeline, del uso que se haga del proyecto y de otros factores.
¿Qué tan preciso es?
Antes del lanzamiento, los pentesters de Anthropic revisaron 97 hallazgos críticos y de gravedad alta en 48 proyectos. 85 (88%) cumplieron los criterios del proceso CVD de Anthropic; 11 de los 12 restantes eran reales, pero duplicaban problemas conocidos, y solo uno era un falso positivo. Anthropic espera una tasa de verdaderos positivos superior al 90% y advierte que las calificaciones de gravedad pueden estar infladas o que el escáner puede interpretar mal el modelo de amenazas de un proyecto.
Los primeros participantes dieron comentarios positivos. wolfSSL informó que, de 74 informes, todos salvo dos eran válidos y cinco se convirtieron en CVE. Daniel Stenberg dijo que encontró una de las peores vulnerabilidades de curl de los últimos años; los mantenedores de PostgreSQL, OpenSSL y HotCRP también elogiaron los informes.
¿Quiénes pueden participar?
Anthropic utiliza criterios similares a los de OSS-Fuzz: proyectos consolidados cuyo impacto en la infraestructura y la seguridad de los usuarios sea crítico, evaluados caso por caso. Entre los factores importantes están la exposición a ataques remotos (por ejemplo, bibliotecas que procesan entradas no confiables) y la cantidad de usuarios y proyectos dependientes. Si la importancia no es evidente, añada una frase breve que la explique.
Anthropic verifica manualmente que la persona que presenta la solicitud sea un mantenedor principal y puede ponerse en contacto con el proyecto por otros canales. El servicio está pensado para proyectos que ya pueden gestionar informes verificados de gravedad alta y crítica; si su bandeja de entrada ya está desbordada, quizá todavía no sea la opción adecuada.
Cómo solicitarlo
Los mantenedores principales abren una solicitud de incorporación de cambios en github.com/anthropics/oss-scanner que añade projects/your-project/project.yaml, partiendo de la plantilla de ese repositorio.
Campos obligatorios:
- repo — la URL de git que se clonará, opcionalmente con #branch; no tiene que estar en GitHub
- primary_contact — la dirección de correo electrónico que recibe todos los informes
- Dockerfile — ruta relativa al repo de un Dockerfile que instale las dependencias y compile el proyecto; o bien coloque un archivo llamado Dockerfile junto a project.yaml y omita este campo
Campos opcionales:
- auto_ccs — direcciones adicionales en copia en cada informe
- homepage — el sitio web del proyecto
- threat_model — ruta al modelo de amenazas; el valor predeterminado es .oss-scanner/threat_model.md
- pgp — una clave pública para cifrar los correos electrónicos con los informes; si se establece, no se permiten direcciones en copia
- disabled — establézcalo en true para pausar los informes
Ejecute tools/validate.py y compile el Dockerfile localmente antes de abrir la solicitud de incorporación de cambios. Una vez aceptada, Anthropic compila la imagen en su infraestructura y le envía un correo electrónico si falla.
El Dockerfile y la auditoría sin conexión
El Dockerfile se compila con acceso a la red. Todo lo que viene después —la auditoría de los agentes— se ejecuta con el acceso a Internet completamente desactivado, dentro de entornos aislados reforzados. Por eso, la imagen debe preinstalar todas las dependencias y compilar el proyecto. Anthropic recomienda comprobar que las pruebas se ejecuten correctamente dentro del contenedor: así, los agentes pueden compilar y ejecutar código para confirmar los errores.
El archivo del modelo de amenazas
threat_model.md es opcional y no tiene un formato obligatorio. Es una oportunidad para indicar a los agentes lo que no está documentado en otros lugares:
- qué código se debe probar, qué entradas son adversarias y qué queda fuera del alcance
- una escala de gravedad para los niveles crítico, alto, medio y bajo
- cómo deben ser los informes, si los parches deben ser mínimos o estar listos para fusionarse y qué pruebas de concepto son útiles
- qué nivel de granularidad debe tener la deduplicación
Sin este archivo, el escáner hace suposiciones. Puede cambiar el archivo entre escaneos para modificar los informes. Nuestro generador de modelos de amenazas crea un archivo listo para usar.
Divulgación, pausa y atribución
No hay un plazo de 90 días para estos hallazgos aún no validados. Si Anthropic valida posteriormente un informe mediante su programa CVD, puede divulgarlo 90 días después de informarle de que una persona lo ha validado. Anthropic afirma que podría establecer plazos para algunos informes de gravedad alta en el futuro, con previo aviso y la posibilidad de excluirse.
Para pausar, añada disabled: true a project.yaml en una solicitud de incorporación de cambios; para abandonar el programa, elimine el directorio projects/. Envíe sus comentarios como respuesta a los correos electrónicos con los informes; si no está inscrito, escriba a oss-scanner-questions@anthropic.com.
Dar crédito es opcional. Anthropic sugiere una línea en el mensaje de confirmación, como «Descubierto por Anthropic's OSS Scanner, como vulnerabilidad ANT-2026-ABCD1234».
Seguridad de los datos
Los informes se gestionan como los hallazgos del proceso CVD estándar de Anthropic: se almacenan en un proyecto de nube aislado y restringido, al que solo puede acceder el personal de seguridad que ejecuta el programa.
OSS Scanner frente a Claude Security
Claude Security es el producto comercial de Anthropic para que las empresas encuentren y corrijan vulnerabilidades en su propio código. OSS Scanner está dirigido a los mantenedores de código abierto: añade harnesses experimentales que consumen muchos tokens para encontrar errores más profundos, y Anthropic cubre el costo total. Los mantenedores también pueden obtener Claude Max 20x gratis a través de Claude for OSS, y los profesionales de la seguridad pueden solicitar participar en el Cyber Verification Program.
Generador de project.yaml
Complete los campos para obtener un project.yaml con el formato descrito en las preguntas frecuentes de Anthropic, además de los comandos para abrir la solicitud de incorporación de cambios. Compruebe siempre la plantilla actual del repositorio antes de enviar la solicitud.
Cualquier servicio público de alojamiento de git. La rama se añade como #branch.
La carpeta dentro de projects/ en el repositorio de Anthropic.
Normalmente, tu propio correo. Recibe todos los informes.
Relativa al repo. Déjala vacía si colocas un Dockerfile junto a project.yaml.
Opcional, separados por comas.
Deja el valor predeterminado a menos que el archivo esté en otra ubicación.
Opcional. Los informes se cifrarán; en ese caso, no se permiten copias.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Abrir la 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
Requiere GitHub CLI (gh) y Python 3. Anthropic verifica manualmente que seas mantenedor principal antes de aceptar la solicitud.
Dockerfile de ejemplo
Un punto de partida para un proyecto de C/C++ compilado con CMake. Adapta los paquetes y los comandos de compilación a tu proyecto; lo importante es que todo se instale y compile dentro de la imagen, porque la auditoría se ejecuta sin conexión.
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-failurePreguntas sobre Anthropic OSS Scanner
¿El OSS Scanner de Anthropic es gratuito?
Sí. Anthropic cubre el costo total de los análisis de los proyectos inscritos.
¿Mi proyecto tiene que estar en GitHub?
No. El campo repo puede apuntar a cualquier host git. Solo la pull request de inscripción se envía a GitHub.
¿Los informes los revisa una persona?
No. Los informes de vía rápida se generan íntegramente con modelos. Los informes verificados por personas siguen llegando por separado a través del proceso CVD de Anthropic.
¿Qué pasa si no aceptan mi proyecto?
Puedes analizarlo en ossscanner.org en cualquier momento e inscribirte aquí para recibir análisis exhaustivos semanales; cualquier repositorio público cumple los requisitos.
¿Cómo dejo de recibir informes?
Abre una PR que añada disabled: true a tu project.yaml o elimina el directorio de tu proyecto. Solo volverás a recibir informes CVD verificados por personas.