25/01/2017
Pusdiklat BPS RI Rubrik : Lainnya
Skenario Kombinasi Tools yang Efektif dalam Analisis Malware 12 Juni 2013, 4:24:36 oleh Wisnu Nurdiyanto Abstraksi – Malware merupakan salah satu masalah bagi dunia keamanan komputer. Perkembangannya yang sangat pesat dari tahun ke tahun menjadi tantangan tersendiri bagi para praktisi keamanan. Varian yang baru semakin banyak muncul sehingga keberadaan program antivirus kadang tidak dapat mengantisipasi sepenuhnya. Oleh karena itu, kemampuan untuk menganalisis malware tetap diperlukan terutama bagi organisasi yang mengandalkan sistem komputerisasi dalam operasi bisnisnya. Makalah ini mencoba menyederhanakan proses analisis malware dengan tetap memperhitungkan cakupan semua aspek analisis. Menggunakan sistem operasi Windows, berbagai tools yang sifatnya open-source dibandingkan sehingga didapatkan kombinasi yang efektif untuk melakukan analisis malware. Kombinasi tools dimulai dari tahap pra-analisis yakni persiapan lingkungan sistem, tahap analisis hingga tahap pasca-analisis. Tahap analisis meliputi empat tahap inti analisis malware, yaitu analisis statis dasar, analisis dinamis dasar, analisis statis lanjut, dan analisis dinamis lanjut. Kata kunci: Malware, Analisis malware, Freeware
1. Pendahuluan Malicious software atau malware adalah segala bentuk software yang membayahakan baik bagi pengguna, komputer, atau jaringan. Malware merupakan sebab utama terjadinya banyak kasus penyusupan dalam sistem dan insiden-insiden keamanan. Malware bisa berupa virus, kuda trojan, worm, rootkit, scareware, dan spyware [1]. Malware berupa sebuah set instruksi yang berjalan pada sebuah komputer dan mengakibatkan komputer tersebut melakukan sesuatu yang diinginkan oleh penyerang [2]. Malware kian hari semakin banyak jumlah dan ragamnya. AV-Test Institute merilis statistik malware yang menyatakan bahwa hingga Mei 2013 jumlah malware sudah melebihi120 juta varian. Sementara jumlah malware yang baru muncul di tahun 2013 sendiri sudah melebihi setengah dari jumlah malware baru yang muncul satu tahun sebelumnya. Tahun 2012 jumlahnya tidak sampai 40 juta sedangkan pada bulan Mei 2013 jumlahnya sudah melebihi angka 20 juta malware baru [3]. Gambar 1 dan 2 menggambarkan tren akumulasi jumlah malware serta jumlah varian barunya setiap tahun. Perkembangan malware yang demikian pesat mengharuskan para pengguna sistem komputer waspada, terutama yang bekerja dengan platform Windows dan Mac. Kewaspadaan ini bermanfaat bukan hanya untuk sistem dan jaringan komputernya saja, tetapi juga untuk menjaga privasi yang mungkin bocor ke tangan orang yang tidak berhak. Selain menggunakan software antivirus, bagi perusahaan atau organisasi yang menggantungkan bisnisnya dengan sistem komputer, sangat penting untuk melakukan analisis malware demi pencegahan dan antisipasi serangan keamanan komputer.
1
25/01/2017
Gambar 1. Jumlah akumulasi malware tahun 2004 - 2013
Gambar 2. Jumlah malware baru tahun 2004 - 2013 Lebih jauh, Skikorski menyebutkan bahwa analisis malware merupakan seni membedah malware dengan tujuan memahami bagaimana malware bekerja, bagaimana mengidentifikasinya, hingga bagaimana cara mengatasi atau menghapusnya [1]. Karena merupakan seni, tentu untuk melakukannya diperlukan keahlian, pengalaman, dan insting dari seorang analis.
2
25/01/2017
1.1. Rumusan Masalah Untuk melakukan analisis malware, seorang analis membutuhkan perangkat-perangkat berupa software atau tools. Tersedianya tools yang banyak dapat membuat analis malware tidak optimal memilih kombinasinya untuk melakukan analisis yang komprehensif. Oleh karena itu, melalui penelitian ini penulis ingin menguji tools apa saja yang dapat dikatakan cukup untuk melakukan analisis malware serta bagaimana skenario kombinasinya?
1.2. Batasan Penelitian Penelitian ini dibatasi pada penerapan di lingkungan sistem operasi Windows. Selain itu, semua tools yang diajukan dalam penelitian ini sifatnya gratis (freeware). Adapun untuk lingkungan sistem analisis, yang digunakan adalah jenis lingkungan virtual.
1.3. Metodologi Dalam penelitian ini, penulis melakukan studi literatur di samping uji coba langsung untuk melakukan analisis perbandingan terhadap berbagai tool yang digunakan dalam proses analisis malware. Dari perbandingan tersebut, dipilih mana yang paling efektif untuk digunakan.
2. Kajian Pustaka 2.1. Taksonomi Malware Menurut Sikorski [1], malware dapat dibedakan menurut perilaku dan sasaran serangannya. Menurut perilakunya, malware dibagi menjadi 9 kelompok sedangkan menurut sasaran serangannya, malware dibagi menjadi dua kelompok.
Gambar 3. Taksonomi malware menurut Sikorski 1. Backdoor: kode jahat (malicious) yang menginstal dirinya sendiri ke dalam komputer untuk membuka akses bagi penyerang. Backdoor biasanya membiarkan penyerang untuk terhubung ke komputer dengan sedikit atau bahkan tanpa autentifikasi. Dengan demikian, penyerang dapat mengeksekusi perintah pada sistem lokal komputer korban. 2. Botnet: serupa dengan backdoor dalam hal membuka akses sistem bagi penyerang, tetapi semua komputer 3
25/01/2017
3.
4.
5.
6.
7.
8.
9.
yang terinfeksi dengan botnet yang sama akan menerima instruksi yang sama dari sebuah server pengendali milik penyerang. Downloader: kode jahat yang tugasnya hanya untuk men-download kode jahat lainnya. Downloader biasanya diinstal penyerang ketika dia mendapatkan akses ke sebuah sistem. Program downloader akan men-download dan menginstal kode jahat tambahan. Information-stealing malware: malware yang mengumpulkan informasi dari komputer korban dan biasanya mengirimkannya ke penyerang. Contohnya meliputi sniffer, pencuri password, dan keylogger. Malware jenis ini biasa dipakai untuk mendapatkan akses sebuah akun online seperti email atau internet banking. Launcher: program jahat yang dipakai untuk menjalankan program jahat lainnya. Biasanya launcher menggunakan teknik non-tradisional untuk menjalankan program jahat lainnya agar tidak terdeteksi dan bisa mendapat akses lebih ke dalam sistem. Rootkit: kode yang didesain untuk menyembunyikan keberadaan kode lainnya. Rootkit biasanya dipasangkan dengan malware lainnya, seperti backdoor, untuk membuat akses jarak jauh dari penyerang serta membuat kode sulit terdeteksi oleh korban. Scareware: malware yang didesain untuk menakuti korban agar mau membeli sesuatu. Scareware biasanya memiliki antarmuka yang menyerupai antivirus atau program keamanan lainnya. Scareware memberi informasi ke pengguna bahwa ada kode jahat dalam sistemnya dan satu-satunya cara adalah membeli software-nya. Pada kenyataannya, software yang dijual itu hanya menghapus scareware tersebut. Spam-sending malware: malware yang menginfeksi mesin pengguna dan kemudian menggunakan mesin itu untuk mengirim spam. Malware ini menghasilkan uang bagi penyerang dengan menjual layanan pengiriman spam. Worm atau virus: kode jahat yang dapat menduplikasikan diri dan menginfeksi komputer lainnya.
Sebuah malware bisa masuk ke dalam beberapa jenis malware di atas, tergantung perilaku atau serangan apa saja yang dilakukannya. Malware juga dapat diklasifikasikan berdasar tujuan si penyerang, yaitu malware masal dan malware tertarget [1]. Malware masal, misalnya berupa scareware, didesain untuk menyerang sebanyak mungkin komputer korban (serangan masif). Biasanya malware masal yang paling banyak dijumpai dan biasanya pula model ini lebih mudah dideteksi karena kebanyakan software keamanan mengantisipasi jenis malware masal. Malware tertarget, seperti misalnya backdoor, dibuat khusus untuk organisasi tertentu. Malware kelas ini merupakan ancaman yang lebih berbahaya daripada malware masal, karena tidak disebarluaskan dan produk keamanan yang dipakai korban biasanya tidak melindungi dari malware tertarget ini. Tanpa analisis malware, hampir tidak mungkin untuk melindungi jaringan terhadap malware tertarget serta menghilangkan infeksinya. Terlebih, malware tertarget biasanya sangat canggih, bahkan analis kadang perlu keahlian dan keterampilan tingkat tinggi. [1].
2.2. Tujuan Analisis Malware Analisis malware pada dasarnya untuk mendapatkan informasi dalam rangka mengatasi serangan dalam sistem korban. Dari informasi tersebut, kita dapat mengembangkan signature agar dapat mendeteksi infeksi malware. Tujuan akhirnya adalah menggambarkan dengan tepat bagaimana sebuah malware bekerja. [1] Signature host-based, atau indikator, dipakai untuk mendeteksi kode jahat pada komputer korban. Indikator ini mengidentifikasi file-file yang dibuat atau diubah oleh malware. Bisa juga mendeteksi perubahan pada registri yang dilakukan oleh kode jahat. Indikator malware fokus tentang apa yang dilakukan malware terhadap sistem, bukan pada ciri-ciri malware. Dengan indikator ini deteksi malware menjadi lebih efektif. Signature jaringan dipakai untuk mendeteksi kode jahat dengan cara memantau lalu lintas jaringan. Signature jaringan dapat dibuat tanpa analisis malware, tetapi signature yang dibuat dengan bantuan analisis malware 4
25/01/2017
biasanya lebih efektif, dan menawarkan tingkat deteksi tinggi serta kemungkinan kecil terjadi false positive (terdeteksi sebagai malware padahal bukan).
2.3. Teknik Analisis Malware Ada dua langkah dasar pendekatan dalam analisis malware: statis dan dinamis. Analisis statis meliputi pemeriksaan malware tanpa menjalankannya. Analisis dinamis harus menjalankan malware tersebut. Kedua teknik tersebut dikelompokkan menjadi dasar atau lanjut [1]. Menurut tingkat kerumitannya, keempat teknik tersebut dapat digambarkan secara sekuensial sebagai berikut.
Gambar 4. Urutan teknik analisis malware
2.3.1. Analisis Statis Dasar Proses analisis statis dasar memeriksa file malware tanpa melihat instruksi yang sebenarnya. Melalui analisis dasar ini kita dapat mengkonfirmasi apakah sebuah file itu berbahaya, memberikan informasi fungsionalitasnya, dan kadang memberikan informasi yang dapat membawa pada signature jaringan yang sederhana. Analisis dasar dapat dilakukan secara cepat, tetapi kadang tidak cukup untuk malware yang canggih, karena perilaku-perilaku penting malware bisa terlewat. Inti dari analisis ini adalah menganalisis kode atau struktur program untuk menentukan atau mengetahui apa fungsinya tanpa menjalankan malware tersebut. Ada beberapa cara untuk mendapatkan informasi tersebut [1], yaitu: 1. Dengan program antivirus. Antivirus bekerja mengandalkan database virus (signature file), analisis perilaku, serta pencocokan pola file. Persoalannya adalah bahwa malware sangat mudah dimodifikasi oleh pembuatnya sehingga kadang antivirus menjadi tidak akurat. Menggunakan kombinasi beberapa antivirus sangat bermanfaat. 2. Dengan metode hashing. Hashing merupakan metode yang umum dipakai untuk mengidentifikasi malware dengan memeriksa integritas file. Program hashing akan menghasilkan kode hash unik setiap file yang berbeda. Fungsi hash yang biasa dipakai adalah message-digest algorithm 5 (md5) dan secure hash algorithm 1 (SHA-1). 3. Dengan memeriksa string dalam malware. String dalam program merupakan sekuens karakter (huruf, angka, atau lainnya). Sebuah program biasanya mengandung string jika melakukan fungsi seperti mencetak pesan, koneksi ke URL, atau mengkopi file ke lokasi tertentu. 4. Deteksi wrapper malware. Beberapa malware dibuat dengan cara dipaket dan dikaburkan dengan bantuan wrapper. Artinya, pada kasus tertentu malware menjadi tidak terdeteksi fungsi-fungsi di dalamnya. Akibatnya, tool analisis statis tidak dapat mendeteksi keanehan string pada malware tersebut.
5
25/01/2017
Gambar 5. Proses pemaketan pada sebuah program exe Pada gambar di atas, pembuat malware dapat menyembunyikan string dan informasi-informasi lainnya dengan menggunakan program wrapper. Hasilnya, selain malware menjadi lebih kecil ukurannya, berbagai informasi penting menjadi tersembunyi. 5. Menggali fungsi-fungsi dalam malware. Program malware terdiri atas fungsi-fungsi yang perlu kita gali informasinya, seperti fungsi import. Import adalah fungsi yang dipakai oleh program tetapi disimpan dalam program lain, seperti misalnya librari pada Windows. Librari code dapat dihubungkan ke program utama dengan cara linking. 6. Memeriksa informasi header file. Header file sebuah portable executable (PE) –program yang dapat berjalan portabel, tanpa diinstal—biasanya menyimpan informasi lebih dari sekadar fungsi yang diimpor. Header file sebuah PE berisi header (metadata tentang file) yang diikuti oleh beberapa seksi/bagian.
2.3.2. Analisis Dinamis Dasar Analisis ini mencakup menjalankan malware dan mengamati perilakunya pada sistem dalam rangka membuang infeksinya, memproduksi signature yang efektif, atau keduanya. Analisis dinamis meliputi segala pemeriksaan yang dilakukan setelah kita mengeksekusi malware. Untuk melakukan analisis ini kita harus menggunakan laboratorium malware, baik fisik maupun virtual. Menimbang kelebihan dan kekurangan masing-masing, untuk saat init lebih baik menggunakan yang virtual. Dalam analisis dinamis dasar kita dapat memanfaatkan teknologi Sandbox. Sandbox merupakan sebuah mekanisme keamanan untuk menjalankan program yang belum dikenali dalam lingkungan yang aman tanpa takut merusak sistem sesungguhnya. Sandbox terdiri atas lingkungan tervirtualisasi yang sering dipakai untuk simulasi layanan jaringan untuk memastikan bahwa software atau malware yang diuji berfungsi normal. Monitoring proses merupakan bagian dari analisis dinamis dasar di mana kita dapat mengamati proses apa saja yang dilakukan oleh malware. Bahkan, untuk mengantisipasi malware yang melakukan koneksi ke jaringan internet, seorang analis dapat membuat domain name server (DNS) palsu untuk menangkap ke arah mana koneksi yang dilancarkan malware. Masih pada tahap analisis dinamis dasar ini adalah pemantauan lalu lintas data dalam jaringan ketika malware dijalankan. Paket data yang melalui jaringan komputer direkam dan diperiksa oleh analis malware.
2.3.3. Analisis Statis Lanjut Analisis tahap ini terdiri atas proses reverse-engineering terhadap malware dengan cara me-load file executable melalui program disassembler. Dari hasil proses ini seorang analis dapat melihat instruksi program sehingga dapat mengetahui apa yang dilakukan program malware.
6
25/01/2017
Reverse engineering secara sederhana dapat dijelaskan sebagai berikut. Malware tersimpan dalam media penyimpanan biasanya dalam bentuk binary dengan level kode mesin. Kode mesin adalah bentuk kode yang dapat dieksekusi komputer secara cepat dan efisien. Jika malware di-disassemble, berarti kode binary malware tersebut dikonversi menjadi bahasa Assembly yang bisa dipahami oleh seorang analis.
Gambar 6. Kompilasi kode sumber menjadi kode binary dan proses disassembler menjadi bahasa Assembly Pembuat malware memprogram malware-nya menggunakan bahasa pemrograman tingkat tinggi kemudian mengkompilasinya dengan kompiler menjadi bahasa mesin. Selanjutnya, proses reverse-engineering dilakukan dengan bantuan software disassembler menjadi bahasa program lagi tetapi dengan tingkat rendah, yakni bahasa Assembly.
2.3.4. Analisis Dinamis Lanjut Pada analisis ini yang dilakukan adalah melakukan debugging alias menganalisis berbagai state/kondisi internal sebuah program yang sedang berjalan. Proses ini dilakukan menggunakan debugger. Secara umum debugger dapat berupa software atau hardware yang dipakai untuk memeriksa eksekusi program lain. Pada dasarnya debugger dipakai dalam proses pengembangan software, untuk mendeteksi error (bug) yang muncul ketika pertama kali dibuat. Pembuat software hanya dapat melihat input dan output tanpa bisa melihat bagaimana program memproses input terrsebut. Dengan debugger pembuat program bisa melihat apa yang dilakukan oleh program ketika program tersebut berjalan. Debugger dirancang agar pengembang dapat mengukur dan mengontrol kondisi internal serta proses eksekusinya. Debugger memberikan informasi dinamis ketika program sedang berjalan, seperti alamat memori yang diubah selama proses eksekusi.
3. Pemilihan dan Pengujian Tools Pengujian berbagai tools dalam penelitian ini menggunakan komputer dengan spesifikasi sebagai berikut: Tabel 1. Spesifikasi komputer yang digunakan dalam penelitian Sistem operasi
Windows 7 Ultimate 32-bit (6.1, Build7600)
Prosesor
Inte(R) Atom(TM) CPU N2600 @1,6GHz (4CPUs)
Memori
2048MB RAM
Untuk mendapatkan kombinasi tools yang efektif dalam analisis malware, penulis membagi menjadi tiga tahap, yakni tahap pra-analisis, analisis, dan pasca-analisis. Tahap pra-analisis merupakan tahap persiapan 7
25/01/2017
lingkungan untuk proses analisis. Tahap analisis adalah inti dari proses analisis malware yang terdiri atas empat teknik, yakni analisis statis dasar, dinamis dasar, statis lanjut, dan dinamis lanjut. Pada tahap pasca-analisis tidak perlu lagi penggunaan tools.
3.1. Tahap Pra-analisis Sebelum melakukan analisis malware, seorang analis harus melakukan persiapan lingkungan agar malware yang dianalisis tetap terisolasi dan tidak akan mengganggu sistem. Lingkungan sistem dapat dianggap sebagai sebuah laboratorium (lab) yang akan dipakai untuk menganalisis malware. Malware lab adalah lingkungan yang aman, di mana kita dapat dengan bebas melakukan analisis terhadap malware, tanpa harus merasa khawatir bahwa malware tersebut akan menyebar. Malware lab ini merupakan lab yang terisolir. Malware lab juga sudah terinstal berbagai macam tools yang diperlukan untuk kegiatan analisis dan juga pelaporan [4]. Laboratorium malware dapat dibuat secara fisik maupun virtual. Lab virtual merupakan virtualisasi dari komputer sesungguhnya menggunakan software virtual machine. Berikut adalah perbandingan antara laboratorium fisik dan virtual. Pada sebelah kiri uraian terdapat tanda (+) yang menunjukkan kelebihan dan tanda (-) yang menunjukkan kekurangan masing-masing jenis laboratorium. Tabel 2. Perbandingan laboratorium fisik dan virtual Laboratorium fisik
Laboratorium virtual
Tidak terdeteksi oleh malware yang mampu mendeteksi mesin virtual
Kemungkinan terdeteksi oleh malware dengan mampu mengenali lingkungan virtual sehingga malware menjadi tidak aktif
Fungsionalitas malware sepenuhnya berjalan
Fungsionalitas malware kadang tidak sepenuhnya berjalan
Pembuatan relatif sulit
Pembuatan mudah
Biaya mahal
Biaya lebih murah hingga gratis
Waktu pembuatan lama
Waktu pembuatan cepat
Sistem sengaja dikorbankan
Lingkungan sistem aman
Penelitian ini menggunakan laboratorium virtual untuk proses menganalisis malware. Jadi, laboratorium ini harus digunakan untuk proses analisis malware dengan teknik dinamis. Mesin virtual seperti komputer dalam komputer. Sebuah OS tamu (guest OS) diinstal dalam OS induk (host OS) pada sebuah mesin virtual, dan SO berjalan di atas mesin virtual tersebut tetap terisolasi dari OS induk. Malware yang dijalankan pada mesin virtual tidak akan membahayakan OS induk. Bila malware tersebut merusak mesin virtual, kita hanya perlu menginstal ulang OS pada mesin virtual atau mengembalikan mesin virtual pada kondisi clean/bersih [1]. Ilustrasinya dapat dilihat pada gambar di bawah ini.
8
25/01/2017
Gambar 7. Skema mesin fisik dan mesin virtual Dengan pertimbangan popularitas penggunaan dan sifat freeware, penulis membandingkan dua software mesin virtual, yaitu VMWare Player dan VirtualBox. Tabel 3. Perbandingan VMWare Player dan Virtual Box Uraian
VMWare Player
Virtual Box Windows, Linux, Mac OS X x86, Solaris, FreeBSD, eComStation
Host OS [5]
Windows, Linux
Guest OS [5]
Windows, Linux, Solaris, FreeBSD, DOS, Linux, Mac OS X Server, OSx86 (as FreeBSD), virtual FreeBSD, Haiku, OS/2, Solaris, appliances, Netware, OS/2, SCO, Syllable, Windows BeOS, Haiku, Darwin
Fitur Snapshot
Ya
Ya
Kustomisasi jumlah prosesor Mendukung
Mendukung
Pengaturan sharing memori VGA
Tidak ada
Ada
Alokasi disk virtual
Dinamis
Fix dan dinamis
Dari kemiripan perbandingan di atas, pemilihan penggunaan mesin virtual sangat dipengaruhi oleh pengalaman pengguna (subyektif). Penulis lebih memilih virtualBox karena hasil proses instalasi guest OS serta eksekusi guest OS relatif lebih cepat.
3.2. Tahap Analisis 3.2.1. Analisis Statis Dasar Untuk melakukan analisis statis dasar, tujuan utama adalah mendapatkan gambaran umum tentang malware tanpa menjalankannya. Beberapa tools yang dapat digunakan untuk melakukan analisis statis dasar adalah: Tabel 4. Fungsi analisis statis dasar dan tools yang dapat digunakan Fungsi
Analisis Tools yang dapat digunakan
Mengecek integritas file
Md5deep
.
Md5sums
9
25/01/2017
Fungsi
Analisis Tools yang dapat digunakan
.
WinMd5 Free
Memeriksa string dalam malware
Strings
Memeriksa malware yang dibungkus paket atau dikaburkan PEiD Memeriksa dependensi modul
Dependency Walker
Memeriksa header file dan bagian-bagiannya
PEView
.
Resource Hacker
.
PEBrowse Professional
Untuk mengecek integritas file, dapat digunakan md5deep, md5sums, atau winmd5 calculator. Perbandingan ketiga tools tersebut sebagai berikut: Tabel 5. Perbandingan Md5deep, Md5sums, dan WinMd5 Free Uraian
Md5deep
Md5sums WinMd5 Free
Antarmuka
Berbasis teks
Berbasis teks Berbasis GUI
Fungsi hash yang bisa diperiksa
MD5, SHA-1, SHA-256, Tiger, dan Whirpool
Md5
Md5
Pencocokan hasil hash
Ada (dengan file teks)
Tidak ada
Ada
Pengecekan masal
Bisa
Bisa
Tidak
Dari perbandingan di atas, rekomendasi tools yang dipakai adalah WinMd5 Free dan Md5deep. Jika tersedia kode hash MD5, gunakan WinMd5 Free. Hal ini karena fitur GUI serta pencocokan hasil hash yang mudah. Gambar berikut menunjukkan bahwa proses pengecekan dapat dengan mudah tanpa harus membuat file teks berisi kode hash md5.
Gambar 8. Tampilan WindMD5 Free memeriksa integritas file kode hash MD5 Jika tersedia kode hash yang lain, gunakan md5deep. Penggunaan harus sesuai dengan kode hash yang ingin dicocokkan sebagai berikut: md5deep namafile –m namafile_isi_kode_hash sha1deep namafile –m namafile_isi_kode_hash sha256deep namafile –m namafile_isi_kode_hash 10
25/01/2017
tigerdeep namafile –m namafile_isi_kode_hash whirlpooldeep namafile –m namafile_isi_kode_hash Selanjutnya, untuk memeriksa string yang terdapat pada suspect malware (istilah untuk file yang dicurigai sebagai malware), menggunakan strings.exe. Penggunaannya menggunakan jendela command prompt dengan sintaks sebagai berikut: Strings nama_file_suspect_malware Outputnya bisa berupa seperti gambar berikut:
Gambar 9. Hasil pemeriksaan string dengan tool string.exe Pada gambar di atas, terdapat karakter-karakter pendek seperti “%8 @” diabaikan saja. Hanya saja kata-kata yang memiliki arti perlu dicermati, seperti “CloseHandle”, “CopyFileA”, “KERNEL32.dll”, dsb. karena memiliki arti seputar fungsi atau file librari yang diakses oleh malware. Namun, kadangkala hasilnya kosong karena semua stringnya disamarkan atau disembunyikan seperti pada gambar di bawah ini.
Gambar 10. Strings.exe tidak mendeteksi adanya string dalam file Selanjutnya, untuk mendeteksi apakah suspect malware disamarkan dengan cara dibungkus paket, kita menggunakan PEiD. Tool ini berbasis GUI dengan input berupa file yang akan diperiksa. Outpunya berupa informasi yang secara garis besar ada dua macam, terindikasi disamarkan atau tidak.
11
25/01/2017
Gambar 11. PEiD mendeteksi kompiler yang menyamarkan file dengan pemaketan,yakni nSPack (kiri) dan PEiD mendeteksi kompiler Ms Visual C++ tanpa dipaket (kanan) Tools berikutnya adalah tools untuk melihat dependensi modul dalam malware. Aplikasi yang digunakan adalah Dependency Walker yang mampu memindai modul Windows, baik 32-bit maupun 64-bit (exe, dll, ocx, sys, dan lain-lain), serta membuat diagram pohon hirarkis semua modul-modul yang berhubungan. Pada gambar di bawah (Gambar 12.), dapat dilihat bahwa Dependency Walker terdiri atas beberapa bagian: 1. 2. 3. 4.
Nama file yang diperiksa beserta modul-modul yang diimpor Nama-nama fungsi yang diimpor pada modul tertentu yang dipilih pada bagian (1) Nama-nama fungsi yang mungkin untuk diimpor pada modul yang dipilih pada bagian (1) dan 5. berisi informasi tambahan mengenai modul yang dipilih pada bagian (1)
Gambar 12. Dependency Walker Tools berikutnya adalah untuk melihat header file termasuk bagian-bagian di dalamnya. Beberapa tool yang dapat dipakai adalah PEView, Resource Hacker, dan PEBrowse Professional. Tabel 6. Perbandingan PEView, PEBrowse Professional, dan Resource Hacker Perbandingan
PEView
PEBrowse Professional
Resource Hacker
File input
File binary apa saja
File binary apa saja
Kebanyakan program yang berbasis GUI
Tampilan antarmuka
Sederhana, mudah dipahami
Kompleks
Sederhana, mudah dipahami
Instalasi
Portabel
Harus diinstal
Harus diinstal
Dari perbandingan di atas, penggunaan PEView lebih efektif karena kemampuan dan detail yang cukup dibandingkan dua tools lainnya. Pada gambar PEView di bawah ini, di bagian panel sebelah kiri (nomor 1) dipilih salah satu sub dari sebuah seksi header file, yakni IMAGE_FILE_HEADER. Di bagian sebelah kanan (nomor 2) berisi informasi mengenai seksi atau sub-seksi terpilih di bagian kiri. Informasi 12
25/01/2017
IMAGE_FILE_HEADER yang biasanya bermanfaat adalah “Machine” (mesin jenis apa program itu ditujukan) dan “Time Date Stamp” (kapan waktu program di-compile).
Gambar 13. PEView untuk melihat IMAGE_FILE_HEADER
3.2.2. Analisis Dinamis Dasar Untuk melakukan analisis dinamis dasar, seorang analis harus menggunakan lingkungan yang terisolasi, yakni berupa lingkungan virtual. Adapun tools yang dapat digunakan dapat dilihat pada tabel di bawah ini. Tabel 7. Fungsi analisis dinamis dasar dan tools yang dapat digunakan Fungsi Analisis
Tools yang dapat digunakan
Sandbox (isolasi sistem) Norman Sandbox .
GFI Sandbox
Monitoring proses
ProcMon
.
Process Explorer
.
CaptureBAT
.
Process Hacker
Monitoring registri
Regshot
Membuat DNS Palsu
ApateDNS
Monitoring jaringan
Netcat
.
Wireshark
Teknologi sandbox untuk mengisolasi sistem memiliki kelemahan. Sandbox menjalankan file executable tanpa opsi command-line. Jika malware menggunakan opsi command-line, tidak akan menjalankan apa-apa. Terlebih jika malware tersebut menggunakan paket command-dan-control dengan backdoor, sementara backdoor tidak bisa jalan pada sandbox. Sandbox juga tidak merekam semua event, misalnya event sleep 13
25/01/2017
yang lama (1 hari atau lebih). Mempertimbangkan faktor-faktor tersebut, di samping sudah digunakannya lingkungan virtual, penulis mengesampingkan penggunaan sandbox dalam analisis dinamis ini. Untuk monitoring proses, beberapa alternatif tools dapat digunakan, yakni Process Monitor (ProcMon), Process Explorer, dan CaptureBAT. CaptureBAT memiliki fitur yang mirip dengan Process Explorer, hanya saja tidak memiliki antarmuka GUI. Demikian pula Process Hacker mirip dengan Process Explorer dan sama-sama menggunakan antarmuka GUI. Hanya saja, Process Hacker lebih kompleks karena fungsi-fungsinya yang lebih luas. Oleh karena itu, untuk memonitor proses disarankan mengkombinasikan ProcMon dengan Process Explorer karena masing-masing memiliki kelebihan. Kelebihan ProcMon: ●
Penyaringan proses berdasar operasinya melalui toolbar, yakni operasi registri, file sistem, jaringan, serta proses dan thread seperti terlihat pada gambar di bawah ini.
Gambar 14. Toolbar filtrasi aktivitas proses pada ProcMon Kelebihan Process Explorer: ● ● ●
Cepat mendeteksi kode jahat yang menjalankan program lain Terdapat fasilitas verify option untuk memverifikasi apakah sebuah file binary asli dari Microsoft. Dapat membandingkan string di memori dan disk.
Process Explorer menampilkan beberapa kolom seperti terlihat pada Gambar 15, yaitu: 1. 2. 3. 4.
Process, nama proses PID, identitas proses CPU, berisi penggunaan CPU Private bytes, jumlah byte yang dialokasikan oleh proses untuk dirinya sendiri dan tidak di-share dengan proses lainnya. 5. Working set, jumlah memori yang dialokasikan oleh manager memori untuk proses 6. Description, keterangan ringkas tentang proses 7. Company Name, nama vendor atau perusahaan pembuat aplikasi yang menghasilkan proses.
14
25/01/2017
Gambar 15. Antarmuka Process Explorer Analisis berikutnya adalah memonitor perubahan pada registri. Salah satu tools yang dapat digunakan adalah Regshot. Cara menggunakannya sederhana. Klik tombol “1st shot”, kemudian jalankan malware. Setelah itu klik tombol “2nd shot”, lalu klik tombol “cOmpare”. Berikut ini adalah gambar antarmuka pada program Regshot.
Gambar 16. GUI pada aplikasi Regshot Hasil dari tools Regshot ini bisa dipilih, berupa file teks atau HTML, yang menunjukkan berapa jumlah perubahan registri dan apa serta di mana saja perubahan tersebut. Langkah berikutnya adalah membuat DNS palsu. Tujuannya adalah menjebak malware yang ingin melakukan koneksi ke server kontrolnya. Tools yang dapat digunakan adalah ApateDNS.
15
25/01/2017
Gambar 17. Antarmuka aplikasi DNS palsu ApateDNS Untuk menjalankan ApateDNS, di bagian “DNS Reply IP” (nomor 1) isikan IP Address yang akan merespon rekues DNS pada interface jaringan yang dipilih (nomor 3). Setelah itu tekan tombol “Start Server” untuk mengaktifkan DNS server. Ketika malware aktif dan melakukan rekues DNS, hasilnya akan terlihat pada jendela capture window (nomor 4). Adapun pada bagian “# of NXDOMAIN’s” (nomor 2) menunjukkan jumlah respon domain non-eksisten yang dikirim sebelum diberi respon valid untuk setiap kueri DNS. Berikutnya untuk memonitor lalu lintas jaringan, Wireshark lebih unggul karena memiliki tampilan antarmuka (GUI) dan fitur filtrasi (penyaringan) sehingga sangat mudah dalam penggunaannya. Dibandingkan dengan netcat, wireshark sudah cukup untuk meneliti paket-paket yang bersliweran di jaringan yang mungkin dikirim oleh malware.
16
25/01/2017
Gambar 18. Tampilan Wireshark Pada gambar antarmuka Wireshark di atas, dapat dilihat bahwa aplikasi tersebut memiliki empat jendela utama, yaitu: 1. 2. 3. 4.
Kotak filtrasi, untuk memfilter paket data Daftar paket, berisi semua paket yang melintasi jaringan Detail paket, berisi informasi detail dari setiap paket pada nomor (2) Jendela hex, nilai hex dari paket data yang dipilih pada nomor (3)
3.2.3. Analisis Statis Lanjut Pada tahap analisis statis lanjut ini, satu-satunya tool yang paling sering dipakai adalah IDA Pro Freeware. Berikut ini beberapa window/jendela yang penting untuk diketahui: 1. Jendela fungsi (functions). Berisi semua fungsi dalam file executable dan menunjukkan masing-masing panjangnya. Pada bagian ini terdapat pula penanda untuk mengelompokkan kategori fungsi, seperti F, L, S, dan lain-lain. Yang paling perlu diperhatikan adalah tanda L, yang mengindikasikan fungsi librari. 2. Jendela nama (names). Berisi setiap alamat dengan nama, termasuk fungsi, kode yang dinamai,data yang dinamai, serta string 3. Jendela string (strings). Berisi semua string. Default-nya jendela ini hanya menunjukkan string yang panjang karakternya lebih dari 5. Tetapi default ini bisa diatur melalui setup. 4. Jendela impor (imports). Berisi semua import pada suatu file. 5. Jendela ekspor (exports). Berisi semua fungsi yang diekspor untuk suatu file. Jendela ekspor ini sangat penting jika yang dianalisis adalah file DLL 6. Jendela struktur (structures). Berisi layout semua struktur data yang aktif.
17
25/01/2017
Gambar 19. Antarmuka IDA Pro Free Untuk mengakses jendela-jendela yang penting tersebut dapat dilakukan dengan memilih salah satu tab seperti tampak pada gambar di atas.
3.2.4. Analisis Dinamis Lanjut Untuk analisis dinamis lanjut, tool yang digunakan adalah OllyDbg. Ada dua macam cara melakukan debugging dengan OllyDbg, menjalankan program dengan debugger dan menempelkan (attach) debugger pada program yang sedang berjalan. Pada gambar 16 dapat dilihat bahwa program yang di-debug berjalan dengan antarmuka command-prompt (nomor 1). OllyDbg terdiri atas empat jendela utama, yaitu: 1. Jendela disassembler (nomor 2): berisi kode program yang di-debug, yaitu pointer instruksi saat berjalan dengan beberapa instruksi sebelum dan sesudahnya. Biasanya instruksi berikutnya diberi highlight. 2. Jendela register (nomor 3). Berisi current state (keadaan saat program berjalan) dari register untuk program yang di-debug. 3. Jendela stack (nomor 4). Jendela ini berisi keadaan stack dalam memori untuk thread yang sedang di-debug. Pada jendela ini selalu ditampilkan puncak stack untuk thread tertentu. 4. Jendela dump memori (nomor 5). Berisi dump dari memori untuk proses yang di-debug.
18
25/01/2017
Gambar 20. Proses debugging dengan OllyDbg
3.3. Pendukung Analisis Untuk mendukung analisis, salah satu yang mudah dilakukan adalah dengan bantuan layanan online yang dapat memeriksa sebuah malware. Beberapa layanan online tersebut adalah Cuckoo sandbox dan virusTotal.
3.3.1. Cuckoo Sandbox Cuckoo merupakan sistem analisis malware terotomasi. Dengan sistem ini, pengunjung dapat memahami apa yang dilakukan oleh sebuah file yang dijadikan input ketika dijalankan dengan sebuah lingkungan terisolasi. Cuckoo dimaksudkan untuk dipakai oleh para peneliti keamanan software, peneliti malware, serta para praktisi keamanan yang meyakini pentingnya analisis malware bagi organisasi mereka. Meskipun mudah, untuk memahami hasil analisis membutuhkan pengetahuan dan keahlian khusus tentang malware. [7]
3.3.2. VirusTotal.Com Virus total menyediakan layanan online berupa fasilitas scan berkas dengan berbagai antivirus. VirusTotal yang merupakan bagian dari Google memberikan layanan online gratis yang dapat menganalisis file dan URL untuk mengidentifikasi virus, worm, trojan, dan berbagai kode jahat lainnya yang terdeteksi oleh program antivirus dan scanner website. Layanan ini dapat juga dipakai untuk mendeteksi false positive, yaitu file tidak berbahaya yang dideteksi sebagai kode jahat oleh satu atau lebih scanner. [8]
3.4. Pasca-analisis Setelah analisis malware selesai, perlu dibuat laporan ringkas tentang malware tersebut. Untuk maksud tersebut, penulis mengajukan sebuah bentuk template laporan analisis malware. Template ini meringkas hasil seluruh proses analisis malware.
19
25/01/2017
Gambar 21. Template laporan hasil analisis malware
4. Penutup 4.1. Kesimpulan Dari hasil penelitian ini, dapat disimpulkan sebuah skenario yang cukup dan efektif untuk melakukan analisis malware dengan biaya yang sangat rendah (gratis). Dari 19 tools yang umum digunakan dalam analisis malware, didapatkan 13 tools yang sudah cukup untuk melakukan analisis malware. Pada skema penggunaan tools (gambar 22), nama-nama tools yang dipilih dicetak dengan huruf tebal. Hasil penelitian ini diharapkan dapat digunakan sebagai patokan untuk metodologi teknis dalam melakukan analisis malware.
20
25/01/2017
Gambar 22. Skema penggunaan tools pada analisis malware menurut tahapannya
4.2. Saran Dari penelitian ini, penulis memberikan saran-saran sebagai berikut: 1. Microsoft memiliki koleksi tools yang disebut dengan SysInternal Suite. Sebagian tools dalam koleksi tersebut digunakan dalam skenario penelitian ini. Di masa mendatang, sangat terbuka kemungkinan untuk meneliti teknik optimalisasi penggunan tools dalam SysInternal Suite tanpa tool lain untuk menganalisis malware. 2. Kombinasi tools tidak akan banyak bermanfaat jika penggunanya tidak dibekali dengan kemampuan menganalisis yang baik. Oleh karena itu, perlu pelatihan teknis kepada calon analis untuk menginterpretasikan output dari sebuah tool analisis.
Daftar Pustaka [1] Sikorski, Michael, and Andrew Honig. Practical Malware Analysis: The Hands-on Guide to Dissecting Malicious Software. No Starch Press, 2012. [2] Skoudis, Ed, dan Lenny Zeltser. Malware: Fighting Malicious Code. Prentice Hall PTR, 2003 [3] AV-Test. (7 Mei 2013). Malware. [Online]. Tersedia di:http://www.av-test.org/en/statistics/malware [4] Oktavianto, Digit. (25 November 2012). Malware Analysis. [Online]. Tersedia di: http://www.slideshare.net/digitoktavianto/malware-analysis-15344405 [5] Wikipedia. (April 2013). Comparison of platform virtual machines. [Online]. Tersedia di: http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines [6] Dependencywalker.com. (2013). Dependency Walker 2.2. [Online]. Tersedia di http://www.dependencywalker.com 21
25/01/2017
[7] Guarnieri, Claudio. (2012). FAQ. [Online]. Tersedia di: http://www.cuckoosandbox.org/faq.html [8] VirusTotal. (2013). About Virus Total. [Online]. Tersedia di: https://www.virustotal.com/en/about
Pusdiklat BPS : http://pusdiklat.bps.go.id Versi Online : http://pusdiklat.bps.go.id/index.php?r=artikel/view&id=248
22