Hal-hal aneh seputar Brontok
Pencipta virus
Brontok diduga dari Institut Teknologi Bandung (ITB), tapi ternyata tidak ada bukti mengenai hal itu kecuali mengenai laporan bahwa virus mulai menyebar di ITB. Virus ini mengupdate dirinya dari suatu situs di Internet, tapi anehnya hanya satu analisis yang menyebutkan hal tersebut. Padahal dengan mengetahui dari URL mana virus itu mengupdate dirinya, kita bisa melakukan hal berikut:
- Melacak siapa pemilik situs itu, dan dalam kasus web site gratisan, pihak-pihak tertentu (administrator ISP, dll) bisa diminta untuk melacak orang yang mendaftarkan situs tersebut atau mengakses situs tersebut kali pertama (kemungkinan besar sang pembuat virus).
- Administrator bisa memblok URL update virus di level proxy atau firewall.
- Dengan melihat log, administrator bisa melacak komputer mana yang terinfeksi Brontok.
Satu-satunya analisis lokal yang menyebutkan bahwa virus mengupdate dirinya berasal dari sebuah perusahaan antivirus lokal yang menjalin kerja sama dengan sebuah perusahaan antivirus luar negeri. Tapi anehnya meski perusahaan tersebut mengetahui bahwa virus tersebut mengupdate dirinya, dia tidak menyebutkan URL updatenya, meski sudah saya tanya pribadi melalui email. Apakah perusahaan tersebut tidak tahu URLnya? (kurang pandai dalam menganalisis virusnya) ataukah mereka sengaja membiarkan agar virus berkesempatan mengupdate dirinya dan perusahaannya mendapatkan untung? (kedua kemungkinan tersebut sama mengkhawatirkannya).
Virus ternyata tidak hanya bisa mengupdate dirinya, tapi juga mendownload daftar file yang perlu dihapus sebelum proses update dilakukan, artinya virus yang tadinya hanya dianggap mengesalkan ini ternyata bisa berbahaya juga. Dan sebenarnya file update virus ini bisa saja bukan berisi virus baru, tapi berisi kode untuk memformat komputer Anda.
Virus versi awal hanya menyerang situs
17tahun.com dan
israel.gov.il, tapi lama-lama mulai menyerang situs lain, seperti
www.kaskus.com, dan bahkan situs pribadi (blog) seperti
fajarweb.com, adakah dendam pribadi oleh pembuat virus ini pada orang tertentu?
Pembuat virus mencantumkan kata-kata ini di virusnya:
!!! Akan Kubuat Mereka (VM lokal yg cengeng & bodoh) Terkapar !!!
Dan di versi Brontok terbaru, ternyata dia berusaha menghapus virus lokal seperti dekil/decoy, kumis, fawn, kangen, dan riyani_jangkaru (pengetahuan saya mengenai virus lokal agak minim, jadi dafar ini hanya yang saya ketahui). Penghapusan sebagian virus lokal cukup menyeluruh, dengan membunuh task virus, menghapus file virus, dan bahkan menormalkan atribut file dokumen yang dibuat menjadi
hidden oleh virus lain (tapi pembersihan registry yang diubah virus lain tidak dilakukan).
Artikel ini akan saya buat seobjektif mungkin, dengan analisis yang dalam dan akurat. Artikel ini sekaligus dapat menjadi koreksi bagi informasi analisis Brontok di situs lain yang isinya kadang tidak akurat.
Fakta dan catatan
Beberapa pernyataan dalam artikel ini mungkin akan menimbulkan prasangka tertentu, oleh karena itu saya ingin memberitahukan beberapa fakta mengenai diri saya:
- Saat ini saya bukan pengguna Windows lagi meskipun saya masih punya satu partisi Windows yang saya gunakan untuk keperluan seperti ini (analisis virus, dan mencoba-coba program Windows). Saya tidak menyimpan data di Windows, jadi eksperimen semacam ini cukup aman bagi saya. Sehari-hari saya memakai Mac OS X di iBook G4, dan GNU/Linux (Fedora Core 4) di AMD64. Karena bukan pengguna Windows, mungkin pengetahuan saya sedikit tertinggal dalam hal aplikasi-aplikasi yang ada di Windows, tapi pengetahuan teknis low level Windows selalu saya update.
- Saat ini saya tidak bekerja di bisnis security ataupun memiliki bisnis yang berhubungan dengan security. Segala macam pernyataan saya terhadap entitas bisnis lain tidak dimaksudkan untuk menguntungkan diri saya. Pekerjaan saya adalah teaching assistant di Jurusan Teknik Informatika Sekolah Tinggi Elektro dan Informatika (dulu bagian dari Fakultas Teknologi Industri) Institut Teknologi Bandung.
- Saya bukan cracker, saya bukan orang-orang dari kelompok pembuat virus baik kelompok luar negeri maupun Indonesia.
- Saya hanya memiliki Brontok versi lama (contoh Brontok diambil dari salah satu lab di ITB), dan versi terbaru (contoh Brontok diambil dari Universitas Negeri Jakarta/UNJ), versi di antaranya saya tidak punya.
- Saya tidak mencantumkan URL aneka tools yang saya pakai, karena URL untuk tools yang dapat membantu proses cracking biasanya selalu berpindah, gunakan Google untuk mencari tools-tools yang saya sebutkan.
- Saya tidak membuatkan antivirus untuk Brontok ini, silakan Anda gunakan antivirus yang sudah ada (saya tidak ingin bersusah payah mengupdate antivirus terhadap Brontok yang selalu diupdate, banyak antibrontok yang ada di Internet sudah tidak bisa lagi mendeteksi, menghapus, atau menangani Brontok versi yang baru). Antivirus yang ada di pasaran dengan update terbaru seharusnya sudah cukup. Namun jika Brontok ini makin sulit diberantas, saya akan membuatkan antivirus khusus untuk Brontok. Namun saya memberikan langkah pembersihan Brontok manual yang generik untuk berbagai versi Brontok saat ini.
Bagaimana analisis virus dilakukan?
Ada tiga cara untuk menganalisis virus, pertama dengan cara
black box, yaitu melihat perilaku virus di sebuah lingkungan tertentu, menganalisis isi virus dengan
disassembly, dan yang ketiga adalah dengan melihat jalannya virus dengan
debugger. Sayangnya kebanyakan orang hanya bisa melakukan analisis cara pertama dan sedikit cara kedua, namun tidak menyeluruh.
Black box analysis
Beberapa program tersedia untuk melihat perbedaan
state komputer sebelum dan sesudah program sesuatu dijalankan (termasuk juga sebelum dan sesudah virus dijalankan). Saya tidak terlalu percaya dengan program semacam ini, tapi program semacam ini bisa menunjukkan file-file apa saja yang dibuat virus, dan perubahan registry apa yang dilakukan oleh virus. Cara ini mudah namun tidak ampuh, karena mungkin saja virus berperilaku aneh setiap hari Rabu sementara Anda mengetes di hari Selasa. Mungkin juga program yang dipakai untuk mencatat
state sistem tidak sempurna sehingga ada perubahan yang tidak tercatat, dan ada kemungkinan virus tersisa setelah proses analisis selesai. Jika virus cukup canggih dan bisa mendeteksi adanya program pemonitor, virus bisa bertingkah laku berbeda dari keadaannya yang biasa.
Disassembly dan atau dekompilasi
Program dalam bahasa tertentu (biasanya yang dikompilasi dan diinterpretasi sekaligus, misalnya Java atau C#) bisa didekompilasi dengan mudah, artinya "bahasa mesin" yang ada pada file exe bisa dikembalikan menjadi
source code, tapi program dalam bahasa lain tidak bisa dikembalikan menjadi
source code, hanya bisa menjadi bahasa assembly.
Bahasa
assembly sifatnya sangat
low level (sangat dekat dengan mesin) sehingga sulit dimengerti kecuali dengan kesabaran dan banyak latihan (biasanya dengan bantuan
debugger juga). Tidak banyak orang yang mau dan bisa melakukan hal tersebut, tapi itulah yang setiap hari dilakukan
cracker untuk membuat
serial number generator, dan mengcrack aneka program (program bajakan yang dipakai oleh banyak orang sekarang adalah karya
cracker).
Melihat jalannya virus dengan debugger
Debugger bisa digunakan untuk menjalankan virus dalam lingkungan yang dapat dimonitor. Alur eksekusi, termasuk enkripsi virus bisa dipelajari dengan mudah. Penganalisis harus berhati-hati karena virus bisa saja menggunakan teknik
antidebug, atau berjalan tidak terkendali. Biasanya teknik analisis ini digabung dengan
disassembly.
Pendekatan analisis Brontok
Bagian ini sangat teknis dan boleh di-
skip.
Saya tidak melakukan
black box analysis (karena sudah terlalu banyak orang yang melakukannya dengan kesimpulan yang agak ngawur), tapi langsung men-
disassemble Brontok. Brontok versi pertama dikompilasi menjadi
p-code (semacam
bytecode pada Java) dan cukup mudah dimengerti. Versi Brontok yang baru menggunakan
native code, sehingga lebih sulit dianalisis. Analisis versi pertama tidak akan dibahas.
Sebelum saya menjelaskan proses analisis, saya perlu memberitahukan bahwa telah menyalin brontok menjadi beberapa nama yang berbeda sebelum diproses (
debug,
disassemble, dll) oleh program yang berbeda. Tujuan penyalinan adalah agar aman bagi saya (jangan sampai tidak sengaja menjalankan file exe), dan aman dari kesalahan program yang mungkin mengubah salinan Brontok yang saya miliki.
File EXE Brontok dienkripsi dengan program MeW sehingga harus didekrip/ekstrak menggunakan UnMeW, tapi ini menyebabkan struktur file berubah dan menyebabkan program untuk menganalisis
executable Visual Basic, misalnya Race, tidak bisa mengenali lagi bahwa itu adalah file VB. Untungnya salah satu tools untuk membantu menganalisis file VB yang bernama VBDE masih bisa mengekstrak sedikit informasi dari file tersebut .
VBDE digunakan untuk mendapatkan informasi dasar file VB
Karena file menggunakan
native code,
disassembler terbaik adalah IDA Pro (saya pakai versi
freeware), dengan IDA Pro saya bisa melihat cukup banyak hal di Brontok. Tapi sayangnya IDA Pro tidak bisa melihat VTABLE Visual Basic (tabel
method, ini sangat penting dalam kode program yang dikompilasi dari suatu bahasa yang menggunakan objek), dan satu-satunya cara termudah adalah menjalankan Brontok.
Pertama sebelum Brontok dijalankan,
binary Brontok perlu diedit untuk menonaktifkan
timer (waktunya diset menjadi 0 agar
timer tidak pernah dieksekusi). Pengeditan ini dilakukan dengan mengunakan Hex Editor (saya memakai Hexplorer yang gratis), dan hal ini memerlukan sedikit coba-coba sampai berhasil. Bagian utama Brontok ada di
timer, sehingga dengan menonaktifkan
timer, Brontok bisa dianalisis dengan aman (tapi tetap berbahaya).
Isi file Brontok, terlihat ada beberapa string yang dienkripsi dan yang tidak dienkripsi dalam Brontok.
Untuk mendebug,
debugger yang saya pakai adalah OllyDbg,
debugger ini cukup canggih dan nyaman dipakai dibanding WinDBG dari Microsoft (dan sama dengan WinDBG, program ini gratis). Dengan mencocokkan
listing IDAPro dengan OllyDbg saya bisa memahami Brontok dengan cukup mudah.
Isi brontok yang didisassembly menggunakan IDA Pro.
Langkah terakhir adalah dengan merekonstruksi sebagian
source code Brontok menggunakan VB, hal ini dilakukan untuk melihat apakah pemahaman saya sudah benar. Jika hasil
disassembly dari file VB yang sudah saya buat sama dengan
disassembly Brontok, maka berarti pemahaman saya sudah benar.
VB memiliki
error handling "On Error Resume Next"
yang sangat membantu pemahaman hasil
disassembly.
Error handling tersebut berarti jika terjadi
error maka pergilah ke baris berikutnya. Nah komputer perlu tahu di mana lokasi baris berikutnya yang harus dieksekusi jika ada
error, sehingga informasi tersebut disimpan di
executable file. Dengan berbekal nomor baris itu, saya bisa merekonstruksi dengan cukup tepat sampai ke level baris kode.
No Response to ""
Post a Comment