Mengatasi DDoS XMLRPC Exploit WorPress

Jadi, hari ini website ini dan beberapa website lain yang berada diĀ serverĀ ini mati ti ti ti selama beberapa saat karena DDoS yang dilakukan dari dua IP address berbeda. Dulu semasa kuliah, saya sempat mengira bahwa mana mungkin saya mengalaminya, apalagi saya juga bukan spesialis server dan jaringan.

Ceritanya begini. Siang tadi, ketika saya sedang bekerja dan akan mengakses server ini melalui SSH, saya mengalami lag yang luar biasa dan setelah saya cek, resource komputer server nyaris habis. CPU dan memori selalu 100 persen dan partisi swap pun nyaris penuh. Tidak berselang lama, saya menyadari bahwa ternyata website ini pun down.

Untuk mencari tau masalah yang terjadi, saya melakukan troubleshooting sederhana dengan mengecek proses-proses apa yang menghabiskan resource, dan saya menemukan bahwa apache2 dan mysql lah yang menghabiskan resource. Saya terbiasa mengecek system resources dengan perintah htop yang bisa di-install di Linux dengan mudah. Kalau Anda tidak punya paket tersebut, cukup jalankan perintah top dan amati sysem resources yang mungkin menjadi masalah.

Selanjutnya, saya coba mengecek traffic keluar dan masuk server dengan menggunakan program nethogs. Perintah detailnya adalah sebagai berikut:
sudo nethogs eth0, dimana eth0 merupakan network port yang ingin dimonitor. Berikut hasilnya:

DDoS Attack
DDoS Attack

Dari sini, saya coba lookup kedua IP address tersebut: 185.130.5.247 dan 185.130.5.209 melalui http://www.abuseipdb.com/. Hasilnya, ada ratusan komplain yang sudah dilakukan terhadap kedua IP address ini.

Setelah jelas bahwa saya sedang diserang, selanjutnya saya coba mengatasinya dengan memberikan firewall rules untuk memblokir kedua IP address berikut dengan perintah ini:
sudo iptables -A INPUT -s 185.130.5.209 -j DROP
sudo iptables -A INPUT -s 185.130.5.247 -j DROP

Kemudian saya aktifkan kembali apache2 yang tadinya saya stop untuk menghindari kehabisan resource. Hasilnya? Tidak berhasil. Ternyata serangan semacam ini tidak bisa diatasi dengan perintah iptables tersebut. Karena, serangan semacam ini memanfaatkan pingback pada file xmlrpc.php yang menjadi target serangan.

Solusinya ternyata adalah dengan membatasi akses di level routing. Ini tentunya hanya penyedia layanan hosting / VPS saja yang bisa melakukannya, jadi silakan hubungi support team dari hosting provider Anda untuk solusi permanen.

Sementara sambil menunggu respon dari support team, Anda dapat mencoba memblokir akses ke file xmrpc melalui .htaccess:
<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>
, atau meng-install plugin untuk men-disable xmlrpc seperti plugin https://wordpress.org/plugins/disable-xml-rpc/, atau melalui konfigurasi apache2 untuk yang memiliki beberapa instalasi WordPress dalam satu server:
sudo nano /etc/apache2/apache2.conf, lalu tambahkan baris berikut:
<files xmlrpc.php>
order allow,deny
deny from all
</files>
, dan restart apache2 dengan perintah berikut:
sudo service apache2 restart

Oya, solusi tersebut hanya temporary workaround, mengingat dengan men-disable XMLRPC, beberapa fitur WordPress maupun plugin yang memanfaatkan XMLRPC tentunya tidak dapat bekerja. Fitur-fitur ini diantaranya adalah manajemen konten blog melalui aplikasi iOS / Android, dan fitur-fitur remote lainnya. Semoga membantu!

1 comment

  1. menarik gan, ini membantu saya karena terjadi hal serupa di website saya. terima kasih dan ditunggu artikel selanjutnya

Leave a comment

Your email address will not be published. Required fields are marked *