GVHD : TS.

Ph m V n Tính

10/1/2009

IDS Snort

1

‡ ‡ ‡ ‡ ‡

Hoàng Ti n Long Ngô Tr n Khánh Châu Nguy n Ng c Th m Võ Hà Ti n Nguy n Minh Ti n

10/1/2009

IDS Snort

2

Ph n I : IDS 
Khái ni m, phân lo i. Ki n trúc Tri n khai.

Ph n II : Snort. 
Gi i thi u.  Cài t.  Snort rule.

Ph n III : Demo
10/1/2009 IDS Snort 3

c ng có th k t h p c hai. Scanning. ‡ K thu t s d ng trong IDS có th là : signature ho c anomaly-based . ‡ Phát hi n các hành ng trong ti n trình t n công (FootPrinting.‡ Là m t h th ng (ph n m m. ho c k t h p c hai) phát hi n các hành vi xâm nh p b t h p phát vào m ng. 10/1/2009 IDS Snort 4 . cung c p thông tin nh n bi t và a ra c nh báo. ph n c ng. Sniffer«).

phát hi n xâm nh p m c kernel (kernel module) 10/1/2009 IDS Snort 5 .‡ Cài t nh m t agent trên m t host c th . và có thê ng ng hành ng l i tr c khi nó x y ra. ‡ HIDS có th dùng theo dõi log (log monitors). giám sát tính toàn v n (intergrity monitors). Phân tích log c a h i u hành ho c các ng d ng so sánh các s ki n v i c s d li u phát hi n các vi ph m v b o m t và a ra c nh báo. ‡ N u có vi ph m HIDS ghi nh n l i các hành ng ó. a ra c nh báo.

‡ Dùng b t các gói tin trong môi tr ng m ng. c nh báo ho c a vào Firewall. ‡ Khi có t n công NIDS s log các gói tin vào c s d li u. so sánh gi a d li u thu th p cv i c s d li u nh m phát hi n các d u hi u t n công. 10/1/2009 IDS Snort 6 .

HIDS HIDS ch quan sát các host . mã hóa. ng trong nh ng môi 10/1/2009 IDS Snort 7 . Ho t ng hi u qu trong nh ng môi R t khó ho t tr ng chuy n m ch. tr ng này. ki m tra tính toàn v n«) Ch phát hi n nh ng cu c t n công ã thành công. t c cao. Network .NIDS NIDS nhìn toàn c nh lu ng d li u trên m ng (NIDS th ng c coi nh là sniffer) NIDS phát hi n nh ng cu c t n công ti m n ng.Host IDS . h i u hành. ho t ng c a ng d ng (th ng làm nh ng công vi c nh phân tích log.

PREPROCESSORS DETECTION ENGINE SENSOR ALERT SYSTEMS OUTPUT LOGGING SYSTEMS 10/1/2009 IDS Snort 8 .

10/1/2009 IDS Snort 9 .

10/1/2009 IDS Snort 10 .

10/1/2009 IDS Snort 11 .

10/1/2009 IDS Snort 12 .

10/1/2009 IDS Snort 13 .

10/1/2009 IDS Snort 14 .

mà nó ch dò tìm và a ra c nh báo. t IDS âu trong h th ng m ng mang l i hi u qu cao nh t ???? 10/1/2009 IDS Snort 15 . hay ng n ch n quá trình khai thác l i. d a vào d u hi u nh n bi t nào ó (signatures) c p nh t signatures m i.‡ H th ng IDS (signature-based) c n m t c s d li u ã có s n v các ki u t n công nh n bi t các cu c t n công có th x y ra. ‡ B n thân IDS không ch ng l i các cu c t n công.

10/1/2009 IDS Snort 16 .

10/1/2009 IDS Snort 17 . Càng nhi u IDS thì ng ngh a v i vi c h th ng ch m i và chi phí b o trì s t ng lên.Chi n l c tri n khai IDS ph thu c vào chính sách b o m t và tài nguyên c n b o v .

10/1/2009 IDS Snort 18 .

Các file này c ch ra trong file c u hình snort. 10/1/2009 IDS Snort 19 . Ch y c trên c Windows và Linux.conf .‡ Snort là m t IDS ki u signature ± based. ‡ Snort s c các lu t lúc kh i ng và xây d ng m t c u trúc d li u ho c các chu i áp d ng các lu t ó lên d li u thu th p c. các lu t c nhóm thành các lo i khác nhau và c ch a trong nh ng file riêng cho t ng nhóm. ‡ Snort có các t p lu t l u tr trong các file text.

stealth port scans. nó có th s p x p và ghi nh n các cu c t n công d a trên phân o n TCP.‡ Snort c cung c p 1 t p h p phong phú các lu t ã c nh ngh a tr c. CGI attacks. ‡ Snort có th phát hi n c nhi u lo i xâm nh p nh : buffer overflows. OS fingerprinting attempts 10/1/2009 IDS Snort 20 . SMB probes. tuy nhiên ng i dùng có th t nh ngh a và a thêm các lu t m i ho c lo i b m t s lu t không c n thi t. ‡ Snort là stateful IDS.

10/1/2009 IDS Snort 21 .‡ Snort có th cài t 2 ch là inline ho c passive. ‡ Inline: Snort tích h p v i t ng l a kích ho t t ng l a khóa hay drop ho t các hành ng khác nh m ng n ch n cu c t n công mà nó phát hi n. ‡ Passive: Snort ch phát hi n xâm nh p. nghi log và c nh báo.

‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ Apache PHP My Sql BASE Libpcap Libnet Perl Pear Snort IDS Snort 22 10/1/2009 .

‡ S d ng rpm ±qa | grep <tên gói> ki m tra xem gói ó ã cài t ‡ S d ng : yum install <tên gói> cài t nh ng gói còn thi u. ‡ i v i nh ng gói .rpm : rpm ±ivh <tên gói .rpm>
10/1/2009 IDS Snort

ch a.

23

‡ S d ng : wget <url> download các gói cài t t m t trang web. ‡ i v i nh ng gói .tar.gz : tar ±xvzf <tên gói.tar.gz> cd <tên gói> ./configure [option] make && make install
10/1/2009 IDS Snort 24

‡ M c nh ã cài s n, s d ng : rpm ±qa | grep http httpd-manual-2.2.11-2.fc10.i386 httpd-tools-2.2.11-2.fc10.i386 httpunit-1.6.2-2.fc10.noarch httpd-2.2.11-2.fc10.i386 mod_ssl-2.2.11-2.fc10.i386
10/1/2009 IDS Snort 25

‡ M c nh cài s n: rpm ±qa | grep mysql mysql-5.77-1.77-1.fc10.i386 php-mysql-5.i386 mysql-server-5.2.77-1.i386 10/1/2009 IDS Snort 26 .i386 mysql-devel-5.6-5.fc10.77-1.0.0.0.i386 mysql-libs-5.fc10.0.fc10.

2.6-5.2.2.i386 php-pdo-5.‡ M c nh ã c cài s n: rpm ±qa | grep php php-5.6-5.2.7.2-2.6-5.6-5.i386 php-pear-1.6-5.i386 10/1/2009 IDS Snort 27 .6-5.6-5.fc10.i386 php-common-5.2.i386 php-mysql-5.2.i386 php-cli-5.i386 php-ldap-5.2.noarch php-gd-5.2.6-5.i386 php-devel-5.

B n nên cài t source. libnet. S d ng l nh: wget <url> Ví d : wget http://ftp.gnu.tar.1.gz. libpcap.org/gnu/bison/bison-2.4.tar. 10/1/2009 IDS Snort 28 .gz ‡ Sau ó cài nh m t gói .‡ Ngoài ra còn c n có prel ( ã cài s n).

‡ Start apache và mysql lên: service httpd start service mysqld start 10/1/2009 IDS Snort 29 . N u thi u b t k gói nào dùng l nh : yum install <tên gói> cài thêm vào.‡ Nh ng gói trên là t i thi u ph i có.

org ‡ L u ý : th ng trong quá trình cài snort s g p l i libipq.gz T trang http://www/snort.gz ± snortrules-2. ok.8.8. 10/1/2009 IDS Snort 30 .‡ Download : ± snort-2.x.x.h l i này liên quan n iptables do biên d ch snort ch inline.tar. Khi ó. cài thêm iptables-devel. kh i ng l i d ch v .tar.

#tar ±xvzf snort-2.8.gz #cd snort-2. 10/1/2009 IDS Snort 31 .tar./configure --with-mysql --enable-dynamic-plugin --enable-inline #make #make install S d ng .5./configure --help xem các tùy ch n khác c a snort.8.1.1 #.5.

‡ T o th m c snort trong /etc #mkdir /etc/snort #mkdir /etc/snort/rules ‡ Copy nh ng file c u hình c a snort vào th m c v a t o: #cd /usr/local/snort-2.1/etc # cp * /etc/snort 10/1/2009 IDS Snort 32 .8.5.

tar.8.gz #tar ±xvzf snortrule-2.8.gz #cd rules #cp * /etc/snort/rules/ ‡ T o symbolic link cho snort #ln ±s /usr/local/bin/snort /usr/sbin/snort 10/1/2009 IDS Snort 33 .tar.‡ Gi i nén snortrule-2.

usergroup cho snort: #groupadd snort #useradd ±g snort snort 10/1/2009 IDS Snort 34 .‡ snort ch y nh m t d ch v chúng ta c n user.

‡ T o và set quy n ch nhân. #mkdir/var/log/snort #chown ±R snort:snort /var/log/snort #chown 664 /var/log/snort 10/1/2009 IDS Snort 35 . quy n th c thi c a snort cho file log.

var RULE_PATH /etc/snort/rules ây là th m c ch a t p lu t. password = long dbname=snort host=localhost 10/1/2009 IDS Snort 36 . user=snort..conf Tìm n dòng: var RULE_PATH .#vim /etc/snort/snort. mysql. Ch ra output database ± database l u tr nh ng log output database: log./rules s a l i thành.

sysconfig /etc/sysconfig/snort # chmod 755 /etc/init.1/rpm/ # cp snortd /etc/init.4.8.#cd /usr/local/snort-2.d/snortd # chkconfig snortd on # chkconfig --add /etc/init.d/ # cp snort.d/snortd # chkconfig snortd on 10/1/2009 IDS Snort 37 .

>use mysql. >flush privileges. >flush privileges. >CREATE USER µsnort¶@µ localhost¶ IDENTIFIED BY µlong¶.#mysql ±u root >set password µroot¶@µ localhost¶ = password( µ241288¶). 10/1/2009 IDS Snort 38 .

1/schemas/ # mysql -u root -p < create_mysql snort Test: #mysql ±u root ±p >use snort. >show tables.* to snort@localhost. DELETE. SELECT. UPDATE ON snort. # cd /usr/local/snort-2.8. 10/1/2009 IDS Snort 39 .> create database snort. INSERT. > GRANT CREATE.5.

chúng ta ch c n # pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman ‡ Cài addob: # wget http://nchc.‡ Do web sevrer và php ã cài thêm pear cho php c cài t s n.tgz # cp adodb508a.sourceforge.net/sourceforge/ adodb/adodb508a.tgz /var/www/html/ # cd /var/www/html/ # tar -xvzf adodb508a.tgz 10/1/2009 IDS Snort 40 .dl.

2.php.2.gz /var/www/html/ # cd /var/www/html/ #tar -xzvf base-1.tar.tar.net/sourceforge/ secureideas/base-1.4.4.2.dl.tar.gz # cp base-1.dist base_conf.# wget http://nchc.4.gz # cp base_conf.sourceforge.php 10/1/2009 IDS Snort 41 .

$alert_host = 'localhost'. $alert_user = 'snort'.#vim base_conf. 10/1/2009 IDS Snort 42 .php $DBlib_path = '/var/www/html/adodb5'. $alert_port = ''. $alert_password = µlong'. $DBtype = 'mysql'. $alert_dbname = 'snort'.

0. Nh là : Database Name.1/base-1.‡ http://127.0. Database User.2 ‡ Ch ng d n n th vi n adodb ‡ Khai báo các giá tr cho co s d li u l u file log. ‡ T o BASE AG (t o c s d li u cho BASE) 10/1/2009 IDS Snort 43 . Database Password là username và password truy c p c s d li u.4. Database Host.

10/1/2009 IDS Snort 44 .

10/1/2009 IDS Snort 45 .

10/1/2009 IDS Snort 46 .

10/1/2009 IDS Snort 47 .

10/1/2009 IDS Snort 48 .

‡ #snort ±A : Cài t ch c nh báo (altertmode). ‡ Dùng mode console in ra màn hình và ghi các file log. full. ‡ Fast mode dùng trong ch t c ng truy n cao. console. ‡ Có nhi u mode h tr nh : fast. test or none. 10/1/2009 IDS Snort 49 .

‡ #snort ±v : b t ch sniffer. 10/1/2009 IDS Snort 50 .TCP/UDP/ICMP). In toàn b gói d li u b t c trên console (hi n th các header IP. ‡ #snort ±d: hi n th d li u layer Application ‡ #snort ±e: hi n th thông tin v header layer 2. ±vde cung c p nhi u thông tin nh t. Có a ch MAC và a ch IP. Card m ng ph i ch promiscuous mode . ‡ #snort ±vde: các chu i th p l c phân hi n th nhi u d li u h n.

‡ L u thông tin xu ng file: ± snort ±dev ±l [filename] ‡ L u thông tin ‡ c ng d ng binary: ± snort ±l [filename] -b c thông tin t file binary: ± snort ±dv ±r [filename] ± snort ±dv ±r [filename] icmp .

Quá trình l u tr theo ki u phân c p. ‡ #snort ±b: Log gói tin d ng tcpdump.‡ #snort ±l /var/log/Snort : ch nh th m c l u file log. v i tên file c t o ra t giao th c và s c ng. ‡ Snort l u các gói tin thành các file ASCII. M i m t a ch s có m t th m c và nh ng gì liên quan n a ch ó s c l u trong ây. Ghi log r t nhanh 10/1/2009 IDS Snort 52 .

Ch nh interface nào Snort s l ng nghe. ‡ #snort ±T : Ki m tra và báo cáo v c u hình hi n t i c a snort.ch nh file c u nào mu n s d ng. 10/1/2009 IDS Snort 53 . ‡ #snort ±D :Ch y Snort ch background. ‡ #snort ±s :G i alert message n syslog. ‡ #snort ±y : Thêm n m và ngày gi vào thông i p c nh báo và file log. ‡ #snort ±I :Interface.‡ #snort ±c :Config-file .

‡ Nh n gói và x lý nó tr c khi rule áp d ng lên gói (input plug_in) ‡ Cú pháp: preprocessor <preprocessor_name>[: <configuration_options>] ‡ VD: preprocessor frag2 preprocessor stream4: detect_scans .

user=rr password=boota \ dbname=snort host=localhost .‡ C u hình: output <output_module_name>[: <configuration_options>] ‡ VD : output database: alert. mysql.

‡ Các lu t th ng c l u tr trong file snort.conf. ‡ M t rule có th phát hi n nhi u lo i xâm nh p. 10/1/2009 IDS Snort 56 .‡ Snort d a vào các t p lu t phát hi n t n công. ‡ M i lu t c vi t trên m t dòng. Có th s d ng nhi u file b ng cách thêm ng d n n các file lu t này vào file c u hình chính.

‡ G m 2 ph n rule header. rule option. Rule Header 10/1/2009 IDS Snort Rule Option 57 . Tiêu chu n c a vi c so sánh lu t trên m t gói tin. Và thông tin thông tin v ph n nào c a gói tin c s d ng t o ra c nh báo. ‡ Rule header : ch a thông tin v hành ng mà lu t s th c hi n. ‡ Rule option: ch a thông i p c nh báo.

option2: <value2>.) L u ý : d u ³\´ ây ngh a là xu ng hàng.«.action protocol address port \ direction address port \ (option1 : <value1> . 10/1/2009 IDS Snort 58 .. M i lu t nên vi t trong m t dòng.

Action Protocol Address Port Direction Address Port ‡ Action : các nh ki u hành ng khi gói tin th a các i u ki n. n u cài snort ch inline có th ch n drop iptables h y gói d li u. 10/1/2009 IDS Snort 59 . Th ng là t o c nh báo và ghi log (alert. log).

ICMP.‡ Protocol : snort có th phân tích c giao th c bao g m : TCP. ‡ Address : a ch ngu n. ‡ Port: ch dùng trong giao th c TCP. UDP xác nh c ng ng n và ích c a m t gói tin mà lu t c áp d ng.< > ). <-. nhi u host ho c a ch m ng. 10/1/2009 IDS Snort 60 . UDP. ích. Address có th c a m t host.IP. ‡ Direction: xác nh a ch và c ng c a ngu n và ích n ( -> .

¶ ‡ M t action ch c th c hi n khi t t c option u th a. ‡ Các tham s phân bi t nhau µ:¶ ‡ N u có nhi u option chúng s AND l i v i nhau.‡ Theo sau rule header. c t trong µ( )¶. 10/1/2009 IDS Snort 61 . các option ng n cách nhau µ. ‡ M t option bao g m t khóa và tham s .

‡ classtypes: <name>. ± Description : mô t ng n v ki u phân lo i. ± Priority : th t u tiên m c nh cho s phân lo i.priority ± Name là tên c s d ng phân lo i. có th thay i c b ng t khóa priority trong Rule Option. 10/1/2009 IDS Snort 62 . Tên cs d ng v i t khóa classtype trong vi t lu t.config config classification: name. phân lo i lu t cho m t ki u t n công c th . K t h p v i file /etc/snort/classification.description.

‡ msg: <message>.‡ ack: <number> . Ch có ngh a khi c ack trong TCP header c b t. Tìm ra ch ký (signature) trong header c a gói d li u. 10/1/2009 IDS Snort 63 . Thông i p trong ³´. or content: <hex data >. ‡ content: < straight text>. ghi thêm chu i ký t vào log và c nh báo. th ng c dùng bi t có ang b quét c ng hay không.

‡ offset: < value>. tìm chi u dài c a m t gói tin. ‡ dsize: [<|>|=] < number>. ‡ depth: < value>. dùng v i content cho bi t b t u tìm ki m t âu. (các t n công buffer overflows) 10/1/2009 IDS Snort 64 . dùng v i content xác nh v trí k t thúc c a o n d li u c n so sánh v i v trí ban u.

Xem file ính kèm bi t các tùy ch n khác. 10/1/2009 IDS Snort 65 .‡ rev: < revision integer>. t khóa priority gán u tiên cho m t lu t. ‡ nocase: dùng k t h p v i content. cho bi t s phiên b n c a snort. ‡ priority: < value>. tìm n i dung mà không phân bi t hoa th ng.

có th t o ra nhi u lu t s d ng các bi n ã nh ngh a trong file này. ‡ Có th nh ngh a file .conf dùng include ch n file này.‡ Lu t c t cu i file snort.rules ‡ Có r t nhi u lu t ã c nh ngh a s n ch a trong th m c /etc/snort/rules.conf.rules. # include $RULE_PATH/web-attacks. 10/1/2009 IDS Snort 66 . Trong file snort.

t i t t c các a ch trong m ng ích và t t c các c ng ích. Giao th c s d ng là tcp.) b t các gói d li u n t a ch ngu n thu c m ng 192. 10/1/2009 IDS Snort 67 .1.‡ alert tcp192.0 /24và c ng ngu n 23.0/24 23-> any any (content: ³confidential´. Tìm signature trong header c a gói d li u có n i dung ³confidential´.168.168.1. msg: ³Detect confidential´.

g i t i c ng 80 b ng giao th c tcp.0/24 80 \ (flags: A. 10/1/2009 IDS Snort 68 . ack: 0.1. V i gói d li u g i i có tr ng ack = 0.168. T khóa flags c s d ng tìm c c thi t l p trong header TCP c a gói tin. msg: ³TCP ping detected´.‡ alert tcp any any -> 192.) Phát hi n ai ó s d ng Nmap quét c ng.

0/24 6838 (msg: ³Dos´.168.1.Detection of a Denial of Service Attack.0/24 6838 (msg : ³Dos´.) 10/1/2009 IDS Snort 69 .classtype: denial-ofservice.1.2 ‡ alert udp any any -> 192.‡ config classification: denial-of-service.content: ³server´ .priority: 1.classtype: denial-ofservice.168.) ‡ alert udp any any -> 192.content: ³server´.

msg: ³HTTP matched´.168.‡ alert tcp 192. offset: 4. depth: 40. 10/1/2009 IDS Snort 70 .) Tìm t HTTP trong header TCP c a gói d li u n t v trí th 4 n v trí 40.0/24 any -> any any (content: ³HTTP´. Th a thì xu t thông báo HTTP matched.1.

‡ Smurf attack ‡ Jolt attack. 10/1/2009 IDS Snort 71 . ‡ Teardrop attack.

Alert icmp $EXTERNAL_NET any -> 192. icmp_seq:0. sid:1000010.129 any (msg: ´Demo smurf attack´.itype:0.77. icmp_id:0.) .dsize>32.168.

77.sid:268. dsize:408.rev:4. fragbits:M.alert ip $EXTERNAL_NET any -> 192. ) .129 any (msg:³Demo DOS Jolt attack".168.

rev:6.129 any (msg:³Demo DOS Teardrop attack". fragbits:M. id:242.168.sid:270.77.) .‡ alert udp $EXTERNAL_NET any -> 192.

forum.1IntrusionDetectionSecondEdition snort.com 10/1/2009 IDS Snort 75 .org securityfocus.‡ ‡ ‡ ‡ ‡ Managing security with Sornt and IDS tool Snort Cookbook (2005) Snort2.

Sign up to vote on this title
UsefulNot useful