Paano ito gumagana
Mula sa link ng repository hanggang sa mga na-verify na finding
Ginagaya ng pipeline ang inilarawan ng Anthropic para sa OSS Scanner nito — threat model, audit, muling pagsusuri, root cause, patch — at gumagamit ito ng mga frontier Claude model na available sa pamamagitan ng pampublikong API.
- 1
Ligtas na pag-clone
Kinukuha namin ang branch na hiniling mo gamit ang shallow, blob-filtered na git clone sa HTTPS. Naka-disable ang mga Git hook, kinukuha ang mga symlink bilang mga ordinaryong file, at tinatanggihan ang lahat ng transport maliban sa HTTPS. Bina-block ang mga address ng pribadong network para hindi maituro ang scanner sa mga internal host.
Hindi kailanman ine-execute ang anumang mula sa repository: walang build, pag-install ng package, o test. Binubura ang checkout kapag natapos ang scan.
- 2
Pag-iimbentaryo at pagraranggo ng panganib
Inililista ang bawat source file na teksto kasama ang wika at laki nito. Nilalaktawan ang naka-vendor na code, mga generated file, minified bundle at lockfile. Binibigyan ang bawat file ng risk score batay sa mga mapanganib na sink — pagkopya ng memory, pag-execute ng shell, deserialization, pagbuo ng SQL, pag-render ng template, pagsasama ng path, crypto at auth code — at sa mga kritikal na path gaya ng mga parser, protocol handler at pagruruta ng request.
- 3
Threat model
Kung mayroon ang repository ng .oss-scanner/threat_model.md (ang parehong file na binabasa ng scanner ng Anthropic), SECURITY.md o threat model na ibinigay mo noong nagpatala ka, susundin ito ng scanner. Kung wala, babasahin ng isang modelo ang README, layout ng mga directory at mga file na may pinakamataas na panganib, at gagawa ito ng draft: kung ano ang proyekto, saan pumapasok ang hindi pinagkakatiwalaang input at ano ang hindi saklaw.
Pinipili rin ng threat model ang mga file na pagtutuunan, para ituon ng audit ang budget nito sa code na maaabot talaga ng attacker.
- 4
Suriin
Pinagsasama-sama sa malalaking batch ang mga file na may pinakamataas na panganib, kasama ang mga numero ng linya, at ipinapadala sa isang reasoning model kasama ang threat model. Hinahanap nito ang mga isyung iuulat ng isang masusing auditor na tao:
- kaligtasan ng memorya: mga overflow, use-after-free, integer truncation
- injection: SQL, command, template, path traversal, SSRF
- lohika ng authentication, authorization at session
- hindi ligtas na deserialization at kalituhan sa parser
- maling paggamit ng cryptography at pangangasiwa ng mga lihim
Gumagamit ang mga mabilisang scan ng Claude Haiku na may katamtamang budget. Gumagamit naman ang mga malalim na scan para sa mga naka-enroll na proyekto ng Claude Sonnet at nagbabasa ng hanggang apat na beses na mas maraming code.
- 5
Hiwalay na pag-verify
Ipinapadala ang bawat candidate finding sa hiwalay na verifier agent na may bagong context. Tungkulin nitong pabulaanan ang finding: sundan ang daloy ng data, hanapin kung may validation sa ibang bahagi, at tiyakin kung kontrolado talaga ng attacker ang input ayon sa threat model. Nananatili lamang ang mga finding na kinukumpirma nito o tinataya nitong malamang na totoo; binibilang bilang tinanggihan ang iba.
Para sa mga finding na nananatili, isinusulat ng verifier ang root cause, isang reproducer at isang minimal na candidate patch bilang unified diff.
- 6
Pagtukoy sa introducing commit at ulat
Pinagsasama ang mga duplicate na may iisang root cause. Ginagamit ang git blame sa mga bulnerableng linya para hanapin ang pinakahuling commit na nagbago sa mga ito — karaniwan, ito ang commit na nagpasok ng bug — para maidagdag mo ang Fixes: tag at matukoy kung aling mga release ang apektado.
Iniimbak ang ulat gamit ang random at imposibleng mahulaang ID. Maaari mo itong i-export bilang Markdown para sa advisory, JSON para sa mga tool, o SARIF 2.1.0 para sa GitHub code scanning.
Ano ang hindi ginagawa ng scanner
- Hindi nito pinapatakbo o binu-build ang iyong code, at hindi ito kumukuha ng mga dependency.
- Hindi ito naglalathala ng mga finding, nagbubukas ng mga issue o nakikipag-ugnayan kaninuman maliban sa mga nagpatala nang maintainer.
- Hindi ito nagtatago ng kopya ng iyong source code pagkatapos ng scan. Maiikling snippet ng mga apektadong linya ang laman ng mga ulat.
- Wala itong ginagarantiya: may mga bug na hindi nakikita ng mga modelo at kung minsan ay mali ang iniuulat ng mga ito. Hindi sertipikasyon ng seguridad ang malinis na ulat.
Bakit naka-lock ang mga reproducer
Kahit sino ay maaaring mag-paste ng pampublikong link ng repository, kabilang ang mga hindi maintainer. Nakakatulong sa mga defender ang root cause at patch; pangunahing nakakatulong sa mga attacker ang gumaganang proof of concept. Kaya nananatiling nakatago ang mga reproducer hanggang may mag-commit ng token file sa repository — patunay na kaya nilang maglabas ng fix. Alinsunod ito sa gabay ng Linux kernel na dapat ibahagi ang mga reproducer para sa mga bug na natuklasan ng AI kapag hiniling ng maintainer.
Paano ito naiiba sa OSS Scanner ng Anthropic
Pinapatakbo ng Anthropic ang scanner nito sa mga offline sandbox kung saan binubuo ang iyong proyekto mula sa Dockerfile; dahil dito, nakakapag-compile at nakakapagpatakbo ng code ang mga agent para kumpirmahin ang mga bug nang dinamiko. Ginagamit nito ang pinakamalalakas nitong modelo, kabilang ang Claude Mythos, na hindi available sa publiko. Statically naming binabasa ang code gamit ang mga Claude model na available sa publiko. Kapalit nito, magagamit ng kahit sino ang ossscanner.org sa loob lang ng ilang minuto, nang walang aplikasyon o Dockerfile.