WordPress için XMLRPC Hakkında Kesin Bir Kılavuz (+ Nasıl Devre Dışı Bırakılır)
Yayınlanan: 2021-04-08Web sitesi güvenliği, doğru şekilde çözülmesi zor bir şeydir. Özellikle, WordPress sitelerine yapılan saldırılarda yaygın olarak kullanılan XML-RPC ile ilgili güvenlik sorunlarıyla. İnternette her türlü çözümü sağlayan birçok bilgi var, ancak hangileri doğru? Bu makale, nasıl, oradaki çözümleri ve aslında en iyi çözümün ne olduğunu açıklayacaktır. Hadi dalalım!
XMLRPC, WordPress'in kendisinden daha eskidir. Bu sistem, kullanıcıların çevrimdışı olarak yeni gönderiler yazmasına ve ardından sunucuya yüklemesine yardımcı olarak yavaş internet bağlantısı ikilemiyle mücadele etmek için WordPress'e tanıtıldı. WordPress'in diğer uygulamalarla uzaktan bağlanabilmesi ancak xmlrpc.php dosyası ile mümkündü.
Bazı deneyimli geliştiriciler bile XMLRPC'yi ve bununla ilişkili güvenlik tehditlerini tam olarak anlamamaktadır. Yönettiğiniz sitelerin/sitelerin, hemen ilgilenmenizi gerektiren etkin bir XMLRPC dosyasına sahip olması oldukça olasıdır, ancak ancak XMLRPC'nin nasıl çalıştırıldığını ve onu güvenli bir şekilde ele almanın en iyi yolunun ne olduğunu öğrendikten sonra etkili bir eylem planı yürütebilirsiniz.
WordPress'in artık kendi REST API'si olmasına rağmen, xmlrpc.php dosyası hala çekirdeğin içinde bulunur ve WordPress sitesini çeşitli siber saldırılara maruz bırakmak için varsayılan olarak etkinleştirilir. Bu yazıda, bu dosyanın kullanımını, onunla ilişkili güvenlik açıklarını ve sitenizin güvenliğini riske atmadan nasıl ele alınacağını öğreneceğiz.
İçindekiler
- xmlrpc.php dosyası nedir?
- xmlrpc.php Dosyası İle Ne Kadar Kötü Hacker Olabilir?
- kaba kuvvet saldırısı
- DDoS Saldırısı
- Siteler Arası Bağlantı Noktası Saldırısı (XSPA)
- XMLRPC Saldırılarını Engellemenin Etkisiz Yöntemleri
- XMLRPC'yi Tamamen Devre Dışı Bırakarak
- Neden Bir Güvenlik Eklentisi Yüklemek Sitenize Gerçekten Zarar Veriyor?
- Hızlandırılmış Etki Alanları Müşterileri İçin XMLRPC Sorunlarını Nasıl Ele Alır?
- Son düşünceler
xmlrpc.php dosyası nedir?
En basit haliyle, platformlar arası iletişim için XML-RPC (Uzaktan Prosedür Çağrısı) oluşturuldu. Bu protokol, aktarım olarak HTTP ve kodlayıcı olarak XML kullanarak prosedür çağrıları yapmak için kullanılır. İstemci bu çağrıları sunucuya bir HTTP isteği göndererek yapar ve karşılığında HTTP yanıtını alır. XML-RPC, HTTP isteği aracılığıyla işlevleri çağırır ve ardından bu işlevler bazı eylemleri gerçekleştirir ve karşılığında sabit kodlanmış yanıtlar gönderir.
Konsepti tam olarak anlamak için bunu bir REST API çağrısı ile karşılaştıralım.
prosedür | RPC | DİNLENME |
Üye olmak | POST/kayıt | POST/kullanıcılar |
Kullanıcıyı Oku | GET/readUser?userid=123 | GET/kişi/1234 |
REST, kaynakları tanımlamak için URL parametrelerini kullanırken RPC, işlev bağımsız değişkenleri olarak sağlamak için sorgu parametrelerini kullanır.
WordPress, kullanıcılarının siteleriyle uzaktan etkileşime girmesine izin vermek için XMLRPC'yi kullandı. Hâlâ mobil uygulamasını güçlendirmek ve JetPack, WooCommerce vb. gibi eklentileri desteklemek için kullanıyor. xmlrpc.php
dosyasını kullanmanın dezavantajları var ama onu tamamen devre dışı bırakmak tek geçerli çözüm mü? Bunu yanıtlamak için öncelikle onunla ilişkili güvenlik açıklarına ve bunlardan kaçınmak için mevcut çözümlerin neler olduğuna bakmamız gerekiyor.
xmlrpc.php Dosyası İle Ne Kadar Kötü Hacker Olabilir?
Bilgisayar korsanları, XMLRPC kullanarak, Uzaktan Yordam Çağrılarından (RPC) yararlanır ve istedikleri verileri getirmek için işlevleri çağırır. WordPress sitelerinin çoğunda, xmlrpc.php
dosyası kolayca izlenebilir ve yalnızca rastgele XML verileri göndererek, bilgisayar korsanları siteyi belirli bir saldırı türünü yürütmek için hazırladıkları kodu çalıştıracak şekilde kontrol eder.
WordPress XMLRPC'nin nasıl tehlikeye atıldığını anlamak için, onunla ilişkili en popüler siber saldırılara bakalım.
kaba kuvvet saldırısı
Bruteforce saldırısında hacker, sayısız giriş denemesi yaparak doğru kullanıcı adı ve şifreyi tahmin etmeye çalışır. Ne yazık ki, çok sayıda WordPress sitesi, zayıf yönetici şifreleri kullanır veya saldırganları durdurmak için eklenmiş herhangi bir güvenlik katmanına sahip değildir. Bu siteler, bu tür saldırılarla kolayca tehlikeye girer.
Diğerleri güçlü bir parola kullanır ve ayrıca reCaptcha ve kaba kuvvet saldırılarına karşı etkili olan otomatik IP engelleme gibi güvenlik mekanizmalarına sahiptir, ancak bilgisayar korsanı XMLRPC kullanmaya karar verirse; WordPress yöneticisine erişmesine bile gerek yok.
Kali Linux'tan çok yaygın bir araç olan WPSCAN, tüm kullanıcı adlarını numaralandırmak için kullanılır ve bir kez yapıldıktan sonra, bilgisayar korsanları, kurban sitesine aşağıdaki HTTP isteğini göndererek xmlrpc.php
dosyasını kullanarak parolayı kaba bir şekilde zorlar.
POST /xmlrpc.php HTTP/1.1
User-Agent: Fiddler
Host: www.example.com
Content-Length: 164
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>
Yukarıdaki örnekte, bir bilgisayar korsanı, doğru parolayı alana kadar binlerce varyasyon gönderebilir.
Yukarıdaki talebe karşı aşağıdaki yanıt döndürülür. Yanıt, hata kodunu ve denenmiş kullanıcı adı ve parolanın yanlış olduğunu belirten açık bir mesaj içerir. Bilgisayar korsanına doğru şifre eşleşene kadar tekrar denemesini söyleyen açık bir göstergedir.
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 26 May 2019 13:30:17 GMT
Content-Type: text/xml; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.21
Cache-Control: private, must-revalidate
Expires: Sun, 02 Jun 2019 13:30:17 GMT
Content-Length: 403
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>403</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Incorrect username or password.</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Yanıt, HTTP 200 kodunu ve sağlanan kullanıcı adı ve parolanın yanlış olduğu mesajını döndürdü. Bir bilgisayar korsanının XMLRPC kanalından geçerken reCaptcha'lar hakkında endişelenmesi veya giriş denemesi eklentilerini sınırlaması gerekmez. Doğru parola alınana kadar varyasyonları çalıştırmaya devam edebilir.
Not: Brute Force saldırıları kaynak yoğundur ve performans sorunlarına da neden olur. Deneme yanılma süreci, gerçek ziyaretçilere hizmet vermek için sunucunuzu meşgul edebilecek daha uzun bir süre boyunca bir döngü içinde çalışır. Bu gereksiz kaynak tüketimi, sunucuların daha fazla güç tüketmesine neden olur.
DDoS Saldırısı
Dağıtılmış Hizmet Reddi (DDoS), sunucuyu yüzlerce ve binlerce eşzamanlı istekle vurarak felç edebilen en ölümcül siber saldırılardan biridir. Bilgisayar korsanları, bu tür saldırıları gerçekleştirmek için xmlrpc.php dosyasıyla birlikte WordPress'in pingback özelliğini kullanır.
İdeal olarak, bilgisayar korsanı, birkaç kez vurulabilecek ve yanıt vermesi daha uzun süren uç noktayı veya bir sayfayı hedefler. Bu şekilde, tek bir vuruş sunucu kaynakları üzerinde maksimum etkiye sahip olabilir ve bizim durumumuzda XMLRPC, bilgisayar korsanına bu tür uç noktaları açığa çıkarma konusunda iyi hizmet eder.
Tek bir kurbanı hedeflemek için pingback.ping yöntemini yürütmek için zaten güvenliği ihlal edilmiş birkaç WordPress sitesi kullanılır. Ezici HTTP GET ve POST istekleri, normal trafiği tıkar ve sonunda sunucuyu çökertir.
İlk olarak, bilgisayar korsanı aşağıdaki isteği göndererek xmlrpc.php dosyasının etkinleştirilip etkinleştirilmediğini kontrol eder.
POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 175
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>demo.sayHello</methodName>
<params>
<param>
<value>admin</value>
</param>
</params>
</methodCall>
Hedef web sitesinde XMLRPC'nin etkinleştirildiği onaylandıktan sonra, saldırgan, kurban bir siteye birden çok pingback isteği göndermek için istismar edilen siteler ağını kullanarak ona vurmaya başlar. Bu, birden çok ana bilgisayardan otomatikleştirilebilir ve kurban sitesinde toplu bir DDoS saldırısına neden olmak için kullanılabilir.
POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 293
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string>http://173.244.58.36/</string></value>
</param>
<param>
<value><string>https://example.com/blog/how-to-make-a-salad</string></value>
</param>
</params>
</methodCall>
Siteler Arası Bağlantı Noktası Saldırısı (XSPA)
Siteler Arası Bağlantı Noktası Saldırıları (XSPA), bilgisayar korsanının TCP bağlantı noktaları ve IP adresleri hakkında bilgi almak için kötü amaçlı komut dosyasını enjekte ettiği çok yaygındır. WordPress durumunda, XMLRPC, Cloudflare gibi temel WAF gibi herhangi bir IP maskelemeyi atlamak için pingback mekanizmasıyla birlikte kullanılır.
Bir XSPA saldırısında, bilgisayar korsanı, yanıt olarak IP adresini gönderen hedef web sitesindeki bir gönderiye pingback yapmak için pingback.ping yöntemini kullanır. Hacker, bir blog gönderisinin pingback ve canlı URL'sini göndermek için uç nokta oluşturmak için bir dinleyici kullanır.
Bilgisayar korsanları, sunucusundan aşağıdaki isteği gönderir.
<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>
Yanıt hataKodu içeriyorsa ve 0'dan büyük bir değer varsa, bu, HTTP paketlerini doğrudan göndermeye başlamanız için bağlantı noktasının açık olduğu anlamına gelir.
XMLRPC Saldırılarını Engellemenin Etkisiz Yöntemleri
Makalede şimdiye kadar, xmlrpc.php dosyasının DDoS, Bruteforce ve Siteler Arası Bağlantı Noktası Saldırısı gibi bazı ciddi siber saldırılara açık olduğunu belirledik, bu nedenle bu saldırıları engellemek için dosyayı düzgün bir şekilde ele almak çok önemlidir. .
XMLRPC'yi Tamamen Silerek
Sunucunuzun, erişmeye çalışan herkese 404 hata atmaya başlamasını sağlayacak XMLRPC dosyasını silebilirsiniz. Bu çözümün dezavantajı, WordPress'i her güncellediğinizde dosyanın yeniden oluşturulmasıdır.
XMLRPC'yi Tamamen Devre Dışı Bırakarak
Diğer daha uygun seçenek, xmlrpc.php
dosyasını devre dışı bırakmaktır. Bunu, sadece kod bloğunu .htaccess
dosyanızın içine ekleyerek yapabilirsiniz. WordPress tarafından eklenen hiç değişmeyen .htaccess
kurallarından önce bunu yaptığınızdan emin olun.
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
Bu, onu kullanan her uygulama veya hizmet için xmlrpc.php
dosyasını devre dışı bırakacaktır. Yine de WordPress sitenize XMLRPC aracılığıyla erişmek istemeniz durumunda belirli bir IP adresini beyaz listeye ekleyebilirsiniz. Bunun için aşağıdaki komutu eklemeniz gerekir:
<Files xmlrpc.php>
<RequireAny>
Require ip 1.1.1.2
Require ip 2001:db8::/32
</RequireAny>
</Files>
Artıları
- Siber saldırılarda XMLRPC'nin kötüye kullanılması risklerini ortadan kaldırır.
- Uzun vadeli performans avantajları ve sunucu kaynaklarında tasarruf.
Eksileri
- XMLRPC'yi devre dışı bırakmak, bu uzaktan erişim sürümünü kullanan uygulamalar için uzaktan erişimi devre dışı bırakmakla aynıdır. Bu, WordPress sitenize XMLRPC aracılığıyla bağlanan Jetpack, WP mobil uygulaması veya başka bir çözümün artık sitenize bağlanamayacağı anlamına gelir.
- Özel uygulamalar için eski kod da çalışmayabilir.
Neden Bir Güvenlik Eklentisi Yüklemek Sitenize Gerçekten Zarar Veriyor?
WordPress kullanıcıları, sitenin performansı üzerindeki etkilerini fazla düşünmeden genellikle gerekli herhangi bir özellik veya işlevsellik için eklentilere güvenirler. Web sitenizi XMLRPC ile ilgili güvenlik sorunlarından korumayı vaat eden birkaç WordPress güvenlik eklentisi var, ancak gerçekte sitenize daha fazla zarar veriyorlar.
Sitenizi bir eklentiyle korumanın en iyi seçenek olmamasının nedenlerinden bazıları burada.
- Güvenlik eklentileri yalnızca uygulama düzeyinde etkilidir ve sunucunuzu darbelere karşı korumaz.
- Sitenize, performansını düşüren ve ilk bayt (TTFB) süresini artıran gereksiz kodlar eklerler.
- Bu eklentilerden bazıları yarardan çok zarar verir ve bilgisayar korsanları tarafından web sitenize arka kapılar oluşturmak için kullanılır.
- Bu eklentiler, daha fazla iş yükü ekleyen sık yönetim gerektirir.
Yukarıdaki değerlendirmeden, seçeneklerin hiçbiri XMLRPC güvenlik sorununu ele almak için ideal bir çözüm sunmamaktadır. Bu bizi Hızlandırılmış Etki Alanlarına getiriyor. Güvenlikle ilgili karmaşık sorunları ve çok daha fazlasını çözmek için oluşturulmuş bir hizmet. Hızlandırılmış Etki Alanlarının sizin için XMLRPC sorununu nasıl etkili bir şekilde çözebileceğine bakalım.
Hızlandırılmış Etki Alanları Müşterileri İçin XMLRPC Sorunlarını Nasıl Ele Alır?
Hızlandırılmış Etki Alanları, karmaşık performans, güvenlik ve ölçeklenebilirlik sorunlarını en verimli şekilde çözer. Hızlandırılmış Etki Alanları, XMLRPC ile ilişkili olanlar da dahil olmak üzere her türlü siber saldırıyı engelleyen kurumsal düzeyde yönetilen güvenlik sunar.
Accelerated Domains'in akıllı Güvenlik Motoru , sunucunun önüne oturur ve tüm HTTP trafiğinin %40'ına yakınını filtreler. Sürekli veri beslemesi ve Servebolt'un uygulamalı bilgisi ve trafik analizi ile desteklenen akıllı buluşsal yetenekleri sayesinde en karmaşık siber saldırıları bile zaman çizelgesinin başlarında tespit eder. Hızlandırılmış Etki Alanları, sitenizin performansını hiçbir şekilde düşürmeden sihrini gerçekleştirir. Aslında hızlandırıyor.
Hızlandırılmış Etki Alanları proaktif Güvenlik Motoru, web sitenizi otomatik olarak DDoS saldırılarına karşı korur. 60 Tbps'ye yakın ağ kapasitesi ile internetteki en büyük DDoS saldırılarından bazılarına bile dayanacak şekilde donatılmıştır. Benzer şekilde, kötü niyetli faaliyetleri önlemek için tek bir kaynaktan üretilen istek sayısının tanımlandığı ve sınırlandırıldığı otomatik hız sınırlama özelliği ile Bruteforce saldırılarına karşı etkili bir savunma mekanizması sağlar.
Artıları
- Hızlandırılmış Etki Alanları, XMLRPC ile ilişkili güvenlik açıklarının çoğunu azaltır, dolayısıyla devre dışı bırakmaya gerek yoktur.
- Kullanıcının Jetpack, WooCommerce uygulaması gibi eklentileri ve xmlrpc.php dosyasına bağlı diğer araçları kullanmaya devam etmesine izin verir.
- Herhangi bir etki alanında sorunsuz entegrasyon, böylece
.htaccess
dosyasını değiştirmenize gerek kalmaz. - Ek eklentiler yüklemeye gerek yok.
Eksileri
- Hiçbiri yok.
Son düşünceler
Siber saldırılar gün geçtikçe karmaşıklaşıyor ve bir web yöneticisi ve işletme sahibi olarak onları anlamanız ve bunlarla karşılaşacak araçları bilmeniz hayati önem taşıyor. Yazılımın sürekli izlenmesi ve güncellenmesi gibi proaktif bir yaklaşımla veya tüm bunları otomatik pilotta yapan Hızlandırılmış Etki Alanları gibi araçlar eklenerek saldırıların çoğu önlenir. Hızlandırılmış Etki Alanları etkinleştirildiğinde, trafiği akıllı bir şekilde filtreler ve kaynak sunucunuzu ve web sitenizi siber saldırılardan korumak için gerektiğinde gerekli önlemleri alır.