Zafiyetli ve Güncel Olmayan Bileşenler Nedir?
Kullandığın kütüphane ve frameworklerin bilinen açıkları, uygulamanın da açığı hâline gelir.
Modern web uygulamaları onlarca, bazen yüzlerce üçüncü parti kütüphane ve bileşen kullanır. Bu bileşenlerden biri bilinen bir güvenlik açığına sahipse ve güncellenmemişse, uygulamanın tamamı bu açığa karşı savunmasız hâle gelir.
Neden Yaygın?
- Ekiplerin hangi bileşenleri, hangi versiyonlarda kullandığını takip etmemesi (envanter eksikliği).
- Güncellemelerin "bir şeyi bozar mı" korkusuyla ertelenmesi.
- Güncelleme sonrası test süreçlerinin zaman alması.
- Artık desteklenmeyen (end-of-life) yazılımların kullanılmaya devam etmesi.
Pratik Senaryo
Bir e-ticaret sitesi, iki yıl önce kurulan bir içerik yönetim sistemi eklentisini hiç güncellemeden kullanmaya devam ediyor çünkü "çalışıyor, dokunmayalım" yaklaşımı benimsenmiş. Bu arada eklentinin o versiyonunda bir güvenlik açığı kamuya duyuruluyor ve düzeltmesi de yayınlanıyor. Ekip bunu takip etmediği için haberi bile olmuyor. Aylar sonra otomatik tarama yapan bir saldırgan botu, internetteki güncellenmemiş sitelerini taratarak bu siteyi de buluyor ve bilinen açığı kullanarak yönetici paneline erişim sağlıyor. Bu senaryodaki en çarpıcı nokta: saldırgan özel bir çaba harcamadı, sadece "kim hâlâ eski versiyonu kullanıyor" diye otomatik tarama yaptı.
Nasıl Tespit Edilir?
Bağımlılık tarama araçları (dependency scanning) — örneğin npm audit, Dependabot, Snyk gibi araçlar — projede kullanılan bileşenlerin bilinen CVE (Common Vulnerabilities and Exposures) kayıtlarıyla eşleşip eşleşmediğini otomatik olarak kontrol eder.
Nasıl Önlenir?
- Kullanılan tüm bileşenlerin ve versiyonlarının bir envanterini (Software Bill of Materials - SBOM) tutmak.
- Güvenlik yamalarını düzenli ve hızlı şekilde uygulamak.
- Sadece resmi ve güvenilir kaynaklardan bileşen indirmek.
- Artık bakımı yapılmayan kütüphaneleri projeden çıkarmak.
Bu makale OWASP Top 10 2021 "A06:2021 – Vulnerable and Outdated Components" kategorisinin genişletilmiş Türkçe özetidir.