5 Kerentanan Wordpress dan Cara Mengatasinya

Apakah Anda tahu bahwa situs web lebih dari 73 juta di dunia berjalan di platform penerbitan Wordpress? Hal ini membuat Wordpress lebih populer dari Microsoft SharePoint, Blogger, atau Drupal. Ini juga berarti bahwa WordPress adalah target besar untuk defacer.

Setengah dari situs WordPress di luar sana adalah self-host, yang berarti bahwa administrator WordPress memiliki tanggung jawab besar untuk kemananannya. Ada beberapa cara untuk mengamankan WordPress, tapi hanya sebagian kecil dari situs benar-benar melakukannya. Hal ini membuat target Wordpress lebih populer untuk defacer.

5 Kerentanan Wordpress  dan Cara Mengatasinya

1. Vulnerability : SQL Injection & URL Hacking

SQL injection menggambarkan kelas serangan di mana defacer menanamkan perintah di URL yang memicu perilaku dari database. (SQL adalah bahasa perintah yang digunakan oleh database MySQL.) Serangan-serangan ini dapat mengungkapkan informasi sensitif tentang database, berpotensi memberikan pintu masuk defacer untuk memodifikasi konten yang sebenarnya dari situs Anda. Banyak dari serangan situs web defacement yang dicapai oleh beberapa bentuk tekhnik SQL Injection.

Pertahanan: Apache menggunakan sebuah file bernama. Htaccess untuk mendefinisikan aturan akses untuk situs web Anda. Satu set aturan yang menyeluruh bisa mencegah banyak jenis SQL Injection. Kode di bawah ini merupakan satu set aturan yang Anda dapat anda masukkan ke dalam file htaccess situs web anda untuk mencegah permintaan dari SQL injection pada URL


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ - [F,L]
RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag\= [NC,OR]
RewriteCond %{QUERY_STRING} ftp\:  [NC,OR]
RewriteCond %{QUERY_STRING} http\:  [NC,OR]
RewriteCond %{QUERY_STRING} https\:  [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(&#x22;|&#x27;|&#x3C;|&#x3E;|&#x5C;|&#x7B;|&#x7C;).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^(.*)$ - [F,L]
</IfModule>



2. Vulnerability : Access to Sensitive Files

File-file, seperti file konfigurasi Wordpress, instal script, dan bahkan "readme" file harus disimpan tersembuyi.

Pertahanan: Anda dapat menambahkan perintah ke file htaccess Apache untuk memblokir akses ke file sensitif. Untuk instalasi WordPress, kode berikut akan memblokir akses ke daftar direktori, ditambah satu set file khusus yang terkait dengan Wordpress dan Web server itu sendiri.

Options All -Indexes
<files .htaccess>
Order allow,deny
Deny from all
</files>
<files readme.html>
Order allow,deny
Deny from all
</files>
<files license.txt>
Order allow,deny
Deny from all
</files>
<files install.php>
Order allow,deny
Deny from all
</files>
<files wp-config.php>
Order allow,deny
Deny from all
</files>
<files error_log>
Order allow,deny
Deny from all
</files>
<files fantastico_fileslist.txt>
Order allow,deny
Deny from all
</files>
<files fantversion.php>
Order allow,deny
Deny from all
</files>

3. Vulnerability : Default Admin User Account

Banyak default WordPress yang di-install termasuk akun administrator pengguna yang username adalah hanya "admin". Defacer dapat mencoba untuk login ke account ini dengan menebak passwordnya.

Pertahanan: Setiap unsur prediktabilitas memberikan keuntungan kepada defacer. Meskipun defacer masih perlu menebak atau mem-brute force password Anda untuk mengakses account admin. Login ke Wordpress dan membuat user baru dengan nama yang tak terduga. Menetapkan hak administrator untuk pengguna ini. Hapus account bernama "admin". Seorang defacer sekarang akan perlu menebak kedua username dan password untuk mendapatkan akses administrator, suatu prestasi signifikan lebih menantang. 

4. Vulnerability : Default Prefix for Database Tables

Database Wordpress terdiri dari banyak tabel. Dalam menginstal Wordpress, tabel ini diberi nama dengan awalan default yang dimulai dengan "wp_". Untuk defacer, kemampuan untuk memprediksi apa pun bisa memberikan keuntungan ekstra.

Pertahanan: Saat membuat sebuah instalasi baru WordPress, Anda dapat menentukan awalan tabel database sendiri. Ini memberi Anda kesempatan untuk memilih sesuatu yang unik dan tak terduga. Jika WordPress sudah terinstal, Anda retroaktif dapat mengubah nama tabel. Meskipun hal ini dapat dilakukan secara manual, proses ini membutuhkan manipulasi langsung pada database.

Cara yang lebih mudah untuk mengubah prefiks tabel untuk instalasi Wordpress yang sudah ada adalah dengan menggunakan plugin bernama Better WP Security. Plugin ini berisi beberapa pertahanan, dengan sedikit klik Anda dapat mengubah nama tabel dan memasukkan awalannya sesuai dengan keinginan Anda.

4. Vulnerability : Brute-Force Login Attempts

Defacer sering mengandalkan script otomatis ( brute force ) untuk melakukan pekerjaan kotor mereka. Script ini dapat membuat berbagai upaya untuk login ke halaman administrasi WordPress Anda dengan mencoba ribuan dan jutaan kombinasi username dan password. Tidak hanya itu, usaha memperlambat situs web Anda ( DDOS attack ) untuk pengguna yang sah, mungkin juga berhasil memberi defacer kepuasan tersendiri.

Pertahanan: Tentu saja, Anda harus mulai dengan selalu menggunakan password yang kuat. Gunakan password dengan kombinasi antara angka, huruf dan simbol sehingga memakan waktu lebih lama untuk serangan brute force dalam memecahkan kode. Serangan ini biasanya menggunakan kombinasi kata kamus dan angka. 

Jangan lupa menginstal limiter login untuk Wordpress. Sebuah limiter Login pada dasarnya dapat memblokir atau meng-karantina alamat IP atau nama pengguna yang mencoba dan gagal untuk mengirim permintaan login di atas tingkat ambang batas. Misalnya, batas login 10 kali per 5 menit.

Di atas langit masih ada langit dan tidak ada yang aman 100% di dunia cyber