Snort IDS (Intrusion Detection System)

Sebelumnya silahkan baca referensi :

Interusion Detection System (SNORT)

Deteksi Penyusupan (Intrusion Detection)Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya disebut sebagai Intrusion Detection System (IDS).


Tipe dasar dari IDS adalah:

- Rule-based systems - berdasarkan atas database dari tanda penyusupan atau serangan yang telah dikenal. Jika IDS mencatat lalulintas yang sesuai dengan database yang ada, maka langsung dikategorikan sebagai penyusupan.

- Adaptive systems - mempergunakan metode yang lebih canggih. Tidak hanya berdasarkan database yang ada, tapi juga membuka kemungkinan untuk mendeteksi terhadap bentuk bentuk penyusupan yang baru.

Snort
Mengoperasikan Snort
Tiga (3) buah mode, yaitu
1. Sniffer mode, untuk melihat paket yang lewat di jaringan.
2. Packet logger mode, untuk mencatat semua paket yang lewat di jaringan untuk di analisa di kemudian hari.
3. Intrusion Detection mode, pada mode ini snort akan berfungsi untuk mendeteksi serangan yang dilakukan melalui jaringan komputer. Untuk menggunakan mode IDS ini di perlukan setup dari berbagai rules / aturan yang akan membedakan sebuah paket normal dengan paket yang membawa serangan.

Sniffer Mode
Untuk menjalankan snort pada sniffer mode tidaklah sukar, beberapa 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.
-e, untuk melihat header link layer paket seperti ethernet header.

Packet Logger Mode
Tentunya cukup melelahkan untuk melihat paket yang lewat sedemikian cepat di layar terutama jika kita menggunakan ethernet berkecepatan 100Mbps, layar anda akan scrolling dengan cepat sekali susah untuk melihat paket yang di inginkan. Cara paling sederhana untuk mengatasi hal ini adalah menyimpan dulu semua paket yang lewat ke sebuah file untuk di lihat kemudian.

Beberapa perintah yang mungkin 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 yang menentukan bahwa paket yang lewat akan di log / di catat ke file ./log. Beberapa perintah tambahan dapat digunakan seperti –h 192.168.0.0/24 yang menunjukan bahwa yang dicatat hanya packet dari host mana saja, dan –b yang memberitahukan agar file yang di log dalam format binary, 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

Intrusion Detection Mode
Mode operasi snort yang paling rumit adalah sebagai pendeteksi penyusup (intrusion detection) di jaringan yang kita gunakan. Ciri khas mode operasi untuk pendeteksi penyusup adaah dengan menambahkan perintah ke snort untuk membaca file konfigurasi –c nama-file-konfigurasi.conf. Isi file konfigurasi ini lumayan banyak, tapi sebagian besar telah di set secara baik dalam contoh snort.conf yang dibawa oleh source snort.

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 ./log –c snort.conf

Untuk melakukan deteksi penyusup secara prinsip 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 tambahan perintah yang akan membuat proses deteksi menjadi lebih effisien, mekanisme pemberitahuan alert di Linux dapat di set 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 binary ke workstation windows, dapat digunakan perintah di bawah ini,
./snort –c snort.conf –b –M WORKSTATIONS

Agar snort beroperasi secara langsung setiap kali workstation / server di boot, 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 menset agar snort bekerja sebagai Daemon (bekerja di belakang layar).

Cara Kerja Snort :
Komponen – komponen Snort IDS (Intrusion Detection System) meliputi :
- Rule Snort
Rule Snort merupakan database yang berisi pola – pola serangan berupa signature jenis – jenis serangan. Rule snort IDS (Intrusion Detection System) harus selalu terupdate secara rutin agar ketika ada suatu teknik serangan yang baru, serangan tersebut dapat terdeteksi. Rule Snort dapat di download pada website www.snort.org.
- Snort Engine
Snort Engine merupakan program yang berjalan sebagai daemon proses yang selalu bekerja untuk membaca paket data dan kemudian membadingkan dengan Rule Snort.
- Alert
Alert merupakan catatan serangan pada deteksi penyusupan. Jika Snort engine mendeteksi paket data yang lewat sebagai sebuah serangan, maka snort engine akam mengirimkan alert berupa log file. Kemudian alert tersebut akan tersimpan di dalam database.
Instalasi & Konfigurasi Snort
Sebelumnya baca referensi berikut:
1. https://chotibulstudio.wordpress.com/2017/07/10/instalasi-snort-di-debian-8-jessie/
2. https://chotibulstudio.wordpress.com/2017/07/10/konfigurasi-snort-di-debian-8-jessie/
3. https://chotibulstudio.wordpress.com/2017/07/10/pengetesan-hasil-konfigurasi-dan-menjalankan-snort-sebagai-ids-mode/
2. https://www.slideshare.net/manafhsb/install-dan-konfigurasi-snort-di-linux-debianubuntu

INSTALASI PAKET PENDUKUNG
Paket pendukung atau paket dependency ini sangat diperlukan untuk kelancaran proses instalasi snort. Lakukan update dan upgrade sebelum menginstall paket (gunakan user #root).

#apt-get update && apt-get upgrade

Jika terdapat paket yang mebutuhkan upgrade, silahkan upgrade terlebih dahulu dengan mengikuti instruksi yang ada di Terminal. Setelah selesai, lakukan instalasi paket dependency dengan perintah berikut

#apt-get install flex bison build-essential checkinstall libpcap-dev libnet1-dev libpcre3-dev libnetfilter-queue-dev iptables-dev libdumbnet-dev zlib1g-dev

Tunggu hingga proses instalasi selesai, baru setelah itu lakukan download dan instalasi paket DAQ dan SNORT-nya.

INSTALASI DAQ DAN SNORT
Menurut WikiPedia, DAQ (Data Acquisition Library) merupakan paket atau tool yang digunakan untuk melakukan pengambilan contoh data untuk melakukan pengukuran terhadap sampel data dan merubahnya menjadi nilai numerik digital yang dapat dimanipulasi oleh komputer. Dapat ditarik kesimpulan, DAQ merupakan paket penerjemah terhadap situasi (dalam hal ini, gangguan terhadap jaringan) yang ada dan menerjemahkannya dalam bentuk numerik, setelah itu data numerik diproses oleh snort sehingga menampilkan output yang kita mengerti (sesuai dengan rule yang ada).

DAQ juga merupakan paket dependency untuk Snort, untuk itu DAQ harus terinstall lebih dulu sebelum menginstall snort.

Sebelum menginstall DAQ dan Snort, disini dibuatkan satu direktori “snort” (anda bisa menyesuaikan) yang digunakan untuk menampung paket DAQ dan Snort yang di download. Pastikan untuk melakukan pengecekan paket stabil di snort.org.

#mkdir snort
#cd snort

Pastikan posisi direktori berada di root@debian:~/snort# (sesuaikan dengan milik anda).

#wget https://snort.org/downloads/snort/daq-2.0.6.tar.gz



Tunggu beberapa saat sampai paket DAQ terunduh. Setelah itu ekstrak paket DAQ, dengan perintah berikut:

#tar xvfz daq-2.0.6.tar.gz



Setelah terekstrak, silahkan masuk ke direktori daq-2.0.6 (pastikan berada di root@debian:~/snort/daq-2.0.6# ) dan lakukan compiling.

#cd daq-2.0.6
#./configure; make

atau

#root> snort/daq-2.0.6/configure; make

Tunggu beberapa saat hingga proses compiling selesai. Jika selesai, lanjutkan dengan membangun paket .deb dari hasil compiling yang telah dilakukan, gunakan perintah berikut

#checkinstall

Lalu ikuti instruksi yang ada. Jika berhasil, hasil dari membangun paket .deb dari hasil compiling akan seperti berikut

GBR

#dpkg -i daq_2.0.6-1_i386.deb

Sampai disini proses instalasi DAQ selesai. Silahkan kembali ke direktori snort seperti semula, root@debian:~/snort#

Download paket snort dengan perintah berikut

#wget https://snort.org/downloads/snort/snort-2.9.12.tar.gz

Setelah terunduh, lakukan pengekstrakan paket snort dengan perintah

#tar xvfz snort-2.9.12.tar.gz

Setelah terekstrak, silahkan masuk ke direktori snort hasil ekstrakan dan lakukan compiling dengan perintah berikut

#cd snort-2.9.12
# ./configure --enable-sourcefire; make; make install

Proses compiling snort memakan waktu cukup lama bila dibandingkan dengan proses compiling DAQ.

Setelah proses compiling selesai, lakukan pembangunan paket .deb dengan perintah

#checkinstall

Setelah melakukan instalasi DAQ dan Snort selanjutnya lakukan pengecekan terhadap shared libraries untuk memastikan tetap up to date dengan perintah

#ldconfig

Setelah semua tidak ditemukan kendala, untuk memastikan apakah snort telah berjalan dengan baik, silahkan cek versi snort yang terinstall dengan perintah berikut

#snort --version

GBR

Nah, sampai disini kita telah berhasil melakukan instalasi snort dari kode sumber (source file), tutorial ini berlaku di semua keluarga Debian (Debian-base), hanya saja jika dilakukan di Ubuntu cukup dengan menggunakan apt karena sampai saat ini paket snort masih di dukung dengan baik meskipun versinya tidak lagi baru.
-------------------------------------------------

Konfigurasi Snort di Debian 8 (Jessie)

PENGALOKASIAN DIREKTORI DAN FILE UNTUK KONFIGURASI SNORT
Tahapan ini diperlukan pembuatan direktori untuk menyimpan beberapa file konfigurasi dan membuat file untuk kebutuhan custom rule. Berikut ini perintah untuk membuat direktori dan file untuk snort (gunakan hak akses #root)

#mkdir /etc/snort
#mkdir /etc/snort/rules
#mkdir /etc/snort/preproc_rule
#touch /etc/snort/rules/white_list.rule /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules
(* mulai dari perintah “touch” penulisan tidak di-enter. Teruskan sampai akhir.

Semua layanan membutuhkan log file, bahkan Snort tidak bisa lepas dari log file karena log menyimpan informasi penting yang dapat membantu Administrator untuk melakukan pengecekan terhadap kondisi jaringan hanya melalui log file ini. Secara default sistem Linux telah menyertakan direktori log yang berada di /var/log. Agar lebih mudah dalam melakukan pengecekan kita buat direktori khusus “snort” untuk menampung semua log dari snort, alert maupun error. Gunakan perintah berikut

#mkdir /var/log/snort

Untuk kebutuhan rule yang dinamis, snort memerlukan satu direktori khusus, dan snort akan meminta untuk mengincludekan. Gunakan perintah berikut

#mkdir /usr/local/lib/snort_dynamicrules

Jika pembuatan direktori telah selesai, lakukan perubahan hak akses dengan mengetikkan perintah berikut

#chmod -R 775 /etc/snort
#chmod -R 775 /var/log/snort
#chmod -R 775 /usr/local/lib/snort_dynamicrules

Selanjutnya kita perlu meng-copy-paste-kan semua file konfigurasi yang ada di direktori hasil ekstrak-an snort (lihat tutorial Instalasi Snort di Debian 8 Jessie). Agar mudah dalam pengkonfigurasian serta agar lebih terstruktur. Pada proses ini pastikan posisi direktori berada di direktori root yang ditunjukkan dengan root@debian:~# sehingga posisi direktori ekstrak-an snort berada di /root/snort/snort-9.9.0, gunakan perintah berikut

#cp snort/snort-2.9.9.0/snort*/etc/*.conf* /etc/snort
#cp snort/snort-2.9.9.0/snort*/etc/*.map /etc/snort

Sampai disini persiapan konfigurasi telah selesai, mari kita lanjutkan ke tahapan Konfigurasi Snort yang sesungguhnya.

KONFIGURASI SNORT
Pada konfigurasi ini saya menggunakan IP dari hasil tethering dengan range IP 192.168.43.0/24. IP Network ini berguna untuk menspesifikkan jaringan mana yang ingin dilakukan deteksi dan proteksi.

File konfigurasi utama berada di /etc/snort/snort.conf gunakan perintah berikut untuk mengkonfigurasi

#nano /etc/snort/snort.conf

Pertama, Lakukan perubahan nilai pada HOME_NET dengan mengganti kata any menjadi IP Network. Cari (gunakan CTRL+W) ipvar HOME_NET dan rubah hingga menjadi seperti berikut

#ipvar HOME_NET 192.168.43.0/24

Kedua, lakukan perubahan path direktori pada variable RULE_PATH, SO_RULE_PATH, PREPROC_RULE_PATH, WHITE_LIST_PATH dan BLACK_LIST_PATH hingga menjadi seperti berikut

#var RULE_PATH /etc/snort/rules
#var SO_RULE_PATH /etc/snort/so_rule
#var PREPROC_RULE_PATH /etc/snort/preproc_rules
#var WHITE_LIST_PATH /etc/snort/rules
#var BLACK_LIST_PATH /etc/snort/rules

Ketiga, lakukan perubahan path direktori log (config logdir) agar saat menjalankan snort tidak harus menyertakan opsi -l /var/log/snort. Hilangkan tanpa pagar (#) dan tambahkan path direktorinya

#config logdir:/var/log/snort

Keempat, lakukan konfigurasi output dari snort (berupa log alert). Pada bagian ini, cari configure output plugin dan tambahkan baris berikut dibawah # syslog

#output alert_syslog: alert

Kelima, tentukan rule yang akan digunakan, dalam kasus ini saya akan menggunakan file local.rules yang berada di /etc/snort/rules. Cari (Ctrl + W) dan hilangkan tanda pagar (#) pada include $RULE_PATH/local.rules dan berikan tanda pagar pada rule selain local.rules (mulai baris 545 s/d 660).

Simpan konfigurasi dengan Ctrl + X, Y, enter.

Sampai di sini kita telah menyelesaikan konfigurasi Snort di Debian 8. Instalasi sudah. Konfigurasi sudah. Sampai berjumpa lagi di tutorial selanjutnya yaitu “Pengetesan Hasil Konfigurasi dan Menjalankan Snort Sebagai IDS Mode”.
-------------------------------------------------------------------

Pengetesan Hasil Konfigurasi dan Menjalankan Snort Sebagai IDS Mode

PENGETESAN HASIL KONFIGURASI
Pengetesan ini bertujuan untuk melakukan pemeriksaan terhadap file konfigurasi snort, snort.conf. Untuk melakukannya, gunakan perintah berikut (gunakan hak akses root):

snort -T -c /etc/snort/snort.conf

GBR

Gambar diatas menunjukkan hasil validasi snort terhadap file konfigurasinya, jika masih terdapat pesan error, silahkan periksa kembali konfigurasi snort di Debian 8.

MEMBUAT RULE UNTUK PERINGATAN PING
Rule digunakan oleh snort untuk acuan dalam melakukan pendeteksian. Dengan kata lain, rule ini adalah kumpulan aturan pendeteksian terhadap beberapa kemungkinan serangan pada suatu jaringan komputer. Dalam kasus ini saya akan memberikan contoh rule terhadap serangan ping.

Letak file yang digunakan untuk menyimpan rule dibawah ini berada di /etc/snort/rules/local.rules, edit file local.rules dengan perintah berikut

#nano /etc/snort/rules/local.rules

Kemudian ketikkan rule dibawah ini pada file local.rule.

#alert icmp any any -> any any (msg:”Ada Serangan Ping”;sid:10000001;rev:0;)

Setelah melakukan pengetikan, simpan rule.

MENJALANKAN SNORT SEBAGAI IDS MODE
Dalam hal ini, sebenarnya Snort bukan hanya dapat dijalankan sebagai IDS mode. Selain IDS mode snort juga dapat dijalankan dengan beberapa mode berikut ini:

Sniffer Mode
Digunakan untuk melihat paket-paket yang lewat pada jaringan. Contoh perintah snort dengan sniffer mode (berjalan pada user root):

#snort -v
#snort -vd
#snort -vde
#snort -v -d -e

Keterangan:

-v, untuk melihat header TCP/IP serta paket yang lewat pada jaringan.
-d, untuk melihat isi paket.
-e, untuk melihat header link layer paket seperti ethernet header.

Packet Logger Mode
Digunakan untuk mencatat semua paket yang lewat di jaringan di analisa dikemudian hari. Berikut ini beberapa perintah yang digunakan untuk menjalankan packet logger mode:

#snort -dev -l /var/log/snort
#snort -dev -l /var/log/snort -h 192.168.1.0/24
#snort -dev -l /var/log/snort -b

Untuk membaca log yang dihasilkan oleh mode packet logger sebagai berikut:

#snort -dv -r /var/log/snort/paket.log
#snort -dvr /var/log/snort/paket.log icmp
#snort -r /var/log/snort/snort.log

Nah, setelah mengetahui beberapa cara dalam menjalankan snort, sekarang mari ikuti saya untuk menjalankan snort dengan IDS Mode.

Dengan IDS Mode, berarti snort akan difungsikan untuk mendeteksi serangan yang dilakukan melalui jaringan komputer. Dalam penggunaan mode IDS ini di perlukan setup dari berbagai rules / aturan yang akan membedakan sebuah paket normal dengan paket yang membawa serangan. Karena saya sudah menyunjukkan setup rule diatas, mari jalankan Snort IDS Mode! Jangan lupa ya, harus menggunakan hak akses root (#).

#snort -A full -c /etc/snort/snort.conf

GBR

Untuk mempelajari opsi-opsi perintah Snort, silahkan baca-baca di man snort (ketikkan di console).
Selanjutnya, mari kita periksa log alert yang dihasilkan oleh snort!.

MEMBACA HASIL DETEKSI MELALUI LOG FILE
Seperti yang di jelaskan pula pada konfigurasi snort di Debian 8 bahwa letak log Snort berada di /var/log/snort, untuk melakukan pembacaan terhadap alert gunakan perintah berikut ini

#tail -f /var/log/snort/alert

GBR

Maka hasil yang keluar dari log akan seperti pada gambar diatas, lengkap dengan sumber IP dan tujuannya.

Sampai disini anda telah melakukan pengetesan hasil konfigurasi dan menjalankan snort sebagai ids mode dan telah mampu membuat mesin deteksi untuk jaringan anda.





2 comments: