Analisa dinamik malware

Pada tulisan sebelumnya saya sudah cerita tentang teknik deteksi malware yang digunakan oleh antivirus. Ada teknik scanning, static heuristic dan integrity check. Ketiga teknik tersebut dikelompokkan dalam metoda analisa statik (static analysis). Pada metoda statik, code malware tidak dijalankan (run).  Sekarang saya akan cerita tentang metoda analisa dinamik malware. Pada metoda ini, malware akan dijalankan pada sistem dan akan diobservasi.  Metoda ini dibagi lagi menjadi beberapa teknik. Diantaranya sebagai berikut :

1. Behaviour monitor & blocker

Pada teknik ini, anti virus akan melakukan monitoring malware secara real time. Bila anti virus menemukan aktifitas yang mencurigakan maka antivirus akan berusaha menghentikan program. Pada awalnya antivirus akan mendefinisikan dulu aktifitas yang normal berjalan pada sistem, selain itu antivirus juga memiliki beberapa kriteria aktifitas yang dicurigai sebagai Malware.  Kriteria mencurigakan ini didasarkan dari perilaku dan karakteristik malware yang sudah terdefinisi sebelumnya. Karakteristik ini biasanya dinamakan dynamic signature. Teknik ini mampu melakukan deteksi terhadap virus yang sudah diketahui maupun virus baru yang belum dada signaturenya. Kelemahannya adalah teknik ini bisa mendeteksi adanya virus, tapi tidak bisa melakukan identifikasi virus yang terdeteksi adalah virus apa, termasuk jenis apa dan tidak pula bisa melakukan tindakan (disinfeksi) seperti kuarantina dll. Selain itu tingkat false positive juga cukup tinggi. Kelemahan lainnya adalah run time overhead pada komputer cukup tinggi. Selain itu, malware dibiarkan menginfeksi sistem terlebih dahulu baru dideteksi.

2. Emulation

Teknik ini mirip dengan teknik behaviour blocker diatas, hanya saja malware tidak dijalankan pada sistem yang sebenarnya. Tapi malware dijalankan pada emulator dan diamati perilakunya.  Emulator merupakan sebuah sistem virtual yang dibuat menyerupai sistem aslinya. Keunggulan teknik ini adalah kita dapat mengamati perilaku malware tanpa membiarkan malware menginfeksi sistem yang sebenernya. Karena malware hanya kita jalankan pada emulator. Teknik ini juga bisa mendeteksi malware yang sudah kita ketahui maupun malware baru. Kelebihan lainnya adalah teknik ini bisa mendeteksi malware polymorphic. Kelemahannya adalah emulator biasanya lambat dan membutuhkan resource yang besar. Emulator juga tidak bisa 100% menjalankan semua fungsi dari sistem sebenarnya, sehingga bisa jadi malware tidak terdeksi pada emulator. Selain itu kalau sudah terdeteksi ada malware teknik ini juga kesulitan untuk melakukan identifikasi malware dan mengambil tindakan (disinfeksi).

Secara umum teknik analisa dinamik membutuhkan resource yang lebih besar sehingga membutuhkan run time overhead yang lebih tinggi. Tapi teknik ini memiliki kelebihan bisa mendeteksi teknik obfuscation (penyamaran) yang dibuat oleh pembuat malware untuk mengelabui analis malware.  Semoga bermanfaat!

Teknik deteksi malware

Ada beberapa teknik yang digunakan antivirus untuk mendeteksi malware. Beberapa teknik deteksi malware yang umum digunakan antivirus adalah sebagai berikut :

1. Scanning

Bila ada sebuah file yang dicurigai sebagai virus, maka file ini terlebih dulu dianalisa oleh seorang analis malware. Malware ini dipelajari perilaku dan karakteristiknya,  kemudian dibuat sebuah signature.  Proses scanning merupakan sebuah proses mencari apakah pada sebuah file terdapat signature malware. Bila terdapat signature malware pada file tersebut berarti file telah terinfeksi malware, bila tidak maka file tersebut bersih. Ada banyak algoritma yang digunakan untuk melakukan scanning. Diantaranya ada algoritma Aho-Corasick, algoritma Veldmann dan wu-Manber. Algoritma-algoritma diatas berkembang didasarkan pada teori pattern matching dan finite automata.

2. Static Heuristic

Bila teknik scanning digunakan untuk melakukan deteksi terhadap malware yang sudah dikenali karakteristiknya, maka teknik Heuristic umumnya digunakan untuk malware yang belum dikenali karakteristiknya. Teknik ini tidak melakukan pencarian signature malware, tapi akan berusaha membuat signature baru. Jadi teknik ini berusaha menduplikasi cara seorang analis malware dalam mengenali malware dari source codenya. Umumnya teknik ini akan mencari pada source code apakah terdapat aktifitas atau fungsi yang mencurigakan. Contohnya adalah adanya fungsi untuk menggandakan dirinya (replikasi), atau fungsi untuk mengelabui antivirus (obfuscation) dll. Teknik ini umumnya memiliki tingkat akurasi yang rendah dan banyak menghasilkan false positive (alarm palsu). Biasanya teknik ini akan mempunyai list banyak kriteria karakteristik malware yang diberi bobot nilai tertentu, kemudian bila kriteria tersebut ditemukan maka nanti nilai tersebut akan dijumlahkan. Bila hasil perhitungan tadi mencapai batas nilai tertentu maka antivirus akan memberikan alarm adanya dugaan malware. Teknik ini banyak menggunakan teori dari sistem pakar, neural network dan data mining.

3.  Integrity check

Malware yang menginfeksi sebuah file, umumnya akan melakukan modifikasi pada file. Sehingga bila terjadi perubahan pada sebuah file tanpa ada authorisasi yang jelas, maka aktifitas ini dicurigai sebagai adanya malware. Teknik ini umumnya menggunakan checksum, jadi antivirus akan melakukan checksum terhadap file, kemudian checksum ini akan di input ke dalam database.  Bila antivirus melakukan scanning maka checksum terbaru akan dibandingkan dengan checksum yang ada di database. Bila terjadi perubahan maka antivirus akan memberikan alarm. Teknik ini memiliki kelemahan yaitu memberikan hasil akurasi yang kurang baik.

Ketiga teknik diatas termasuk teknik deteksi malware yang menggunakan metoda deteksi static, artinya pada proses deteksi, code malware tidak dijalankan. Selain itu ada juga metoda deteksi analsis behavioral. Tentang metoda ini akan saya ceritakan pada tulisan berikutnya. Semoga bermanfaat!

Bagaimana cara kerja Antivirus

317665-computer-malware
from pcmag

Anda tentu sudah mengenal antivirus. Tapi tahukah anda bagaimana cara kerja antivirus mendeteksi malware? Aplikasi anti virus umumnya melakukan 3 fungsi, mendeteksi malware, melakukan identifikasi malware dan melakukan tindakan atau respon terhadap malware (menghapus, mengkarantina, dll).  Melakukan deteksi malware tidak mudah, dan tidak selalu tepat. Ada kalanya antivirus salah mendeteksi sebuah file telah terinfeksi malware, padahal ternyata file tersebut bersih. Ini disebut alarm palsu, atau false positive. Selain itu sering juga terjadi antivirus tidak berhasil mendeteksi malware, padahal malware itu ada. Ini disebut false negative.

Metode deteksi malware dapat dibagi menjadi 2, yaitu secara statik dan dinamik.Pada metode statik, malware dipelajari source code nya, strukturnya dll. Kode malware tidak dijalankan pada komputer. Sementara pada metoda dinamik, malware dijalankan pada komputer dan diamati karakteristiknya.  Metode ini sering juga dinamakan behavioural analysis.

Metode static menggunakan berbagai macam teknik atau cara. Diantaranya ada yang disebut scanner (scanning), heuristic dan integrity checkers. Malware yang telah dianalisa dan diketahui karakteristiknya kemudian dibuat signaturenya. Signature ini bisa berupa pola atau barisan(sequence) byte yang menjadi ciri atau karakter yang ada pada malware tersebut. Proses scanning adalah proses mencari apakah pada file yang kita analisa terdapat signature malware. Bila terdapat signature malware pada file tersebut berarti file telah terinfeksi malware, bila tidak maka file tersebut bersih. Proses scanning ini biasanya dilakukan oleh user atau disebut ODS (On Demand Scanning). Contohnya bila kita menjalankan antivirus dan memerintahkan antivirus untuk memeriksa sebuah file apakah file itu bersih atau sudah terinfeksi malware. Selain itu ada juga scanning yang otomatis dijalankan bila file tersebut diakses. Metoda ini disebut OAS (On Access Scanning).

Semoga Bermanfaat!