Dependency Check: Kullanılan Kütüphanelerdeki Açıkları Tespit Etme

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Modern yazılım geliştirme süreçlerinde yazdığımız kodun büyük bir kısmı aslında dışarıdan aldığımız hazır kütüphanelerden (Composer paketleri, NPM modülleri, Java JAR dosyaları vb.) oluşur. Ancak bu kütüphanelerdeki bir güvenlik açığı, sizin kodunuz ne kadar mükemmel olursa olsun sisteminizi saldırılara açık hale getirebilir.

OWASP Dependency-Check, projenizdeki bağımlılıkları analiz eden ve bunları bilinen güvenlik açığı veritabanları (NVD - National Vulnerability Database) ile karşılaştırarak raporlayan açık kaynaklı bir güvenlik aracıdır.

Neden Bağımlılık Taraması Yapmalıyız?​


  • [] Tedarik Zinciri Saldırıları: Doğrudan sizin kodunuza değil, kullandığınız popüler bir kütüphaneye yapılan saldırılarla sisteminize sızılabilir. [] Güncelliğini Yitirmiş Paketler: Yıllar önce eklenmiş ve güncellenmemiş bir kütüphane, bugün "kritik" seviyede bir açık barındırıyor olabilir.
  • Transitive Dependencies (Dolaylı Bağımlılıklar): Sizin kurduğunuz bir paketin, kendi içinde kurduğu başka bir paketteki açığı manuel olarak fark etmeniz imkansızdır.

En Popüler Bağımlılık Tarama Araçları​


AraçÖne Çıkan ÖzelliğiDesteklenen Diller
OWASP Dep-CheckÜcretsiz, kapsamlı raporlama.Java, .NET, JS, PHP, Ruby vb.
SnykHızlı analiz ve otomatik düzeltme.Hemen hemen tüm diller.
GitHub DependabotDoğrudan GitHub entegrasyonu.GitHub üzerindeki tüm projeler.

Pratik Uygulama: Docker Üzerinden Tarama Yapmak​


OWASP Dependency-Check aracını bilgisayarınıza kurmadan, Docker kullanarak projenizi anında tarayabilirsiniz. Özellikle PHP/XenForo projelerinde vendor klasörünü taramak için şu komutu kullanabilirsiniz:

Bash:
Mevcut dizini (projenizi) tara ve sonuçları 'report' klasörüne yaz

docker run --rm

-v $(pwd):/src

-v $(pwd)/odc-reports:/report

owasp/dependency-check

--project "Benim_Projem"

--scan /src

--format "ALL"

--out /report

Bu komut sonunda oluşan dependency-check-report.html dosyasını tarayıcınızda açarak tüm açıkları seviyeleriyle (Low, Medium, High, Critical) görebilirsiniz.

CI/CD Hattına Entegrasyon​


Güvenliği sürekli kılmak için bu taramayı her "Push" işleminde otomatik çalıştırmalısınız. İşte basit bir GitLab CI örneği:

YAML:
 dependency_scan: image: name: owasp/dependency-check entrypoint: [""] stage: test script: - /usr/share/dependency-check/bin/dependency-check.sh --project "Proje" --scan . --format HTML artifacts: paths: - dependency-check-report.html expire_in: 1 week

Güvenli Bağımlılık Yönetimi İçin İpuçları​


  1. [] Sadece İhtiyacınız Olanı Kurun: Projenize her eklediğiniz paket, yeni bir saldırı yüzeyi demektir. [] Versiyon Sabitleme: package.json veya composer.json dosyalarınızda versiyonları mümkün olduğunca kontrol altında tutun.
  2. Otomatik Güncelleme: Dependabot gibi araçları aktif ederek, açık bulunan paketlerin otomatik olarak "Pull Request" ile güncellenmesini sağlayın.

Sonuç​


Kendi yazdığınız kodun güvenliği kadar, o kodu üzerinde taşıyan kütüphanelerin güvenliği de kritiktir. Dependency Check araçlarını kullanmak, bir evin kapısını kilitlerken pencerelerin açık kalmamasını sağlamak gibidir.
 
Geri
Üst