TUJUAN :
1. Mengenalkan pada Siswa tentang konsep Intrusion Detection System
2. Siswa mampu melakukan installasi dan konfigurasi SNORT sebagai tools IDS
3. Siswa mampu membangun rule baru untuk mendeteksi eksploit terbaru
Penjelasan laman dokumen dan download Snort yang bisa didapatkan melalui http://www.snort.org biasanya di sebut sebagai Network Intrusion Detection System (NIDS). Snort sendiri adalah Open Source yang tersedia di berbagai variasi Unix (termasuk Linux) dan juga Microsoft Windows.
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.
Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based systems.
Pendekatan yang dipergunakan dalam rule-based systems ada dua, yakni :
1. pendekatan pencegahan (preemptory)
program pendeteksi penyusupan akan memperhatikan semua lalu lintas jaringan. Jika ditemukan paket yang mencurigakan, maka program akan melakukan tindakan yang perlu
2. pendekatan reaksi (reactionary) : program pendeteksi penyusupan hanya mengamati file log. Jika ditemukan paket yang mencurigakan, program juga akan melakukan tindakan yang perlu.
Snort
- Instal dan konfigurasikan firewall UFW di server Ubuntu Anda untuk penyaringan paket
- Instal dan konfigurasikan mesin firewall untuk penyaringan web dan kontrol aplikasi
- Instal dan konfigurasikan Snort untuk deteksi dan pencegahan intrusi jaringan
Bagaimana Cara Menginstal Snort 3 di Ubuntu 22.04?
Instalasi Snort cukup mudah dan langsung karena paket Snort dapat diakses di repositori sebagian besar distribusi Linux.Paket dapat diinstal baik dari sumber maupun repositori perangkat lunak.Dalam tutorial ini, Kita akan menjelaskan cara menginstal dan mengonfigurasikan Snort 3 di server Linux Ubuntu 22.04 Anda.Snort 3 secara signifikan berbeda dari seri Snort 2.9.9.x. File konfigurasi dan aturan antara kedua versi tersebut berbeda dan tidak kompatibel. Menggunakan perintah snort2 lua yang disertakan, file konfigurasi dan aturan Snort 2 dapat dikonversike format Snort 3.
1. Perbarui Server Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
git clone https://github.com/snort3/libdaq.gitcd libdaq./bootstrap./configuremakesudo make install
cd ../wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gztar xzf gperftools-2.9.1.tar.gzcd gperftools-2.9.1/./configuremakesudo make install
cd..wget https://github.com/snort3/snort3/archive/refs/heads/master.zipunzip master.zipcd snort3-master./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
TIPJika Anda tertarik untuk mengaktifkan kemampuan waktu kompilasi tambahan, seperti kemampuan untuk menanganifile PCAP besar (lebih dari 2 GB) atau shell baris perintah baru, jalankan ./configure cmake.sh --helpuntuk mencantumkan semua fitur opsional, kemudian lampirkan ke perintah ./configure cmake.sh yang ditunjukkan di atas.
cd buildmakesudo make install
sudo ldconfig
snort -V
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 perintah- nya 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, sambil santai … 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 di catat 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 dibelakang 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 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.
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.
PERCOBAAN
1. Bangunlah jaringan sebagai berikut :
Gambar Topologi Percobaan
Snort
2. Konfigurasi sesuai dengan topologi yang diminta :
Gunakan dhclient di masing-masing PC untuk i dmendapatkan IP dari router.
192.168.50.x & y : IP dari router
Pilih 192.168.50.x sebagai PC Server yang akan dipasangi snort
Pilih 192.168.50.y sebagai PC Client
3. Lakukan instalasi snort pada PC Server
# apt-get install snort
Masukkan range network yang akan dianalisa :
Address range for the local network :
192.168.0.0/16
4. Manjalankan snort
a. Bekerjalah dengan kelompok anda, salah satu menjalankan snort (PC Server)
dan yang lain menjalankan aplikasi yang lain (PC Client).
b. Jalankan perintah ping dan nmap dari PC Client ke PC Server.
c. Jalankan snort dengan menggunakan mode sniffer
#snort –v
#snort –vd
#snort –vde
#snort –v –d –e
Ket : Running in packet dump mode
Jelaskan perbedaan hasil dari option di atas.
d. Untuk mempermudah pembacaan masukkan hasil snort ke dalam file, jalankan
perintah berikut :
#snort –dev –i eth0 –L /var/log/snort/snort.log
Ket : Running in packet logging mode
Akan menghasilkan sebuah file di folder /var/log/snort, lihat dengan perintah :
# ls /var/log/snort
e. Untuk membaca file snort (misal : snort.log.1234) berikan option –r pada snort
# snort -dev -r /var/log/snort/snort.log.1234
5. Menjalankan snort dengan mode NIDS (Network Intrusion Detection System)
a. Opsi e, dihilangkan karena kita tidak perlu mengetahui link layer MAC. Opsi v
dihilangkan juga, jalakan menggunakan option sbb :
#snort -d -h 192.168.1.0/24 -l /var/log/snort -c /etc/snort/snort.conf
Ket : Running in IDS mode
b. Bekerjasamalah dengan rekan anda. Sekarang coba jalankan scanning dari komputer lain (PC Client) dengan nmap menuju komputer yang anda pasangi
snort (PC Server). Terlebih dulu jalankan snort dengan mode NIDS, kemudian lakukan scanning dengan perintah :
# snort -d -h 192.168.1.0/24 host <no_ip_snort> -l
/var/log/snort –c /etc/snort/snort.conf
#nmap -sS -v <no_ip_snort>
c. Lihatlah apakah scan anda terekam oleh snort. Jika iya, copy paste hasil snort
pada bagian scanning SYN. Untuk melihat, gunakan perintah :
# snort –dev –r <nama-log-file> | more
Apakah scanning ini ditandai sebagai alert ? Coba lihat di /var/log/snort,
gunakan perintah :
# vim /var/log/snort/alert
d. Jalankan snort. Buka halaman web. Apakah ini terdeteksi sebagai alert?
e. Sekarang coba ubah rule snort. Buat rule baru yaitu alltcp.rules dan simpan di
/etc/snort/rules
# vim /etc/snort/rules/alltcp.rules
alert tcp any any -> any any (content:”www.facebook.com”;
msg:”Someone is visiting Facebook”;sid:1000001;rev:1;)
alert tcp any any -> any any (msg:"TCP
Traffic";sid:1000002;rev:0;)
Apa artinya ?
Ket : any any (host port), sid harus lebih dari 1 juta, rev mulai dari 0.
f. Coba lihat snort.conf. Beri tanda # pada semua rule lain dan tambahkan rule
anda yaitu : alltcp.rules.
# vim /etc/snort/snort.conf
include $RULE_PATH/alltcp.rules
g. Lakukan restart aplikasi snort anda :
# /etc/init.d/snort restart
h. Bukalah halaman web untuk mengakses “www.facebook.com”, lihatlah apakah ada tanda sebagai alert atau tidak
i. Coba lakukan scanning seperti perintah b. Lihatlah apakah ada tanda sebagai alert atau tidak
Untuk mengetahui beberapa baris terakhir dari informasi alert :
# tail –f /var/log/snort/alert
j. Apa yang dapat anda simpulkan dari langkah diatas ?
Tidak ada komentar:
Posting Komentar