
Servizio che compila repository open-source registrati in VM offline isolate e li analizza alla ricerca di vulnerabilità di sicurezza, inviando via email i risultati con reproducer e patch proposte.
OSS Scanner è un servizio di Anthropic per scansionare repository open-source critici alla ricerca di vulnerabilità di sicurezza. Scopri di più sul servizio su red.anthropic.com/oss-scanner.
Nota: l'uso di questo strumento è soggetto ai termini e alle condizioni descritti nelle condizioni di OSS Scanner.
Registra un progetto open-source aprendo una pull request che aggiunge una directory:
projects/<name>
Il nostro scanner di sicurezza compila il tuo progetto in una VM isolata, poi lo analizza senza accesso a Internet e invia via email ciò che trova a primary_contact (e a eventuali CC), ciascuno con un reproducer e una patch proposta, ove disponibile. I report sono generati dal modello e non vengono revisionati da una persona. Per questo motivo non applichiamo un periodo di divulgazione di 90 giorni a queste segnalazioni e non le renderemo pubbliche. I proprietari dei progetti devono fornire project.yaml (per configurare lo scanner), un Dockerfile (che indichi come compilare il progetto) e, facoltativamente, un threat_model.md (che fornisca una modellazione delle minacce specifica per il progetto).
Parti da templates/project.yaml:
repo: https://github.com/example/project # required: the git repository to scan; add #branch to pin one
primary_contact: [email protected] # required: reports and build problems go here (one address)
auto_ccs: # optional: more addresses on every mail
- [email protected]
homepage: https://example.org # optional
disabled: false # optional: true pauses reports without removing the enrolment
dockerfile: .oss-scanner/Dockerfile # required unless a Dockerfile sits in this repo next to your project.yaml
threat_model: .oss-scanner/threat_model.md # optional; also supports placing the file in this repository
repo e primary_contact sono sempre obbligatori. dockerfile è obbligatorio a meno che tu non tenga il tuo Dockerfile accanto a project.yaml (vedi sotto). Gli altri sono facoltativi.
Gli indirizzi email in project.yaml sono pubblici. Usa indirizzi che non ti dispiace vedere pubblicati, come un alias di sicurezza.
Per ricevere i report cifrati, aggiungi la tua chiave pubblica OpenPGP in formato armored. I report andranno quindi solo a primary_contact; pgp non può essere combinato con auto_ccs:
pgp: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF...
-----END PGP PUBLIC KEY BLOCK-----
Devi fornire un Dockerfile, esattamente in uno di due posti:
dockerfile: al suo percorso (suggeriamo una posizione come .oss-scanner/Dockerfile). Questa è l'opzione preferita perché ti consente di aggiornare la build senza una pull request qui; oppure,project.yaml, come projects/<name>/Dockerfile, senza alcuna chiave Dockerfile: impostata nel project.yaml. Se preferisci non aggiungere file al tuo repository, mettilo qui e lo scanner lo compilerà esattamente come farebbe con una copia nel repository.(Il threat model funziona allo stesso modo. Imposta il campo threat_model per la sua posizione nel tuo repository, oppure inseriscilo qui in projects/<name>/threat_model.md.)
Lo scopo del Dockerfile è configurare il tuo ambiente, installare ogni dipendenza e compilare il progetto. La configurazione iniziale del progetto viene eseguita con l'accesso alla rete abilitato, ma il controllo di sicurezza successivo viene eseguito senza accesso a Internet. Tutto ciò di cui la build o i test hanno bisogno deve essere recuperato durante la configurazione iniziale del Dockerfile. Ti consigliamo di verificare che i tuoi test passino all'interno dell'immagine compilata.
Il file threat_model.md (facoltativo ma fortemente consigliato) ti consente di fornire allo scanner la documentazione sui tuoi obiettivi di sicurezza previsti. Abbiamo riscontrato che è molto utile fornire indicazioni su come valuti la gravità dei report (ad esempio, consideri una SQLi post-autenticazione alta o critica? i buffer overflow senza exploit dimostrati sono limitati ad alta? quando un XSS memorizzato è medio, alto e critico?). Questo file può anche indicare cosa fa il progetto, dove entra l'input non attendibile, quali componenti contano e quali sono fuori ambito, come vorresti che apparissero report e patch, o qualsiasi altra cosa tu ritenga importante o utile.
Ti suggeriamo di eseguire due comandi prima di aprire una pull request:
tools/validate.py verifica projects/<name>/ rispetto alle regole sopra.tools/check <name> compila il tuo progetto nel modo in cui farà il nostro scanner e apre una shell nell'immagine finita senza rete. Se i tuoi test passano in questo container, è probabile che il nostro scanner funzioni con il tuo progetto. tools/check --qemu <name> fa lo stesso all'interno di macchine virtuali configurate come quelle dello scanner.Questi strumenti richiedono che il tuo host abbia installato git, Docker e Python 3 con PyYAML (pip install pyyaml); --qemu richiede Linux su x86-64 con QEMU invece di Docker.
primary_contact con un messaggio di errore.primary_contact e a eventuali CC aggiuntivi con i passaggi di riproduzione e una patch proposta, ove disponibile.Puoi modificare il tuo progetto in qualsiasi momento con una PR. Per annullare la registrazione del tuo progetto, imposta il campo disabled su true per sospendere i report oppure rimuovi projects/\<name\>/ per ritirare completamente il progetto.
tools/check esegue il Dockerfile del tuo progetto con accesso alla rete, come farebbe docker build. Con --qemu la build viene eseguita all'interno di una macchina virtuale, il che la tiene lontana dai tuoi file, ma può comunque raggiungere servizi sul tuo computer e sulla tua rete locale. Controlla solo progetti di cui ti fidi, oppure usa una macchina su cui non hai nulla da perdere.tools/check installa Claude Code nell'immagine che compila (come fa lo scanner). Claude Code è coperto dalle sue condizioni.Visita red.anthropic.com/oss-scanner.
Stato di manutenzione: questo repository è mantenuto attivamente da Anthropic. Revisioniamo e facciamo il merge solo delle pull request di registrazione (modifiche sotto projects/<name>/); non accettiamo altri contributi, incluse modifiche a tools/ o templates/. Vedi CONTRIBUTING.md per come registrarti, SECURITY.md per segnalare una vulnerabilità in questo repository e CODE_OF_CONDUCT.md.