TA : Rancang Bangun Aplikasi Intrusion 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
(2)
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
(3)
xx
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
(4)
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
(5)
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.
(6)
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.
Dari beberapa metode IDS diatas menurut Cox (1994) logika fuzzy merupakan metode yang mudah dimengerti karena logika fuzy menggunakan dasar teori himpunan, sehingga konsep matematis yang mendasari penalaran fuzzy tersebut cukup mudah untuk dimengerti. Saat ini logika fuzzy telah diaplikasikan dalam berbagai bidang ilmu seperti pengendalian, jaringan dan industri. Dalam bidang jaringan logika fuzzy dapat diterapkan dalam membangun sistem IDS.
(7)
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
Adapun beberapa batasan masalah pada tugas akhir rancang bangun IDS dengan menggunakan metode fuzzy adalah sebagai berikut.
(8)
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
Pada bab ini menjelaskan tentang latar belakang, perumusan masalah, pembatasan masalah, tujuan, dan sistematika penulisan buku tugas akhir. Bab II Landasan Teori
(9)
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
Bab ini menjelaskan tentang kesimpulan dari tugas akhir yang telah dikerjakan dan saran-saran untuk pengembangan lebih lanjut.
(10)
(11)
5 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
Network Intrusion Detection System (NIDS) adalah salah satu tipe IDS yang populer atau paling banyak diimplementasikan kedalam sebuah sistem
(12)
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 membutuhkan konfigurasi secara spesifik pada sistem operasi dan software (Wu, 2009).
(13)
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
Stateful Protocol Inspection menyerupai pendeteksi berbasis anomali, tetapi jenis ini dapat menganalisa paket lapisan 3 OSI yaitu lapisan Network dan lapisan 4 yaitu lapisan protokol.
(14)
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 direpresentasikan di komputer. Sedangkan lower layer bertanggung jawab dalam komunikasi data melalui jaringan aktual.
(15)
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 data akan dikemas dalam paket dengan label serupa IP-Address pengirim dan penerima paket data. Apabila penerima melihat
(16)
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 komputer. Layer aplikasi tidak menyediakan software itu sendiri tapi hanya
(17)
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 (Yugianto dan Rachman, 2012). Contohnya mendefiniskan protokol-protokol dan juga hardware yang digunakan untuk pengiriman data misalnya cabling,
(18)
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 jaringan akan gagal.
(19)
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 sekelompok data yang cukup homogen, dan kemudian beberapa data eksklusif, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif tersebut,
(20)
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,
2). himpunan fuzzy, merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy,
(21)
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
µ[X] 1
(22)
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
Pada representasi linear, pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi
(23)
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
Derajat Keanggotaan µ[x]
(24)
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.
Gambar 2.8.Representasi Kurva Trapesium (Kusumadewi dan Purnomo, 2010) Derajat
Keanggotaan µ[x]
0 1
a b d
domain c Derajat
Keanggotaan µ[x] 0 1
(25)
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.
(26)
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.
(27)
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 terintegrasi
(28)
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 sebuah platformsendiri. Pada mulanya MySQL memang hanya berjalan dibawah platform Unix dan Linux, akan tetapi dalam perkembangannya sekarang
(29)
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 …?>
(30)
3. <?...?> 4. <%...%>
(31)
25
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 yang digunakan untuk memantau paket data adalah snort. Semua paket data yang
(32)
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 akan dijelaskan bagaimana sistem IDS dibuat.
(33)
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
(34)
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
(35)
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
Length (B/s)
ICMP Normal 3 180
UDP Flooding 1 1500
TCP Flooding 1 1500
ICMP Flooding 3 65078
Syn-Ack 3 120
HTTP 1 1440
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 metode fuzzy Sugeno.
(36)
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 rendah jika nilailengthmelebihi 200 B.
1
Length
0
190 200 220 240
Low Medium High
Derajat Keanggotaan µ[x]
(37)
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:
Gambar 3.6.Fungsi Keanggotaan Variabel Frekuensi Frekuensi (/s)
1
0
6 8 10
Low Medium High
Derajat Keanggotaan µ[x]
(38)
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 10(/s). Jika tingkat nilai frekuensi kurang dari 10(/s) maka kondisi frekuensi
(39)
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. 1. [R1]IFFrekuensi HIGH and Length HIGHTHENATTACK HIGH
(40)
α-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
µLthMEDIUM(41)
=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
(42)
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.
(43)
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.
(44)
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 dan siap diolah ditunjukkan pada Gambar 3.10
(45)
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.
(46)
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 2 variabel adalah 200 * 6 = 1200. Batas derajat keanggotaan 1 kategori middle
(47)
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
(48)
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.
(49)
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 terinstall pada sistem linux. Proses instalasi ditunjukkan seperti Gambar 3.14.
(50)
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
(51)
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 ditunjukkan seperti pada Gambar 3.18.
(52)
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 phpmyadmin.
(53)
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.
(54)
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.
(55)
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.
(56)
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.
(57)
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.
.
(58)
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 Sid int(10) cid int(10) Id int(10) Timestamp Datetime ip_src int(10) ip_dst int(10) Frekuensi int(10) Iplen smallint(10) ip_proto int(10) Alphaflow Float Alphafmid Float Alphallow Float Alphalmid Float Alphalhigh Float rule1 Float rule2 Float rule3 Float rule4 Float rule5 Float rule6 Float rule7 Float rule8 Float rule9 Float Attack Float attack_kategori varchar(40) Dimana:
Alphaflow : alpha fuzzy frekuensi low Alphafmid : alpha fuzzy frekuensi middle Alphafhigh : alpha fuzzy frekuensi high Alphallow : alpha fuzzy length low Alphalmid : alpha fuzzy length middle
(59)
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
iface eth0 inet static address 192.168.10.11
(60)
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.
(61)
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.
(62)
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:
(63)
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”; $username=”root”; $password=”password”; $db_name=”login”; $tbl_name=”login_ids”;
mysql_connect(“host”,”$username”,”$password”)or die(“cannot connect”);
mysql_select_db(“&db_name”)or die(“cannot select DB”);
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’”; $count=mysql_num_rows($result); if($count==1){ session_register(“myusername”); session_register(“mypassword”); header(“location:tampil_ids.php”); } else{
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 Password.
(64)
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 fuzzy_ids, langkah ini dilakukan agar tidak terjadi duplicate entries pada saat
(65)
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”;
(66)
7. Update nilai defuzzyfikasi attack denganscript:
$qry20= ”update fuzzy_ids left join (select rule1, rule2, rule3, rule4, rule5, rule6, rule7, rule8, rule9, (rule1*2400 + rule2*2400 + rule3*2400 +rule4*2400 + rule5*1760 +rule6*1760 +rule7*1760 + rule8*1760 + rule9*1200) / (rule1+rule2+rule3+rule4+rule5+rule6+rule7+rule8+rule9) as tempcount from fuzzy_ids) as totalcount using (rule1,rule2,rule3,rule4,rule5,rule6,rule7,rule8,rule9 set attack=tempcount ";
$sql = mysql_query($qry20); 8. Updatekategori attack denganscript:
$qry21 = “ update fuzzy_ids set attack_kategori=if((attack) =0 , \"bukan serangan\",if ((attack) > 0 and (attack) <=1200,\"low\", if ((attack) >1200 and (attack) <2400,\"middle\",\"high\")))";
(67)
61
Pengujian sistem terhadap aplikasi IDS dilakukan dari host a yang melakukan serangan langsung kepada host b seperti yang ditunjukkan pada Gambar 4.1.
Gambar 4.1.Skema Serangan DoS
Gambar 4.1 merupakan contoh skema serangan yang dilakukan oleh satu host
(host A) menuju router. Tujuan dari serangan tersebut adalah menghentikan
service yang diberikan oleh router sehingga seluruh jaringan yang tersambung oleh router akandown.
4.1 Pengujian Authentifikasi
Autentifikasi diperlukan supaya tidak sembarang user dapat melihat log
serangan IDS. Proses autentifikasi dilakukan dengan memasukkan username dan
password pada halaman login. Jika username dan password dikenali oleh database maka user dapat melihat log serangan ids, jika tidak maka user disuruh memasukkan ulangpassword.
4.1.1 Tujuan
Tujuan pengujian autentifikasi adalah untuk melihat proses autentifikasi sudah berjalan dengan benar atau tidak.
(68)
4.1.2 Alat Pengujian
Berikut ini adalah beberapa alat yang digunakan: 1. PC Router
4.1.3 Prosedur Pengujian
Berikut adalah beberapa tahapan prosedur pengujian: 1. Hidupkan PC Router
2. Daftarkanusernamedanpasswordpadadatabase login
3. Masukkanusernamedanpasswordpada halamanlogin
4.1.4 Hasil Pengujian
Untuk mendaftarkan username dan password dilakukan dengan menggunakan aplikasiphpmyadmin. Berikut contohusernamedanpasswordyang telah didaftarkan pada database login yang ditunjukkan pada Gambar 4.2.
(69)
Gambar 4.2 menunjukkandatabaselogin yang berisikanid 1,username indradan
password 1234 . Apabila username dan password sudah terdaftar pada database login maka user dapat melakukan proses autentifikasi. Pertama-tama user diarahkan untuk masuk pada form login pada halaman main_login. Berikut ini adalahform loginyang tersedia:
Gambar 4.3. Form Login
Gambar 4.3 menunjukkan form login , proses login dapat berhasil jika user memasukkanusernamedan passwordsesuai dengan data yang ada pada database login. Jika salah maka secara otomatis browser akan mengarahkan ke halaman
checkloginuntuk menunjukkan bahwa usernamedan password yang dimasukkan salah. Berikut contoh login tidak sesuai dengan database:
(70)
Gambar 4.4 menunjukkan user salah dalam memasukkan username atau
password. Halaman checklogin berfungsi untuk menunjukkan bahwa user salah memasukkanusernamedanpassword. Halaman ini akan langsung secara otomatis muncul apabila user salah login. Sementara itu apabila login benar maka browser akan mengarahkan pada halamanlog IDS. Berikut ini adalah pengisian data login yang benar.
Gambar 4.5.Login sesuai dengan Database
Gambar 4.5 menunjukkan pengisian username dan password yang benar. Jika data login diisi dengan benar maka browser akan mengarahkan pada halaman
tampil_ids untuk menampilkan hasil log serangan. Berikut ini adalah halaman tampil_ids:
(71)
Gambar 4.6 menunjukkan halaman web log IDS, halaman ini akan muncul jika user berhasil memasukkanusernamedanpassworddengan benar.
4.2 Pengujian Serangan DoS
Pengujian serangan DoS dilakukan oleh host A seperti skema serangan pada gambar 4.1. Host A melakukan serangan dengan menggunakan tools DoS Longcat versi 2.2 dan melalui command prompt Windows. Terdapat beberapa jenis pengujian serangan yaitu penyerangan melalui protokol ICMP, UDP dan TCP, selain itu juga dilakukan pengujian terhadap pengiriman paket normal.
4.2.1 Tujuan
Tujuan yang dilakukan adalah untuk mengetahui apakah aplikasi dapat mendeteksi serangan yang dilakukan oleh host dari beberapa protokol yaitu ICMP, UDP dan TCP. Dari pengujian ini juga melihat apakah sistem IDS yang telah dibuat mampu membedakan paket biasa atau serangan.
4.2.2 Alat Pengujian
Berikut adalah beberapa alat yang digunakan: 1. PC Router
2. PC Client 3. Switch 4. Kabel UTP
5. Tools DoS Longcat
(72)
7. Command Shell Linux 8. Browser Internet
4.2.3 Prosedur Pengujian
Berikut beberapa tahap-tahap prosedur pengujian: 1. Menghidupkan PC Router
2. Menghidupkan PC Client
3. Menyambungkan masing-masing kabel UTP PC Router dan PC Client ke switch
4. Menjalankanservicesnort pada PC Router
5. Memulai serangan dengan menggunakan DoStoolsyang sudah disediakan.
4.2.4 Hasil Pengujian
A. Hasil Pengujian Paket Normal
Pengujian pengiriman paket normal dilakukan melalui command prompt
Windows. Langkah pertama adalah memanggilcommand prompt window melalui jendela run kemudian ketikkan perintah cmd seperti yang ditunjukkan pada Gambar 4.7.
(73)
Gambar 4.7 merupakan jendela runyang berfungsi untuk memunculka command prompt Windows. Jendela run akan muncul dengan menekan logo windows + R pada keyboard. Dengan menekan tombol OK selanjutnya akan muncul jendela
command promptseperti yang ditunjukkan pada Gambar 4.8:
Gambar 4.8.Jendela Command Prompt Windows
Gambar 4.8 menunjukkan tampilan jendela command prompt Windows. Melalui
command prompt seperti yang ditunjukkan pada Gambar 4.8 dapat dilakukan pengiriman paket normal melalui protokol ICMP. Pengiriman dilakukan dengan mengetikkan perintah c:\>ping 192.168.10.11 dimana 192.168.10.11 adalah alamathosttarget.
(74)
Gambar 4.9 menunjukkan bahwa host target 192.168.10.11 tersambung dengan host pengirim. Indikasi tersebut ditunjukkan dengan pesan reply from 192.168.10.11. Adapun hasil weblog pada pc router ditunjukkan oleh Gambar 4.10.
Gambar 4.10.Hasil Web Log IDS
Pada Gambar 4.10 terdapat beberapa kolom yaitu timestamp, ip_src, ip_dst dan
attack_kategori. Kolom timestamp berfungsi untuk menunjukkan waktu paket diterima oleh packet sniffing snort, kolom ip_src berfungsi untuk menunjukkan alamat ip pengirim paket, kolom ip_dst berfungsi untuk menunjukkan alamat ip tujuan dan attack_kategori berfungsi untuk menunjukkan jenis serangan. Pada gambar 4.10 menunjukkan terdapat 4 paket data dengan masing-masing paket berasal dari host 192.168.10.5 dengan alamat tujuan 192.168.10.11 dengan masing-masing waktu seperti yang ditunjukkan pada gambar. Keempat paket data tersebut mempunyaiattack_kategoriyang sama yaitu bukan serangan.
B. Hasil Pengujian Paket Serangan Protokol ICMP
Ping of Death(POD) adalah salah satu teknik serangan DoS yang bekerja dengan cara mengirim paket ICMP dalam frekuensi dan panjang paket data yang besar secara berkelanjutan. Teknik POD dapat dilakukan melalui command
(75)
promptwindows. Gambar dibawah ini merupakan perintah POD yang dijalankan dalam jendelacommand prompt.
Gambar 4.11.Serangan POD
Pada Gambar 4.11 untuk melakukan serangan POD perintah yang dijalankan adalah ping 192.168.10.11 –l 65000 –t. Ping adalah perintah untuk mengecek koneksi melalui protokol ICMP, 192.168.10.11 adalah alamat host target, -l adalah opsi ping untuk mengirim paket sebesar 65000 bytes dan –t berfungsi agar komputer mengirim paket 65000 kepada host 192.168.10.11 secara terus-menerus, perintah ini akan berhenti jika user menekan tombolctrl+C keyboard.
(76)
Pada Gambar 4.12 ditampilkan sebuah tabel dengan beberapa kolom data yaitu
timestamp, ip_src, ip_dst dan attack_kategori. Dari tabel tersebut dapat dilihat bahwa terdapat 7 baris data ip_src, ip_dstdanattack_kategori yang sama dengan masing-masing data berisi 192.168.10.5, 192.168.10.11 dan middle tapi masing-masing mempunyai waktu yang berbeda. Contoh data dari baris pertama berarti host dengan alamat ip 192.168.10.15 mengirim paket pada pukul 20:08:12 tanggal 2013-09-06 dengan tujuan host 192.168.10.11, oleh sistem IDS paket ini diklasifikasikan paket serangan dengan kategorimiddle.
C. Hasil Pengujian UDPFlooding
Salah satu teknik serangan DoS UDP yaitu dengan mengirimkan paket UDP sebanyak-banyaknya ke host tujuan atau disebut UDP flooding, untuk melakukan serangan ini dapat dilakukan dengan memanfaatkan aplikasi Longcat seperti Gambar 4.13:
(77)
Untuk melakukan serangan udp packet flooding dimulai dengan mengisi alamat host target pada kolom ip address dan memilih protokol serangan seperti yang ditunjukkan pada Gambar 4.13. Untuk mengirim paket serangan dilakukan dengan menekan tombol RAEP dan untuk menghentikan pengiriman paket serangan dilakukan dengan menkean tombol STOP.
Gambar 4.14. Web Log IDS
Gambar 4.14 menunjukkan web log IDS dari hasil serangan udp packet flooding
yang dilakukan melalui aplikasi Longcat. Dari gambar tersebut dapat dilihat web log menampilkan satu baris data dengan beberapa kolom yaitu timestamp, ip_src, ip_dst, attack_kategori. Dari hasil data yang ditunjukkan host dengan alamat ip 192.168.10.5 mengirim paket data pada host 192.168.10.11 pada pukul 21:01:43 tanggal 2013-09-16 diketahui mempunyai attack_kategori middle. Hal ini berarti bahwa host 192.168.10.5 telah melakukan percobaan serangan berskalamiddle.
D. Hasil Pengujian TCPFlooding
Pengujian serangan tcp packet flooding dilakukan dengan menggunakan aplikasi Longcat. Serangan ini dilakukan dengan cara mengirim paket TCP sebanyak-banyaknya pada host target. Berikut ini adalah cara mengirim paket serangan TCP dengan menggunakan aplikasi Longcat, seperti yang ditunjukkan oleh Gambar 4.15.
(78)
Gambar 4.15. Tool Longcat (TCP)
Untuk memulai serangan langkah pertama yang dilakukan adalah memasukkan alamat ip target yaitu 192.168.10.11 serta protokol paket yang dikirimkan yaitu TCP pada kolomip address dan protocolseperti yang ditunjukkan pada Gambar 4.15. Selanjutnya klik RAEP untuk memulai serangan dan klik STOP untuk menghentikan serangan.
Gambar 4.16.Web Log IDS
Gambar 4.16 menunjukkan satu baris data yang berisikan datatimestamp, ip_src, ip_dst dan attack_kategori. Dari web log tersebut dapat dilihat bahwa terdapat paket dari host alamat 192.168.10.5 menuju host 192.168.10.11 pada pukul
(1)
96
: min (0;1) = 0 attack = high
Rule 2 : min (alphafhigh;alphalmid) : min (0;0) = 0
attack = high
Rule 3 : min (alphafhigh;alphallow) : min (0;0) = 0
attack = high
Rule 4 : min (alphafmid;alphalhigh) : min (0;1) = 0
attack = high
Rule 5 : min (alphafmid;alphalmid) : min (0;0) = 0
attack = middle
Rule 6 : min (alphafmid;alphallow) : min (0;0) = 0
attack = middle
Rule 7 : min (alphaflow;alphalhigh) : min (0;1) = 1
attack = middle
Rule 8 : min (alphaflow;alphalmid) : min (1;1) = 0
attack = middle
(2)
97
: min (1;0) = 0 attack = low
Dari nilai rule diatas diperoleh nilai defuzzyfikasi serangan:
attack = rule 1 * 2400 + rule 2 * 2400 + rule 3 * 2400 + rule 4 * 2400 + rule 5 * 1760 + rule 6 * 1760 + rule 7 * 1760 + rule 8 * 1760 + rule 9 * 1200 / (rule 1 + rule 2 + rule 3 + rule 4 + rule 5 + rule 6 + rule 7 + rule 8 + rule 9)
=0 * 2400 +0 * 2400 + 0 * 2400 + 0 * 2400 + 0 * 1760 + 0 * 1760 + 1 * 1760 + 0 * 1760 + 0 * 1760 / (1)
=1760 / 1= 1760
Dengan didapatkan nilai defuzzyfikasi = 1760 membuat nilai attack termasuk kedalam kategori seranganmiddle.
(3)
(4)
98 BAB V PENUTUP
5.1 Simpulan
Dari beberapa pengujian sistem yang telah ditunjukkan dalam bab IV terdapat beberapa kesimpulan yaitu.
1. Kemampuan Aplikasi Sistem IDS yang dibuat adalah sebagai berikut.
a). mengidentifikasi dan mengklasifikasikan paket ping normal dengan frekuensi sebanyak 3 per detik dan length paket sebanyak 180 Byte per detik
b). mengidentifikasi dan mengklasifikasikan paket serangan ICMP flooding dengan frekuensi serangan sebanyak 1 per detik danlengthpaket sebanyak 5 per detik danlengthpaket sebanyak 325.000 Byte per detik
c). mengidentifikasi dan mengklasifikasikan paket serangan UDP flooding dengan frekuensi serangan sebanyak 1 per detik danlengthpaket sebanyak 1.500 Byte per detik
d). mengidentifikasi dan mengklasifikasikan paket serangan TCP flooding dengan frekuensi serangan sebanyak 1 per detik danlengthpaket sebanyak 1.500 Byte per detik
e). belum mampu mengidentifikasi dan mengklasifikasikan paket serangan syn-ack dengan maksimal frekuensi serangan sebanyak 4 per detik dan maksimallengthpaket sebanyak 160 Byte per detik
(5)
99
f). belum mampu mengidentifikasi dan mengklasifikasikan data HTTP dengan benar dengan frekuensi 1 per detik dan length paket sebanyak 1440 Byte per detik
2. Penerapan logika fuzzy dapat mengklasifikasikan paket serangan DoS ICMP flooding, UDP flooding dan TCP flooding tapi belum mampu mengklasifikasikan paket serangan syn-ack dan mengidentifikasi data HTTP dengan benar
3. Penampilan log IDS berbasis web yang sederhana berupa tabel yang berisi informasi waktu, IP asal, IP tujuan dan klasifikasi serangan memudahkan user untuk memahami hasil pengkalsifikasian serangan.
5.2 Saran
Dari kesimpulan dan kelemahan sistem terdapat beberapa saran untuk mengembangkan sistem IDS dengan menggunakan metode fuzzy, yaitu.
1. Perlu menambah variabel fuzzy untuk mengembangkan sistem agar dapat mendeteksi serangan lainnya
2. Perlu untuk membuat modul sniffing sendiri sehingga data tidak tergantung daridatabasesnort
3. Perlu pembuatan beberapa feature baru dalam web log IDS misalnya pengosongan histori
(6)
DAFTAR PUSTAKA
Cox, Earl. 1994. The Fuzzy Systems Handbook (A Prsctitioner’s Guide to Building, Using, and Maintaining Fuzzy Systems).Massachussets:Academic press, Inc.
Danyliw, Roman. 2002. ACID: Database (v100-103) ER Diagram. (Online). http://acidlab.sourceforge.net/acid_db_er_v102.html, diakses 5 Agustus 2013.
Gaul, Naneesh. 2001. SNORT: Planning IDS for your Enterprise. (Online). http://www.linuxjournal.com/article/4668, diakses 12 Mei 2013.
Kusumadewi, Sri dan Hari Purnomo. 2010. Aplikasi Logika Fuzzy Untuk Pendukung Keputusan.Yogyakarta:Graha Ilmu.
Lammle, Todd. 2000. CCNA Cisco Certified Network Associate Study Guide. Alameda : Sybex
Nugroho, Bunafit.2004.Database Reslasional Dengan MySQL.Yogyakarta: Andi Peranginangin, Kasiman. 2006. Aplikasi WEB dengan PHP dan MySQL.
Yogyakarta: Andi.
Yugianto, Gin-gin dan Oscar Rachman. 2012. Router Teknologi, Konsep, Konfigurasi, dan Troubleshooting.Bandung: Informatika Bandung