BAB II LANDASAN TEORI 2.1 Intrusion Detection System Intrusion Detection System (IDS) adalah komponen penting sistem pertahanan untuk melindungi komputer dan jaringan dari aksi penyalahgunaan. Tujuan dari IDS adalah mengkarakteristikkan gejala atau kejadian yang menunjukkan terjadinya intrusi, sehingga dapat mendeteksi semua intrusi yang ada tanpa adanya kesalahan mendeteksi kejadian normal sebagai intrusi [MCH00]. Motivasi dari penggunaan IDS dapat bervariasi seperti mengumpulkan informasi forensik sehingga mampu mengetahui penyusup, men-triger aksi tertentu untuk melindungi sistem ketika terjadi serangan, atau digunakan sebagai alat untuk mengidentifikasi dan memperbaiki kelemahan yang terdapat pada sistem. Pendeteksian intrusi merupakan proses pemantauan dan analisis kejadian yang terjadi pada sebuah komputer dan atau jaringan untuk mendeteksi tanda-tanda terjadinya permasalahan security. Umumnya, sebuah IDS memberi notifikasi kepada analis (system administrator) ketika terdapat kemungkinan terjadinya intrusi.
Adapun
tantangan yang dihadapi oleh IDS [LAZ03] adalah sebagai berikut: 1. Ukuran data yang sangat besar. 2. Data berdimensi tinggi. 3. Data yang berdekatan waktunya umumnya berhubungan. 4. Distribusi kelas yang tidak seimbang (data intrusi umumnya sangat jarang) 5. Memerlukan preprocessing dari data yang dikumpulkan sehingga dapat dianalisis. Misalnya, untuk mengambil informasi dasar mengani alamat asal tujuan data koneksi yang telah dikumpulkan dengan memeriksa bagian header paket data, sampai memeriksa bagian pesan dari paket data untuk mengatahui informasi lebih lanjut seperti jumlah usaha login yang gagal. 6. High performance computing sangat penting terutama untuk IDS yang online, scalable dan distributed.
II-1
II-2
2.1.1 Arsitektur Arsitektur IDS dapat dilihat pada gambar II-1. Terdapat tiga komponen utama dari IDS yaitu: 1. Sensor, berfungsi untuk mengumpulkan data dan meneruskannya kepada analyser. Contoh data yang dikumpulkan adalah paket data pada jaringan, log file, system call trace. 2. Analyser, berfungsi untuk menerima masukan dari satu atau lebih sensor atau dari analyzer yang lain. Analyser selanjutnya akan menganalisis data yang diterima kemudian menentukan apakah telah terjadi intrusi atau tidak. 3. Antarmuka berfungsi untuk memungkinkan pengguna melihat keluaran dari sistem atau mengontrol perilaku sistem. 4.
Sensor 1 Sensor 2
Sensor n
Sensor events
ANALYSER
Network
Classifier
Human analyst
Clustering
Gambar II-1 Arsitektur IDS [HAN06]
2.1.2 Intrusi Intrusi adalah semua aksi yang dapat membahayakan integritas, kerahasiaan dan ketersediaan sebuah resource [MUK02]. Secara umum, ada beberapa cara penyerang dapat melakukan intrusi yaitu pendekatan sosial, eksploitasi kelemahan(bug) pada program, penyalahgunaan fitur sistem, kesalahan konfigurasi, masquerading [KEN99]. Ada banyak jenis dan variasi intrusi pada jaringan komputer. Pada DARPA 98 intrusion detection evaluation data, yang banyak digunakan untuk mengevaluasi sistem pendeteksi intrusi, intrusi dapat dikelompokkan ke dalam 4 kategori utama yaitu Denial of Service, User to Root, Remote to User, dan Probes [KEN99]. 1. Denial of Service Denial of Service (DOS) adalah jenis serangan dimana penyerang mengakibatkan terjadinya komputasi atau penggunaan memori yang menghabiskan resource yang tersedia sehingga sebuah mesin tidak dapat menangani atau menolak request dari pengguna.
II-3
2. User to Root User to Root adalah jenis serangan dimana penyerang mulai mengakses sebuah sistem dengan menggunakan user account yang terdapat pada sistem tersebut. User account ini biasanya diperoleh dengan cara sniffing password, serangan kamus, atau social engineering. 3. Remote To User Remote to User adalah serangan yang terjadi ketika penyerang dapat mengirim paket data ke sebuah mesin lewat jaringan (penyerang tidak memiliki user account pada mesin tersebut), kemudian mengeksploitasi beberapa kelemahan untuk mendapatkan akses lokal sebagai pengguna pada mesin tersebut. 4. Probes Probes merupakan aksi penyusup untuk memperoleh informasi atau mengetahui kelemahan pada sistem dengan cara men-scan jaringan komputer. Dengan mengetahui pemetaan mesin dan service yang tesedia pada jaringan, maka penyusup dapat menggunakan informasi ini untuk mencari kelemahan pada sistem.
2.1.3 Network-based IDS Berdasarkan sumber datanya IDS dibedakan menjadi Network-based IDS dan Hostbased IDS. Network-based IDS memeriksa data yang ditransmisikan melalui jaringan sehingga dapat memonitor beberapa host secara bersamaan. Akan tetapi, dengan semakin meningkatnya kecepatan transmisi data pada jaringan maka performansi dari Network-based IDS dapat menurun. Meskipun demikian, IDS jenis ini sangat populer karena mudah di-deploy dan dikelola sebagai komponen yang berdiri sendiri dan umumnya hampir tidak memiliki dampak terhadap performansi sistem yang dilindungi. Sebaliknya, Host-based IDS beroperasi pada sistem yang dilindungi dan mendeteksi intrusi dengan cara memeriksa data audit atau data log misalnya system call trace atau log aplikasi. Oleh karena itu, IDS jenis ini mampu mendeteksi intrusi yang spesifik terhadap aplikasi tertentu tetapi menggunakan resource pada host tersebut.
II-4
Data yang ditransmisikan melalui jaringan dikirim sebagai kumpulan potongan pesan yang disebut paket. Oleh karena itu, Network-based IDS memonitor paket-paket ini untuk mendeteksi adanya intrusi. Untuk mengumpulkan data yang ditransmisikan melalui jaringan pada UNIX dapat digunakan kakas TCPdump atau variannya Windump untuk sistem operasi Windows. Dengan menggunakan kakas ini, dapat diset data apa saja yang ingin dikumpulkan. Selain itu, untuk membatasi volume data yang terkumpul, biasanya hanya bagian header dari datagram yang dikumpulkan dengan ukuran default. Bagian header ini dapat dilihat pada gambar II-2 dan umumnya memiliki ukuran 68 byte, sedangkan contoh output dari TCPdump dapat dilihat pada gambar II-3.
Gambar II-2 Contoh packet 09:32:43:910000 nmap.edu.1173 > dns.net.21: S 62697789:62697789(0) win 512 Gambar II-3 Contoh output TCPdump 09:32:43:910000 merupakan timestamp dalam format (jam:menit:detik:bagian dari
detik). nmap.edu
adalah host asal dan 1173 adalah nomor port asal. Tanda >
menunjukkan arah aliran data dari asal ke tujuan. dns.net menunjukkan host tujuan dan 21 adalah nomor port tujuan. S adalah TCP flag (SYN flag).
62697789:62697789(0)
merupakan [initial TCP sequence number : ending TCP sequence number(jumlah data dlm byte)], sedangkan win 512 adalah ukuran buffer pada nmap.edu untuk koneksi ini. Ada beberapa protokol yang digunakan untuk transmisi paket melalui jaringan yaitu TCP (Transport Control protocol), UDP(User Datagram Protocol) dan ICMP (Internet Control Message Protocol).
Pada data DARPA 98, terdapat data-data
koneksi yang menggunakan ketiga protokol ini. 2.1.4 Pendeteksian Intrusi dengan Data Mining Pendeteksian intrusi dengan data mining dilakukan melalui outlier analysis. Pada dataset, sering kali terdapat data yang tidak sesuai dengan general behaviour atau
II-5
model data. Data seperti ini berbeda dan tidak konsisten dengan data yang lain dan disebut dengan outlier. Outlier mining dapat dipandang dalam dua bagian permasalahan yaitu mendefinisikan data yang dapat dianggap tidak konsisten dan bagaimana cara yang efisien untuk mining outlier yang sudah didefenisikan. Oleh karena itu pendeteksian intrusi sering juga dipandang sebagai pendeteksian outlier. Menurut [HAN06], terdapat beberapa alasan mengapa data mining dapat digunakan untuk mendeteksi intrusi yaitu: 1. Data mining menerapkan algoritma tertentu untuk mengekstrak pattern dari data 2. Aktivitas normal maupun intrusi meninggalkan jejak (evidence) pada data yang diaudit. 3. Dari sudut pandang data, pendeteksian intrusi merupakan proses analisis data. 4. Data mining sudah berhasil diaplikasikan pada domain aplikasi terkait seperti fraud detection dan fault/alarm management 5. Proses pembelajaran dapat dilakukan terhadap data traffic. Dengan pendekatan supervised learning melalui pembelajaran dapat dibangun model dari data intrusi yang sudah pernah terjadi. Dengan pendekatan unsupervised learning proses pembelajaran dapat mengidentifikasi aktivitas-aktivitas yang mencurigakan. 6. Data mining dapat digunakan untuk mengubah atau me-maintain model terhadap data yang bersifat dinamis. Contoh data yang akan di-mining untuk pendeteksian intrusi dapat dilihat pada gambar II-4. Data yang digunakan umumnya merupakan data koneksi jaringan dalam bentuk TCPDump. Data ini merupakan data mentah yang masih harus dipreprocess terlebih dahulu menjadi connection records. Untuk dapat memperoleh atribut-atribut koneksi data ke jaringan dapat digunakan perangkat lunak TCPtrace seperti yang digunakan pada [LAZ03]. Teknik data mining yang dapat diterapkan dalam pendeteksian intrusi dapat berupa supervised learning maupun unsupervised learning. Teknik supervised learning memerlukan dataset yang diberi label data normal atau data intrusi sesuai dengan jenisnya. Namun, dataset yang memiliki label cukup sulit untuk diperoleh dalam aplikasi yang sebenarnya. Selain itu, sulit untuk memastikan apakah semua label yang telah diberikan mewakili semua jenis intrusi. Oleh karena itu, unsupervised learning
II-6
juga banyak digunakan, tetapi pada teknik ini intrusi yang dideteksi tidak diketahui jenisnya seperti pada supervised learning.
Gambar II-4 Pemrosesan data koneksi jaringan dengan data mining [HAN06]
Berdasarkan metode yang digunakan, pendeteksian intrusi dapat dibagi menjadi dua kategori yaitu misuse detection (signature-based) dan anomaly detection (noise characterization). Kedua metode ini memiliki kelebihan dan kekurangan. Dalam pendekatan misuse detection yang menggunakan teknik data mining, pendeteksian intrusi dilakukan dengan cara membuat model data intrusi dari data set yang sudah diberi label intrusi. Hal ini berbeda dengan pendekatan misuse detection yang menggunakan basis data untuk menyimpan signature dari intrusi yang diketahui secara manual. Perbedaannya, dengan data mining, model signature (pattern) dari intrusi dibangun secara otomatis lewat pelatihan. Selanjutnya, model dari hasil pelatihan dapat digunakan untuk mendeteksi intrusi. Jadi teknik klasifikasi dalam pendeteksian intrusi merupakan pendekatan misuse detection. Kelebihan utama dari pendekatan ini adalah mampu mendeteksi intrusi yang sudah diketahui secara akurat, tetapi tidak dapat mendeteksi jenis intrusi yang belum diketahui (benar-benar baru dan belum pernah dilihat sebelumnya). Dalam pendekatan yang kedua yaitu anomaly detection, deteksi intrusi dilakukan dengan cara membuat model dari data normal, kemudian mendeteksi deviasi antara
II-7
model normal dengan data yang diobservasi. Kelebihan dari anomaly detection adalah dapat mendeteksi intrusi jenis baru sebagai deviasi dari data normal. Akan tetapi, intrusi yang dideteksi dengan metode ini tidak dapat diketahui jenisnya seperti pada misuse detection dan cenderung menghasilkan false positive yang tinggi. Anomaly detection dapat diimplementasikan dalam bentuk supervised anomaly detection atau unsupervised anomaly detection. Dalam pendekatan yang pertama, digunakan data pelatihan yang hanya mengandung data normal, sedangkan pada pendekatan kedua tidak diketahui informasi apapun dari data pelatihan. Pendekatan kedua juga banyak diteliti karena jika data pelatihan sangat besar maka akan sulit memastikan semua data tersebut adalah data normal.
2.2
Support Vector Machine
Support Vector Machine (SVM) adalah sistem pembelajaran yang menggunakan ruang hipotesis berupa fungsi-fungsi linier dalam sebuah ruang fitur (feature space) berdimensi tinggi, dilatih dengan algoritma pembelajaran yang didasarkan pada teori optimasi dengan mengimplementasikan inductive bias yang berasal dari teori pembelajaran statistik [CHR00]. Teori yang mendasari SVM sendiri sudah berkembang sejak 1960-an, tetapi baru diperkenalkan oleh Vapnik, Boser dan Guyon pada tahun 1992 dan sejak itu SVM berkembang dengan pesat. SVM adalah salah satu teknik yang relatif baru dibandingkan dengan teknik lain, tetapi memiliki performansi yang lebih baik di berbagai bidang aplikasi seperti bioinformatics, pengenalan tulisan tangan, klasifikasi teks dan lain sebagainya [CHR01]. Proses pembelajaran pada SVM bertujuan untuk mendapatkan hipotesis berupa bidang pemisah terbaik yang tidak hanya meminimalkan empirical risk yaitu rata-rata error pada data pelatihan, tetapi juga memiliki generalisasi yang baik. Generalisasi adalah kemampuan sebuah hipotesis untuk mengklasifikasikan data yang tidak terdapat dalam data pelatihan dengan benar. Untuk menjamin generalisasi ini, SVM bekerja berdasarkan prinsip Structural Risk Minimization (SRM). Penjelasan lebih lanjut mengenai SRM dapat dilihat pada lampiran B.
II-8
2.2.1 SVM pada Linearly Separable Data Linearly separable data merupakan data yang dapat dipisahkan secara linier. Misalkan {x1 ,..., x n }adalah dataset dan y i ∈ {+ 1,−1} adalah label kelas dari data xi.. Pada gambar II-5 dapat dilihat berbagai alternatif bidang pemisah yang dapat memisahkan semua data set sesuai dengan kelasnya. Namun, bidang pemisah terbaik tidak hanya dapat memisahkan data tetapi juga memiliki margin paling besar.
Support Vector
m
Class 2
Kelas 2
−b w
Class 1
Bidang pembatas kelas 2: xi . w+b = 1
Kelas 1
Bidang pemisah: xi . w+b = 0
Bidang pembatas kelas 1: xi . w+b = -1
Gambar II-5 Alternatif bidang pemisah (kiri) dan bidang pemisah terbaik dengan margin (m) terbesar (kanan)
Adapun data yang berada pada bidang pembatas ini disebut support vector. Dalam contoh di atas, dua kelas dapat dipisahkan oleh sepasang bidang pembatas yang sejajar. Bidang pembatas pertama membatasi kelas pertama sedangkan bidang pembatas kedua membatasi kelas kedua, sehingga diperoleh: xi .w + b ≥ +1 for y i = +1 xi .w + b ≤ −1 for y i = −1
(2.1)
w adalah normal bidang dan b adalah posisi bidang relatif terhadap pusat koordinat.
Nilai margin (jarak) antara bidang pembatas (berdasarkan rumus jarak garis ke titik pusat) adalah
1 − b − (−1 − b) 2 . Nilai margin ini dimaksimalkan dengan tetap = w w
memenuhi (2.1).
Dengan mengalikan b dan w dengan sebuah konstanta, akan
dihasilkan nilai margin yang dikalikan dengan konstanta yang sama.
Oleh karena
itu, konstrain (2.1) merupakan scaling constraint yang dapat dipenuhi dengan rescaling b dan w . Selain itu, karena Memaksimalkan
1 w
sama dengan
II-9 2
meminimumkan w dan jika kedua bidang pembatas pada (2.1) direpresentasikan dalam pertidaksamaan (2.2),
y i ( xi .w + b ) − 1 ≥ 0
(2.2)
maka pencarian bidang pemisah terbaik dengan nilai margin terbesar dapat dirumuskan menjadi masalah optimasi konstrain, yaitu 1 2 w 2 s.t y i ( xi .w + b ) − 1 ≥ 0
min
(2.3)
Persoalan ini akan lebih mudah diselesaikan jika diubah ke dalam formula lagrangian yang menggunakan lagrange multiplier. Dengan demikian permasalahan optimasi konstrain dapat diubah menjadi:
min L
p
( w, b, α ) ≡
w ,b
n 1 2 n w − ∑ α i y i ( xi .w + b) + ∑ α i 2 i =1 i =1
(2.4)
dengan tambahan konstrain, α i ≥ 0 ( nilai dari koefisien lagrange). meminimumkan Lp terhadap w dan b, maka dari
dan dari
Dengan
∂ L p ( w, b, α ) = 0 diperoleh (2.5) ∂b
∂ L p ( w, b, α ) = 0 diperoleh (2.6). ∂w n
∑α y i =1
i
(2.5)
=0
i
n
(2.6)
w = ∑ α i y i xi i =1
Vektor w sering kali bernilai besar (mungkin tak terhingga), tetapi nilai α i terhingga. Untuk itu, formula lagrangian Lp (primal problem) diubah kedalam dual problem LD. Dengan mensubsitusikan persamaan (2.6) ke LP diperoleh dual problem LD dengan konstrain berbeda. n
LD (α ) ≡ ∑ α i − i =1
min L w,b
p
= max L D
1 n ∑ α i α j y i y j x i .x j 2 i =1, j =1
(2.7)
. Jadi persoalan pencarian bidang pemisah terbaik dapat dirumuskan
α
sebagai berikut: L max α
D
s.t.
n
∑α y i =1
n
≡ ∑ αi −
i i
i =1
1 n ∑ α iα j yi y j xi .x j 2 i =1, j =1
= 0, α i ≥ 0
(2.8)
II-10
Dengan demikian, dapat diperoleh nilai α i yang nantinya digunakan untuk menemukan w. Terdapat nilai α i untuk setiap data pelatihan. Data pelatihan yang memiliki nilai α i > 0 adalah support vector sedangkan sisanya memiliki nilai α i = 0 . Dengan demikian fungsi keputusan yang dihasilkan hanya dipengaruhi oleh support vector. Formula pencarian bidang pemisah terbaik ini adalah pemasalahan quadratic programming, sehingga nilai maksimum global dari α i selalu dapat ditemukan. Setelah solusi pemasalahan quadratic programming ditemukan (nilai α i ), maka kelas dari data pengujian x dapat ditentukan berdasarkan nilai dari fungsi keputusan: ns
f ( x d ) = ∑ α i y i xi .x d + b ,
(2.9)
i =1
xi adalah support vector, ns = jumlah support vector dan xd adalah data yang akan diklasifikasikan. 2.2.2 SVM pada Nonlinearly Separable Data
Untuk mengklasifikasikan data yang tidak dapat dipisahkan secara linier formula SVM harus dimodifikasi karena tidak akan ada solusi yang ditemukan. Oleh karena itu, kedua bidang pembatas (2.1) harus diubah sehingga lebih fleksibel (untuk kondisi tertentu) dengan penambahan variabel ξ i ( ξ i ≥ 0, ∀ i : ξ i = 0 jika xi diklasifikasikan dengan benar) menjadi x i .w + b ≥ 1 - ξi untuk kelas 1 dan xi .w + b ≤ −1 + ξi untuk kelas 2. Pencarian bidang pemisah terbaik dengan dengan penambahan variabel ξ i sering juga disebut soft margin hyperplane. Dengan demikian formula pencarian bidang pemisah terbaik berubah menjadi: 1 2 ⎛ n ⎞ w + C⎜ ∑ ξ i ⎟ 2 ⎝ i =1 ⎠ s.t. y i ( w.x i + b) ≥ 1 − ξ i
min
(2.10)
ξi ≥ 0
C adalah parameter yang menentukan besar penalti akibat kesalahan dalam klasifikasi data dan nilainya ditentukan oleh pengguna. Bentuk persoalan (2.10) memenuhi prinsip SRM, dimana meminimumkan
1 2 w ekivalen dengan meminimumkan 2
II-11
⎛ n ⎞ dimensi VC dan meminimumkan C ⎜ ∑ ξ i ⎟ berarti meminimumkan error pada data ⎝ i =1 ⎠ pelatihan [OSU97].
Kelas 2
xi . w+b = 1 Kelas 1 xi . w+b = 0 xi . w+b = -1
Gambar II-6 Soft margin hyperplane
Selanjutnya, bentuk primal problem sebelumnya berubah menjadi:
min L p (w, b, α ) ≡ w ,b
n 1 2 ⎛ n ⎞ n w + C ⎜ ∑ ξ i ⎟ − ∑ α i {y i ( xi .w + b) − 1 + ξ i } − ∑ μ i ξ i 2 i =1 ⎝ i =1 ⎠ i =1
(2.11)
Pengubahan Lp ke dalam dual problem, menghasilkan formula yang sama dengan persamaan (2.6) sehingga pencarian bidang pemisah terbaik dilakukan dengan cara yang hampir sama dengan kasus dimana data dapat dipisahkan secara linier, tetapi rentang nilai α i adalah 0 ≥ α i ≥ C . Instance yang memiliki nilai α i = C disebut bounded support vector. Metode lain untuk mengklasifikasikan data yang tidak dapat dipisahkan secara linier adalah dengan mentransformasikan data ke dalam dimensi ruang fitur (feature space) sehingga dapat dipisahkan secara linier pada feature space.
φ(.)
Input space
φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( )
Feature space
Gambar II-7 Transformasi dari vektor input ke feature space
II-12
Caranya, data dipetakan dengan menggunakan fungsi pemetaan (transformasi) x k → φ ( x k ) ke dalam feature space sehingga terdapat bidang pemisah yang dapat memisahkan data sesuai dengan kelasnya (gambar II-7). Misalkan terdapat data set yang datanya memiliki dua atribut dan dua kelas yaitu kelas positif dan negatif. Data
{(2, 2), (2, − 2), (− 2, 2), (− 2,−2)}, dan data yang {(1,1), (1, − 1), (− 1,1), (− 1,−1)}. Apabila data ini digambarkan
yang memiliki kelas positif adalah memiliki kelas negatif
dalam ruang dua dimensi (gambar II-4) dapat dilihat data ini tidak dapat dipisahkan secara linier. Oleh karena itu, digunakan fungsi transformasi berikut:
(
⎧ x2 + x2 > 2 → 4 − x + x − x , 4 − x + x − x 2 2 1 2 1 1 2 ⎪ 1 φ ( x1 , x 2 ) = ⎨ 2 2 ⎪⎩ x1 + x 2 ≤ 2 → ( x1 , x 2 )
Data sesudah transformasi adalah
{(2, 2), (6, 2), (6, 6), (2, 6)}
)⎫⎪ (2.12) ⎬ ⎪⎭
untuk kelas negatif, dan
{(1,1), (1, − 1), (− 1,1), (− 1,−1)} untuk kelas positif. Selanjutnya pencarian bidang pemisah terbaik dilakukan pada data ini.
φ(.)
Gambar II-8 Contoh transformasi untuk data yang tidak dapat dipisahkan secara linier ns
Dengan menggunakan fungsi transformasi x k → φ ( x k ) , maka nilai w = ∑ α i y iφ ( xi ) i =1
dan fungsi hasil pembelajaran yang dihasilkan adalah ns
f ( xd ) = ∑ α i yiφ ( xi )φ ( xd ) + b
(2.13)
i =1
Feature space dalam prakteknya biasanya memiliki dimensi yang lebih tinggi dari vektor input (input space). Hal ini mengakibatkan komputasi pada feature space mungkin sangat besar, karena ada kemungkinan feature space dapat memiliki jumlah
feature yang tidak terhingga. Selain itu, sulit mengetahui fungsi transformasi yang tepat. Untuk mengatasi masalah ini, pada SVM digunakan ”kernel trick”.
Dari
persamaan (2.11) dapat dilihat terdapat dot product φ (xi )φ (xd ) . Jika terdapat sebuah
II-13
fungsi kernel K sehingga K ( xi , xd ) = φ ( xi ).φ ( xd ) , maka fungsi transformasi φ ( x k ) tidak perlu diketahui secara persis. Dengan demikian fungsi yang dihasilkan dari pelatihan adalah ns
f ( xd ) = ∑ α i yi K ( xi , xd ) + b ( xi = support vector).
(2.14)
i =1
Syarat sebuah fungsi untuk menjadi fungsi kernel adalah memenuhi teorema Mercer yang menyatakan bahwa matriks kernel yang dihasilkan harus bersifat positive semidefinite. Fungsi kernel yang umum digunakan adalah sebagai berikut: a. Kernel Linier
K (xi , x ) = x Ti x
(2.15)
b. Polynomial kernel
(
)
K (xi , x ) = γ .xiT x + r , γ > 0 p
(2.16)
c. Radial Basis Function (RBF)
(
)
K ( xi , x ) = exp − γ xi − x , γ > 0 d. Sigmoid kernel
2
(
K ( xi , x ) = tanh γxiT x + r
)
(2.17)
(2.18)
Menurut tutorial pada [HSU04] fungsi kernel yang direkomendasikan untuk diuji pertama kali adalah fungsi kernel RBF karena memiliki performansi yang sama dengan kernel linier pada parameter tertentu, memiliki perilaku seperti fungsi kenel sigmoid dengan parameter tentu dan rentang nilainya kecil [0,1]. 2.2.3 Multi Class SVM
SVM saat pertama kali diperkenalkan oleh Vapnik, SVM hanya dapat mengklasifikasikan data ke dalam dua kelas (klasifikasi biner). Namun, penelitian lebih lanjut untuk mengembangkan SVM sehingga bisa mengklasifikasi data yang memiliki lebih dari dua kelas, terus dilakukan. Ada dua pilihan untuk mengimplementasikan multi class SVM yaitu dengan menggabungkan beberapa SVM biner atau menggabungkan semua data yang terdiri dari beberapa kelas ke dalam sebuah bentuk permasalah optimasi. Namun, pada pendekatan yang kedua permasalahan optimasi yang harus diselesaikan jauh lebih rumit. Metode yang umum digunakan untuk mengimplementasikan multi class SVM adalah One-Against-One, One-Against-All dan DAG SVM. Penjelasan detailnya dapat dilihat pada lampiran C.
II-14
2.2.4 One Class SVM
One Class SVM adalah pengembangan dari SVM yang diusulkan oleh [SCH01], untuk permasalahan density estimation. Dengan menggunakan teknik ini, SVM dapat digunakan pada dataset yang tidak memiliki label. Teknik One Class SVM mengidentifikasi outlier diantara contoh data positif dan menggunakannya sebagai contoh data negatif. Persoalan One Class SVM ini dapat dirumuskan sebagai berikut: misalkan terdapat dataset yang memiliki probability distribution P dalam feature space dan kita ingin mengestimasi subset S pada feature space sehingga probabilitas sebuah data pengujian yang diambil dari P terletak di luar S, dibatasi oleh sebuah nilai v. Solusi dari permasalahan ini diperoleh dengan mengestimasi sebuah fungsi yang bernilai positif pada S dan negatif pada komplemen S. Dengan kata lain fungsi tersebut bernilai +1 pada sebuah area ”kecil” yang memuat hampir semua data dan bernilai -1 jika berada di luar area tersebut. ⎧⎪+ 1, if x ∈ S f (x ) = ⎨ ⎪⎩− 1, if x ∉ S
(2.19)
Prinsip dari teknik ini adalah mentransformasikan vektor input ke dalam feature space dengan menggunakan fungsi kernel, origin dianggap sebagai satu-satunya data negatif. Kemudian, dengan menggunakan ”relaxation parameter”, data yang bukan outlier dipisahkan dari origin. Selanjutnya prinsip kerja algoritma ini sama saja dengan klasifikasi biner pada SVM dengan tujuan mencari bidang pemisah terbaik yang memisahkan data dari origin dengan margin terbesar.
φ(.)
origin
+1
-1
Gambar II-9 Transformasi ke feature space
Persoalan pencarian bidang pemisah ini secara matematis adalah persamaan (2.20), dimana ξ i adalah penalti terhadap data anomali yang terletak pada sisi bidang pemisah yang salah (sisi tempat data normal) dan v adalah parameter yang mengatur
II-15
trade off antara memaksimalkan margin dari origin dan mencakup sebagian besar data pada daerah yang dibuat bidang pemisah dengan rasio outlier yang terdapat pada data pelatihan (seperti parameter C pada SVM untuk klasifikasi). 1 2 1 n w + ∑ξi − r 2 vn i =1 s.t. (w.φ ( xi )) ≥ r − ξ i ,
min
(2.20)
ξi ≥ 0
Gambar II-10 One Class SVM
Dengan menggunakan lagrange multiplier dan fungsi kernel maka persoalan di atas dapat dirumuskan sebagai berikut:
∑ α α K (x , x ) n
min
i =1, j =1
i
j
i
n
s.t.∑ α i = 1,
j
(2.21)
i =1
0 ≤ αi ≤
1 vn
Dari hasil pelatihan, akan diperoleh nilai parameter α i , kemudian nilai r dapat dihitung dari persamaan (2.22). Hasil dari proses pembelajaran adalah sebuah fungsi (2.23). r = ∑ α j K (xi , x j ) n
(2.22)
j =1
ns
f ( xd ) = ∑ α i K (xi , x d ) − r , xi =support vector
(2.23)
i =1
2.2.5 Algoritma Pelatihan SVM
Pelatihan pada SVM bertujuan untuk mencari solusi permasalahan optimasi konstain yang telah dijelaskan diatas (2.7, 2.10, 2.16, 2.17, 2.20). Untuk jumlah data yang sangat sedikit persoalan ini dapat diselesaikan dengan mudah. Misalkan x1 = 0, x 2 = 1
II-16
dengan kelas y ∈ −1,1 . Dengan mensubstitusi nilai x dan y ke persamaan (2.7)
diperoleh: 1 2 α 1 − (α 1 + α 2 ) 2 =
dengan konstrain:
⎡0 0 ⎤ 1 [α 1 α 2 ]⎢ ⎥ 2 ⎢⎣0 0⎥⎦
⎡α 1 ⎤ ⎢α ⎥ − [1 1] ⎣ 2⎦
⎡α 1 ⎤ ⎢α ⎥ ⎣ 2⎦
(Dalam notasi matriks)
α 1 − α 2 = 0, α 1 ≥ 0, α 2 ≥ 0 , maka: 1 2 α 1 − 2α 1 = 0 , diperoleh α 1 = α 2 = 2 . 2
Bagaimana jika jumlah data yang diproses sangat besar? Berbagai teknik optimasi telah banyak dikembangkan, yang pada dasarnya
secara iteratif mencari solusi
maksimum dari fungsi objektif. Akan tetapi, teknik-teknik ini memerlukan data disimpan pada memori dalam bentuk matriks kernel [CHR00]. Hal ini akan mengakibatkan kompleksitas data pelatihan meningkat dengan bertambahnya ukuran matriks sehingga penggunaan teknik ini dibatasi oleh jumlah data yang dapat diproses. Untuk dataset yang lebih besar digunakan teknik yang didasarkan pada metode ’working set’. Metode yang banyak digunakan pada SVM saat ini adalah decomposition (misalnya Sequential Minimal Optimization (SMO), LibSVM, SVMLight) [LIN05]. Penjelasan mengenai metode ini dapat dilihat pada lampiran D.
2.2.6 Estimasi Parameter Terbaik
Akurasi model yang akan dihasikan dari proses pelatihan dengan SVM sangat bergantung pada fungsi kernal serta parameter yang digunakan. Oleh karena itu performansinya dapat dioptimasi dengan mencari (mengestimasi) parameter terbaik. Ada beberapa cara yang dapat dilakukan antara lain cross validation (mudah digunakan), leave-one-out (akurat tetapi membutuhkan biaya komputasi yang tinggi) , dan
ξα -estimator [QUA02]. Cara yang ketiga merupakan modifikasi cara kedua
yang diusulkan oleh Joachim [QUA02]. K-folds crossalidation dapat digunakan untuk menentukan nilai parameter C dan parameter kernel yang tidak overfit data pelatihan [HSU04]. Dengan metode ini, data yang diambil secara acak kemudian dibagi menjadi k buah partisi dengan ukuran yang
II-17
sama. Selanjutnya, dilakukan iterasi sebanyak k. Pada setiap iterasi digunakan sebuah partisi sebagai data pengujian, sedangkan k-1 partisi sisanya digunakan sebagai data pelatihan. Jadi akan dicoba berbagai nilai parameter dan parameter terbaik ditentukan melalui k-folds crossalidation. Pada tutorial [HSU04] dianjurkan supaya pada setiap iterasi digunakan penambahan parameter secara exponensial. Contohnya untuk kernel RBF nilai parameter yang digunakan pada setiap iterasi adalah C = 2 ,2 ,..., 2 , γ = 2
−15
Kemudian ditemukan nilai parameter terbaik misalnya C = 2 , γ = 2
−5
−5
−3
15
3
,2 −13 ,..., 2 3 .
. Selanjutnya
dilakukan pencarian parameter pada rentang nilai yang lebih kecil sehingga dapat parameter yang baik C = 2
3, 25
, γ = 2 −5, −25 . Setelah nilai parameter terbaik
ditemukan pelatihan dilakukan dengan menggunakan keseluruhan data. Pencarian nilai parameter ini disebut juga grid search. 2.2.7 SVM pada Imbalanced Dataset
Imbalanced dataset adalah dataset yang memiliki contoh kelas negatif (kelas mayoritas) jauh lebih banyak daripada contoh kelas positif (kelas minoritas) misalnya pada aplikasi fraud detection rasio imbalance dapat mencapai 100:1 dan bahkan bisa mencapai 100000:1 pada aplikasi lain. Banyak teknik klasifikasi yang akurasinya menurun ketika diterapkan pada dataset dengan imbalance ratio yang tinggi karena umumnya teknik tersebut didesain untuk mengeneralisasi data pelatihan dan menghasilkan hipotesis paling sederhana yang sesuai dengan data tersebut [AKB04]. Akan tetapi, hipotesis yang dihasilkan
sering kali memprediksi hampir semua
instance sebagai kelas yang menjadi mayoritas dalam data pelatihan. Selain itu data dari kelas minoritas mungkin dianggap noise sehingga mungkin saja diabaikan oleh teknik klasifikasi [AKB04]. SVM sendiri merupakan salah satu teknik yang tidak terlalu sensitif terhadap imbalanced dataset karena hipotesis yang dihasilkan hanya dipengaruhi oleh sebagian data yaitu data yang menjadi support vector. Ada beberapa alasan mengapa performansi SVM mungkin menurun jika diterapkan pada imbalanced dataset yaitu data dari kelas minoritas terletak jauh dari bidang pemisah yang ideal, kelemahan pada soft-margin hyperplane (jika nilai parameter C kecil maka SVM cenderung
II-18
mengklasifikasikan data sebagai kelas mayoritas), dan rasio support vector yang tidak seimbang [AKB04]. Pendekatan yang populer untuk mengatasi masalah ini adalah memberikan bias kepada teknik klasifikasi sehingga lebih memperhatikan instance dari kelas minoritas. Hal ini dapat dilakukan melalui pemberian penalti yang lebih besar jika terjadi kesalahan dalam mengklasifikasikan kelas minoritas, dibandingkan jika salah mengklasifikasikan kelas mayoritas. Dengan demikian formula SVM diubah menjadi: min w,b ,ξ
1 2 w + C+ ∑ ξ i + C− ∑ ξ i 2 yi =1 yi = −1
s.t. y i (wxi + b ) ≥ 1 − ξ i ,
(3.1)
ξ i ≥ 0, i = 1,..., n Implementasi modifikasi ini pada prinsipnya sama dengan implementasi SVM sebelumnya, penggunaan C + atau C − hanyalah kasus khusus bergantung pada kelas instance data. Adapun perubahan utama terdapat pada pengubahan nilai lagrange mulplier selama pelatihan [CHA01]. Selain modifikasi pada teknik klasifikasi, dapat juga dilakukan pendekatan pada level data seperti melakukan oversampling kelas minoritas atau undersampling kelas mayoritas sehingga dihasilkan balanced dataset [AKB04]. 2.2.8 Pemilihan Atribut penting (feature selection)
Pada pelatihan dengan menggunakan SVM tidak terdapat mekanisme untuk mengetahui atribut yang penting atau yang kurang penting. Atribut yang kurang penting umumnya tidak mempengaruhi efektifitas teknik klasifikasi. Oleh karena itu, jika atribut yang kurang penting ini dibuang maka efisiensi teknik klasifikasi akan meningkat. Efektifitas teknik klasifikasi juga dapat meningkat jika atribut yang kurang penting ini ternyata menjadi noise. Pada SVM salah satu cara yang sederhana untuk mengetahui atribut yang penting adalah seperti yang dilakukan pada [MUK02B]. Pemilihan atribut penting dilakukan dengan mengevaluasi efektifitas dan efisiensi teknik klasifikasi setelah sebuah fitur dihilangkan. Dari hasil pengujian setelah fitur ini dihilangkan dapat diketahui sebuah fitur penting atau tidak dari perbedaan efisiensi dan efektifitas. Cara yang lain adalah dengan menggunakan f-score seperti pada [CHE03]. F-score adalah teknik sederhana
II-19
untuk mengukur tingkat diskriminasi dua buah vektor bilangan desimal. Jika terdapat vektor data pelatihan x k , k = 1,..., m . Jika jumah data kelas positif adalah n + dan n− adalah jumlah data kelas negatif. Maka F-score atribut ke i adalah :
(3.2) dimana
adalah rata-rata dari nilai atribut keseluruhan data, data positif
dan data negatif.
adalah fitur ke-i dari data kelas positif ke-k dan sebaliknya
adalah fitur ke-i dari date kelas negatif ke-k. Semakin besar nilai F(i), maka atribut ini dapat dianggap lebih diskriminatif (lebih penting). 2.2.9 Incremental Training dengan SVM
Pada SVM hanya support vector (data yang berada di perbatasan antar kelas) yang mempengaruhi
fungsi
keputusan
hasil
pelatihan.
Karakteristik
ini,
dapat
menyelesaikan masalah utama SVM yang menjadi lambat ketika dilatih dengan menggunakan data dalam jumlah yang sangat besar. Dengan demikian, kita dapat memilih kandidat support vector sebelum pelatihan, sehingga mengurangi jumlah data pelatihan dan pada akhirnya mengurangi kebutuhan penggunaan memori [KAT06]. Algoritma incremental training pada SVM dapat dilihat pada lampiran D. 2.2.10 Pendeteksian Intrusi dengan Support Vector Machine
Pada penelitian [MUK02,LAS04,LAS05] digunakan data yang sama dengan dengan data pada penelitian yaitu data KDD CUP 99 yang berasal 94% datanya berasal dari data DARPA 98 dan sisanya dari data DARPA 99. Adapun ringkasan hasil penelitian [MUK02, LAS04, LAS05] dapat dilihat pada lampiran E.