WordPress xmlrpc.php Nedir ve Nasıl Devre Dışı Bırakılır?
xmlrpc.php nedir ve xmlrpc açığını kaldırmanın yolu hem manuel hem de eklentiler ile kapatmanın yönteminden sizlere bahsedeceğim. Bu sayede bazı kritik seviyedeki önlemlere alıp sitenizi dış tehditlere karşı koruya bileceğiniz bir yöntemdir.
Xmlrpc.php Nedir?
XML-RPC, HTTP’nin bir tür taşıma mekanizmasıdır. XML’nin kodlama döngüsü şeklinde çalışarak veri transferine imkan tanıyan bir WordPress özelliğidir. WordPress’in kendisi açık kaynaklı olduğundan ve diğer sistemlerle iletişime geçmesi gerektiğinden, bu bağı kurabilen xmlrpc.php dosyası wordpress tarafından oluşturulmuştur.
Örneğin, bilgisayarınıza uzak ve mobil cihazınızı üzerinden sitenizde yazı yayınlamak istiyorsunuz. Bunun için xmlrpc.php dosyası sayesinde uzaktan erişim özelliğini kullanabiliyorsunuz.
Xmlrpc.php’nin çekirdek özellikleri sitenize bir akıllı telefonla ulaşabilmenizi sağlamaktadır. Farklı sitelerden geri izleme ve pinglemeye imkan tanır ve jetpack eklentisi ile çeşitli farklı işlevleri görev edinir.
Xmlrpc.php Dosyasını Neden Devre Dışı Bırakmalısınız?
XML-RPC’nin en büyük sorunu, ortaya çıkan güvenlik endişeleri. Sorun doğrudan XML-RPC ile alakalı değil ancak bu dosya kullanılarak nasıl sitenize brute force saldırıları yapılabileceği.
Elbette kendinizi aşırı güçlü şifrelerle ve WordPress güvenlik eklentileriyle koruyabilirsiniz. Ancak en iyi korunma yöntemi, basitçe bu dosyayı devre dışı bırakmaktır.
XML-RPC’nin geçmişte istismar edildiği başlıca iki zayıflığı bulunmaktadır.
İlki, sitenize erişim kazanmak için brute force saldırılarının kullanımı. Saldırgan xmlrpc.php dosyasını kullanarak şifre ve kullanıcı adı kombinasyonları deneme suretiyle sitenize erişim sağlamaya çalışıyor. Sadece bir komut kullanarak yüzlerce farklı şifre deneyebiliyorlar. Bu sayede genellikle brute force saldırılarını tespit ederek önüne geçebilen güvenlik araçlarını atlayabiliyorlar.
İkincisi, sitenizin bir DDoS saldırısıyla kapatılması. Ardından saldırganlar WordPress’deki pingback özelliğini kullanarak binlerce siteye eş zamanlı olarak geri pingleme gerçekleştiriyor. Xmlrpc.php’deki bu özellik, saldırganlara DDoS saldırısın dağıtımı için neredeyse sınırsız sayıda IP adresi sağlıyor.
XML-RPC’nin sitenizde çalışıp çalışmadığını kontrol etmek için XML-RPC Validator isimli aracı kullanabilirsiniz. Araç üzerinde sitenizi çalıştırın ve eğer bir hata mesajı alırsanız bu XML-RPC’nin aktif olmadığı anlamına gelir.
Eğer bir başarı mesajı alırsanız, xmlrpc-php dosyasını durdurmak için aşağıdaki iki yöntemden birini kullanabilirsiniz.
Yöntem 1: Eklentiler Aracılığıyla Xmlrpc.php Devre Dışı Bırakma
WordPress sitenizde XML-RPC’yi devre dışı bırakmak oldukça kolaydır.
Sadece WordPress admin panelinizden Eklentiler > Yeni Ekle bölümünü açın. Ardından arama kısmına Disable XML-RPC girin ve aşağıdaki gibi görünen eklentiyi yükleyin.
Eklentiyi etkinleştirin ve hazırsınız. Bu eklenti, XML-RPC’yi devre dışı bırakmak için gerekli kodu otomatik olarak ekleyecektir.
Ancak bazı mevcut eklentilerin XML-RPC’nin çeşitli bölümlerini kullanabileceğini unutmayın. Bu yüzden tamamen devre dışı bırakmak sahip olduğunuz bir eklentinin çakışmasına veya sitenizdeki işlevini kaybetmesine sebep olabilir.
Eğer XML-RPC’nin sadece belirli öğelerini devre dışı bırakmak ancak hala belirli eklenti ve özelliklerin çalışmasına izin vermek için aşağıdaki eklentileri kullanabilirsiniz:
- Stop XML-RPC Attack. Bu eklenti tüm XML-RPC saldırılarını durdurur ancak Jetpack gibi diğer otomatik araç ve eklentilerin xmlrpc.php dosyasına erişim sağlamasına izin verir.
- Control XML-RPC Publishing. Bu eklenti size xmlrpc-php tarafından sunulan uzaktan yayınlama özelliğini kullanabilme ve kontrol etme imkanı sağlar.
Yöntem 2: Xmlrpc.php Dosyasını Manuel Olarak Kapatmak
Eğer bir eklenti kullanmadan manuel olarak yapmak istiyorsanız, bu yöntemi uygulayınız. Bu sayede gelecek olan tüm xmlrpc.php taleplerini WordPress’e ulaşmadan kapatabilirsiniz.
.htaccess dosyanızı açın. Bu dosyayı bulabilmek için dosya yöneticisinde veya FTP istemcisinde ‘gizli dosyaları göster’ seçeneğini etkinleştirmeniz gerekebilir.
.htaccess dosyası içine aşağıdaki kodu yapıştırın:
1 2 3 4 5 6 |
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from 123.123.123.123 </Files> |
Kısaca Özetlemek Gerekirse
XML-RPC, WordPress sitenizde uzaktan içerik yayınlamayla ilgili sorunları ortadan kaldırmak için iyi bir çözümdü. Fakat bu özellik beraberinde getirdiği güvenlik açıkları yüzünden bazı WordPress site sahipleri için büyük hasarlara sebebiyet verdi.
Sitenizin güvende olması için xmlrpc.php dosyasını tamamen devre dışı bırakmak iyi bir fikirdir. Tabi uzaktan yayınlama ve Jetpack eklentisi için bazı özelliklerinden yararlanmanız gerekmiyorsa. Bu durumda, güvenlik açıklarını gidererek ilgili özelliklerin kullanılabilmesine olanak sağlayan eklentileri deneyebilirsiniz.
Zaman içerisinde XML-RPC özelliklerinin yeni WordPress API içerisine dahil edilmesini bekleyebiliriz, bu sayede güvenlik açıklarına maruz kalmadan uzaktan erişim sağlamaya devam edebiliriz. Ancak o zamana kadar, sitenizi potansiyel XML-RPC açıklarına karşı korumanızı tavsiye ediyoruz.