• Tidak ada hasil yang ditemukan

Hasil Akuisisi Data

Dengan mengamati sebanyak 80 aplikasi dan setiap aplikasi dieksekusi sebanyak 3 kali, didapatkan fail keluaran sebanyak 240 buah. Seluruh fail keluaran ini dibagi menjadi 3 bagian, setiap bagian merepresentasikan urutan pengulangan eksekusi. Bagian-bagian tersebut akan ditransformasi menjadi bentuk matriks.

15 Praproses Data

Terdapat 3 buah matriks masing-masing berukuran 80 x 401. Setelah dilakukan praproses data, masing-masing matriks tersebut berukuran 80 x 57. Hal ini berarti dari 3 kali pengamatan terhadap 80 aplikasi Android, hanya 57 system call yang digunakan oleh seluruh aplikasi dalam penelitian ini. Daftar system call yang dipanggil oleh seluruh aplikasi dalam penelitian ini dapat dilihat pada Lampiran 4 dan nilai matriks untuk hasil pengamatan pertama dapat dilihat pada Lampiran 5, untuk ulangan kedua pada Lampiran 6, serta untuk ulangan ketiga pada Lampiran 7. Untuk proses selanjutnya matriks hasil eksekusi pertama digabung dengan matriks hasil eksekusi ketiga untuk menjadi data latih dan matriks kedua digunakan sebagai data uji. Dengan demikian ukuran matriks data latih adalah 160 x 57 dan ukuran matriks data uji adalah 80 x 57.

Proses PCA

Pengaturan proses PCA pada penelitian ini adalah membuang fitur yang ragamnya bernilai 0, sehingga tidak mengurangi informasi awalnya sama sekali. Hasil yang didapat dari proses PCA ini adalah semakin berkurangnya dimensi matriks yang akan diinput kedalam proses klasifikasi SVM. Ukuran matriks data latih sebelum proses PCA adalah 160 x 57, setelah melalui proses PCA ukuran matriks data latih menjadi 160 x 51. Begitu pula dengan ukuran matriks data uji semula berukuran 80 x 57, setelah melalui proses PCA menjadi 80 x 51.

Pelatihan SVM

Proses SVM untuk kernel RBF dan polinomial membutuhkan beberapa nilai parameter. Nilai parameter tersebut didapat dengan melakukan proses cross-validation dengan nilai fold sebesar 5. Nilai parameter yang dibutuhkan kernel RBF adalah C dan G, sedangkan untuk kernel polinomial adalah C, G, d, dan r.

Dari Gambar 12 dapat dilihat bahwa akurasi tertinggi pada proses cross-validation untuk kernel RBF dengan nilai parameter C=1 dicapai pada saat nilai G adalah 2-2. Setelah itu nilai G tersebut digunakan untuk mencari nilai C yang optimal melalui proses cross-validation juga. Gambar 13 menunjukkan hasil nilai C yang optimal untuk kernel RBF yaitu sebesar 25.

16

Untuk kernel polinomial nilai parameter yang pertama kali dicari adalah nilai G dengan C=0.5; d=4; dan r=1. Gambar 14 menunjukkan akurasi terbaik untuk kernel polinomial dengan nilai G sebesar 2-3.

Gambar 12 Hasil cross-validation kernel RBF mencari nilai parameter G

17

Setelah nilai parameter G didapatkan, nilai parameter selanjutnya yang dicari untuk kernel polinomial adalah nilai parameter r. Gambar 15 memperlihatkan bahwa akurasi tertinggi dicapai pada saat nilai r=1.

Parameter yang dicari selanjutnya adalah parameter C. Dengan melakukan cross-validation dan nilai parameter d=4; G=0.125; dan r=1 didapatkan akurasi

Gambar 14 Hasil cross-validation kernel polinomial mencari nilai parameter G

Gambar 15 Hasil cross-validation kernel polinomial mencari nilai parameter r

18

terbaik pada saat nilai C=2-1. Gambar 16 menunjukkan akurasi dari beberapa nilai parameter C.

Parameter selanjutnya yang dicari untuk kernel polinomial adalah parameter d. Gambar 17 memperlihatkan hasil proses cross-validation untuk beberapa nilai d, dan didapatkan akurasi terbaik terjadi pada saat nilai d=4.

Gambar 16 Hasil cross-validation kernel polinomial mencari nilai parameter C

Gambar 17 Hasil cross-validation kernel polinomial mencari nilai parameter d

19 Dengan demikian dari proses cross-validation didapatkan beberapa nilai parameter optimal untuk kernel RBF dan kernel polinomial. Untuk kernel RBF parameter C bernilai 32 dan parameter G bernilai 0.25. Untuk kernel polinomial parameter C bernilai 0.5; parameter G bernilai 0.125; parameter d bernilai 4; dan parameter r bernilai 1.

Pengujian SVM

Nilai parameter yang didapatkan dari hasil pelatihan SVM digunakan dalam proses SVM dengan menggunakan data uji. Confusion matrix hasil identifikasi SVM dengan data uji yang pertama menggunakan fungsi kernel RBF dapat dilihat pada Tabel 2 dan confusion matrix hasil identifikasi SVM dengan fungsi kernel polinomial dapat dilihat pada Tabel 3.

Dengan menggunakan data uji pertama, dari Tabel 2 dapat diketahui bahwa akurasi pendeteksian malware dengan SVM dan menggunakan kernel RBF mencapai 86.25%, dan dari Tabel 3 dapat diketahui bahwa akurasi pendeteksian malware dengan SVM dan kernel polinomial mencapai 90%.

Pengujian selanjutnya adalah dengan menggunakan data uji yang di dalamnya terdapat 5 aplikasi malware yang telah diubah signature-nya. Confusion matrix hasil identifikasi SVM dengan data uji yang kedua menggunakan fungsi kernel RBF dapat dilihat pada Tabel 4 dan confusion matrix hasil identifikasi SVM dengan fungsi kernel polinomial dapat dilihat pada Tabel 5.

Tabel 2 Confusion matrix untuk SVM dengan data uji pertama menggunakan kernel RBF

Kernel RBF Prediksi

Malware Non-Malware

Malware 20 10

Non-Malware 1 49

Tabel 3 Confusion matrix untuk SVM dengan data uji permata menggunakan kernel polinomial Kernel Polinomial Prediksi Malware Non-Malware Malware 24 6 Non-Malware 2 48

20

Seluruh aplikasi malware yang diubah signature-nya, dapat diidentifikasi dengan benar sebagai malware. Jika dibandingkan antara Tabel 2 dan Tabel 4 serta Tabel 3 dan Tabel 5, pendeteksian malware dengan signature yang sebelumnya tidak diubah dan pendeteksian malware yang sudah diubah signature-nya hasilsignature-nya adalah sama. Dengan demikian, metode ini mampu mengenali aplikasi malware yang memiliki kemampuan polimorfik.

Pembahasan

Burguera (2011) mengatakan bahwa system call access(), chmod(), chown(), kill(), open(), dan read() merupakan system call yang paling umum digunakan oleh malware Android. Namun hasil penelitian ini tidak menunjukkan hal serupa, dapat dilihat pada Gambar 18 bahwa system call access(), chmod(), kill(), open(), dan read() memiliki rata-rata frekuensi pemanggilan yang hampir serupa antara malware dan non-malware, sedangkan system call chown() tidak pernah dipanggil sama sekali oleh satu aplikasipun pada waktu pengamatan.

Tabel 4 Confusion matrix untuk SVM dengan data uji kedua menggunakan kernel RBF

Kernel RBF Prediksi

Malware Non-Malware

Malware 20 10

Non-Malware 1 49

Tabel 5 Confusion matrix untuk SVM dengan data uji kedua menggunakan kernel polinomial Kernel Polinomial Prediksi Malware Non-Malware Malware 24 6 Non-Malware 2 48

21

Gambar 18 Rata-rata frekuensi pemanggilan system call

Dari hasil penelitian ini, tidak terlihat system call mana yang dapat membedakan secara signifikan antara malware dan non-malware. Hasil klasifikasi dapat mencapai akurasi cukup tinggi karena data uji yang digunakan merupakan hasil pengamatan dari aplikasi yang sama dengan data latih. Hal tersebut merupakan kelemahan metode ini karena tidak dapat mengidentifikasi aplikasi baru yang belum pernah diamati frekuensi system call-nya dan dilatih dengan klasifikasi SVM.

Berdasarkan hasil pengamatan pemanggilan system call oleh aplikasi Android, dapat dilihat pada Lampiran 5, Lampiran 6, dan Lampiran 7 ditemukan bahwa hampir seluruh aplikasi pada penelitian ini memanggil system call clone() yang berfungsi untuk menciptakan child process, juga terdapat beberapa aplikasi yang memanggil system call fork() yang berfungsi untuk menduplikasi process. Hal ini berarti pada saat satu buah aplikasi dieksekusi, PID yang dibangkitkan oleh aplikasi tersebut dapat berjumlah lebih dari satu buah, sedangkan dalam penelitian ini pengamatan frekuensi pemanggilan system call oleh satu buah aplikasi hanya diamati dari satu buah PID, yaitu PID yang pertama kali muncul pada saat aplikasi tersebut dijalankan. Oleh karena itu, hal ini juga merupakan kelemahan pada metode penelitian ini, bisa saja perilaku malware dari suatu aplikasi dilakukan oleh proses lain dengan PID yang berbeda.

Untuk penelitian selanjutnya, perlu dibuat cara agar pada saat eksekusi satu aplikasi Android. Pengamatan yang dilakukan dapat mencakup seluruh PID yang dibangkitkan oleh aplikasi tersebut.

Secara umum, tujuan penelitian ini belum tercapai sepenuhnya karena belum dapat dibedakan tingkah laku malware dan non-malware secara umum jika diamati melalui system call. Walaupun demikian jika metode penelitian ini dibandingkan dengan metode signature-based, hasil dari metode ini relatif lebih

22

baik karena metode ini mampu mengenali malware yang memiliki kemampuan polimorfik.

Dokumen terkait