• Tidak ada hasil yang ditemukan

Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android"

Copied!
66
0
0

Teks penuh

(1)

DETEKSI

MALWARE

BERBASIS

SYSTEM CALL

DENGAN

KLASIFIKASI SUPPORT VECTOR MACHINE PADA

ANDROID

CHANDRA WANGSA SETIADIPURA

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

(2)
(3)

PERNYATAAN MENGENAI SKRIPSI DAN

SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA

Dengan ini saya menyatakan bahwa skripsi berjudul Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.

Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.

(4)

ABSTRAK

CHANDRA WANGSA SETIADIPURA. Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android. Dibimbing oleh MUSHTHOFA.

Android merupakan sistem operasi yang paling banyak digunakan untuk smartphone. Ancaman terbesar pada Android adalah merebaknya malware yang bersumber dari toko-toko aplikasi Android. Umumnya pendeteksian malware menggunakan metode signature-based yang dengan mudah dapat dikelabui oleh malware yang memiliki kemampuan polimorfik, dengan demikian dibutuhkan metode pendeteksian malware yang lebih dinamis. Tujuan penelitian ini adalah membuktikan bahwa system call dapat digunakan sebagai fitur untuk mendeteksi aplikasi malware Android dan menguji keakurasian Support Vector Machine (SVM) dalam melakukan klasifikasi antara aplikasi malware dan non-malware. Frekuensi system call didapat dari hasil eksekusi aplikasi Android, lalu system call yang tidak digunakan sama sekali dihilangkan. Setelah itu, proses Principal Component Analysis dilakukan untuk mengurangi dimensi dan menghilangkan fitur yang tidak berpengaruh. Penggunaan kernel Radial Basis Function pada SVM untuk klasifikasi malware menghasilkan akurasi sebesar 86.25% sedangkan untuk kernel polinomial menghasilkan akurasi sebesar 90%.

Kata kunci: android, malware, svm, system call

ABSTRACT

CHANDRA WANGSA SETIADIPURA. Malware Detection Based on System Call with Support Vector Machine Classification on Android. Supervised by MUSHTHOFA.

(5)

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada

Departemen Ilmu Komputer

DETEKSI

MALWARE

BERBASIS

SYSTEM CALL

DENGAN

KLASIFIKASI SUPPORT VECTOR MACHINE PADA

ANDROID

CHANDRA WANGSA SETIADIPURA

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

(6)
(7)

Judul Skripsi : Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android

Nama : Chandra Wangsa Setiadipura NIM : G64070108

Disetujui oleh

Mushthofa, Skom, MSc Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi, MKom Ketua Departemen

(8)

PRAKATA

Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan Januari 2011 ini ialah malware, dengan judul Deteksi Malware Berbasis System Call dengan Klasifikasi Support Vector Machine pada Android.

Terima kasih penulis ucapkan kepada Bapak Mushthofa, Skom, MSc selaku pembimbing yang telah banyak memberi pengarahan, saran dan motivasi dalam menyelesaikan karya ilmiah ini. Ungkapan terima kasih juga disampaikan kepada ayah dan ibu, sekaligus penulis ingin memohon maaf kepada mereka berdua karena terlalu lama berproses menyelesaikan karya ilmiah ini. Terima kasih juga disampaikan untuk seluruh keluarga, atas segala doa dan kasih sayangnya.

Semoga karya ilmiah ini bermanfaat.

(9)

DAFTAR ISI

DAFTAR TABEL vi

DAFTAR GAMBAR vi

DAFTAR LAMPIRAN vi

PENDAHULUAN 1

Latar Belakang 1

Perumusan Masalah 2

Tujuan Penelitian 2

Manfaat Penelitian 2

Ruang Lingkup Penelitian 3

TINJAUAN PUSTAKA 3

System Call 3

Malware 5

Support Vector Machine (SVM) 5

Principal Component Analysis 8

METODE 8

Pengumpulan Aplikasi 9

Akuisisi Data Pemanggilan System Call 9

Praproses Data 12

Proses PCA 13

Pelatihan SVM 13

Pengujian SVM 13

Alat 14

Prosedur Analisis Data 14

HASIL DAN PEMBAHASAN 14

Hasil 14

Pembahasan 20

SIMPULAN DAN SARAN 22

Simpulan 22

Saran 22

(10)

LAMPIRAN 24

(11)

DAFTAR TABEL

1 Contoh system call dan frekuensi pemanggilannya 4 2 Matriks Konfusi untuk SVM dengan data uji pertama menggunakan

1 Proses sebuah aplikasi mengirimkan permintaan kepada platform

perangkat keras (IBM 2007) 4

8 Contoh PID dari aplikasi yang akan diamati 11

9 Contoh perintah program Strace 11

10 Perintah untuk menghentikan aplikasi yang sedang diamati 12 11 Contoh isi fail keluaran dari proses akuisisi data 12 12 Hasil cross-validation kernel RBF mencari nilai parameter G 16 13 Hasil cross-validation kernel RBF mencari nilai parameter C 16 14 Hasil cross-validation kernel polinomial mencari nilai parameter G 17 15 Hasil cross-validation kernel polinomial mencari nilai parameter r 17 16 Hasil cross-validation kernel polinomial mencari nilai parameter C 18 17 Hasil cross-validation kernel polinomial mencari nilai parameter d 18

18 Rata-rata frekuensi pemanggilan system call 21

DAFTAR LAMPIRAN

1 Daftar nama aplikasi yang digunakan dalam penelitian 24 2 Algoritme program untuk mengekstrak frekuensi system call 28 3 Algoritme program untuk mentransformasi frekuensi system call dalam

fail csv menjadi matriks 29

4 System call yang dipanggil oleh seluruh aplikasi selama pengamatan 30

5 Nilai matriks hasil pengamatan pertama 32

6 Nilai matriks hasil pengamatan kedua 39

(12)
(13)

PENDAHULUAN

Android saat ini merupakan sistem operasi yang paling banyak digunakan untuk perangkat komputer bergerak. Aplikasi Android yang dibuat oleh para pengembang semakin banyak dan mengakibatkan semakin banyaknya pula toko aplikasi Android sebagai wadah bagi para pengembang aplikasi dan sebagai penyedia jasa untuk mengunduh aplikasi bagi para pengguna Android. Banyak toko aplikasi yang belum memiliki sistem pengecekan aplikasi yang diunggah para pengembang aplikasi, hal ini mengakibatkan penyebaran malware semakin meluas. Saat ini sistem penyaringan aplikasi hanya berbasis signature. Hal ini dapat dengan mudah dikelabui oleh malware apabila malware tersebut memiliki kemampuan polimorfik, sehingga kode signature dapat berubah-ubah. Dengan demikian dibutuhkan pendeteksian malware secara dinamis, salah satunya dengan cara mengamati system call.

Tujuan dari penelitian ini adalah menerapkan dugaan bahwa pendeteksian malware pada Android dapat dilakukan melalui pengamatan system call. Pendeteksian malware dilakukan dengan mengamati system call karena system call merupakan bagian dasar dari sistem operasi yang selalu digunakan oleh setiap aplikasi selama aplikasi tersebut berjalan. Dengan demikian perilaku dari malware dapat diidentifikasi.

Latar Belakang

Sistem operasi Android saat ini sudah menguasai pasar sistem operasi komputer bergerak. Berdasarkan data dari International Data Center (IDC) untuk kuartal 3 tahun 2012 penggunaan Android sebagai sistem operasi komputer mobil mencapai 75% di seluruh dunia (IDC 2012). Dengan banyaknya pengguna Android, toko-toko penyedia aplikasi Android pun banyak bermunculan, begitu juga dengan ancaman keamanan yang semakin besar. Ancaman terbesar saat ini adalah merebaknya malware (aplikasi jahat) yang menyerang para pengguna Android. Pusat penyebaran malware Android terdapat pada toko-toko aplikasi Android. Google Play Store sebagai toko aplikasi resmi Android sudah memiliki layanan keamanan pemindai aplikasi untuk mengidentifikasi aplikasi malware yang dinamakan Google Bouncer, tetapi toko aplikasi lainnya belum memiliki hal serupa.

Menurut Idika dan Marthur (2007) umumnya metode pendeteksian malware banyak menggunakan signature-based karena metode ini sangat efektif untuk mendeteksi malware yang sudah dikenali sebelumnya, namun metode ini dapat dengan mudah dikelabui oleh malware yang memiliki kemapuan polimorfik. Kemampuan polimorfik adalah kemampuan program yang dapat mengubah kode signature-nya namun fungsi yang dilakukan tetap sama. Oleh karena itu dibutuhkan suatu pendekatan pendeteksian malware secara dinamis dengan mengamati fungsi-fungsi yang dijalankan oleh aplikasi malware.

(14)

2

sistem operasi. Setiap aplikasi pasti memanggil system call. Oleh karena itu dengan mengamati system call dapat diamati pula tingkah laku dari sebuah aplikasi.

Setelah dilakukan perekaman terhadap pemanggilan system call oleh sebuah aplikasi maka dilakukan metode klasifikasi untuk menentukan apakah perilaku tersebut tergolong malware atau non-malware. Cristianini dan Taylor (2000) mengatakan bahwa Support Vector Machine (SVM) merupakan metode klasifikasi yang memiliki proses pelatihan yang efisien dan dapat dioptimisasi di segala bidang persoalan. Oleh sebab itu pada penelitian ini akan digunakan SVM sebagai metode klasifikasinya.

Penelitian mengenai pendeteksian malware secara dinamis pada Android belum begitu banyak dilakukan. Salah satu hal tentang penelitian ini dilakukan oleh Burguera (2011). Dalam penelitian tersebut, Burguera mengamati pola yang dihasilkan dari setiap aplikasi melalui frekuensi pemanggilan system call. Hasil penelitian Burguera dapat mengidentifikasi malware dengan akurasi 100%.

Aplikasi yang digunakan oleh Burguera merupakan aplikasi buatan sendiri. Burguera membuat aplikasi yang serupa untuk jenis non-malware dan malware. Pada penelitian ini aplikasi yang akan digunakan adalah aplikasi malware dan non-malware yang sudah beredar luas, dengan tetap mengamati frekuensi pemanggilan system call untuk mengidentifikasi malware.

Perumusan Masalah

Perumusan masalah dalam penelitian ini adalah:

1 Apakah system call dapat digunakan untuk mengidentifikasi malware pada Android atau tidak.

2 Seberapa baik metode klasifikasi SVM dapat digunakan untuk mengklasifikasikan antara malware dan non-malware melalui frekuensi pemanggilan system call.

Tujuan Penelitian

Tujuan dari penelitian ini adalah membuktikan bahwa system call dapat digunakan sebagai fitur untuk mendeteksi aplikasi malware Android dan menguji keakurasian tingkat ketepatan dari SVM dalam melakukan klasifikasi antara aplikasi malware dan non-malware.

Manfaat Penelitian

(15)

3 Ruang Lingkup Penelitian

Ruang lingkup penelitian ini adalah pengamatan hanya difokuskan pada system call. Aplikasi non-malware yang digunakan pada penelitian ini diperoleh dari Google Play Store yang memiliki rate minimal 4 dari 5 dan telah diberi rate minimal oleh 100 000 pengguna. Untuk mendapatkan aplikasi malware tidaklah mudah, karena pada saat terdeteksi aplikasi tersebut langsung dihapus dari sumbernya. Terdapat satu situs yang sering digunakan untuk saling tukar contoh malware di antara para peneliti yaitu situs contangiominidump.blogspot.com. Versi sistem operasi Android yang digunakan adalah versi 2.3.7 bernama Gingerbread. Gingerbread digunakan karena market share-nya pada kuartal ke-3 tahun 2012 masih merupakan versi Android yang paling banyak digunakan yaitu sebesar 50.6% (Android 2012). Pengeksekusian aplikasi tidak menggunakan emulator tetapi menggunakan perangkat Android yang sesungguhnya dengan GPS dan WIFI pada kondisi menyala.

TINJAUAN PUSTAKA

System Call

Menurut Bergstra dan Polse (2001) sebuah system call merupakan semacam cara bagi program atau aplikasi untuk meminta service dari kernel sistem operasi. Pada sistem operasi Linux terdapat lebih dari 400 buah system call, setiap system call diidentifikasi dengan nomor khusus yang ditemukan pada tabel system call kernel. Sebuah system call dipanggil oleh sebuah aplikasi menggunakan fungsi library glibc. Fungsi-fungsi seperti getpid(), open(), read() dan socket() adalah beberapa fungsi yang glibc sediakan agar aplikasi dapat memanggil system call.

Setiap kali sebuah aplikasi dari user space melakukan permintaan kepada sistem operasi yang dapat dilakukan melalui library glibc, permintaan tersebut akan masuk ke dalam antarmuka system call, kernel dan akhirnya permintaan dieksekusi pada platform perangkat keras. Library glibc menerjemahkan permintaan dari aplikasi, lalu CPU (Central Processing Unit) berubah dari mode user menjadi mode kernel. Antarmuka system call mendapat permintaan yang telah diterjemahkan, lalu mengeksekusi fungsi kernel tertentu dengan melihat kepada tabel system call. Kernel harus menerjemahkan permintaan dari antarmuka system call dan membuat permintaan kepada platform perangkat keras. Setelah itu, pengguna menerima informasi yang diminta oleh aplikasi dengan prosedur yang berkebalikan. Gambar 1 menjelaskan tentang kernel Linux dan proses sebuah aplikasi mengirimkan permintaan kepada platform perangkat keras.

Kernel Linux dieksekusi di tahap terbawah pada arsitektur Android. Ini berarti semua permintaan yang dibuat pada tahap-tahap di atasnya pasti melalui antarmuka system call untuk sampai pada kernel sebelum mengeksekusi permintaan pada perangkat keras.

(16)

4

oleh aplikasi Android. Berdasarkan penelitian yang dilakukan Burguera (2011) frekuensi system call dapat digunakan untuk merepresentasikan tingkah laku sebuah aplikasi.

Gambar 1 Proses sebuah aplikasi mengirimkan permintaan kepada platform perangkat keras (IBM 2007)

Tabel 1 memperlihatkan contoh system call yang akan diakuisisi, terdapat nama system call dan frekuensi pemanggilannya selama 5 menit untuk satu kali eksekusi satu aplikasi.

GNU/ Linux

User Space

Kernel Space GNU C Library (glibc)

KERNEL

Architecture-Dependent Kernel Code

Aplikasi Pengguna

Antarmuka System Call

Platform Perangkat Keras

Tabel 1 Contoh system call dan frekuensi pemanggilannya Nama System Call Frekuensi (5 menit)

accept() 0

accept4() 0

access() 2096

... ...

reboot() 0

sync() 747

... ...

waitpid() 0

(17)

5

Malware

Menurut Kramer dan Bradfield (2010) malware adalah sebuah perangkat lunak yang dapat merusak perangkat lunak lain atau membuat perangkat keras bekerja lebih keras karena harus memfasilitasi eksekusi program di luar konteks yang seharusnya. Lebih jauh mereka menjelaskan bahwa malware juga merupakan perangkat lunak yang bertindak berbeda dari yang seharusnya perangkat lunak tersebut lakukan.

Support Vector Machine (SVM)

Cherkassky dan Mulier (2007) mengatakan bahwa Support Vector Machine (SVM) merupakan prosedur pembelajaran konstruktif yang universal yang

berbasis teori pembelajaran statistik. Istilah “universal” berarti bahwa SVM dapat

digunakan untuk mempelajari berbagai representasi. SVM akan mencari hyperplane (bidang pemisah) terbaik yang memisahkan data dari suatu permasalahan.

(18)

6

Dengan meminimumkan L terhadap w dan b, diperoleh:

Persamaan (1) dapat dimodifikasi sebagai maksimalisasi L yang hanya mengandung a sebagai persamaan (4).

Nilai a yang dihasilkan digunakan untuk mencari w. Data yang memiliki nilai merupakan support vector, sedangkan sisanya memiliki nilai . Setelah nilai a ditemukan, kelas dari data pengujuian x dapat ditentukan berdasarkan nilai fungsi keputusan:

dengan

= support vector,

ns = jumlah support vector,

= data yang akan diklasifikasikan.

Pada kondisi sebenarnya, terdapat data yang tidak lineary separable sehingga bidang pemisah secara linear sulit ditemukan. Jika data tidak dapat dipisahkan secara sempurna dengan pemisahan secara linear (Wang et al. 2009), SVM dimodifikasi dengan menambahkan variabel

jika diklasifikasikan dengan benar , dengan formula pencarian hyperplane adalah :

(1)

(2)

(3)

(4)

(5) s.t

(6)

(19)

7 Pencarian hyperplane dengan penambahan variabel disebut soft margin hyperplane, C adalah parameter yang menentukan besar penalti akibat kesalahan dalam klasifikasi. Dengan demikian, dual problem yang dihasilkan pada non linear problem sama dengan dual problem yang dihasilkan dengan linear problem. Hanya saja, rentang antara .

Cara lain agar permasalahan non-linear dapat dipisahkan secara linear ialah memetakan permasalahan tersebut ke dalam ruang ciri berdimensi tinggi, kemudian diterapkan klasifikasi linear dalam ruang tersebut. Tepatnya, variabel input x dipetakan ke dalam vektor variabel ciri ϕ dengan fungsi transformasi

ϕ . Fungsi yang memetakan suatu permasalahan non-linear ke dalam ruang ciri yang lebih tinggi disebut dengan fungsi kernel, (Osuna et al. 1997). Ilustrasi pemetaan data ke ruang vektor yang lebih tinggi dapat dilihat pada Gambar 3.

Gambar 3 Fungsi ϕ memetakan data ke ruang vektor yang lebih tinggi (Gisler 2008)

Menurut Byun dan Lee (2003), fungsi kernel yang umum digunakan ialah sebagai berikut:

a Kernel linear b Kernel polinomial

c Kernel Radial Basis Function (RBF)

Dalam hal ini, G, r dan d merupakan parameter-parameter pada kernel polinomial dan G juga merupakan parameter pada kernel RBF.

ϕ

input space

feature space

(8) (9)

(20)

8

Principal Component Analysis

Principal Component Analysis (PCA) adalah salah satu cara mengidentifikasi pola dalam data dan mengekspresikannya sedemikian rupa sehingga dapat terlihat persamaan dan perbedaannya. Pola ini berguna untuk mengompresi data, yaitu mengurangi ukuran atau dimensi data tanpa kehilangan banyak informasi yang terkandung (Smith 2002).

Secara matematis, Joliffe (2002) mendefinisikan PCA sebagai transformasi linear ortogonal pada data ke sistem koordinat yang baru sehingga variansi terbesar dari proyeksi data manapun akan berada pada koordinat pertama dan disebut sebagai komponen utama pertama, variansi terbesar kedua pada koordinat kedua, dan selanjutnya.

METODE

Secara garis besar, tahapan dalam penelitian ini digambarkan pada Gambar 4. Penjelasan lebih lengkap tentang tahapan-tahapan penelitian akan dipaparkan di bawah ini.

Gambar 4 Tahapan penelitian SVM

Pengumpulan Aplikasi

Akuisisi Data Pemanggilan System Call

Praproses Data

Data Latih

Data Uji Proses PCA

Pengujian SVM

Pelatihan SVM

(21)

9 Pengumpulan Aplikasi

Sebanyak 80 aplikasi dikumpulkan dalam penelitian ini. Aplikasi-aplikasi tersebut terdiri dari 50 aplikasi non-malware dan 30 aplikasi malware. Seluruh aplikasi non-malware didapatkan dari Google Play Store, sedangkan aplikasi malware didapatkan dari situs contagiominidump.blogspot.com. Daftar nama aplikasi yang digunakan pada penelitian ini dapat dilihat pada Lampiran 1.

Untuk menguji kemampuan pengenalan aplikasi malware yang bersifat polimorfik, sebanyak 5 aplikasi malware diubah signatunya dengan teknik re-sign. Android mengharuskan setiap aplikasi diberi signature sebelum aplikasi tersebut dapat dipublikasikan dan dijalankan pada perangkat Android. Sayangnya, setiap aplikasi Android dapat diberi signature berulang kali walaupun bukan oleh pembuat aplikasi tersebut. Dengan demikian, cara ini dapat menghindari sistem pendeteksian anti-virus yang hanya mengidentifikasi malware sesuai dengan signature aslinya (Zheng et al. 2013).

Akuisisi Data Pemanggilan System Call

Seluruh aplikasi dipasang pada smartphone yang menggunakan sistem operasi Android yang sudah di-root dan ditambahkan program Strace untuk mencatat pemanggilan system call. Telepon pintar tersebut dihubungkan dengan sebuah komputer melalui kabel USB. Dengan bantuan program Android Debug Bridge (ADB) yang sudah terpasang di komputer, system call yang digunakan oleh aplikasi Android pada saat eksekusi dapat direkam pada komputer. Setiap aplikasi pada penelitian ini dieksekusi selama 5 menit dan diulang sebanyak 3 kali. Ilustrasi tentang proses akuisisi data pemanggilan system call ini digambarkan pada Gambar 5.

Gambar 5 Ilustrasi proses akuisisi data Perangkat Android

Strace

Aplikasi Android

System call

Komputer

ADBSHELL

Strace

(22)

10

Sebagai contoh, akan dipasang sebuah aplikasi Android bernama Daily Ab Workout pada perangkat Android. Kemudian perangkat Android tersebut dihubungkan dengan komputer yang sudah terpasang program ADB melalui kabel USB. Setelah aplikasi berhasil dipasang pada perangkat Android, aplikasi tersebut dijalankan dan akan mulai diamati pemanggilan system call-nya melalui komputer. Pada komputer mulai dijalankan program ADB dengan menggunakan shell. Gambar 6 menunjukkan perintah untuk memulai program ADB.

Setelah program ADB berhasil dijalankan, hal ini berarti shell Linux pada perangkat Android dapat dikendalikan melalui komputer. Langkah selanjutnya adalah mencari Process ID (PID) aplikasi yang akan diamati. Gambar 7 menunjukkan perintah shell Linux untuk melihat seluruh proses yang sedang berjalan.

Setelah seluruh proses yang sedang berjalan pada perangkat Android ditampilkan, langkah selanjutnya adalah mencari PID aplikasi yang akan diamati. Keterangan nama aplikasi yang akan diamati berada pada kolom terakhir atau kolom ke-9, sedangkan PID dari aplikasi tersebut berada pada kolom ke-2. Gambar 8 menunjukkan contoh PID aplikasi yang dicari dari aplikasi Daily Ab Workout yaitu 1603.

Gambar 6 Perintah untuk memulai program ADB

(23)

11

PID dari aplikasi yang akan diamati telah didapatkan. Selanjutnya untuk merekam system call yang akan dipanggil oleh aplikasi Daily Ab Workout, dibutuhkan satu jendela shell baru. Pada jendela shell yang baru ini diketikan perintah untuk menjalankan program Strace yang akan merekam pemanggilan system call dan menyimpannya pada fail keluaran di komputer. Gambar 9 menunjukkan perintah program Strace dengan angka 1603 merupakan PID dari aplikasi yang akan diamati, dan dailyAbWorkout_1.txt merupakan nama fail keluaran yang berisi system call hasil pengamatan.

Selama program Strace berjalan, aplikasi pada perangkat Android dieksekusi sebagaimana pengguna biasa mengeksekusi aplikasi tersebut. Waktu eksekusi adalah 5 menit. Apabila telah mencapai batas waktu eksekusi, aplikasi Android diberhentikan dengan perintah seperti yang tercantum pada Gambar 10. Angka 1603 pada Gambar 10 merupakan PID dari aplikasi yang akan dihentikan. Secara otomatis program Strace akan berhenti karena tidak ada lagi aplikasi dengan PID tersebut yang sedang diamati.

Gambar 8 Contoh PID dari aplikasi yang akan diamati

(24)

12

Proses akuisisi data untuk 1 kali pengamatan terhadap 1 aplikasi telah selesai. Hasil dari pengamatan ini berupa fail teks yang berisi informasi terkait dengan system call yang dipanggil oleh aplikasi Android selama dieksekusi. Gambar 11 menunjukkan contoh isi dari fail keluaran proses akuisisi data.

Praproses Data

Format data yang sudah didapatkan dari hasil eksekusi belum berupa nama system call dan frekuensinya, oleh karena itu dibuat sebuah program yang dapat mengekstrak nama system call dan frekuensinya. Program yang digunakan merupakan program yang ditulis dengan bahasa pemrograman Perl. Algoritme program ini dapat dilihat pada Lampiran 2. Keluaran program tersebut berupa fail dalam format CSV yang berisi frekuensi dari setiap system call yang digunakan oleh aplikasi Android selama eksekusi.

Data pada fail CSV tersebut kemudian ditransformasi menjadi sebuah matriks untuk diolah pada perangkat lunak Matlab. Algoritme program yang digunakan untuk mentransformasi fail CSV ke dalam bentuk matriks dapat dilihat pada Lampiran 3. Satu baris matriks merepresentasikan satu buah aplikasi dan satu kolom matriks merepresentasikan sebuah system call Android. Terdapat 3 buah matriks berukuran 80 x 401. Masing-masing matriks merepresentasikan pengulangan eksekusi aplikasi Android.

Gambar 10 Perintah untuk menghentikan aplikasi yang sedang diamati

(25)

13 Matriks 1 dan matriks 3 digabung untuk menjadi data latih, dan matriks 2 yang akan menjadi data uji. Dengan demikian ukuran matriks data latih adalah 160 x 401 dan ukuran matriks data uji adalah 80 x 401.

Dari 401 system call yang tersedia pada sistem operasi android, tidak semua system call dipanggil oleh aplikasi pada waktu pengamatan. System call yang sama sekali tidak pernah dipanggil oleh seluruh aplikasi pada saat pengamatan, system call tersebut akan dihilangkan. Pada data yang sudah ditransformasi ke dalam matriks, kolom yang akan dihilangkan adalah kolom yang bernilai 0 di semua baris matriks.

Setelah semua kolom yang bernilai 0 pada setiap baris dalam matriks dihilangkan, nilai dalam matriks uji dan matriks latih akan diskalakan. Penskalaan ini membuat nilai tengah setiap kolom adalah 0 dan nilai simpangannya adalah 1. Penskalaan ini menggunakan fungsi mapstd yang terdapat pada program Matlab.

Proses PCA

Matriks yang sudah melalui proses pembuangan system call yang tidak pernah digunakan oleh seluruh aplikasi selama waktu pengamatan, kemudian dilakukan proses Principal Component Analysis (PCA). Proses PCA bertujuan untuk mengurangi ukuran atau dimensi data tanpa kehilangan banyak informasi yang terkandung (Smith 2002).

Pelatihan SVM

Proses identifikasi aplikasi malware menggunakan metode klasifikasi Support Vector Machine (SVM). Data latih yang digunakan untuk pelatihan SVM adalah gabungan dari hasil eksekusi ulangan pertama dan eksekusi ulangan ke-3. Fungsi kernel SVM yang digunakan pada penelitian ini adalah Radial Basis Function (RBF) dan polinomial. Ada beberapa nilai parameter untuk fungsi kernel RBF dan polinomial yang harus dicari agar hasil klasifikasi SVM optimal. Untuk mencari nilai parameter terbaik dari masing-masing kernel dilakukan proses cross-validation dengan nilai fold adalah 5.

Pada kernel RBF, nilai parameter yang dibutuhkan adalah nilai parameter C (Cost) dan nilai parameter G (Gamma). Nilai parameter C dicari dari 2-5 sampai 215 dan untuk nilai parameter G dicari dari 2-15 sampai 23.

Pada kernel polinomial, nilai parameter yang dibutuhkan adalah nilai parameter C (Cost), nilai parameter G (Gamma), nilai parameter d (Degree), dan r (coefficient 0). Nilai parameter C dicari dari 2-5 sampai 215, nilai parameter G dicari dari 2-15 sampai 23, nilai parameter d dicari dari 1 sampai 6, dan nilai parameter r dicari dari 0 sampai 4.

Pengujian SVM

(26)

14

hasil eksekusi pada ulangan ke-2 dengan 5 aplikasi malware yang sudah diubah signature-nya. Hal ini dilakukan untuk menguji apakah metode ini mampu mengenali perilaku aplikasi malware yang memiliki kemampuan polimorfik atau tidak.

Alat

Perangkat keras:

 Pemroses Komputer Intel Core 2 Duo T7200,

 Memori Akses Acak Komputer 2 GB,

 Cakram Keras berkapasitas 500 GB,

 Pemroses Telepon Seluler 800 MHz ARM 11, dan

 Memori Akses Acak Telepon Seluler 278 MB. Perangkat lunak:

 Sistem Operasi Microsoft Windows 7 Ultimate,

 Sistem Operasi Android versi 2.3.7 Gingerbread,

 MATLAB R2012a,

 Libsvm versi 3.16, dan

 Android Debug Bridge versi 1.0.29

Prosedur Analisis Data

Dari hasil pelatihan dan pengujian SVM dengan kernel yang berbeda akan didapatkan hasil kinerja klasifikasi SVM terhadap aplikasi Android. Setelah itu dicari akurasi untuk masing-masing klasifikasi. Rumus yang digunakan untuk menghitung akurasi hasil klasifikasi, yaitu :

kurasi umlah data uji benar umlah data uji x

HASIL DAN PEMBAHASAN

Hasil

Akuisisi Data

(27)

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.

(28)

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

(29)

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

(30)

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

(31)

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.

(32)

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

(33)

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.

(34)

22

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

SIMPULAN DAN SARAN

Simpulan

Konsep pendeteksian malware Android berbasis system call dapat dengan baik mengidentifikasi malware. Menggunakan klasifikasi SVM dengan fungsi kerrnel polinomial didapatkan akurasi sebesar 90%. Dari penelitian ini juga didapatkan bahwa belum ditemukan system call yang dengan signifikan dapat mencirikan sebuah malware. Kelemahan dari penelitian ini adalah metode yang digunakan tidak dapat mengidentifikasi aplikasi yang belum pernah dilakukan pengamatannya dan dilatih dengan klasifikasi SVM. Terdapat juga kelemahan lain, yaitu pengamatan frekuensi pemanggilan system call hanya diperoleh dari PID pertama pada saat aplikasi Android tersebut berjalan. Walaupun demikian jika metode penelitian ini dibandingkan dengan metode signature-based, hasil dari metode ini relatif lebih baik karena metode ini mampu mengenali malware yang bersifat polimorfik.

Saran

(35)

23

DAFTAR PUSTAKA

Android. 2012. Current distribution [Internet]. [diunduh 2012 Des 6]. Tersedia pada: http:// developer.android.com/about/ dashboards/index.html.

Bergstra JA, Polse A. 2001. Register-machine based processes. Journal of the ACM. 48 (6):1207-1241.doi:10.1145/504794.504799.

Burguera I. 2011. Behavior-based malware detection system for the android platform [tesis]. Lingkoping (SE): Lingkoping University.

Byun H, Lee S. 2003. A survey on pattern applications of support vector machines. International Journal of Pattern Recognition and Artificial Intelligene 17(3): 459-486.

Cherkassky V, Mulier F. 2007. Learning from Data: Concepts, Theory, and Methods. Ed ke-2. New Jersey (US): John Wiley & Sons.

Cristianini N, Taylor JS. 2000. An Introduction to Support Vector Machine and Other Kernel-based Learning Methods. Cambridge (GB): Cambridge University Press.

Gisler H. 2008. An Interactive painting based on image selection and voice input [tesis]. Baden-Wurttemberg (DE): University of Fribourg.

IBM. 2007. Anatomy of the Linux kernel [Internet]. [diunduh 2013 April 8]. Tersedia pada: http://www.ibm.com/developerworks/linux/library/l-linux-kernel.

IDC. 2012. Android marks fourth anniversary since launch with 75.0% market share in third quarter, according to IDC [Internet]. [diunduh 2012 Nov 17]. Tersedia pada: http://www.idc.com/getdoc.jsp?containerId=prUS23771812. Idika N, Marthur AP. 2007. A Survey of Malware Detection Techniques. West

Lafayetle (US): Purdue University.

Joliffe IT. 2002. Principle Component Analysis. Berlin (GE): Springer. Kolbitsch C, Comparetti PM, Kruegel C, Kirda E, Zhou X, Wang X. 2009.

Effective and Efficient Malware Detection at the End Host. Di dalam: Kolbitsch C, Comparetti PM, editor. SSYM'09 Proceedings of the 18th conference on USENIX security symposium [Internet]; 2009 Agustus 10-14; Montreal, Kanada. Barkeley (CA): USENIX. hlm 351-366; [diunduh 2013 Feb 26]. Tersedia pada: http://www.usenix.org/event/sec09/tech/full_papers/ kolbitsch.pdf

Kramer S, Bradfield JC. 2010. A general definition of malware. Journal in Computer Virology. 6(2):105-114.

Osuna EE, Freund R, Girosi F. 1997. Support Vector Machines: Training and Applications. AI Memo 1602, Massachusetts Institute of Technology.

Smith LI. 2002. A Tutorial on Principal Component Analysis. New York (US): Cornell University.

Wang S, Mathew A, Chen Y, Ci L, Ma L, Lee J. 2009. Empirical analysis of support vector machine ensemble classifiers. Expert System with Applications 36: 6466-6476.

(36)

24

Lampiran 1 Daftar nama aplikasi yang digunakan dalam penelitian

No Sumber / Nama fail Tipe Nama

Aplikasi 1 com.rovio.new.ads-LeNa.c.apk Malware angry birds

space 6 3374D6322542D6AEC9D319DF335215E5 Malware china lot

synergy 7 189D11C33EEE3076BE3EE20033F6B06E Malware crazy

hamster 8 C05D4FF1A80F18BA9D8A86AFD88BC05D Malware ddong 9 com.christmasgame.deal.apk Malware deal and be

millionaire 10 82F5BF4509E35C3AE7172A0DD7C3ECF4 Malware es file

explorer

11 il.co.egv-3.apk Malware find and call

12 025A55C1BCBD3BE2CA03AA314CE9A4C2 Malware gold miner 13 8498984D8F9B7260FD032D6F0A2534AA Malware iDracula 14 B9E392DEE83D9596DD72B2739486062F Malware instant heart

rate 15 543E9D86DD28005342A3313BDC588009 Malware jelly

matching 16 24069021F25C1E699B5BC54DA38E7C7D Malware Katie 17 5ADE65BF5B4B73A24FA0F7DE7315C9FF Malware keji.danti 18 178BA57AAC8FB2014CDA5D0BBC9FCC3D Malware magic shop

19 com.mediawoz.gotq.apk Malware mediawoz

20 54FAD8426E03A05279223173EC7D2FE2 Malware metro 21 714136CBCE1A7BC24351B41A92A7DD08 Malware mini army 22 F8A6F3DE5255AE3C6750C256559887C5 Malware mouthOff 23 Puss.Boots.wallpapers_055038.apk Malware puss in boots

(37)

25 Lanjutan

No Sumber / Nama fail Tipe Nama

(38)
(39)
(40)

28

Lampiran 2 Algoritme program untuk mengekstrak frekuensi system call

1 Read directory;

2 While (file in directory){

3 Read file;

4 While(line in file not EOF){

5 A = Read syscall from line;

6 syscall_array[A]++;

7 }

8 Out = output_file;

10 While(syscall_array as syscall_freq){

11 syscall_freq > out;

12 }

13 Print syscall_freq > matriks.csv;

(41)

29 Lampiran 3 Algoritme program untuk mentransformasi frekuensi system call

dalam fail csv menjadi matriks

1 Read directory;

2 While (file in directory){

3 Read file;

4 While(line in file not EOF){

5 Vector = Concatenate(vector,line,” “);

6 }

7 Vector = concatenate(vector,”;\n”);

8 }

(42)

Lampiran 4 System call yang dipanggil oleh seluruh aplikasi selama pengamatan

1 access memeriksa hak akses pengguna terhadap fail 2 bind memautkan nama ke socket

3 brk mengubah ukuran segmen data 4 chmod mengubah hak akses dari fail 5 clone menciptakan child process 6 close menutup descriptor fail 7 connect memulai koneksi pada socket 8 dup menduplikasi descriptor fail 9 fcntl64 memanipulasi descriptor fail

10 fdatasync mensinkronisasi sebuah fail dengan perangkat penyimpanan 11 fork menduplikasi process

12 fstat64 mendapatkan status fail

13 fsync mensinkronisasi sebuah fail dengan perangkat penyimpanan 14 ftruncate memotong fail dengan panjang tertentu

15 getdents64 mendapatkan entri direktori 16 getegid32 mendapatkan identitas kelompok 17 geteuid32 mendapatkan identitas pengguna 18 getgid32 mendapatkan identitas kelompok 19 getpid mendapatkan identifikasi proses

20 getpriority menetapkan prioritas penjadwalan program 21 getsockname mendapatkan nama socket

22 getsockopt mendapatkan pilihan pada socket 23 gettimeofday mendapatkan waktu

24 getuid32 mendapatkan identitas pengguna 25 ioctl mengontrol perangkat

26 kill mengirim sinyal kepada proses

27 lseek mereposisi proses baca / tulis offset fail 28 lstat64 mendapatkan status fail

29 mkdir membuat direktori

30 mmap2 Memetakan fail atau perangkat ke dalam memori 31 mprotect menetapkan proteksi pada daerah memori 32 msgget mendapatkan identifier antrian pesan 33 munmap unmap file atau perangkat ke dalam memori 34 nanosleep high-resolution sleep

35 open membuka dan mungkin membuat fail atau perangkat 36 pipe membuat pipe

(43)

31 Lanjutan

No. System call

Nama System

Call Deskripsi System Call

39 Readlink membaca nilai dari symbolic link 40 recv menerima pesan dari socket 41 recvfrom menerima pesan dari socket 42 rename mengubah nama atau lokasi fail 43 rmdir menghapus direktori

44 sched_yield menghasilkan prosesor

45 select mensinkronisasi I / O multi-plexing 46 semget mendapatkan set identifier semafor 47 semop operasi semafor

48 setpriority menetapkan prioritas penjadwalan program 49 setsockopt mengatur pilihan pada socket

50 shutdown menutup bagian dari koneksi full-duplex 51 sigprocmask memeriksa dan mengubah sinyal yang diblokir 52 socket membuat titik akhir untuk komunikasi

53 socketpair menciptakan sepasang socket yang terhubung 54 stat64 mendapatkan status fail

55 unlink menghapus nama dan mungkin fail yang mengacu pada nama tersebut

(44)

32

Lampiran 5 Nilai matriks hasil pengamatan pertama

(45)
(46)
(47)
(48)
(49)
(50)

38 Lanjutan

No 46 47 48 49 50 51 52 53 54 55 56 57

51 2391 0 0 0 0 202 0 0 3 3 460 22

52 33661 2 0 0 0 103 0 0 49 17 908 38

53 8948 21 0 0 0 744 0 0 198 9 2214 212

54 154765 23 0 0 0 60 0 0 1 0 3899 22

55 13328 4 0 0 0 254 0 0 32 12 11724 1315

56 3152 0 0 0 0 100 0 0 12 0 2300 30

57 13797 42 0 0 0 2987 0 0 211 21 2079 186

58 30424 8 0 0 0 171 0 0 41 10 296 86

59 26010 3 0 0 0 71 0 0 20 1 2838 10

60 11177 21 0 0 0 1026 0 0 245 19 1711 463

61 2151 0 0 0 0 18 0 0 184 8 1555 67

62 30180 8 0 0 0 36019 0 0 76 11 694 597 63 29044 14 0 0 0 322 0 0 27 1 1677 73

64 2137 0 0 0 0 259 0 0 0 0 1231 30

65 8088 47 0 0 0 2295 0 0 107 50 2262 143

66 1309 5 0 0 0 263 0 0 63 3 442 67

67 6742 11 0 0 0 170 0 0 11 5 6221 46

68 4470 1 0 0 0 101 0 0 8 0 2799 21

69 36029 7 0 0 0 339 0 0 0 0 865 22

70 4096 19 0 0 0 1023 0 0 3695 18 6959 193

71 5148 41 0 4 0 956 2 0 87 8 1056 87

72 169915 1 0 0 0 8 0 0 0 0 417 13

73 18460 9 0 0 0 973 0 0 265 6 483 225 74 12082 7 0 0 0 1372 0 0 280 37 232 122 75 10182 33 0 0 0 1486 0 0 287 13 1816 116 76 8577 11 0 0 0 260 0 0 153 35 565 27 77 5471 23 0 0 0 609 0 0 28 18 499 134 78 3897 41 0 0 0 1189 0 0 174 30 697 96 79 6247 44 0 0 0 1319 0 0 494 49 1071 136

(51)

39 Lampiran 6 Nilai matriks hasil pengamatan kedua

(52)
(53)
(54)
(55)
(56)
(57)

45 Lanjutan

No 44 45 46 47 48 49 50 51 52 53 54 55 56 57

51 0 0 1778 0 0 0 0 215 0 0 0 0 459 14

52 0 0 34083 2 0 0 0 103 0 0 50 21 2238 41 53 16 0 9234 25 0 0 0 755 0 0 242 1 2168 350

54 0 0 166368 2 0 0 0 56 0 0 0 0 5187 9

55 1 0 11261 4 0 0 0 222 0 0 31 11 10194 1156

56 1 0 3004 0 0 0 0 37 0 0 56 0 2459 29

57 1 0 10946 25 0 0 0 1553 0 0 115 4 1837 154 58 0 0 28124 6 0 0 0 123 0 0 42 11 283 108

59 1 0 25773 4 0 0 0 99 0 0 3 1 1101 16

60 3 0 9603 5 0 0 0 731 0 1 223 2 998 283

61 2 0 2265 0 0 0 0 20 0 0 189 0 1495 63

62 3 0 26463 12 0 0 0 32722 0 0 173 10 651 508

63 0 0 28582 1 0 0 0 0 0 0 1 1 2172 17

64 0 0 3428 0 0 0 0 84 0 0 0 0 3202 10

65 2 0 6201 39 0 0 0 1217 0 0 89 36 2010 90

66 0 0 1185 5 0 0 0 257 0 0 63 3 376 67

67 0 0 10244 1 0 0 0 72 0 0 7 2 9912 26

68 0 0 4939 1 0 0 0 18 0 0 8 0 3191 23

69 0 0 32858 49 0 0 0 958 0 0 21 1 428 103 70 0 0 4510 20 0 0 0 377 0 0 184 17 233 133 71 0 0 12753 29 0 0 0 1661 0 0 39 0 1403 197

72 1 0 149695 1 0 0 0 28 0 0 5 0 137 15

73 1 0 19299 9 0 0 0 832 0 0 229 0 1095 179 74 4 0 11110 1 0 0 0 1198 0 0 386 61 402 132 75 0 0 10722 35 0 0 0 1677 0 0 235 8 1395 143 76 1 0 7290 69 0 0 0 1749 0 0 155 4 822 200 77 0 0 5390 31 0 0 0 745 0 0 77 25 1131 243 78 1 0 3017 32 0 0 0 943 0 0 96 32 784 157 79 0 0 6023 35 0 0 0 1205 0 0 189 20 1324 75

(58)

46

Lampiran 7 Nilai matriks hasil pengamatan ketiga

(59)
(60)
(61)
(62)
(63)
(64)
(65)
(66)

54

RIWAYAT HIDUP

Gambar

Gambar 1  Proses sebuah aplikasi mengirimkan permintaan kepada
Gambar 3. ϕ
Gambar 7  Perintah untuk memulai program ADB
Gambar 8  Contoh PID dari aplikasi yang akan diamati
+6

Referensi

Dokumen terkait

Kesimpulan: kualitas hunian bukanlah menjadi faktor utama yang berhubungan dengan kondisi kesehatan psikososial lansia, akan tetapi diperlukan perhatian yang spesifik

 Komoditas yang memberikan andil terjadinya Inflasi adalah kenaikan tarif kereta api, daging ayam ras, kasur, emas perhiasan, beras, wortel, semen, susu bubuk, cumi-cumi,

Variasi fonetis bahasa Melayu Bali sangat variatif. Variasi fonetis banyak terjadi pada vokal /i/ dan vokal /u/. Adapun variasi fonetis kosakata dasar bahasa Melayu Bali adalah

Pekerjaan mobilisasi dimasukkan ke dalam salah satu lingkup kegiatan dengan bobot terbesar, dan pekerjaan mobilisasi untuk kegiatan lainnya sudah termasuk didalamnya.. Harga satuan

Berdasarkan hasil pengolahan analisis data dan pembahasan yang diperoleh dari penelitian yang dilakukan mengenai “Pengaruh Model Pembelajaran Kooperatif Tipe Teams

Kesehatan atau kondisi keuangan bank dan non keuangan bank merupakan kepentingan semua pihak terkait, baik pemilik, pengelola (manajemen) bank, masyarakat pengguna jasa bank,

Bantuan atau subsidi yang berjumlah kecil berskala nasional ditiadakan lalu diganti dengan program bantuan yang jumlahnya besar meskipun hanya baru beberapa madrasah

Hasil penelitian: karakteristik sosial ekonomi petani yang memiliki hubungan positif dengan pendapatan usahatani padi sawah sistem tanam legowo 4:1 adalah umur, lamanya