Analisis dan Implementasi DL4MD : Deep Learning Framework for
Intelligent Malware Detection
Tugas Akhir
diajukan untuk memenuhi salah satu syarat memperoleh gelar sarjana
dari Program Studi S1 Informatika
Fakultas Informatika
Universitas Telkom
1301154563
Mentari Puspa Adriyani
Program Studi Sarjana Informatika
Fakultas Informatika
Universitas Telkom
Bandung
Analisis dan Implementasi DL4MD: Deep Learning Framework for Intelligent Malware
Detection
Mentari Puspa Adriyani1, Parman Sukarno2, Erwid Musthofa Jadied3 1,2,3
Fakultas Informatika, Universitas Telkom, Bandung
1
[email protected],
2[email protected],
3[email protected]
Abstrak
Dalam beberapa tahun ini, malware menimbulkan ancaman yang sangat serius dan terus berkembang membuat deteksi malware menjadi perhatian utama. Pencegahan dan penanggulangan malware dapat dilakukan melalui deteksi signature dan perilaku malware tersebut. Malware yang semakin berevolusi dapat menghindari proses pencocokan signature dengan memodifikasi dirinya secara dinamis, sehingga sulit bagi system untuk mempertahankan diri dari infeksi malware. Dengan mengamati perilaku malware ada beberapa informasi yang didapat salah satunya berupa fitur API call yang dapat merepresentasikan tujuan dari malware. Beberapa penelitian terkait telah dilakukan untuk mendeteksi serangan malware, dan memiliki akurasi yang bagus. Namun, kebanyakan penerapan deteksi tersebut dibangun diatas arsitektur pembelajaran yang dangkal. Diantara metode deep learning yang digunakan, Autoencoder merupakan metode yang sangat jarang digunakan. Autoencoder merupakan salah satu arsitektur dalam deep learning yang digunakan untuk mereduksi data. Oleh karena itu, pada tugas akhir ini, Convolutional Neural Network Autoencoder (CNN-AE) digunakan sebagai metode pembelajaran deteksi malware. Akurasi deteksi yang berhasil dicapai oleh model CNN-AE adalah 97.14 %.
Kata kunci : deep learning, malware, api call, autoencoder, convolutional neural network Abstract
In recent years, malware has issued a very serious threat and continues to make malware detection a major concern. Prevention and prevention of malware can be done through detection of signatures and protection of these malware. Malicious software that can be used for the signature matching process using dynamic software, making it difficult for the system to defend itself against malware. By being able to restore malware, there is some information obtained, one of which is the API call feature. Several related studies have been conducted to deal with malware attacks, and have good accuracy. However, the evaluation is broader than the evaluation of superficial architecture. The deep learning method used, Autoencoder is a method that is very rarely used. Autoencoder is an architecture in deep learning that is used to reduce data. Therefore, in this final project, Convolutional Neural Network Autoencoder (CNN-AE) is used as a malware detection learning method. The detection accuracy that was achieved by the CNN-AE model was 97.14%.
Keywords: deep learning, malware, API call, autoencoder, convolutional neural network 1. Pendahuluan
Latar Belakang
Malware adalah malicious software yang disebarluaskan untuk mengisolasi kerahasiaan, integritas dan fungsionalitas suatu sistem [1], seperti virus, worms, trojans, backdoors, spyware. Data yang terus mengalir setiap waktu, dapat menimbulkan munculnya malware yang memberikan ancaman serius terhadap keamanan data. Penelitian mengenai deteksi malware telah banyak dilakukan oleh beberapa orang atau instansi di dunia. Pada penelitian [2], [3] digunakan metode deteksi signature-based.
Signature merupakan byte string pendek, yang bersifat unik pada setiap malware yang dapat diklasifikasikan dengan tingkat kesalahan yang kecil [4]. Namun metode ini dapat dihindari oleh malware dan penyerang yang menggunakan teknik seperti enkripsi, polimorfisme dan obfuscation [5]. Banyak peneliti yang telah melakukan penelitian mengenai deteksi malware dengan menerapkan teknik penambangan data dan pembelajaran mesin dalam beberapa tahun terakhir [6],[7],Berdasarkan perbedaan fitur yang diwakilkan, perbedaan metode klasifikasi, seperti Artificial Neural Network (ANN), Support Vector Machine (SVM), Naïve Bayes (NB), dan Decision Tree (DT) telah digunakan untuk model konstruksi deteksi malware [8], [9].
Deteksi malware melalui behavior-based salah satunya dengan menggunakan API Call dapat digunakan untuk menganalisa pola perilaku dan tujuan malware dengan lebih baik. API Call memberikan informasi terkait aktivitas apa saja yang dilakukan oleh malware. API Call juga dapat digunakan untuk mendeteksi malware
berdasarkan analisis kesamaan antara perilaku malware yang telah dikenal dan malware yang belum dikenal.
Deep Learning (DL) merupakan batas baru dalam Data Mining dan Machine Learning yang mulai dimanfaatkan dalam penelitian industry dan akademik untuk berbagai aplikasi (mis., Computer Vision) [10], [11], [12]. Multilayer arsitektur deep learning memiliki kemampuan yang lebih unggul dalam pembelajaran fitur. Arsitektur deep learning mengatasi kesulitan pembelajaran melalui pretrained lapis demi lapis. Pretrained multilayer pada fitur deteksi, mendeteksi dari tingkat terendah ke tingkat tertinggi untuk membangun model klasifikasi akhir [12].
Convolutional Neural Network (CNN) merupakan metode pembelajaran mesin yang bersifat representative dalam deep learning, terutama untuk masalah pengenalan gambar. Manfaat CNN yang paling signifikan dibandingkan dengan pendekatan konvensional adalah CNN secara otomatis memperoleh fitur utama untuk klasifikasi dalam proses pembelajaran [13],[14]. Solusi untuk melakukan deteksi malware pada penelitian ini adalah dengan menggunakan Autoencoder yang merupakan salah satu arsitektur Deep Neural Network yang didesain untuk merekonstruksi ulang data melalui struktur hidden layer, hidden layer yang terdiri dari encoder, code dan decoder. Kemampuan Autoencoder untuk mereduksi data dikombinasikan dengan Convolutional Neural Network (CNN) untuk training dan testing data. Data yang digunakan untuk testing berupa API calls dari suatu PE files yang telah diekstraksi ke dalam bentuk binary string. Alasan menggunakan CNN-AE adalah karena CNN memiliki kemampuan untuk mengenali pola tanpa memperhitungkan posisi regional dan global. Teknik klasifikasi deteksi menggunakan CNN sudah banyak diterapkan untuk mengklasifikasi dan mendeteksi malware seperti pada penelitian M. Kalash [15] dan M. Ganesh [16].
Perumusan Masalah Tujuan
Berikut tujuan yang ingin dicapai dalam pengerjaan tugas akhir:
1. Implementasi Convolutional Neural Network dengan Autoencoder sebagai system deteksi malware dengan mencari kombinasi parameter terbaik, nilai komposisi data latih (KFold), dan jumlah neuron.
2. Analisis system deteksi yang dibangun berdasarkan nilai akurasi pada hasil pengujian.
Berikut hal-hal yang dibatasi pada tugas akhir ini:
1. Performa Convolutional Neural Network Autoencoder menjadi fokus utama dalam penelitian ini, beberapa parameter dan skenario yang digunakan didesain khusus untuk Autoencoder.
2. Penulisan source code Autoencoder yang dikombinasikan dengan CNN tidak sepenuhnya dibuat manual oleh penulis, namun dibantu oleh penggunaan library yaitu Keras dan Scikit-Learn [10, 17].
3. Tugas akhir ini menggunakan data dari VirusTotal, dan VirusShare [18] dengan format PE files yaitu *exe. 4. Parameter pengujian adalah nilai komposisi data latih (KFold) dan jumlah neuron.
5. Penelitian ini berfokus pada lingkungan kerja Operating Sistem Windows (Windows NT 2000, Windows XP, Windows Server 2003, Windows 7, Windows 8 dan Windows 10)dan Microsoft.
6. Penelitian ini berfokus pada beberapa jenis malware yaitu, Worm, Trojan-Downloader, Trojan-Spy, Trojan-Dropper, Backdoor, Virus [32],[33].
Organisasi Tulisan
Jurnal tugas akhir ini disusun sebagai berikut, pada Bagian dua, akan dijelaskan lebih lanjut tentang studi terkait dan matriks evaluasi. Selanjutnya dijelaskan pemodelan system pada bagian ketiga. Hasil dan analisis dibahas pada bagian empat. Terakhir, kesimpulan ditulis pada bagian lima.
2. Studi Terkait
2.1 Penelitian Terkait
Ada beberapa penelitian terkait yang melakukan deteksi malware menggunakan API call. Yanfang Ye [19] mengusulkan system deteksi malware menggunakan metode CIMDS berorientasi pada Teknik analisis API
call gray list untuk mengklasifikasikan malware. Sistem klasifikasi ini memiliki akurasi sebesar 90 %. Ashkan Sami [20] juga melakukan penelitian untuk mendeteksi malware menggunakan metode mining API call. Sistem ini mendeteksi malware menggunakan API call dan memiliki akurasi sebesar 98.3 %.
Mahmoud Kalash [15] juga melakukan penelitian untuk klasifikasi malware menggunakan metode deep convolutional neural network. System ini memvisualisasikan binary malware menjadi citra grayscale. System deteksi ini juga menggunakan convolutional neural network sebagai algoritma klasifikasi dataset. Diperoleh akurasi sebesar 98.52 %. Meenu Ganesh [16] juga melakukan penelitian terkait deteksi malware pada android. Penelitian tersebut menggunakan metode investigate permission pattern, dengan mengubah Android permission
menjadi vector 12x12. System ini juga menggunakan convolutional neural network sebagai algoritma klasifikasi dan memiliki akurasi sebesar 98%.
2.2 PE files
PE Files atau Portable Executable files merupakan struktur data atau format file yang dapat dieksekusi yang merangkum informasi yang diperlukan untuk mengelola kode object, DLL yang digunakan di sistem operasi windows 32 bit dan 64 bit. PE files harus dikompres terlebih dahulu menggunakan metode kompresi Loseless Data. Gambar 1 menunjukan struktur PE files. Semua PE file harus memiliki Header DOS MZ, sehingga DOS dapat memverifikasi apakah file tersebut merupakan file valid atau tidak ketika program berjalan dibawah system DOS, kemudian disamping Header DOS terdapat PE header yang berisi informasi penting mengenai struktur tata letak fisik PE. Isi PE file terbagi menjadi beberapa bagian dan setiap bagian menyimpan data dengan atribut umum [23]. Pada tahap ini PE file akan dikompres menggunakan UPX dan ASPack Shell.
2.2 Autoencoder
Autoencoder merupakan salah satu arsitektur Deep Neural Network yang digunakan untuk pengkodean yang lebih efisien [21]. Autoencoder termasuk ke dalam unsupervised learning karena output layer tidak berisi informasi kelas, melainkan data itu sendiri. Autoencoder dapat melakukan encoding dan decoding terhadap suatu data [3]. Code layer, yang berada di tengah, dapat dianggap sebagai representasi features, bagian inilah yang menjadi hasil reduksi dimensi dari suatu data [22]. Autoencoder juga merupakan sebuah neural network, sehingga jenis representasi data yang tersimpan didalam code layer tidak diketahui. Sebuah model autoencoder tidak dapat mengambil representasi dari sembarang data, kecuali data tersebut pernah dipelajari sebelumnya [3].
2.3 Convolutional Neural Network Features
Metode CNN memiliki beberapa layer agar dapat memproses sebuah citra dan mendapatkan informasi dari citra tersebut, beberapa layer tersebut diantaranya convolution layer, pooling layer dan fully connected layer.
2.3.1 Convolution Layer
Convolution layer pada metode CNN merupakan layer yang terdiri dari citra dalam bentuk matriks yang berfungsi untuk melakukan pergeseran dengan ukuran stride dan padding yang telah ditentukan. Hasil dari
convolution matriks merupakan nilai matriks dari matriks input yang dikalikan dengan matriks filter dan menjadi
pooling layer untuk tahap selanjutnya.
Gambar 1 Ilustrasi struktur PE file
2.3.2 Pooling layer
Merupakan layer setelah convolution layer pada lapisan layer CNN yang terdiri dari filter dengan ukuran
stride yang ditentukan untuk melakukan pergeseran sliding windows. Pooling layer yang akan digunakan adalah
max pooling dimana nilai yang diambil adalah nilai paling besar di area pixel yang ditentukan.
2.3.3 Batch Normalization
Berfungsi untuk mengurangi jumlah nilai pergeseran unit hidden. Batch Normalization juga memungkinkan setiap lapisan jaringan untuk belajar lebih mandiri dari lapisan lainnya.
2.3.4 Fully Connected Layer
Merupakan layer yang berfungsi untuk mengklasifikasikan citra setelah melewati convolution layer dan pooling layer.
Pada Gambar 5 menunjukan penggunaan layer ini untuk mengklasifikasikan apakah keluaran dari proses tersebut merupakan bird atau bukan. Apabila keluaran dari proses tersebut sesuai dengan dataset yang digunakan maka keluaran akan bernilai 1 dan 0 bila sebaliknya. Namun, bila pada proses klasifikasi menggunakan dataset yang tidak dikenali maka keluaran akan bernilai 0.
Gambar 3 Proses Convolution Layer
Gambar 4 Proses Pooling Layer
2.4 Matriks Evaluasi
Performa Autoencoder dan CNN dalam mendeteksi data malware dievaluasi dengan persentasi akurasi data testing. Akurasi adalah matriks yang mendeskripsikan banyak data yang diprediksi dengan tepat oleh system deteksi. Pembobotan nilai akurasi berdasarkan pada nilai True Negative (TN), True Positive (TP), False Negative (FN) dan False Positive (FP). Sehingga, nilai akurasi merupakan perbandingan data deteksi benar dengan seluruh data. Berikut persamaan nilai akurasi.
Akurasi = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁 (1)
2.4.1 Binary Cross Entropy Loss Function
Selain menggunakan akurasi sebagai matriks evaluasi, penelitian ini juga menggunakan loss function
untuk evaluasi nilai loss system. Loss function yang digunakan yaitu binary cross-entropy.Binary Cross-Entropy
digunakan untuk mengkalkulasi nilai cross-entropy pada permasalahan binary classification. Pembobotan nilai
binary cross-entropy pada persamaan 2 berdasarkan label dan probabilitas prediksi nilai data untuk keseluruhan data. Apabila y adalah label data (1 untuk malware dan 0 untuk benign) dan p(y) merupakan probabilitas prediksi data menjadi malware untuk keseluruhan data. Berdasarkan persamaan 2 tersebut, untuk setiap data malware
(y=1), loss log(p(y)) bertambah. Sebaliknya, log(1-p(y)) bertambah saat probabilitas log data menjadi benign.
𝐻𝑝(𝑞) = − 1 𝑁∑ 𝑦𝑖 ∙ log(𝑝(𝑦𝑖)) +(1 − 𝑦𝑖) ∙ log(1 − 𝑝(𝑦𝑖)) 𝑁 𝑖=1 (2) 𝐶𝑟𝑜𝑠𝑠 − 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 𝐿𝑜𝑠𝑠 = − ∑ 𝑡𝐶𝑖 𝑖log(𝑠𝑖) (3) 2.5 Dataset
VirusTotal merupakan layanan gratis yang memungkinkan untuk menganalisis file atau alamat URL secara online. Banyak aplikasi antivirus, mesin dan pemindai situs web digunakan untuk analisis. File yang dianggap berbahaya dianalisis secara individual dalam antivirus. Setiap aplikasi antivirus membuat laporan analisis untuk file yang mencurigakan [31].
VirusShare adalah repositori sampel malware untuk menyediakan peneliti keamanan, responden kejadian, analis forensik, dan akses yang sangat aneh ke sampel kode berbahaya.
3. Desain Sistem Deskripsi Sistem
Alur system deteksi data pada pengerjaan tugas akhir secara umum terdiri dari feature extractor,
preprocessing, mapping data, membagi data menjadi dua bagian (training dan testing) disertai cross validation
kemudian training dan testing model CNN dengan Autoencoder. Pemaparan lebih lanjut dilanjutkan pada sub-bagian selanjutnya.
Perancangan System
Kerangka kerja untuk deteksi malware bertujuan untuk menganalisis PE files. Sistem ini terdiri dari dua komponen utama: feature extractor dan deteksi berbasis deep learning. Pada gambar 3 menunjukan diagram proses sistem. PE files yang telah dikumpulkan kemudian di decompress terlebih dahulu menggunakan unpacker
seperti UPX, sebelum dapat digunakan pada proses selanjutnya. Pada bagian feature extractor, PE files yang telah di decompress dieksekusi untuk diperoleh API Calls dan disimpan ke dalam API Database. API yang disimpan ke dalam database kemudian dipanggil, dilanjutkan dengan mapping data untuk diubah ke dalam bentuk yang lebih sederhana, yaitu binary vector, kemudian dilanjutkan dengan preprocessing, training dan testing
menggunakan deep learning.
Mapping Data
Tabel 1API Call features List Windows NT, Windows XP, Windows Server[31],[32],[33],[34],[35]
Resource Activity Type OS List of API Calls Service Windows NT 2000, Windows Server 2003, Windows XP OpenSCManager,OpenService,StartService Process NtOpenSection,ZwMapViewOfSection,NtFreeVirtualMemory,NtCreate Section,CreateProcessInternal, ExitProcess, Filesystem NtCreateFile,NtReadFile,NtSetInformationFile,NtOpenFile,NtWriteFile, DeviceIoControl,CreateDirectory, DeleteFile,FindFirstFile,NtDeviceIoControlFile,NtQueryInformationFile Registry RegOpenKey,RegSetValue,RegCloseKey,RegDeleteValue,RegQueryVal ue,RegCreateKey,NtOpenKey, NtQueryValueKey,RegEnumValue,RegEnumKey,NtQueryKey,RegQuer yInfoKey Synchronization NtCreateMutant,NtOpenMutant Network WSAStartup,getaddrinfo System NtDelayExecution,FindWindow,SetWindowsHook,RemoveDirectory,Ge tSystemMetrics, LookupPrivilegeValue
DLL Injection OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread
IAT Hooking LoadLibrary (Strcmp, Strncmp, _Stricmp, _Strnicmp), VirtualProtect ScreenCapture (GetDC, GetWindowDC), CreateCompatibleDC,
CreateCompatibleBitMap, SelectObject, BitBlt, WriteFile Access to the information system folders GetWindowsDirectory, GetSystemDirectory Search Files to Infect
FindFirstFile, FindFirstFileEx, FindFirstFileName, TransactedW, FindFirstFileNameW, FindFirstFileTransacted, FindFirstStream, FindFirstStreamW, FindNextFile, FindNextFileNameW, FindNextStreamW,SearchPath, FindClose, GetFileSize, GetFileType, ReadFile.
Read/Write Files OpenFile, WriteFile, DecryptFile, EncryptFile, ReplaceFile, OpenFileById, ReOpenFile, ReplaceFile.
Copy/Delete Files
CloseHandle, CopyFile, CopyFileEx, CopyFileTransacted, CreateFile, CreateFileTransacted, CreateHardLink, CreateSymbolicLink, CreateSymbolic, LinkTransacted, DeleteFile, DeleteFileTransacted. Modify Attributes
of files GetFileAttributes, SetFileAttributes Modify time of
files GetFileTime, SetFileTime Move location of
files MoveFile, MoveFileEx, MoveFileTransacted, MoveFileWithProgress
Get Information File
GetBinaryType, GetCompressed, FileSize, GetCompressedFile, SizeTransacted, GetFileAttributes, GetFileAttributesEx, GetFileBandwidth, Reservation, GetFileInformation, ByHandle, GetFullPathName, GetLongPathName, GetShortPathName, GetTempFileName, GetTempPath.
Change File Attribute
SetFileApisToANSI, SetFileApisToOEM, SetFileAtributes, SetFileAtributesTransacted, SetFileBandwidthReservation, SetFileInformationByHandle, SetFileShortName, SetFileValidData.
Tabel 2 API Call features List Windows 7, Windows 8, Windows 10[31],[32],[33]
Resource Activity Type OS List of API Calls Service Windows 7, Windows 8, Windows 10 OpenSCManager,OpenService,StartService Process ZwOpenSection,ZwMapViewOfSection,ZwFreeVirtualMemory,ZwCrea teSection,CreateProcessA, CreateProcessW, ExitProcess,
Filesystem ZwCreateFile,ZwReadFile,NtSetInformationFile,NtOpenFile,NtWriteFil e,DeviceIoControl,CreateDirectory, DeleteFile,FindFirstFile,NtDeviceIoControlFile,NtQueryInformationFile Registry RegOpenKey,RegSetValue,RegCloseKey,RegDeleteValue,RegQueryVal ue,RegCreateKey,ZwOpenKey, NtQueryValueKey,RegEnumValue,RegEnumKey,NtQueryKey,RegQuer yInfoKey, RegOpenKeyA, RegOpenKeyEx, ZwQueryValueKey, ZwQueryKey
Synchronization NtCreateMutant,NtOpenMutant, ZwCreateMutant, ZwOpenMutant Network WSAStartup,getaddrinfo, getnameinfro
System NtDelayExecution,FindWindow RemoveDirectory,GetSystemMetrics, LookupPrivilegeValue, FindWindowA, FindWindowW, FindWindowsExA, FindWindowEx, RemoveDirectoryA, RemoveDirectoryW, LookupPrivilegeValueA, LookupPrivilegeValueW DLL Injection OpenProcess, VirtualAllocEx, WriteProcessMemory,
CreateRemoteThread, SetWindowsHook, SetWindowsHookEx, SetWindowsHookExW
IAT Hooking LoadLibrary (Strcmp, Strncmp, _Stricmp, _Strnicmp, wcscmp, _mbscmp, _mbscmp_I), VirtualProtect, LoadLibraryW, AfxLoadLibrary, LoadLibraryExA
ScreenCapture (GetDC, GetWindowDC), CreateCompatibleDC, CreateCompatibleBitMap, SelectObject, BitBlt, WriteFile
Access to the information system folders
GetWindowsDirectory, GetSystemDirectory, GetWindowsDirectoryA, GetWindowsDirectoryW
Search Files to Infect
FindFirstFile, FindFirstFileEx, FindFirstFileName, TransactedW, FindFirstFileNameW, FindFirstFileTransacted, FindFirstStream, FindFirstStreamW, FindNextFile, FindNextFileNameW, FindNextStreamW,SearchPath, FindClose, GetFileSize, GetFileType, ReadFile.
Read/Write Files OpenFile, WriteFile, DecryptFile, EncryptFile, ReplaceFile, OpenFileById, ReOpenFile, ReplaceFile.
Copy/Delete Files CloseHandle, CopyFile, CopyFileEx, CopyFileTransacted, CreateFile, CreateFileTransacted, CreateHardLink, CreateSymbolicLink, CreateSymbolic, LinkTransacted, DeleteFile, DeleteFileTransacted. Modify Attributes of files GetFileAttributes, SetFileAttributes Modify time of files GetFileTime, SetFileTime Move location of files
MoveFile, MoveFileEx, MoveFileTransacted, MoveFileWithProgress
Get Information File
GetBinaryType, GetCompressed, FileSize, GetCompressedFile, SizeTransacted, GetFileAttributes, GetFileAttributesEx, GetFileBandwidth, Reservation, GetFileInformation, ByHandle, GetFullPathName, GetLongPathName, GetShortPathName, GetTempFileName, GetTempPath.
Change File Attribute
SetFileApisToANSI, SetFileApisToOEM, SetFileAtributes, SetFileAtributesTransacted, SetFileBandwidthReservation, SetFileInformationByHandle, SetFileShortName, SetFileValidData.
Pada tahap ini, dibuat daftar yang berisikan beberapa hubungan antara sumber daya system operasi dengan beberapa API Call terkait. Daftar API Call yang diusulkan bertujuan untuk mempelajari perilaku berbahaya malware dari kombinasi API Call [22],[23],[24]. Proses mapping dilakukan dengan melakukan perbandingan antara API Call file dengan API Call features seperti pada Tabel 1. Apabila saat dilakukan mapping
terdapat API Call file sampel sama dengan API Call features pada Tabel 1maka system memberi label 1 dan label 0 bila API Call sampeltidak sama dengan API Call features. Berikut merupakan uraian yang menjelaskan bagaimana aktivitas tertentu dilakukan oleh malware menggunakan pola API Calls yang ditemukan.
(i) Service dan File System: Sistem operasi dan program yang menjalankannya terdiri dari file individual. File merupakan turunan dari file apa pun yang dibuka atau perangkat I / O [22],[26].
(ii) Process dan Thread : Proses adalah ruang alamat virtual dan kontrol informasi yang diperlukan untuk pelaksanaan satu set thread. Satu atau lebih thread berjalan dalam konteks proses tersebut [22],[26],[27]. (iii) Registry : Registri adalah database yang ditentukan sistem di mana aplikasi dan komponen sistem menyimpan dan mengambil data konfigurasi [22],[26],[28].
(iv) Synchronization : Bertujuan untuk melindungi sumber daya bersama dari akses simultan oleh berbagai thread atau proses [22],[26],[29].
(v) Network : Ini sesuai dengan aktivitas terkait jaringan dari program yang sedang dieksekusi [22],[26]. (vi) DLL Injection : Berbagai metode untuk menyuntikkan Dynamic Link Library (DLL) ke dalam proses target yang ada, yang paling populer adalah dengan menggunakan CreateRemoteThread API, yang diperkenalkan oleh Jeffery Ritcher pada 1990-an [30]. Pertama, metode ini menangani proses target dengan menggunakan OpenProcess. Kemudian, itu mengalokasikan beberapa ruang dalam memori proses target menggunakan VirtualAllocateEx dan menulis nama DLL, termasuk fullpath, ke memori yang dialokasikan dengan menggunakan WriteProcessMemory. Akhirnya, itu membuat proses target memuat ulang DLL menggunakan Create RemoteThread [24].
(vii) IAT Hooking : Tabel Alamat Impor (IAT) berisi alamat awal API. Dengan memodifikasi alamat, API yang berbeda dapat dipanggil meskipun API yang sah dipanggil. Prosesnya adalah sebagai berikut. Pertama, ini memuat perpustakaan target menggunakan LoadLibrary. Setelah menemukan DLL dari IAT dengan membandingkan API terkait (mis., Strcmp), ia memodifikasi atribut memori yang dapat ditulisi dengan menggunakan Virtual Protect dan mengubah alamat DLL [24].
(viii) Antidebugging : Ada banyak metode untuk mendeteksi proses debugging menggunakan API. Misalnya, jika nilai API Debugger sekarang adalah 1, ini berarti bahwa program sedang di-debug. Antidebugging sendiri mungkin bukan aktivitas jahat, tetapi sering diamati di malware [24].
(ix) Screen Capture : Backdoor sering menangkap layar dan menyimpannya sebagai file gambar. Prosesnya adalah sebagai berikut. Pertama, ia bisa menangani jendela menggunakan API, seperti GetDC. Kemudian, itu menciptakan ruang yang kompatibel untuk menyimpan gambar menggunakan CreateCompatibleDC dan CreateCompatibleBitmap. Setelah memilih pointer gambar menggunakan SelectObject, gambar disalin ke ruang memori menggunakan BitBlt. Akhirnya, ia menulis gambar yang diambil sebagai file menggunakan WriteFile [24].
Preprocessing
Setelah data API Call diubah bentuk menjadi binary vector,binary vector tersebut tidak dapat digunakan secara langsung, perlu dilakukan data cleansing untuk menggantikan nilai NULL agar diperoleh baris dengan ukuran yang sama, sehingga dapat direpresentasikan ke dalam bentuk matriks citra dengan ukuran baris kolom yang sama. Preprocessing diakhiri dengan pembagian data yang disertai dengan cross validation untuk tahap
training dan testing.
Dataset dan Pembagian Data
Dataset yang digunakan merupakan PE files diambil dari VirusTotal, VirusShare [31]. Total data yang digunakan sebanyak 200 data. Pembagian data untuk training dan testing dibagi menggunakan cross validation
merupakan gabungan dari K-Fold dan Random Permutation, yang tersedia di salah satu library Python, yaitu
Scikit-Learn[Pedregosa][21].
Pelatihan dan Pengujian
Pembangunan system Autoencoder terdiri dari input layer, encoder yang terdiri dari tiga layer convolution dengan masing-masing filter yaitu 16, 32 dan 64 dan decoder yang terdiri dari tiga layer convolution dengan masing-masing filter yaitu 64, 32 dan 16. Adapun parameter yang yang akan diuji adalah nilai k-folddan jumlah neuron. Kandidat jumlah k-fold yang diuji coba yaitu k =15, k = 25,k = 35,k = 45, k = 55. Sedangkan kandidat jumlah neuron yang diujikan yaitu [50 50], [50 50 50], [100 100 100], [100 100 100 100] dan [100 100 100 100 100]. Parameter dropout yang digunakan yaitu 0.5 dengan fungsi aktivasi Adam dan learning rate (LR) sebesar 0.001, nilai epoch sebesar 100 iterasi. Hasil deteksi kemudian dievaluasi dengan membandingkan nilai akurasi dan loss tiap kombinasi. Setelah training selesai, model convolutional neural network autoencoder
disimpan untuk diujikan pada data testing. Langkah testing meliputi input data, dan pengujian model
convolutional autoencoder. Hasil prediksi kemudian dievaluasi dengan menggunakan nilai akurasi.
4. Hasil Pengujian dan Analisis
Pada Gambar 7 menunjukan grafik percobaan pada nilai K-Fold. Berdasarkan Gambar 7, K-Fold dengan nilai 45 memiliki akurasi terbesar yaitu 97.77 %. Pada skenario pertama dengan parameter [50 50] neuron
diperoleh akurasi paling baik sebesar 97.14 % dengan nilai loss sebesar 10.11. Sedangkan pada scenario kedua ketika jumlah neuron ditambah menjadi [50 50 50] akurasi terbaik diperoleh sebesar 97.14% dengan nilai loss
sebesar 22.71. Pada scenario ketiga, ketika jumlah neuron ditambah menjadi [100 100] akurasi terbaik diperoleh
93.33 96 97.14 97.77 96.36 15 25 35 45 55 A ku ras i (% ) Nilai K-Fold
Gambar 7 Grafik akurasi pada percobaan nilai K-Fold
91 92 93 94 95 96 97 98 99 Windows NT, Server 2003, XP Windows 7, 8, 10 A KUR A SI (% ) k = 15 k = 25 k = 35 k = 45 k = 55
sebesar 97.14% dengan nilai loss sebesar 13.35. Pada scenario keempat ketika jumlah neuron ditambah menjadi [100 100 100] akurasi terbaik diperoleh sebesar 97.14% dengan nilai loss sebesar 12.66. Pada scenario kelima akurasi terbaik diperoleh sebesar 97.14% dengan nilai loss sebesar 13.18. Selanjutnya pada scenario keenam akurasi terbaik diperoleh sebesar 97.77% dengan nilai loss sebesar 15.29.
Berdasarkan Tabel 3 hasil pengujian, akurasi diambil berdasarkan nilai akurasi terbaik dan nilai loss yang relative rendah. Semakin rendah nilai loss menunjukan bahwa model yang dibangun untuk pembelajaran semakin bagus dan optimal. Proses ini merupakan hasil klasifikasi terbaik dalam memprediksi pola melalui API Call milik
malware. Selain itu, pembagian data training dan testing juga mempengaruhi nilai akurasi, pada skenario pembagian data training dan testing menggunakan KFold 45 memberikan hasil akurasi paling baik, namun K-Fold dengan nilai 45 cenderung menunjukan loss relative tinggi dibandingkan dengan K-Fold dengan nilai 35. Karena itu, akurasi terbaik dimiliki oleh K-Fold 35 dengan loss sebesar 10.11 karena cenderung memberikan akurasi dengan loss rate yang relatif rendah dibandingkan dengan nilai cross validation lainnya.
Berdasarkan Tabel 3 hasil pengujian pada versi windows NT, windows Server 2003 dan windows XP dengan Tabel 4 Hasil Pengujian pada versi windows 7, windows 8, dan windows 10, menunjukan akurasi dan nilai loss yang sama. Hal ini disebabkan,oleh fitur API yang sama antara windows versi pada Tabel 3 dan Tabel 4. Beberapa perbedaan yang ditemukan berupa perubahan nama API dari versi windows NT ke windows 7, windows 8 dan 10, seperti NtOpenSection berubah menjadi ZwOpenSection. Perubahan lainnya yang ditemukan yaitu,jumlah API pada windows 7,8 dan 10 bertambah banyak dan lebih bervariasi nya API pada windows 7, 8 dan 10, namun tetap menunjukan fungsionalitas yang sama.
Tabel 3 Hasil Pengujian pada versi windows NT, windows server 2003, dan windows XP
Skenario 1 Windows Version
K-Fold Neuron Akurasi Loss
Windows NT, Windows Server 2003, Windows XP 15 [50 50] 93.33 % 20.57 25 96.00 % 13.23 35 97.14 % 10.11 45 97.77 % 14.26 55 96.36 % 13.60 Skenario 2 15 [50 50 50] 93.33 % 20.66 25 96.00 % 23.01 35 97.14 % 22.71 45 97.77 % 27.80 55 96.36 % 10.09 Skenario 3 15 [100 100] 93.33 % 28.35 25 96.00 % 27.73 35 97.14 % 13.35 45 97.77 % 14.85 55 96.36 % 14.97 Skenario 4 15 [100 100 100] 93.33 % 21.11 25 96.00 % 16.55 35 97.14 % 12.66 45 97.77 % 14.51 55 96.36 % 22.94 Skenario 5 15 [100 100 100 100] 93.33 % 30.61 25 96.00 % 16.13 35 97.14 % 13.18 45 97.77 % 18.47 55 96.36 % 17.37 Skenario 6 15 [100 100 100 100 100] 93.33 % 23.42 25 96.00 % 19.32 35 97.14 % 26.10 45 97.77 % 15.29 55 96.36 % 25.84
Tabel 4 Hasil Pengujian pada versi windows 7, windows 8, dan windows 10
Oleh karena itu, dapat disimpulkan bahwa keakuratan system klasifikasi deteksi malware dengan fitur API Call menggunakan CNN-AE ditentukan oleh nilai KFold. Tiap scenario menunjukan bahwa jumlah neuron
mempengaruhi nilai loss. Data perbandingan akurasi pada Tabel 3 menunjukan bahwa CNN-AE pada penelitian ini memiliki kinerja yang baik dalam hal klasifikasi prediksi. Data yang digunakan pada penelitian ini memiliki dimensi fitur yang besar, sehingga AE efektif digunakan untuk mengenali pola data ini. Selain itu, CNN-AE baik untuk mengklasifikasi dan memprediksi karena kemampuan CNN untuk mengenali pola tanpa memperhitungkan posisi dan korelasi regional dan global.
Tabel 5 Perbandingan Kinerja
No Paper Model Fitur Akurasi
1 Hongwei Zhao [29] MLP-NN API Call 76.90 % 2 H. William [30] SAE-NN API Call 95.00 % 3 Fei Xiao [31] SAE-DT API Call 98.90 % 4 Yanfang Ye [19] CIMDS API Call 90.00 % 4 Penelitian ini AE-CNN API Call 97.14 % Skenario 1 Windows
Version
K-Fold Neuron Akurasi Loss
Windows 7, Windows Server 8, Windows 10 15 [50 50] 93.33 % 20.57 25 96.00 % 13.23 35 97.14 % 10.11 45 97.77 % 14.26 55 96.36 % 13.60 Skenario 2 15 [50 50 50] 93.33 % 20.66 25 96.00 % 23.01 35 97.14 % 22.71 45 97.77 % 27.80 55 96.36 % 10.09 Skenario 3 15 [100 100] 93.33 % 28.35 25 96.00 % 27.73 35 97.14 % 13.35 45 97.77 % 14.85 55 96.36 % 14.97 Skenario 4 15 [100 100 100] 93.33 % 21.11 25 96.00 % 16.55 35 97.14 % 12.66 45 97.77 % 14.51 55 96.36 % 22.94 Skenario 5 15 [100 100 100 100] 93.33 % 30.61 25 96.00 % 16.13 35 97.14 % 13.18 45 97.77 % 18.47 55 96.36 % 17.37 Skenario 6 15 [100 100 100 100 100] 93.33 % 23.42 25 96.00 % 19.32 35 97.14 % 26.10 45 97.77 % 15.29 55 96.36 % 25.84
5. Kesimpulan
Hasil pengujian menunjukan bahwa model CNN-AE berhasil mempelajari representasi data testing dan mereduksi data dengan baik dan memiliki akurasi terbesar 97.14% pada nilai k-fold 35 dengan nilai loss sebesar 10.11. Eksperimen ini menghasilkan pemahaman bahwa nilai KFold mempengaruhi klasifikasi dan prediksi
malware menggunakan fitur API Call, dan jumlah neuron mempengaruhi nilai loss. Pada penelitian ini, akurasi terbaik diambil berdasarkan nilai akurasi paling baik dari tiap nilai K-Fold dengan nilai loss yang relative rendah. Pada perbandingan kinerja, CNN-AE menunjukan kinerja yang baik daripada teknik klasifikasi lainnya yang diterapkan pada penelitian sebelumnya, seperti MLP-NN, SAE-NN. Pengujian pada lingkungan versi windows yang berbeda menunjukan akurasi dan nilai loss yang sama. Hal ini disebabkan,oleh fitur API yang sama antara windows versi pada Tabel 3 dan Tabel 4. Beberapa perbedaan yang ditemukan berupa perubahan nama API dari versi windows NT ke windows 7, windows 8 dan 10, seperti NtOpenSection berubah menjadi ZwOpenSection. Perubahan lainnya yang ditemukan yaitu,jumlah API pada windows 7,8 dan 10 bertambah banyak dan lebih bervariasi nya API pada windows 7, 8 dan 10, namun tetap menunjukan fungsionalitas yang sama.
6. Saran
Adapun saran yang dapat dilakukan untuk penelitian selanjutnya dengan topik yang sama yaitu penambahan scenario yang melibatkan perbedaan fungsi aktivasi pada tiap layer, serta memperbanyak variasi dataset untuk training dan testing, sehingga pembelajaran pola yang dilakukan menjadi lebih baik dalam mengenali kombinasi pola API Call pada malware.
Daftar Pustaka
[1] M. Egele, T. Scholte, E. Kirda, & C. Kruegel. (2008). A Survey on Automated Dynamic Malware Analysis Techniques and Tools. In ACM CSUR, Vol 44(2), 6:1-6:42.
[2] E. Filiol. (2006). Malware pattern scanning schemes secure against black box analysis. In J. Computer. Virology, Vol 2(1), 35-50.
[3] E. Filiol, G. Jacob, & M. L. Liard.(2007). Evaluation methodology and theoretical model for antiviral behavioral detection strategies. In J. Computer. Virology, Vol 3(1), 27-37, 2007.
[4] J. Kephart, & W. Arnold.(1994). Automatic extraction of computer virus signatures. In Proceedings of 4th Virus Bulletin International Conference, 178-184.
[5] P.Beaucamps, & E.Filiol. (2007). On the possibility of practically obfuscating programs towards a unified perspective of code protection. In Journal in Computer Virology, 3 (1).
[6] M. Bailey, J. Oberheide, J. Andersen, Z. Mao, F. Ahanian, and J. Nazario. (2007). Automated classification and analysis of internet malware. In RAID 2007, LNCS, 178-197.
[7] P. Vincent, H. Larochelle, I. Lajoie, Y. Bengio, & P. Manzagol. (2010). Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion. In Journal of Machine Learning Research, Vol 11, 3371-3408.
[8] J. Kolter, & M. Maloof.(2004). Learning to detect malicious executables in the wild. In SIGKDD. [9] R. A. Dunne. (2007). A Statistical Approach to Neural Networks for Pattern Recognition. In
Wiley-Interscience, 1st edition.
[10] Y. Bengio.(2009). Learning Deep Architectures for AI. In Foundations and Trends in Machine Learning, Vol 2(1), 1-127.
[11] W. Huang, G. Song, H. Hong, & K. Xie.(2014). Deep Architecture for Traffic Flow Prediction: Deep Belief Networks With Multitask Learning. In IEEE Transactions on Intelligent Transportation Systems, Vol 15(5), 2191-2201.
[12] Y. Lv, Y. Duan, W. Kang, Z. Li, & F. Wang. (2015). Traffic Flow Prediction With Big Data: A Deep Learning Approach. In IEEE Transactions on Intelligent Transportation Systems, Vol 16(2), 865-873. [13] G. E. Hinton, and R. R. Salakhutdinov.(2006). Reducing the dimensionality of data with neural networks.
In Science, Vol 313(5786), 504-507.
[14] G. E. Hinton, S. Osindero, & Y. Teh. (2006). A fast learning algorithm for deep belief nets. In Neural Computation, Vol 18, 1527-1554.
[15] M. Kalash, M. Rochan, N. Mohammed, Bruce D. Neil B, Y. Wang, F. Iqbal. (2018). Malware Classification with Deep Convolutional Neural Networks. In 9th IFIP International Conference on New Technologies, Mobility and Security (NTMS), 2157-4960.
[16] M. Ganesh, P. Ped, P. Prab, D. Sreedharan, Y. Park, H. Jeon (2017). CNN-Based Android Malware Detection. In International Conference on Software Security and Assurance.
[17] W. Jung, S. Kim, and S. Choi.(2015). Poster: Deep Learning for Zero-day Flash Malware Detection. In 36th IEEE Symposium on Security and Privacy.
[18] H. Zhao, M. Li, T. Wu, F. Yang (2018). Evaluation of Supervised Machine Learning Technique for Dynamic Malware Detection. In International Journal of Computational Intelligence System, Vol 11, 1153-1169.
[19] Y. Ye, T. Li, J. Qingshan, & W. Youyu (2010). CIMDS: Adapting Postprecessing Technique of Associative Classification for Malware Detection. In IEEE Transaction on System, Vol. 40.
[20] S. Ashkan, Yadegari B, N. Peiravian, Hassemi S, Ali H. (2010). Malware Detection Based on Mining API Calls. In ACM Symposium on Applied Computing (SAC).
[21] Pedregosa F, Varoquaux G, Gramfort A, Michel V, Thirion B, Grisel O, Blondel M, Prettenhofer P, Weiss R, Dubourg V, Vanderplas J. (2011). Scikit-learn: Machine learning in Python. Journal of machine learning research, 12(Oct), 2825-2830.
[22] F. Xiao, Z. Lin and Y. Ma (2019). Malware Detection Based on Deep Learning of Behavior Graph. In Mathematical Problem in Engineering.Vol. 10.
[23] M.Alazab,S.Venkatraman,and P.Watters,“Zero-day malware detection based on supervised learning algorithms of API call signatures,”(2011). In Proceedings of the 9th Australasian Data Mining Conference(AusDM’11),vol.121,pp.171–182, Australian Computer Society.
[24] Y. Ki, E. Kim, and H. Kang Kim (2015). A Novel Approach to Detect Malware Based on API Call Sequence Analysis. In International Journal of Distributed Sensor Networks.
[25] M. Chandramohan, H. B. K. Tan, L. C. Briand, L. K. Shar, and B. M. Padmanabhuni, (2013). “A scalable approach for malware detection through bounded feature space behavior modeling,” in Proceedings of the Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference, pp. 312– 322.
[26] Process and Threads:
http://msdn.microsoft.com/enus/library/windows/desktop/ms684841%28v=vs.85%29.aspx
[27] Registry: http://msdn.microsoft.com/enus/library/windows/desktop/ms724878%28v=vs.85%29.aspx [28] Synchronization:
http://msdn.microsoft.com/enus/library/windows/desktop/ms681924%28v=vs.85%29.aspx
[29] Section Objects and View:
http://msdn.microsoft.com/enus/library/windows/hardware/ff563684%28v=vs.85%29.aspx
[30] J. Richter.(1999). Programming Applications for Microsoft Windows,vol. 22,Microsoft Press,Washington,DC,USA.
[31] R. Masri and M. Aldwairi.(2017). Automated malicious advertisement detection using virustotal, urlvoid, and trendmicro. In 2017 8th International Conference on Information and Communication Systems (ICICS), pages 336–341.
[32] Gupta, S., Sharma, H., Kaur, S.:Malware Characterization Using Windows API Call Sequences.(2016). In: Carlet, C., Hasan, M., Saraswat, V. (eds) Security, Privacy, and Applied Cryptography Engineering. SPACE. Lecture Notes in Computer Science, vol. 10076. Springer, Cham.
[33] Veeramani R and Nitin Rai, Windows API based Malware Detection and Framework Analysis. (2012), International Journal of Scientific & Engineering Research, Volume 3, No. 3.
[34] Russinovich, M. E., & Solomon, D. A. (2004). Microsoft Windows Internals, 4th Edition. Microsoft Windows Server TM 2003, Windows XP, and Windows 2000 (Pro-Developer).
[35] Nebbett, G. Windows NT/2000 Native API Reference, Macmillan Technical Publishing (MTP), February 15, 2000.