Rehber
SAST araçları karşılaştırması: neyi bulurlar, neyi kaçırırlar
SAST araçları ne yapar, yaygın kullanılan sekiz araç yaklaşım, dil ve lisans açısından nasıl ayrışır ve statik analiz yapay zekâ ile üretilen kodda neyi kaçırır.
· 9 dk okuma · Yazan: vetkit ekibi


SAST aracı nedir
Bir SAST (statik uygulama güvenliği testi) aracı kaynak kodunuzu çalıştırmadan okur ve güvenlik açığı gibi görünen kodu raporlar: bir SQL sorgusuna ulaşan istek verisi, kullanıcı girdisinden oluşturulan bir shell komutu, devre dışı bırakılmış bir sertifika kontrolü, parolalar için kullanılan zayıf bir hash. Yalnızca kaynak koda ihtiyaç duyduğu için, uygulama deploy edilmeden çok önce, her commit’te çalışabilir.
SAST, güvenlik testinin birkaç türünden biridir. SCA (yazılım bileşen analizi) bağımlılıklarınızda bilinen güvenlik açıklarını kontrol eder, secret scanning commit edilmiş kimlik bilgilerini arar, DAST (dinamik test) ise çalışan bir uygulamayı yoklar. Bir SAST aracı bunların hiçbirini yapmaz; bu yüzden çoğu ekip onu en azından bağımlılık ve secret taramasıyla birlikte kullanır.
SAST araçları nasıl ayrışır
Aynı kod üzerinde iki aracı denediğinizde fark edeceklerinizin çoğunu dört fark açıklar.
- Analizin ne kadar derine indiği. Desen eşleştirme, bilinen kötü bir kalıba benzeyen kodu bulur. Taint ya da veri akışı analizi bir değeri girdiği yerden (bir istek) kullanıldığı yere (bir sorgu) kadar takip eder. Değerleri fonksiyonlar ve dosyalar arasında takip etmek daha fazla gerçek sorun bulur ve ticari sürümlerin ücretsiz olanlardan genellikle ayrıştığı yer burasıdır.
- Tek dil mi, çok dil mi. Tek dile odaklanan araçlar kendi ekosistemlerini iyi tanır. Çok dilli araçlar karma bir kod tabanı için tek bir rapor verir.
- Nerede çalıştığı. Bazıları yerelde ya da CI’da çalıştırdığınız bir komuttur. Diğerleri ise kaynak kontrol sisteminize bağlanan ve panolar, pull request yorumları ve politikalar ekleyen barındırılan platformlardır.
- Kendi kurallarınızı yazıp yazamadığınız. Okunabilir kural biçimleri, ekibinizin kendi kurallarını kodlamayı pratik hâle getirir.
Sekiz SAST aracı yan yana
Bunlar yaygın kullanılan araçlardır ve her grup içinde alfabetik olarak sıralanmıştır. Tablo, her projenin kendi dokümantasyonunun ne söylediğini kaydeder; bir sıralama değildir ve araçları birbirine karşı benchmark etmedik.
| Araç | Yaklaşım (dokümantasyonuna göre) | Diller | Lisans | SARIF çıktısı |
|---|---|---|---|---|
| CodeQL (GitHub code scanning) | Koddan bir veritabanı oluşturur ve üzerinde anlamsal sorgular çalıştırır | C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust, Swift ve GitHub Actions iş akışları | CLI herkese açık depolarda ücretsiz kullanılabilir; özel depolar GitHub Code Security lisansı gerektirir | Evet |
| Checkmarx One SAST | Kod öğelerinden ve veri akışlarından bir graf oluşturur ve sorgular çalıştırır; özel sorgular desteklenir | Java, C#, C/C++, PHP, JavaScript/TypeScript, Python ve Go dahil çok dilli | Ticari | Evet |
| Opengrep | Taint analiziyle desen kuralları; Semgrep kurallarıyla uyumlu | 30+ dil | Açık kaynak, LGPL 2.1 | Evet |
| Semgrep | Eşleştirdikleri koda benzeyen desen kuralları. Community Edition tek bir fonksiyon ya da dosya içinde analiz yapar; ticari Semgrep Code dosyalar ve fonksiyonlar arası analiz ekler | 30+ dil | Motor açık kaynak, LGPL 2.1; AppSec Platform tescilli | Evet |
| Snyk Code | Veri akışı ve taint analizi yapan anlamsal bir analiz motoru | Java/Kotlin, JavaScript/TypeScript, Python, Go, C#, PHP, Ruby ve Swift dahil çok dilli | Ücretsiz planı olan ticari barındırılan servis | Evet |
| SonarQube | Kod kalitesi ve güvenlik kuralları; injection kuralları için taint analizi SonarQube Server ve Cloud’da mevcut | Sürümler genelinde 40+ dil ve framework | Community Build açık kaynak, LGPL 3.0; Server ve Cloud ticari | Diğer araçlardan SARIF içe aktarır |
| Bandit | Her dosya için bir sözdizimi ağacı oluşturur ve üzerinde eklentiler çalıştırır | Yalnızca Python | Açık kaynak, Apache 2.0 | Evet, isteğe bağlı bir ek paketle |
| gosec | Sözdizimi ağacı kuralları, SSA tabanlı analizörler ve taint analizi | Yalnızca Go | Açık kaynak, Apache 2.0 | Evet |
Brakeman, Ruby on Rails için iyi bilinen bir başka tek framework aracıdır. Deposu onu kendi kamusal kullanım lisansı altında ticari olmayan kullanım için ücretsiz olarak tanımlıyor; bu yüzden onu ticari bir servise entegre etmeden önce koşulları kontrol edin.
Bunların birçoğu artık kendi adlarıyla yapay zekâ destekli düzeltme ya da önceliklendirme sunuyor; örneğin CodeQL uyarıları için Copilot Autofix, Semgrep Multimodal, Snyk Agent Fix ve SonarQube AI CodeFix. Bu alanda adlar, sürümler ve fiyatlar sık değişir; karar vermeden önce her sağlayıcının güncel sayfasını okuyun.
Nasıl seçmeli
- Tek dil, küçük ekip. Stack’inize uygun tek dilli araçla başlayın (Python için Bandit, Go için gosec). Ücretsizdir, hızlı çalışır ve CI’a eklemesi kolaydır.
- Karma kod tabanı, açık kaynak tercihi. Opengrep ya da Semgrep Community Edition gibi kural tabanlı çok dilli bir motor, okuyup genişletebileceğiniz kurallarla birçok dili kapsar.
- Her şey GitHub’da. GitHub code scanning üzerinden CodeQL, ek bir servis gerektirmeden uyarıları pull request’lere taşır. Bkz. GitHub Advanced Security ve vetkit.
- Daha derin dosyalar arası analize, panolara ve politikalara ihtiyacınız var. Ticari platformların sattığı şey bu. Onları özellik listelerine göre değil, kendi kodunuz üzerinde karşılaştırın. Bkz. Semgrep ve vetkit ile Snyk ve vetkit.
Hangisini seçerseniz seçin, SARIF çıktısı üreten bir aracı tercih edin. SARIF, bulguları GitHub code scanning’e ya da başka bir panoya göndermenizi ve ileride araçlar arasında geçiş yapmanızı sağlayan ortak biçimdir. SARIF rehberi bunun nasıl yapılacağını anlatıyor.
SAST neyi kaçırır
SAST güvensiz kod kalıplarını bulur. Yazılımda ters giden şeylerin çoğu, özellikle de bir yapay zekâ asistanıyla hızla yazılmış yazılımlarda, tek bir dosyadaki bir kalıp değildir.
| Sorun | SAST neden tek başına yakalamaz | Ne yakalar |
|---|---|---|
| Var olmayan ya da geçen hafta kaydedilmiş bir paket | Import ifadesi geçerli bir koddur | Herkese açık registry’lere karşı bağımlılık kontrolleri |
| Commit edilmiş kimlik bilgileri | SAST kurallarının çoğu gizli bilgi biçimlerine değil, kod davranışına bakar | Secret scanning |
| Bağımlılıklardaki bilinen güvenlik açıkları | Açığı olan kod sizin deponuzda değildir | Yazılım bileşen analizi |
| Kullanıcılar arasında eksik yetkilendirme | Kod sözdizimsel olarak sorunsuzdur; eksik kural ürününüzün tasarımında yaşar | İnceleme ve iki hesapla yapılan bir test |
| Yarım kalmış ya da yer tutucu implementasyonlar | Bir güvenlik kalıbı değildir | Kod kalitesi ve yapay zekâ riski kontrolleri ile inceleme |
| Zaman aşımı yok, döngü içinde sorgular, hata raporlaması yok | Güvenilirlik sorunlarıdır, çoğu güvenlik kural setinin dışında kalır | Production’a hazırlık kontrolleri |
| Yanlış yapılandırılmış barındırma ya da veritabanı izinleri | Ayar kaynak kodda değil, bir konsoldadır | Deploy edilmiş ortamın kontrolü |
Temiz bir SAST raporunun yayına hazır kodla aynı şey olmamasının nedeni bu. Vibe coding’de neyin ters gittiğini anlatan rehber ve uydurulan paketler rehberi, yapay zekâ destekli kod için en önemli durumları tek tek ele alıyor.
vetkit’in yeri
vetkit kendi başına bir SAST motoru değil. Statik analizi daha geniş bir raporun parçalarından biri olarak çalıştıran bir depo denetimidir. Kod güvenliği için, herkese açık kontrol kataloğunda listelenen 663 birinci taraf kuralla Opengrep’i kullanır; bu kontroller seçildiğinde Python için Bandit’i ve Go için gosec’i ekler. Bunun çevresinde secret scanning, bağımlılık güvenlik açığı ve paketin var olup olmadığı kontrollerini, kod kalitesi, yapay zekâ kodu riski ve production’a hazırlık kontrollerini çalıştırır ve bulguları takip edilen işlere dönüştürür. Bulgular SARIF olarak dışa aktarılabilir.
Yukarıdaki araçlardan birini zaten kullanıyor ve memnunsanız, kullanmaya devam edin. vetkit ikinci tablodaki satırlar için işe yarar; erken erişim aşamasındadır ve gizli bilgileri, bilinen bağımlılık açıklarını ve temel güvenlik yapılandırmasını kapsayan ücretsiz bir Security Quick Scan sunar.
Kaynaklar
Diğer araçlarla ilgili ifadeleri tarihinde kendi dokümantasyonlarından ya da depolarından okuduk. Ürünler hızla değişir; son sözü her projenin kendi sayfaları söyler:
- CodeQL ile code scanning hakkında ve CodeQL CLI hakkında
- Checkmarx One SAST tarayıcısı
- Opengrep deposu
- Semgrep Community Edition ve AppSec Platform
- Snyk Code dokümantasyonu
- SonarQube nedir ve SonarQube Community Build deposu
- Bandit dokümantasyonu
- gosec deposu
- Brakeman deposu
Ürün adları ilgili sahiplerinin ticari markalarıdır. vetkit bu şirketlerle bağlantılı değildir; onlar tarafından onaylanmamış veya desteklenmemiştir. Adlar yalnızca araçları tanımlamak için kullanılmıştır. Güncelliğini yitirmiş bir şey mi fark ettiniz? contact@vetkit.dev adresine e-posta gönderin, düzeltelim.