i
BERBASIS SNORT INTRUSION DETECTION SYSTEM
DAN IPTABLES FIREWALL
Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana ( S-1 ) pada Departemen Teknik Elektro
Oleh :
HANS VERDIAN KIMIN NIM : 040402045
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
i
Tugas Akhir ini merancang sistem keamanan jaringan komputer dengan menggunakan
Snort Intrusion Detection System dan IPTables Firewall. Penggabungan fungsi Snort
IDS dan IPTables firewall merupakan sistem pencegahan penyusup. Selain itu juga
menggunakan Webmin dan ACID (Analysis Console for Intrusion Databases) sebagai
front end. Sistem ini bertujuan untuk menciptakan sistem keamanan jaringan komputer
yang ringan, berbasiskan open source dan mudah dianalisa serta diatur oleh
administrator. Sistem ini dirancang akan memberikan blocking pada alamat IP yang
diketahui mengirimkan paket penyusup.
ii
dapat menyelesaikan Tugas Akhir ini. Adapun Tugas Akhir ini dibuat untuk
memenuhi syarat kesarjanaan di Departemen Teknik Elektro, Fakultas Teknik
Universitas Sumatera Utara, yang penulis beri judul “Perancangan Sistem
Keamanan Komputer Berbasis Snort Intrusion Detection System dan IPTables Firewall”.
Selama masa perkuliahan sampai masa penyelesaian Tugas Akhir ini, penulis banyak
memperoleh bimbingan dan dukungan dari berbagai pihak. Untuk itu, dengan setulus
hati penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :
1. Kedua orangtua tercinta, Willy Kimin dan Rafida Idami, abang saya Truly
Nino Kimin, serta adik-adik saya Fierzi Theody Kimin dan Thea Gemala
Rahmina Kimin, yang merupakan bagian hidup penulis yang senantiasa
mendukung dan mendoakan dari sejak penulis lahir sampai sekarang.
2. Bapak Soeharwinto, ST, MT, selaku Dosen Pembimbing Tugas Akhir, atas
segala bimbingan, pengarahan dan motivasi dalam menyelesaikan Tugas Akhir
ini.
3. Bapak Ir. Djendanari Sembiring dan Bapak Ir. Syahrawardi selaku Dosen Wali
atas motivasi dan arahan serta bimbingan selama mata kuliah.
4. Bapak Prof.Dr.Ir Usman Baafai, selaku Ketua Departemen Teknik Elektro
FT-USU.
5. Bapak Rachmad Fauzi, ST, MT, selaku Sekretaris Departemen Teknik Elektro
FT-USU.
6. Seluruh Staf Pengajar di Departemen Teknik Elektro USU dan seluruh
karyawan di Departemen Teknik Elektro Fakultas Teknik USU.
7. Teman-teman seperjuangan angkatan 2004, Muhfi, Aris, Harry, Jhony, Juan,
Aulia, Nursyamsi, Luthfi, Bayu, Rozy, Fahmi dan teman-teman seangkatan
iii
lain yang terus mengingatkan penulis untuk selalu berada di jalan-Nya.
9. Teman-teman kecil, Marten, Ricky, Ratih, Deisy, Devi, Shabrina yang selalu
memotivasi penulis.
Akhir kata, Tugas Akhir ini masih jauh dari sempurna, masih banyak kesalahan
dan kekurangan, namun penulis tetap berharap semoga Tugas Akhir ini bisa
bermanfaat dan memberikan inspirasi bagi pengembangan selanjutnya.
Medan, Oktober 2010
Penulis
Hans Verdian Kimin
iv DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... ii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... vi
BAB I PENDAHULUAN 1.1Latar Belakang ... 1
1.2Rumusan Masalah ... 2
1.3Tujuan Penulisan ... 2
1.4Batasan Masalah ... 2
1.5Metode Penulisan ... 2
1.6Sistematika Penulisan ... 3
BAB II TEORI PENDUKUNG 2.1 Sistem Keamanan Jaringan Komputer ... 5
2.1.1 Jenis Serangan ... 5
2.1.2 Tujuan Keamanan Jaringan ... 7
2.2 Sistem Deteksi Intrusi (Intrusion Detection System) ... 7
2.2.1 Konsep IDS ... 8
2.3 Snort IDS ... 10
2.3.1 Komponen Snort ... 11
2.3.2 Modus Kerja ... 15
v
2.4.1 Konsep IPTables Firewall ... 20
2.5 ACID ... 22
2.6 WEBMIN ... 23
BAB III PERANCANGAN SISTEM DAN IMPLEMENTASI 3.1 Persiapan Server Snort IDS dan IPTables Firewall ... 25
3.2 Instalasi Aplikasi Pendukung ... 25
3.2.1 Instalasi dan Konfigurasi Snort IDS ... 28
3.2.2 Konfigurasi Dekoder ... 31
3.2.3 Konfigurasi Preprocessor ... 31
3.2.4 Instalasi dan Konfigurasi Database MySQL ... 32
3.3 Instalasi dan Konfigurasi Web Server dan ACIDBASE ... 32
3.4 Instalasi Webmin ... 35
3.5 Instalasi dan Konfigurasi Snortsam ... 35
3.5.1 Instalasi Snortsam ... 35
3.5.2 Konfigurasi Snortsam ... 37
3.5.3 Konfigurasi Snortsam pada Firewall ... 38
BAB IV PENGUJIAN DAN ANALISA SISTEM KEAMANAN KOMPUTER 4.1 Tujuan Pengujian ... 40
vi
4.3 Topologi Pengujian ... 41
4.4 Hasil Pengujian ... 41
4.4.1 Blocking paket ping ... 41
4.4.1 Blocking paket evil payload ... 43
4.4.2 Blocking paket SQL version overflow attempt ... 45
4.5 Analisa Pengujian ... 47
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 49
5.2 Saran ... 49
DAFTAR PUSTAKA
DAFTAR GAMBAR
Gambar 2.1 Komponen Snort ... 15
Gambar 2.2 Tampilan ACID ... 23
Gambar 2.3 Salah satu menu pada WEBMIN ... 24
Gambar 3.1 Diagram Blok Sistem Keamanan Komputer ... 26
Gambar 3.2 Flowchart IPS Engine ... 27
Gambar 3.3 Skema Database yang digunakan ACID ... 34
Gambar 3.4 ACID digunakan untuk menganalisis event berbasiskan web ... 34
Gambar 3.5 WEBMIN dengan Plugin Snort untuk mengelola Rules ... 35
Gambar 3.6 Snort setelah di-patch menggunakan SnortSam patch ... 37
Gambar 4.1 Topologi jaringan ... 41
Gambar 4.2 Ping pada kondisi normal ... 41
Gambar 4.3 Blocking paket ping pada client ... 42
Gambar 4.4 Blocking paket ping pada server ... 43
Gambar 4.5 Pengiriman paket evil payload ... 44
Gambar 4.6 Pengamatan paket evil payload pada BASE ... 44
Gambar 4.7 Pengamatan paket evil payload pada log snortsam ... 45
Gambar 4.8 Pengiriman paket SQL version overflow attempt ... 46
Gambar 4.9 Pengamatan gangguan pada BASE ... 46
i
Tugas Akhir ini merancang sistem keamanan jaringan komputer dengan menggunakan
Snort Intrusion Detection System dan IPTables Firewall. Penggabungan fungsi Snort
IDS dan IPTables firewall merupakan sistem pencegahan penyusup. Selain itu juga
menggunakan Webmin dan ACID (Analysis Console for Intrusion Databases) sebagai
front end. Sistem ini bertujuan untuk menciptakan sistem keamanan jaringan komputer
yang ringan, berbasiskan open source dan mudah dianalisa serta diatur oleh
administrator. Sistem ini dirancang akan memberikan blocking pada alamat IP yang
diketahui mengirimkan paket penyusup.
BAB I PENDAHULUAN
1.1 LATAR BELAKANG
Keamanan jaringan komputer sebagai bagian dari sebuah sistem sangat
penting untuk menjaga validitas dan integritas data serta menjamin ketersediaan
layanan bagi penggunaannya. Sistem keamanan jaringan komputer harus
dilindungi dari segala macam serangan dan usaha-usaha penyusupan atau
pemindaian oleh pihak yang tidak berhak.
Sistem deteksi penyusup jaringan yang ada saat ini umumnya mampu
mendeteksi berbagai jenis serangan tetapi tidak mampu mengambil tindakan lebih
lanjut. Selain itu sistem juga tidak memiliki interaktivitas dengan administrator
pada saat administrator tidak sedang mengadministrasi sistemnya. Hal ini
merupakan suatu hal yang tidak efektif terutama pada saat sistem berada dalam
kondisi kritis.
Selain itu sistem pertahanan terhadap aktivitas gangguan saat ini
umumnya dilakukan secara manual oleh administrator. Hal ini mengakibatkan
integritas sistem bergantung pada ketersediaan dan kecepatan administrator dalam
merespons gangguan. Apabila terjadi malfungsi, administrator tidak dapat lagi
mengakses sistem secara remote sehingga tidak akan dapat melakukan pemulihan
sistem dengan cepat.
Oleh karena itu dibutuhkan suatu sistem yang dapat menanggulangi
ancaman yang mungkin terjadi secara optimal dalam waktu yang cepat dan secara
otomatis sehingga memungkinkan administrator mengakses sistem walaupun
terjadi malfungsi jaringan. Hal ini akan mempercepat proses penanggulangan
1.2 RUMUSAN MASALAH
Adapun rumusan masalah dari tugas akhir ini adalah :
1. Merancang sistem keamanan jaringan komputer yang dapat mendeteksi
gangguan secara otomatis dan melakukan tindakan lebih lanjut.
2. Mengintegrasikan aplikasi yang terkait dengan sistem keamanan jaringan
komputer.
3. Hal-hal apa saja yang perlu dianalisis setelah membangun sistem.
1.3 TUJUAN PENULISAN
Tugas Akhir ini bertujuan untuk merancang sistem keamanan jaringan
komputer berupa pencegahan penyusupan dengan menggunakan Snort Intrusion
Detection System dan IPTables Firewall. Sehingga dapat mendeteksi gangguan
secara otomatis walaupun administrator tidak sedang mengadministrasi sistem.
Adapun maksud penulisan Tugas Akhir ini adalah sebagai salah satu syarat untuk
mendapatkan gelar sarjana Teknik Elektro.
1.4 BATASAN MASALAH
Untuk menghindari pembahasan yang meluas maka penulis akan
membatasi pembahasan Tugas Akhir ini dengan hal-hal sebagai berikut :
1. Sistem keamanan jaringan komputer pada sistem operasi Ubuntu 9.10.
2. Sistem menggunakan Snort Intrusion Detection System yang akan
dirancang berdasarkan knowledge based dan network based.
3. Blocking IP pada IPTables bersifat statis dengan pembatasan waktu.
4. Hanya membahas sistem sebatas yang digunakan
5. Hanya membahas hardware atau perangkat sebatas yang digunakan
1.5 METODE PENULISAN
Metode penulisan yang digunakan dalam penulisan Tugas Akhir ini
adalah:
Berupa studi kepustakaan dan kajian dari buku-buku teks pendukung
2. Diskusi
Berupa tanya jawab dengan dosen pembimbing mengenai masalah-masalah
yang muncul selama penulisan tugas akhir
3. Perancangan Integrasi Sistem
Perancangan fungsi antar aplikasi yang akan digunakan untuk
mengintegrasikan sistem mulai dari konfigurasi Snort IDS sampai IPTables
Firewall.
4. Implementasi
Melakukan implementasi aplikasi berdasarkan studi literatur, studi diskusi dan
disertai dengan pengujian.
1.6 SISTEMATIKA PENULISAN
Untuk memudahkan pemahaman terhadap Tugas Akhir ini maka penulis
menyusun sistematika penulisan sebagai berikut :
BAB I : PENDAHULUAN
Bab ini merupakan pendahuluan yang berisikan tentang latar
belakang, rumusan masalah, tujuan penulisan, batasan masalah,
metode penulisan, dan sistematika penulisan.
BAB II : SNORT DAN IPTABLES FIREWALL
Bab ini membahas mengenai teori penggunaan Snort Intrusion
Detection System dan IPTables Firewall dalam mengembangkan
sistem keamanan jaringan komputer.
BAB III : RANCANGAN DAN PEMBUATAN
Bab ini membahas tentang instalasi dan konfigurasi Snort
Intrusion Detection System, IPTables Firewall serta
BAB IV : PENGUJIAN DAN IMPLEMENTASI
Bab ini membahas pengujian dan implementasi sistem keamanan
komputer menggunakan Snort Intrusion Detection System dan
IPTables Firewall.
BAB V : PENUTUP
Bab ini berisi tentang kesimpulan dan saran dari aplikasi yang
5 BAB II
TEORI PENDUKUNG
2.1 SISTEM KEAMANAN JARINGAN KOMPUTER
Sistem keamanan jaringan komputer adalah cabang dari teknologi yang
dikenal sebagai informasi keamanan yang diterapkan pada komputer dan jaringan.
Tujuan keamanan komputer meliputi perlindungan informasi dari pihak yang
tidak berkepentingan dengan tetap memudahkan akses dan penggunaan oleh para
pengguna. Keamanan sistem komputer merupakan mekanisme dan proses kolektif
terhadap informasi sensitif dan berharga dan juga layanan yang dilindungi dari
publikasi, gangguan atau kehancuran oleh kegiatan yang tidak sah atau individu
yang tidak dapat dipercaya dan kejadian-kejadian yang tidak direncanakan
masing-masing.
2.1.1 JENIS SERANGAN
Jenis dan teknik serangan yang mengganggu jaringan komputer beraneka
jenis, diantaranya adalah :
1. Port Scanning
Merupakan suatu proses untuk mencari dan membuka port pada suatu
jaringan komputer. Dari hasil scanning akan didapat letak kelemahan sistem
tersebut. Pada dasarnya sistem port scanning mudah untuk dideteksi, tetapi
penyerang akan menggunakan beberapa cara metode untuk menyembunyikan
serangan.
2. Teardrop
Teknik penyerangan dengan mengeksploitasi proses
disassembly-reassembly paket data. Dalam jaringan internet sering kali data harus dipotong menjadi paket yang lebih kecil untuk menjamin reliabilitas dan proses multiple
akses jaringan. Pada proses pemotongan data paket yang normal, setiap potongan
diberi informasi offset data yang berbunyi “Potongan byte ini merupakan
memanipulasi potongan data sehingga terjadi overlapping antara paket yang
diterima di bagian penerima setelah potongan-potongan paket disusun kembali.
3. IP spoofing
Teknik ini bekerja dengan mengganti alamat IP pengguna yang lain yang bukan penyerang sebenarnya. Hal ini terjadi karena salah rancang (design flaw)
bagian urutan nomor (sequence number) dari paket TCP/IP. Dalam beberapa
kasus, penyerang menggunakan satu alamat IP sumber yang spesifik pada semua
paket IP yang keluar untuk membuat semua pengembalian paket IP dan pesan
ICMP ke pemilik alamat tersebut.
4. ICMP flood
Penyerang melakukan eksploitasi dengan tujuan untuk membuat target host menjadi terganggu, yang disebabkan oleh pengiriman sejumlah paket yang besar ke arah target host. Eksploitasi sistem ini dilakukan dengan mengirimkan
suatu perintah “ping” dengan tujuan broadcast atau multicast dimana pengirim
dibuat seolah-olah adalah target host. Semua balasan dikembalikan ke target host.
Hal inilah yang menyebabkan host target menjadi terganggu dan menurunkan
kinerja jaringan bahkan dapat menyebabkan denial of service.
5. UDP flood
UDP flood mengaitkan dua sistem tanpa disadari. Dengan cara spoofing,
User Datagram Protocol (UDP) flood attack akan menempel pada servis UDP chargen di salah satu mesin, yang untuk keperluan “percobaan” akan mengirimkan sekelompok karakter ke mesin lain, yang diprogram untuk
meng-echo setiap kiriman karakter yang diterima melalui servis chargen.
Karena paket UDP tersebut di-spoofing diantara ke dua mesin tersebut
maka yang terjadi adalah “banjir” tanpa henti paket kiriman karakter yang tidak
berguna diantara diantara kedua mesin tersebut. Untuk menanggulangi UDP
flood, disable semua servis UDP di semua mesin di jaringan, atau dengan
menyaring semua servis UDP yang masuk pada firewall.
6. Packet interception
Gangguan jenis ini dilakukan dengan membaca paket di saat paket tersebut
untuk mendapatkan informasi yang ada di dalam paket tersebut. Hal ini dapat
dicegah dengan mengenkripsi terlebih dahulu, sehingga penyerang akan
mengalami kesulitan untuk membuka paket tersebut.
7. Smurf attack
Gangguan jenis ini biasanya dilakukan dengan menggunakan IP spoofing,
yaitu mengubah nomor IP dari datangnya request. Dengan menggunakan IP
spoofing, respons dari ping tadi dialamatkan ke komputer yang IP-nya di-spoof. Akibatnya, komputer tersebut akan menerima banyak paket. Hal ini dapat
mengakibatkan pemborosan penggunaan bandwidth jaringan yang
menghubungkan komputer tersebut.
2.1.2 TUJUAN KEAMANAN JARINGAN
Keamanan komputer yang dibangun memiliki beberapa tujuan,
diantaranya:
1. Confidentiality, merupakan usaha untuk menjaga informasi dari
pengguna yang tidak berhak mengakses. Confidentiality biasanya
berhubungan dengan informasi yang diberikan ke pihak lain.
2. Integrity, keaslian pesan yang dikirim melalui sebuah jaringan dan dapat
dipastikan bahwa informasi yang dikirim tidak dimodifikasi oleh
pengguna yang tidak berhak dalam perjalanan informasi tersebut.
3. Availability, Aspek availability atau ketersediaan berhubungan dengan
ketersediaan akses terhadap informasi yang dibutuhkan. Sistem informasi
yang diserang dapat menghambat atau meniadakan akses ke informasi.
2.2 SISTEM DETEKSI INTRUSI (INTRUSION DETECTION SYSTEM)
Penyusupan (intrusion) didefinisikan sebagai kegiatan yang bersifat
kerusakan jaringan oleh pengganggu sebelum pengrusakan dilakukan, layanan
ditolak, atau hilangnya data.
IDS mengawasi sebuah paket yang melintasi jaringan anda dan mengambil
tindakan jika tergolong penyusupan. Dasarnya adalah daftar deskripsi jenis paket
yang menunjukkan sistem di bawah serangan atau deskripsi serangan yang telah
terjadi.
Sistem deteksi intrusi memberikan pertahanan pertama yang sangat
penting dalam menghadapi penyusupan. Jika penyusup berusaha masuk ke server
jaringan, mungkin dapat ditemukan bukti dalam sistem log, meskipun hacker
pintar akan menghapus files log. Host sistem deteksi intrusi mengamati aktivitas
yang tidak layak pada setiap sistem. Jika penyusup berusaha mengganggu server
yang sama menggunakan serangan fragmentasi, mungkin dapat diketahui apa
yang terjadi dengan melihat log.
Meskipun terlalu optimis untuk berbicara tentang deteksi intrusi pada
waktu nyata, peran IDS sebagai pendeteksi serangan awal sangat penting.
Sebelum terjadi kerusakan dapat dilakukan pencegahan dan mengirimkan
pemberitahuan kepada pengguna dan basis data yang aman.
2.2.1 KONSEP IDS
Di bawah ini dijelaskan konsep dasar dan hubungan yang penting untuk
menjalankan IDS.
a. False Positives dan False Negatives
False positives adalah alert yang ditimbulkan oleh IDS karena dirasakan
telah terjadi serangan pada sistem yang diawasi, tetapi serangan tidak
benar-benar terjadi. False positives merupakan masalah, karena peringatan
yang diciptakan dapat menyembunyikan serangan yang sebenarnya, dan
menggiring pada usaha penangkapan terhadap serangan yang tidak pernah
terjadi.
False negatives adalah serangan yang lolos dari IDS dan tidak
menghasilkan peringatan. IDS bisa gagal karena jenis serangan tidak
menggunakan metode untuk menghindari IDS.
b. Deteksi Signature dan Deteksi Anomali
4. Deteksi Signature. IDS yang menggunakan deteksi signature pada lalu
lintas jaringan mencocokkan lalu lintas jaringan dengan daftar signature
serangan. Signature merupakan bit dan bagian-bagian dari serangan yang
harus di lihat IDS untuk paket yang baru datang dan di tandai sebagai
paket penyusupan. Kekurangan deteksi signature, hanya bisa mendeteksi
serangan yang sudah terdapat sebelumnya, untuk serangan baru
kemungkinan akan gagal. Deteksi signature IDS yang baru lemah pada
false negatives tapi tidak pada false positives.
5. Deteksi Anomali. IDS yang mendeteksi berdasarkan anomali bekerja
dengan cara yang berbeda. Sistem ini mempelajari lalu lintas yang
“normal” pada jaringan dan kemudian akan memberikan alert pada
kondisi “abnormal”. Kekurangan dari sistem ini adalah kondisi yang
berbeda bisa saja dianggap abnormal, jadi IDS deteksi anomali yang baru
sangat lemah akan false positives tetapi tidak halnya pada false negatives.
Beberapa IDS menggunakan deteksi signature, dan yang lain deteksi
anomali atau bahkan keduanya. Snort menggunakan deteksi signature. c. NIDS (Network Intrusion Detection System ) dan HIDS (Host Intrusion Detection System)
NIDS (Network IDS) menganalisa paket yang datang ke dalam suatu jaringan jika terdapat tanda-tanda intrusi. NIDS melakukan hal-hal
berikut:
NIDS menganalisa lalu lintar jaringan untuk mendeteksi serangan,
menggunakan deteksi signature, anomali atau keduanya. Hal ini karena
kartu jaringan berjalan pada modus promiscuous, yang berarti kartu
jaringan menangkap semua paket yang datang bukan hanya paket yang
ditujukan untuk IDS itu sendiri. Menghasilkan alert untuk
memperingatkan jika terjadi serangan dengan tepat waktu. Menghasilkan
setelah serangan terjadi. NIDS dapat disebarkan ke bagian-bagian yang
berbeda pada infrastruktur jaringan, tidak hanya pada satu console.
Berbeda dengan NIDS yang mengawasi seluruh lalu lintas pada suatu jaringan, HIDS, IDS berbasiskan host hanya mengawasi intrusi pada host
tertentu. HIDS dalam prosesnya melakukan hal-hal berikut :
◦ HIDS mengawasi lalu lintas jaringan yang masuk menggunakan deteksi anomali dan signature. Biasanya kartu jaringan yang
dijalankan tidak diatur pada modus promiscuous.
◦ HIDS memeriksa log sistem untuk melihat penyusupan, seperti usaha login tidak sah yang berkali-kali.
◦ HIDS memeriksa integritas file sistem. Hal ini tidak terkait dengan isi paket pada suatu file, tetapi lebih kepada sudah dimodifikasi atau
belum suatu file. Pemeriksaan integritas juga dapat digunakan untuk
mengetahui jika file tersebut telah diciptakan atau dihapuskan. Hal ini
sangat berguna untuk mendeteksi jika backdoor atau trojan sudah
diinstall pada sistem.
2.3 SNORT IDS
Snort IDS merupakan IDS open source yang secara defacto menjadi
standar IDS di industri. Snort dapat diimplementasikan dalam jaringan yang
multiplatform, salah satu kelebihannya adalah mampu mengirimkan alert dari mesin Unix atupun Linux ke platform Microsoft Windows dengan melalui Server
Message Block (SMB). Snort dapat bekerja dalam 3 modus: sniffer mode (penyadap), packet logger dan network intrusion detection mode. Modus kerja
yang akan digunakan dalam membangun sistem pencegahan penyusupan adalah
modus kerja network intrusion detection. Snort memiliki kemampuan untuk
mengumpulkan data log seperti alert dan yg lainnya ke dalam database.
Snort diciptakan untuk menjadi IDS berbasiskan open source yang
berkualitas tinggi. Snort di desain untuk dapat digabung dengan tools yang sudah
2.3.1 KOMPONEN SNORT
Snort dibagi kedalam beberapa komponen. Komponen ini bekerjasama
untuk mendeteksi serangan yang berbeda dan untuk menghasilkan keluaran pada
format yang diinginkan pada sistem deteksi. IDS berbasiskan Snort umumnya terdiri dari komponen :
1. Dekoder paket
Dekoder paket mengambil paket dari beberapa jenis jaringan yang berbeda
dari antarmuka jaringan dan mempersiapkan paket untuk di proses atau di
kirim menuju detection engine. Antarmukanya dapat berupa Ethernet,
SLIP, PPP dan yang lain.
2. Preprocessor
Preprocessor merupakan komponen atau plug-ins yang dapat digunakan pada snort untuk menyusun atau mengubah paket data sebelum
detection engine melakukan beberapa operasi untuk mencari tahu jika paket digunakan oleh penyusup. Preprocessor pada snort dapat
mendekode-kan URL HTTP, men-defragmentasi paket, menggabungkan
kembali aliran TCP dan yang lain. Fungsi ini merupakan bagian yang
sangat penting pada sistem deteksi intrusi.
3. Detection Engine
Detection engine adalah bagian terpenting dari Snort. Tugasnya
adalah untuk mendeteksi jika terjadi aktifitas penyusup pada paket.
Detection engine mempekerjakan rules Snort untuk tujuan ini. Rules
dibaca ke dalam struktur atau rantai data internal kemudian dicocokkan
dengan paket yang ada. Jika paket sesuai dengan rules yang ada, tindakan
akan diambil, jika tidak paket akan dibuang. Tindakan yang diambil dapat
Detection engine merupakan bagian dari snort yang sangat
bergantung pada waktu tanggap. Waktu tanggap merupakan waktu yang
dibutuhkan untuk merespon paket, hal ini bergantung pada seberapa bagus
server yang ada dan seberapa banyak rules yang telah didefinisikan.
Berikut hal-hal yang mempengaruhi waktu tanggap pada detection engine :
1. Jumlah rules
2. Kekuatan mesin pada sistem
3. Kecepatan bus internal server snort
4. Beban pada jaringan
Ketika mendesain sistem keamanan komputer berbasiskan NIDS
(Network Intrusion Detection System), faktor ini harus dipertimbangkan.
Catatan bahwa sistem deteksi dapat membelah paket dan menerapkan rules
pada bagian paket yang berbeda. Bagian tersebut diantaranya :
1. IP header paket
2. Header layer transport. Header ini dapat berupa TCP, UDP atau
header layer transport lainnya. Hal ini juga dapat bekerja pada
header ICMP.
3. Header level layer aplikasi. Header layer aplikasi termasuk header
DNS, FTP, SNMP dan SMTP, namun tidak dibatasi hanya header
ini saja.
4. Packet payload. Hal ini berarti dapat diciptakan rules yang
digunakan oleh detection engine untuk mencari string di dalam data
Detection engine bekerja dengan cara yang berbeda tergantung
versi dari Snort. Pada versi 1.x detection engine akan berhenti bekerja jika
paket telah sesuai dengan rules. Detection engine mengambil tindakan
yang berbeda dengan me-log paket atau mengaktifkan alert, tergantung
pada rules. Hal ini berarti jika paket sesuai dengan kriteria beberapa rules,
hanya rules pertama yang akan diterapkan pada paket dan rules yang lain
tidak akan dihiraukan. Penanganan jenis ini baik, kecuali pada satu
permasalahan. Rules dengan prioritas rendah mengaktifkan alert dengan
prioritas rendah, bahkan dengan rules berprioritas tinggi akan
menghasilkan alert berprioritas tinggi akan ditempatkan kemudian pada
rantai rules. Permasalahan ini kemudian diralat pada snort versi 2 dimana
semua rules telah dicocokkan dengan paket sebelum mengaktifkan alert.
Setelah mencocokkan semua rules, rules berprioritas tertinggi memilih
untuk mengaktifkan alert.
4. Sistem Log dan Alert
Berdasarkan apa yang ditemukan detection engine pada paket,
paket dapat digunakan untuk me-log kegiatan atau mengaktifkan alert,
bergantung pada apa yang ditemukan detection engine pada paket. Log di
simpan pada format file teks sederhana, file berjenis tcpdump atau bentuk
yang lain. File log disimpan di direktori /var/log/snort secara default.
Perintah snort -l pada command line dapat digunakan untuk memodifikasi
5. Modul Output
Modul Output dapat melakukan beberapa operasi berbeda
tergantung bagaimana cara penyimpanan keluaran yang dihasilkan sistem
log dan alert dari Snort. Pada dasarnya modul ini mengatur jenis keluaran
yang dihasilkan oleh sistem log dan alert. Berdasarkan konfigurasi,
keluaran modul dapat melakukan hal-hal berikut :
Logging ke dalam file /var/log/snort/alerts atau file lainnya.
Mengirimkan traps SNMP
Mengirimkan pesan ke syslog
Logging ke dalam database seperti MySQL atau Oracle.
Menghasilkan output eXtensible Markup Language (XML)
Mengubah konfigurasi pada router atau firewall
Mengirimkan pesan Server Messager Block (SMB) kepada mesin
Gambar 2.1 Komponen Snort
2.3.2 MODUS KERJA
Secara umum snort dapat dioperasikan dalam tiga buah modus, yaitu
2.3.2.1 Sniffer mode
Modus ini digunakan untuk mengamati paket yang masuk ke dalam
jaringan yang sedang diamati. Untuk menjalankan snort pada sniffer mode
contoh perintahnya terdapat di bawah ini :
snort –v
snort –vd
snort –vde
snort –v –d –e
Dengan menambahkan beberapa switch -v, -d, -e akan menghasilkan
beberapa keluaran yang berbeda, yaitu :
-v, untuk melihat header TCP/IP paket yang lewat.
-d, untuk melihat isi paket.
2.3.2.2 Packet logger mode
Pada modus ini, snort mencatat semua paket yang masuk ke dalam
jaringan untuk di analisa kemudian. Beberapa perintah yang dapat digunakan
untuk mencatat paket yang ada adalah :
snort –dev –l ./log
snort –dev –l ./log –h 192.168.0.0/24
snort –dev –l ./log –b
Perintah yang paling penting untuk me-log paket yang lewat adalah :
-l ./log
Beberapa perintah tambahan dapat digunakan seperti –h 192.168.0.0/24
yang menunjukan bahwa yang dicatat hanya packet dari host tertentu, dan –b
yang memberitahukan agar file yang dilog dalam format biner, bukan ASCII.
Untuk membaca file log dapat dilakukan dengan menjalankan snort
dengan di tambahkan perintah –r nama file log-nya, seperti :
snort –dv –r packet.log
snort –dvr packet.log icmp
2.3.2.3 Intrusion Detection Mode
Modus operasi snort yang paling rumit adalah sebagai pendeteksi
penyusup (intrusion detection). Ciri khas modus kerja untuk pendeteksi
penyusup adalah dengan menambahkan perintah ke snort untuk membaca file
konfigurasi –c nama-file-konfigurasi.conf. Isi file konfigurasi, sebagian besar telah
Beberapa contoh perintah untuk mengaktifkan snort untuk melakukan
pendeteksian penyusup, seperti :
snort –dev –l ./log –h 192.168.0.0/24 –c snort.conf
snort –d –h 192.168.0.0/24 –l ./wlog –c snort.conf
Untuk melakukan deteksi penyusup snort harus melakukan logging paket
yang lewat dapat menggunakan perintah –l nama-file-logging, atau membiarkan
snort menggunakan default file logging-nya di directory /var/log/snort.
Kemudian menganalisa catatan logging paket yang ada sesuai dengan isi
perintah snort.conf.
Ada beberapa perintah tambahan yang akan membuat proses deteksi
menjadi lebih efisien, mekanisme pemberitahuan alert di Linux dapat di atur
dengan perintah –A sebagai berikut :
-A fast, mode alert yang cepat berisi waktu, berita, IP & port tujuan.
-A full, mode alert dengan informasi lengkap.
-A unsock, mode alert ke unix socket.
-A none, mematikan mode alert.
Untuk mengirimkan alert ke syslog UNIX kita bisa menambahkan switch
–s, seperti tampak pada beberapa contoh di bawah ini.
snort –c snort.conf –l ./log –s –h 192.168.0.0/24
snort –c snort.conf –s –h 192.168.0.0/24
Untuk mengirimkan alert biner ke workstation Windows, dapat digunakan
perintah di bawah ini :
Agar snort beroperasi secara langsung setiap kali workstation atau server
diboot, kita dapat menambahkan ke file/etc/rc.d/rc.local perintah di bawah ini :
/usr/local/bin/snort –d –h 192.168.0.0/24 –c /root/snort/snort.conf –A full –s
–D
atau
/usr/local/bin/snort –d –c /root/snort/snort.conf –A full –s –D
dimana –D adalah switch yang mengatur agar snort bekerja sebagai daemon.
2.3.2.4 Rules dan Alert
Rules Snort
Rules Snort merupakan basis data yang berisi pola-pola serangan. Rules
Snort IDS sebaiknya diperbaharui secara rutin agar mengenali jenis serangan
yang baru dan snort terhindar dari false negatives.
Snort IDS yang berbasiskan signature menggunakan rules untuk
membandingkan paket-paket data yang masuk. Rules dapat menganalisa
banyak hal, diantaranya FTP, serangan web, serangan denial of service yang
terdistribusi, usaha penyerangan pada SMB dan serangan RPC. Setiap Rules
memiliki identitas, Sensor ID (SID) yang identik sehingga mudah untuk
dibedakan dengan rules yang lain. Berikut contoh rules :
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS \
(msg:"WEB-MISC Transfer-Encoding\: chunked";\
flow:to_server,established; content:"Transfer-Encoding\:"; nocase; \
reference:bugtraq,4474;\
reference:cve,CAN-2002-0079; reference:bugtraq,5033;\
reference:cve,CAN-2002-0392; sid:1807; rev:1;)
Alert
Alert merupakan catatan serangan pada sistem deteksi penyusup. Jika
snort engine mendeteksi paket data yang datang sebagai serangan, maka snort
engine akan mengirimkan alert berupa file log. Untuk kebutuhan analisa,
alert dapat disimpan di dalam database, sebagai contoh ACID (Analysis
Console for Intrusion Databases) sebagai modul tambahan pada snort.
Contoh alert sebagai berikut :
[**] [1:499:3] ICMP Large ICMP Packet [**] [Classification:
Potentially Bad Traffic] [Priority: 2] 05/09-20:15:14.
895348 10.1.4.113 -> 10.1.3.126 ICMP TTL:128 TOS:0x0
ID:6316 IpLen:20 DgmLen:65528 Type:8 Code:0 ID:512
Seq:3072 ECHO [Xref => http://www.whitehats.com/info/IDS246]
Contoh alert di atas merupakan alert ketika terdapat paket data dalam
ukuran besar dari IP Address 10.1.4.113 ke 10.1.3.126 yang dianggap sebagai
serangan oleh snort karena pola paket data tersebut terdapat dalam rules
2.4 IPTables Firewall
IPTables terbagi menjadi dua bagian, perangkat user dan modul kernel.
Modul kernel disebarkan dengan kernel utama dan di compile seperti modul
lainnya, seperti driver suara, sebuah file sistem atau yang mendukung USB.
Modul utama IPTables seperti modul khusus pada NAT, logging, connection
tracking dan sebagainya. Modul ini melakukan fungsi tertentu terhadap paket
yang dikirimkan oleh netfilter, tergantung pada rules yang terdapat pada daftar
rules atau rantai. Kode perangkat pengguna pada IPTables berbentuk biner, yang
disebarkan terpisah dari tree kernel utama dan digunakan untuk menambahkan,
memindahkan atau mengubah modul.
2.4.1 KONSEP IPTables Firewall
2.4.1.1 Fungsi dasar Firewall
Hal-hal yang dapat dilakukan firewall umumnya adalah :
Firewall berfungsi sebagai dinding penghambat yang tidak
mengizinkan pengguna yang tidak punya hak mengakses jaringan. Hal
ini dapat berguna untuk melindungi jaringan dari hal-hal yang tidak
diinginkan, seperti : IP spoofing, serangan terhadap router.
Firewall berfungsi sebagai monitor kejadian-kejadian yang
berhubungan dengan sistem keamanan, yang akan memberikan
keterangan ke sistem, seperti : file log, alarm yang bisa
diimplementasikan oleh sistem firewall.
tidak aman, yang meliputi penerjemahan alamat jaringan, yaitu
penerjemahan alamat lokal ke alamat internet. Firewall melayani
platform untuk IPSec dengan menggunakan modus tunnel dan firewall
juga bisa digunakan oleh Virtual Private Network.
2.4.1.2 Pengaturan Firewall
Empat teknik umum dari firewall untuk dapat mengendalikan akses dan
mendukung dari suatu kebijakan keamanan. Fokus dari firewall pada
pengaturan layanan, yang dibagi menjadi empat, diantaranya adalah :
Service control : menentukan jenis dari layanan internet yang bisa
melakukan akses, baik secara inbound maupun outbound. Firewall
akan memfilter lalu lintas alamat IP dan nomor port TCP.
Direction control : menentukan arah layanan, paket mana yang
diminta terlebih dahulu dan paket mana yang diizinkan untuk melewati
firewall.
User control : adalah pengaturan terhadap akses pengguna yang bisa
mengakses firewall untuk masuk ke suatu jaringan, hal ini dikhususkan
untuk pengguna yang ada di dalam firewall atau pengguna lokal. Hal
ini juga berlaku bagi pengguna yang ada di luar yang akan
berhubungan dengan pengguna yang ada di dalam, yang pada dasarnya
memerlukan teknologi autentikasi seperti IPsec.
Behavior control : merupakan layanan khusus yang akan digunakan.
Seperti, firewall akan melakukan filter terhadap email yang disisipkan
spam dan tidak memberinya izin untuk masuk ke suatu server.
2.4.1.3 Keterbatasan Firewall
Hal-hal yang tidak bisa dibatasi oleh firewall sebagai berikut :
Firewall tidak bisa melindungi serangan yang dilakukan didalam sistem (internal).
Firewall tidak bisa melindungi pengiriman virus yang disisipkan ke dalam suatu program atau file. Karena firewall tidak bisa melakukan
scanning terhadap file, program atau email yang berisi virus.
2.5 ACID
ACID merupakan alat analisis dan pelaporan pada Snort melalui web
browser. ACID bukan merupakan aplikasi secara utuh, melainkan sekumpulan skrip PHP yang bekerja sama kemudian mengumpulkan data Snort dari database,
mengaturnya dalam bentuk yang sederhana pada web browser dan secara rutin
memperbaharui halaman tersebut. Beberapa hal yang dapat dilakukan ACID :
Menampilkan alert Snort dalam kelompok yang berbeda.
Menampilkan rincian setiap alert, termasuk alamat IP sumber dan tujuan, kerentanan yang sedang diserang.
Menyajikan informasi dari situs-situs keamanan jaringan.
Mengatur informasi alert yang telah terjadi dalam format dan pengelompokan yang berbeda (contoh : Protokol terkini yang digunakan,
port sumber dan tujuan yang paling sering digunakan)
Menampilkan semua informasi alert dalam format grafis (menggunakan JpGraph dan PHPlot).
Menampilkan alert Snort dalam kelompok yang berbeda.
Menampilkan rincian setiap alert, termasuk alamat IP sumber dan tujuan, kerentanan yang sedang diserang.
Menyajikan informasi dari situs-situs keamanan jaringan.
Gambar 2.2. Tampilan ACID
2.6 WEBMIN
Webmin merupakan alat konfigurasi berbasiskan web untuk sistem operasi
OpenSolaris, Linux dan sistem operasi berbasiskan Unix lainnya. Webmin dapat
digunakan untuk mengkonfigurasi banyak sistem operasi internal, seperti
pengguna, kuota disk, layanan, file konfigurasi dll. Webmin juga dapat digunakan
untuk memodifikasi dan mengatur banyak aplikasi open source, seperti Apache
HTTP Server, PHP, MySQL dll.
Webmin sebagian besar berbasiskan pada Perl, berjalan sebagai proses
sendiri dan web server. Webmin menggunakan port 10000 untuk berkomunikasi
secara default, dan dapat dikonfigurasi untuk menggunakan SSL jika OpenSSL
diinstal dengan tambahan modul-modul Perl yang diperlukan. Webmin juga
25 BAB III
PERANCANGAN DAN IMPLEMENTASI
3.1 Persiapan Server Snort dan IPTables Firewall
Berikut ini merupakan spesifikasi komputer server yang digunakan dalam melakukan konfigurasi Snort IDS dan IPTables Firewall :
Sistem Operasi : Ubuntu 9.10
Prosesor : AMD Athlon X2 dengan kecepatan 2GHz
RAM : 2 GB DDR2
Hard Disk : 160 GB
LAN Card : 1Gbps
Untuk sistem operasi yang digunakan adalah distribusi linux Ubuntu 9.10
yang sudah terintegrasi dengan berbagai aplikasi pendukung dalam Snort IDS dan
IPTables Firewall.
3.2 Instalasi aplikasi pendukung
Untuk memenuhi kebutuhan fungsional sistem pencegahan penyusupan
dibutuhkan modul-modul utama dan modul pendukung. Modul utama berupa:
snort engine, rule snort, engine IPS dan firewall. Sedangkan modul pendukung berupa: ACID (manajemen event) dan Webmin (manajemen rule). Diagram blok
Gambar 3.1. Diagram Blok Sistem Keamanan Komputer
Komponen Utama :
6. Rule Snort : Modul ini menyertakan rule berupa pola serangan yang pernah terjadi. Rule merupakan file teks yang mempunyai susunan
tertentu. Rule diatur secara statis melalui snort.conf maupun aplikasi
Webmin.
7. Snort Engine : Modul ini berfungsi membaca paket dan
membandingkannya dengan rules snort. Jika paket terdeteksi sebagai
penyusup maka snort engine akan menuliskannya ke alert berupa file log
dan database MySQL.
8. IPS Engine : Merupakan sistem yang membaca alert pada database kemudian memerintahkan firewall menutup akses dari penyusup. Dalam
IPS engine merupakan sistem yang akan membaca alert kemudian
memerintahkan firewall untuk menutup akses paket data dari penyerang.
Cara kerja IPS engine digambarkan dalam flowchart berikut ini :
Gambar 3.2: Flowchart IPS engine
IPS akan menutup akses bagi penyerang ketika aktivitas tersebut
terdeteksi oleh IDS. Dalam bahasan ini, proses pembacaan alert dan
update rules pada firewall dilakukan secara periodik. Ketika terjadi usaha
penyusupan dan terdeteksi oleh IDS, maka IPS akan memerintahkan
firewall untuk menutup akses dari alamat IP penyerang, jika pada waktu yang lain administrator IPS akan membuka alamat IP yang telah
melakukan penyerangan, hal ini dapat dilakukan dengan menghapus isi
alert pada serangan dari IP yang dimaksud pada database ACID.
9. IPTables Firewall : Merupakan aplikasi firewall pada linux. Pada
sistem keamanan komputer ini digunakan sebagai aplikasi yang menutup
Komponen Pendukung :
10. Webmin : Modul yang digunakan untuk mengelola rule. Webmin
dapat digunakan untuk pengelolaan rule berupa aktif maupun tidaknya
rule dan penambahan secara manual. Webmin menggunakan antarmuka berbasis web.
11. ACID : Digunakan untuk mengelola data-data security event.
12. ACID History : Digunakan untuk menganalisa catatan-catatan IDS. Database pada ACID History tidak dihapus karena bersifat arsip, berbeda dengan database pada ACID yang akan dihapus sesuai jika administrator
IPS membuka akses terhadap alamat IP yang pernah ditutup.
13. Alert : Merupakan catatan serangan pada file log.
3.2.1 Instalasi dan konfigurasi Snort IDS
Dalam menginstall dan mengkonfigurasi Snort IDS diperlukan berbagai
macam aplikasi pendukung. Adapun aplikasi-aplikasi pendukung tersebut
diantaranya adalah :
1. Pcap (Packet Capture)
2. Pcre (Perl Compatible Regular Expression)
3. SSH (Secure shell)
Aplikasi pcap terdiri dari application programming interface untuk
menangkap lalu lintas paket. Linux menempatkan pcap pada pustaka libpcap.
Snort menggunakan libpcap untuk menangkap paket yang melintas dalam suatu
jaringan dan dalam versi terbaru mengirimkan paket pada suatu jaringan pada
layer link dan juga untuk mendapatkan daftar antarmuka jaringan yang dapat digunakan.
Libpcap juga dapat menyimpan paket yang telah ditangkap ke dalam suatu
file dan membaca isi didalamnya. File yang telah disimpan dalam format libpcap
dapat digunakan oleh aplikasi lain. Libpcap pertama kali dikembangkan oleh
pengembang Tcpdump pada grup peneliti jaringan Lawrence Berkeley
Laboratory. Merupakan packet capture level rendah. File yang telah ditangkap,
Library pcre merupakan library yang menggunakan pencocokan pola ekspresi yang hampir sama dengan Perl. Sebagai tambahan fungsi pencocokan
pcre memiliki fungsi yang berbeda dalam pencocokan pola kompilasi yang sama.
Dalam keadaan yang berbeda, cara ini memiliki beberapa keunggulan. Pcre
disusun dalam bahasa C dan dirilis sebagai library C.
SSH (secure shell) merupakan protokol jaringan yang memungkinkan
pertukaran data menggunakan saluran yang aman antara dua perangkat jaringan.
Selain aplikasi diatas terdapat beberapa modul, seperti modul pustaka dan
adapter libpcap0.8-dev, libpcre3-dev, pcregrep yang akan digunakan dalam tugas akhir ini. Adapun langkah-langkah instalasi dan konfigurasi semua aplikasi pendukung
akan disertakan pada lampiran.
Sebelum menginstall Snort, ada beberapa hal yang harus dilakukan.
Pertama kali adalah mengamankan SSH dengan beberapa pengaturan dan
menjalankan beberapa layanan yang akan digunakan pada saat menginstall dan
konfigurasi snort.
Untuk instalasi Snort, user yang digunakan adalah user root. Kemudian
snort dapat diunduh pada situs penyedia aplikasi snort yaitu
http://www.snort.org/dl. Snort terbaru dapat diunduh pada bagian most recent
release (rilis terbaru).
Setelah diunduh menggunakan aplikasi wget, aplikasi bawaan unix yang
digunakan untuk mengunduh sebuah file, file sumber snort diekstrak dan
dikonfigurasi lalu diinstal. Sebelum snort digunakan, snort membutuhkan rules.
Rules didapat setelah mendaftar sebagai pengguna pada situs snort. Unduh pada bagian “registered user release” (rilis untuk pengguna terdaftar) dan kemudian
simpan pada direktori /etc/snort/rules.
File snort.conf memerlukan sedikit perubahan sesuai dengan kebutuhan
jaringan. Hal ini dapat dilakukan dengan mengedit file /etc/snort/snort.conf
menggunakan text editor nano.
#nano /etc/snort/snort.conf.
var HOME_NET menjadi var HOME_NET 10.4.12.0/24
var EXTERNAL_NET menjadi var EXTERNAL_NET !$HOME_NET
var RULE_PATH ../rules menjadi RULE_PATH /etc/snort/rules
...
Variabel HOME_NET merupakan atribut konfigurasi snort yang berfungsi
untuk memberikan informasi jaringan yang akan diperiksa oleh snort dari
percobaan-percobaan intrusi. Sedangkan var EXTERNAL_NET merupakan
informasi jaringan luar. Dan yang terakhir var RULE_PATH adalah direktori rules
snort.
Setelah itu lakukan perubahan pada bagian "# output database: log, mysql,
user=", aktifkan dengan menghapus tanda "#" pada awal baris. Kemudian ganti
"user=root" menjadi "user=snort", dan "password=password" menjadi
"password=hahnroot", "dbname=snort". Hal ini dilakukan agar log pada MySQL
diaktifkan dan pengguna serta password dapat digunakan ketika mengakses
MySQL.
Permission dan owner file snort.conf harus diganti. Hal ini dilakukan agar file snort.conf hanya dapat dibaca tulis oleh user snort, dibaca oleh group snort dan
tidak dapat dibaca tulis oleh user lain. Setelah itu snort dapat dijalankan dengan
perintah :
#snort -c /etc/snort/snort.conf -i eth0 -D
Perintah ini menjalankan Snort pada antarmuka eth0 pada modus daemon.
Antarmuka eth0 merupakan antarmuka LAN pada IPS engine. Perintah ini dapat
ditambahkan pada file /etc/rc.local sehingga dapat langsung dijalankan setelah
reboot. Untuk memastikan snort telah berjalan, dapat dilakukan dengan perintah berikut:
3.2.2 Konfigurasi Dekoder
Salah satu keunggulan Snort adalah mudah dikonfigurasi sesuai kebutuhan
jaringan. Bagian dari Snort yang memegang peranan penting dalam pengolahan
awal paket adalah Dekoder. Dekoder dapat dikonfigurasi untuk mengaktifkan
atau tidak sebuah events.
Konfigurasi dapat dinonaktifkan dengan menambahkan karakter “#” jika
tidak dibutuhkan. Dekoder digunakan untuk mengatur checksum, pengaturan
alerts pada beberapa protokol seperti TCP, IP maupun pengaturan decode drops.
3.2.3 Konfigurasi Preprocessors
Preprocessor pertama kali digunakan pada Snort versi 1.5. Preprocessor
memungkinkan kegunaan snort diperluas dengan mengaktifkan plugins. Kode
pada Preprocessor dijalankan setelah Dekoder dan sebelum Detection Engine.
Konfigurasi pada Preprocessor didahului kata preprocessor.
Konfigurasi Preprocessor yang terdapat pada snort terus berkembang menyesuaikan dengan kebutuhan jaringan. Berikut ini beberapa modul yang perlu
diaktifkan pada konfigurasi Preprocessor :
1. Stream5, merupakan modul reassembly berbasiskan paket TCP pada
Snort. Dengan menggunakan Stream5, Rules “flow” dan “flowbits” dapat
digunakan pada TCP maupun UDP.
2. Http_inspect_server, modul ini bekerja dengan men-decode buffer,
mencari fields http dan mengembalikan fields ke keadaan normal. Pada HTTP
inspect, terdapat dua wilayah konfigurasi yaitu global dan server.
3. Rpc_decode, bekerja dengan mengembalikan catatan RPC yang
terfragmentasi menjadi catatan tunggal yang tidak terfragmentasi. Hal ini
dilakukan dengan mengembalikan paket ke keadaan normal pada buffer paket.
4. Sfportscan, digunakan untuk mendeteksi fase awal penyerangan. Pada
fase ini penyusup mendeteksi protokol jaringan dan layanan yang digunakan host.
3.2.4 Instalasi dan konfigurasi Database MySQL
Konfigurasi paket Snort untuk login ke remote MySQL server pada
antarmuka grafis berbasiskan web dapat digunakan untuk melihat paket yang telah
terdeteksi dan statistiknya. Dalam bahasan ini, server Snort adalah "snort.host" dan
server MySQL adalah "mysql.host".
Pada paket instalasi Snort terdapat sebuah file create_mysql, yang memiliki
skema untuk database. Pada saat menginstal Linux, file ini akan ditemukan di
/usr/share/doc/snort. Extract dan install file tersebut agar penambahan tabel
tambahan yang diperlukan snort dapat digunakan.
Tabel tambahan tersebut terdapat pada database “snort” diantaranya
tabel-tabel tersebut adalah data, detail, encoding, event, dll. Selanjutnya, pada server
snort, ubah file konfigurasi /etc/snort/snort.conf untuk me-log ke database:
output database: log, mysql, user=snort password=hahnroot dbname=snort host=localhost
3.3 Instalasi dan konfigurasi Web server & ACID BASE
Untuk mengumpulkan dan menyajikan informasi alert pada Snort,
digunakan ACID (Analisis Console for Intrusion Detection). ACID merupakan
konsol analisis berbasis open source yang disesuaikan secara khusus untuk Snort. ACID yang merupakan sekumpulan skrip PHP memerlukan program-program
pendukung berikut:
Sebuah server web yang mendukung versi 4.0 atau yang lebih baru dari skrip PHP
PHP versi 4.0 atau yang terbaru.
ADODB ( Active Data Objects Data Base)
JpGraph dan PHPlot (paket yang digunakan dalam mengumpulkan data grafis oleh ACID)
Zlib, pustaka perangkat lunak yang digunakan untuk kompresi data. Setelah instalasi paket pendukung, ACID dapat diinstal. ACID merupakan
alat pelaporan dan analisis pada Snort yang dapat diakses melalui web browser.
ACID bukan merupakan aplikasi secara utuh, melainkan kumpulan skrip PHP.
dalam format yang mudah dikelola dalam halaman web dan memperbaharui
halaman tersebut secara rutin. Versi ACID yang digunakan disini adalah versi
0.9.6.b.23.
Setelah diextract, langkah berikutnya adalah konfigurasi ACID. File
konfigurasi ACID berada di file acid.conf pada direktori /www/html/acid/. Dalam
hal ini digunakan text editor nano untuk mengubah file konfigurasi tersebut.
Berikut ini variabel yang perlu diubah :
#sudo nano /www/html/acid/acid.conf
/*archive DB connection parameters*/
$archive_dbname = “snort”;
“http://localhost/acid/acid_main.php”. Lakukan pemilihan pengaturan dan
pembuatan tabel Alert Group ACID (ACID AG).
Tahap selanjutnya adalah mengamankan direktori ACID dari pengguna
luar dengan cara mengaktifkan password.
Kemudian ubah file httpd.conf dan lakukan perubahan pada AuthName,
ACID menganalisa database pada snort untuk ditampilkan. Skema database
yang digunakan ACID bisa dilihat pada gambar berikut:
Gambar 3.3 Skema database yang digunakan ACID
Setelah dikonfigurasi, ACID dapat digunakan. Berikut contoh tampilan
ACID :
3.4 Instalasi Webmin
Webmin (http://www.webmin.com/) yang telah ditambahkan module snort
rule digunakan untuk mengelola rule. Rule yang akan di aktifkan atau
dinonaktifkan dapat diatur melalui Webmin, bahkan dapat digunakan untuk
menambahkan rule-rule secara manual dengan editor berbasis web. Webmin
dapat digunakan bersama Snort setelah melakukan instalasi modul yang dapat
diunduh pada : http://www.msbnetworks.net/snort/download/snort-1.1.wbm.
Berikut contoh tampilan Webmin untuk mengelola rule Snort.
Gambar 3.5 Webmin dengan plugin Snort untuk mengelola Rules
3.5 Instalasi dan konfigurasi SnortSam
3.5.1 Instalasi SnortSam
SnortSam terdiri dari dua buah perangkat lunak yang berbeda. Bagian
dengan menambahkan modul keluaran baru : alert_fwsam. Bagian yang lain adalah
agen yang berhubungan langsung dengan firewall.
Snort mengamati lalu lintas, dan ketika aturan yang ditetapkan terpicu,
snort mengirim output ke modul fwsam. Modul fwsam kemudian mengirimkan
pesan terenkripsi ke agen SnortSam. Agen SnortSam memeriksa pesan untuk
memastikan pesan berasal dari sumber yang berwenang dan kemudian
mendekripsi pesan. Setelah pesan didekripsi, agen SnortSam memeriksa
permintaan untuk melihat alamat IP yang akan diblokir oleh SnortSam, dan
SnortSam memastikan bahwa alamat IP bukan alamat yang tidak boleh diblokir
(terdapat pada whitelist). Jika alamat IP tidak terdapat dalam whitelist, kemudian
SnortSam memberitahu firewall anda untuk memblokir alamat itu untuk jangka
waktu yang ditentukan
Instalasi SnortSam tidak jauh berbeda dengan instalasi paket unix lainnya.
sumber SnortSam yang digunakan adalah snortsam-src-2.69.tar.gz. Extract dan
install file tersebut pada direktori /etc/.
Kemudian gunakan patch SnortSam pada snort. Proses ini memerlukan
aplikasi GNU automake dan autoconf yang telah diperbarui. Setelah snort berhasil
Gambar 3.6. Snort setelah di-patch menggunakan Snortsam patch.
3.5.2 Konfigurasi SnortSam
Setelah mengkompilasi ulang dan mem-patch snort, snort harus
dikonfigurasi untuk dapat terhubung dengan SnortSam. Langkah pertama adalah
menghubungkan snort dengan modul keluaran baru untuk digunakan pada file
snort.conf, dimana alamat IP merupakan alamat dari sistem di mana agen SnortSam
sedang berjalan.
Untuk mengkonfigurasi rules snort pada saat menggunakan SnortSam,
pertama tentukan rules yang akan diaktifkan. Contohnya aturan WEB-MISC yang
menunjukkan seseorang mencoba mengakses di direktori home root. Berikut rules
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:”WEB-
MISC /~root access”; flow:to_server,established; uricontent:”/~root”;
nocase;classtype:attempted-recon; sid:1145; rev:6;)
Dan berikut rules setelah mengalami perubahan untuk memblokir menggunakan
SnortSam.
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:”WEB-
MISC /~root access”; flow:to_server,established; uricontent:”/~root”;
nocase;classtype:attempted-recon; sid:1145; rev:6; fwsam: src: 1 minutes;)
Perintah tambahan fwsam: src, untuk memberitahu Snort untuk
menggunakan SnortSam dan untuk memblokir sumber serangan selama satu
menit.
3.5.3 Konfigurasi SnortSam pada firewall
Setelah mengkonfigurasi Snort untuk bekerja dengan SnortSam, langkah
berikutnya adalah mengkonfigurasi agen SnortSam agar dapat bekerja dengan
firewall. Pengaturan ini dilakukan pada /etc/snortsam.conf secara default.
Pada keadaan minimum, pengaturan koneksitas SnortSam perlu diatur. Hal
ini dilakukan agar SnortSam mengetahui mesin yang diperbolehkan untuk
terhubung dan hal-hal yang dapat dilakukan firewall. Konfigurasi dapat diatur
pada /etc/snortsam.conf.
Pernyataan untuk me-log semua aktivitas login SnortSam dapat dimasukkan
ke /var/log/snortsam.log. Untuk mencegah IDS memblok host yang terpercaya
karena false positives, pastikan whitelist (daftar putih) digunakan. Daftar putih
putih disertakan dalam file snortsam.conf dengan menggunakan pernyataan dont
block. Alamat IP yang umumnya disertakan dalam white list diantaranya upstream
router, server DNS, dan sebagainya. Jika menggunakan file terpisah, dapat
menggunakan pernyataan include yang merujuk ke daftar putih.
Setelah snortsam.conf dikonfigurasi, langkah berikutnya adalah
40 BAB IV
PENGUJIAN DAN ANALISA SISTEM KEAMANAN KOMPUTER
4.1 TUJUAN PENGUJIAN
Setelah proses perancangan dan pengembangan perangkat lunak selesai,
kemudian masuk ketahap selanjutnya yaitu pengujian perangkat lunak. Pengujian
ini bertujuan untuk memastikan bahwa fitur utama sistem yang dikembangkan
sesuai dengan fitur yang ditawarkan pada saat perancangan perangkat lunak.
Secara umum, yang termasuk ke dalam sistem terdiri dari dua jenis, yaitu
server dan client. Fitur-fitur perangkat lunak yang tersedia dijelaskan pada diagram blok sistem keamanan komputer. Pada diagram terdapat fitur yang
dimiliki oleh IPS engine pada server yaitu untuk blocking paket jika diketahui
terdapat paket serangan dari alamat IP tertentu.
4.2 PROSEDUR PENGUJIAN
Pengujian sistem keamanan jaringan komputer dilakukan baik dari sisi
server maupun client. Client merupakan sebuah komputer dengan spesifikasi AMD Athlon X2 2GHz, RAM 512MB dengan kapasitas harddisk sebesar 20GB
yang terhubung pada server secara virtual. Sistem Operasi yang digunakan adalah
distribusi Linux Ubuntu 9.10 .
Pengujian ini dilakukan dengan beberapa tahap. Tahap-tahap ini
menggambarkan secara umum bagaimana fitur utama dari sistem ini berjalan.
Untuk menguji rancangan sistem keamanan komputer dengan cara melancarkan
paket gangguan dari client ke server yang dilindungi oleh sistem keamanan
4.3 TOPOLOGI PENGUJIAN
Server IDS ditempatkan pada sebuah jaringan dengan topologi seperti ditunjukkan pada gambar berikut:
Gambar 4.1 Topologi jaringan
4.4 HASIL PENGUJIAN
Pengujian dilakukan beberapa tahap. Berikut tahap-tahap pengujian yang
dilakukan:
4.4.1 Blocking paket ping
Kondisi normal
Pada kondisi normal, terlihat paket ping yang dikirimkan dapat memasuki
server yang memiliki alamat IP 192.168.56.1. Paket ping yang dikirimkan merupakan paket berukuran normal. Sehingga tidak digolongkan gangguan oleh
rules snort.
Pengamatan pada client
Pengamatan dilakukan dengan cara melakukan pengiriman paket ICMP
dengan perintah ping ke server seperti berikut:
Gambar 4.3 Blocking paket ping pada client
Dari pengamatan di atas terlihat bahwasanya IPS telah bekerja secara baik,
yaitu tertutupnya akses paket gangguan ke server. Hal ini dapat dilihat dengan
hilangnya 4 dari 5 paket gangguan yang dikirim.
Paket gangguan yang dikirimkan dari client ke server merupakan paket
ping tidak normal. Paket ping normal hanya berukuran 56 bytes sedangkan pada percobaan, paket ping yang dikirimkan dari client berukuran 250 bytes. Dengan
merubah script pada rules snort, besarnya paket yang dikategorikan gangguan
dapat diatur sesuai kebutuhan.
Ping dapat menjadi indikasi awal gangguan. Penyerang dapat mengirimkan paket ping untuk kemudian mengirimkan gangguan berupa denial of
jumlah banyak yang menyebabkan resource pada server terganggu sehingga akses
terhadap server oleh pengguna lain tidak dapat dilayani.
Pengamatan pada server
Adapun pengamatan pada sistem pencegahan penyusupan dilakukan dengan
mengamati rules firewall yang telah berubah, yakni IPS engine memasukkan
alamat IP penyerang sebagai sebuah gangguan dimana akses dari client menuju
server tersebut tidak diizinkan. Berikut perubahan rules firewall yang terjadi:
Gambar 4.4 Hasil pengujian blocking paket ping pada server
4.4.2 Blocking paket evil payload
Pengamatan pada client
Pengujian ini dilakukan dengan tools tambahan berupa aplikasi scapy.
Aplikasi ini bertugas mengirimkan paket UDP yang memiliki payload “evil
payload”. Paket terdefinisi sebagai gangguan karena rules telah diatur secara
Gambar 4.5 Pengiriman paket evil payload
Pengamatan pada server
Adapun pengamatan pada server dilakukan dengan mengamati aplikasi
BASE sebagai front end server. Pada BASE paket “evil payload” didefinisikan
sebagai gangguan. Pengujian berikutnya sistem dapat dilihat pada log aplikasi
snortsam. Berikut pengamatan pada log aplikasi snortsam :
Gambar 4.7 Pengamatan paket evil payload pada log snortsam
4.4.3 Blocking paket SQL version overflow attempt
Pengamatan pada client
Pengujian ini dilakukan dengan tools tambahan berupa aplikasi tcpreplay.
Aplikasi ini bertugas mengirimkan paket gangguan ke server. Berbeda
penggunaannya dengan aplikasi scapy pada pengujian sebelumnya, tcpreplay
mengirimkan paket gangguan ke server yang sebelumnya telah diunduh kedalam
Gambar 4.8 Pengiriman paket SQL version overflow attempt
Pengamatan pada server
Adapun pengamatan pada server dilakukan dengan mengamati aplikasi
BASE sebagai front end server. Pada BASE paket mysql_worm.pcap didefinisikan
sebagai gangguan SQL version overflow attempt. Pengujian sistem dapat dilihat
pada log aplikasi snortsam. Berikut pengamatan pada log aplikasi snortsam :
Gambar 4.10 Pengamatan gangguan pada log snortsam
4.5 ANALISA PENGUJIAN
DOS merupakan serangan terhadap komputer atau server di dalam jaringan
intranet dengan cara mengganggu sistem atau resource yang dimiliki oleh
komputer tersebut sehingga tidak dapat menjalankan fungsinya dengen benar dan
secara tidak langsung mempengaruhi pengguna lain untuk memperoleh akses
layanan terhadap komponen yang diserang tersebut.
DOS attack ini akan segera terdeteksi oleh snort engine yang kemudian snort
engine akan mengirimkan alert ke alert log dan MySQL. IPS engine membaca alert pada MySQL dan kemudian memerintahkan firewall untuk memperbaharui
terdeteksi. Hal ini menyebabkan paket yang dikirim tidak dapat masuk (drop) ke
BAB V
KESIMPULAN DAN SARAN
V. 1 Kesimpulan
Dari proses perancangan sistem keamanan jaringan komputer ada
beberapa hal yang dapat disimpulkan, yaitu :
1. Waktu tanggap snort cukup cepat dalam menganalisa paket yang
terdeteksi sebagai gangguan. Waktu tanggap yang dibutuhkan tidak lebih
dari 1 detik per paket gangguan membuat snort sangat reaktif.
2. Snort memiliki fitur yang cukup lengkap yang dibutuhkan dalam merancang sistem keamanan komputer.
3. Rules memiliki peran penting dalam fitur blocking paket. Selain itu rules dapat diatur sesuai kebutuhan pengguna. Kelengkapan rules juga sangat
menentukan keamanan sistem dari gangguan.
V.2 Saran
Terdapat beberapa kritik dan saran yang perlu disampaikan, dengan
harapan akan menjadi masukan yang bermanfaat, yaitu :
1. Sistem ini baru dalam bentuk prototipe, dapat dikembangkan menjadi
sistem yang lebih baik lagi dengan menambah fitur-fitur lainnya.
2. Sistem yang dirancang memiliki keterbatasan dari segi rules yang ada.
Semakin lengkap rules yang dimiliki, sistem akan semakin terlindungi dari
gangguan.
50
DAFTAR PUSTAKA
1. Cameron, Jamie.2003.Managing Linux System with Webmin System
Administration and Module Development. Addison Wesley
2. Endorf, Carl., Schultz, Eugene., Mellander, Jim.,2004. Intrusion Detection
and Prevention. Osbone : McGraw-Hill Companies
3. Cox, Kerry J., Gerg, Christopher.,2004.Managing Security with Snort and
IDS Tools. O’Reilly
4. Hartono, Puji. 2006. Sistem Pencegahan Penyusupan pada Jaringan
Berbasis Snort IDS dan IPTables Firewall. Bandung
5. Scott, Charlie., Wolfe, Paul., Hayes, Bert.,2004.Snort for Dummies. New
Jersey : Willey Publishing
6. Green, Chris.2009.Snort User Manual 2.8.5. Sourcefire
7. Baker, Andrew R., Esler, Joel.,2007.Snort IDS and IPS Toolkit.
Massachusets:Sourcefire
51
Lampiran
Paket-paket yang dibutuhkan
apt-get install libpcap0.8 libpcap0.8-dev
libmysqlclient15-dev mysql-client-5.0 mysql-server-5.0
bison flex apache2 libapache2-mod-php5 gd
php5-mysql libphp-adodb php-pear libc6-dev g++ gcc pcregrep
libpcre3 libpcre3-dev
Install snort and snort rules # cd /usr/src/
# wget http://snort.org/dl/current/snort-2.8.5.3.tar.gz
# tar -zxf ./snort-2.8.5.3.tar.gz
# cd snort-2.8.5.3
# ./configure -enable-dynamicplugin --with-mysql
# make
# sudo make install
# sudo mkdir /etc/snort
# sudo cp etc/* /etc/snort
# tar -zxf snortrules-snapshot-CURRENT.tar.gz
# sudo cp -r rules/ /etc/snort
# mkdir /etc/snort /etc/snort/rules /var/log/snort
# cd /usr/src/snort-2.8.0.1/etc
# cp * /etc/snort/
# cd ../rules
# cp * /etc/snort/rules
Konfigurasi Snort
var HOME_NET menjadi var HOME_NET 192.168.1.0/24
var EXTERNAL_NET menjadi var EXTERNAL_NET !$HOME_NET
var RULE_PATH ../rules menjadi RULE_PATH /etc/snort/rules
Pada bagian "# output database: log, mysql, user=", hapus "#" dari awal baris.
Ganti "user=root" menjadi "user=snort", dan "password=password" menjadi
"password=hahnroot","dbname=snort"
# chmod 640 /etc/snort/snort.conf
Instalasi dan konfigurasi MySQL
# mysql -u root -p
mysql> create database snort;
mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on
snort.* to snort@snort.host;
mysql> set password for snort@snort.host=PASSWORD('snortpass');
mysql> flush privileges;
mysql> q
# mysql -u root -p snort </usr/share/doc/snort-doc/create_mysql
# nano /etc/snort/snort.conf
output database: log, mysql, user=snort password=snortpass dbname=snort
host=mysql.host
# chown root:snort /etc/snort/snort.conf
# chmod 0640 /etc/snort/snort.conf