Web Siteleri Güvenliği

Yagmur Erisik
Mar 25 · 4 min read

XML-RPC / 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.Bu 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şlemde 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 -Disable XML-RPC Pingback -stop XML-RPC Attacks gibi eklentilerin 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.

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.

Diğer Yazılar:

We write to bring the right information, to make it accessible to everyone.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store