85 BAB 4 IMPLEMENTASI DAN EVALUASI
4.1.Spesifikasi Kebutuhan Sistem Untuk membangun sebuah Network Intrusion Prevention System (NIPS), penulis menggunakan aplikasi open-source snort yang akan di-install di Backtrack 3. Pada dasarnya snort merupakan sebuah Intrusion Detection System (IDS), sehingga hanya memerlukan Libpcap yang merupakan suatu packet capture library dan juga memerlukan PCRE (Perl Compatible Regular Expression) library yang merupakan fungsi dalam regular expression pattern matching. Namun pada Snort Inline membutuhkan packet queing libraries, yaitu Libnet dan Libipq library, yang digunakan untuk mengijinkan firewall melakukan queue paket dari kernel ke snort inline. Libipq digunakan oleh snort untuk dapat berhubungan dengan iptables. Penggunaan Libnet harus versi 1.0.x, karena apabila selain versi tersebut snort inline tidak dapat dijalankan. Berikut ini adalah daftar piranti lunak yang dibutuhkan dalam pemasangan snort inline : •
Snort-2.8.5.2
•
Libpcap
•
PCRE-8.00
86 •
LibNet-1.0.2a
•
IPTables-1.3.8
•
Bridge-utils
•
Backtrack 3
•
ARP-Scan-1.7
4.2. Prosedur Operasional 4.2.1. Instalasi Snort Inline Sebelum melakukan instalasi, semua piranti lunak dipindahkan ke /usr/src, kemudian konsole dipindahkan ke direktori.
Instalasi PCRE # unzip pcre-8.00 # cd pcre-8.00 #./configure # make # make install
Instalasi Libnet # tar –xvzf Libnet-1.0.2a # cd Libnet-1.0.2a
87 #./configure # make # make install
Installasi Libipq # tar –xvjf iptables-1.3.8.tar.bz2 # cd iptables-1.3.8 # make install-devel
Installasi Arp-scan # tar –xvf arp-scan-1.7.tar.gz # cd arp-scan # make && make install
Instalasi Snort Inline # tar –xvzf snort -2.8.5.2.tar.gz # cd snort-2.8.5.2 # ./configure --enable-inline \
88 --enable-dynamicplugin \ --enable-decoder-preprocessor-rules # make # make install
Pada instalasi snort inline, penulis tidak menggunakan patch snort_inline,
karena snort versi 2.8.5.2 sudah memiliki kemampuan sebagai mode inline. Implementasi yang digunakan dalam penulisan skripsi ini berdasarkan networkbased IPS, sehingga memerlukan dua NIC, dimana salah satu NIC digunakan sebagai bridge, yang akan meneruskan paket yang telah dianalisis ke segmen jaringan selanjutnya.
4.2.2. Konfigurasi Sistem 4.2.2.1. Konfigurasi Snort Inline Untuk menentukan konfigurasi snort, penulis mengubah file snort.conf yang berada di /etc/snort/snort.conf. Terdapat beberapa hal yang harus diperhatikan dalam menentukan konfigurasi snort, yaitu : • var HOME_NET var HOME_NET digunakan untuk menentukan alamat IP yang
digunakan pada jaringan lokal. Nilai awal dari variabel ini adalah
89 any. Penulis mengisi variabel ini dengan 192.168.1.0/24, yang berarti alamat IP 192.168.1 – 192.168.1.255 adalah IP address yang didaftarkan sebagai jaringan lokal. Sehingga menjadi var HOME_NET 192.168.1.0/24 • var EXTERNAL_NET var EXTERNAL_NET digunakan untuk menentukan alamat IP
diluar jaringan lokal. Nilai awal dari variabel ini adalah any. Tanda ‘ ! ‘ digunakan sebagai negasi. Penulis mengatur selain dari IP address 192.168.1.1 – 192.168.1.255 sebagai jaringan eksternal.
Sehingga
menjadi
var
EXTERNAL_NET
!192.168.1.0/24 • var DNS_SERVERS var
DNS_SERVERS digunakan untuk menentukan alamat IP
server DNS yang digunakan di dalam jaringan. Penulis mengatur alamat IP 192.168.0.1 sebagi server DNS. Sehingga menjadi var DNS_SERVERS 192.168.0.1 • var RULE_PATH var RULE_PATH digunakan untuk menentukan letak direktori
rules. Penulis mengatur /etc/snort/rules sebagai lokasi dari folder
rule.
Sehingga
/etc/snort/rules
menjadi
var
RULE_PATH
90 • output alert_csv: /var/log/csv.out timestamp, sig_id, src, dst, msg. Penulis menggunakan csv ( coma
separated
values
)
sebagai
output
dari
data
alert.
/var/log/csv.out merupakan lokasi dimana file output nanti
akan disimpan. Setelah menentukan lokasi maka ditentukan timestamp, sig_id, src, dst, msg sebagai isi dari file csv.out. timesatamp merupakan catatan waktu kapan alert
dihasilkan, sig_id merupakan id rule dari alert tersebut, src merupakan IP address pengirim yang mengirimkan paket data yang dianggap sebagai serangan, dst merupakan IP address dari tujuan paket data tersebut, dan msg merupakan isi dari massage dari alert. • include classification.config classification.config merupakan file klasifikasi dari rule
snort. Dan lokasi dari classification.config harus dicantumkan, sehingga menjadi include /etc/snort/rules/classification.config • include /etc/snort/rules/reference.config reference.config merupakan file dari referensi rules yang
ada, yang berisi alamat website tentang file rule tersebut. Dan lokasi dari reference.config harus dicantumkan, sehingga menjadi include /etc/snort/rules/reference.config
91 4.2.2.2. Konfigurasi Snort Rule Rule pada Snort digunakan untuk menentukan paket tersebut dianggap serangan atau bukan. Rule terdiri dari dua bagian yaitu rule header dan rule option. Rule header terdiri dari tindakan (action), IP address source dan IP address destination, Protokol dan Port. Sedangkan pada Rule Option memiliki beberapa keyword yang memiliki fungsi yang berbeda-beda. Pada penulisan ini, penulis hanya menggunakan beberapa kata kunci pada rule option, diantaranya : -
msg: akan mencetak pesan dari alert yang ditunjukkan
pada file log -
gid: merupakan bagian mana saja dari snort yang
menghasilkan alert. Untuk gid 1berhubungan dengan snort namun gid kebih dari 100 untuk preprocessor dan decoder -
sid: digunakan untuk identifikasi snort rules.
-
rev: mengidentifikasikan revisi dari snort rules
-
classtype: mengklasifikasikan serangan
-
content: digunakan untuk mencari isi yang spesifik pada
paket
payload
dan
memicu
tanggapan
(response)
berdasarkan paket tersebut. -
metadata: menambahkan informasi mengenai alert
melalui angka
92 -
flow: digunakan untuk menghubungkan TCP stream
reassembly dan
berlaku untuk arah tertentu pada lalu
lintas jaringan. -
reference: digunakan untuk mencari informasi lebih
detail mengenai rule tersebut Contoh rule : drop udp any any -> $HOME_NET 53 (msg:"DNS zone transfer UDP"; flow:to_server; content:"|00 00 FC|"; metadata:policy security-ips drop, service dns; reference:arachnids,212; reference:cve,19990532; sid:1948; rev:10;)
Snort memiliki fitur untuk membantu pengguna atau administrator dalam membuat rule sendiri, yang mana disesuaikan pada tipe serangan dan tanggapan yang akan dilakukan ketika serangan terjadi. Dengan fitur ini, memungkinkan untuk membuat rule yang mampu mendeteksi teknik-teknik pada serangan MITM terutama pada jaringan LAN. Pada Snort Inline, rule action dapat dibuat
menjadi
drop,
sdrop
atau
reject.
Apabila
menggunakan drop maka akan memanggil IPTables untuk mendrop paket dan mencatat ke log file. Sedangkan sdrop, akan memanggil IPTables tetapi dicatat dalam log file. Dan pada reject akan men-drop paket, mencatat ke file log dan kemudian
93 mengirimkan TCP reset jika protokolnya TCP atau ICMP port unreachable message jika protokolnya UDP. Snort akan memantau paket yang datang dan mencocokannya dengan rule yang telah dibuat, dan apabila cocok maka akan menampilkan pesan melalui msg rule option.
4.3. Implementasi Serangan MITM 4.3.1. Penyerangan DNS Spoofing Berikut ini adalah tampilan situs web http://binusmaya.binus.ac.id sebelum terjadinya serangan DNS Spoofing :
Gambar 4.1 situs web sebelum serangan DNS Spoofing
94 Berikut ini adalah proses yang terjadi pada mesin penyerang pada saat menjalankan
DNS
Spoofing.
Dalam
hal
ini
alamat
IP
http://binusmaya.binus.ac.id dialihkan ke alamat IP penyerang. Sehingga apabila ada pengguna yang akan mengakses situs tersebut akan secara otomatis dialihkan sesuai dengan alamat IP yang telah ditentukan oleh penyerang, pada kasus ini yaitu 192.168.1.11.
Gambar 4.2 Proses serangan DNS Spoofing
95 Berikut ini adalah tampilan situs web http://binusmaya.binus.ac.id setelah terjadinya serangan DNS Spoofing :
Gambar 4.3 situs web setelah serangan DNS Spoofing
Pada
gambar
diatas
menunjukkan
bahwa
situs
web
http://binusmaya.binus.ac.id telah dialihkan ke alamat IP Penyerang, sehingga menyerupai situs aslinya. Jika pengguna memasukkan username dan password, maka penyerang dapat mengetahuinya dengan mudah.
96 4.3.2. Penyerangan ARP Spoofing Berikut ini adalah proses pada penyerangan ARP Spoofing :
Gambar 4.4 Proses Penyerangan ARP Spoofing Gambar diatas menunjukkan proses serangan ARP Spoofing pada mesin penyerang yaitu ketika terjadinya pengalihan seluruh proses komunikasi pada alamat IP 192.168.1.8 ke komputer penyerang yang kemudian diteruskan ke komputer tujuan.
97 Berikut ini adalah proses penyadapan komunikasi data :
Gambar 4.5 Proses Penyadapan ARP Spoofing
Gambar diatas menunjukkan proses penyadapan komunikasi data pada alamat IP 192.168.1.8. Disini terlihat jelas bahwa peyerang dapat melihat seluruh aktifitas pada alamat IP tersebut.
98 4.3.3. Penyerangan MAC Flooding Berikut ini adalah proses pada penyerangan MAC Flooding yang terjadi pada komputer penyerang. Gambar dibawah ini menunjukkan pengiriman paket data berupa alamat IP dan MAC dengan jumlah yang sangat besar pada perangkat jaringan seperti switch atau router. Perangkat tersebut akan terlihat sibuk atau bekerja tidak normal. Jika perangkat jaringan tersebut tidak mampu menanganinya, maka perangkat tersebut akan beralih fungsi menjadi hub, sehingga transmisi data tidak langsung ketujuan melainkan keseluruh host/ komputer yang terhubung pada perangkat tersebut.
Gambar 4.6 Proses Penyerangan MAC Flooding
99
4.4. Implementasi Sistem IPS Berikut ini adalah
halaman script Administrasi IPS pada saat pertama kali
dijalankan.
Gambar 4.7 Tampilan Administrasi Pertama kali
100 Pada halaman ini pengguna diminta untuk mengisi alamat IP LAN yang ditujukan untuk mengisi variabel HOME_NET pada file snort.conf. Saat pengisian alamat IP tersebut, terdapat validasi berupa : -
Format inputan harus terdiri tidak boleh lebih dari 3 angka.
-
Format inputan dalam 3 angka tidak boleh lebih dari 255.
-
Format inputan harus tediri dari angka saja.
Gambar 4.8 Tampilan Administrasi IP LAN
101 Setelah selesai mengisi alamat IP LAN, maka dilanjutkan dengan mengisi Subnet dari alamat IP LAN. Subnet yang bisa digunakan antara 24-30 (CLASS-C). Apabila mengisi diluar kelas C, maka akan diminta mengisi kembali subnet. Pengisian subnet akan dimasukkan pada file snort.conf yang digunakan untuk mengisi subnet pada variabel HOME_NET. Selain itu pengisian tersebut juga otomatis mengisi variabel EXTERNAL_NET. Setelah selasai mengisi maka langkah selanjutnya adalah mengisi nilai alamat IP DNS Server.
Gambar 4.9 Tampilan Subnet IP LAN
102 Berikut ini adalah halaman pengisian alamat IP DNS Server, dimana pada halaman ini memiliki validasi yang sama pada halaman IP LAN.
Gambar 4.10 Tampilan IP DNS
103
Setelah selesai mengisi alamat IP LAN dan DNS Server, maka langkah selanjutnya menuju pada halaman home yang merupakan halaman utama dari script ips.sh. Halaman home terdiri dari 5 pilihan, diantaranya : 1. Start IPS 2. View Alert 3. Determination IPS Daemon 4. Search
5. Exit
Gambar 4.11 Halaman Menu Script Administrasi
104
Ketika memilih Start IPS maka script ips.sh terlebih dahulu akan memeriksa apakah IPS Daemon dijalankan atau tidak. Apabila tidak, maka akan terdapat dua pilihan mode snort, diantaranya : 1. Snort Inline 2. Snort Inline Daemon 3. Back to home page
Apabila pengguna memilih Snort Inline maka akan dijalankan dengan membukan konsole baru dan ips.sh akan terhenti hingga snort tersebut di close. Apabila pengguna memilih Snort Inline Daemon maka snort akan dijalankan sebagai daemon dan halaman akan dikembalikan ke halaman home. Apabila pengguna memilih Back to home page, maka akan kembali ke halaman home.
Gambar 4.13 Pilihan Snort
105
Ketika pengguna memilih mode Snort Inline, maka akan melakukan pengecekan terhadap ketersediaan Bridge dan IPTables. Jika keduanya belum tersedia, maka akan segera diaktifkan.
Gambar 4.14 Tampilan Setelah Memilih Snort
106
Berikut ini adalah tampilan snort inline dijalankan setelah melalui proses pengaktifan Bridge dan IPTables, dimana akan membuka konsole baru.
Gambar 4.15 Tampilan Konsole Snort
107
Ketika pengguna memilih Snort Inline Daemon maka akan dilakukan pengecekan ketersediaan Bridge dan IPTables. Setelah Bridge dan IPTables telah aktif maka snort daemon akan dijalankan.
Gambar 4.16 Setelah Memilih Snort Daemon
108
Apabila pengguna memilih View Alert pada halaman home, maka konsole baru akan terbuka dan berisi alert yang berhasil ditangkap oleh IPS. Dimana pada View Alert menampilkan tanggal, waktu, id rule yang mendeteksi serangan, protokol yang digunakan, IP Source, IP Destination, dan message dari rule. Pada kolom message akan menampilkan pesan yang berisi serangan yang berhasil dicegah. Pada gambar dibawah ini terlihat bahwa teknik serangan MITM telah dicegah oleh sistem IPS..
Gambar 4.17 Gambar View Alert
109
Berikut ini adalah halaman Determination yang akan menampilkan PID snort daemon dan terdiri dari 2 pilihan, yaitu : 1. Kill Snort daemon Process 2. Back to home
Apabila pengguna memilih Kill Snort daemon Process maka snort yang berjalan sebagai daemon akan di hentikan. Dan apabila user memilih Back to home maka pengguna akan kembali ke halaman home.
Gambar 4.18 Determination IPS
110
Pada halaman search, IPS akan menampilkan daftar alamat IP yang telah melakukan serangan MITM. Dihalaman ini pengguna dapat memasukan alamat IP dan kemudian IPS akan menampilkan jumlah paket serangan yang telah dikirim oleh alamat IP tersebut.
Gambar 4.19 Search
111
4.5. Desain Topologi IPS Pada bagian ini menjelaskan landasan dasar bagaimana desain dan implementasi IPS. Dalam hal ini penulis mengimplmentasikan Network-Based IPS (NIPS). Penempatan sistem ini sangatlah penting, karena berkaitan dengan akurasi dan efektifitas pendeteksian serangan. Pada perancangan NIPS penulis menggunakan IPTables sebagai firewall. Firewall akan melakukan blocking dan membolehkan komunikasi data sesuai dengan rule yang telah dibuat sebelumnya pada snort. Apabila terjadi serangan maka IPS akan memanggil firewall untuk melakukan blocking terhadap serangan tersebut dengan memutus koneksi atau hanya men-drop paket data. Dengan mengimplementasikan NIPS, maka diperlukan bridging mode pada sistem tersebut. Hal ini bertujuan untuk mengarahkan seluruh komunikasi data agar melawati sistem NIPS.
112
Gambar 4.20 Desain dan Implementasi Snort
4.6. Evaluasi Sistem NIPS dengan Snort Snort Inline diimplementasikan pada sistem operasi Bactrack 3 dengan menggunakan IPTables sebagai firewall dianggap telah mampu untuk menghentikan alur data yang dicurigai sebagai serangan. Karena pada dasarnya snort melakukan pendeteksian paket data berdasarkan rule.Namun beberapa masalah yang kerap terjadi adalah dalam hal instalasi dan konfigurasi. Selain itu masalah yang tak kalah
113 pentingnya adalah terjadinya false positive dan false negative, yaitu apabila terjadi false positive maka paket data yang sebenarnya dianggap sebagai serangan, sehingga paket tersebut akan di-blok. Hal ini berakibat terganggunya kinerja jaringan komputer. Lain halnya jika terjadi false negative, yaitu sistem tidak mampu mendeteksi serangan yang sebenarnya, sehingga serangan dapat lolos dari IPS. Penggunaan script administrasi yang telah dibuat sangat membantu dalam hal pengoperasian, konfigurasi dan memantau output alert yang dihasilkan oleh aplikasi, karena dengan menggunakan script tersebut penggunaan aplikasi lebih efektif.