SNORT : Tools deteksi intrusi pada system (tutorial pada system Unix)
1.0 Pengantar dari www.pemula.com
“Firewall saja terkadang tidak cukup untuk mendeteksi serbuan dari hacker jahat atau intruder di luar system kita. Dapat di analogikan, kalau firewall itu membatasi gerak para intruder, misalnya dengan hanya membolehkan port 80 http saja dan memblokir port lainnya.
Sudah amankah ? belum, karena serangan tetap dapat dilakukan melalui port 80, misalnya dengan memanfaatkan unicode directory traversal vulnerability atau serbuan virus code red yang dapat menjatuhkan server IIS Anda. Untuk mendeteksi isi paket yang lewat, maka diperlukan intrusion detection system atau sering disebut IDS. IDS yang gratis adalah SNORT. Tutorial di bawah ini menjelaskan step-by-step instalasi dan penggunaannya pada system UNIX. Sebenarnya versi windowsnya juga sudah tersedia dan tidak kalah mudahnya dalam instalasi.. Mungkin akan kami sajikan pada tulisan lainnya.” 1.1 Pengenalan 'SNORT' merupakan salah satu software untuk mendeteksi intrusi pada system, mampu menganalisa 'real-time traffic' dan logging ip, mampu menganalisa port dan mendeteksi segala macam 'serangan' dari luar seperti buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting. secara default nya snort mempunyai 3 hal yang terpenting yaitu : (1) paket sniffer, seperti tcpdump, iptraf dll (2) paket logger, yang berguna untuk paket traffic dll (3) NIDS, deteksi intrusi pada network.
Snort bukanlah software yang sulit, tapi perlu banyak latihan karena banyaknya 'command-command' yang harus digunakan, tujuan dari pembuatan artikel ini untuk membuat user lebih mudah untuk mengenali 'snort'. 1.2 Instalasi
download paket yang terbaru dari snort.org, saya disini menggunakan snort 2.0.0 # wget -c http://www.snort.org/dl/snort-2.0.0.tar.gz jangan lupa juga mendownload rules terbaru. # wget -c http://www.snort.org/dl/rules/snortrules-stable.tar.gz extract dan install paket snort # tar -zxvf snort-2.0.0.tar.gz ; cd snort-x.x.x ; ./configure ; make ; make install untuk lebih lengkap nya silahkan baca ./configure --help snort akan terinstall di /usr/local/bin/snort
secara default
1.3 Paket Sniffer fyuh, mari coba pelajaran dasar dulu ;) jika anda ingin menampilkan TCP/IP header ke layar ( mis. sniffer mode ), coba perintah ini: # snort -v
command di atas akan menjalan snort dan hanya akan menampilkan IP dan TCP/UDP/ICMP header, tapi jika anda mau melihat transit data coba dengan command ini # snort -vd instruksi tersebut akan menampilkan transit data, tapi jika anda mau lebih spesifik coba dengan
# snort -vde
1.3 Paket logger
ok, command-command di atas mungkin hanya sebagai pengenalan, pada instruksi diatas ada kasus dimana kita tidak mungkin melihat ke layar setiap menit nya ;) oleh karena itu dibutuhkan log, sebelum nya buat direktori 'log' di direktori kerja anda sekarang
# mkdir -p log # snort -dve -l ./log
Jika instruksi diatas dijalankan, tetapi anda belum membuad direktory log, maka snort akan segera berhenti dengan keterangan 'ERROR: log directory './log' does not exist', jika berhasil, snort akan menyimpan setiap paket ke dalam direktori-direktory IP address, jika sistem anda memiliki beberapa network tetapi anda hanya ingin memonitor network tertentu saja.
# snort -dev -l ./log -h 192.168.1.0/24 Rules ini akan menyimpan setiap data link dan TCP/IP header ke dalam direktory 'log' dan menyimpan setiap paket dari 192.168.1.0 kelas C network. 1.4 Mendeteksi 'Pengacau' Jaringan Sebelum ini di bahas, sebaik nya anda membaca manual dari snort.org, http://www.snort.org/docs/writing_rules/chap2.html , disini diminta untuk membuat rules sendiri atau anda bisa memakai rules yang di sedikan oleh snort.org sendiri.
# tar -zxvf snortrules-stable.tar.gz tapi, saya coba membuat rules sendiri, karena saya kurang suka dengan paket dari orang lain, setelah di gunain tapi tidak tahu gunanya buat apa ;) contoh rules sederhana
# cd rules; touch avudz.conf # vi avudz.conf
alert tcp any any -> ipsaya/29 21 (content: "root"; \ msg: "FTP root login";) alert tcp any any -> ipprivate/24 22 (msg:"sshd access";) alert tcp any any -> ipsaya/29 21 (content: "anonymous"; \ msg: "Ada yg Coba FTP server!";) alert tcp any any -> ipsaya/29 22 (msg:"ada yang login";) # http://www.linuxsecurity.com/feature_stories/feature_story-144.html Content digunakan untuk mendefinisikan inputan dari $user, sedangkan msg untuk membuat pernyataan tentang $user yang menggunakan 'content' tersebut. sebelum rules baru ini di jalankan, pastikan anda membuat direktory logging di /var/log/snort # mkdir -p /var/log/snort
tetapi jika anda merasa partisi /var anda sudah minim, silahkan buat symbolic link untuk logging, misal
# ln -s /home/avudz/snort/log /var/log/snort
ok, selesai sudah ;) sekarang coba kita jalankan software nya.
# snort -d -c rules/avudz.conf Running in IDS mode Log directory = /var/log/snort Initializing Network Interface eth0
setelah itu silahkan anda coba ftp / ssh ke server anda dari network yang berbeda ( diconfig saya menggunakan ip public), dan pantau traffic nya.
# tail -f /var/log/snort/alert
contoh :
[**] [1:0:0] ada yang login [**] [Priority: 0] 06/12-05:47:23.911639 202.xxx.xxx.xx:3962 -> 202.xxx.xxx.xxx:22 TCP TTL:64 TOS:0x10 ID:57036 IpLen:20 DgmLen:52 DF ***A**** Seq: 0xAC015F2A
Ack: 0xAD5438B5
Win: 0x3EBC
TcpLen: 32
TCP Options (3) => NOP NOP TS: 16723031 55655688 [**] [1:0:0] Ada yg Coba FTP server! [**] [Priority: 0] 06/12-05:48:24.419800 202.xxx.xxx.xx:3971 -> 202.xxx.xxx.xxx:21 TCP TTL:64 TOS:0x10 ID:57642 IpLen:20 DgmLen:68 DF ***AP*** Seq: 0xAE133FB1
Ack: 0xAFCB3637
Win: 0x3EBC
TcpLen: 32
TCP Options (3) => NOP NOP TS: 16729081 55661127
Ah.. selesai sudah, tinggal tambahin beberapa rules yang dibutuhkan untuk memantau aktivitas 'machine' anda ;) misalnya iseng mo monitor irc server, tinggal tambahin di avudz.conf
# vi rules/avudz.conf alert tcp ipsaya any -> any 6666:7000 (msg:"CHAT IRC "; flow:to_server,established; content: "NICK "; offset:0; classtype:miscactivity; sid:542; rev:8;)
alert tcp ipsaya any -> any 6666:7000 (msg:"permintaan DCC Chat "; flow:to_server,established; content:"PRIVMSG "; nocase; offset:0; content:" \:.DCC SEND"; nocase; classtype:misc-activity; sid:1639; rev:3;) # === done === # Semua config dan rules nya bisa anda pelajari dari file snortrulesstable.tar.gz yang sudah di extract, seperti msyql rules, backdoor rules, ICMP rules, bad traffic rules dll. yang penting adalah mencoba, jangan pernah menyerah! MERDEKA!! =)
Dikutip dari tulisan Avudz Syah Putra di Jasakom oleh www.pemula.com