RANCANG BANGUN APLIKASI INTRUSSION DETECTION
SYSTEM DENGAN MENGGUNAKAN METODE FUZZY
TUGAS AKHIR
Oleh :
Nama : Indra Wahyu Nugroho NIM : 08.41020.0033
Program : S1 (Strata Satu) Jurusan : Sistem Komputer
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
xx
KATA PENGANTAR ... v
DAFTAR ISI... vii
DAFTAR GAMBAR ... x
DAFTAR TABEL... xiv
DAFTAR LAMPIRAN ... xv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah... 1
1.2 Perumusan Masalah ... 2
1.3 Pembatasan Masalah ... 2
1.4 Tujuan ... 3
1.5 Sistematika Penulisan ... 3
BAB II LANDASAN TEORI ... 5
2.1 Intrusion Detection System ... 5
2.1.1 Teknologi IDS ... 5
2.1.2 Jenis-jenis Pendeteksian... 7
2.2 Open System Interconection Model... 8
2.3 TCP/IP... 9
2.3.1 Model TCP/IP ... 10
2.4. Denial Of Service Attack ... 12
2.5 Logika Fuzzy... 13
2.5.1 Himpunan Fuzzy... 14
xx
2.5.3 Fungsi Implikasi ... 19
2.5.4 Fuzzy Inference System... 20
2.6 Database ... 21
2.7 MySQL... 22
2.8 PHP ... 23
BAB III METODE PENELITIAN... 25
3.1 Perancangan Sistem dan Blok Diagram Sistem ... 25
3.2 Rancangan Sistem ... 26
3.2.1 Perancangan Modul Sniffing Paket... 27
3.2.2 Sampling Data Serangan ... 29
3.2.3 Perancangan Fuzzy... 29
3.3 Desain Sistem... 36
3.3.1 Desain Input ... 37
3.3.2 Desain Proses ... 39
3.3.3 Desain Output ... 40
3.3.4 Desain Autentifikasi... 41
3.4 Implementasi Program ... 42
3.4.1 Pengumpulan Data (DatabaseLog Snort)... 42
3.4.2 Konfigurasi IP Address ... 53
3.4.3 Penulisan Program ... 56
BAB IV PENGUJIAN SISTEM ... 61
4.1 Pengujian Authentifikasi... 61
4.1.1 Tujuan Pengujian ... 61
xx
4.2 Pengujian Serangan DoS... 65
4.2.1 Tujuan ... 65
4.2.2 Alat Pengujian ... 65
4.2.3 Prosedur Pengujian ... 66
4.2.4 Hasil Pengujian ... 66
4.3 Pengujian Data Fuzzy ... 75
4.3.1 Tujuan ... 75
4.3.2 Alat Pengujian ... 75
4.3.3 Prosedur pengujian... 75
4.3.4 Hasil Pengujian ... 76
4.4 Analisis Sistem ... 84
4.4.1 Pendeteksian Paket Normal ... 84
4.4.2 Pendeteksian Serangan Paket POD ... 87
4.4.3 Pendeteksian Serangan Paket UDP Flooding ... 89
4.4.4 Pendeteksian Serangan Paket TCP Flooding... 91
4.4.5 Pendeteksian Paket SeranganSyn-ACK ...93
4.4.6 Pendetektsian Paket HTTP ... 95
BAB V PENUTUP... 98
5.1 Simpulan ... 98
5.2 Saran... 99
ABSTRAK
Seiring berkembangnya teknologi jaringan juga muncul berbagai masalah
keamanan, salah satunya adalah Denial Of Service Attadck (DoS). DoS merupakan serangan yang digunakan oleh hacker untuk mematikan sistem komputer server sehingga server tidak bisa memberikan layanannya kepada user.
Langkah awal untuk mengantisipasi adanya berbagai paket yang tidak diinginkan
adalah dengan membangun aplikasi Intrussion Detection System (IDS) kedalam router.
Aplikasi IDS dapat dibuat dengan menggunakan metode fuzzy dimana
terdapat 3 tahap proses pengklasifikasian serangan yaitu pembentukan fungsi
keanggotaan variabel, pembentukan aturan fuzzy dan defuzzyfikasi. Proses
pengklasifikasian serangan dimulai dari mendengarkan lalu lintas paket jaringan
yang melalui router oleh Snort. Dari data Snort selanjutnya memilah datalength
dan frekuensi kedalam sebuah tabel database fuzzy. Tahapan selanjutnya adalah mencari nilai alpha masing-masing aturan dan mencari nilai defuzzyfikasi.
Hasil yang didapatkan dari tugas akhir ini aplikasi IDS yang dibangun
dapat mengklasifikasikan serangan DoS dengan menggunakan teknik ICMP
flooding, TCP flooding, UDP flooding dan paket ICMP normal tetapi masih belum mampu mengidentifikasi dan mengklasifikasikan serangan syn-ack karena nilailengthpaketsyn-ackterlalu kecil serta belum mampu mengidentifikasi paket http sebagai paket bukan serangan karena nilai length paket http sama dengan nilailengthpaket TCPflooding.LogIDS ditampilkan dalam bentuk web sehingga memudahkanuseruntuk membaca dan menganalisis paket serangan.
1 1.1 Latar Belakang Masalah
Pesatnya perkembangan teknologi jaringan juga disertai munculnya berbagai permasalahan keamanan. Contoh dari permasalahan keamanan ini adalah adanya berbagai metode serangan jaringan komputer diantaranya Denial of Service Attack, User to Root Attacks, Remote to Locate Attacks, Scanning Port. Untuk mengidentifikasi jenis serangan ini dapat menerapkan Intrusion Detection System (IDS)kedalam sebuah sistem jaringan.
IDS merupakan suatu tindakan untuk mendeteksi adanya trafik paket yang tidak diinginkan dalam sebuah jaringan atau device (Wu,2009). Dalam perkembangannya aplikasi IDS dapat dibangun dengan menggunakan beberapa metode yaiitu Enhanced Evolving Clustering Method, Adaptive Neuro-Fuzzy Inferense System, PCA Neural Network dan Fuzzy Logic. Setiap metode ini tentunya mempunyai beberapa kelebihan dan kelemahan.
2
Untuk menerapkan metode fuzzy kedalam sistem IDS diperlukan data-data serangan guna menyusun variabel-variabel fuzzy. Untuk mengumpulkan data-data serangan tersebut dapat dilakukan melalui proses sniffing. Setelah data terkumpul selanjutnya dianalisa untuk membuat variabel-variabel fuzzy yang dibutuhkan beserta aturan-aturan fuzzy.
Karena memiliki konsep yang sederhana metode fuzzy dipilih sebagai pengambil keputusan sistem IDS. Dalam Tugas Akhir ini dapat dilihat seberapa akuratkah penerapan metode fuzzy, karena selain membahas tentang bagaimana membangun sistem IDS dengan metode fuzzy tugas akhir ini juga membahas hasil pendeteksian serangan sehingga dapat dilihat bagaimana hasil klasifikasi serangan melalui metode fuzzy.
1.2 Perumusan Masalah
Dari latar belakang masalah didapatkan rumusan masalah seperti yang ditulis dibawah ini.
1. Bagaimana mengidentifikasi dan mengklasifikasikan paket serangan dan paket normal
2. Bagaimana menerapkan logika fuzzy untuk mengidentifikasikan adanya serangan
3. Bagaimana membuat antarmuka yang mudah dimengerti olehuser.
1.3 Pembatasan Masalah
1. Sistem Operasi yang digunakan adalah Linux
2. Jenis serangan yang dideteksi adalahDenial of Service Attack 3. Hasil analisa paket ditampilkan dalam sistem log berbasis web 4. Attack toolsyang digunakan adalah Longcat
5. Pengujian dilakukan oleh dua komputer dengan klasifikasi: komputer A (bisa disebut dengan komputer router) sebagai target serangan dan komputer B sebagai penyerang
6. Pengujian dilakukan dalam jaringan intranet.
1.4 Tujuan
Tujuan dalam membuat penelitian tugas akhir ini adalah sebagai berikut. 1. Dapat mengidentifikasi dan mengklasifikasikan paket serangan dan paket
normal
2. Dapat menerapkan logika fuzzy untuk mengidentifikasikan adanya serangan 3. Dapat membuat antarmuka yang mudah dimengerti oleh user
1.5. Sistematika Penulisan
Sistematika penulisan buku tugas akhir ini terdiri dari lima bab, dimana dalam tiap bab terdapat beberapa sub-bab. Ringkasan uraian dari tiap bab tersebut adalah sebagai berikut.
Bab I Pendahuluan
4
Bab ini menjelaskan tentang beberapa teori pendukung tugas akhir seperti mekanisme pengiriman data dalam jaringan atau lebih dikenal dengan nama Open System Interconnection (OSI). Juga dijelaskan teori tentang Intrusion Detection System, konsep logika fuzzy mulai dari pengertian sampati tahap-tahap akhir pengambil keputusan serta teori Denial of Service Attack (DoS).
Bab III Metode Penelitian
Bab ini menjelaskan tahap-tahap pembangunan sistem IDS dimulai dari konsep, algoritma pemrograman hingga penulisan kode-kode program. Bab IV Pengujian Sistem
Bab ini menjelaskan pengujian yang dilakukan dengan cara melakukan serangan kedalam sebuah komputer yang telah dipasang aplikasi IDS yang telah dibuat oleh penulis. Dari hasil pengujian tersebut selanjutnya akan dijelaskan hasil analisis terhadap sistem IDS.
Bab V Penutup
5 BAB II
LANDASAN TEORI
2.1 Intrusion Detection System
Intrusion Detection System (IDS) adalah suatu tindakan untuk mendeteksi adanya trafik paket yang tidak diinginkan dalam sebuah jaringan atau device.
Sebuah IDS dapat diimplementasikan melalui software atau aplikasi yang terinstall dalam sebuah device, dan aplikasi tersebut dapat memantau paket
jaringan untuk mendeteksi adanya paket-paket ilegal seperti paket yang merusak kebijakan ruleskeamanan, dan paket yang ditujukan untuk mengambil hak akses suatu pengguna (Wu, 2009).
2.1.1 Teknologi IDS
Beberapa jenis dari teknologi IDS adalah Network-Based, Wireless IDS,
Network Behavior Anomali Detection dan Host-Based. Pengembangan dan implementasi teknologi IDS ke dalam sebuah sistem jaringan tergantung dari
variasi konfigurasi jaringan itu sendiri. Pada dasarnya setiap jenis teknologi IDS mempunyai keuntungan dan kekurangan dalam hal pendeteksian, konfigurasi dan biaya, tetapi secara umum teknologi IDS yang paling sering digunakan adalah
Network-Based dan Host-Based. Secara spesifik berikut penjelasan dari masing-masing tipe teknologi IDS (Wu, 2009).
A. Network-Based
jaringan. Tipe ini menganalisa paket-paket jaringan pada semua lapisan Open
System Interconnection (OSI) dan membuat sebuah tindakan kepada paket tersebut. Kebanyakan NIDS lebih mudah diterapkan kedalam suatu jaringan dan
dapat memantau paket dari banyak sistem sekaligus (Wu, 2009).
B. WLAN IDS
Wireless Local Area Network (WLAN)IDS menyerupai NIDS yang dapat
menganalisa paket-paket jaringan. WLAN ini dapat menganalisa paket wireless secara spesifik, termasuk pemindaian pengguna eksternal yang mencoba untuk
terhubung ke Access Point (AP). Karena WLAN IDS sendiri sebenarnya adalah NIDS dengan menggunakan wireless maka aturan-aturan keamanan yang diterapkan lebih luas (Wu, 2009).
C. Network Behavior Anomaly Detection
Network Behavior Anomaly Detection (NBAD) memantau paket pada segmen-segmen jaringan untuk menentukan anomali-anomali dalam jumlah paket
atau tipe paket. Segment yang biasanya melihat paket yang sangat kecil atau segmen yang hanya melihat paket tertentu yang dapat mengubah jumlah atau jenis
paket jika suatu kejadian yang tidak diinginkan terjadi (Wu, 2009).
D. Host-Based
Host-based Intrusion Detection System (HIDS) menganalisa paket
jaringan dan pengaturan sistem secara spesifik seperti software calls, local security policy, local log audits, dll. HIDS harus diinstal di setiap mesin dan
7
2.1.2 Jenis-jenis Pendeteksian
Menurut Wu dalam bukunya Information Assurance Tools Report yang diterbitkan pada tahun 2009 terdapat beberapa jenis-jenis pendeteksian dalam
implementasi IDS. Jenis-jenis tersebut adalah Signature-Based Detection, Anomaly-Based Detection, dan Stateful Protocol Inspection. Berikut penjelasan mengenai macam-macam jenis pendeteksian.
A.Signature-Based Detection
Sebuah IDS dapat menggunakan pendeteksian Signature-Based
Detetection dari sebuah paket, bergantung data paket yang diketahui untuk menganalisa potensi terjadinya paket ilegal. Tipe pendeteksi ini sangat cepat dan mudah dikonfigurasi. Bagaimanapun juga seorang penyerang dapat dengan mudah
memodifikasi sebuah serangan untuk menyiasati agar tidak terkenali oleh Signature-Based IDS. Meskipun kemampuan tipe ini terbatas dalam mendeteksi banyaknya serangan, tipe ini mempunyai kelebihan dalam hal keakuratan (Wu,
2009).
B. Anomaly-Based Detection
IDS yang dapat memantau paket jaringan dan mendeteksi data yang tidak valid, atau umumnya tidak normal menggunakan jenis deteksi Anomaly-Based. Metode ini berguna untuk mendeteksi paket-paket yang tidak diinginkan
(Wu,2009).
C. Stateful Protocol Inspection
2.2Open System Interconection Model
Model Open System Interconnection (OSI) diciptakan oleh International Organization for Standarization (ISO) yang menyediakan kerangka logika
terstruktur bagaimana proses komunikasi data berinteraksi melalui jaringan. Standar ini dikembangkan untuk industri komputer agar komputer dapat berkomunikasi pada jaringan yang berbeda secara efisien (Lammle, 2000).
Gambar 2.1.Tujuh Lapisan OSI Model (Lammle, 2000)
Seperti Gambar 2.1 terdapat 7 lapisan pada model OSI. Setiap lapisan bertanggung jawab secara khusus pada proses komunikasi data. Misal, satu
lapisan bertanggung jawab untuk membentuk koneksi antar perangkat, sementara lapisan lainnya bertanggung jawab untuk mengoreksi terjadinya “error” selama prosestransferdata berlangsung.
Model OSI dibagi dalam dua grup yaitu upper layer dan lower layer. Upper layer berfokus pada aplikasi pengguna dan bagaimana data
9
Tujuan utama penggunaan model OSI adalah untuk membantu desainer
jaringan memahami fungsi dari tiap-tiap lapisan yang berhubungan dengan aliran komunikasi data. Termasuk jenis protokol jaringan dan metode transmisi. Model
OSI dibagi menjadi 7 lapisan, dengan karakteristik dan fungsinya masing-masing. Tiap lapisan harus dapat berkomunikasi dengan lapisan diatasnya maupun dibawahnya secara langsung melalui serentetan protokol danstandard.
2.3 TCP/IP
Transmisson Control Protocol (TCP) addalah suatu protocol atau perantara yang dapat mentransmisikan data per segmen, artinya paket data dipecah dalam jumlah yang sesuai dengan besaran paket, kemudian dikirim satu
persatu hingga selesai. Selain daripada itu, TCP bertugas menangani pengiriman message ukuran sembarang yang andal dan juga mendefinisikan suatu mekanisme pengiriman dari semua jenis data pada suatu jarringan (Yugianto dan
Rachman, 2012).
SedangkanInternet Protocol (IP) adalahprotocolyang mengaturrouting
dari pentransmisian melewati jaringan antara pengirim dan penerima, termasuk juga isu yang terkait dengan pengalamatan jaringan dan komputer, sehingga dapat dikatakan bahwa IP merupakan perantara komunikasi antar komputer dengan
menggunakan IP-Address sebagai suatu identitas dari jaringan maupun komputer (Yugianto dan Rachman, 2012).
pengiriman paket tersebut dengan identitas (IP-Address), maka paket data tersebut
akan diambil dan disalurkan ke TCP melaluiport, dimana aplikasi menunggu. Jika pada model OSI pengembangann modelnya lebih berdasarkan teori
maka pengembangan TCP/IP ini lebih kepada aplikasinya. Oleh karena itu perkembangan TCP/IP lebih cepat dari perkembangan OSI.
2.3.1 Model TCP/IP
Model TCP/IP dapat diterapkan dalam beberapa lapisan, yaitu seperti yang terlihat pada Gambar 2.2.
Gambar 2.2. Model TCP/IP (Lammle,2000)
Gambar 2.2 merupakan 4 lapisan model TCP/IP, yaitu lapisan Applciation, Host-to-Host, InternetdanNetwork Access. Setiap lapisan tersebut mempunyai peranan
masing-masing dalam proses komunikasi data, dibawah ini dijelaskan fungsi masing-masing dari 4 lapisan TCP/IP.
A.Aplication Layer
Model TCP/IP dalam Application Layer yaitu aplikasi yang berinteraksi langsung dengan user (Yugianto dan Rachman, 2012). Layer ini bertanggung jawab untuk menyediakan servis-servis bagi aplikasi yang berjalan pada
11
menyediakan servis yang bisa dimanfaatkan oleh software yang berjalan pada
komputer kita, misalnya Mozilla Firefox memanfaatkan protokol HTTP untuk mengakses suatu halaman web. Beberapa protokol yang beroperasi pada lapisan
ini adalah Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS),Hypertext Transfer Protocol(HTTP),File Transfer Protocol(FTP), dll.
B.Transport Layer
Definisi Transport Layer yaitu dijmana data akan dikirimkan dengan format tertentu ke Application Layer, contoh: telnet, ftp, smtp (Yugianto dan
Rachman, 2012). Artinya lapisan ini menyediakan servis yang akan digunakan olehApplication Layer, misalnya: HTTPsoftware meminta TCP untuk menjamin sampainya data pada tujuan, jika terjaddi gangguan pada saat transmisi maka
HTTP tidak akan melakukan apa-apa, tapi TCP mengirim ulang data yang hilang dan memastikan sampainya data pada tujuan.
C.Internet Layer
Layer ini akan menangani routing datagram ke tujuan serta melakukan fragmentasi dan defragmentasi. Internet Layer merupakan protokol terpenting,
yaitu Internet Protocol (IP) dan Internet Control Message Protocol (ICMP) (Yugianto dan Rachman, 2012).
D.Network Access Layer
Layer ini akan bertugas menangani hubungan ke NIC serta menentukan besarnya paket data dan sekaligus mengonversi alamat IP ke alamat mesin
pemberianheader dantrailer sehingga data bisa melewati tipe-tipe jaringan yang
berbeda topologi, mentransmisi data yang berupa bits ke jaringan, dsb.
2.4Denial Of Service Attack
Menurut Yugianto dan Rachman dalam bukunya “Router Teknologi, Konsep, Konfigurasi, dan Trobleshooting” serangan DoS didesain untuk
mencegah layanan ke host yang mencoba untuk membentuk koneksi. Pada umumnya, DoS digunakan oleh hacker untuk mematikan sistem. DoS dikenal
dengan namaSYN floodingartinya membanjiri dan merusak3-way handshake.
Gambar 2.3.Serangan DoS (Yugianto dan Rachman, 2012)
Pada Gambar 2.3 komputer penyerang memberikan permintaan SYN
dengan informasi yang salah, sehingga mengakibatkan komputer server memberikan jawaban paket SYN ACK secara terus menerus, akibatnya koneksi
13
2.5 Logika Fuzzy
Logika fuzzy merupakan salah satu komponen pembentuk soft computing. Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh pada tahun
1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy peranan derajat keanggotaan sebagai penentu elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership
function menjadi ciri utama dari penalaran dengan logika fuzzy tersebut (Kusumadewi dan Purnomo, 2010).
Logika fuzzy mempunyai konsep yang sederhana dan dapat diterapkan dalam berbagai aplikasi soft computing, karena acuan dalam menyelesaikan suatu pokok permasalahan menggunakan pendekatan-pendekatan yang biasa terjadi
dalam khalayak umum. Dari acuan tersebut kemudian diadaptasi menjadi sebuah komposisi aturan.
Menurut Cox (1994), ada beberapa alasan mengapa orang menggunakan
logika fuzzy, antara lain :
1). konsep logika fuzzy mudah dimengerti, karena logika fuzzy menggunakan
dasar teori himpunan, maka konsep matematis yang mendasari penalaran fuzzy tersebut cukup mudah untuk dimengerti,
2). logika fuzzy sangat fleksibel, artinya mampu beradaptasi dengan
perubahan-perubahan dan ketidakpastian yang menyertai permasalahan,
3). logika fuzzy memiliki toleransi terhadap data yang tidak tepat. Jika diberikan
4). logika fuzzy didasarkan pada bahasa alami. Logika fuzzy menggunakan
bahasa sehari-hari sehingga mudah dimengerti.
2.5.1 Himpunan Fuzzy
Definisi himpunan fuzzy adalah sekumpulan obyek x dengan masing-masing obyek memiliki nilai keanggotaa “μ” atau disebut juga dengan nilai
kebenaran. Jika Zi,t adalah sekumpulan obyek, Zi,t=(Z1,t , Z2,t, …, Zm,t) dan anggotanya dinyatakan dengan Z maka himpunan fuzzy dari A didalam Z F={(Z,
“μ”_F(z))| Z∈Z_(i,t) }. Dengan F adalah notasi himpunan fuzzy, μ_F (x) adalah
derajat keanggotaan dari Z (nilai antara 0 sampai 1) (Kusumadewi, 2006). Himpunan fuzzy memiliki 2 attribut, yaitu.
1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau
kondisi tertentu dengan menggunakan bahasa alami, seperti: MUDA, PAROBAYA, TUA
2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel seperti: 40,25.50, dsb.
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy,
antara lain :
1). variabel fuzzy, merupakan variabel yang hendak dibahas dalam suatu sistem
fuzzy. Contoh: umur, temperatur, permintaan, dsb,
15
Contoh:
Gambar 2.4.Himpunan Fuzzy Pada Variabel Temperatur (Kusumadewi dan Purnomo, 2010)
Pada Gambar 2.4 variabel temperatur dibagi menjadi 5 himpunan fuzzy
yaitu: DINGIN, SEJUK, NORMAL, HANGAT, dan PANAS. Dengan beberapa contoh µ(x) adalah.
1. µDINGIN(15)=1 artinya sebuah temperatur dikatakan DINGIN karena
mencapai suhu 15ºC
2. µSEJUK(20)=1 artinya sebuah temperatur dikatakan SEJUK karena telah mencapai suhu 20ºC
3. µNORMAL(25)=1 artinya sebuah temperatur dikatakan NORMAL karena telah mencapai suhu 25ºC
4. µHANGAT(25)=0 artinya sebuah temperatur dikatakan TIDAK HANGAT karena mencapai suhu 25ºC
5. µPANAS(30)=0 artinya sebuah temperatur dikatakan TIDAK PANAS karena
mencapai suhu 30ºC
3). semesta pembicaraan, yaitu keseluruhan nilai yang diperbolehkan untuk
dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif
Temperatur (0C)
15 20 25 30 40
0
Dingin Sejuk Normal Hangat Panas
maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi
batas atasnya. Contoh semesta pembicaraan untuk variabel temperatur [0 40], 4). domain, adalah keseluruhan nilai yang diizinkan dalam semesta pembicaraan
dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat
berupa bilangan positif maupun negatif. Contoh domain himpunan fuzzy pada gambar 2.4 yaitu.
1. DINGIN = [0 20] 2. SEJUK =[15 25] 3. NORMAL =[20 30]
4. HANGAT =[25 35] 5. PANAS =[30 40]
2.5.2 Fungsi Keanggotaan
Menurut Kusumadewi dan Purnomo (2010) fungsi keanggotaan (membership function)adalah suatu kurva yang menunjukkan pemetaan titik-titik
input data kedalam nilai keanggotaannya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui
pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan.
A. Representasi Linear
17
pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. Ada 2 jenis
representasi linear yaitu representasi linear naik dan turun.
Gambar 2.5.Representasi Linear Naik (Kusumadewi dan Purnomo, 2010) Gambar 2.5 merupakan bentuk grafis representasi linear naik dengan karakteristik kenaikan himpunan dimulai pada nilai domain yang memiliki nilai
keanggotaan nol (0) bergerak ke kanan atas menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi.
Fungsi Keanggotaan:
0; x≤a
µ(x)= (x-a)/b-a); a≤x≤b
1; x≥b
Gambar 2.6.Representasi Linear Turun (Kusumadewi dan Purnomo, 2010) Gambar 2.6 merupakan grafis representasi linear turun dengan karakteristik garis lurus dimulai dari nilai domain dengan derajat keanggotaan
0 a b
Derajat Keanggotaan µ[x]
a b
0 1
1
tertinggi pada sisi kiri, kemudian bergerak menurun ke nilai domain yang
memiliki derajat keanggotaan lebih rendah. Fungsi keanggotaan:
µ(x)= (b-x)/b-a); a≤x≤b
0; x ≥b
B. Representasi Kurva Segitiga
Kurva Segitiga pada dasarnya merupakan gabungan antara 2 garis (linear) seperti terlihat pada Gambar 2.7.
Gambar 2.7.Representasi Kurva Segitiga (Kusumadewi dan Purnomo, 2010) Fungsi keanggotaan:
0; x≤a atau x≥c
µ(x)= (x-a)/b-a); a≤x≤b
1; b≤x≤c
C. Representasi Kurva Trapesium
Kurva segitiga pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1.
19
Fungsi Keanggotaan:
0; x≤a atau x≥d
µ(x)= (x-a)/b-a); a≤x≤b
1; b≤x≤c
(d-x)/(d-c) x≥d
2.5.3 Fungsi Implikasi
Menurut Kusumadewi dan Purnomo (2010) tiap-tiap aturan (proposisi)
pada basis pengetahuan fuzzy akan berhubungan dengan suatu relasi fuzzy. Bentuk umum dari aturan yang digunakan dalam fungsi implikasi adalah:
IF x is A THEN y is B
dengan x dan y adalah skalar, dan A dan B adalah himpunan fuzzy. Proposisi yang mengikuti IF disebut sebagai anteseden, sedangkan proposisi yang
mengikuti THEN disebut sebagai konseskuen. Proposisi ini dapat diperluas dengan menggunakan operator fuzzy, seperti (Cox, 1994):
IF ( x1is A1) o (x2is A2) o (x3is A3) o …… o(xNis AN) THEN y is B
Dengan o adalah operator (misal: OR atau AND).
2.5.4Fuzzy Inference System
Ada 2Fuzzy Inference System(FIS) yang populer digunakan yaitu metode Mamdani dan metode Sugeno. Adapun penjelasan dari masing-masing metode
tersebut adalah sebagai berikut.
Metode mamdani sering dikenal sebagai metode Max-Min (Kusumadewi
dan Purnomo, 2010). Metode ini diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Untuk mendapatkan output, diperlukan 4 tahapan:
1. Pembentukan himpunan fuzzy 2. Aplikasi fungsi implikasi 3. Komposisi Aturan
4. Penegasan(defuzzy).
B. Metode Sugeno
Penalaran dengan metode Sugeno hampir sama dengan penalaran metode Mamdani, hanya saja output (konsekuen) sistem tidak berupa konstanta atau persamaan linear (Kusumadewi dan Purnomo, 2010). Metode ini diperkenalkan
oleh Takagi-Sugeno Kang pada tahun 1985, sehingga metode ini sering dinamakan dengan metode TSK.
Sistem fuzzy Sugeno memperbaiki kelemahan yang dimiliki oleh sistem
fuzzy murni untuk menambah suatu perhitungan matematika sederhana sebagai bagian THEN. Pada perubahan ini, sistem fuzzy memiliki suatu nilai rata-rata
tertimbang (Weighted Average Values) didalam bagian aturan fuzzy IF-THEN. Sistem fuzzy Sugeno memiliki kelemahan terutama pada bian THEN, yaitu dengan adanya perhitungan matematika sehingga tidak menyediakan kerangka
alami untuk merepresentasikan penggetahuan manusia sebenarnya. Permasalahan kedua adalah tidak adanya kebebasan untuk menggunakan prinsip yang berbeda
dalam logika fuzzy, sehingga ketidakpastian dari sistem fuzzy tidak dapat direpresentasikan secara baik.
21
1. Model Fuzzy Sugeno Orde-Nol
Secara umum bentuk model fuzzy Sugeno Orde-Nol adalah:
IF ( x1is A1) o (x2is A2) o (x3is A3) o …… o(xNis AN) THEN z=k
dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan k adalah suatu konstanta (tegas) sebagai konsekuen
2. Model Fuzzy Sugeno Orde-Satu
Secara umum bentuk model fuzzy Sugeno Orde-Satu adalah:
IF ( x1is A1) o (x2is A2) o …… o(xNis AN) THEN z=p1*x1+…+pN*xN+q
dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan pi adalah suatu konstanta (tegas) ke-i dan q juga merupakan konstanta dalam konsekuen.
Apabila komposisi aturan menggunakan metode Sugeno, maka
deffuzifikasi dilakukan dengan cara mencari nilai rata-ratanya.
2.6Database
Menurut Sutami dan Sutrisno (2005) databasemerupakan kumpulan data yang pada umumnya menggambarkan aktivitas-aktivitas dan pelakunya dalam
suatu organisasi, misalkan database universitas yang berisi mahasiswa, dosen, kuliah, dan lain-lain. Sistem database adalah sistem komputer yang digunakan untuk menyimpan dan mengelola data tersebut. Sistem database memiliki empat
komponen penting, yaitu.
1. Data, merupakan informasi yang disimpan dalam suatu struktur tertentu yang
2. Hardware, merupakan perangkat keras berupa komputer dengan media
penyimpan sekunder yang digunakan untuk menyimpan data karena pada umumnya database memiliki ukuran yang besar
3. Software, merupakan perangkat lunak yang digunakan untuk melakukan pengelolaan data
4. User, merupakan orang yang menggunakan data yang tersimpan dan terkelola.
User dapat berupa seorang yang mengelola database tersebut, yang disebut dengan database administrator (dba), bisa juga end user yang mengambil
hasil dari pengelolaandatabasemelalui bahasa query.Userjuga dapat seorang programmer yang membangun aplikasi yang terhubung ke database dengan menggunakan pemrograman seperti C, VB, dll.
2.7 MySQL
Menurut Nugroho (2004) MySQL adalah sebuah programdatabaseserver
yang mampu menerima dan mengirimkan datanya dengan sangat cepat, multi user serta menggunakan perintah standar SQL (Structured Query Language). MySQL
memiliki dua bentuk lisensi, yaitu FreeSoftware dan Shareware. MySQL yang umum digunakan adalah MySQL FreeSoftware yang berada dibawah lisensi GNU/GPL (General Public License).
MySQL termasuk database yang memiliki beberapa distro yang mampu dijalankan pada beberapa platform, meski secara resmi tentu saja memilliki
23
bermunculan beberapa distro yang mampu berjalan pada beberapa platform yang
sifatnyasharewaredancorporate,seperti Windows.
2.8 PHP
PHP singkatan dari Hypertext Preprocessor yang digunakan sebagai bahasa script server-side dalam pengembangan web yang disisipkan pada
dokumen HTML. Menurut Peranginangin (2006) PHP merupakan software open source yang disebarkan dan dilisensikan secara gratis dan ditulis menggunakan
bahasa C. Penggunaan PHP memungkinkan web dapat dibuat dinamis sehingga maintenancesitus web tersebut menjadi lebih mudah dan efisien.
Menurut Peranginangin (2006) PHP memiliki banyak kelebihan yang tidak
dimiliki oleh bahasascriptsejenis. PHP difokuskan pada pembuatanscript server-side, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan
kemampuan mengirim serta menerima cookies, bahkan lebih daripada kemampuan CGI. PHP dapat digunakan pada semua sistem operasi antara lain
Linux, UNIX, Microsoft Windows, Mac OS X dan RISC OS. PHP juga mendukung banyak web serve3r seperti Apache, Microsoft Internet Information Server (MIIS), Personal Web Server (PWS) dan masih banyak lagi lainnya.
Syntaxprogram ditulis dalam apitan tanda khusus PHP. Ada empat macam pasangan tag PHP yang dapat digunakan untuk menandai blok script php. Berikut
contoh penulisansyntaxPHP: 1. <?php …?>
3. <?...?>
25 BAB III
METODE PENELITIAN
3.1 Perancangan Sistem Dan Blok Diagram Sistem
Didalam perancangan aplikasi IDS dengan menggunakan metode fuzzy
terdiri dari 2 modul utama, yaitu modul packet sniffing, dan modul fuzzy dimana
masing-masing modul mempunyai fungsi yang berbeda-beda. Modul paket
sniffing berfungsi untuk mengumpulkan data dan modul fuzzy berfungsi untuk
mengklasifikasikan serangan berdasarkan metode fuzzy Sugeno. Log serangan
ditampilkan bentuk web.
Penyusunan dua modul diatas berdasarkan atas diagram alur sistem aplikasi
IDS sebagai berikut:
Gambar 3.1.Alur Kerja Sistem IDS
Gambar 3.1 menunjukkan alur kerja sistem IDS secara umum. Sistem mulai
bekerja dengan menjalankan modul sniffing paket yang berfungsi untuk
memonitoring semua paket data yang melalui interface ethernet router. Aplikasi
termonitor oleh router akan disimpan dalam bentuk database. Dari database
tersebut diolah untuk membuat keputusan fuzzy melaluiquerysql.
Pengolahan data dilakukan berdasarkan aturan-aturan fuzzy yang telah
dibentuk sesuai dengan karakter serangan. Setelah melalui proses klasifikasi
serangan oleh modul fuzzy selanjutnya data-data yang terindikasi serangan
ditampilkan dalam bentuk web log. Sistem IDS ini diterapkan pada router yang
berfungsi sebagai keluar masuknya trafik jaringan. Adapun diagram blok topologi
sistem IDS adalah sebagai berikut:
Gambar 3.2. IDS Topologi
Pada Gambar 3.2 IDS akan memonitor paket data dari workstation
192.168.10.5/24, data yang terindikasi serangan akan disimpan dan ditampilkan
dalam history log router. Penampilan log sistem IDS berbasis web dengan
memanfaatkan pemrograman php. Pada weblogdata serangan ditampilkan alamat
ip penyerang sehingga memudahkan administrator jaringan untuk melakukan
analisis serangan.
3.2 Rancangan Sistem
Sesuai dengan diagram alur sistem ids pada Gambar 3.1 terdapat 3
komponen penting dalam pembuatan aplikasi IDS dengan menggunakan metode
fuzzy, yaitu paket sniffing, pengklasifikasian serangan dan web log. Dibawah ini
27
3.2.1 Perancangan ModulSniffingPaket
Modul paket sniffing merupakan tahapan awal dalam perancangan sistem
IDS. Modul ini berperan untuk menangkap data serangan dan menyimpan data
tersebut ke dalam database. Aplikasi network sniffing yang digunakan adalah
snort-mysql. Dibawah ini merupakan blok diagram alur bagaimana snort bekerja.
Gambar 3.3.Diagram Alur Snort(Nalneesh Gaur, 2001).
Gambar 3.3 merupakan diagram alur Snort, dari Gambar 3.3 dapat
dilihat beberapa tahapan snort untuk mendapatkan log paket data. Tahap awal
snort menangkap paket data mentah, paket data ini masih berupa susunan bilangan
biner. Paket data ditangkap oleh decoder modul melalui berbagai interface
jaringan (contohnya Ethernet, PPP), Setelah data diolah olehdecoder selanjutnya
detection engine mengaplikasikan aturan-aturan protokol dalam snort ke dalam
paket tersebut. Data yang telah diolah oleh detection engine ditampilkan sebagai
Data log hasil sniffing snort akan ditampilkan dalam bentuk database.
Dari data inilah nantinya akan diolah untuk memunculkan hasil keputusan
serangan. Berikut ER diagramdatabasesnort:
Gambar 3.4.ER Diagram Snort (Roman Danyliw, 2002)
Dalam Gambar 3.4 ditunjukkan ER Diagram snort, dalam ER Diagram dapat
dilihat bahwa snort mempunyai 22 tabel. Tabel event terhubung dengan 8 tabel
yaitu tabel iphdr, sensor, data, icmphdr, udphdr, tcphdr, signature, sensor, dan
acid_ag_alerts. Tabel eventmenyimpan waktu capture packet terjadi, sehingga 8
tabel yang membutuhkan data waktu capture packet akan memanggil data dari
tabel event. Tabeliphdr terhubung dengan 3 tabel yaituprotocols, acid_ip_cache
dan opt. Dalam tabel iphdr menyimpan data ip host pengirim, ip host penerima,
ip protokol dan ip length. Dalam sistem IDS pengolahan data diambil dari tabel
29
3.2.2SamplingData Serangan
Sampling data serangan berguna untuk membantu menentukan besaran
domain kategori variabel fuzzy. Melalui sampling data yang tersimpan dalam
database snort terdapat 4 jenis data paket yang berbeda yaitu paket normal, paket
udp flooding, paket tcp flooding dan paket icmp flooding. Berikut ini sampling
masing-masing paket data yang ditunjukkan dalam Tabel 3.1.
Tabel 3.1.Sampling Data Serangan
Paket Frekuensi (/s) Jumlah
Tabel 3.1 berisi contoh nilai frekuensi dan length dari paket serangan yang
ditangkap oleh Snort, data tersebut diambil dari data yang tersimpan dalam tabel
acid_eventdaniphdrpada database snort.
3.2.3 Perancangan Fuzzy
Aplikasi IDS yang dirancang ini menggunakan algoritma fuzzy yang
menghasilkan identifikasi serangan ke dalam 4 bagian yaitu bukan serangan atau
normal, low, middle, dan high. Fuzzy yang digunakan menggunakan metode
Sugeno. Dalam metode fuzzy Sugeno terdapat 3 tahapan utama dalam
menentukan hasil keputusan yaitu pembentukan fungsi keanggotaan, penyusunan
aturan fuzzy dan defuzzyfikasi . Dibawah ini dijelaskan tahapan penyusunan
Tahap pertama adalah pembentukan fungsi keanggotaan dimana terdapat
2 fungsi keanggotaan fuzzy yaitu fungsi keanggotaan variabel frekuensi dan
length.
Fungsi keanggotaan variablelength:
Gambar 3.5.Fungsi Keanggotaan VariabelLength
Nilai length yang ditunjukkan Gambar 3.5 berdasarkan acuan yang didapat dari
hasilsamplingpada Tabel 3.1. Darisamplingtersebut diketahui nilailengthICMP
normal adalah 180 Byte per detik sehingga ditentukan nilai length kategori low
adalah 190 - 200 Byte (derajat keanggotaan 1), selanjutnya dipilih kelipatan 20
Byte untuk masing masing titik tertinggi derajat keanggotaan (=1) tiap kategori.
Pada variabel length(B), data yang dimiliki adalah 200 B, 220 B dan 240
B, dengan demikian pada variabel ini bisa dibagi menjadi 3 himpunan fuzzy yaitu
LOW, MEDIUM dan HIGH. Himpunan fuzzy LOW memiliki domain [190,220],
dengan derajat keanggotaan tertinggi (=1) terletak pada 190-200 B yang artinya
length paket adalah LOW, tetapi jika frekuensi lebih dari 200 B maka kondisi
length paket mendekati MEDIUM. Himpunan fuzzy LOW direpresentasikan
dengan fungsi keanggotaan trapesium dengan derajat keanggotaan semakin
31
Himpunan fuzzy MEDIUM memiliki domain [200,240], dengan derajat
keanggotaan MEDIUM tertinggi (=1) terletak pada nilai 220. Jika nilai length
kurang dari 220 B maka kondisi nilai length mendekati kondisi LOW, sehingga
derajat keanggotaannya pada himpunan MEDIUM akan berkurang. Tetapi jika
nilai length melebihi nilai 240 B maka kondisi nilai length mendekati kondisi
HIGH. Himpunan fuzzy MEDIUM direpresentasikan dengan fungsi keanggotaan
segitiga dengan derajat keanggotaan tertinggi (=1) jikalengthmendekati nilai 240
B.
Himpunan fuzzy HIGH memiliki domain [240, +] dengan derajat
keanggotaan HIGH tertinggi (=1) terletak pada nilai lebih dari sama dengan 240.
Jika nilai length kurang dari 240 B maka variabrel length mendekati kondisi
MEDIUM, sehingga derajat keanggotaannya pada himpunan HIGH akan
berkurang sedangkan derajat keanggotaan pada himpunan MEDIUM akan
bertambah. Tetapi jika frekuensi paket melebihi 240 B maka kondisilengthpaket
adalah HIGH. Himpunan fuzzy HIGH direpresentasikan dengan fungsi
keanggotaan trapesium dengan derajat keanggotaan tertinggi (=1) jika nilai length
lebih dari sama dengan 240 B.
Berikut ini adalah fungsi keanggotaan frekuensi:
Nilai frekuensi yang ditunjukkan Gambar 3.6 berdasarkan acuan yang didapat dari
hasilsamplingpada Tabel 3.1. Darisamplingtersebut diketahui nilailengthICMP
normal adalah 3 per detik sehingga ditentukan nilai frekuensi low adalah 1 – 6
(derajat keanggotaan 1) dengan nilai terkecil adalah 1, untuk selanjutnya dipilih
kelipatan 2 untuk masing masing titik tertinggi derajat keanggotaan (=1) tiap
kategori.
Pada variabel frekuensi, data yang dimiliki 6(/s), 8(/s) dan 1(/s), dengan
demikian variabel ini bisa dibagi menjadi 3 himpunan fuzzy, yaitu LOW,
MEDIUM dan HIGH. Himpunan fuzzy LOW memiliki domain [0,8] dengan
derajat keanggotaan LOW tertinggi (=1) terletak pada nilai lebih dari sama
dengan 0(/s) dan kurang dari 6(/s). Jika tingkat frekuensi terletak padarange6(/s)
sampai 8(/s) maka kondisi frekuensi paket mendekati kondisi MEDIUM.
Himpunan fuzzy LOW direpresentasikan dengan fungsi keaanggotaan trapesium
dengan derajat keanggotaan tertinggi mencapai (=1) apabila nilai length mencapai
range0-40(/s).
Himpunan fuzzy MEDIUM memiliki domain [6,10] dengan derajat
keanggotaan tertinggi (=1) terletak pada nilai 8(/s). Jika tingkat nilai frekuensi
kurang dari 8(/s), maka kondisi length sudah mendekati LOW. Tetapi jika tingkat
frekuensi melebihi 8(/s) maka kondisi frekuensi mendekati HIGH. Himpunan
fuzzy MEDIUM direpresentasikan dengan fungsi keanggotaan segitiga dengan
derajat keanggotaan tertinggi (=1) jika tingkat nilai length berada pada nilai 8(/s).
Himpunan fuzzy HIGH memiliki domain [10,+] dengan derajat
keanggotaan HIGH tertinggi (=1) terletak pada nilai lebih lebih dari sama dengan
33
mendekati MEDIUM. Tetapi jika tingkat frekuensi melebihi 10(/s) maka tingkat
frekuensi adalah HIGH. Himpunan fuzzy HIGH direpresentasikan dengan fungsi
keanggotaan trapesium dengan derajat keanggotaan tertinggi (=1) apabila tingkat
frekuensi lebih dari sama dengan 10(/s).
Tahap kedua adalah penyusunan aturan fuzzy, berikut adalah tabel
aturan fuzzy:
Tabel 3.2.Aturan Fuzzy Frekuensi
Length High Medium Low
High Attack High Attack High Attack Med Medium Attack High Attack Med Attack Med Low Attack Med Attack Med Attack Low
Dari Tabel 3.2 diketahui terdapat 9 aturan fuzzy yaitu:
1. [R1]IFFrekuensi HIGH and Length HIGHTHENATTACK HIGH
2. [R2]IFFrekuensi HIGH and Length MEDIUMTHENATTACK HIGH
3. [R3]IFFrekuensi HIGH and Length LOWTHENATTACK HIGH
4. [R4]IFFrekuensi MEDIUM and Length HIGHTHENATTACK HIGH
5. [R5] IF Frekuensi MEDIUM and Length MEDIUM THEN ATTACK
MEDIUM
6. [R6]IFFrekuensi MEDIUM and Length LOWTHENATTACK MEDIUM
7. [R7]IFFrekuensi LOW and Length HIGHTHENATTACK MEDIUM
8. [R8]IFFrekuensi LOW and Length MEDIUMTHENATTACK MEDIUM
9. [R9]IFFrekuensi LOW and Length LOWTHENATTACK LOW
Tahap yang ketiga adalah pembentukan defuzyfikasi. Berikut ini adalah
contoh jika paket data yang didapatkan memiliki frekuensi 3(/s) dan length 243B.
α-predikat1 = µFrHIGH
n
µLthHIGH= min(µFrHIGH(3), µLthHIGH(243))
=min(0;1) = 0
Nilai z1 = 2400
2. [R2]IFFrekuensi HIGH and Length MEDIUMTHENATTACK HIGH
α-predikat2 = µFrHIGH
n
µLthMEDIUM= min(µFrHIGH(3), µLthMEDIUM(243))
=min(0;0) = 0
Nilai z1 = 2400
3. [R3]IFFrekuensi HIGH and Length LOWTHENATTACK HIGH
α-predikat3 = µFrHIGH
n
µLthLOW= min(µFrHIGH(3), µLthLOW(243))
=min(0;0) = 0
Nilai z1 = 2400
4. [R4]IFFrekuensi MEDIUM and Length HIGHTHENATTACK HIGH
α-predikat4 = µFrMEDIUM
n
µLthHIGH= min(µFrHIGH(3), µLthHIGH(243))
=min(0;1) = 0
Nilai z1 = 2400
5. [R5] IF Frekuensi MEDIUM and Length MEDIUM THEN ATTACK
MEDIUM
α-predikat5 = µFrMEDIUM
n
µLthMEDIUM35
=min(0;0) = 0
Nilai z2 = 1760
6. [R6]IFFrekuensi MEDIUM and Length LOWTHENATTACK MEDIUM
α-predikat6 = µFrMEDIUM
n
µLthLOW= min(µFrMEDIUM(3), µLthLOW(243))
=min(0;0) = 0
Nilai z2 = 1760
7. [R7] IFFrekuensi LOW and Length HIGHTHENATTACK MEDIUM
α-predikat7 = µFrLOW
n
µLthHIGH= min(µFrLOW(3), µLthHIGH(243))
=min(1;1) = 1
Nilai z2 = 1760
8. [R8] IFFrekuensi LOW and Length MEDIUMTHENATTACK MEDIUM
α-predikat8 = µFrLOW
n
µLthMEDIUM= min(µFrLOW(3), µLthMEDIUM(243))
=min(1;0) = 0
Nilai z2 = 1760
9. [R9]IFFrekuensi LOW and Length LOWTHENATTACK LOW
α-predikat9 = µFrLOW
n
µLthLOW= min(µFrLOW(3), µLthLOW(243))
=min(1;0) = 0
Nilai Zx adalah nilai perkalian batas masing-masing derajat keanggotaan tertinggi
(=1) suatu kategori. Setelah didapatkan masing-masing α-predikat dan nilai zx
untuk setiap aturan maka diperoleh nilai z, yaitu:
Z= αpred1*z1 + αpred2*z1 + αpred3*z1 + αpred4*z1 + αpred5*z2 + αpred6*z2 +
αpred7*z2 + αpred8*z2 + αpred9*z3 / αpred1 + αpred2 + αpred3 + αpred4
=0 * 2400 + 0 * 2400 + 0 * 2400 + 0 * 2400 + 0 * 1760 + 0 * 1760+ 1 * 1760 + 0
* 1760 + 0 * 1200 / 0+1+0+0+0+0+0+0
=1760/1 = 1760
Kategori defuzzyfikasi =Attack Middle
Dimana kategori untuk masing masing z adalah:
1200 =Attack Low
1760 = Attack Middle
2400 =Attack High
3.3 Desain Sistem
Desain sistem IDS meliputi pengolahan database, proses
pengklasifikasian serangan dan proses penampilan web log. Untuk lebih jelasnya
dapat dilihat Gambar 3.7.
37
Pada hasil yang ditampilkan dalam aplikasi PHP, web log merupakan
hasil query defuzzyfikasi dari tabel database snort. Proses defuzzyfikasi
menggunakan query sql tidak terlalu membebani kinerja router, sehingga router
dapat memproses defuzzyfikasi secara cepat. Sistem pendeteksian bersifat
realtime jadi data serangan yang diolah bersifat up to date artinya data tersebut
setiap saat dapat bertambah. Aplikasi yang dibuat hanya dijalankan sekali dan
akan menjalankan proses terus menerus tanpa henti, kecuali jika aplikasi ditutup
oleh useryang berwenang sehingga secara otomatis sistem tidak akan melakukan
proses pendeteksian serangan.
3.3.1 DesainInput
Input dari sistem pendeteksian serangan adalah berupa data serangan
yang setiap saat terus bertambah dari database log milik snort selanjutnya akan
diproses oleh program sesuai queryfuzzy yang ada. Data input terdiri dari 2 tabel
snort yaitu tabeleventdaniphdr.Gambar 3.8 merupakan contoh data tabelevent.
Gambar 3.8 menunjukkan Tabel event yang mempunyai beberapa field yaitu sid,
cid, signature dan timestamp. Field data yang diambil untuk diolah dalam query
defuzzyfikasi hanya 3 field yaitu sid, cid dan timestamp. Field sid dan cid
menghubungkan ke tabel paket data seperti IP/TCP/UDP/ICMP header,
sedangkantimestampberisi waktu data ditangkap olehpacket sniffersnort.
Berikut ini adalah data tabeliphdr:
Gambar 3.9.Data Tabel iphdr
Pada Gambar 3.9 diatas merupakan databasesnort yang terdiri dari berbagai field
hasil log paket data. Namun tidak semua data yang ada di database log
digunakan. Untuk membangun sistem IDS ini hanya 5 parameter yang digunakan
yaitu sid, cid, ip_src, ip_dst dan ip_proto. Data log yang sudah dilakukan seleksi
39
Gambar 3.10.Data iphdr yang sudah diseleksi
3.3.2 Desain Proses
Perintah query yang dipakai untuk melihat dan menyeleksi data dari
berbagai field adalah select. Syntax dasar penggunaan select adalah select [nama
field] from [nama tabel] where [expr…] group by [expr..]. Perintah query untuk
menampilkan data yang terdapat pada Gambar 3.10 adalah select sid, cid, ip_src,
ip_dst, ip_proto from iphdr.
Berikut blok diagramquerydefuzzyfikasi yang ditunjukkan oleh Gambar 3.11.
Pada Gambar 3.11query mulai bekerja dengan memilih data yang ada pada tabel
event dan iphdr. Adapun field yang diseleksi adalah timestamp, ip_src, ip_dst,
ip_len dan ip_proto. Selanjutnya query mencari nilai frekuensi dan rata-rata
ip_len berdasarkan data field timestamp yang telah digroup per satuan detik.
Untuk nilai alpha frekuensi dan alpha length didapatkan dengan memasukkan
nilai frekuensi dan rata-rata ip_len hasil group timestamp kedalam metode fuzzy
sugeno. Tahapan akhir yaitu defuzzyfikasi didapatkan dengan menjumlahkan
hasil perkalian alpha dan nilai zx yang sudah ditentukan kemudian dibagi dengan
penjumlahan 9 nilai rule. Pencocokan data dilakukan berdasarkan sid dan cid.
3.3.3 Desain Output
Output yang dihasilkan oleh sistem pendeteksian serangan ini berupa
data hasil pengolahan query yang menghasilkan nilai defuzzyfikasi. Nilai
defuzzyfikasi inilah yang digunakan sebagai acuan untuk menentukan hasil
serangan. Berikut ini adalah kategori nilai serangan, dapat dilihat pada Tabel 3.3.
Tabel 3.3.Pengklasifikasian Hasil Serangan Nilai Defuzzyfikasi Kategori Attack
0 Bukan Serangan
1 – 1200 Low
1201 – 2399 Medium
>= 2400 High
Nilai defuzzyfikasi yang ditunjukkan oleh Tabel 3.3 didapatkan dari hasil
perkalian masing-masing batas derajat keanggotaan 1 dari tiap kategori variabel
lengthdan frekuensi. Batas derajat keanggotaan 1 kategori low terletak pada nilai
200 untuk variabellengthdan 6 untuk variabel frekuensi maka hasil perkalian dari
41
terletak pada nilai 220 untuk variabel length dan 8 untuk variabel frekuensi maka
hasil perkalian dari 2 variabel tersebut adalah 220 * 8 = 1760. Batas derajat
keanggotaan 1 kategori highterletak pada nilai 240 untuk variabel length dan 10
untuk variabel frekuensi maka hasil perkalian dari 2 variabel tersebut adalah 240 *
10 = 2400. Dari perkalian tersebut didapatkan jangkauan nilai lowadalah 1-1200,
jangkauan kategori high lebih dari sama dengan 2400 sehingga jangkauan nilai
middleadalah 1201-2399. Nilai defuzzyfikasi 0 adalah nilai untuk kategori bukan
serangan sebab nilai 0 menyatakan bahwa suatu paket memiliki derajat
keanggotaan 0.
3.3.4 Desain Autentifikasi
Autentifikasi digunakan untuk mengatur user yang diperbolehkan
mengakses log IDS. Blog diagram proses autentifikasi user adalah sebagai
berikut.
Gambar 3.12.Diagram Blok Autentifikasi
Pada Gambar 3.12 proses autentifikasi dimulai dengan memasukkan username
sesuai dengan data yang terdapat pada database. Jika username dan password
benar maka oleh sistem akan diijinkan untuk masuk pada halaman web log IDS,
sebaliknya jika salah terdapat dua kemungkinan yaitu ingin mengulangi
memasukkanusernamedanpasswordatau ingin mengakiri proses autentifikasi.
3.4 Implementasi Program
Berdasarkan uraian dari desain sistem, maka tahapan utama untuk
membangun aplikasi pendeteksian serangan dengan menggunakan metode fuzzy
dengan algoritma fuzzy Sugeno yaitu tahap perolehan data oleh snort sebagai data
log input. Sebelum dilakukan proses pengolahan data menggunakan fuzzy Sugeno
maka data dari log snort harus diseleksi sesuai kebutuhan variabel fuzzy. Setelah
didapatkan data variabel fuzzy selanjutnya diolah menurut tahapan-tahapan desain
sistem fuzzy.
3.4.1 Pengumpulan Data (Database LogSnort)
Snort mempunyai kemampuan mendeteksi serangan dan menuliskan
data-data serangannya di filelog, namun snort tidak hanya bisa menulis log pada
sebuah file saja, namun snort juga bisa menuliskan log nya kedalam sebuah
database baik itu database mysql, postgre ataupun oracle. Agar snort dapat
menuliskan data log kedalam database maka perlu dilakukan konfigurasi yang
berbeda dari konfigurasi standar.
43
Gambar 3.13.Diagram Blok Pengumpulan Data
Pada Gambar 3.13 langkah yang dilakukan pertama kali adalah melakukan
instalasi mysql-server. Kemudian langkah kedua adalah melakukan instalasi php,
selanjutnya melakukan instalasi phpmyadmin.Service terakhir yang perlu diinstal
adalah snort-mysql. Langkah terakhir adalah membuat databasefuzzy yang berisi
variabel-variabel fuzzy.
Dibawah ini merupakan penjelasan langkah-langkah instalasi service
pada Gambar 3.13, sebagai berikut:
1. Instalasi mysql-server
Sebelum instalasi snort maka perlu dilakukan instalasi database server yaitu
menggunakan mysql-server. Untuk menginstall package mysql-server
dilakukan pada shell linux dengan mengetikkan perintah #apt-get install
mysql-server. Secara otomatis package dan library dependencies akan
Gambar 3.14.Proses Instalasi MySQL-Server
2. Instalasi php5
Langkah instalasi php5 dilakukan dengan mengetikkan perintah #apt-get
install php5. Kemudian ketik y untuk konfirmasi instalasi seperti ditunjukkan
pada Gambar 3.15.
Gambar 3.15.Proses Instalasi PHP5
3. Instalasi phpmyadmin
Phpmyadmin digunakan untuk memudahkan memonitor dan memanajemen
45
install phpmyadmin. Kemudian ketik y untuk konfirmasi instalasi seperti
ditunjukkan pada Gambar 3.16.
Gambar 3.16.Konfirmasi Instalasi Phpmyadmin
Setelah proses instalasi selesai akan muncul tampilan antarmuka konfigurasi
web server. Pilih Apache2 sebagai web server. Proses ditunjukkan pada
Gambar 3.17.
Gambar 3.17Pemilihan Web Server
Proses selanjutnya adalah pemilihan auto configure atau manual configure
database mysql. Untuk memudahkan set up database pilih yes. Proses
Gambar 3.18Pemilihan auto konfigurasidatabase
Proses berikutnya adalah memasukkan password administrasi database
pengguna. Proses ditunjukkan seperti pada Gambar 3.19
Gambar 3.19Password MySQL untuk phpmyadmin
Proses pada Gambar 3.19 merupakan tahapan akhir konfigurasi phpmyadmin.
Gambar 3.20 menunjukkan akhir proses instalasi dan konfigurasi
47
Gambar 3.20.Proses Akhir Instalasi dan Konfigurasi Phpmyadmin
4. Instalasi snort-mysql
Untuk instalasi snort-mysql dapat menggunakan console dengan perintah
#apt-get-install snort-mysql. Selanjutnya akan muncul jendela untuk mengisi
address rangejaringan lokal.
Gambar 3.21.Konfigurasi IP Address Local Network
Gambar 3.21 merupakan konfigurasi IP Address jaringan lokal, pada sistem
IDS ini alamat jaringan lokal adalah 192.168.10.0/24. Artinya snort akan
memantau jaringan lokal 192.168.10.0/24.
Gambar 3.22 merupakan konfirmasi untuk set updatabasesnort-mysql. Pilih
<Yes>untuk melanjutkan konfigurasidatabase.
Gambar 3.23.Tahap akhir Package Configuration
Gambar 3.23 merupakan tahap akhir package configuration. Pilih <Ok>
untuk mengakhiri konfigurasi paket. Langkah selanjutnya adalah membuat
database snort melalui mysql command prompt. Login pada terminal dengan
mengetikkan perintah #mysql –u root –p, selanjutnya muncul pesan Enter
password:. Jika password telah benar dimasukkan maka dapat masuk mysql
command promtseperti Gambar 3.24.
49
Gambar 3.24 menunjukkan tampilan mysql command prompt yang berguna
untuk menjalankan operasi mysql. Untuk membuat database snort dilakukan
melalui perintah #create database snort;. Langkah selanjutnya adalah
kembali keluar dari mysql prompt dengan perintah #quit; sehingga akan
kembali padashelllinux. Setelahdatabaseberhasil dibuat langkah selanjutnya
adalah memasukkan skemadatabasesnort pada databasesnort-mysql dengan
perintah #zcat create /usr/share/doc/snort-mysql/create_mysql.gz | mysql –u
root –p snort. Langkah selanjutnya adalah melakukan konfigurasi ulang
database snort-mysql dengan cara mengetikkan perintah #dpkg-reconfigure
snort-mysql.
Gambar 3.25.Snort Start Method
Gambar 3.25 adalah pemilihan metode kapanservicesnort dijalankan. Metode
yang dipilih adalah boot. Artinya pada saat komputer dihidupkan secara
otomatis snort akan dijalankan, sehingga user tidak perlu untuk memulai
servicesnort secara manual.
Gambar 3.26 merupakan konfigurasi interface snort yang digunakan untuk
mendengarkan paket data pada suatuhost. Interface yang dipilih adalah eth0.
Gambar 3.27.Mengaktifkan Snort dalam Mode Promiscuous
Gambar 3.27 merupakan proses untuk mengaktifkan snort dalam mode
promiscuous. Modepromiscuousmembuat snort mampu mendengarkan paket
yang melewati segmen Ethernet dalam koneksi antar 2 host komputer lainnya.
Langkah terakkhir adalah menghilangkan file db-pending-config pada
database snort, agar snort dapat berjalan dengan baik. Perintah untuk
menghapus file adalah#rm –rf /etc/snort/db-pending-config
5. Menjalankan Snort
Untuk menjalankan snort pertama kali dilakukan dengan mengetik perintah
#/etc/init.d/snort start. Untuk selanjutnya snort akan berjalan otomatis pada
saat booting komputer. Untuk melihat apakah snort sudah jalan atau belum
adalah dengan menjalankan perintah #ps -aux | grep snort seperti yang
ditunjukkan pada Gambar 3.28.
51
Seperti yang ditunjukkkan oleh Gambar 3.28 service snort telah berjalan
dalam modedaemon.
6. Membuat tabel Fuzzy
Secaradefaulttabel snort-mysql hanya terdiri dari 22 tabel. Tabel fuzzy berisi
26 kolom yang berisikan data variabel fuzzy dan klasifikasi serangan. Untuk
membuat tabel fuzzy dapat dilakukan melalui phpmyadmin.
Gambar 3.29.Membuat Tabel Baru
Tabel fuzzy dibuat dengan cara mengisikan nama tabel dan jumlah kolom,
kemudian klik Go. Seperti yang ditunjukkan pada Gambar 3.29 nama tabel
adalahfuzzy_idsdan jumlah kolom adalah 26.
.
Gambar 3.30 merupakan halaman pengisian nama kolom tabel beserta dengan
atributnya. Setelah melakukan pengisian secara lengkap klik Save untuk
menyimpan tabel fuzzy. Berikut ini adalah struktur tabel fuzzy yang telah
dibuat.
Tabel 3.4.Struktur Tabel fuzzy_ids
Column Type
Alphaflow : alpha fuzzy frekuensi low
Alphafmid : alpha fuzzy frekuensi middle
Alphafhigh : alpha fuzzy frekuensi high
Alphallow : alpha fuzzy length low
53
Alphalhigh : alpha fuzzy length high
Rule 1 -9 : Aturan fuzzy
Tabel 3.4 merupakan struktur tabel fuzzy_ids, kolom sid dan cid merupakan
foreign keydari tabelacid_event, sedangkan id menjadiprimary keydari tabel
fuzzy_ids. Kolom timestamp, ip_src, ip_dst dan ip_proto berisikan data yang
sama dengan tabel acid_event. Kolom frekuensi berisi jumlah banyaknya
paket data persatuan detik, kolom ip_len berisi banyaknya jumlah data
persatuan detik. Kolom alphaflow, alphafmid, alphafhigh, alphallow,
alphalmid dan alphalhigh berisi perhitungan alpha fuzzy dari variabel
frekuensi dan length. Kolom rule1, rule2, rule3, rule4, rule5, rule6, rule7,
rule8 dan rule9 berisi perhitungan nilai zx aturan fuzzy. Kolom attack berisi
perhitungan defuzzyfikasi dan kolom attack_kategori berisi klasifikasi
serangan.
3.4.2 Konfigurasi IPAddress
Dalam pengujian sistem IDS berdasarkan metode fuzzy ini terdapat 2
konfigurasi utama yaitu konfigurasi ip address router dan ip address host.Berikut
ini konfigurasi masing-masing ipaddress:
1. Konfigurasi ipaddressrouter
Konfigurasi ip address router dilakukan dengan mengedit file
/etc/network/interfaces, dengan mengetikkan perintah #gedit
/etc/network/interfaces.Kemudian mengisi konfigurasi file dibawah ini:
auto lo
iface lo inet loopback auto eth0
netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.0
Kemudian klik File – Save pada window gedit, selanjutnya jalankan perintah
#/etc/init.d/networking restart
2. Konfigurasi ip address client
Adapun sistem operasiclientadalah Windows 7, oleh karena itu pengaturan ip
addressdilakukan dengan cara:
Klik kanan padaicon network pilihNetwork and Sharing Center,seperti yang
ditunjukkan pada Gambar 3.31.
Gambar 3.31.Network and Sharing Center
Klik Change Adapter Setting sehingga muncul jendela Network Connection
seperti yang ditunjukkan pada Gambar 3.32.
55
Klik kanan pada icon Local Area Connection pilih Properties, sehingga
muncul jendela Local Area Connection Properties seperti yang ditunjukkan
pada Gambar 3.33.
Gambar 3.33.Jendela Local Area Connection Properties
Kemudian klikInternet Protocol Version 4 (TCP/IPv4),pilihProperties
sehingga muncul jendela baru seperti pada Gambar 3.34.
Konfigurasi ip yang ditunjukkan oleh Gambar 3.34 terdiri dari beberapa
bagian yaitu ip address dengan alamat 192.168.10.5. subnet mask
255.255.255.0, default gateway 192.168.10.12. Konfirmasi ip address dapat
dilakukan dengan menekan tombolOK.
3.4.3 Penulisan Program
A. ProgramAuthentifikasi
Berdasarikan alur diagram yang ditunjukkan pada Gambar 3.12 dibuat
diagram blok implementasi program yaitu:
57
Gambar 3.35 menunjukkan username dan password disimpan dalam variabel
myusernamedanmypasswordpada halaman webmain_login.php.Scriptprogram
tersebut adalah sebagai berikut:
<input name=”myusername” type=”text” id=”myusername”> <input name=”mypassword” type=”password” id=”mypassword”>
Selanjutnya program akan memverifikasi username dan password pada halaman
checklogin.php. Verifikasi dimulai dengan membuka koneksi dengan database
terlebih dahulu, yaitu denganscript:
$host=”localhost”;
Setelah koneksi berhasil selanjutnya langkah yang dilakukan adalah dengan
mendefinisikanusernamedanpasswordke dalam metode POST denganscript:
$myusername=$_POST[‘myusername’]; $mypassword=$_POST[‘mypassword’];
Pengecekanusernamedanpassworddilakukan denganscript:
$sql=”SELECT * FROM $tbl_name WHERE username=’$myusername’ and password=’$mypassword’”;
echo “Wrong Username or Password”; }
Jika myusername dan mypassword sama dengan data username dan password
pada tabel login_ids secara otomatis user akan diarahkan pada halaman web
tampil_ids.php, sebaliknya jika salah akan ditampilkan pesanWrong Username or
B. Program Fuzzy
Berdasarkan alur kerja sistem IDS yang ditunjukkan pada Gambar 3.1
dibuat blok diagram implementasi program seperti yang ditunjukkan pada
Gambar 3.36.
Gambar 3.36. Diagram Blok Penulisan Program
Dari Gambar 3.36 terdapat beberapa langkah sequensial penulisan
program, adapun langkah-langkah tersebut adalah.
1. Langkah pertama yang dilakukan program adalah menghapus isi tabel
59
proses update kolom sid, cid, timestamp, ip_src dan ip_dst. Script program
dari hapus tabel adalah.
$qry = “truncate fuzzy_ids”; $sql = mysql_query($qry);
2. Langkah selanjutnya mengkopikan kolom sid, cid, timestamp, ip_src dan
ip_dst dari tabel acid_event ke dalam tabel fuzzy_ids, scriptprogram tersebut
adalah:
$qry2= ”insert into fuzzy_ids (sid,cid,timestamp,ip_src,ip_dst) select sid,cid,timestamp,ip_src,ip_dst from acid_event”;
$sql = mysql_query($qry2);
3. Updatekolom frekuensi denganscript:
$qry3= ”update fuzzy_ids as t left join (select sid,cid,timestamp,count(ip_src) as NumEvents from acid_event group by timestamp) as m on m.sid = t.sid and m.cid = t.cid and m.timestamp = t.timestamp set t.frekuensi = m.NumEvents where t.id is not null”;
$sql = mysql_query($qry3);
4. Updatekolomiplendenganscript:
$qry4= ”update fuzzy_ids inner join iphdr on fuzzy_ids.sid=iphdr.sid and fuzzy_ids.cid = iphdr.cid set fuzzy_ids.iplen = iphdr.ip_len”;
$sql = mysql_query($qry4);
5. Hitung alpha frekuensi dan alpha length denganscript:
$qry5= ”update fuzzy_ids left join (select frekuensi, if(frekuensi >=0 and frekuensi <=6, 1, if(frekuensi >=6 and frekuensi <=8, (8 – frekuensi)/2,9)) as alpha_flow from fuzzy_ids ) as alpha using (frekuensi) set alphaflow = alpha_flow”;
$sql = mysql_query($qry5);
$qry8= ”update fuzzy_ids left join (select iplen, if(sum(iplen) >=190 and sum(iplen) <=220, 1, if(sum(iplen) >=200 and sum(iplen) <=220, (220 – sum(iplen))/20,9)) as alpha_llow from fuzzy_ids where ip_dst = 3232238091 group by timestamp ) as alpha using (iplen) set alphallow = alpha_llow”;
$sql = mysql_query($qry8);
6. Updaterule fuzzy denganscript:
$qry11= ”update fuzzy_ids left join (select alphafhigh, alphalhigh, least (alphafhigh,alphalhigh) as rule_1 from fuzzy_ids) as nilairule1 using (alphafhigh,alphalhigh) set rule1 =rule_1”;