Genel Bakış
Web uygulamaları genellikle üçüncü taraf yazılımlara dayanır: WordPress, Joomla veya Drupal gibi içerik yönetim sistemleri (CMS); sunucu taraflı çerçeveler; ve jQuery, Bootstrap veya Lodash gibi istemci taraflı kütüphaneler. Bu bileşenler güncel tutulmadığında, eski sürümlerdeki her kamuya açıklanmış güvenlik açığı anında istismar edilebilir bir saldırı yüzeyi haline gelir.
Bu kategori, OWASP Top 10 2021 listesinde altıncı sıraya (A06) yerleşmiş olup listenin başlangıcından bu yana her baskıda yer almaktadır. Risk; modern web yığınlarına eşlik eden eklenti, tema ve geçişli bağımlılık sayısıyla daha da artmaktadır — bunların her biri bağımsız bir potansiyel uzlaşma noktası oluşturur.
Sensagraph, kullanılan CMS platformlarını, eklentileri, temaları ve JavaScript kütüphanelerini otomatik olarak parmak iziyle tespit eder ve saptanan sürümleri bilinen güvenlik açığı veritabanlarıyla karşılaştırır.
Nasıl Çalışır?
Sürüm tespiti ve istismar silahlandırma öngörülebilir bir sırayı izler:
- Sürüm bilgisi ifşası: Birçok CMS kurulumu sürüm bilgisini HTML meta etiketleri (
<meta name="generator">), readme dosyaları (/readme.html,/CHANGELOG.txt), HTTP yanıt başlıkları veya sürüm sorgu dizileri içeren JavaScript dosya yolları (örn.jquery-1.11.1.min.js) aracılığıyla açığa çıkarır. - Kamuya açık güvenlik açığı eşleştirme: Sürüm belirlendikten sonra saldırganlar, o sürümü hedef alan onaylı CVE'leri bulmak için Ulusal Güvenlik Açığı Veritabanı (NVD), WPScan Güvenlik Açığı Veritabanı veya Exploit-DB gibi kaynakları sorgular.
- Otomatikleştirilmiş istismar: Popüler CMS platformları veya kütüphanelerdeki pek çok güvenlik açığının kamuya açık kavram kanıtlama (PoC) kodu mevcuttur ya da otomatik tarama ve istismar araç setlerine entegre edilmiştir; bu durum saldırganlar için beceri eşiğini önemli ölçüde düşürür.
- Eklenti ve tema riski: Örneğin WordPress'te üçüncü taraf eklentiler, açıklanan CVE'lerin büyük çoğunluğunu oluşturur. Tamamen güncellenmiş bir WordPress çekirdeği, tek bir güncel olmayan eklentiyle hâlâ savunmasız kalır.
- İstemci taraflı kütüphane riski: Güncel olmayan jQuery sürümleri, DOM tabanlı siteler arası betik çalıştırma (XSS) güvenlik açıklarıyla ilişkilendirilir (CVE-2020-11022, CVE-2020-11023). Bu açıklar, sunucu taraflı uygulama güvenli olsa bile tetiklenebilir.
- Geçişli bağımlılıklar: Birinci taraf bağımlılık, kendisi de güvenlik açığı bulunan bir kütüphaneye bağımlı olabilir; bu da uygulamanın doğrudan bir bağımlılık bildirimi olmaksızın riski devralması anlamına gelir.
İş Etkisi
Güncel olmayan bileşenlerdeki bilinen güvenlik açıklarının istismarının sonuçları, temel CVE'nin niteliğine bağlı olarak orta düzeyden yıkıcıya kadar uzanabilir:
- Uzaktan kod yürütme (RCE): Belirli CMS ve eklenti güvenlik açıkları, kimliği doğrulanmamış saldırganların sunucuda rastgele kod yürütmesine olanak tanır; bu durum sistemin tamamen ele geçirilmesine, veri sızmasına veya fidye yazılımı dağıtımına yol açabilir.
- SQL enjeksiyonu: Güncel olmayan eklentiler veya CMS sürümleri, tüm veritabanının — kimlik bilgileri, kişisel veriler (PII) ve ödeme bilgileri dahil — çıkarılmasını mümkün kılan SQL enjeksiyonu kusurları içerebilir.
- Siteler arası betik çalıştırma (XSS): Eski jQuery sürümleri gibi güvenlik açığı bulunan JavaScript kütüphaneleri, oturum çerezlerini çalan, kimlik avı katmanları oluşturan veya kullanıcıları kötü amaçlı sitelere yönlendiren kötü niyetli betikler enjekte etmek için kullanılabilir.
- Web sitesi tahrifi ve SEO zehirlenmesi: Saldırganlar, güncel olmayan CMS kurulumlarına yönelik toplu istismar araçlarını düzenli olarak tahribat veya spam bağlantısı enjekte etmek amacıyla kullanır; bu da arama motoru sıralamalarına zarar verir.
- Uyumluluk ve mevzuat riski: Bilinen CVE'ler içeren bileşenlerin çalıştırılması; PCI DSS (Gereksinim 6.3.3), GDPR Madde 32 ve zamanında yama yönetimi gerektiren ISO/IEC 27001 kontrollerini ihlal edebilir.
- Tedarik zinciri yayılımı: Ele geçirilen web siteleri, ziyaretçilere kötü amaçlı yazılım sunmak veya diğer hedeflere yönelik saldırılar için hazırlık sunucusu olarak kullanılabilir.
Nasıl Düzeltilir?
- Yazılım envanteri oluşturun: Kullanılan her CMS, çerçeve, eklenti, tema ve istemci taraflı kütüphaneyi mevcut sürümleriyle birlikte listeleyin. Composer (PHP), npm/Yarn (JavaScript) ve pip (Python) gibi araçlar bu amaçla bağımlılık kilit dosyaları oluşturabilir.
- Otomatik veya zamanlanmış güncellemeleri etkinleştirin: WordPress çekirdeği için otomatik arka plan güncellemelerini etkinleştirin. Eklentiler ve temalar için bileşen bazında otomatik güncelleme uygunluğunu değerlendirin. npm/Composer bağımlılıkları için CI/CD ardışık düzenlerine Dependabot veya Renovate gibi otomatik bağımlılık güncelleme araçlarını entegre edin.
- Güvenlik danışmanlıklarına abone olun: Satıcı güvenlik posta listelerini, WordPress Güvenlik Blogu'nu, WPScan Güvenlik Açığı Veritabanı'nı, NVD (nvd.nist.gov) ve teknoloji yığınınıza ilişkin GitHub Güvenlik Danışmanlıklarını düzenli olarak takip edin.
- Kullanılmayan bileşenleri kaldırın: Devre dışı bırakılmış ancak kurulu eklentiler veya kütüphaneler hâlâ saldırı yüzeyi oluşturur. Aktif olarak gereksinim duyulmayan bileşenleri kaldırın.
- Yazılım bileşimi analizi (SCA) aracı kullanın: Belirli bir önem eşiğinin üzerinde bilinen CVE içeren bir bağımlılık tanıtıldığında yapıları durdurmak veya uyarı vermek için CI/CD ardışık düzenine SCA entegre edin.
- Sürüm ifşasını en aza indirin: Sürüm bilgilerini açığa çıkaran dosyalara erişimi kaldırın veya kısıtlayın (örn.
/readme.html, kimliği doğrulanmamış kullanıcılar için/wp-admin/). Belirsizlik yoluyla güvenlik birincil bir kontrol olmamakla birlikte, bilgi erişilebilirliğini azaltmak fırsatçı tarayıcıları yavaşlatır. - Web uygulama güvenlik duvarını (WAF) telafi edici kontrol olarak uygulayın: Bilinen CVE istismar kalıplarını hedef alan kurallarla yapılandırılmış bir WAF, yamalar test edilip dağıtılırken geçici koruma sağlayabilir; ancak yama uygulamanın yerine geçen bir çözüm olarak değerlendirilmemelidir.
- Güncellemeleri hazırlık ortamında test edin: Güncellemeleri üretim ortamına dağıtmadan önce doğrulamak için üretimi yansıtan bir hazırlık ortamı oluşturun; böylece güncellemenin neden olduğu kesintilerin yama erteleme gerekçesi olması riski azalır.
- Yama yönetimi SLA'sı tanımlayın: Önem derecesine göre maksimum kabul edilebilir yama uygulama süresini belirleyen yazılı bir politika oluşturun (örn. kritik CVE'ler için 24–72 saat, yüksek önem dereceli CVE'ler için 7 gün, orta önem dereceli CVE'ler için 30 gün).
Kaynaklar
- OWASP Top 10 2021 – A06: Güvenlik Açığı Bulunan ve Güncel Olmayan Bileşenler
- MITRE CWE-1104 – Bakımsız Üçüncü Taraf Bileşenlerinin Kullanımı
- NIST Ulusal Güvenlik Açığı Veritabanı (NVD)
- WPScan Güvenlik Açığı Veritabanı
- CVE-2020-11022 – jQuery XSS güvenlik açığı
- CVE-2020-11023 – jQuery XSS güvenlik açığı
- GitHub Dependabot – Otomatik bağımlılık güncellemeleri
- OWASP Dependency-Check
- PCI DSS v4.0 – Gereksinim 6.3.3 (Yama Yönetimi)