SKRIPSI
Diajukan Untuk Memenuhi Per syaratan
Dalam Memperoleh Gelar Sarjana Komputer
J urusan Teknik Infor matika
Disusun Oleh :
WISNU HADI SUWANDONO
NPM. 0934010144
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
SKRIPSI
Disusun Oleh :
WISNU HADI SUWANDONO
NPM. 0934010144
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
SKRIPSI
Diajukan Untuk Memenuhi Per syaratan
Dalam Memperoleh Gelar Sarjana Komputer
J urusan Teknik Infor matika
Disusun Oleh :
WISNU HADI SUWANDONO
NPM. 0934010144
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
LEMBAR PENGESAHAN
ANALISA GENERALISASI RULES MENGGUNAKAN
SNORT IDS
Disusun Oleh :
Wisnu Hadi Suwandono
0934010144Telah disetujui mengikuti Ujian Negara Lisan
Periode III Tahun Akademik 2013
Menyetujui,
Pembimbing Utama Pembimbing Pendamping
I Made Suartana, S.Kom, M.Kom. Kafi Ramadhani B, S.Kom.
NPT. 3 8904 13 0345 1
Mengetahui,
Ketua Program Studi Teknik Infor matika
Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional “Veteran” J awa Timur
Dr. Ir. Ni Ketut Sar i, M.T.
SKRIPSI
ANALISA GENERALISASI RULES MENGGUNAKAN SNORT IDS
Disusun Oleh :
Wisnu Hadi Suwandono
0934010144Telah dipertahankan dan di terima oleh Tim Penguji Lisan Pr ogram Studi Teknik Infor matika Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional “Veteran” J awa Timur Pada tanggal : 20 Desember 2013
Pembimbing : Tim Penguji :
Univer sitas Pembangunan Nasional “Veteran” J awa Timur
KATA PENGANTAR
Assalamu’alaikum Wr. Wb.
Syukur Alhamdulillah atas segala limpahan karunia dan kasih sayang
Allah SWT, sehingga dengan segala keterbatasan waktu, tenaga, dan pikiran yang
dimiliki oleh penulis, akhirnya skripsi yang berjudul “ANALISA
GENERALISASI RULES MENGGUNAKAN SNORT IDS“ dapat
terselesaikan sesuai dengan waktu yang telah ditetapkan.
Melalui Skripsi ini, penulis merasa mendapat kesempatan besar untuk
memperdalam ilmu pengetahuan yang diperoleh selama di perkuliahan, terutama
dengan implementasi Teknologi Informasi dalam kehidupan sehari-hari. Namun
demikian penulis menyadari bahwa Skripsi ini masih memiliki banyak kelemahan
dan kekurangan. Oleh karena itu, kritik dan saran yang bersifat membangun
sangatlah diharapkan dari berbagai pihak agar Skripsi ini bisa lebih baik lagi,
sehingga dapat memberikan manfaat bagi semua pihak yang membutuhkannya.
Pada penyusunan Skripsi ini, banyak pihak yang telah memberikan
bantuan baik materiil maupun spiritual ini, sehingga pada kesempatan ini penulis
mengucapkan rasa terima kasih yang sebesar-besarnya kepada:
1. ALLAH SWT dan RASUL-Nya. Alhamdulillah atas segala kelancaran dan
kemudahan yang selalu engkau limpahkan kepada penulis.
2. Ibu Dr.Ir. Ni Ketut Sari,M.T. selaku ketua jurusan Teknik Informatika,
3. Bapak I Made Suartana, S.Kom, M.Kom dan Bapak Kafi Ramadhani
Borud, S.Kom. selaku dosen pembimbing . Terimakasih banyak telah
sabar membimbing dan memberi saran yang sangat bermanfaat kepada
penulis.
4. Teman-teman TFC’09, terimakasih selalu meramaikan dan memberi
hiburan disaat dalam kejenuhan.
5. For My Beloved Syilvia Nur Aini Terima kasih atas supportnya,waktu dan
doanya.
6. The last and the best, thanks to my beloved family Ibu, Alm.Ayah, Tante
ku yang selalu menjadi motivasi untuk cepat lulus kuliah.
Serta pihak-pihak lain yang ikut memberikan informasi dan data-data di
dalam menyelesaikan laporan Skripsi ini, penulis mengucapkan terima kasih.
Akhir kata penulis harap agar Skripsi yang disusun sesuai dengan kemampuan
dan pengetahuan yang sangat terbatas ini dapat bermanfaat bagi semua pihak yang
membutuhkan.
Wassalamu’alaikum Wr. Wb
Surabaya, Desember 2013
Halaman
ABSTRAK ... Er ror! Bookmar k not defined.
KATA PENGANTAR ... Er ror! Bookmar k not defined.
DAFTAR ISI ... iv
DAFTAR TABEL ... Er ror! Bookmar k not defined.
DAFTAR GAMBAR ... Er ror! Bookmar k not defined.
BAB I ... Er ror! Bookmar k not defined.
PENDAHULUAN ... Er ror! Bookmar k not defined.
1.1 Latar Belakang ... Er ror! Bookmar k not defined.
1.2 Rumusan Masalah ... Er ror! Bookmar k not defined.
1.3 Batasan Masalah ... Er ror! Bookmar k not defined.
1.4 Tujuan ... Er ror! Bookmar k not defined.
1.5 Manfaat ... Er ror! Bookmar k not defined.
1.6 Metodologi Penelitian ... Er ror! Bookmar k not defined.
1.7 Sistematika Penulisan ... Er ror! Bookmar k not defined.
BAB II ... Er ror! Bookmar k not defined.
2.2.1 Network-based Intrusion Detection System (NIDS) ... Er ror!
Bookmar k not defined.
2.2.2 Host-based Intrusion Detection System (HIDS)Er ror! Bookmar k
not defined.
2.3 Snort Rules ... Er ror! Bookmar k not defined.
2.3.1 Rule Header ... Er ror! Bookmar k not defined.
2.4 Snort Engine ... Er ror! Bookmar k not defined.
2.4.1 Alert ... Er ror! Bookmar k not defined.
2.5 BASE ... Er ror! Bookmar k not defined.
2.6 MySQL Server ... Er ror! Bookmar k not defined.
2.7 Php ... Er ror! Bookmar k not defined.
2.8 Aturan Generalisasi ... Er ror! Bookmar k not defined.
2.9 AWK ... Er ror! Bookmar k not defined.
2.10 IPTables ... Er ror! Bookmar k not defined.
2.11 Jenis Serangan SYN flooding attack ... Er ror! Bookmar k not defined.
BAB III... Er ror! Bookmar k not defined.
METODE DAN PERANCANGAN TUGAS AKHIREr ror! Bookmar k not
defined.
3.4 Kebutuhan Sistem ... Er ror! Bookmar k not defined.
3.5 Perancangan Sistem ... Er ror! Bookmar k not defined.
3.5.1 Alur Installasi Snort ... Er ror! Bookmar k not defined.
3.5.2 Alur Kerja Snort ... Er ror! Bookmar k not defined.
3.5.3 Alur Snort IDS ... Er ror! Bookmar k not defined.
3.5.4 Alur Aturan Generalisasi ... Er ror! Bookmar k not defined.
3.5.5 Alur Implementasi Generalisasi Snort RulesEr ror! Bookmar k
not defined.
3.5.6 Alur Kerja Keseluruhan Sistem ... Er ror! Bookmar k not defined.
3.5.7 Alur Uji Coba Dan Analisa ... Er ror! Bookmar k not defined.
3.6 Instalasi Sistem Snort IDS ... Er ror! Bookmar k not defined.
3.6.1 Instalasi Library Pendukung ... Er ror! Bookmar k not defined.
3.6.2 Instalasi Dan Konfigurasi Snort IDSEr ror! Bookmar k not
defined.
3.6.3 Konfigurasi Snort Database ... Er ror! Bookmar k not defined.
3.6.4 Instalasi BASE (Basic Analyze And Security Engine) ... Er ror!
Bookmar k not defined.
3.7 Pembuatan Dan Penerapan Generalisasi RulesEr ror! Bookmar k not
BAB IV ... Er ror! Bookmar k not defined.
UJI COBA dan ANALISA ... Er ror! Bookmar k not defined.
4.1 Kebutuhan Hardware ... Er ror! Bookmar k not defined.
4.2 Kebutuhan Software ... Er ror! Bookmar k not defined.
4.3 Uji Coba Serangan ... Er ror! Bookmar k not defined.
4.3.1 Serangan Port Scanning Zenmap . Er ror! Bookmar k not defined.
4.3.2 Serangan Hping3 SynFlood ... Er ror! Bookmar k not defined.
4.3.3 Scapy SynFlood ... Er ror! Bookmar k not defined.
4.4 Pengumpulan Alerts ... Er ror! Bookmar k not defined.
4.4.1 Merged.alert ... Er ror! Bookmar k not defined.
4.4.2 Allow.alert ... Er ror! Bookmar k not defined.
4.4.3 Rejected.alert ... Er ror! Bookmar k not defined.
4.5 Merangkum Hasil Alert ... Er ror! Bookmar k not defined.
4.6 Hasil Perbandingan Rules ... Er ror! Bookmar k not defined.
BAB V ... Er ror! Bookmar k not defined.
KESIMPULAN DAN SARAN ... Er ror! Bookmar k not defined.
5.1 Kesimpulan ... Er ror! Bookmar k not defined.
DOSEN PEMBIMBING II : KAFI RAMADHANI BORUD, S.Kom
PENYUSUN : WISNU HADI SUWANDONO
ABSTRAK
Perkembangan teknologi jaringan komputer semakin berkembang, seiring dengan itu semakin banyak terjadi serangan pada jaringan komputer. Serangan yang paling sering terjadi adalah Denial of Service (DOS attack), serangan SYN Flood salah satunya, dimana serangan ini bisa berakibat fatal pada target apabila dilakukan secara terus menerus.
Salah satu pencegahan yang umum dilakukan adalah dengan menambahkan Intrusion Detection System (IDS) yang memberikan lapisan keamanan pada sistem komputer dan jaringan. IDS bertanggung jawab untuk mendeteksi aktivitas jaringan yang mencurigakan atau tidak dapat diterima pada sistem yang nantinya akan memberi peringatan (alert) kepada administrator jaringan. Snort merupakan salah satu IDS yang populer digunakan dan secara aktif mengembangkan open source yang menggunakan satu set Signature yang dikenal dengan Snort Rules. Mencocokan pola atau Signature adalah metode yang digunakan pada IDS untuk mendeteksi serangan yang kemudian akan menghasilkan alert. Terkadang terdapat beberapa kelemahan dari alert yang dihasilkan apakah alert menunjukan serangan yang sebenarnya terjadi (true alert) atau menunjukan serangan yang bukan sebenarnya (false alert).
Dengan menambahkan generalisasi sederhana (removing dan inverting) pada Snort Rules diharapkan IDS dapat menghasilkan alert yang lebih bervariasi dan mampu mendeteksi dengan benar serangan yang terjadi khususnya disini serangan SYN Flood. Terbukti dengan melakukan generalisasi sederhana mampu meningkatkan akurasi dari alert yang dihasilkan dengan nilai prioritas yang lebih kecil daripada Snort Rules standart.
PENDAHULUAN
1.1 Latar Belakang
Penggunaan jaringan komputer saat ini semakin meluas tidak hanya
digunakan untuk perorangan tetapi juga dibutuhkan baik untuk organisasi, instansi
ataupun perusahaan. dikarenakan kemudahan untuk saling bertukar data dan
informasi. Terkadang data atau informasi bersifat pribadi dan sangat penting
sehingga diperlukan suatu pengaman tertentu agar tidak jatuh ke pihak yang tidak
bersangkutan. Keamanan jaringan merupakan hal yang harus diperhatikan dalam
membangun suatu jaringan komputer untuk menghindari serangan-serangan dari
pihak yang merugikan. saat ini banyak bermunculan cara dan teknik yang
dilakukan penyusup untuk masuk kedalam suatu jaringan komputer. Hal itu
diperlukan cara pencegahan dengan melakukan pendeteksian serangan secara
awal sehingga meminimalkan resiko dan kemudian dapat melakukan pencegahan
yang tepat. Salah satu contohnya menggunakan Sistem Deteksi Intrusi atau
Intrusion Detection System (IDS) pada jaringan tersebut. Menurut Onno Purbo
(2010), IDS merupakan usaha mengidentifikasi adanya penyusup yang memasuki
sistem tanpa otorisasi (misal cracker) atau seorang user yang sah tetapi
menyalahgunakan (abuse) sumber daya sistem.
IDS bertanggung jawab untuk mendeteksi tindakan atau hal, sistem yang
akan memberi peringatan (Alert) kepada Administrator bahwa telah terjadi
serangan didalam jaringan tersebut. Kebanyakan IDS menggunakan satu set tanda
tangan (Signature) yang mendefinisikan bahwa telah terjadi tindakan atau hal
yang mencurigakan dalam network traffic. Salah satu serangan yang umum
dilakukan adalah serangan SynFlood, SynFlood merupakan serangan dengan cara
mengirimkan paket SYN sebanyak mungkin ke target tanpa mengirimkan paket
ACK,sehingga target tidak dapat lagi memberikan layanan atau menerima request
dari client lain. Serangan seperti ini biasanya dilakukan pada layanan-layanan
terbuka seperti layanan web/HTTP, FTP. Apabila serangan ini dilakukan secara
terus menerus maka target akan bisa mengalami hang atau crash.Snort merupakan
salah satu IDS populeryang banyak digunakan untuk mendeteksi suatu paket
jaringan dan Snort merupakanopen sourcyang aktif melakukan pengembangkan
menggunakan suatuset tanda tangan yang dikenal sebagai aturan Snort (Snort
Rule).
Maka dari itu penulis melakukan Generalisasi Rule Menggunakan SNORT
IDS (Intrusion Detection System)untuk mengidentifikasi cara di mana Snort dapat
dikembangkan lebih lanjut dengan Generalisasi Ruleagar dapat mendeteksi
serangan SynFlood atau bahkan serangan-serangan baru.
1.2 Rumusan Masalah
Berdasarkan dari uraian latar belakang di atas maka dapat dirumuskan
suatu permasalahan.
2. Bagaimana melakukan pola Rule Generalisasi Snort pada Rule standart
untuk dapat mengidentifikasi serangan SynFlood atau bahkan serangan
baru yang terjadi didalam network traffic.
3. Bagaimana menampilkan alert hasil dari generalisasi rule dan melakukan
analisa.
1.3 Batasan Masalah
Dalam melakukan Generalisasi Rule Menggunakan SNORT IDS
(Intrusion Detection System), mempunyai batasan masalah sebagai berikut:
1. Metode Generalisasi yang digunakan adalah generalisasi sederhana yaitu
generalisasi invert (menghilangkan salah satu parameter) dan generalisasi
content (melakukan pembalikan pada nilai atau isi dari salah satu
parameter).
2. Pendeteksian serangan terbatas pada serangan Denial of Service attacks,
SynFlood attack, IP dan Port scanning.
3. Data Paket Jaringan yang digunakan adalah data paket yang berhasil di-log
oleh SNORT.
4. Pada penelitian tugas akhir ini parameter rules snort yang digunakan
untuk generalisasi rule adalah :
a) Depth
b) Offset
1.4 Tujuan
Tujuan dari Tugas Akhir ini adalah :
1. Mengerti dan memahami jenis-jenis serangan pada serangan Denial of
Service attacks, SynFlood attack, IP dan Port scanning.
2. Memahami dan mampu mengaplikasikan Generalisasi Rule Menggunakan
SNORT IDS (Intrusion Detection System)untuk mengidentifikasi serangan
SynFlood dan serangan-serangan baru.
1.5 Manfaat
Manfaat dari Tugas Akhir ini adalah :
1. Meminimalisir adanya kesalahan dan celah keamanan dari sebuah sistem
jaringan komputer.
2. Meminimalisir kesalahan Alert yang dihasilkan dari IDS.
3. Mengamankan jaringan komputer berbasis client-server menggunakan
debian server agar dapat melakukan pencegahan yang sesuai bedasarkan
serangan yang terjadi.
1.6 Metodologi Penelitian
Langkah-langkah yang dilakukan untuk pembuatan Tugas Akhir ini dibagi
a) Studi Literatur
Pada tahap ini dilakukan studi literatur terhadap konsep dan
metode ysng akan digunakan dan pengumpulan data-data yang
dibutuhkan.
b) Menetapkan definisi kebutuhan
Pada tahap ini dilakukan pendefinisian terhadap kemampuan
perangkat lunak yang akan dirancang dan batasan-batasannya.
c) Perancangan Sistem
Pada tahap ini dilakukan Perancangan model jaringan, simulasi
serangan, analisa kebutuhan sistem, penyediaan Hardware dan Software
pendukung dan perancangan kerja sistem.
d) Implementasi Sistem
Pada tahap ini dilakukan pengimplementasian Instalasi, konfigurasi
dan pengetesan kerja sistem.
e) Uji coba dan Analisa
Pada tahap ini dilakukan uji coba dan analisa terhadap sistem
dengan melakukan penyerangan dan kemudian membandingkan hasil dari
pendeteksian sistem.
f) Penyusunan Naskah Tugas Akhir
Pada tahap ini dilakukan penulisan naskah, dimana didalamnya
1.7 Sistematika Penulisan
Sistematika penulisan Tugas Akhir (TA) ini akan membantu mengarahkan
penulisan laporan agar tidak menyimpang dari batasan masalah yang dijadikan
sebagai acuan atau kerangka penulisan dalam mencapai tujuan penulisan laporan
Tugas Akhir (TA) sesuai dengan apa yang diharapkan. Tugas Akhir (TA) ini
terbagi dalam V Bab, yaitu :
BAB I PENDAHULUAN
Pendahuluan ini berisi mengenai gambaran umum tentang latar belakang
masalah, perumusan masalah, batasan masalah, tujuan, manfaat, metodologi
penelitian dan sistematika penulisan.
BAB II TINJ AUAN PUSTAKA
Tinjauan pustaka ini berisi tentang gambaran umum objek pekerjaan
pengertian - pengertian dasar dan teori - teori yang berhubungan dengan masalah
yang akan di bahas dalam Tugas Akhir (TA) ini sebagai landasan bagi pemecahan
yang di usulkan.
BAB III METODOLOGI PENELITIAN
Metodologi Penelitian ini berisi tentang perencanaan, analisa kebutuhan
sistem dan perancangan sistem.
BAB IV HASIL DAN PEMBAHASAN
Hasil dan Pembahasan ini berisi tentang pembuatan sistem, hasil dan
pengenalan pola terhadap penyerangan menggunakan aturan generalisasi untuk
meng-generalisasi Snort Rules agar dapat mendeteksi serangan baru
BAB V KESIMPULAN DAN SARAN
Berisi tentang kesimpulan yang di peroleh dari hasil pengana-lisaan data
dari bab-bab sebelumnya. Dimana berisi tentang saran-saran yang diharapkan
dapat bermanfaat dan dapat membangun serta mengembangkan isi laporan
tersebut sesuai dengan tujuan penulisan Laporan Tugas Akhir (TA).
LAMPIRAN
DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang
TINJ AUAN PUSTAKA
Pada bab II ini akan dibahas beberapa teori dasar untuk menunjang
penyelesaian tugas akhir ini, antara lain: Penelitian terdahulu, Snort IDS, Snort
Rules, SnortEngine, Alert, BASE, MySql Server, PHP, Generalisasi,
Pemrograman AWK, Iptables dan Jenis Serangan SYN floodingattack.
2.1. Penelitian Terdahulu
Penelitian yang dilakukan oleh Uwe Aickelin, Jamie Twycross and
Thomas Hesketh-Roberts (2008) yang berjudul “Rule Generalisation in Intrusion
Detection Systems using SNORT”. Penelitian ini menunjukkan bagaimana,
menggunakan generalisasi sederhana, Alert Rules dapat dimodifikasi untuk
muncul varian baru dari serangan lama. Dengan menggunakan metode ini mampu
mengidentifikasi Rules yang memiliki kriteria yang ketat dan juga menemukan
varian baru dari Trojan yang dikenal.Saat ini hanya lapisan permukaan pada paket
jaringan saja yang bisa dikenali pencocokan generalisasi Rules NIDS dan sulit
untuk membuat kesimpulan yang pasti. Namun beberapa pencocokan yang tidak
biasa dari generalisasi Rules menjelaskan bagaimana melakukan generalisasi
dengan bantuan Snort atau memang ada NIDS dalam menemukan serangan
yang sebagian besar menemukan sejumlah peringatan palsu. sekali tanda tersebut
dieliminasi, beberapa Alerts berpotensi dapat dikenali.
Penelitian yang dilakukan oleh Bambang Wijanarko (2009) yang berjudul
“Algoritma fuzzy sebagai metode pengenal pola serangan pada jaringan berbasis
snort”. Penelitian ini menunjukan bahwa mencocokan pola atau signature adalah
metode yang paling umum untuk mendeteksi serangan dan ini berarti IDS harus
mampu mengenali setiap teknik serangan. IDS memiliki database yang besar
dengan ribuan signature yang memunkinkan IDS mencocokan signature atau pola
serangan.Respon otomatis yang biasanya dilakukan adalah memberikan alert,
logging , atau mengirim email. Kelemahan respon otomatis yang umum adalah
terjadinya respon terhadap false negative dan false positive. Adalah penting untuk
memahami mengapa signature memicu dan mengidentifikasi true dari false
positive. Penggunaan algoritma fuzzy sebagai metode pembacaan signature atau
pola tertentu dari suatu paket serangan yang umum. Hasil dari pengujian data
real-time di jaringan dan data serangan akan didefinisikan, sehingga nantinya
dengan pengunaan algoritma fuzzy ini dapat mendeteksi setiap jenis serangan
baru dalam range yang lebar dan membantu mengeliminasi false positive atau
false negative.
Dari beberapa penelitian yang telah diuraikan, dapat disimpulkan bahwa
penggunaan Snort dalam memantau dan mengamankan suatu jaringan komputer
dapat lebih ditingkat keakuratan dalam mengenali suatu serangan hingga dapat
2.2. Snor t IDS
Gambar 2.1 Bagian-bagian IDS
Intrusion Detection System adalah sebuah aplikasi perangkat lunak atau
perangkat keras yang dapat mendeteksi aktivitas yang mencurigakan dalam
sebuah sistem atau jaringan. IDS dapat melakukan inspeksi terhadap lalu lintas
inbound dan outbound dalam sebuah sistem atau jaringan, melakukan analisis dan
mencari bukti dari percobaan intrusion(penyusupan). ada dua jenis dari IDS,
yaitu:
1.2.1 Networ k-based Intrusion Detection System (NIDS)
Semua lalu lintas yang mengalir ke sebuah jaringan akan dianalisis
untuk mencari apakah ada percobaan serangan atau penyusupan ke dalam
sistem jaringan. NIDS umumnya terletak di dalam segmen jaringan
penting di mana server berada atau terdapat pada "pintu masuk" jaringan.
dalam sebuah jaringan yang menggunakan switch Ethernet, meskipun
beberapa vendor switch Ethernet sekarang telah menerapkan fungsi IDS di
dalam switch buatannya untuk memonitor port atau koneksi. contoh:
melihat adanya network scanning.
1.2.2 Host-based Intr usion Detection System (HIDS)
Aktivitas sebuah host jaringan individual akan dipantau apakah
terjadi keanehan atau sesuatu yang tidak wajar, seperti sebuah percobaan
serangan atau penyusupan ke dalamnya atau tidak (anomali). HIDS
seringnya diletakkan pada server-server kritis di jaringan, seperti halnya
firewall, web server, atau server yang terkoneksi ke Internet
Gambar 2.2 Anomali deteksi serangan
Seperti pada gambar 2.2. IDS melakukan deteksi gangguan
keamanan dengan melihat Anomali pada jaringan. Anomali dapat
dijelaskan sebagai traffic atau aktivitas yang tidak sesuai dengan kebijakan
yang dibuat (policy). Contoh Anomali yang dijelaskan sebagai traffic/
aktivitas yang tidak sesuai dengan policy, adalah:
a. Akses dari atau menuju ke host yang terlarang.
b. Memllki Content atau Pattern yang terlarang (virus).
c. Menjalankan program yang terlarang.
SNORT merupakan salah satu contoh program dari NIDS yang
bersifat open source dimana dapat memantau dan mendeteksi apabila
terjadi tindakan penyusupan pada sebuah jaringan komputer. salah satu
kelebihannya adalah mampu mengirimkan alert dari mesin Unix atupun
Linux ke platform Microsoft Windows dengan melalui SMB. Snort dapat
berkerja dalam 3 mode:
a. sniffer mode (penyadap), Untuk melihat paket yang lewati jaringan
komputer dimana snort diletakkan.
b. packet logger, Untuk melakukan pencatatan semua paket yang
lewat di jaringan untuk disimpan ke dalam disk untuk kemudian
dianalisa.
c. network intrusion detection mode, Pada mode ini snort akan
berfungsi untuk mendeteksi serangan yang dilakukan melalui
setup dari berbagai rules / aturan yang akan membedakan sebuah
paket normal dengan paket yang membawa serangan.
Tentunya mode kerja yang akan digunakan dalam membangun
sistem pencegahan penyusupan dalam mode kerja network intrusion
dection. Penyusupan (intrusion) didefinisikan sebagai kegiatan yang
bersifat anomaly, incorrect atau inappropriate yang terjadi di jaringan atau
di host. Komponen-komponen Snort IDS meliputi:
a. Snort Rules
b. Snort Engine
c. Alert
(Sumber referensi:Sistem deteksi intrusi,
http://id.wikipedia.org/wiki/Sistem_deteksi_intrusi. 18 Juni 2013, 14.46
WIB)
2.3. Snor t Rules
Merupakan database yang berisi pola-pola serangan berupa Signature
jenis-jenis serangan. Rule Snort IDS ini, harus diupdate secara rutin agar ketika
ada suatu teknik serangan yang baru sehingga serangan tersebut dapat terdeteksi.
kebanyakan rule snort ditulis dalam satu baris (single line). Aturan Snort dibagi
menjadi dua bagian logis, Rule Headersdan Rule Options. Rule Headers berisi
Actions Rule, Protocols, Source dan Destination IP Address dan netmasks, dan
Source dan Destination Port sedangkan Rule Options berisi Alert Message dan
tindakan aturan harus diambil.( Chapter 7 • Playing by the Rules, Snort Intrusion
Detection and Prevention Toolkit, 2007 : 302)
Gambar 2.3 Contoh sederhana Snort Rule
1.3.1 Rule Header
Rule Header berisi dari beberapa bagian yang memiliki tugas dan
fungsi masing-masing, diantaranya adalah: Action Rule, Protocols, IP
Address, Ports Numbers, Direction Operator, Activate/Dynamic Rules
dan Rule Options.
2.3.1.1. Actions Rule
berisi informasi yang mendefinisikan siapa, di mana, dan
apa isi dari sebuah paket, serta apa yang harus dilakukan dalam hal
paket dengan semua atribut ditunjukkan dalam aturan harus muncul.
Dengan kata lain tindakan pertama dalam Action Rule adalah
membertitahukan kepada snort apa yang harus dilakukan oleh snort
ketika menemukan paket yang sesuai dengan criteria rule yang ada.
Ada lima actions yang terdapat didalam snort yaitu alert, log, pass,
active dan dynamic. Jika kita menjalankan snort dalam mode inline
maka kita memiliki pilihan tambahan yang meliputi include drop,
- Alert : menghasilkan peringatan dengan menggunakan metode
peringatan yang dipilih, dan kemudian mencatat paket.
- Log : Mencatat paket yang ada.
- Pass : Mengabaikan paket.
- Activate : Waspada dan kemudian menghidupkan aturan lain
Dynamic Rule.
- Dynamic : Tetap diam sampai diaktifkan oleh Active rule,
kemudian bertindak sebagai Log rule.
- Drop : Memblokir dan mencatat paket.
- Reject : Memblokir paket, mencatat paket, dan kemudian
mengirim ulang jika TCP protokol adalah TCP atau ICMP port
unreachable.
- Message : jika protokol yang digunakan adalah UDP.
- Sdrop : Memblokir paket tetapi tidak mencatatnya.
2.3.1.2. Pr otocols
Bagian berikutnya dalam sebuah Rule Header adalah
protokol. Ada empat protokol yang Snort gunakan saat menganalisis
perilaku yang mencurigakan, yaitu: TCP, UDP, ICMP, dan IP. Di
masa depan mungkin ada lebih seperti ARP, IGRP, GRE, OSPF, RIP,
IPX, dll.
2.3.1.3. IP Addr ess
Bagian berikutnya dari Rule Header adalah Alamat IP dan
rule bisa ditulis dengan alamat IP secara lengkap beserta netmasknya
dan nilai CIDR atau menggunakan kata kunci “Any” untuk
menentukan banyak alamat IP. Ada penggunaan operator yang dapat
diterapkan ke alamat IP yaitu, operator negasi. Operator ini
memberitahu Snort untuk menyesuaikan Alamat IP kecuali yang
ditunjukkan oleh alamat IP yang terdaftar. Operator negasi ditandai
dengan!. Sebagai contoh, kemudahan modifikasi dengan contoh awal
adalah untuk membuatnya waspada pada setiap lalu lintas yang
berasal dari luar jaringan lokal dengan operator negasi seperti yang
ditunjukkan pada Gambar 2.2.
Gambar 2.4 Contoh IP Address Dengan Aturan Negasi.
2.3.1.4. Ports Number s
Nomor port dapat ditentukan dengan berbagai cara,
termasuk penggunaan semua port, definisi port statis, rentang port dan
dengan negasi. Port statis ditandai dengan nomor port tetap, seperti
111 untuk portmapper, 23 untuk telnet, atau 80 untuk http, dll.
Penulisan nomor port juga bisa dilakukan dengan menggunakan port
Gambar 2.5 Contoh Penulisan Port Range
2.3.1.5. Direction Operator
Direction Operator “->” menunjukkan orientasi, atau arah
dari lalu lintas terhadap aturan yang berlaku. Alamat IP dan nomor
port di sisi kiri dari operator arah dianggap lalu lintas yang datang dari
sumber host ( source host ) dan alamat beserta informasi port pada sisi
kanan operator adalah host tujuan ( destination host). Ada juga
Operator dua arah bidirectional operator, yang ditandai dengan
simbol“<>”. Ini memberitahu Snort untuk mempertimbangkan alamat
/ pasangan port baik dalam sumber atau orientasi tujuan. bidirectional
operator berguna untuk merekam / menganalisis kedua sisi percakapan
suatu, seperti telnet atau sesi POP3. Sebuah contoh dari operator
bidirectional sedang digunakan untuk merekam kedua sisi dari sesi
telnet seperti pada contoh gambar 2.4.
Gambar 2.6 Contoh Bidirectional Operator
2.3.1.6. Activate/Dynamic Rules
Activate/Dynamic Rules memberikan Snort kemampuan
yang kuat karena memiliki satu aturan untuk mengaktifkan aturan lain
berguna jika ingin mengatur Snort untuk melakukan tindakan
pencatatan/perekaman ketika salah satu rule dimatikan. Activate Rules
bertindak seperti Alert Rule, kecuali mereka memiliki * required *
Opsi yang telah ditentukan. bidang: mengaktifkan. Dynamic Rules
bertindak seperti Log Rule, tetapi mereka memiliki perbedaan bidang
opsi yaitu pengaktifannya.
ActivateRule seperti sebuah peringatan tetapi juga
memberitahu Snort untuk menambahkan aturan ketika peristiwa
jaringan tertentu terjadi. Dynamic Rule sama seperti halnya Log Rule
kecuali DynamicRule diaktifkan ketika Activate Rule id padam.
Gambar 2.7 Activate/Dynamic Rules
2.3.1.7. Rule Options
Membentuk inti dari mesin deteksi intrusi Snort,
menggabungkan kemudahan penggunaan dengan kekuatan dan
fleksibilitas. semua Rule Option Snort terpisah satu sama lain
menggunakan koma (;) karakter. Kata kunci Rule Option dipisahkan
dari argumen mereka dengan titik dua (:) karakter. Ada empat kategori
a. General, Opsi ini memberikan informasi tentang aturan tapi
tidak punya pengaruh apapun selama pendeteksian
berlangsung.
b. Payload, Opsi ini untuk mencari semua data di dalam payload
paket dan dapat saling berhubungan.
c. Non-payload, Opsi ini untuk mencari data diluar payload.
d. Post-detection, Opsi ini sebagai pemicu spesifik aturan yang
terjadi setelah aturan telah "dimatikan".
(Chapter 7 • Playing by the Rules, Snort Intrusion Detection and
Prevention Toolkit, 2007 : 302-305).
2.4. Snor t Engine
Snort Engine merupakan program yang berjalan sebagai daemon proses
yang selalu bekerja untuk membaca paket data dan kemudian membandingkannya
dengan rule Snort. Dalam sistem Linux, untuk mendeteksi apakah snort engine
dalam keadaan aktif atau tidak dengan melihat prosesnya seperti contoh di bawah
ini.
Gambar 2.8 Snort Engine
(Sumber : Hartono Puji, 2006. Sistem Pencegahan Penyusupan pada Jaringan
Gambar diatas menunjukkan bahwa snort engine dalam keadaan aktif
dengan proses ID 3060 dan dijalankan oleh user ”root”. (Sumber referensi :
Hartono Puji, 2006: 10)
1.4.1 Alert
Alert merupakan hasil output pada sistem deteksi penyusupan yang
berisi tentang catatan serangan yang terjadi. Snort engine akan
mencocokan paket data yang melewati jaringan, apabila terdapat
kecocokan dengan rules yang telah ditentukan sebelumnya maka akan
dianggap sebagai serangan, maka snort engine akan mengirimkan alert
berupa log file.
Gambar 2.9 Sistem Deteksi Snort
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 :
Gambar 2.10 Snort Alert
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 rule Snort.
2.5. BASE
merupakan (Basic Analysis and Security Engine). Hal ini didasarkan pada
kode dari Konsol Analisis untuk DatabaseIntrusion (ACID) proyek. Aplikasi ini
menyediakan web front-end untuk query dan menganalisa alert yang berasal dari
sistem IDS Snort. BASE adalah antarmuka web untuk melakukan analisis
gangguan yang telah terdeteksi oleh snort pada suatu jaringan. Base menggunakan
otentikasi pengguna dan sistem peran-base, sehingga sebagai admin keamanan
dapat memutuskan apa dan bagaimana informasi setiap pengguna dapat di lihat.
BASE memiliki kemudahan untuk digunakan, program pengopersian berbasis
web memudahkan orang yang tidak nyaman dengan mengedit file secara
terhadap desain basis data (atau baru terhadap BASE) untuk membuat Tabel,
Query, Form, dan Report, bersama dengan sekumpulan definisi tabel yang sudah
didefinisikan untuk melacak Asset, Konsumen, Penjualan, Invoice, dan banyak
lagi. Ketika hanya memerlukan basis data personal, BASE menawarkan mesin
basis data relasional HSQL, dikonfigurasi untuk pengguna tunggal, dengan data
tersimpan pada dokumen BASE, beserta dengan dukungan native untuk dokumen
dBase.
Untuk kebutuhan yang lebih besar, BASE mendukung berbagai basis data
yang populer secara native: MySQL, Adabas D, Microsoft Access, dan
PostgreSQL Sebagai tambahan, dukungan untuk driver standar JDBC dan ODBC
juga mengijinkan untuk terhubung secara virtual pada sembarang basis data yang
ada. BASE terintegrasi dengan aplikasi OpenOffice.org yang lain, misalnya
1. menyediakan data buku alamat untuk mail merge pada WRITER
menggunakan standar industri protokol LDAP, atau format buku alamat
yang umum seperti Microsoft Outlook, Microsoft Windows dan Mozilla.
2. membuat jangkauan data yang terhubung pada dokumen CALC untuk
analisa data pilot atau sebagai dasar untuk bagan.
(Sumber referensi: http://base.secureideas.net/about.php. 22 Juni 2013, 18.22
Gambar 2.11 Tampilan BASE
2.6. MySQL Server
MySQL adalah sebuah implementasi dari sistem manajemen basisdata
relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL
(General Public License). Setiap pengguna dapat secara bebas menggunakan
MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan
produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan
salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL
(Structured Query Language). SQL adalah sebuah konsep pengoperasian basis
data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan pengoperasian data dikerjakan dengan mudah secara
otomatis.Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara
kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang
Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional
maupun operasi basisdata transaksional. Pada modus operasi
non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja
dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun
demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas
terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok
untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi
blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan
sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus
basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL
pada modus transaksional tidak secepat unjuk kerja pada modus
non-transaksional.
(Sumber referensi: http://id.wikipedia.org/wiki/MySQL, 22 Juni 2013. 19.47
WIB)
2.7. Php
PHP Hypertext Preprocessor atau biasa disebut PHP adalah. bahasa
pemrograman yang digunakan secara luas untuk penanganan pembuatan dan
pengembangan sebuah situs web dan bisa digunakan bersamaan dengan HTML.
Bahasa Pemrogramman PHP memiliki file extensi *.php dan tidak bisa di access
secara langsung tanpa adanya sebuah web server. Syntax-Syntax PHP diawali dan
di akhiri dengan <?php…..?> atau <?...?>. Syntax PHP juga dapat di sisipkan
diawali dengan simbol $ (dolar), jika simbol tersebut tidak ada maka variabel
statement atau disebut juga dengan baris perintah. Baris perintah itu sendiri yaitu
suatu syntax yang terdiri dari satu line yang di akhiri dengan ; (titik koma). Jika
tidak diakhiri dengan ; (titik koma) maka akan terjadi error pada statement
tersebut. Jika anda mempunyai sebuah variable yang digunakan untuk
menampung value yang bertipe String maka harus diberi tanda " " (petik dua 2x).
Namun jika tidak bertipe String maka tidak perlu diberi " " (petik dua 2x) [4].
Berikut ini adalah contoh penulisan syntax PHP:
<?php
$nama = "Muhammad";
echo"Hallo Nama Saya " + $nama;
?> atau
<?
$nama = "Muhammad";
echo"Hallo Nama Saya " + $nama;
?>
Hallo Nama Saya Muhammad (sulaeman, dede : 2009, 1-5)
2.8. Atur an Generalisasi
Tujuan dari pembuatan aturan generalisasi adalah menghasilkan rules baru
dari rules original Snort agar didapat variasi alerts yang dihasilkan dari
pembacaan suatu paket jaringan. Dengan kondisi yang telah ditentukan :
1. Melakukan penghapusan salah satu parameter didalam snort rules agar
didapat lebih banyak kemungkinan paket akan cocok dengan generalisasi
rules (Removing).
2. Melakukan pembalikan salah satu nilai parameter didalam snort rules agar
didapat pencarian lebih banyak kemungkinan untuk menghasilkan alerts
yang berbeda (Inverting).
Pada Removing, parameter yang digunakan adalah depth dan
offset.Keyworddepth memungkinkan penulis rule untuk menetapkan seberapa jauh
snort harus mencari pola tertentu dalam sebuah paket. Misalkan (depth:5) akan
memberitahu Snort untuk hanya mencari pola tertentu dalam 5 byte pertama dari
payload. Keywordoffset memungkinkan penulis rule untuk menentukan dimana
memulai melakukan pencarian suatu pola didalam sebuah paket. Misalkan
(offset:5) akan memberitahu Snort untuk mulai mencari pola tertentu setelah 5
Gambar 2.12 Rule pencarian content, depth dan offset
Pada rule diatas menginstruksikan untuk melewati 4 byte pertama dan
mencari “cgi-bin/phf” dalam 20 byte berikutnya. Pada Inverting, parameter yang
digunakan adalah content. Keyword content merupakan salah satu dari fitur
Snort yang cukup penting, memungkinkan untuk mengeset rule yang mencari
konten spesifik dalam payload paket dan memicu respons bedasarkan data
tersebut. Data opsi untuk keyword content terkadang rumit, karena bisa
mengandung campuran data teks dan binary.
Gambar 2.13 Rule pencarian content
Pada gambar diatas, pengubah “!” melarang hasil dari pencarian seluruh
konten dan disana hanya terdapat 5 byte payload serta tidak ada “A” dalam 5 byte
tersebut, maka hasilnya cocok. Pada gambar diatas, pengubah “!” melarang hasil
dari pencarian seluruh konten dan disana hanya terdapat 5 bytepayload serta tidak
ada “A” dalam 5 byte tersebut, maka hasilnya cocok. (Rafiudin, Rahmat. 2010
“Mengganyang Hacker dengan SNORT” Halaman: 74 - 78 )
2.9. AWK
AWK adalah bahasa pemrograman yang ditafsirkan untuk pengolahan teks
dan secara khusus dirancang untuk digunakan sebagai alat ekstraksi data dan
AWK sangat populer di akhir 1970-an dan 1980-an, tetapi dari tahun 1990-an
sebagian besar telah oleh Perl. AWK diciptakan di Bell Labs pada tahun 1970,
dan namanya berasal dari nama keluarga penulisnya - Alfred Aho, Peter
Weinberger, dan Brian Kernighan. Tujuan pemrograman AWK yaitu untuk
memberikan UNIX suatu tujuan umum bahasa pemrogramn yang dapat
menghandle text (string) semudah mengolah angka – angka. Dan AWK adalah
adalah salah satu fasilitas UNIX yang sangat baik untuk melakukan hal tersebut.
Area proses AWK yaitu proses berdasarkan baris – baris prosesnya. AWK
merupakan suatu standart permograman untuk nawk ( new awk) yang memiliki
fasilitas yang lebih besar dari awk program.
Sumber – sumber input pemrograman AWK yaitu :
a. File – file : input AWK dapat dari file – file yang kita upload kedalam
program untuk dijadikan sebagi input dalamprogram
b. redirection (pembelokan) : input – input yang diberikan dapat dialihkan
sebagai input yang lain.
c. pipes (pipa) : proses pipa dimana output suatu proses akan dijadikan
sebagai input untuk proses yang lain
d. Standart input : input yang berasal dari keybord sebagai input untuk suatu
proses.
(Sumber referensi : http://ms.wikipedia.org/wiki/AWK. 22 Juni 2013
2.10. IPTables
IPTables merupakan command untuk menentukan sebuah rule-rule
firewall dalam tugasnya menjaga sebuah jaringan. IPTables memiliki tiga fungsi
utama untuk menentukan arah putaran paket data. Ketiga fungsi tersebut yaitu
Packet Filtering, NAT, Packet Mangling. Packet Filtering digunakan untuk
memilah dan memberikan ijin ACCEPT/DROP pada suatu paket data, sedangkan
NAT digunakan untuk mengubah alamat ip sumber atau tujuan dari suatu paket
dalam jaringan, dan untuk Packet Manglilng digunakan untuk memodifikasi paket
QoS (Quality of Service). IPTables juga memiliki tiga macam daftar aturan
bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall
(firewall chain) atau sering disebut juga chain saja. Ketiga chain tersebut adalah
INPUT, OUTPUT dan FORWARD (Farunuddin, Rakhmat, 2005).s
Gambar 2.14 Skema IPTables
Pada gambar 2.14, Lingkaran menggambarkan ketiga rantai atau chain.
Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi
proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila
memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram
tersebut.
Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan
menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah
yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai dengan
paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai
aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka
kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang
harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default
DROP dan default ACCEPT. Jalannya sebuah paket melalui gambar 2.23 bisa
dicontohkan sebagai berikut:
1. Perjalanan paket yang diforward ke host yang lain.
a. Paket berada dalam jaringan fisik, contoh internet.
b. Paket masuk ke interface jaringan, contoh eth0.
c. Paket masuk ke chain PREROUTING pada table Mangle. Chain
ini berfungsi untuk me-mangle (menghaluskan) paket, seperti
merubah TOS, TTL dan lain-lain.
d. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini
berfungsi utamanya untuk melakukan DNAT (Destination Network
Address Translation).
e. Paket mengalami keputusan routing, apakah akan diproses oleh
f. Paket masuk ke chain FORWARD pada tabel filter. Disinlah
proses pemfilteran yang utama terjadi.
g. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini
berfungsi utamanya untuk melakukan SNAT (Source Network
Address Translation).
h. Paket keluar menuju interface jaringan, contoh eth1.
i. Paket kembali berada pada jaringan fisik, contoh LAN.
2. Perjalanan paket yang ditujukan bagi host lokal
a. Paket berada dalam jaringan fisik, contoh internet.
b. Paket masuk ke interface jaringan, contoh eth0.
c. Paket masuk ke chain PREROUTING pada tabel mangle.
d. Paket masuk ke chain PREROUTING pada tabel nat.
e. Paket mengalami keputusan routing.
f. Paket masuk ke chain INPUT pada tabel filter untuk mengalami
proses penyaringan.
g. Paket akan diterima oleh aplikasi lokal.
3. Perjalanan paket yang berasal dari host lokal.
a. Aplikasi lokal menghasilkan paket data yang akan dikirimkan
melalui jaringan.
b. Paket memasuki chain OUTPUT pada tabel mangle.
c. Paket memasuki chain OUTPUT pada tabel nat.
d. Paket memasuki chain OUTPUT pada tabel filter.
e. Paket mengalami keputusan routing, seperti ke mana paket harus
f. Paket masuk ke chain POSTROUTING pada tabel NAT.
g. Paket masuk ke interface jaringan, contoh eth0.
h. Paket berada pada jaringan fisik, contoh internet.
Sintaks IPTables
iptables [-t table] command [match] [target/jump]
(Sumber referensi: IPTables, Tutorial IPTables, Lukman HDP/s3trum,
http://rootbox.or.id/tips/iptables.html, 18 Juni 2013, 13.24 WIB)
2.11. J enis Ser angan SYN flooding attack
SYN flooding attack adalah istilah teknologi informasi dalam bahasa
Inggris yang mengacu kepada salah satu jenis serangan Denial-of-service yang
menggunakan paket-paket SYN.
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 pembuatan koneksi dalam proses "TCP Three-way Handshake".
Dalam sebuah serangan SYN Flooding, si penyerang akan mengirimkan
paket-paket SYN ke dalam port-port yang sedang berada dalam keadaan "Listening"
yang berada dalam host target. Normalnya, paket-paket SYN yang dikirimkan
berisi alamat sumber yang menunjukkan sistem aktual, tetapi paket-paket SYN
dalam serangan ini didesain sedemikian rupa, sehingga paket-paket tersebut
dengan sebuah paket SYN/ACK yang ditujukan kepada alamat yang tercantum di
dalam SYN Packet yang ia terima (yang berarti sistem tersebut tidak ada secara
aktual), dan kemudian akan menunggu paket Acknowledgment (ACK) sebagai
balasan untuk melengkapi proses pembuatan koneksi. Tetapi, karena alamat
sumber dalam paket SYN yang dikirimkan oleh penyerang tidaklah valid, paket
ACK tidak akan pernah datang ke target, dan port yang menjadi target serangan
akan menunggu hingga waktu pembuatan koneksi "kadaluwarsa" atau timed-out.
Jika sebuah port yang listening tersebut menerima banyak paket-paket SYN, maka
port tersebut akan meresponsnya dengan paket SYN/ACK sesuai dengan jumlah
paket SYN yang ia dapat menampungnya di dalam buffer yang dialokasikan oleh
sistem operasi. Jumlah percobaan pembuatan koneksi TCP yang dapat ditampung
oleh sebuah host di dalam buffer memang berbeda-beda antara satu platform
dengan platform lainnya, tapi jumlahnya tidak lebih dari beberapa ratus buah
koneksi saja. Dengan mengirimkan banyak paket SYN ke sebuah port yang
berada dalam keadaan listening yang berada dalam host target, buffer koneksi
yang dialokasikan oleh sistem penerima dapat mengalami "kepenuhan" dan target
pun menjadi tidak dapat merespons koneksi yang datang hingga paket SYN yang
sebelumnya mengalami "timed-out" atau buffer memiliki ruang tampung yang
lebih banyak.
Beberapa sistem operasi bahkan dapat mengalami hang ketika buffer
koneksi terlalu penuh dan harus di-restart. Baik pe-restart-an ulang sistem operasi
atau buffer yang dipenuhi dengan paket SYN yang tidak jelas datangnya dari
menjadi tidak dapat mengakses layanan-layanan dalam jaringan. Sistem server di
mana pengguna hendak mengakses pun menolak request akses dari pengguna.
Ada beberapa cara yang dapat dilakukan untuk mencegah dan mengurangi efek
dari SYN Flooding, yakni sebagai berikut:
a. Meningkatkan ukuran buffer koneksi TCP untuk meningkatkan jumlah
percobaan pembuatan koneksi yang dapat dilakukan secara simultan. Hal
ini memang menjadi solusi sementara, karena penyerang juga mungkin
meningkatkan ukuran paket SYN yang ia kirimkan untuk memenuhi buffer
tersebut.
b. Mengurangi nilai waktu kapan sebuah percobaan pembuatan koneksi TCP
menjadi "timed-out". Hal ini juga menjadi solusi sementara, apalagi jika
jaringan di mana sistem berada sangat sibuk atau lambat.
c. Mengimplementasikan penapisan paket yang masuk ke dalam router,
sehingga memblokir semua serangan yang menggunakan alamat palsu. Hal
ini juga menjadi solusi sementara, karena tidak semua ISP
mengimplementasikan fitur seperti ini. Memantau firewall dan
mengonfigurasikannya untuk memblokir serangan SYN flood ketika hal
tersebut terjadi. Pendekatan ini merupakan pendekatan yang sering
dilakukan oleh banyak organisasi, apalagi jika ditambah dengan Intrusion
Prevention System (IPS), meski hal ini membutuhkan kejelian dari seorang
administrator jaringan untuk memantau catatan (log) dari IPS dan firewall
yang ia atur. Bahkan, dengan kedua perangkat tersebut, klien-klien yang
(Sumber referensi: SYN flooding attack,
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
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
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 :
− 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
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
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
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
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
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
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
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,
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 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
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