BAB III ANALISIS DAN PENYELESAIAN MASALAH 3.1
Deskripsi Sistem
Gambar III-1 Deskripsi Umum Sistem
Pada gambar III-1 dapat dilihat deskripsi sistem sederhana yang mendeteksi intrusi pada jaringan menggunakan data mining. Network-based IDS umumnya memonitor satu atau beberapa sistem (target) dengan cara memeriksa koneksi yang masuk dan atau keluar target. Untuk itu, data koneksi yang akan dimonitor dikumpulkan oleh satu atau lebih sensor. Data dari sensor masih berupa data mentah misalnya dalam format output TCPdump. Untuk itu diperlukan dua tahap preprocessing. Pada tahap pertama data di-preprocessing sehingga diperoleh data dengan atribut yang telah ditentukan. Pada Tugas Akhir ini tahap pertama tidak dilakukan. Pada tahap kedua data di-preprocess sehingga dapat diproses oleh teknik pembelajaran yang digunakan. Preprocessing inilah yang dilakukan pada Tugas Akhir. Kemudian, model yang dihasilkan dapat digunakan untuk mendeteksi data III-1
III-2
pada sistem yang dimonitor apakah merupakan intrusi atau bukan. Jika dideteksi adanya intrusi maka akan dikirimkan alarm kepada administrator sehingga administrator dapat melakukan aksi untuk merespon intrusi. Respon ini dapat juga dikonfigurasi sehingga dilakukan secara otomatis oleh network-based IDS. Arsitektur IDS yang digunakan pada tugas akhir ini adalah sama seperti arsitektur [HAN06]. Komponen dari arsitektur IDS yang menjadi fokus utama Tugas Akhir ini adalah SVM Analyser. SVM analyser akan menerima data dan menentukan apakah data tersebut intrusi atau bukan. Untuk itu SVM analyser menggunakan model detection yang diperoleh melalui proses pelatihan dan pengujian mengunakan SVM. Adapun gambar proses untuk mendapatkan model detection yang akan digunakan pada SVM analyser dapat dilihat pada gambar III-2. Bagian offline merupakan proses pelatihan dan pengujian untuk mendapatkan model detection. Selanjutnya model detection ini digunakan oleh SVM analyzer. Namun, karena dataset yang digunakan hanya mendukung evaluasi secara offline maka implementasi yang akan dilakukan pada tugas akhir ini adalah bagian offline.
Gambar III-2 Proses pembangunan dan penggunaan detection model oleh SVM Analyser
SVM analyser akan menerima data dari sensor untuk keperluan pendeteksian intrusi dan menerima dataset dari analis (administrator) untuk keperluan pembangunan detection model. Data online dan offline diproses oleh preprocessor yang sesuai. Kedua preprocessor pada prinsipnya memiliki fungsi yang sama mengubah
III-3
representasi data yang diterima ke dalam feature vector sehingga dapat diproses lebih lanjut. Online preprocessor memproses data yang diterima ke dalam feature vector dan menyimpannya pada basis data atau file yang berfungsi sebagai buffer untuk menampung data yang datang terus menerus dari sensor. Detektor akan memproses data yang masuk ke buffer kemudian menganalisnya menggunakan detection model. Jika berdasarkan hasil analisis data adalah intrusi maka detektor akan mengirim alarm. Untuk pembangunan detection model, dataset yang menjadi masukan akan diproses oleh offline preprocessor ke dalam bentuk feature vector. Selanjutnya akan dilakukan pembagian dataset menjadi data pengujian dan data pelatihan. Data pelatihan akan digunakan untuk membangun model detection melalui proses pembelajaran SVM. Selanjutnya model
detection akan dievaluasi terhadap data pengujian. Model
detection ini dapat berupa model anomaly detection ataupun misuse detection. Model yang telah memenuhi akurasi yang diharapkan (model final) dapat digunakan oleh detektor untuk mendeteksi intrusi secara online.
3.2 Dataset
Dataset Eksperimen yang
digunakan
untuk
mengevaluasi
performasi
SVM
yang
diimplementasikan pada Tugas Akhir ini adalah data KDD CUP 99 yang hampir seluruhnya berasal dari data DARPA 98. Data ini merupakan data standar yang biasanya digunakan untuk mengevaluasi algoritma untuk pendeteksian intrusi. Evaluasi dengan menggunakan dataset yang dibuat sendiri sulit untuk dilakukan karena tidak mudah untuk memperoleh label data intrusi. Data DARPA 98 merupakan data dalam format ouput TCPdump untuk Local Area Network (LAN) dengan mensimulasikan jaringan yang mirip dengan jaringan LAN pada angkatan udara Amerika Serikat. Data dikumpulkan selama 9 minggu yang terdiri dari sekitar 4,9 juta record, mengandung 22 jenis intrusi yang dapat dikelompokkan menjadi 4 kategori utama yaitu DOS (Denial of Service), Remote to User, User to Root, dan Probes.
III-4
Dataset KDD CUP 99 merupakan hasil preprocessing data mentah DARPA 98. Pada tugas akhir ini tidak dilakukan preprocessing dari data DARPA 98, karena cukup sulit dan bukan menjadi fokus Tugas Akhir. Format output TCPdump sendiri tidak didesain khusus untuk tujuan keamanan sehingga memerlukan banyak preprocessing yang bersifat iteratif untuk dapat mengekstrak atribut data, sehingga
diperlukan
domain knowledge yang mendalam [LEE98]. Pada [LAZ03] digunakan TCPtrace untuk memproses arsip output tcpdump, tetapi perangkat lunak ini juga hanya dapat mengambil sebagian kecil dari 41 atribut data yang dibutuhkan. Oleh karena itu, pada Tugas Akhir ini evaluasi SVM dilakukan dengan menggunakan data KDD CUP 99 seperti pada penelitian [MUK02,LAS04,LAS05]. Deskripsi lengkap data KDDCUP 99 dapat dilihat pada lampiran A. Data DARPA 98 yang merupakan data sintetik. Pada [MCH00] terdapat kritik terhadap evaluasi IDS menggunakan data ini. Akan tetapi, karena tidak tersedia data yang lebih baik maka banyak penelitian yang menggunakan data ini. Salah satu kritik adalah distribusi data intrusi dan data normal yang tidak natural (sekitar 80% dari dataset tersebut merupakan data intrusi) [LAS05]. Dengan demikian, performansi suatu teknik pendeteksi intrusi dengan distribusi data seperti ini, tidak dapat menggambarkan akurasi jumlah false positive yang sebenarnya. Oleh karena itu, evaluasi IDS sebaiknya dilakukan dengan distribusi data yang lebih natural yang umumnya lebih kecil dari 5% walaupun dalam jenis intrusi seperti DOS jumlah data intrusi dapat melebihi jumlah ini. Dataset pendeteksian intrusi pada jaringan merupakan imbalanced dataset dengan rasio imbalance yang sangat tinggi [VIS05]. Dataset ini terdiri dari data normal dan data intrusi yang dalam distribusi natural jumlahnya sangat kecil. Oleh karena itu, terdapat kemungkinan teknik pembelajaran mengklasifikasikan data intrusi sebagai data normal. Pada lampiran A dapat dilihat bahwa distribusi data intrusi pada setiap jenis intrusi sangat tidak seimbang. Beberapa jenis intrusi yang termasuk dalam kategori DOS memiliki jauh lebih banyak koneksi dibandingkan intrusi jenis lain seperti U2R. Selain itu, karena sulitnya memperoleh label data intrusi pada aplikasi yang sebenarnya maka mungkin saja harus dilakukan pelatihan dengan jumlah data intrusi yang sangat terbatas. Jadi, teknik pendeteksian intrusi yang diterapkan harus
III-5
dapat memiliki performansi yang tinggi walaupun dengan distribusi kelas yang sangat tidak seimbang. SVM sendiri merupakan teknik yang tidak terlalu sensitif pada imbalanced dataset. Mungkin hal ini yang menyebabkan persoalan ini tidak disinggung pada penelitan [MUK02]. Akan tetapi, pada penelitan [LAS05], pelatihan dilakukan dengan menggunakan dataset dimana distribusi data intrusi dari setiap kelas dibuat seimbang, tetapi rasio data intrusi sendiri tetap kecil (5%).
3.3 Metode Pendeteksian Intrusi dengan SVM Dalam IDS ada baiknya metode pendeteksian intrusi, baik misuse detection maupun anomaly detection diimplementasikan karena memiliki kelebihan dan kekurangan masing-masing. Dalam penggunaannya sulit untuk memperoleh label data intrusi karena harus dibuat oleh ahli jaringan atau administrator. Oleh karena itu, jika tidak ada label data intrusi maka hanya metode anomaly detection yang dapat digunakan. Akan tetapi jika terdapat label data intrusi maka metode misuse detection akan memiliki performansi yang lebih baik. Jadi bisa dikatakan kalau kedua metode ini sebaiknya diimplementasikan dalam satu sistem karena saling melengkapi. Data intrusi hasil prediksi teknik anomaly detection (dan sudah diverifikasi bahwa data tersebut adalah benar data intrusi) dapat juga digunakan sebagai data pelatihan baik teknik misuse detection. Oleh karena itu, pada Tugas Akhir ini kedua metode ini akan dieksplorasi karena dapat diimplementasikan dengan SVM. Dengan demikian dapat diketahui bagaimana sebaiknya metode pendeteksian intrusi dengan SVM, diimplementasikan. Adapun alternatif implementasi SVM yang dieksplorasi pada tugas akhir ini dapat dilihat pada lampiran F.
3.4 Upaya Perbaikan Performansi Dari hasil penelitian yang menjadi acuan pada tugas akhir ini secara umum SVM memiliki performansi yang cukup baik dalam mendeteksi intrusi. Akan tetapi, SVM belum dapat mendeteksi beberapa jenis intrusi yang jumlah data pelatihannya sangat kecil. Hal ini diduga disebabkan oleh efek imbalanced dataset pada data pelatihan, sehingga SVM lebih cenderung mengklasifikasikan intrusi jenis ini sebagai data dari
III-6
kelas mayoritas. Dari hasil eksplorasi terhadap alternatif penerapan SVM dalam pendeteksian intrusi, akan
dipilih salah satu metode yang memiliki performansi
terbaik. Selanjutnya, akan diteliti bagaimana efek modifikasi terhadap performansi metode pendeteksian intrusi tersebut. Adapun modifikasi yang akan dilakukan adalah sebagai berikut: 1. Penggunaan nilai C yang berbeda Untuk mengatasi masalah imbalanced dataset, akan dilakukan modifikasi penggunaan nilai penalti (C) yang berbeda untuk setiap kelas. Adapun nilai penalti yang akan digunakan akan ditentukan kemudian pada saat melakukan eksperimen sehingga dapat diperoleh nilai penalti dengan akurasi terbaik. 2. Tidak menggunakan atribut yang kurang penting (feature selection) Strategi pemilihan fitur penting akan dilakukan dengan f-score karena metode ini mudah untuk diimplementasikan dan memiliki kompleksitas algoritma yang lebih kecil dari pada metode pada [MUK03]. Alasannya, dengan cara [MUK03] maka harus dilakukan pelatihan dan pengujian untuk setiap atribut yang diperiksa. Dengan demikian tidak efisien untuk jumlah data pelatihan yang besar dan dataset dengan jumlah atribut yang banyak. 3. Pelatihan data dalam jumlah besar atau update model hasil pelatihan dengan menggunakan incremental training Dalam penggunaan IDS yang memanfaatkan teknik data mining sering kali dibutuhkan pelatihan ulang misalnya ketika terdapat data pelatihan baru misalnya ketika ada jenis intrusi baru yang ingin di deteksi atau ada aktivitas baru pada jaringan yang diijinkan (seharusnya tidak dideteksi sebagai intrusi). Oleh karena itu, waktu pelatihan akan menjadi jauh lebih singkat jika menggunakan incremental training.
3.5
Analisis Pembelajaran Dengan SVM
Penggunaan SVM baik dalam bentuk supervised maupun unsupervised pada prinsipnya menyelesaikan sebuah permasalahan quadratic programming. Oleh karena itu, proses pembelajarannya hampir sama dan tahapannya dapat dilihat pada gambar III-3. Akan tetapi untuk unsupervised learning dengan SVM data pelatihan dan data
III-7
pengujian adalah data yang sama. Selain itu, untuk proses pelatihannya dapat juga hanya menggunakan sebagian data dari data pengujian sehingga proses waktu pelatihan menjadi lebih singkat, tetapi hal ini mungkin menurunkan akurasi pada tahap pengujian. Preprocessing Ubah representasi data
dataset parameter
Pembelajaran SVM
feature vector
Normalisasi Data
Pembagian data
Data pengujian
Data pelatihan
Estimasi Parameter
Evaluasi Model
Parameter terbaik
Pelatihan
Model pembelajaran
Gambar III-3 Pembelajaran dengan SVM
3.5.1 Preprocessing Data
Data KDDCUP 99 memiliki atribut yang tipe nilainya real dan discrete. Agar dataset ini dapat diproses oleh SVM maka dataset tersebut harus direpresentasikan sebagai vektor dari bilangan real. Cara yang umum digunakan untuk data diskrit yang tidak terurut (data berupa kategori) adalah dengan memakai 1-of-c encoding, dimana c adalah banyaknya kemungkinan nilai pada input tersebut [SAR02]. Misalnya untuk nilai atribut protocol_type : tcp,udp,icmp. Ketiganya tidak tepat jika di-encode ke nilai real yang berurutan karena tidak memiliki urutan besar-kecil. Pendekatan yang biasa dilakukan adalah memakai vektor berdimensi 3, bernilai 0 dan 1. Pada contoh ini tcp direpresentasikan sebagai [001], udp direpresentasikan sebagai [010] dan icmp direpresentasikan sbg. [100]. Vektor berdimensi 3 ini dalam implementasinya direpresentasikan dalam 3 binary atribut (masing-masing merepresentasikan satu elemen vektor ). Cara ini akan digunakan pada tugas akhir ini. Selain mengkonversi nilai atribut , normalisasi / scaling (perubahan rentang dari nilai atribut) atribut yang bernilai bilangan real umumnya juga diperlukan agar proses perhitungan lebih mudah dan atribut yang rentang nilainya besar tidak mendominasi atribut yang rentang nilainya lebih kecil. Normalisasi umumnya memberikan hasil yang lebih baik [HSU04]. Rentang nilai atribut yang dianjurkan untuk digunakan adalah [0,1] atau [-1,+1] [HSU04].
III-8
Normalisasi dalam rentang nilai [0,1] menghasilkan akurasi yang sama dengan [1,+1] jika menggunakan fungsi kernel RBF, tetapi waktu komputasi yang dibutuhkan mungkin berbeda. Karena nilai atribut data pada KDD CUP 99 banyak yang bernilai 0, maka digunakan rentang normalisasi [0,1] karena waktu yang akan dibutuhkan menjadi lebih singkat dibandingkan dengan penggunaan rentang nilai [-1,+1]. Alasannya, jika dinormalisasi ke dalam rentang nilai [-1,+1] banyak nilai 0 akan berubah menjadi -1 sehingga perhitungannya menjadi lebih lambat. Adapun rumus normalisasi ke dalam rentang [0,1] adalah persamaan (3.1) dimana x min dan x max adalah nilai minimum dan nilai maksimum atribut x. x' =
x − xmin x max − x min
(3.1)
3.5.2 Pemilihan dan Estimasi Parameter Terbaik
Sebelum pelatihan dilakukan, terlebih dahulu harus ditentukan nilai parameter C beserta fungsi kernel dan parameternya untuk pembelajaran supervised SVM. Untuk One Class SVM parameter yang harus ditentukan adalah parameter nu (v) beserta fungsi kernel dan parameternya. Menurut penelitian [LAS05], dataset KDD CUP paling baik diproses oleh algoritma nonliniear sehingga pada Tugas Akhir ini akan diterapkan SVM nonliniear. Untuk itu fungsi kernel yang akan digunakan adalah fungsi kernel RBF karena digunakan pada penelitian [MUK02,LAS04,LAS05]. Pada tugas akhir ini estimasi parameter terbaik akan dilakukan dengan mengunakan kfolds crossalidation dan grid search. Pendekatan ini mudah digunakan pada dataset yang jumlahnya ribuan. Akan tetapi, dataset yang akan digunakan pada Tugas Akhir ini ukurannya sangat besar, maka akan digunakan subset dari dataset yang diambil secara acak, kemudian dilakukan grid search pada subset tersebut. Setelah ditemukan parameter terbaik, dilakukan grid search pada rentang nilai yang lebih kecil untuk memperoleh parameter terbaik. 3.5.3 Algoritma Pelatihan SVM
Algoritma pelatihan yang akan digunakan pada tugas akhir ini adalah algoritma decomposition seperti yang digunakan pada LibSVM karena algoritma ini merupakan hasil perbaikan dari algoritma standard pelatihan SVM dengan SMO (Sequential Minimal Optimization). Untuk lebih jelasnya algoritma pelatihan SVM dapat dilihat
III-9
pada Lampiran D. Selain itu heuristik shrinking dan dan teknik caching juga akan digunakan untuk mempersingkat waktu pembelajaran.
3.6
Analisis Perangkat Lunak
Prototipe perangkat lunak yang diimplementasikan adalah sebuah perangkat lunak yang dapat menerima dataset intrusi pada jaringan baik berupa file. Perangkat lunak selanjutnya akan memproses masukan menjadi representasi internal yang digunakan sebagai input untuk proses SVM learning. Sebelum melakukan proses SVM learning (proses pelatihan), pengguna harus memasukkan konfigurasi (berupa nilai-nilai parameter dan konfigurasi yang dibutuhkan). Hasil proses pelatihan adalah SVM detection model dapat disimpan pada file atau basis data. Selanjutnya model ini dapat digunakan untuk melakukan pengujian.
Untuk mengimplementasikan perangkat lunak ini digunakan LibSVM versi 2.83 sebuah perangkat lunak open source yang telah mengimplementasikan One Class SVM dan Multi Class SVM (One Against One). LibSVM telah terimplementasi dalam bahasa pemrograman Java, C++ dan Python. Akan tetapi, karena salah satu target dari teknik pendeteksian intrusi adalah waktu pelatihan dan pengujian yang minimum maka digunakan versi C++ yang memiliki waktu runtime yang lebih kecil dibandingkan dengan versi Phyton dan Java. Untuk implementasi Multi Class SVM (One-Against-All) serta fungsi-fungsi tambahan yang dibutuhkan untuk preprocessing dan evaluasi performansi SVM (seperti confusion matrix dan ROC curve), incremental training dan feature selection akan diimplementasikan sendiri. LibSVM diimplementasikan dalam sebuah file yang cukup panjang. Dengan demikian dihasilkan file executable yang berukuran kecil. Akan tetapi, untuk memudahkan dalam memahami SVM dan mengimplementasikan fungsi tambahan diatas maka file tersebut dipecah dan kumpulan fungsi untuk melakukan pengujian dan pelatihan diubah menjadi kelas.