CycloneDX 1.6 SBOM
Bileşenler, lisanslar, hash'ler.
SecAudit bir kaynak kodu deposunu, sahiplik beyan edilmişse çalışan bir hedefi de denetler. Her bulgu; dosyası, satırı ve güvenilmez girdiden tehlikeli çağrıya giden yolu ile birlikte raporlanır.
Claude Code eklentisi olarak ya da bağımsız araç olarak kullanılır. API anahtarı, ücretli plan ve ağ erişimi gerektirmez; çalışma zamanı bağımlılığı bulunmaz.
12const host = req.query.host 13exec('ping -c 1 ' + host)
CWE, bulgunun kapsadığı iki satır ve değeri taşıyan argüman — aracın yazdığı biçimiyle. Bir desen eşleyici 13. satırı görür görmez işaretler; bu çekirdek onu 12. satır oraya ulaştığı için raporlar ve kararın arkasındaki yolu da yayımlar.
Ne yapıyor
Üç aşama; hiçbiri hesap, ağ bağlantısı ya da model gerektirmez.
secaudit ./repoBir checkout, tek bir dosya ya da sahiplik beyan edildiğinde çalışan bir URL.115 detector · taint15 dilde desen detector'ları ve güvenilmez girdiyi giriş noktasından onu tüketen çağrıya kadar izleyen bir geçiş.sarif · sbom · openvex · craHer bulgu; dosyası, satırı ve yolu ile birlikte. Code scanning için SARIF; SBOM, bağımlılık kararları ve CRA kanıt paketi aynı koşudan üretilir.Tespit oranı
Recall, var olan zafiyetlerin bulunan oranıdır. Precision, raporlanan bulguların gerçek olan oranıdır. F3 ikisini birleştirir ve recall'a dokuz kat ağırlık verir; kaçırılan bir zafiyetin maliyeti yanlış alarmdan yüksektir. Tüm rakamlar Tier 0'dır: LLM, dış tarayıcı ve ağ kullanılmaz. Esas alınması gereken, soldaki dış sonuçtur — üçüncü tarafa ait veri kümesi, üçüncü tarafa ait etiketler, üçüncü tarafa ait puanlayıcı.
66 gerçek zafiyetli deponun 62 tanesi. Etiketleme bu projeden bağımsız yapıldı, puanlama kıyaslamanın kendi puanlayıcısıyla gerçekleşti. Yayımlanmış kural tabanlı referans Semgrep, aynı veri kümesinde 17.7% alıyor. Bu veri kümesi Python; JavaScript tarafı ayrıca gerçek npm paketlerindeki 573 etiketli sink üzerinde ölçülüyor ve bunların 54.4% kadarını buluyor.
62 etiketli açık ve 62 yanlış pozitif tuzağı; her tuzak, zafiyetli ikizindeki işlevin güvenli uygulamasıdır. Bu rakamlar çekirdeğin çalışmaya devam ettiğini gösterir; başka bir kod tabanı için öngörü niteliği taşımaz.
Aynı puanlayıcı, aynı koşunun daha katı okumasını F3 57.0% olarak raporlar. Kıyaslamanın kendi referanslarıyla karşılaştırma dışındaki her amaç için bu rakam kullanılmalıdır. Ham puanlayıcı çıktısı depoda bulunur; bu sayfadaki bir rakam çıktıyla örtüşmeyi bıraktığında CI başarısız olur.
Açık beyanrakamı aktarmadan önce okuyun
Tek veri kümesi üzerinde 30 koşu. İlk koşuda çekirdek bu veri kümesini görmemişti. Sonraki koşularda eklenen kurallar, kıyaslamanın kendi kaçırdığı bulgular okunarak seçildi.
Eklenen kuralların tamamı, herhangi bir SAST aracının içerdiği türdendir; hiçbiri tek bir fixture'a göre uyarlanmamıştır. Ancak seçim veri kümesine bakılarak yapılmıştır: 12.5 ile 61.2 arasındaki fark bu avantajın büyüklüğüdür. Görülmemiş bir kod tabanı için temkinli rakam 12.5'tir. Bu ölçümün dürüst devamı, bu deponun hiç okumadığı yeni bir kıyaslamadır.
Dış ölçüm30 koşunun tamamı ve her birinin maliyeti30 koşu · 62 depo · 1762 etiketKapsam15
Fixture veri kümesindeki her dilin eşleştirilmiş zafiyetli ve güvenli birer uygulaması vardır. Aşağıdaki rakamlar, deterministik katmanın her dilde aldığı skordur; tam not almayan diller de listededir.
Değerler, detector'larla birlikte yazılmış fixture'lar üzerinde ölçülmüştür. Derinlik dile göre değişir: Python ve JS/TS taint analizi ile yapısal geçişleri, diğerleri desen paketini alır. Depodaki dil matrisi koddan üretilir.
YetkilendirmePreToolUse
SecAudit bir checkout'un yanı sıra çalışan bir hedefi de denetler; kapı altına alınan yetenek budur. Pasif keşif izin gerektirmez. Canlı bir hedefe yönelik aktif test, komut çalıştırılmadan önce deterministik bir PreToolUse hook'u tarafından reddedilir; bu, modele verilmiş bir talimat değildir. Sahiplik beyan edildiğinde aynı komut çalışır. Depoya commit'lenmiş bir kapsam dosyası geçerli sayılmaz: bu dosya clone ile birlikte gelir ve operatörün yaptığı bir beyan değildir.
18 aktif desen engellendi, 12 pasif desene izin verildi; bu, her build'de hook'un kendi self-test'iyle doğrulanır — Linux ve Windows üzerinde.
Kanıt2026-09-11
Tek bir koşu; dağıtılan bileşenlerin envanterini, her bağımlılık advisory'si için bir kararı ve her bulgunun ilgili maddeye eşlenmesini üretir. AB Siber Dayanıklılık Yasası'nın zafiyet yönetimi yükümlülükleri 2026-09-11 tarihinde yürürlüğe girer. Bulgular ayrıca bir OWASP ASVS 5.0 bölümü ve — gereksinim metni destekliyorsa — bir PCI DSS 4.0.1 maddesi taşır.
Paket, uyumluluk sürecine girdidir; sertifika değildir ve bunu kendi çekince notunda belirtir. Kaynak taramasından beyan edilemeyen gereksinimler, gerekçesiyle birlikte reddedilmiş olarak listelenir.
Bileşenler, lisanslar, hash'ler.
Her advisory için durum ve gerekçe.
Bulgular Ek I maddelerine eşlendi.
GitHub code scanning'e yüklenir.
Sınırlar
Elle güncellenen bir sınırlılıklar sayfası tek bir sürüm boyunca doğrudur, sonrasında eksik beyana dönüşür. Bu liste detector tablosundan ve ölçülmüş kaçırmalardan üretilir; koddan geri kalamaz.
Temiz bir rapor, sınırların tamamı okunmadan sorunsuzluk anlamına gelmez. Aracın ürettiği her rapor kendi sınırlarını da belirtir: ulaşılamayan bir alan varsa rapora kaydedilir.
İş mantığı hataları
İhlal edilen kurallar ürüne aittir ve analizcinin okuyabileceği hiçbir yerde kayıtlı değildir. Bu sınıfa yalnızca model katmanı ulaşır ve o katmanın ölçülmüş bir skoru yoktur.
Handler düzeyinde bozuk erişim denetimi
Dış veri kümesindeki 76 etiketli vakadan 2 tanesi tespit edildi. Bu etiketlerin çoğu bir fonksiyon tanımının üzerindedir: kusur, handler'ın döndürdüğü her şeyin özelliğidir.
Yarış koşulları ve TOCTOU
Tespit, iş parçacıklarının araya girme modelini gerektirir. Sözdizimsel bir geçiş tek bir yürütmeyi okur, eşzamanlı iki yürütmeyi değil.
Dinamik çağrı çözümlemesinin arkasındaki kod
Bir değişken, decorator ya da dağıtım tablosu üzerinden yapılan çağrılar çözümlenmez. Bu kenarın tahmin edilmesi, analizin gerçek sink'leri yanlış fonksiyona atfetmeye başlaması demektir.
Kurulum
En sık kullanılan iki yöntem. Toplam 6 yüzey vardır: MCP sunucusu, GitHub Action, konteyner imajı ve pre-commit hook'ları kalan dördüdür. Hepsi aynı çekirdeği çalıştırır, hiçbiri diğerinin kısıtlanmış sürümü değildir.
Claude Code eklentisi olarak:
/plugin marketplace add mtvrkan/secaudit
/plugin install secaudit@secaudit-kit
Bağımsız kullanım — Claude Code, API anahtarı ve ücretli plan gerekmez, çalışma zamanı bağımlılığı bulunmaz. CI'da, cron'da ve ağdan yalıtılmış makinelerde çalışır:
python3 -m secaudit_core.cli ./repo --min high
python3 -m secaudit_core.cli ./repo --format sarif # GitHub code scanning
python3 -m secaudit_core.cli ./repo --format cra # EU CRA evidence pack
Kurulum6 dağıtım yüzeyinin tamamı4 komut · 6 MCP aracı · 0 bağımlılık
SecAudit bir depoyu ya da sahipliği beyan edilmiş çalışan bir hedefi tarar. Deterministik katman yalnızca Python gerektirir ve kendi kapsam sınırlarını raporlar.