3.1 Tahapan dan Cara Penelitian
Berdasarkan latar belakang dan perumusan masalah yang terdapat dalam bab sebelumnya dapat diketahui perancangan yang dilakukan untuk membuat Generalisasi Rule Menggunakan SNORT IDS (Intrusion Detection System) ini, yaitu :
a. Perancangan model jaringan. b. Analisa kebutuhan sistem.
c. Penyediaan Hardware dan Software pendukung. d. Perancangan kerja sistem.
e. Instalasi, konfigurasi dan pengetesan sistem
3.2 Rancangan J aringan Komputer
Rancangan jaringan yang digunakan terdiri dari 4 bagian, yaitu : PC Router+Snort IDS, Server, Client 1 dan Client 2 dimana diantaranya berjalan di mesin virtual. Untuk lebih jelasnya dijelaskan pada gambar 3.1 dibawah ini.
Gambar 3.1 Rancangan jaringan komputer
Rancangan jaringan pada Gambar 3.1 merupakan rancangan Lan. Letak Snort IDS berada setelah router. Alasan kenapa Snort diletakkan di dalam router adalah karena router merupakan pintu masuk dan keluar antara jaringan WAN (internet) dan LAN, supaya Snort IDS dapat menyaring semua akses keluar dan masuk ketika usermengakses internet dalam jaringan virtual yang disimulasikan dalam VirtualBox. Dalam simulasi ini, Server merupakan operating system nyata yaitu Linux Ubuntu 11.04 dan untuk PC Router, Snort IDS, Client 1 dan Client 2 semuanya menggunakan mesin virtual.
3.3 Rancangan Serangan SynFlood
Paket-paket SYN adalah salah satu jenis paket dalam protokol
Transmission Control Protocol yang dapat digunakan untuk membuat koneksi
antara dua host dan dikirimkan oleh host yang hendak membuat koneksi, sebagai langkah pertama adalah pembuatan koneksi dalam proses "TCP Three-way
Gambar 3.2Paket data client-server
Pada gambar 3.2 merupakan transaksi data antara client dan serveryang berjalan dengan normal dimana client mengirimkan paket SYN (SYNchronize), kemudian Server yang menerima paket SYN akan menjawab dengan mengirimkan paket SYN+ACK (ACKnowledge) dan kemudian akan menanti sebuah jawaban dari client berupa paket ACK.
Dari proses di atas kemudian muncul kelemahan, yaitu proses yang terjadi pada tahap 2, dimana Server akan menampung sejumlah antrian koneksi yang menanti konfirmasi akhir dari Client (Paket ACK) untuk bisa melanjutkan proses transaksi data. Apa yang terjadi jika BACKLOG dipenuhi dengan antrian koneksi yang sebernarnya berasal dari Client yang tidak ada, yang terjadi kemudian adalah
Client lain yang benar-benar nyata ingin mengakses Server kemudian tidak bisa
Gambar 3.3Serangan SynFlood
Pada gambar 3.3 merupakan serangan SynFlood, dimana attackertidak mengirimkan paket ACK setelah server mengirimkan paket SYN-ACK. Sehingga
server akan terus menunggu dan mencari paket kiriman ACK dari attacker yang
tidak kunjung datang dan akhirnya server tidak menanggapi pengiriman paket SYN dari client lain.
3.4 Kebutuhan Sistem
Untuk membangun sebuah Snort IDS, dalam tugas akhir ini menggunakan aplikasi open-source Snort 2.8.5.2 yang akan di-install di Debian 6 Sequeeze. Pada dasarnya Snort merupakan sebuah IDS, sehingga hanya memerlukan Libpcap yang merupakan suatu packet capture library dan juga memerlukan PCRE (Pearl Compatible Regular expression) Library yang merupakan fungsi dalam regular expression pattern matching.Pada Snort membutuhkan beberapa
packet queing libraries, yaitu Libdnet, Libipq, Libpcap dan DAQ. Libdnet library
digunakan untuk mengijinkan firewall melakukan queue paket dari kernel ke snort, sedangkan Libipq library digunakan snort untuk dapat berhubungan dengan IPTables .
Untuk menjalankan keseluruhan sistem maka dibutuhkan beberapa langkah-langkah dan installasi sistem operasi dan paket-paket pendukung yang terkonfigurasi pada sistem. adapun tahapannya adalah sebagai berikut.
1. Instalasi Sistem
Pada Installasi Sistem, kebutuhan dibagi 2, yaitu: a. kebutuhan perangkat lunak untuk sistem :
− Debian 6 Sequeeze − Snort 2.8.5.2 − Snort Rules 2.8 − Libpcap-1.3.0 − Libdnet-1.12 − DAQ-2.0.0 − PCRE-7.9 − IPTables -1.4.4 − Brigde-utils − Base-1.4.5
− MySql
− ADODB
− Virtualbox
b. kebutuhan perangkat keras untuk sistem:
− Processor Dual Core
− Memory RAM 2 Gb
− Harddisk 320 Gb
− Virtualbox, Terdiri dari 3 mesin virtual antara lain: 1) PC Router + Snort IDS
− Debian GNU/Linux 6.0 (Squeeze)
− Memory RAM 356 MB
− Harddisk 8 Gb
− Video Memory 12 Mb
2) Client1
− Debian GNU/LInux 6.0 (Squeeze)
− Memory RAM 356 MB
− Harddisk 4 Gb
3) Client 2
− Debian 4.0 Etch
− Memory RAM 256 MB
− Harddisk 4 Gb
− Video Memory 12 Mb
2. Penerapan Generalisasi invert dan content
Memproses original rules snort dan kemudian menciptakan dua set rules baru menggunakan dua prinsip generalisasi (invert dan content).
3. Pengumpulan Data Pendukung Sistem
Data yang digunakan dalam Snort IDS merupakan data yang sudah di log ke dalam database Snort melalui simulasi penyerangan dan telah melalui proses penyaringan data paket jaringan.
4. Pengumpulan Alerts
Menggabungkan file alerts yang dihasilkan dari original rules snort dengan file alerts yang dihasilkan dari proses generalisasi.
5. Merangkum hasil alerts
Merangkum hasil alerts yang telah dihasilkan, kemudian mengidentifikasi untuk mengetahui jumlah besar alerts positif atau palsu sehingga dapat mengurangi tingkat alerts palsu.
3.5 Perancangan Sistem
1.5.1 Alur Installasi Snort
Pada installasi Snort 2.8.5.2 membutuhkan beberapa aplikasi pendukung dan tahapan yang harus dikerjakan.
Pada gambar 3.4 menjelaskan langkah pertama yang harus dilakukan ada installasi beberapa packetqueing libraries, yaitu : Libpcap- 1.3.0, Libdnet-1.12, DAQ-2.0.0. Setelah semua ter-install dengan benar maka selanjutnya adalah installasi dan konfigurasi Snort 2.8.5.2 kemudian melakukan pengetesan apakah Rule Snort berjalan dengan benar. Kemudian installasi dan konfigurasi MySQL Server. Setelah data pada Snort dapat berjalan dengan benar maka selanjutnya adalah installasi dan konfigurasi Apache dan PHP kemudian dilanjutkan installasi dan konfigurasi BASE, BASE digunakan untuk memudahkan memonitoring alert yang dihasilkan oleh Snort. Langkah terakhir adalah membuat startup
script untuk Snort agar berjalan otomatis ketika sistem dijalankan.
1.5.2 Alur Kerja Snor t
Pada Gambar 3.5 membahas lebih dalam tentang cara kerja Snort.
Network traffic yang berisi paket data, akan diambil oleh Snort decoder,
kemudian Snort decoder akan men-decode paket kedalam data struktur Snort untuk dianalisis. Setelah itu paket data akan diteruskan ke
preprocessor untuk dilihat paket header-nya dan informasi di dalamnya
yang akan diteruskan menuju detection engine. Dengan menggunakan Snort Rules, Detection Engine membandingkan dan mencocokkan antara paket data dan Rules apakah terdapat kesamaan di dalamnya, apabila terdapat kesamaan maka paket data tidak bisa masuk ke dalam lalu lintas jaringan atau bisa dianggap suatu serangan.
Berdasarkan hasil dari Detection Engine akan dikeluarkan suatu
output atau peringatan dari Output Engine agar snort bisa mengambil
tindakan lebih lanjut untuk merespon paket data tersebut. Kemudian Snort memberikan hasil dari Detection Engine dalam format terpisah seperti
Logfile atau database.
1.5.3 Alur Snor t IDS
Dari dasar teori Snort IDS yang diambil dari bab II, bahwa snort merupakan sebuah sarana untuk metode IDS. Dibawah ini menggambarkan cara kerja metode Snort IDS disesuaikan dengan kebutuhan dalam sistem.
Gambar 3.6 Rancangan Metode Snort IDS
Keterangan gambar 3.6pada Snort terdapat dua inputan, yaitu data
log sebelum dan data saat ini. Dimana data tersebut akan di analisa oleh
Snort untuk mengetahui apakah ada yang mencurigakan di dalam Network
Traffic dengan bantuan Snort Rules yang akan mencocokkan Signature
untuk memeriksa apakah terdapat kecocokan, Apabila terdapat kecocokan maka akan di anggap sebuah serangan. Kemudian Snort NIDS (Snort
Engine) akan mengirimkan sebuah peringatan (Alert) yang terbagi menjadi
tiga output, yaitu Alerts berupa peringatan yang akan disimpan di dalam database (MySQL), Alerts berupa peringatan dalam bentuk file yang akan dikirim ke Administrator jaringan dan Network Traffic Log (BASE) yang
1.5.4 Alur Atur an Generalisasi
Gambar 3.7 Metode Generalisasi Removing
Pada gambar 3.7 Generalisasi removing, Snort rules akan diproses untuk menghilangkan atau menghapus parameter depth dan offset berserta nilainya kemudian akan dilakukan normalisasi untuk mendapatkan format
rules yang diinginkan setelah itu akan dilakukan pengecekan atau validasi
apakah masih ada parameter atau nilai yang tertinggal didalam rules apabila masih ada maka akan dilakukan proses penghapusan lagi jika tidak
maka rules yang telah diproses disimpan pada depth.rules dan offset.rules yang termasuk dalam removing.rules.
Gambar 3.8 Metode Generalisasi Inverting
Pada gambar 3.8 Generalisasi inverting, prosesnya hampir sama hanya yang membedakan adalah pada generalisasi content melakukan pembalikan nilai isi content dengan pemberian tanda “?” untuk mewakili karakter apapun dalam field rule dan hasil akhirnya hanya ada satu inverting.rules.
1.5.5 Alur Implementasi Generalisasi Snort Rules
Gambar 3.9 Rancangan Generalisasi Rule Snort
Pada gambar 3.9 Metode generalisasi Snort Rules yang digunakan adalah dengan bantuan penggunaan generalisasi sederhanauntuk melakukan generalisasi pada Snort Rules. Dimana pada implementasinya di bagi menjadi 3 bagian, yaitu :
a) Generalisasi Rule, dimana bertugas untuk mengolah Snort Rules kemudian membuat dua buah set rules berdasarkan dua prinsip dasar generalisasi (remove dan Invert).
b) Alert Merge, dimana bertugas menggabungkan dua buah rules
generalisasi dari original rules dengan alert yang telah berhasil di generalisasi oleh generalisasi rules untuk menghasilkan variasi
alerts dan keterangan dari mana alerts itu dihasilkan.
c) Generalisasi Rule post-processor, dimana bertugas untuk mengecek alert yang telah dihasilkan. Untuk mengidentifikasi dan mengurangi kesalahan dalam pemberian peringatan (false alert) untuk mengurangi tingkat kesalahan alert.
1.5.6 Alur Kerja Keselur uhan Sistem
Dari penjelasan diagram alur kerja Snort IDS dan metode generalisasi Snort sebelumnya maka didapatkan alur kerja dari keseluruhan sistem.
Pada rancangan keseluruhan sistem Snort Engine akan membaca paket menggunakan dua rules, yaitu Original Snort Rules dan Generalisasi Rules dimana peringatan yang dihasilkan dari Original Snort Rules akan disimpan sebagai ids.alert, sedangkan peringatan yang dihasilkan dari Generalisasi Rules akan disimpan sebagai generalisasi.alert.
Gambar 3.10 Rancangan Keseluruhan Sistem
Pada gambar 3.10. Kedua alerts baik ids.alert dan
generalisasi.alert akan ditampung dan diproses oleh Alert Merge yang kemudian akan memproses lebih lanjut dan mengeluarkan tiga output, yaitu :
a. Merged Alert, berisi dari gabungan dua alerts yang berasal dari Original dan Generalisasi rules. Dengan ketentuan jika ada waktu
dari setiap alerts yang sama atau bentrok, maka alert dari Original rules yang akan diambil.
b. AllowAlert, berisi dari alert Generalisasi rules yang waktunya tidak
sama atau tidak bentrok dengan OriginalRules.
c. RejectedAlert, berisi dari alert Generalisasi rules yang waktunya
sama atau bentrok dengan Original rules tetapi memiliki alert yang berbeda.
Pada Generalisasi Rule Post-Processor akan memproses ketiga alerts yang dihasilkan oleh Alert Merge untuk merangkum alerts tersebut apakah dihasilkan oleh Original Rules atau dari tiga kemungkinan hasil dari Alert Merge. kemudian memberikan ringkasan keterangan berapa kali alert tersebut muncul.
Untuk lebih jelasnya tentang proses Alert merge ditunjukan pada contoh gambar 3.11 dibawah ini.
Gambar 3.11 Alur Kerja Alert Merge
Pada gambar 3.11 diatas terdapat kesamaan waktu alert tetapi berbeda jenis alert pada original alert dan generalisasi alert, yaitu : (12.04, 12.06 dan 12.08). Alert Merge akan memproses data yang ada dengan ketentuan jika waktu dari generalisasi alert sama dengan original alert tetapi memiliki jenis alert yang berbeda maka jenis alert dari original alert yang akan diambil atau digunakan dan disimpan pada Merge Alert, dari data (12.04=alert D, 12.06=alert C dan 12.08=alert E) pada generalisasi alert akan menjadi (12.04=alert 3, 12.06=alert 2 dan 12.08=alert 5) sesuai data pada original alert.
Pada allow alert berisi alert dari generalisasi alert yang tidak bentrok dengan alert dari original alert, yaitu (12.00=alert A dan
12.03=alert B). Sedangkan data alertdari generalisasi alert yang bentrok dengan original alert disimpan di rejected alert.
1.5.7 Alur Uji Coba Dan Analisa
Pada gambar 3.12. Uji coba nantinya akan dilakukan simulasi serangan, Kemudian Snort engine akan mendeteksi paket jaringan tersebut menggunakan aturan generalisasi rule yang hasil akhirnya akan mengeluarkan dua alert (original dan generalisasi alert). Setelah itu aturan
Fuzz rule akan memproses alert tersebut dengan kondisi :
− Jika nilai prioritasnya adalah 1, maka alert tersebut termasuk dalam
High alert.
− Jika nilai prioritasnya adalah 2, maka alert tersebut termasuk dalam
medium alert.
− Jika nilai prioritasnya adalah 3, maka alert tersebut termasuk dalam low alert.
Penggunaan parameter prioritas karena pada Snort, serangan diklasifikasikan menjadi 4 prioritas standart. Prioritas 1 adalah tertinggi dan prioritas 4 adalah paling rendah.
Hasil akhir dari fuzz rule nantinya akan dijadikan bahan acuan dalam analisa, jika generalisasi alert menghasilkan alert dengan nilai prioritas yang lebih tinggi daripada original alert maka generalisasi rules telah berhasil mendeteksi serangan dengan tingkat kesalahan yang lebih kecil atau mendekati serangan yang sebenarnya.
3.6 Instalasi Sistem Snor t IDS
1.6.1 Instalasi Library Pendukung
Sebelum melakukan instalasi snort IDS, terlebih dahulu harus menginstal beberapa library pendukung antara lain :
− libpcap0.8-dev
− libmysqlclient15-dev
− mysql-client-5.0
− mysql-server-5.0
− bison flex apache2
− libapache2-mod-php5 − php5-gd php5-mysql − libphp-adodb php-pear − libc6-dev − g++ gcc − pcregrep − libpcre3-dev − iptables-dev bridge-utils 1.6.2 Instalasi Dan Konfigurasi Snort IDS
Setelah Library pendukung telah terinstall pada sistem, maka selanjutnya adalah instalasi dan konfigurasi Snort IDS.
Gambar 3.13 Snort group dan user
b) Dari Synaptic Package Manager, install paket snort-mysql 2.8.5.2-8 dan snort-rules-default.
Gambar 3.14 Synaptic Package Manager c) Buka /etc/snort/snort.conf sesuaikan konfigurasi sesuai
dengan kebutuhan.
Gambar 3.15 Konfigurasi snort database
1.6.3 Konfigur asi Snor t Database
Seperti yang sudah dijelaskan pada bab sebelumnya, semua data- data paket jaringan yang masuk akan di log kedalam database yang nantinya akan digunakan untuk generalisasi agar didapat variasi
alerts.Pada terminal ketikan mysql -u root -p kemudian jalankan perintah
dibawah ini.
Gambar 3.16 Konfigurasi Mysql
kemudian menambahkan skema database milik Snort IDS ke dalam
database yang telah dibuat sebelumnya.
Gambar 3.17 Penambahan Schema Database Snort
Setelah semua langkah-langkah diatas telah dijalankan dengan benar dan tidak ada pesan error, maka selanjutnya mengetest konfigurasi snort dengan melihat apakah tabel database snort telah dibuat dengan benar.
Apabila database snort telah benar, buka terminal dan jalankan perintah dibawah ini untuk melihat apakah snort dapat berjalan dengan baik.
Gambar 3.19 Perintah Tes Snort
Gambar 3.20 Tes Konfiigurasi Snort
1.6.4 Instalasi BASE (Basic Analyze And Security Engine)
Untuk keperluan analisa dan melihat kinerja dari Snort, BASE adalah Security Analyze berbasis web yang dapat digunakan untuk mempermudah pengguna dalam melakukan analisa.Berikut ini langkah-langkah instalasi dan konfigurasi BASE : Dari Synaptic Package Manager, instal acidbase.
a) Copy library acidbase ke web root direktori.
b) Buka web acidbase root direktori sesuaikan konfigurasi seperti dibawah ini.
Gambar 3.21 Setting Acidbase
Setelah konfigurasi diatas telah dilakukan, kemudian mengetest kinerja BASE apakah dapat berjalan
dengan benar. Pada browser ketikan
http://localhost/acidbase/untuk memanggil fungsi acidbase apabila konfigurasi benar maka akan muncul tampilan BASE pada browser seperti pada gambar dibawah ini.
3.7 Pembuatan Dan Penerapan Generalisasi Rules
Generalisasi Rules dilakukan agar dapat menghasilkan rules baru dari
rules yang dimilki oleh Snort, sehingga diharapkan didapat variasi alert dari
pembacaan paket jaringan.
1.7.1 Generalisasi removing
Melakukan penghapusan pada parameter depth dan offset pada Rules Snort asli kemudian membuat direktori rules dan jalur (path) tersendiri didalam Snort konfigurasi.
Gambar 3.23 Generalisasi Removing
Pada gambar 3.23dijelaskan bahwa pada rule yang pertama
setiap rulesnya masih terdapat parameter depth, sedangkan pada rule yang kedua merupakan rules generalisasi yang didalam setiap rulesnya parameter depth telah hilang berikut dengan nilainya. Untuk proses penghapusan parameter depth dan offset menggunakan perintah awk.
Gambar 3.24Script depth.sh
Gambar 3.24 merupakan perintah awk untuk menghapus kata depth
dengan nilai satu digitangka, perintah tersebut dijalankan sebanyak tiga kali karena nilai dari parameter depthberisi sampai tiga digit angka.
1.7.2 Generalisasi Inver ting
Melakukan pembalikan pada nilai atau isi dari parameter content pada Rules Snort asli kemudian membuat direktori rules dan jalur (path) tersendiri didalam Snort konfigurasi.
Pada gambar 3.25 merupakan Snort rules asli dan terletak di /etc/snort/rules yang didalam setiap rulesnya masih terdapat parameter
content. Contoh rules dibawah ini terdapat parameter content:”HTTP/1.1
403”.
alert tcp $HTTP_SERVERS $HTTP_PORTS -> $EXTERNAL_NET any (msg:”ATTACK-RESPONSES 403 Forbidden”;
flow:from_server,established; content:”HTTP/1.1 403”; depth:12; classtype:attempted-recon; sid:1201; rev:7;)
Sedangkan pada rules yang kedua merupakan rules generalisasi
Inverting, dimana rules tersebut akan menjadi :
alert tcp $HTTP_SERVERS $HTTP_PORTS -> $EXTERNAL_NET any (msg:”ATTACK-RESPONSES 403 Forbidden”;
flow:from_server,established; content:”HTTP/1.? 403”; depth:12; classtype:attempted-recon; sid:1201; rev:7;)
Pada gambar 3.26. Dengan melakukan penggantian salah satu karakter dengan tanda “?” diharapkan memperluas nilai dari content itu sendiri, jika pada rules Snort asli, Snort tidak mengambil paket tambahan atau events karena sedang mencari HTTP/1.1, sedangkan kemungkinan penyerang menggunakan HTTP/1.0.