WordPress Dünya’nın en çok tercih edilen içerik yönetim sistemlerinden bir tanesidir. İnternette yer alan birçok websitesinin temelini WordPress oluşturmakta ve bu durum dijital korsanlarından ilgisini çekmektedir.
Birçok WordPress kullanıcısının unuttuğu bir özellik olan XML-RPC özelliği WordPress’te bir güvenlik sorunu oluşturabilmektedir.
Bir önce ki blog yazımız olan WordPress Pingback Nedir? adlı yazımızda ufakta olsa XML-RPC’den bahsetmiştik. Bu yazımızda ise bu özelliği daha detaylı inceleyeceğiz ve nasıl bir güvenlik sorunu oluşturabildiğini ve nasıl kapatabileceğinizi anlatmak istiyoruz. Ama bundan önce cevaplanması gereken birkaç soru var.
- XML-RPC.php nedir?
- Bir XML-RPC suistimali internet sitenizi nasıl bir risk oluşturabilir?
- XML-RPC suistimalini devre dışı bırakmak herşeyi çözer mi?
- XML-RPC özelliğini devre dışı bırakmanın alternatifi ne olabilir?
XML-RPC Nedir?
WordPress’te XML-RPC, web siteniz ve diğer sistemler arasından veri aktarımı yapabilmek için kullanılan bir API sistemidir. Bkz: [API Nedir?]
WordPress artık XML-RPC yerine Rest API kullanıyor olsada bazı eski uygulamalar ve eski WordPress sürümlerini kullanan internet siteleri XML-RPC özelliğine ihtiyaç duymaktadır.
XML-RPC uygulamalar arasında veri akışı sağlayabildiğimiz bir uygulama programlama arayüzüdür.
Eğer, eski bir WordPress sürümü kullanıyorsanız hemen WordPress sürümünüzü güncellemenizi tavsiye ediyoruz. Güncelleme yapmadığınız takdirde dijital korsanlar sitenize XML-RPC özelliğinden faydalanarak brute force (kaba kuvvet) saldırıları yapabilir ve sitenizin kullanılamaz hale getirebilirler.
Bir XML-RPC Suistimali İnternet Sitenizi Nasıl Bir Risk Oluşturabilir?
XML-RPC aşağıda ki saldırı yöntemlerinden birinde kullanılabilir ve sitenizde bir güvenlik sorunu oluşturabilir. Bu saldırı yöntemlerinde XML-RPC şu şekillerde kullanılabilir:
Pingback ve Trackback Yoluyla DDoS Saldırıları
xml-rpc.php dosyası veri aktarımının yanında pingback ve trackback kontrollerini yapmaktadır. Bu özellik açık olduğundan dijital korsanlar sitenizin trafiğini bloke edebilmek için sürekli bir pingback bildirimleri gönderebilir, spam ve yasal olmayan sitelerden trackbackler almanızı sağlayabilir böylelikle sitenize binlerce DDoS istekleri atarak erişime engelleyebilirler.
Pingback nedir? adlı blog yazımızı okuduysanız eğer dijital korsanların nasıl bir saldırı yapabileceğini öngörebilirsiniz. Sitenize saniye başına bin tane istek geldiğini düşünün? Bu tarz riske sahip olduğu için WordPress artık xml-rpc kullanımını güncel sürümlerde kaldırdı ancak eski sürümlerde ve bazı uygulamalar, eklentiler ve temalar halen xml-rpc isteyebiliyorlar.
XML-RPC aracılığıyla Brute Force (Kaba Kuvvet) Saldırıları
XML-RPC, bir dosyayı veya içeriği WordPress web sitenizden uzaktan göndermenize, düzenlemenize veya silmenize olanak tanıyan HTTP aracılığıyla taşınan kodlanmış uzak çağrılara izin verir.
Her istekte xmplrpc.php kimlik doğrulama bilgilerini gönderir. Bir seferde büyük miktarda veri göndermeyi kolaylaştırır. Ancak aynı anda büyük miktarda veri gönderme yeteneği, dijital korsanlarının bile bir dizi parolayı gizlice girebileceği anlamına gelir. Bir dijital korsan, farklı bir kullanıcı adı ve şifre kombinasyonuyla yeterli kimlik doğrulama isteği gönderirse, sonunda doğru olanı alabilir ve sonuç olarak sitenizin güvenliği ihlal edilebilir.
İnternet Sitemde xml-rpc.php’nin Çalışıp Çalışmadığını Nasıl Öğrenebilirim?
XML-RPC’nin devre dışı bırakılmasına geçmeden önce, öncelikle web sitenizde xmlrpc.php‘nin çalışıp çalışmadığını kontrol etmeniz gerekir.
XML-RPC’nin sitenizde aktif olup olmadığını XML-RPC Validation Service aracı ile öğrenebilirsiniz.
Kontrolleri yaptığınızda internet sitenizde xmlrpc.php dosyasının çalıştığını gördüyseniz eğer bu özelliği devredışı bırakma aşamasına geçebilir ve orada ki adımları dikkatlice gerçekleştirebilirsiniz.
XML-RPC Özelliği Nasıl Devredışı Bırakılır?
Bir eklenti aracılığıyla XML-RPC’yi devre dışı bırakın
Bu özelliği eklenti kullanarak kapatmak mümkün. Bunun için yapmanız gereken WP Hardening eklentisini kurmak olacaktır. Eklentiyi WordPress admin panelinize giriş yapın. Eklentiler ⇻ Yeni Ekle diyerek arama kısmında WP-Hardening yazarak eklentiyi aratın ve eklentiyi indirip, aktifleştirin.
Eklenti kurup aktifleştirdikten sonra sol menüye WP Hardening adında bir menü daha eklenecektir. Bu menünün altında bulunan Security Fixers sekmesine gidin ve Disable XML-RPC (XML-RPC’yi Kapat) seçeneğini aktif edin.
Eklenti size sadece XML-RPC’yi kapatmanızı sağlamıyora beraberinde çok daha fazla güvenlik önlemi almanızı sağlayacak seçenekler sunuyor. Dosya düzenlemeyi kapatmak, WP API JSon özelliğini kapatmak gibi daha birçok güvenlik riski oluşturabilecek özellikleri kapatma olanağı tanıyor.
Eklenti kullanmadan XML-RPC’yi devredışı bırakın
Eğer eklenti kullanmadan XML-RPC özelliğini kapatmak istiyorsanız kullanabileceğiniz birkaç tane fonksiyonu kodu mevcut. Bunlar:
- xmlrpc_enabled filtresini kullanarak devredışı bırakmak.
- .htaccess dosyasını kullanarak devredışı bırakmak.
xmlrpc_enabled Filtresini kullanarak devredışı bırakmak.
Tek yapmanız gereken aşağıda ki kodu kullanmış olduğunuz WordPress temasının functions.php dosyasına eklemek. Temanıza bu kodu eklediğinizde artık xml-rpc özelliği sitenizde devredışı bırakılmış olacaktır.
// xmlrpc kapat -wordpressli.com
function kaldir_xmlrpc_methods( $methods ) {
return array();
}
add_filter( 'xmlrpc_methods', 'kaldir_xmlrpc_methods' );
.htaccess dosyasını kullanarak devredışı bırakmak.
Bir diğer yöntem ise .htaccess dosyasını kullanarak xml-rpc özelliğini devredışı bırakmak. Bunu yapabilmeniz için sitenizin kök dizininde yer alan .htaccess dosyasını bir metin editörü yardımıyla açarak ve en sonuna aşağıda ki kodu eklemek ile olacaktır.
<Files xmlrpc.php>
Order Allow, Deny
Deny from all
</Files>
Bu kodu eklediğinizde xmlrpc.php dosyasına gelen tüm istekler kabul edilmeyecektir. Bu sayede xml-rpc özelliğinden kaynaklabilecek saldırıları önlemiş olacaksınız.
Bunu birçok kez söylemiş olduğumuzu biliyoruz ancak manuel olarak kod eklemeler ve çıkarmalar yapmadan önce o dosyanın ya da tüm sitenizin bir yedeğini almanızı tavsiye ediyoruz. Bir hata yaptığınızda veya web siteniz bir saldırı aldığında verilerinizin kaybolmaması için sitenizi belli aralıklarla yedeklemeniz sizin avantajınıza olacaktır.
Bu blog yazımızda size WordPress’in XML-RPC özelliğini nasıl devredışı bırakabileceğinizi farklı yöntemler ile anlattık. Ancak, xmlrpc.php’yi devredışı bırakmanız tüm sorunlarınızın için akıllıca bir çözüm değildir. Öyle ya da böyle, bir dijital korsan, web sitenizden yararlanmak için başka bir güvenlik açığı bulacaktır.
Her zaman bir güvenlik duvarı kullanmalısınız ve güncel WordPress ve eklentiler, temalar kullanmaya özen göstermelisiniz. Düzenli olarak internet sitenizinde güvenlik taraması yapmanızı öneririz, sizin isteğiniz dışında eklenmiş kod, eklenti veya kullanıcı hesabı var mı yok mu diye düzenli olarak kontrol etmenizi şiddetle tavsiye ederiz.