BAB II LANDASAN TEORIeprints.umm.ac.id/47758/3/BAB II.pdf · 5 BAB II LANDASAN TEORI. 2.1. Portable...
Transcript of BAB II LANDASAN TEORIeprints.umm.ac.id/47758/3/BAB II.pdf · 5 BAB II LANDASAN TEORI. 2.1. Portable...
5
BAB II
LANDASAN TEORI
2.1. Portable Document Format (PDF)
PDF merupakan file dokumen yang banyak dipakai pada berbagai
perangkat dan platform karena kemudahan dalam pemakaian serta dapat
menyertakan file multimedia, akses langsung URL serta komunikasi HTTP. File
PDF memiliki standar publikasi ISO 32000-1:2008 yang dipakai sebagai referensi
pada penelitian ini. Sintaksisnya terdiri dari 4 elemen utama yaitu [8]:
1. Objects
Objects adalah dasar dalam pembuatan blok pada pdf.
2. File Structure
File Structure menentukan bagaimana objects dirubah dan ditata dalam
file pdf
3. Document Structure
Document Structure menentukan objects terorganisir secara logis untuk
mewakili konten (teks, grafik, dan lain-lain).
4. Content Streams
Content Streams menyediakan cara pengefisiensi penyimpanan berbagai
bagian dari konten dokumen.
Gambar 2.1. Representasi Struktur PDF [13]
6
Pada Gambar 2.1 dapat dijelaskan pada bagian kiri adalah tata letak fisik
struktur PDF, pada bagian tengah adalah struktur logikanya, dan pada bagian
kanan adalah jumlah set jalur struktural. Struktur dasar dari pdf memiliki 4 bagian
yaitu [7]:
1. Header
Baris pertama adalah header yaitu informasi tentang nomor versi
dari spesifikasi PDF yang digunakan, berikut adalah contoh sintak xxd
dari header:
2. Body
Pada baris body berisikan beberapa tipe objek yaitu text stream,
image, file multimedia lainnya dan lain-lain. Dalam artian pada bagian
ini berisikan apapun yang akan ditampilkan pada file PDF.
3. ‘xref’ Table
Tabel xref berisikan tentang informasi dari blok referensi yang
dipakai sebagai penghubung antar blok. Berikut adalah contoh dari
penulisan tabel xref:
# xxd temp.pdf | head –n 1 0000000: 2550 4446 2d31 2e33 0a25 c4e5 f2e5 eba7 %PDF-1.3%.....
xref 01 00000000023 65535 f 31 0000025324 00000 n 21 4 0000025518 00002 n 0000025632 00000 n 00000000024 00001 f 0000000000 00001 f 36 1 0000026900 00000 n
7
4. Trailer
Trailer menentukan bagaimana aplikasi pembaca dokumen PDF
harus menemukan tabel referensi silang dan objek khusus lainnya. Semua
aplikasi pembaca PDF harus memulai membaca dari akhir bagian file.
Berikut adalah contoh dari trailer:
Dibawah ini adalah contoh hasil ekstraksi dari struktur PDF:
Gambar 2.2. Hasil Ekstraksi Struktur PDF
2.1.1. Malicious PDF
Seiring dengan banyaknya pemakaian file berformat PDF maka banyak
pula penyebaran malware melalui PDF. File PDF yang telah terjangkit malware,
dapat secara langsung mengganggu kinerja dari suatu sistem jika file tersebut
dijalankan. Dampak dari hal tersebut sering kali tidak disadari oleh pengguna
awam. Dengan beberapa faktor diatas maka tidak dapat dianggap sepele agar
penyebaran dapat dicegah.
Dalam kasus ini dokumen PDF memiliki beberapa cara untuk
menanamkan data didalam file dokumen PDF. Sebagai contoh penyalahgunaan
dalam penanaman kode yang berbahaya adalah terdapat aliran konten “content
Trailer << /Size 22 /Root 2 0 R /Info 1 0 R >> Startxref 24212 %%EOF
8
stream” yang merujuk tidak kepada isi atau konten dari dokumen yang asli
melainkan merujuk pada tautan video, audio, maupun URL. Hal ini juga dapat
didukung oleh JavaScript sebagai teknik untuk penyebaran kode berbahaya.
Berikut adalah contoh teknik yang digunakan dalam penyebaran malware [5]:
1. Menanamkan aplikasi seperti aplikasi font, aplikasi flash atau JavaScript
yang dapat diakses melalui file PDF. Fitur ini juga dapat digunakan oleh
pengguna yang berbahaya untuk menyamarkan serangan dan tindakan
berbahaya lainnya. Saat pengguna membuka file PDF, PDF Reader juga
dapat menampilkan aplikasi flash secara langsung. Selain menanamkan
beberapa file diatas, juga memungkinkan dapat ditanamkan virus, worm, dan
juga kode berbahaya lainnya.
2. Eksploitasi Kerentanan sistem, ini berarti penyerang mengeksekusi kode
shell selayaknya pengguna resmi dari file PDF tersebut. Eksploitasi file PDF
memiliki dua jenis:
Berbasis JavaScript
Metode berbasis JavaScript lebih umum dan populer digunakan,
karena PDF berbasis JavaScript yang tertanam malware biasanya
hanya berupa teks dan lebih mudah untuk melewati kontrol
keamanan.
Berbasis Non-JavaScript
Metode ini juga biasa disebut metode berbasis flash yaitu
penanaman flash pada file PDF.
Dibawah ini adalah contoh penanaman JavaScript pada file PDF:
2 0 obj << /Type /Action /S /JavaScript /JS {app.a:ert({cMsg:’PDF JavaScript’ ,cTitle:})) >> endobj 3 0 obj << /Type /Catalog /Pages 1 0 R /OpenAction 2 0 R >>
9
File PDF memiliki fitur yang sangat penting yaitu dapat dimodifikasi secara
keseluruhan, hal ini juga berarti sangat berbahaya apabila disalahgunakan
sebagaimana penjelasan diatas. Setiap pengguna yang tidak sah dapat memulihkan
beberapa informasi rahasia yang tersembunyi pada file PDF. Berikut adalah
gambaran dari file PDF yang telah dimodifikasi:
Gambar 2.3. Kiri adalah struktur file PDF asli, kanan adalah struktur file PDF yang
sudah dimodifikasi [2].
2.1.2. Fitur Malicious PDF
Dalam penelitian ini dibutuhkan fitur-fitur yang mendukung
pengidentifikasian file PDF malware. Fitur tersebut didapat dari ekstraksi
menggunakan program Pdfid.py. Fitur-fitur tersebut dibagi antara 2 kelompok,
antara lain[4]:
10
1. Berdasarkan kelengkapan struktur
a) Obj dan EndObj
Kedua fitur ini seharusnya berjumlah sama untuk membuktikan
bahwa file tersusun sempurna.
b) Stream dan Endstream
Kedua fitur ini sama seperti Obj dan Endobj yang seharusnya
berjumlah sama.
c) Xref dan StartXref
Untuk kedua fitur ini haruslah ada nilainya unutk menandakan
bahwa file aman selain harus berjumlah sama.
d) Trailer
Apabila dalam fitur Trailer tidak ditemukan jumlah nilainya
menandakan file tidak sempurna dan berbahaya.
2. Berdasarkan fitur malicious PDF
a) Page
Hampir semua file PDF berbahaya hanya memiliki 1 halaman
bahkah tidak ada halaman dalam suatu file menjadikan fitur ini
sebagai patokan yang cukup tinggi untuk pengklasifikasian.
b) Encrypt
Untuk menyembunyikan kode yang berbahaya pada suatu file
ada beberapa cara salah satunya dengan cara dienkripsi, maka
ketika suatu file dienkripsi kemungkinan terdapat kode
berbahaya yang ditanamkan.
c) ObjStm
Object Stream pada suatu file dapat digunakan untuk
menyembunyikan tanda yang terkait dengan file PDF
berbahaya.
d) JS
Dalam beberapa contoh penyerangan dapat juga menggunakan
Java Script yang ditanamkan pada file PDF. Nilai fitur JS
adalah jumlah pernyataan Java Script satu baris dalam suatu
PDF.
11
e) JavaScript
Nilai fitur JavaScript adalah jumlah blok pernyataan Java
Script dalam suatu PDF.
f) AA
AA merupakan fitur yang menandakan bahwa ketika file PDF
dijalankan maka dibutuhkan respon user untuk menjalankan
suatu perintah contohnya panel dengan tombol atau dengan link
URL.
g) OpenAction
Untuk fitur ini ada penggabungan dengan Java Script, ketika
file PDF dibuka maka Java Script langsung berjalan tanpa ada
respon dari user.
h) Acroform
Acroform dapat berisikan Java Script yang dijalankan tanpa
respon user ketika PDF dibuka.
i) JBIG2Decode
Fitur ini menandakan berapa kali filter JBIG2Decode
digunakan dalam suatu file. Filter ini digunakan dalam
serangan zero day pada file PDF.
j) RichMedia
RichMedia menandakan berapa jumlah blok konten Flash yang
ditanamkan pada file PDF.
k) Launch
Berapa banyak tempat dilakukannya upaya untuk menjalankan
sebuah program / script pada file PDF.
l) EmbeddedFile
Fitur EmbeddedFile menandakan berapa banyak file yang
ditanamkan pada PDF.
m) XFA
Fitur XFA menandakan berapa banyak XML digunakan pada
file PDF.
n) Colors>224
12
Hasil deteksi jumlah nilai /Colors melebihi dari 224
pada file
PDF.
Berdasarkan fitur-fitur diatas dapat diambil nilai dari metadata sebagai
bahan pembuatan dataset, berikut adalah contoh proses ekstraksi metadata:
1. Proses pertama adalah pengumpulan file, dibawah ini adalah
beberapa contoh file PDF yang terjangkit malware.
Gambar 2.4. Contoh File PDF yang terjangkit malware.
2. Setelah file PDF terkumpul maka dapat dilakukan ekstraksi
menggunakan program Pdfid.py.
Gambar 2.5. Perintah ekstraksi file PDF menggunakan pdfid.py.
3. Hasil yang didapat dari ekstraksi metadata menggunakan pdfid.py
adalah nilai dari fitur yang dipakai sebagai pembuatan dataset.
13
Gambar 2.6. Hasil ekstraksi file PDF menggunakan pdfid.py.
2.2. Klasifikasi
Dalam identifikasi file PDF malware pada penelitian ini menggunakan
metode klasifikasi file berdasarkan fitur-fitur PDF malware. Teknik klasifikasi
yang dipakai adalah menggunakan Machine Learning, dalam pembuatan Machine
Learning dapat menggunakan tool salah satu contohnya adalah Weka. Proses
klasifikasi juga membutuhkan data latih serta data uji yang memiliki total jumlah
500 data. Metode klasifikasi yang dipakai ada 2 macam yaitu Support Vector
Machine dan Random Forest.
2.2.1. Support Vector Machine (SVM)
Gambar 2.7. Ilustrasi Penentuan Hyperplane
Support Vector adalah data yang paling berdekatan dari kedua kelas yang
berbeda sebagaimana dijelaskan pada Gambar 2.7. Disini didapat 2 Support
Vector dari kelas a dan kelas b, bisa disebut S1 dan S2. Melihat dari posisi data
tersebut kita dapat menentukan nilai masing-masing Support Vector:
14
( ) (
). Setelah posisi Support Vector ditemukan dapat ditentukan
dengan menambahkan nilai bias (b) 1: ( ) (
). Selanjutnya
ditambahkan 2 parameter berdasarkan jumlah S yaitu untuk
mendeskripsikan kelas[8][9]:
(karena Support Vector 1 berada pada kelas -1) (1)
(karena Support Vector 1 berada pada kelas +1) (2)
Berikut adalah penjelasan rumus diatas:
1. adalah nilai dari sudut garis.
2. adalah nilai bias dari subset yang mewakili suatu kelas.
Dari persamaan diatas dapat dimasukan nilai dari masing-masing bias:
( ) (
) (
) (
)
( ) (
) (
) (
)
2 persamaan diatas didapat nilai , selanjutkan
dapat dihitung letak dari hyperplane dengan rumus [10] [11]:
∑ (3)
Berikut adalah penjelasan rumus diatas:
1. adalah nilai bias dari persamaan garis.
2. adalah nilai dari sudut garis.
3. adalah nilai bias dari subset yang mewakili suatu kelas.
Subtitusi nilai yang didapat kedalam rumus tersebut:
( ) (
) ( ) (
) ( ) (
)
(
) (
) (
)
15
Untuk menentukan garis hyperplane dihitung menggunakan rumus persamaan
garis[10]:
(4)
Berikut adalah penjelasan rumus diatas:
1. adalah nilai dari poros garis y.
2. adalah nilai dari persamaan garis.
3. adalah nilai dari poros garis x.
4. adalah nilai bias.
(
)
2.2.2. Random Forest
Random Decision Forest merupakan kombinasi dari banyak pohon
keputusan, dan keakuratan algoritma ini tergantung dengan individu pohon
keputusan tersebut [3]. Secara sederhana, algoritma pembentukan Random Forest
sebagaimana dijelaskan dibawah ini:
Gambar 2.8. Pembagian secara acak dari Tabel Data Besar
Dari Gambar 2.8 dijelaskan sejumlah data besar yang akan digunakan
sebagai data klasifikasi, dan dibagi secara acak untuk dijadikan Subset Random
Forest. Didapatkan 3 subset tree yang diambil secara acak sebagai pembentukan
Random Forest:
[
]
[
]
[
]
16
Jumlah daun dari tree bergantung dari jumlah fitur yang akan dipakai,
sebagai contoh digunakan 4 fitur sebagaimana yg ada dalam Gambar 2.8. Setiap
Subset (S) digunakan untuk pembentukan 1 tree.
2.3. Metode Pengujian
Setelah proses klasifikasi dari metode Support Vector Machine dan
Random Forest didapat hasil klasifikasi dari file yang tertanam malware dan
tidak. Setelah itu dicari akurasi untuk masing-masing klasifikasi. Rumus
perhitungan yang digunakan untuk menghitung akurasi hasil klasifikasi
menggunakan Confusion Matrix [6] yang terdiri dari:
1. Accuracy (AC)
Accuracy adalah perbandingan kasus yang diidentifikasi benar
dengan jumlah semua kasus.
(5)
2. Recall atau True positive rate (TPR)
Recall adalah proporsi kasus positif yang diidentifikasi dengan
benar.
(6)
3. False positive rate (FPR)
False positive rate adalah kasus positif yang diidentifikasi dengan
salah.
(7)
4. True negative rate (TNR)
True negative rate adalah kasus negatif yang diidentifikasi dengan
benar.
(8)
5. False negative rate (FNR)
False negative rate adalah kasus negatif yang diidentifikasi dengan
salah.
(9)
17
6. Precision (P)
Precision adalah proporsi kasus dengan hasil positif yang benar.
(10)
Dibawah ini adalah penjelasan dari nilai rumus-rumus diatas:
1. AC adalah nilai dari accuracy
2. TPR adalah nilai dari rata-rata hasil benar dari prediksi positif.
3. FPR adalah nilai dari rata-rata hasil salah dari prediksi positif.
4. TNR adalah nilai dari rata-rata hasil benar dari prediksi negatif.
5. FNR adalah nilai rata-rata hasil salah dari prediksi negatif.
6. P adalah nilai dari precision.
7. TP adalah nilai benar dari prediksi positif.
8. FP adalah nilai salah dari prediksi positif.
9. TN adalah nilai benar dari prediksi negatif.
10. FN adalah nilai salah dari prediksi negatif.
Tabel 2.1. Tabel Confusion Matrix
Prediksi
Positif Negatif
Aktual Positif TP FN
Negatif FP TN