Perché Anthropic l’ha creato
In sei mesi i modelli di Anthropic hanno individuato più di 29.000 potenziali vulnerabilità in importanti software open source, ma il team di sicurezza ha potuto esaminarne manualmente solo circa 6.000. Molti maintainer che avevano ricevuto i primi report verificati da persone hanno chiesto di ricevere semplicemente tutto, anche senza verifica, insieme a patch proposte: quasi 5.000 report sono stati inviati in questo modo.
OSS Scanner trasforma questa possibilità in un canale rapido a cui aderire volontariamente. I report verificati da persone continuano a seguire il processo di divulgazione coordinata delle vulnerabilità (CVD) di Anthropic; i progetti iscritti ricevono anche i risultati grezzi dei modelli non appena sono pronti. Anthropic afferma di essersi ispirata a OSS-Fuzz di Google.
Cosa ricevono i maintainer
Dopo l’iscrizione, il progetto viene sottoposto a scansione e i manutentori ricevono via email un pacchetto di report. La pipeline di Anthropic include agenti che verificano i bug, propongono patch ed eseguono analisi delle cause alla radice. Ogni report contiene:
- un caso di riproduzione autonomo
- una spiegazione della vulnerabilità, inclusa, ove possibile, un’analisi per bisezione per individuare quando è stato introdotto il bug
- una patch candidata, se disponibile
I progetti vengono sottoposti regolarmente a nuove scansioni per rilevare bug introdotti di recente e bug sfuggiti alle scansioni precedenti. La frequenza dipende dal numero di progetti nella pipeline, dalla diffusione del progetto e da altri fattori.
Quanto è accurato?
Prima del lancio, i penetration tester di Anthropic hanno verificato 97 segnalazioni di gravità critica o alta in 48 progetti. 85 (88%) soddisfacevano i requisiti del processo CVD di Anthropic; 11 delle 12 restanti erano reali, ma duplicavano problemi noti, e solo una era un falso positivo. Anthropic si aspetta un tasso di veri positivi superiore al 90% e avverte che le valutazioni di gravità potrebbero essere gonfiate o che lo scanner potrebbe interpretare male il threat model di un progetto.
I primi partecipanti hanno espresso pareri positivi. wolfSSL ha riferito che, su 74 report, tutti tranne due erano validi e cinque sono diventati CVE. Daniel Stenberg ha dichiarato che lo scanner ha individuato una delle peggiori vulnerabilità di curl degli ultimi anni; anche i manutentori di PostgreSQL, OpenSSL e HotCRP hanno apprezzato i report.
Chi può partecipare
Anthropic applica criteri simili a quelli di OSS-Fuzz: progetti affermati con un impatto critico sulle infrastrutture e sulla sicurezza degli utenti, valutati caso per caso. Tra i fattori importanti figurano l’esposizione agli attacchi remoti (per esempio, librerie che elaborano input non attendibili) e il numero di utenti e progetti che dipendono dal progetto. Se la sua importanza non è evidente, aggiungi una breve frase per spiegarla.
Anthropic verifica manualmente che chi presenta la domanda sia un manutentore principale e potrebbe contattare il progetto attraverso altri canali. Il servizio è pensato per progetti che già riescono a gestire le segnalazioni verificate di gravità alta e critica: se la tua casella di posta è già sovraccarica, potrebbe non essere ancora la soluzione adatta.
Come fare domanda
I manutentori principali aprono una pull request a github.com/anthropics/oss-scanner aggiungendo projects/your-project/project.yaml, partendo dal modello presente in quel repository.
Campi obbligatori:
- repo — l’URL git da clonare, con l’eventuale aggiunta di #branch; non è necessario che sia ospitato su GitHub
- primary_contact — l’indirizzo email a cui inviare ogni report
- Dockerfile — percorso relativo a repo di un Dockerfile che installa le dipendenze e compila il progetto; in alternativa, colloca un file chiamato Dockerfile accanto a project.yaml e ometti questo campo
Campi facoltativi:
- auto_ccs — indirizzi aggiuntivi da mettere in copia in ogni report
- homepage — il sito web del progetto
- threat_model — percorso del threat model; il valore predefinito è .oss-scanner/threat_model.md
- pgp — una chiave pubblica per cifrare le email dei report; se impostata, non sono consentiti indirizzi in CC
- disabled — imposta il valore su true per sospendere i report
Esegui tools/validate.py e compila Dockerfile localmente prima di aprire la PR. Dopo l’accettazione, Anthropic crea l’immagine sulla propria infrastruttura e ti invia un’email in caso di errore.
Dockerfile e verifica offline
Dockerfile viene compilato con accesso alla rete. Tutto ciò che avviene dopo, ovvero l’audit degli agenti, viene eseguito in sandbox protette, senza alcun accesso a Internet. L’immagine deve quindi includere già tutte le dipendenze ed essere compilata. Anthropic consiglia di verificare che i test vengano superati all’interno del container: in questo modo gli agenti possono compilare ed eseguire il codice per confermare i bug.
Il file del threat model
threat_model.md è facoltativo e non ha un formato obbligatorio. È l’occasione per indicare agli agenti ciò che non è documentato altrove:
- quale codice testare, quali input sono ostili e cosa rientra nell’ambito di esclusione
- criteri di gravità per i livelli critica, alta, media e bassa
- come devono essere strutturati i report, se le patch debbano essere minime o pronte per il merge e quali prove di concetto siano utili
- il livello di dettaglio della deduplicazione
Senza queste indicazioni, lo scanner procede per supposizioni. Puoi modificare il file tra una scansione e l’altra per cambiare i report. Il nostro generatore di threat model crea un file già pronto.
Divulgazione, sospensione e attribuzione
Non è prevista una scadenza di 90 giorni per queste segnalazioni non validate. Se in seguito Anthropic convalida un report tramite il proprio programma CVD, può divulgarlo 90 giorni dopo averti comunicato che un esperto lo ha convalidato. Anthropic afferma che in futuro potrebbe introdurre scadenze per alcune segnalazioni di gravità alta, con preavviso e possibilità di rinuncia.
Per sospendere il servizio, aggiungi disabled: true a project.yaml con una PR; per interrompere la partecipazione, elimina la tua directory projects/. Puoi inviare commenti rispondendo alle email dei report; se non hai aderito, scrivi a oss-scanner-questions@anthropic.com.
L’attribuzione è facoltativa. Anthropic suggerisce una riga nel messaggio di commit come “Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-ABCD1234”.
Sicurezza dei dati
I report vengono gestiti come le segnalazioni CVD standard di Anthropic: sono archiviati in un progetto cloud isolato e ad accesso limitato, accessibile solo al personale di sicurezza che gestisce il programma.
OSS Scanner e Claude Security
Claude Security è il prodotto commerciale di Anthropic per le aziende, che consente di individuare e correggere vulnerabilità nel proprio codice. OSS Scanner è destinato ai manutentori dell’open source: aggiunge harness sperimentali che consumano molti token per individuare bug più profondi, e Anthropic ne copre interamente i costi. I manutentori possono anche ottenere Claude Max 20x gratuitamente tramite Claude for OSS; i professionisti della sicurezza possono fare domanda per il Cyber Verification Program.
Generatore di project.yaml
Compila i campi per ottenere un project.yaml nel formato descritto nelle FAQ di Anthropic, insieme ai comandi per aprire la pull request. Prima dell’invio, controlla sempre il modello aggiornato nel repository.
Qualsiasi host git pubblico. Il branch viene aggiunto come #branch.
La cartella all’interno di projects/ nel repository di Anthropic.
Di solito, il tuo indirizzo email. Riceve tutte le segnalazioni.
Relativo alla repo. Lascialo vuoto se metti un Dockerfile accanto a project.yaml.
Facoltativo, separati da virgole.
Lascia il valore predefinito, a meno che il tuo file non si trovi altrove.
Facoltativa. Le segnalazioni verranno cifrate; in tal caso non è consentito aggiungere CC.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Apri 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
Richiede la GitHub CLI (gh) e Python 3. Anthropic verifica manualmente che tu sia un maintainer principale prima di accettare.
Dockerfile di esempio
Un punto di partenza per un progetto C/C++ compilato con CMake. Adatta i pacchetti e i comandi di compilazione al tuo progetto; l'importante è che tutto venga installato e compilato all'interno dell'immagine, perché l'audit viene eseguito offline.
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-failureDomande su Anthropic OSS Scanner
Anthropic OSS Scanner è gratuito?
Sì. Anthropic copre interamente il costo delle scansioni per i progetti iscritti.
Il mio progetto deve essere su GitHub?
No. Il campo repo può puntare a qualsiasi host git. Solo la pull request di iscrizione viene inviata a GitHub.
Le segnalazioni vengono esaminate da una persona?
No. Le segnalazioni fast-track sono generate interamente da modelli. Le segnalazioni verificate da persone continuano ad arrivare separatamente tramite il processo CVD di Anthropic.
Cosa succede se il mio progetto non viene accettato?
Puoi scansionarlo in qualsiasi momento su ossscanner.org e registrarlo qui per le scansioni approfondite settimanali: sono idonei tutti i repository pubblici.
Come posso smettere di ricevere i report?
Apri una PR aggiungendo disabled: true al tuo project.yaml oppure elimina la directory del progetto. Continuerai a ricevere solo report CVD verificati da persone.