Langsung ke konten
ossscanner.org

Cara kerja

Dari tautan repositori hingga temuan terverifikasi

Pipeline ini meniru pendekatan yang dijelaskan Anthropic untuk Anthropic OSS Scanner — model ancaman, audit, pemeriksaan ulang, akar masalah, patch — dengan menggunakan model Claude mutakhir yang tersedia melalui API publik.

  1. 1

    Kloning aman

    Kami mengambil branch yang Anda minta menggunakan git clone dangkal dengan filter blob melalui HTTPS. Git hooks dinonaktifkan, symlink di-checkout sebagai file biasa, dan semua transport selain HTTPS ditolak. Alamat jaringan privat diblokir, sehingga pemindai tidak dapat diarahkan ke host internal.

    Tidak ada apa pun dari repositori yang pernah dieksekusi: tidak ada proses build, instalasi paket, atau pengujian. Checkout dihapus saat pemindaian berakhir.

  2. 2

    Inventarisasi dan pemeringkatan risiko

    Setiap file sumber teks dicatat beserta bahasa dan ukurannya. Kode vendor, file yang dihasilkan, bundel yang diminifikasi, dan file lock dilewati. Setiap file mendapat skor risiko berdasarkan sink berbahaya — penyalinan memori, eksekusi shell, deserialisasi, penyusunan SQL, perenderan templat, penggabungan path, kode kriptografi dan autentikasi — serta jalur kritis seperti parser, handler protokol, dan perutean permintaan.

  3. 3

    Model ancaman

    Jika repositori memiliki .oss-scanner/threat_model.md (file yang sama dengan yang dibaca pemindai Anthropic), SECURITY.md, atau model ancaman yang Anda berikan saat mendaftar, pemindai akan mengikutinya. Jika tidak, model akan membaca README, tata letak direktori, dan file paling berisiko, lalu menyusun model ancaman: apa proyek tersebut, dari mana input yang tidak tepercaya masuk, dan apa yang berada di luar cakupan.

    Model ancaman juga memilih file fokus, sehingga audit mengalokasikan anggarannya untuk kode yang benar-benar dapat dijangkau penyerang.

  4. 4

    Audit

    File yang paling berisiko dikemas dalam batch besar, dilengkapi nomor baris, lalu dikirim ke model penalaran bersama model ancaman. Model tersebut mencari masalah yang akan dilaporkan oleh auditor manusia yang teliti:

    • keamanan memori: buffer overflow, use-after-free, pemotongan integer
    • injeksi: SQL, perintah, template, traversal path, SSRF
    • logika autentikasi, otorisasi, dan sesi
    • deserialisasi yang tidak aman dan kebingungan parser
    • penyalahgunaan kriptografi dan penanganan rahasia

    Pemindaian cepat menggunakan Claude Haiku dengan anggaran sedang. Pemindaian mendalam untuk proyek yang terdaftar menggunakan Claude Sonnet dan membaca kode hingga empat kali lebih banyak.

  5. 5

    Verifikasi independen

    Setiap kandidat temuan dikirim ke agen verifikator terpisah dengan konteks baru. Tugasnya adalah membuktikan bahwa temuan tersebut tidak benar: menelusuri aliran data, mencari validasi di bagian lain, dan memeriksa apakah input benar-benar dikendalikan penyerang berdasarkan model ancaman. Hanya temuan yang dikonfirmasi atau dinilai mungkin benar yang dipertahankan; sisanya dihitung sebagai temuan yang ditolak.

    Untuk temuan yang dipertahankan, verifikator menulis akar masalah, reproducer, dan patch kandidat minimal dalam bentuk diff terpadu.

  6. 6

    Commit pemicu dan laporan

    Temuan duplikat dengan akar masalah yang sama digabungkan. git blame pada baris yang rentan menemukan commit terbaru yang mengubahnya — biasanya commit yang memperkenalkan bug — sehingga Anda dapat menambahkan tag Fixes: dan mencari tahu rilis mana yang terdampak.

    Laporan disimpan dengan ID acak yang tidak dapat ditebak. Anda dapat mengekspornya sebagai Markdown untuk advisori, JSON untuk perkakas, atau SARIF 2.1.0 untuk pemindaian kode GitHub.

Hal yang tidak dilakukan pemindai

  • Pemindai tidak menjalankan atau membangun kode Anda, maupun mengambil dependensi.
  • Pemindai tidak memublikasikan temuan, membuat issue, atau menghubungi siapa pun selain maintainer yang terdaftar.
  • Pemindai tidak menyimpan salinan kode sumber Anda setelah pemindaian. Laporan memuat cuplikan singkat dari baris yang terdampak.
  • Pemindai tidak menjamin apa pun: model bisa luput menemukan bug dan terkadang melaporkan bug yang sebenarnya tidak ada. Laporan tanpa temuan bukan sertifikasi keamanan.

Mengapa reproducer dikunci

Siapa pun dapat menempelkan tautan repositori publik, termasuk orang yang bukan maintainer. Akar masalah dan patch membantu pihak yang bertahan; proof of concept yang berfungsi lebih banyak membantu penyerang. Karena itu, reproducer tetap tersembunyi sampai seseorang melakukan commit file token ke repositori — bukti bahwa mereka dapat merilis perbaikan. Pendekatan ini mengikuti panduan kernel Linux bahwa reproducer untuk bug yang ditemukan AI sebaiknya dibagikan atas permintaan maintainer.

Perbedaan layanan ini dengan Anthropic OSS Scanner

Anthropic menjalankan pemindainya di dalam sandbox luring dengan proyek Anda yang dibangun dari Dockerfile. Dengan begitu, agen dapat mengompilasi dan mengeksekusi kode untuk mengonfirmasi bug secara dinamis. Layanan ini menggunakan model terkuat mereka, termasuk Claude Mythos, yang tidak tersedia untuk publik. Kami memeriksa kode secara statis menggunakan model Claude yang tersedia untuk publik. Sebagai gantinya, siapa pun dapat menggunakan ossscanner.org dalam hitungan menit, tanpa permohonan atau Dockerfile.