Mengatasi Serangan SEO Judi Online

Latar Belakang

Akhir-akhir ini situs pemerintahan dan institusi pendidikan sering menjadi target para penjahat SEO atau teknik blackhat SEO karena memiliki traffic yang besar, disamping itu domain .go.id secara umum memiliki nilai yang tinggi dalam pencarian karena umumnya mengandung informasi penting atau terpercaya bagi masyarakat, sehingga linknya sering dicantumkan di website lain, seperti portal berita yang mengulas tentang rencana aturan baru pemerintah, mengenai perpajakan, apa yang boleh dan tidak boleh dilakukan dan hal-hal lain yang umumnya bersifat penting. Tapi, menurut kami alasan utamnya adalah karena PROTEKSI YANG LEMAH.

Karena banyaknya domain dan subdomain yang dikelola, hal ini menimbulkan kurangnya proteksi atau pengawasan, ditambah hal-hal yang bersifat birokrasi sering kali memperburuk keadaan.

Engineer : “Pak, situs kita sering diretas, saat ini belum ada anggota yang memiliki keahlian untuk memproteksi sistem. Bagaimana bila kita open recruitment?”

Manager : “Kita sudah open recruitment, ternyata ekspektasi gajinya tinggi ya! rata-rata minta di atas UMR”

Engineer : “Mas, kita perlu bantuan untuk fix security issue ini di website ini, endpoint ini. Mohon bantuannya ya mas untuk perbaiki”

Developer : “Wah, mas kita masih banyak kerjaan nih, kalau ngefix issue security nanti kerjaan saya gak selesai-selesai”

Masih banyak lagi, hal-hal yang bersifat birokrasi. Boleh dong, ceritakan pengalaman anda yang berhubungan dengan adanya birokrasi yang menghambat proses perbaikan sebuah sistem! 😄

Karena kuranganya pengawasan dan lemahnya keamanan, alhasil banyaknya celah seperti misconfiguration, injection vulnerability, human error, dll tak terhindarkan. Adanya celah tersebut membuat situs rentan terhadap serangan.

Dikarenakan situs tersebut rentan terhadap serangan, maka para penjahat SEO dapat memanfaatkan celah tersebut untuk menyusupi situs-situs tersebut dan pada akhirnya melakukan kegiatan illegal untuk menaikan traffic / penggunjung situs judi.

Namun, tidak menutup kemungkinan mereka akan melakukan kegiatan merugikan lainnya seperti malware host, botnet, spam, drop database dan lebih banyak lagi hal lain yang dapat merugikan pemilik server / hosting.

SEO

Sebelum membahas tentang serangan dan cara memperbaikinya, alangkah baiknya kita membahas dahulu apa itu SEO.

SEO merupakan teknik optimasi Search Engine, yang pada intinya bertujuan untuk meningkatkan traffic website.

SEO sendiri dapat dilakukan dengan banyak cara, misalkan menulis komentar di website lain yang pada komentar tersebut mengarah ke website kalian, menulis artikel di portal berita dan mencantumkan link referensi menuju situs kalian, dan banyak teknik lainnya seperti SEO on page, SEO off page, sayangnya hal tersebut tidak termasuk pembahasan kami di artikel ini, silahkan teman-teman browsing sendiri 😀

Sedangkan, Blackhat SEO adalah teknik SEO yang dilakukan secara ilegal untuk menaikkan traffic suatu website yang dituju dan hal inilah yang dimanfaatkan oleh tim situs judi online untuk mempromosikan website judi mereka, seperti yang kita tau sampai saat ini situs-situs di indonesia terkena dampak ini, terutama situs milik pemerintahan dan institusi pendidikan seperti berikut.

contoh website terinjeksi gacor

Berikut adalah tampilan ketika salah satu hasil pencarian dibuka

contoh halaman website yang terinjeksi gacor

Serangan Umum Serta Cara Mengatasinya

Sejauh pengalaman kami, berikut adalah beberapa kerentanan yang sering dimanfaatkan oleh para penjahat cyber untuk mendapatkan akses sebuah sistem:

WordPress

90% kejadian peretasan terjadi pada situs berbasis WordPress dan tak sedikit pula pengguna CMS WordPress yang disusupi landing page judi online.

Seperti yang kita tau juga pada umumnya directory /wp-content digunakan untuk tempat menyimpan file atau folder plugin,tema dan file-file lainnya yang ada di wordpress, namun disini dimanfaatkan juga oleh pelaku blackhat SEO untuk mengupload landing page iklan judi, seperti berikut

contoh halaman terinjeksi gacor
ada beberapa cara yang umum digunakan untuk mendapatkan akses website berbasis CMS WordPress dan disini kami tuliskan cara untuk mencegah serangannya.

WordPress plugins and themes exploitation.

Sebelum memakai atau menginstall plugin ada baiknya untuk menanyakan beberapa pertanyaan seperti “versinya terbaru kah?”, “apakah ada vulnerabilitynya?”, “original nggak tuh?”

Seperti yang kita tau plugin dan tema di wordpress cukup banyak dan tercatat memiliki banyak vulnerability, untuk mencegahnya temen-temen bisa menginstall tools wpscan, tools ini sangat berguna bagi teman-teman yang memakai cms wordpres dan teman-teman bisa melakukan scan seperti berikut

tampilan tools wpscan cli

WordPress bruteforce / dictionary attack

Suatu teknik menebak kata sandi disuatu website yang menggunakan cms wordpress dengan cara menggunakan password list ataupun murni menggunakan kombinasi huruf, angka dan spesial karakter.

Untuk menghindari serangan ini ada banyak cara ataupun alternatif seperti :

add_filter( 'rest_endpoints', function( $endpoints ){
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
});

Apabila merasa cukup dengan theme ataupun plugin yang diinstall, teman-teman bisa tuh disable file modification yang bertujuan agar meminimalisir seseorang yang ingin mengupload file berbaya seperti webshell, caranya cukup simple cukup taruh config code ini di file wp-config.php

define('DISALLOW_FILE_MODS',true);

Non CMS/Framework

Laravel

Selain WordPress pengguna framework Laravel juga menjadi sasaran serangan blackhat SEO seperti berikut

contoh website laravel terinjeksi gacor

seringkali Laravel memiliki misconfiguration yang membuatnya rentan terhadap serangan, lalu CVE atau kerentanan apa saja yang sering dieksploitasi oleh para peretas untuk mengambil alih sebuah sistem berbasis framework Laravel?

Laravel RCE APP_KEY (CVE-2018-15133)

contoh exposed env

pada saat riset tim SHL menemukan file .env (environment) milik Laravel yang terbuka disuatu web yang menjadi korban blackhat SEO untuk promosi judi dan ketika dieksekusi dengan POC CVE-2018-15133 response-nya(hasilnya) WOW its working

hasil dari exploit cve-2018-15133

lalu cara menutup kerentanan ini gimana?

caranya cukup mudah, ganti APP_ENV=local dengan APP_ENV=production atau apabila teman-teman pakai web server apache cukup tambahkan config di file .htaccess yang berisi code berikut dan dengan ini teman-teman dapat membatasi seseorang ketika ingin mengakses file .env

<Files ".env">
Order deny,allow
Deny from all
</Files>

atau kalau teman-teman pakai nginx bisa menambahkan code ini di /etc/nginx/ atau /etc/nginx/nginx.conf bagian server

server {
  # Konfigurasi lainnya untuk situs web
  location ~ /\\.env {
    deny all;
  }
  # Konfigurasi lainnya untuk situs web
}

config ini dapat membatasi seseorang saat akses file .env

Laravel debug RCE (CVE-2021-3129)

Selain web tadi adapula web berbasis Laravel lainnya yang memiliki kerentanan berbeda yaitu CVE-2021-3129, ketika melakukan test dengan menambahkan _ignition/execute-solution menampilkan debug (error) hal ini dapat berpotensi serangan RCE pada debug mode

debug mode laravel yang dinyalakan

Serangan ini berdampak pada Laravel versi 8 kebawah, dan banyak sekali web developer laravel yang kurang memperhatikan config saat mendevelop ataupun saat mempublikasi websitenya padahal hal ini sangat berpengaruh, cara menghindari kerentanan ini cukup mudah ada baiknya mengupdate versi Laravel atau ignitionnya.

Laravel PHPunit RCE (CVE-2017-9841)

Kerentanan ini ada pada phpunit yang banyak sekali digunakan oleh user PHP termasuk laravel, kerentanan ini umumnya terletak di /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php dengan vulnrable code seperti berikut

eval('?>'.file_get_contents('php://input'));

hal ini memungkinkan attacker untuk melakukan RCE dengan melakukan POST data berisi code PHP berbahaya pada file eval-stdin.php , lalu cara mencegahnya gimana? gunakan modul phpunit terbaru atau tambahkan config .htaccess seperti berikut untuk memblokir akses pada file eval-stdin.php

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteRule ^vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php$ - [F]
</IfModule>

Laravel Register Admin

halaman laravel register default

Selain beberapa bug tadi adapun juga yang sering dimanfaatkan pelaku blackhat SEO untuk mendapat akses ke web target mereka yaitu Laravel Register Admin, maksudnya apa?

Seringkali developer tidak memperhatikan saat menginstall Laravel seperti laravel breeze yang otomatis ada fitur register atau memang sengaja mengaktifkan fitur register pada web mereka.

Bahkan tak sedikit, ketika melakukan percobaan dan mengambil beberapa domain dari hasil google dorking, lalu mencoba scanning, terlihat jelas bahwa fitur tersebut aktif

hasil scanning menggunakan nuclei

kesalahan saat coding ini kebanyakan di route laravel yang umumnya disetting seperti ini

Route::get('/register', [profileController::class, 'viewRegist'])->middleware('guest');
Route::post('/register', [loginRegistController::class, 'register'])->middleware('guest');
Route::get('/login', [loginRegistController::class, 'login'])->middleware('guest');
Route::post('/login', [loginRegistController::class, 'authenticate'])->middleware('guest')->name('login');
Route::post('/logout', [loginRegistController::class, 'logout'])->middleware('auth');

hal ini membuat user yang melakukan registrasi dapat memiliki hak akses, bisa sebagai user biasa ataupun administrator tergantung logic websitenya.

Disisi lain, terkadang developer tidak menerapkan akses control yang baik sehingga fitur yang seharusnya hanya boleh diakses oleh administrator (umumnya fitur penting dan sensitif) masih bisa diakses oleh user biasa.

Teman-teman bisa menonaktifkan fitur registrasi atau melakukan perbaikan dengan menerapkan akses kontrol yang benar sesuai kebutuhan.

SQLi

sql injection illustration
SQLI atau SQL injection adalah suatu serangan yang merujuk ke database SQL atau query SQL yang rentan dan kerentanan ini sering sekali dimanfaatkan peretas untuk mengambil data didalam suatu database, hal ini terjadi karena kesalahan saat coding pada query SQL yang pada intinya menganggap inputan user sebagai bagian dari query SQL.

Ada beberapa tipe serangan umum SQL injection yaitu :

Dari beberapa tipe serangan SQLi tentunya sangat berbahaya bukan dan juga adanya search engine membuatnya semakin mudah peretas untuk mendapatkan web dengan parameter-parameter SQL yang rentan, maka dari itu untuk meminimalisir serangan SQLI lakukan hal berikut

Arbitrary File Upload

Kerentanan ini berpotensi cukup besar apabila seseorang tidak melakukan validasi dengan benar pada suatu fungsi upload yang ditempatkan diwebsite, seperti

website vulnerability mindmap

Kalau sudah sampai bisa upload file berbahaya layaknya backdoor pasti berbahaya kan? maka dari itu untuk mencegah lakukan hal berikut

Kesimpulan

Teknik serangan yang digunakan oleh para attacker tidak terbatas pada apa yang kami tulis, karena jenis serangan ada banyak. Teknik remediasi atau perbaikan yang kami gunakan mungkin berbeda dengan apa yang biasanya teman-teman gunakan, atau mungkin berbeda dengan best practice yang ada.

Secara umum, berikut beberapa tips sederhana untuk meminimalisir serangan yang telah kami bahas:

Sebagai tambahan, berikut ada tambahan Dokumen tentang langkah – langkah penanggulangan insiden web defacement Judi Online dan Mitigasi yang dikeluarkan oleh BSSN yang bisa di-download di sini

Apabila teman-teman memiliki pandangan yang berbeda, ide, saran, ingin memperbaiki tulisan atau ada sesuatu yang ingin disampaikan, silahkan tulis di kolom komentar atau ke Discord SHL! 😄

https://s.id/SHLDiscord

Kami berencana membahas tentang bagaimana sih caranya membersihkan server yang sudah terkena injeksi blackhat SEO, khususnya SEO judi online

Akan kami lanjutkan artikel berikutnya apabila artikel ini mendapat respon yang positif dari teman-teman.

Semoga artikel ini bermanfaat dan terima kasih telah meluangkan waktu untuk membaca

Ditulis dengan ❤️ oleh Surabaya Hacker Link