SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Kayıtlar

Kategori Güvenlik Açığı Bulunan ve Güncel Olmayan Bileşenler
Tipik Önem Derecesi Yüksek
OWASP A06:2021 – Güvenlik Açığı Bulunan ve Güncel Olmayan Bileşenler
CWE CWE-1104 – Bakımsız Üçüncü Taraf Bileşenlerinin Kullanımı
Diğer adlar Bilinen Güvenlik Açıkları Olan Bileşenler Kullanımı, Bağımlılık Riski, Yazılım Tedarik Zinciri Riski
Etkilenen sistemler WordPress, Joomla, Drupal, Magento, jQuery, Bootstrap, React, Angular kullanan tüm web uygulamaları
Yaygın CVE örnekleri CVE-2019-11043 (PHP-FPM), CVE-2020-11022 / CVE-2020-11023 (jQuery XSS), CVE-2022-21661 (WordPress SQL enjeksiyonu)

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?

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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

Sıkça sorulan sorular

Sürüm bilgisi çoğunlukla HTML meta jeneratör etiketleri, sürüm dizileri içeren JavaScript dosya adları, herkese açık readme veya değişiklik günlüğü dosyaları ve HTTP yanıt başlıkları aracılığıyla açığa çıkar. Otomatik tarayıcılar bu göstergeleri tek bir HTTP isteğinde saniyeler içinde tespit edebilir.

Hayır. WordPress CVE'lerinin büyük çoğunluğu, çekirdek uygulama yerine üçüncü taraf eklentiler ve temalarla ilişkilidir. Kurulu her eklentinin bağımsız olarak güncel tutulması gerekir. Kullanılmayan eklentiler ise yalnızca devre dışı bırakılmakla yetinilmeyip tamamen kaldırılmalıdır.

Evet. Güvenlik açığı, nerede barındırıldığından bağımsız olarak jQuery kodunun kendisinde bulunmaktadır. Sürüm bilinen bir XSS kusuru içeriyorsa (CVE-2020-11022 gibi), o sürümü yükleyen ve kullanan her sayfa potansiyel olarak istismar edilebilir. Yerel olarak veya CDN üzerinden barındırılmasından bağımsız olarak yamalı bir sürüme geçmelisiniz.

CMS güvenlik açığı, çekirdek platform kodunda yer alır (örn. WordPress, Drupal). Bağımlılık güvenlik açığı ise CMS veya uygulamanın dayandığı bir kütüphanede bulunur (örn. bir tema ile birlikte gelen jQuery sürümü veya bir eklentinin kullandığı PHP kütüphanesi). Her iki sınıf da aktif sürüm yönetimi gerektirmekle birlikte farklı danışmanlık kaynaklarında izlenir ve farklı düzeltme iş akışları gerektirebilir.

Araştırmalar tutarlı biçimde, özellikle WordPress eklentilerine yönelik kamuya açıklanan güvenlik açıklarının toplu istismarının CVE yayımlanmasından saatler ila günler içinde başlayabildiğini göstermektedir. Bu nedenle popüler ve yaygın CMS platformlarında haftalarca ya da aylarca süren gecikmeli yama pencereleri son derece yüksek risk oluşturmaktadır.

Hayır. WAF, yamalar uygulanırken istismar edilebilirliği azaltabilen telafi edici bir kontroldür; ancak temel güvenlik açığını gidermez. WAF kuralları atlatılabilir ve tüm istismar kalıpları kapsanmayabilir. Güvenlik açığı bulunan bileşenin yamalanması veya güncellenmesi zorunlu bir düzeltme yöntemi olmaya devam eder.