WordPress xmlrpc.php Nedir? Neden Devredışı Bırakılmalıdır?
Bugünkü rehberimizde xmlrpc.php nedir ve xmlrpc açığı sorununu tamamen düzetlemk için bu dosyayı nasıl devre dışı bırakabileceğiniz anlatacağım. WordPress’in her daim sayfanızla uzaktan etkileşime geçebilmeniz suretiyle tasarlanmış dahili özelliklere sahiptir. Ne olursa olsun siz de kimi zaman, yakınlarda bilgisayar olmadığında sitenize ulaşmak istemişsinizdir. Uzun bir süre süresince, çözüm xmlrpc.php dosyasıydı. Fakat son zamanlarda bu dosya çözümden oldukça kendi başına bir problem meydana getirmeye başladı.
Yazımızın devamında tam olarak xmlrpc.php nedir ve oluşturulmuştur sorularına yanıt vereceğiz. Hem de bu dosyanın oluşturduğu yaygın güvenlik açıklarını ve bu açıkları kendi WordPress sitemizde nasıl kapatacağımız hakkında da data vereceğiz.
Xmlrpc.php Nedir?
XML-RPC, HTTP’nin bir tür taşıma mekanizması ve XML’nin kodlama mekanizması şeklinde emek harcayarak veri transferine olanak tanıyan bir WordPress özelliğidir. WordPress’in kendisi açık kaynaklı bir yazılım olduğundan ve ara ara Bir diğer sistemlerle iletişim kurması gerektiğinden dolayı bunu gerçekleştirmesi için xmlrpc.php dosyası düşünüldü ve oluşturuldu
Mesela, bilgisayarınız yanınızda değil ve mobil cihazınızı kullanarak sitenizde yazı yayınlamak istediniz. Tam da bunun için xmlrpc.php dosyası yardımıyla uzaktan erişim hususi durumunu kullanabilirsiniz.
Xmlrpc.php’nin çekirdek özelliklerinden bahsetmek gerekirse ilki, sitenize bir akıllı telefon gibi ulaşmanızı sağlar, bir diğer sitelerden geri izleme ve pinglemeye olanak tanıyabilir ve jetpack eklentisiyle ilişkili çeşitli özellikte ki işlevleri üstlenir.
Xmlrpc.php Neden Oluşturuldu ve Nasıl Kullanıldı?
XML-RPC uygulaması WordPress’in hemen hemen WordPress olmadığı günlere dayanıyor.
İnternetin ilk zamanlarında, bağlantılar inanılmaz aşama yavaşken internette yazı yazma ve yayınlama oldukça daha zor ve vakit alan bir işlemdi. Tarayıcı üstünde yazmak yerine, bir çok şahıs offline olarak yazılarını hazırlar peşinden bu içinde ne olduğu kopyala yapıştır yöntemiyle internete taşırdı. Bu işlem hala ideal olmaktan uzak.
Çözüm, içeriğinizi hazırlayıp hemen ardından yayınlayabilmek için bloğunuz ile bağlantı kuran offline bir blog istemcisi oluşturmak oldu. Bu bağlantı XML-RPC vasıtasıyla sağlandı. XML-RPC’nin rahat sistemi oluşturulduğunda, ilk uygulamalar bu bağlantıyı kullanarak insanların WordPress sitelerine öteki cihazlardan ulaşabilmelerini sağlamış oldu.
Günümüzde XML-RPC
2008’de WordPress 2.6 sürümüyle beraber XML-RPC’yi etkinleştirme yada devre dışı bırakma seçeneği eklendi. Sadece WordPress iPhone uygulamasının yayınlanmasıyla beraber, XML-RPC desteği varsayılan olarak etkinleştirildi ve kapatma seçeneği ayarlardan kaldırıldı. Günümüzde bu durum hala geçerli.
Sadece bu dosyanın işlevselliği vakit içinde oldukça düştü ve dosya boyu 83kb’tan 3kb’a kadar geriledi, doğrusu artık bir zamanlar olmasıyla birlikte büyük bir rol oynamıyor.
XML-RPC Geleceği
Yeni WordPress API ile, XML-RPC’nin tamamen ortadan kaldırılması bekleniyor. Ancak ilerleyen güncellemelerde anlayacağız bunu. Günümüzde, bu yeni API hala tecrübe etme aşamasında ve bir tek bir eklenti vasıtasıyla etkinleştirilebiliyor.
Fakat, gelecekte API’in direkt WordPress çekirdeğine kodlanacağını bekleyebiliriz, bu sayede xmlrpc.php dosyasına gereksinim tamamen ortadan kalkmış olacaktır.
Yeni API kusursuz değil, sadece xmlrpc.php’nin çözdüğü probleminin altından kalkabilmek için oldukça daha kuvvetli ve güvenli bir yöntem.
Xmlrpc.php Dosyasını Neden Devre Dışı Bırakmalısınız
XML-RPC’nin en büyük problemi, ortaya çıkan güvenlik endişeleri. Problem direkt XML-RPC ile ilgili değil sadece bu dosya kullanılarak nasıl sitenize brute force saldırıları yapılabileceği.
Normal olarak kendinizi aşırı kuvvetli şifrelerle ve WordPress güvenlik eklentileriyle koruyabilirsiniz. Sadece en iyi korunma yöntemi, kolayca bu dosyayı devre dışı bırakmaktır.
XML-RPC’nin geçmişte istismar edilmiş olduğu başlıca iki zayıflığı bulunmaktadır.
İlki, sitenize erişim yapabilmek için brute force saldırı denemeleri. Saldırgan xmlrpc.php dosyasını kullanarak gizyazı ve kullanıcı adı kombinasyonları tecrübe etme suretiyle sitenize erişim sağlamaya çalışıyor. Bir tek bir komut kullanarak yüzlerce değişik gizyazı deneyebiliyorlar. Bu sayede çoğu zaman 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ı. Arkasından saldırganlar WordPress’deki pingback özelliğinin durumunu kullanarak binlerce siteye eş zamanlı olarak geri pingleme gerçekleştiriyor. Bir kötü durumdanda bahsetmek gerekirse Xmlrpc.php’deki bu özellik, saldırganlara DDoS saldırısın dağıtımını sağlamak için sınırsız sayıda IP adresi sağlıyor diyebiliriz.
XML-RPC’nin sitenizde çalışıp çalışmadığını denetlemek için XML-RPC Validator isminde ki aracı kullanabilirsiniz. sitenizi çalıştırın ve eğer bir hata mesajı ile karşılaşırsanız eğer, XML-RPC’nin aktif olmadığı anlamına gelmektedir.
Eğer hatalı bir durum ile ilgili hata alırsanız, xmlrpc-php dosyasını durdurmak için aşağıdaki iki yöntemden birini uygulayabilirsiniz.
Yöntem 1: Eklentileri Kullanarak Xmlrpc.php Devre dışı Bırakma
WordPress sitenizde XML-RPC’yi devre dışı bırakmak oldukça kolaydır.
Bir tek WordPress admin panelinizden Eklentiler > Yeni Ekle bölümünü açın. Arkasından arama kısmına Disable XML-RPC girin ve aşağıdaki benzer biçimde 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 lüzumlu kodu otomatikman ekleyecektir.
Sadece bazı mevcut eklentilerin XML-RPC’nin çeşitli bölümlerini kullanabileceğini ihmal etmeyin. Bu yüzden tamamen devre dışı bırakmak haiz olduğunuz bir eklentinin çakışmasına yada sitenizdeki işlevini kaybetmesine sebep olabilir.
Eğer XML-RPC’nin belirli öğelerini devre dışıbir tek belirli öğelerini devre dışı bırakmak sadece hala belirli eklenti ve özelliklerin çalışmasına izin vermek için aşağıdaki eklentileri kullabilirsiniz:
- Stop XML-RPC Attack. Bu eklenti tüm XML-RPC saldırılarını durdurur sadece Jetpack tarzı 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ınca sunulan uzaktan yayınlama hususi durumunu kullanabilme ve denetim imkanı sağlar.
Yöntem 2: Xmlrpc.php Dosyasını Manuel Kapatma
Eğer bir eklenti kullanmadan manuel olarak yapmak istiyorsanız, bu yöntemi uygulayın. Bu yöntem ile birlikte tüm xmlrpc.php taleplerini WordPress’e ulaşmadan kapatmanız mümkün.
.htaccess dosyanızı açın. Bu dosyayı bulabilmek için dosya yöneticisinde yada FTP istemcisinde ‘gizli saklı dosyaları göster’ seçeneğini etkinleştirmeniz gerekebilir.
.htaccess dosyası içine aşağıdaki kodu yapıştırın:
# Block WordPress xmlrpc.php requests
order deny,allow
deny from all
allow from 123.123.123.123
Konuyu Kısaca Özetleyelim
XML-RPC, WordPress sayfanızda uzaktan içerik yayınlamayla ilgili sorunları kaldırmak için kullanılan bir uygulamaydı. Fakat bu özellik bununla beraber getirmiş olduğu güvenlik açıkları yüzünden bazı WordPress site sahipleri için büyük hasarlara sebebiyet verdi.
Web sayfanızın güvende olması için xmlrpc.php dosyasını tamamen Devre dışı bırakmak sitenizi rahatlatacaktır ve doğru bir seçimdir. Doğal olarak 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 elde eden eklentileri deneyebilirsiniz.
Vakit içinde XML-RPC özelliklerinin yeni WordPress API içine dahil edilmesini bekleyebiliriz, bu sayede güvenlik açıklarına maruz kalmadan uzaktan erişim sağlamaya devam edebiliriz. Sadece o zamana kadar, sitenizi potansiyel XML-RPC açıklarına karşı korumanızı tavsiye ediyoruz.
Güncel yazı ve projeleri instagram'da duyuruyorum. Takip et, iletişimde kalalım ✔️@tahamumcu