
Di tengah meningkatnya ancaman siber, keamanan hosting menjadi prioritas utama bagi setiap pemilik situs web. Salah satu vektor serangan yang paling umum dan sering dimanfaatkan oleh pihak tidak bertanggung jawab adalah kerentanan pada berkas-berkas sistem yang kurang diperhatikan. Dalam konteks sistem manajemen konten yang populer, berkas xmlrpc.php telah lama menjadi titik lemah yang sering disalahgunakan untuk melancarkan berbagai serangan, termasuk Distributed Denial of Service (DDoS) dan, yang paling berbahaya, injeksi malware.
Berbeda dengan serangan injeksi SQL yang menargetkan basis data, injeksi malware yang memanfaatkan xmlrpc.php sering kali bertujuan untuk mengunggah dan mengeksekusi kode berbahaya, mendapatkan akses tidak sah, atau menyebarkan spam dan phishing. Berkas ini pada dasarnya dirancang untuk memungkinkan komunikasi jarak jauh antara situs web dengan sistem lain, seperti aplikasi seluler atau platform penerbitan lainnya, menggunakan protokol XML-RPC. Namun, fungsionalitas ini, yang sering kali tidak diperlukan oleh pengguna modern, justru membuka pintu belakang yang luas bagi eksploitasi.
Mengamankan hosting bukanlah pekerjaan sekali jalan, melainkan proses berkelanjutan yang memerlukan pemahaman mendalam tentang celah-celah yang ada. Artikel ini akan mengupas tuntas mengapa xmlrpc.php menjadi target utama, bagaimana penutupan atau pembatasannya dapat berfungsi sebagai lapisan pertahanan yang efektif, dan langkah-langkah teknis yang harus diambil untuk memperkuat keamanan hosting secara keseluruhan dari risiko injeksi malware.
Membentengi Hosting Melalui Kontrol xmlrpc.php
1. Memahami Peran xmlrpc.php sebagai Titik Kerentanan
Berkas xmlrpc.php adalah implementasi dari standar XML-RPC, sebuah protokol yang menggunakan HTTP untuk mengirimkan informasi dan perintah antara sistem.
- Fungsi Asli dan Historis: Dalam konteks aslinya, berkas ini memungkinkan pengguna untuk melakukan tindakan penerbitan jarak jauh (misalnya, membuat unggahan baru melalui aplikasi desktop atau mobile) tanpa harus masuk ke dasbor web.
- Disalahgunakan untuk Serangan Brute Force: Fungsi multicall pada xmlrpc.php memungkinkan penyerang untuk menggabungkan ribuan permintaan login ke dalam satu permintaan HTTP saja. Hal ini sangat efisien bagi penyerang dan sulit dideteksi oleh mekanisme pertahanan dasar, yang membuat serangan brute force menjadi jauh lebih cepat dan masif.
- Vektor Injeksi Malware: Setelah berhasil mendapatkan kredensial atau menemukan kerentanan lain yang dapat dieksploitasi melalui xmlrpc.php, penyerang dapat menggunakan akses ini untuk menyuntikkan dan mengeksekusi kode PHP berbahaya (malware). Kode ini kemudian dapat berfungsi sebagai backdoor, spam gateway, atau perusak basis data.
2. Strategi Penutupan dan Pembatasan Akses
Langkah paling efektif untuk menghilangkan risiko adalah dengan menutup akses ke xmlrpc.php, terutama jika fungsionalitasnya tidak digunakan.
- Metode 1: Memblokir Melalui Berkas Konfigurasi Server (misalnya, .htaccess)
- Memblokir akses langsung ke berkas xmlrpc.php melalui aturan server adalah cara yang paling umum dan direkomendasikan. Aturan ini memberi tahu server untuk menolak atau mengembalikan kode status kesalahan (misalnya, 403 Forbidden) setiap kali ada upaya untuk mengakses berkas tersebut.
- Pemblokiran ini efektif karena ia beroperasi pada tingkat server, mencegah permintaan HTTP mencapai dan memproses script PHP.
- Metode 2: Pembatasan Berbasis IP (Tingkat Lanjut)
- Jika fungsionalitas XML-RPC masih diperlukan untuk aplikasi atau layanan tertentu (misalnya, untuk pingback yang sah), pemblokiran total tidak dapat dilakukan. Solusinya adalah membatasi akses hanya dari alamat IP yang dikenal dan tepercaya.
- Dengan cara ini, hanya layanan resmi yang diizinkan berinteraksi dengan berkas, sementara akses dari jaringan global (wildcard) diblokir.
- Metode 3: Penonaktifan Fungsionalitas Internal (Jika Berlaku)
- Pada beberapa sistem manajemen konten, terdapat opsi internal untuk menonaktifkan fungsionalitas XML-RPC secara keseluruhan, meskipun metode ini mungkin kurang komprehensif dibandingkan pemblokiran pada tingkat server.
4. Pencegahan Injeksi Malware Secara Umum
Injeksi malware terjadi ketika penyerang berhasil memasukkan kode berbahaya ke dalam berkas atau basis data. Selain menutup xmlrpc.php, pencegahan memerlukan fokus pada Validasi Input.
- Validasi dan Sanitasi Input: Setiap data yang dikirimkan oleh pengguna (melalui formulir, URL, atau antarmuka API) harus diverifikasi secara ketat (validasi) dan dibersihkan dari karakter atau kode yang berbahaya (sanitasi) sebelum diproses oleh aplikasi atau disimpan ke basis data. Kegagalan di sini dapat menyebabkan injeksi berbahaya melalui skrip lain.
- Keamanan Basis Data: Pisahkan akses dan izin basis data. Jangan pernah menggunakan akun basis data dengan izin root untuk aplikasi web. Selain itu, praktikkan principle of least privilege, di mana script hanya memiliki izin yang mutlak diperlukan.
Cara memasang script agar 403 Forbidden
Jika menggunakan Cpanel webserver(Litespeed /apache )

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
cukup tempelkan paling bawah pada file .htaccess.
Jika menggunakan aapanel web server nginx

location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location = /xmlrpc.php {
deny all;
}
Tambahkan script pada URL Rewrite lalu save .
untuk pengujiannya seperti gambar di bawah ini :

Kesimpulan
Berkas xmlrpc.php telah terbukti menjadi kerentanan signifikan yang dimanfaatkan untuk berbagai serangan, termasuk injeksi malware dan brute force yang tersembunyi. Untuk hosting yang tidak memerlukan fungsionalitas komunikasi jarak jauh, pemblokiran total akses ke berkas xmlrpc.php pada tingkat server (.htaccess) adalah tindakan pengamanan yang paling efektif dan harus dianggap sebagai praktik terbaik. Namun, keamanan yang sesungguhnya memerlukan pendekatan berlapis, menggabungkan pemblokiran xmlrpc.php dengan pembaruan perangkat lunak rutin, penguatan izin berkas, dan penerapan WAF. Dengan strategi ini, pemilik situs web dapat secara proaktif mengurangi permukaan serangan mereka dan secara signifikan meningkatkan ketahanan hosting mereka terhadap malware dan ancaman siber lainnya.
Keamanan adalah tentang menutup celah sebelum penyerang menemukannya. Dengan mengunci pintu belakang yang diwakili oleh xmlrpc.php, kita memperkuat pertahanan dan menjaga integritas aset digital kita.