• Tidak ada hasil yang ditemukan

METODE DAN PERANCANGAN TUGAS AKHIR

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.

Dokumen terkait