Nasıl çalışır
Depo bağlantısından doğrulanmış bulgulara
İşlem hattı, Anthropic'in OSS Scanner için açıkladığı süreci temel alır: tehdit modeli, denetim, yeniden kontrol, kök neden, yama. Herkese açık bir API üzerinden sunulan en gelişmiş Claude modelleriyle oluşturulmuştur.
- 1
Güvenli klonlama
İstediğiniz dalı, HTTPS üzerinden sığ ve blob filtreli bir git clone ile alırız. Git hook'ları devre dışı bırakılır, sembolik bağlantılar düz dosyalar olarak çalışma ağacına alınır ve HTTPS dışındaki tüm aktarım yöntemleri reddedilir. Özel ağ adresleri engellenir; bu nedenle tarayıcı dahili sunuculara yönlendirilemez.
Depodaki hiçbir şey çalıştırılmaz: derleme, paket kurulumu veya test yapılmaz. Tarama sona erdiğinde çalışma ağacı silinir.
- 2
Envanter ve risk sıralaması
Her metin kaynak dosyası, dili ve boyutuyla birlikte listelenir. Üçüncü taraf olarak depoya eklenmiş kodlar, oluşturulmuş dosyalar, küçültülmüş paketler ve kilit dosyaları atlanır. Her dosyaya; tehlikeli noktalara (bellek kopyalama, kabuk komutlarının çalıştırılması, serileştirme çözme, SQL oluşturma, şablon işleme, yol birleştirme, kripto ve kimlik doğrulama kodu) ve ayrıştırıcılar, protokol işleyicileri ve istek yönlendirme gibi yoğun kullanılan kod yollarına dayalı bir risk puanı verilir.
- 3
Tehdit modeli
Depoda .oss-scanner/threat_model.md (Anthropic'in tarayıcısının da okuduğu dosya), SECURITY.md veya kayıt sırasında sağladığınız bir tehdit modeli varsa tarayıcı bunu izler. Aksi durumda bir model README'yi, dizin yapısını ve en riskli dosyaları inceleyerek projenin ne olduğunu, güvenilmeyen girdilerin nereden geldiğini ve kapsam dışı olanları açıklayan bir taslak hazırlar.
Tehdit modeli ayrıca odaklanılacak dosyaları seçer; böylece denetim bütçesi, saldırganın gerçekten erişebileceği koda ayrılır.
- 4
Denetim
En riskli dosyalar, satır numaralarıyla birlikte büyük gruplar hâlinde derlenir ve tehdit modeli eklenerek bir akıl yürütme modeline gönderilir. Model, dikkatli bir insan denetçinin bildireceği sorunları arar:
- bellek güvenliği: arabellek taşmaları, serbest bırakılmış belleğin kullanılması, tamsayı kesilmesi
- enjeksiyon: SQL, komut, şablon, yol geçişi, SSRF
- kimlik doğrulama, yetkilendirme ve oturum mantığı
- güvenli olmayan serileştirmeyi geri yükleme ve ayrıştırıcı karışıklığı
- kriptografinin hatalı kullanımı ve gizli bilgilerin yönetimi
Hızlı taramalarda orta düzeyde bir bütçeyle Claude Haiku kullanılır. Kayıtlı projeler için derin taramalarda Claude Sonnet kullanılır ve dört kata kadar daha fazla kod incelenir.
- 5
Bağımsız doğrulama
Her olası bulgu, bağlamı sıfırlanmış ayrı bir doğrulayıcı ajana gönderilir. Görevi bulgunun yanlış olduğunu göstermeye çalışmaktır: veri akışını izlemek, başka bir yerde doğrulama yapılıp yapılmadığına bakmak ve tehdit modeline göre girdinin gerçekten saldırganın kontrolünde olup olmadığını denetlemek. Yalnızca doğruladığı veya olası bulduğunu değerlendirdiği bulgular kalır; diğerleri reddedilmiş olarak sayılır.
Kalan bulgular için doğrulayıcı kök nedeni, hatayı yeniden üreten bir girdiyi ve birleşik diff biçiminde minimal bir aday yamayı yazar.
- 6
İlgili commit ve rapor
Aynı kök nedeni paylaşan yinelenen bulgular birleştirilir. Güvenlik açığı bulunan satırlardaki git blame, bu satırlara dokunan en son commit'i (genellikle hatayı ortaya çıkaran commit'i) bulur; böylece bir Fixes: etiketi ekleyebilir ve hangi sürümlerin etkilendiğini belirleyebilirsiniz.
Rapor, rastgele oluşturulmuş ve tahmin edilmesi mümkün olmayan bir ID altında saklanır. Bir güvenlik duyurusu için Markdown, araçlarla işlemek üzere JSON veya GitHub kod taraması için SARIF 2.1.0 biçiminde dışa aktarabilirsiniz.
Tarayıcının yapmadıkları
- Kodunuzu çalıştırmaz, derlemez veya bağımlılıkları indirmez.
- Bulguları yayımlamaz, sorun kaydı açmaz veya kayıtlı proje sorumluları dışında kimseyle iletişime geçmez.
- Tarama sonrasında kaynak kodunuzun bir kopyasını saklamaz. Raporlarda etkilenen satırlardan kısa alıntılar bulunur.
- Hiçbir şeyi garanti etmez: modeller hataları gözden kaçırabilir ve bazen yanlış bulgular bildirebilir. Temiz bir rapor, güvenlik sertifikası değildir.
Hataları yeniden üreten girdiler neden kilitli
Herkes, proje sorumlusu olmasa bile herkese açık bir depo bağlantısı yapıştırabilir. Kök neden ve yama savunuculara yardımcı olurken çalışan bir kavram kanıtı çoğunlukla saldırganlara yarar. Bu nedenle, birinin düzeltme gönderebildiğini kanıtlayan bir belirteç dosyası depoya commit edilene kadar hatayı yeniden üreten girdiler gizli tutulur. Bu yaklaşım, yapay zekânın bulduğu hataları yeniden üreten girdilerin proje sorumlusunun talebi üzerine paylaşılması gerektiğini belirten Linux çekirdeği kılavuzunu izler.
Bu tarayıcının Anthropic'in OSS Scanner'ından farkı
Anthropic, tarayıcısını çevrimdışı korumalı alanlarda çalıştırır ve projenizi Dockerfile ile derler; böylece ajanlar hataları dinamik olarak doğrulamak için kodu derleyip çalıştırabilir. Claude Mythos da dâhil olmak üzere en güçlü modellerini kullanır; bu modeller herkese açık değildir. Biz kodu, herkese açık Claude modelleriyle statik olarak inceleriz. Buna karşılık herkes ossscanner.org'u başvuru yapmadan veya Dockerfile kullanmadan birkaç dakika içinde kullanabilir.