Web Sayfalarında Güvenlik – Xml-Rpc ve PingBack

Merhaba,
Size web sitelerinde çokça karşılaştığım xmlrpc protokolünün zafiyet olarak değerlendirilmesi ve zafiyetin kapatılmasına yönelik yöntemlerini anlatmak istiyorum. Bu açığı daha çok wordpress yapısı kullanılarak hazırlanmış platformlarda görmek mümkün. Bende çözümleri WP üzerinden anlatmaya çalışacağım.

Öncelikle XmlRpc nedir bundan başlıyayım.  
En temelinde XmlRpc protokolü içinde xml formatındaki verileri barındırır.





Forum, web siteleri gibi içeriklerin birbirleri ile etkileşimini kuran bu teknolojisi arka planda http post metodunu kullanır. Bu sayede blog içinde veya farklı bloklar arasında bir veri trafiği oluşur. Ancak bu sırada wp'in pingback özelliğinin kötüye kullanılması sonucundan bu zafiyet ortaya çıkmaktadır.

Şimdi sitenizde bu açık var mı? 
https://website/xmlrpc.php şeklinde sorguladığımızda bize dönen cevap 
“XML-RPC server accepts POST requests only”  ise bu açığa sahipsiniz demektir.



Açığın sebep olacağı etkiler nedir? İlk olarak bu açığı kullanarak sitenize ddos saldırısı yapılabilmesi mümkün olup sitenizin performansı düşürülecek ve site isteklere cevap veremeyecek hale gelecektir. 



Açıktan faydalanıp sitenize yapılan saldırılar olduysa bunu da /var/log/....acccess.log dosyası altında görebilirsiniz. “POST /xmlrpc.php HTTP/1.0” şeklinde loglar görürseniz daha önce sitenizi ziyarete gelenlerin olduğunu anlayabilirsiniz. 

Zafiyetin nasıl kullanılacağı ve sitenin nasıl kullanılmaz hale getirileceğinin detaylarına bu yazımda girmeyeceğim.  

İkinci olarak bu açığın kullanımı ile brute force saldırıları yapılması mümkündür. Halen en çok kullanılan parolaların zayıf parola olarak kullanıldığı günümüzde panel parolalarının ele geçirilmesi çok zor olmayacaktır. Kullandığınız parolanın ortalama kaç günde kırılabileceğini görmek için bu siteyi ziyaret edebilirsiniz. https://password.kaspersky.com/
Site login arayüzüne girişte reCAPTCHA kullanımı yerinde olacaktır.


Açığı nasıl kapatırız sorusuna birden fazla cevap mevcut. Siteniz içerisinde XMLRPC protolünü kullanmıyor iseniz sizin için iki seçenek mevcut. İlk  yöntem WP içine bir eklenti kurmak. Eklentinin adı Disable XML-RPC. Tüm eklentileri WP ara yüzünden Eklenti-Plugins ara yüzünden kurabilirsiniz. Daha sonra etkinleştirme işlemini gerçekleştirebilirsiniz.

İşlemi yaptıktan sonra https://website/xmlrpc.php sayfasını yeniden çağırdığınızda artık “XML-RPC server accepts POST requests only”  sayfası karşınıza gelmiyor ve 404,403, sayfa bulunamadı mesajı alıyorsanız tebrikler açığı kapattınız demektir.

İlk yöntem olmaz veya eklenti kurmak istemezseniz ikinci yöntem .htaccess dosyası üzerinde aşağıdaki değişiklikleri yapmanız ile olacaktır.

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
# END protect xmlrpc.php

Bu iki işlem de protokolün veri trafiğini tamamen kapatacaktır.

Protokolün kullanımı siteniz içerisinde mevcut ise bu işlemin yapılması farklı sorunlara yol açabilir. İşleyişin etkilenip etkilenmediğinin kontrolü için önce elbette bir test yapılması gerekli olacaktır. 
Açığı kapatmak ve zafiyetin giderilmesi için  WP zengin eklentilerinden de faydalanabilir.
Control XML-RPC Publishing - Stop XML-RPC Attack - Disable XML-RPC Pingback eklentilerinin kurulup ayarlarının yapılması da bu noktada size destek olacak özelliğe sahip bir eklentiler olarak önerilmektedir.




Yukarıdaki eklentiler sitenizi işleyişi etkiliyor ise çözüm olarak WAF kullanımı ve gerekli kuralların yazılması saldırıları önceleyecektir. (wp.getUsersBlogs metodu ile WAF'ı geçip saldırılar yapılması mümkün olabilir) Özellikle brute force ataklarını engellemek için tema içine farklı kodlar yazılarak engelleme yapılabilir. 

Bonus 

1-Size birde yine WP’in kendine ait bir eklentiden bahsetmek istiyorum. WPscan (WordPress Security Scanner) WP üzerine kurulan bir eklenti. Bu eklenti sayesinde sitenizde kullanılan tüm eklentiler ve WP’nin framework’ü ve kullandığınız tema için çıkardığı güncellemelerden sizin belirleyeceğiniz aralıklarla haberdar oluyorsunuz ve web siteniz için gerekli güvenlik önlemlerini alabiliyorsunuz. Eklentinin Ücretli ve ücretsiz versiyonları mevcut.

2-WP platformunu kullanan sitenizin şuan sağlık durumunun ne halde olduğunu görmek için https://wpsec.com/ adresini ziyaret edebilirsiniz. Bu site ile kullandığınız tema ve eklentilerin mecut durumunu değerlendirip size bir değerlendirme notu verecektir.

Siz tüm güvenlik önlemlerinizi alsanız da site veri tabanı ve içeriklerin yedeğini almayı ihmal etmeyiniz. 

3- Bir başka kullanılabilir eklenti Jetpack. Bu eklenti güvenlik araçları başta olmak üzere (xml-rpc) pek çok hizmeti barındırıyor. Yine ücretli ve ücretsiz versiyonları mevcut.

4- Geliştirme için https://pantheon.io/ üzerinden bir hesap açıp drupal ve wordpress projelerinizde çalışabilir ve bu eklentileri deneyebilirsiniz.

Önerilen Makaleler ;
1-	https://www.cozumpark.com/guclu-sifre-nedir-nasil-olusturulur/
2-	https://www.cozumpark.com/ddos-nedir-ddos-saldirisi-nasil-yapilir-ve-nasil-engellenir/ 
3-	https://www.cozumpark.com/wordpress-kullanan-web-sayfalarinda-guvenlik-acigi/ 


Exit mobile version