Panduan Definitif tentang XMLRPC untuk WordPress (+ Cara Menonaktifkannya)
Diterbitkan: 2021-04-08Keamanan situs web adalah hal yang sulit untuk dipecahkan dengan cara yang benar . Khususnya dengan masalah keamanan yang terkait dengan XML-RPC – seperti yang biasa dieksploitasi dalam serangan di situs WordPress. Ada banyak informasi yang tersedia di internet yang menyediakan segala macam solusi, tetapi mana yang benar? Artikel ini akan menjelaskan bagaimana, solusi di luar sana, dan apa sebenarnya solusi terbaik. Mari selami!
XMLRPC lebih tua dari WordPress itu sendiri. Sistem ini diperkenalkan ke WordPress untuk melawan dilema koneksi internet yang lambat dengan membantu pengguna menulis posting baru secara offline dan kemudian mengunggahnya ke server. Kemampuan untuk menghubungkan WordPress dari jarak jauh dengan aplikasi lain hanya dimungkinkan dengan file xmlrpc.php.
Bahkan beberapa pengembang berpengalaman tidak sepenuhnya memahami XMLRPC dan ancaman keamanan yang terkait dengannya. Sangat mungkin bahwa situs/situs yang Anda kelola memiliki file XMLRPC aktif yang memerlukan perhatian segera, tetapi Anda hanya dapat menjalankan rencana tindakan yang efektif setelah mengetahui bagaimana XMLRPC dioperasikan dan apa cara terbaik untuk menanganinya dengan aman.
Meskipun WordPress sekarang memiliki REST API sendiri, file xmlrpc.php masih ada di dalam inti dan diaktifkan secara default yang mengekspos situs WordPress ke berbagai serangan cyber. Dalam artikel ini, kita akan mempelajari penggunaan file ini, kerentanan yang terkait dengannya, dan cara menanganinya tanpa membahayakan keamanan situs Anda.
Daftar Isi
- Apa itu file xmlrpc.php?
- Bagaimana Hacker Jahat Bisa Dengan File xmlrpc.php?
- Serangan membabi buta
- Serangan DDoS
- Serangan Port Lintas Situs (XSPA)
- Metode Memblokir Serangan XMLRPC yang Tidak Efektif
- Dengan Menonaktifkan XMLRPC Sepenuhnya
- Mengapa Memasang Plugin Keamanan Sebenarnya Menyakiti Situs Anda
- Bagaimana Domain yang Dipercepat Menangani Masalah XMLRPC Untuk Pelanggannya?
- Pikiran Akhir
Apa itu file xmlrpc.php?
Dalam bentuknya yang paling sederhana, XML-RPC (Remote Procedure Call) dibuat untuk komunikasi lintas platform. Protokol ini digunakan untuk melakukan pemanggilan prosedur dengan menggunakan HTTP sebagai transport dan XML sebagai encoder. Klien membuat panggilan ini dengan mengirimkan permintaan HTTP ke server dan menerima respons HTTP sebagai balasannya. XML-RPC memanggil fungsi melalui permintaan HTTP dan kemudian fungsi-fungsi ini melakukan beberapa tindakan dan mengirim tanggapan yang dikodekan sebagai balasannya.
Mari kita bandingkan ini dengan panggilan REST API untuk memahami konsep sepenuhnya.
Prosedur | RPC | ISTIRAHAT |
Daftar | POSTING/daftar | POSTING/pengguna |
Baca Pengguna | GET/readUser?userid=123 | DAPATKAN/orang/1234 |
REST menggunakan parameter URL untuk mengidentifikasi sumber daya sementara RPC menggunakan parameter kueri untuk memasok sebagai argumen fungsi.
WordPress menggunakan XMLRPC untuk memungkinkan penggunanya berinteraksi dengan situs mereka dari jarak jauh. Itu masih menggunakannya untuk memberi daya pada aplikasi selulernya dan untuk mendukung plugin seperti JetPack, WooCommerce, dll. Menggunakan file xmlrpc.php
memiliki kelemahan tetapi apakah menonaktifkannya sepenuhnya satu-satunya solusi yang layak? Untuk menjawabnya, pertama-tama kita perlu melihat kerentanan yang terkait dengannya dan solusi apa yang tersedia untuk menghindarinya.
Bagaimana Hacker Jahat Bisa Dengan File xmlrpc.php?
Menggunakan XMLRPC, peretas memanfaatkan Panggilan Prosedur Jarak Jauh (RPC) dan memanggil fungsi untuk mengambil data yang mereka inginkan. Di sebagian besar situs WordPress, file xmlrpc.php
mudah dilacak, dan hanya dengan mengirimkan data XML sewenang-wenang, peretas mengontrol situs untuk menjalankan kode yang telah mereka siapkan untuk mengeksekusi jenis serangan tertentu.
Untuk memahami bagaimana WordPress XMLRPC disusupi, mari kita lihat serangan siber paling populer yang terkait dengannya.
Serangan membabi buta
Dalam serangan Bruteforce, peretas mencoba menebak nama pengguna dan kata sandi yang benar dengan menjalankan berbagai upaya masuk. Sayangnya, sejumlah besar situs WordPress menggunakan kata sandi admin yang lemah atau tidak memiliki lapisan keamanan yang ditambahkan untuk menghentikan penyerang. Situs-situs tersebut mudah dikompromikan dengan jenis serangan ini.
Yang lain menggunakan kata sandi yang kuat dan juga memiliki mekanisme keamanan seperti reCaptcha, dan pemblokiran IP otomatis yang efektif terhadap serangan brute force tetapi jika peretas memutuskan untuk menggunakan XMLRPC; dia bahkan tidak perlu mengakses admin WordPress.
Alat yang sangat umum dari Kali Linux, WPSCAN digunakan untuk menghitung semua nama pengguna dan setelah selesai, peretas memaksa kata sandi menggunakan file xmlrpc.php
dengan mengirimkan permintaan HTTP berikut ke situs korban.
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>
Dalam contoh di atas, seorang peretas dapat mengirim ribuan variasi hingga dia mendapatkan kata sandi yang benar.
Tanggapan berikut dikembalikan terhadap permintaan di atas. Tanggapan berisi kode kesalahan dan pesan yang jelas yang menyatakan bahwa nama pengguna dan kata sandi yang dicoba salah. Ini adalah indikasi yang jelas yang memberitahu peretas untuk mencoba lagi sampai kata sandi yang benar cocok.
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>
Responsnya mengembalikan kode HTTP 200 dan pesan bahwa nama pengguna dan sandi yang diberikan salah. Melalui saluran XMLRPC, peretas tidak perlu khawatir tentang reCaptchas atau membatasi plugin upaya login. Dia dapat terus menjalankan variasi sampai kata sandi yang benar diambil.
Catatan: Serangan Brute Force membutuhkan banyak sumber daya dan juga menyebabkan masalah kinerja. Proses coba -coba berjalan dalam satu lingkaran untuk jangka waktu yang lebih lama yang dapat membuat server Anda sibuk untuk melayani pengunjung yang sebenarnya. Konsumsi sumber daya yang tidak perlu ini menyebabkan server mengkonsumsi lebih banyak daya.
Serangan DDoS
Distributed Denial of Service (DDoS) adalah salah satu serangan cyber paling mematikan yang dapat melumpuhkan server dengan memukulnya dengan ratusan dan ribuan permintaan secara bersamaan. Peretas menggunakan fitur pingback WordPress bersama dengan file xmlrpc.php untuk mengeksekusi serangan tersebut.
Idealnya, peretas menargetkan titik akhir atau halaman yang dapat diklik beberapa kali dan membutuhkan waktu lebih lama untuk merespons. Dengan cara ini, satu pukulan dapat memiliki dampak maksimum pada sumber daya server dan dalam kasus kami, XMLRPC melayani peretas dengan baik dalam mengekspos titik akhir tersebut.
Beberapa situs WordPress yang sudah disusupi digunakan untuk menjalankan metode pingback.ping untuk menargetkan satu korban. Permintaan HTTP GET dan POST yang berlebihan membuat lalu lintas reguler macet dan akhirnya membuat server crash.
Pertama, hacker memeriksa apakah file xmlrpc.php diaktifkan atau tidak dengan mengirimkan permintaan berikut.
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>
Setelah dikonfirmasi bahwa XMLRPC diaktifkan di situs web target, penyerang mulai menyerangnya menggunakan jaringan situs yang dieksploitasi untuk mengirim beberapa permintaan pingback ke situs korban. Ini dapat diotomatisasi dari beberapa host dan digunakan untuk menyebabkan serangan DDoS massal di situs korban.
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>
Serangan Port Lintas Situs (XSPA)
Serangan Port Lintas Situs (XSPA) sangat umum di mana peretas menyuntikkan skrip berbahaya untuk mengambil informasi tentang port TCP dan alamat IP. Dalam kasus WordPress, XMLRPC digunakan bersama dengan mekanisme pingback untuk mem-bypass semua penyamaran IP seperti WAF dasar seperti Cloudflare.
Dalam serangan XSPA, peretas menggunakan metode pingback.ping untuk melakukan pingback posting di situs web target yang sebagai balasannya mengirimkan alamat IP sebagai tanggapan. Peretas menggunakan sniffer untuk membuat titik akhir untuk mengirim pingback dan URL langsung dari posting blog.
Peretas mengirim permintaan berikut dari servernya.
<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>
Jika respons berisi kode kesalahan dan nilai lebih besar dari 0 maka itu berarti port terbuka bagi Anda untuk mulai mengirim paket HTTP secara langsung.
Metode Memblokir Serangan XMLRPC yang Tidak Efektif
Sejauh ini dalam artikel, kami telah menetapkan bahwa file xmlrpc.php rentan terhadap beberapa serangan cyber yang serius seperti DDoS, Bruteforce, dan Cross-site Port Attack, oleh karena itu, sangat penting untuk menanganinya dengan benar untuk memblokir serangan ini. .
Dengan Menghapus XMLRPC Sepenuhnya
Anda cukup menghapus file XMLRPC yang akan membuat server Anda mulai membuat kesalahan 404 kepada siapa pun yang mencoba mengaksesnya. Kelemahan dari solusi ini adalah file akan dibuat ulang setiap kali Anda memperbarui WordPress.
Dengan Menonaktifkan XMLRPC Sepenuhnya
Opsi lain yang lebih layak adalah menonaktifkan file xmlrpc.php
. Anda dapat melakukan ini hanya dengan menambahkan blok kode di dalam file .htaccess
Anda. Pastikan Anda melakukan ini sebelum aturan .htaccess
yang tidak pernah berubah ditambahkan oleh WordPress.
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
Ini akan menonaktifkan file xmlrpc.php
untuk setiap aplikasi atau layanan yang menggunakannya. Anda dapat memasukkan alamat IP tertentu ke daftar putih jika Anda masih ingin mengakses situs WordPress Anda melalui XMLRPC. Untuk itu, Anda perlu menambahkan perintah berikut:
<Files xmlrpc.php>
<RequireAny>
Require ip 1.1.1.2
Require ip 2001:db8::/32
</RequireAny>
</Files>
kelebihan
- Menghilangkan risiko XMLRPC disalahgunakan dalam serangan cyber.
- Manfaat kinerja jangka panjang & penghematan pada sumber daya server.
Kontra
- Menonaktifkan XMLRPC sama dengan menonaktifkan akses jarak jauh untuk aplikasi yang menggunakan versi akses jarak jauh ini. Ini berarti Jetpack, aplikasi seluler WP, atau solusi lain apa pun yang terhubung dengan situs WordPress Anda melalui XMLRPC tidak dapat terhubung dengan situs Anda lagi.
- Kode lama untuk aplikasi khusus mungkin juga tidak berfungsi.
Mengapa Memasang Plugin Keamanan Sebenarnya Menyakiti Situs Anda
Pengguna WordPress sering bersandar pada plugin untuk fitur atau fungsionalitas yang diperlukan tanpa terlalu memikirkan dampaknya terhadap kinerja situs. Ada beberapa plugin keamanan WordPress di luar sana yang menjanjikan untuk mengamankan situs web Anda dari masalah keamanan terkait XMLRPC tetapi pada kenyataannya, mereka lebih merusak situs Anda.
Berikut adalah beberapa alasan mengapa mengamankan situs Anda dengan plugin bukanlah pilihan terbaik.
- Plugin keamanan hanya efektif di tingkat aplikasi dan tidak melindungi server Anda dari serangan.
- Mereka menambahkan kode yang tidak perlu di situs Anda yang menurunkan kinerjanya dan meningkatkan waktu ke byte pertama (TTFB).
- Beberapa plugin ini lebih berbahaya daripada bermanfaat dan digunakan oleh peretas untuk membuat pintu belakang ke situs web Anda.
- Plugin ini membutuhkan manajemen yang sering yang menambah lebih banyak beban kerja.
Dari penilaian di atas, tidak ada opsi yang menawarkan solusi ideal untuk menangani masalah keamanan XMLRPC. Ini membawa kita ke Domain yang Dipercepat. Sebuah layanan yang dibangun untuk memecahkan masalah terkait keamanan yang kompleks dan banyak lagi. Mari kita lihat bagaimana Domain yang Dipercepat dapat secara efektif menyelesaikan masalah XMLRPC untuk Anda.
Bagaimana Domain yang Dipercepat Menangani Masalah XMLRPC Untuk Pelanggannya?
Domain yang Dipercepat memecahkan masalah kinerja, keamanan, dan skalabilitas yang kompleks dengan cara yang paling efisien. Accelerated Domains menawarkan keamanan terkelola tingkat perusahaan yang memblokir segala jenis serangan siber termasuk yang terkait dengan XMLRPC.
Mesin Keamanan cerdas Accelerated Domains berada di depan server dan memfilter hampir 40% dari semua lalu lintas HTTP. Ini mendeteksi bahkan serangan siber paling canggih di awal garis waktu melalui kemampuan heuristik cerdasnya yang didukung oleh pemberian data berkelanjutan dan pengetahuan langsung serta analisis lalu lintas Servebolt. Accelerated Domains melakukan keajaibannya tanpa menurunkan kinerja situs Anda dengan cara apa pun. Bahkan, itu mempercepatnya.
Mesin Keamanan proaktif Accelerated Domains secara otomatis melindungi situs web Anda dari serangan DDoS. Dengan kapasitas jaringan hampir 60 Tbps, perangkat ini dilengkapi dengan baik untuk menahan bahkan beberapa serangan DDoS terbesar di internet. Demikian pula, ini menyediakan mekanisme pertahanan yang efektif terhadap serangan Bruteforce melalui fitur pembatasan kecepatan otomatis di mana jumlah permintaan yang dihasilkan dari satu sumber diidentifikasi dan dibatasi untuk mencegah aktivitas jahat.
kelebihan
- Domain yang Dipercepat mengurangi sebagian besar kerentanan keamanan yang terkait dengan XMLRPC, oleh karena itu tidak perlu menonaktifkannya.
- Memungkinkan pengguna untuk tetap menggunakan plugin seperti Jetpack, aplikasi WooCommerce, dan alat lain yang bergantung pada file xmlrpc.php.
- Integrasi tanpa kerumitan pada domain apa pun sehingga tidak perlu memodifikasi file
.htaccess
. - Tidak perlu menginstal plugin tambahan.
Kontra
- Tidak ada.
Pikiran Akhir
Serangan siber semakin canggih dari hari ke hari dan sebagai webmaster dan pemilik bisnis, sangat penting bagi Anda untuk memahaminya dan mengetahui alat untuk menghadapinya. Sebagian besar serangan dihindari dengan pendekatan proaktif seperti pemantauan konstan dan memperbarui perangkat lunak atau dengan menambahkan alat seperti Domain yang Dipercepat yang melakukan semua itu dengan pilot otomatis. Setelah diaktifkan, Accelerated Domains dengan cerdas menyaring lalu lintas dan mengambil tindakan yang diperlukan jika diperlukan untuk menjaga server asal dan situs web Anda terlindungi dari serangan siber.