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.
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:
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.
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:
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.
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ği | Desteklenen Diller |
|---|---|---|
| OWASP Dep-Check | Ücretsiz, kapsamlı raporlama. | Java, .NET, JS, PHP, Ruby vb. |
| Snyk | Hızlı analiz ve otomatik düzeltme. | Hemen hemen tüm diller. |
| GitHub Dependabot | Doğ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ı
- [] 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.
- 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.