LOGO
Firewalls
Tìm hi u h th ng phát hi n xâm nh p Snort và gi i pháp ể ệ ố ệ ậ ả
k t h p Snort v i Iptable ế ợ ớ
Giáo viên h ướ ng d n: Đinh Ti n Thành ẫ ế
Sinh viên th c hi n: Tr n Xuân C ự ệ ầ ươ ng Nguy n Ng c Ánh ễ ọ
Nguy n Hi n H i Bùi Văn T ễ ể ả ươ i
Lê Kh c Giang Tr ắ ươ ng Văn Tr ườ ng Ngô Văn Hùng D ươ ng Trung Kiên
Trang 2
Néi Dung
1.T ng quan v IDS/IPS ổ ề 1.T ng quan v IDS/IPS ổ ề
2.Nghiên c u ng d ng SNORT trong IDS/IPS ứ ứ ụ
3.Cài đ t và c u hình Snort trên n n CentOS ặ ấ ề
K t h p SNORT v i IPTABLES ế ợ ớ
2
Trang 31.T ng quan v IDS/IPS ổ ề
1.1 Đ nh nghĩaị
• Là h th ng có nhi m v theo dõi, phát hi n và có th ngăn c n s xâm ệ ố ệ ụ ệ ể ả ự
nh p, cũng nh các hành vi trái phépậ ư
• H th ng IDS thu th p thông tin t nhi u ngu n trong h th ng r i ti n ệ ố ậ ừ ề ồ ệ ố ồ ế hành phân tích
1.2 Các thành ph n và ch c năng c a IDS/IPSầ ứ ủ
Trang 4T ng quan v IDS/IPS ổ ề
4
1.3 Phân lo i IDS/IPSạ
1.3.1 Network Based IDS (NIDS)
Trang 51.3.2 Host Based IDS (HIDS)
Trang 6T ng quan v IDS/IPS ổ ề
6
1.4 C ch ho t đ ng c a h th ng IDS / IPSơ ế ạ ộ ủ ệ ố
1.4.1 Phát hi n s l m d ngệ ự ạ ụ
H th ng s phát hi n b ng cách tìm ki m các hành đ ng tệ ố ẽ ệ ằ ế ộ ương ng v i các ứ ớ
k thu t đã bi t đ n ho c đi m d b t n công c a h th ngỹ ậ ế ế ặ ể ễ ị ấ ủ ệ ố
1.4.2 Phát hi n s b t thệ ự ấ ường: d a trên vi c đ nh nghĩa và mô t đ c đi m các hành vi có ự ệ ị ả ặ ể
th ch p nh n c a h th ngể ấ ậ ủ ệ ố
• Phát hi n tĩnhệ
• Phát hi n đ ngệ ộ
Trang 71.4.3 So sánh gi a 2 mô hình ữ
Phát hi n s l m d ng và phát hi n ệ ự ạ ụ ệ
S b t th ự ấ ườ ng
Phát hi n s l m d ng ệ ự ạ ụ Phát hi n s b t th ệ ự ấ ườ ng
Bao g m: ồ
•C s d li u các d u hi u t n công ơ ở ữ ệ ấ ệ ấ
•Tìm ki m các so kh p m u đúng ế ớ ẫ
Bao g m: ồ
•C s d li u các hành đ ng thông ơ ở ữ ệ ộ
th ườ ng.
•Tìm ki m đ l ch c a hành đ ng th c t ế ộ ệ ủ ộ ự ế
so v i hành đ ng thông th ớ ộ ườ ng
Hi u qu trong vi c phát hi n các d ng t n ệ ả ệ ệ ạ ấ công đã bi t, hay các bi n th (thay đ i nh ) ế ế ể ổ ỏ
c a các d ng t n công đã bi t Không phát hi n ủ ạ ấ ế ệ
đ ượ c các d ng t n công m i ạ ấ ớ
Hi u qu trong vi c phát hi n các d ng t n ệ ả ệ ệ ạ ấ công m i mà m t h th ng phát hi n s l m ớ ộ ệ ố ệ ự ạ
d ng b qua ụ ỏ
D c u hình h n do đòi h i ít h n v thu ễ ấ ơ ỏ ơ ề
th p d li u, phân tích và c p nh t ậ ữ ệ ậ ậ
Khó c u hình h n vì đ a ra nhi u d li u ấ ơ ư ề ữ ệ
h n, ph i có đ ơ ả ượ c m t khái ni m toàn di n v ộ ệ ệ ề hành vi đã bi t hay hành vi đ ế ượ c mong đ i c a ợ ủ
h th ng ệ ố
Đ a ra k t lu n d a vào phép so kh p m u ư ế ậ ự ớ ẫ
(pattern matching).
Đ a ra k t qu d a vào t ư ế ả ự ươ ng quan b ng ằ
th ng kê gi a hành vi th c t và hành vi đ ố ữ ự ế ượ c mong đ i c a h th ng (hay chính là d a vào ợ ủ ệ ố ự
đ l ch gi a thông tin th c t và ng ộ ệ ữ ự ế ưỡ ng cho phép).
Có th kích ho t m t thông đi p c nh báo ể ạ ộ ệ ả
nh m t d u hi u ch c ch n, ho c cung c p ờ ộ ấ ệ ắ ắ ặ ấ
d li u h tr cho các d u hi u khác ữ ệ ỗ ợ ấ ệ
Có th h tr vi c t sinh thông tin h ể ỗ ợ ệ ự ệ
th ng m t cách t đ ng nh ng c n có th i gian ố ộ ự ộ ư ầ ờ
và d li u thu th p đ ữ ệ ậ ượ c ph i rõ ràng ả
Trang 81.5 M t s s n ph m IDS/IPSộ ố ả ẩ
• Cisco IDS-4235: là h th ng NIDS có kh năng theo dõi toàn b l u thông m ng và đ i ệ ố ả ộ ư ạ ố sánh t ng gói tin đ phát hi n các d u hi u xâm nh pừ ể ệ ấ ệ ậ
• ISS Proventia A201: là s n ph m c a Internet Security Systems Nó không ch là ph n ả ẩ ủ ỉ ầ
c ng hay ph n m m mà là c h th ng các thi t b đứ ầ ề ả ệ ố ế ị ược tri n khai phân tán trong m ngể ạ
• Intrusion Protection Appliance: l u tr c u hình m ng, các d li u đ i sánh Nó là m tư ữ ấ ạ ữ ệ ố ộ phiên b n Linux v i các driver thi t b m ng đả ớ ế ị ạ ược xây d ng t i uự ố ư
• Proventia Network Agent: đóng vai trò nh b c m bi n Sensor B trí t i v trí nh y c mư ộ ả ế ố ạ ị ạ ả
• SiteProtector: là trung tâm đi u khi n h th ng proventiaề ể ệ ố
• NFR NID-310: NFR là s n ph m c a NFR Security G m nhi u b c m bi n thích ng ả ẩ ủ ồ ề ộ ả ế ứ
v i nhi u m ng khác nhauớ ề ạ
• SNORT: 1.6 So sánh gi a IDS và IPSữ
Trang 92 NGHIÊN C U NG D NG SNORT TRONG Ứ Ứ Ụ
IDS/IPS
2.1 Gi i thi u v Snort ớ ệ ề
2.2 Ki n trúc c a Snort ế ủ
2.3 B lu t c a Snort ộ ậ ủ
2.4 Ch đ ngăn ch n c a Snort: Snort - Inline ế ộ ặ ủ
Trang 102.1 Gi i thi u v Snortớ ệ ề
• Snort là m t NIDS độ ược Martin Roesh phát tri n dể ưới mô hình mã ngu n mồ ở
• Nhi u tính năng tuy t v i phát tri n theo ki u moduleề ệ ờ ể ể
• C s d li u lu t lên đ n 2930 lu tơ ở ữ ệ ậ ế ậ
• Snort h tr ho t đ ng trên các giao th c: Ethernet, Token Ring, FDDI, Cisco HDLCỗ ợ ạ ộ ứ
2.2 Ki n trúc c a m t Snortế ủ ộ
• Modun gi i mã gói tin (Packet Decoder)ả
• Modun ti n x lý (Preprocessors)ề ử
• Modun phát hi n (Detection Eng)ệ
• Modun log và c nh báo (Logging and Alerting System)ả
• Modun k t xu t thông tin (Output module)ế ấ
Trang 112.2.1 Modun gi i mã gói tinả
Snort s d ng th vi n pcap đ b t m i gói tin trên m ng l u thông qua h th ng m t gói tinử ụ ư ệ ể ắ ọ ạ ư ệ ố ộ sau khi gi i mã s đả ẽ ược đ a ti p vào modun ti n x lýư ế ề ử
2.2.2 Modun ti n x lýề ử
• Là modun r t quan tr ng đ chu n b gói d li u đ a vào cho modun phát hi n phân tíchấ ọ ể ẩ ị ữ ệ ư ệ
• 3 nhi m v chính: ệ ụ
• K t h p các gói tin l i: thông tin truy n đi không đóng gói toàn b vào 1 gói tin Snortế ợ ạ ề ộ sau khi nh n đậ ược ph i th c hi n ghép n i đ có đả ự ệ ố ể ược d li u nguyên d ngữ ệ ạ
• Gi i mã chu n hóa giao th c: công vi c phát hi n xâm nh p d a trên d u hi u nh n ả ẩ ứ ệ ệ ậ ự ấ ệ ậ
d ng nhi u khi b th t b i khi ki m tra các giao th c có d li u có th đạ ề ị ấ ạ ể ứ ữ ệ ể ược th hi n ể ệ
dưới nhi u d ng khác nhauề ạ
• Phát hi n các xâm nh p b t thệ ậ ấ ường: đ i phó v i các xâm nh p không th ho c khó ố ớ ậ ể ặ Phát hi n b ng lu t thông thệ ằ ậ ường
2.2.3 Modun phát hi n: ệ
• phát hi n các d u hi u xâm nh p Nó s d ng các lu t đệ ấ ệ ậ ử ụ ậ ược đ nh nghĩa trị ước đ so sánh v iể ớ
d li u thu th p đữ ệ ậ ược
Trang 122.2.4: Modun log và c nh báo: ả
• Tùy thu c vào modun phát hi n có nh n d ng độ ệ ậ ạ ược hay không mà gói tin có th b ể ị ghi vào log ho c đ a ra c nh báoặ ư ả
2.2.5: Modun k t xu t thông tinế ấ
• Th c hi n các thao tác khác nhau tùy thu c vào vi c b n mu n l u k t qu k t xu tự ệ ộ ệ ạ ố ư ế ả ế ấ
ra nh th nào Nó có th th c hi n nhi u công vi c:ư ế ể ự ệ ề ệ
•Ghi log file
•Ghi syslog: là chu n l u tr các file logẩ ư ữ
•Ghi c nh báo vào c s d li uả ơ ở ữ ệ
•T o file log d ng xmlạ ạ
•C u hình l i Router, Firewallấ ạ
•G i các c nh báo đử ả ược gói trong các gói tin s d ng giao th c SNMPử ụ ứ
•G i các thông đi p SMBử ệ
Trang 132.3 B lu t c a Snortộ ậ ủ
2.3.1 Gi i thi uớ ệ
• Thông thường các t n công hay xâm nh p đ u đ l i d u hi u riêng Các thông tin ấ ậ ề ể ạ ấ ệ này đượ ử ục s d ng đ t o nên các lu t c a Snortể ạ ậ ủ
• Các lu t có th đậ ể ược áp d ng cho t t c các ph n khác nhau c a gói tinụ ấ ả ầ ủ
• M t lu t có th độ ậ ể ượ ử ục s d ng đ t o nên m t thông đi p c nh báo, log m t thông ể ạ ộ ệ ả ộ
đi p hay có th b qua m t gói tinệ ể ỏ ộ
2.3.2 C u trúc lu t c a Snortấ ậ ủ
Trang 142.3.2.1 Ph n tiêu đ :ầ ề
• Ch a thông tin v hành đ ng mà lu t đó s th c hi nứ ề ộ ậ ẽ ự ệ
• C u trúc chung c a ph n header m t lu t c a Snortấ ủ ầ ộ ậ ủ
• Header c a m t lu t bao g m các ph n: ủ ộ ậ ồ ầ
• Hành đ ng c a lu t (Rule Action): ch ra các hành đ ng mà đi u ki n c a lu tộ ủ ậ ỉ ộ ề ệ ủ ậ
được th a mãn M t hành đ ng đỏ ộ ộ ược th c hi n khi t t c các đi u ki n phù h pự ệ ấ ả ề ệ ợ
• Pass: hành đ ng này hộ ướng d n snort b qua gói tin nàyẫ ỏ
• Log: có th log gói tin vào file hay c s d li uể ơ ở ữ ệ
• Alert: g i thông đi p c nh báo khi có d u hi u xâm nh p ử ệ ả ấ ệ ậ
• Activate: t o c nh báo và kích ho t m t lu t khác ki m tra thêm các đi u ki nạ ả ạ ộ ậ ể ề ệ
• Dynamic: đây là lu t đậ ược g i b i các lu t khác có hành đ ng là Activateọ ở ậ ộ
• Protocols: Ch ra lo i gói tin mà lu t s áp d ng ỉ ạ ậ ẽ ụ
• IP
• ICMP
• TCP/UDP
Trang 15NGHIÊN C U NG D NG SNORT Ứ Ứ Ụ
TRONG IDS/IPS
2.3.2.1 Ph n tiêu đầ ề
• Address: có đ a ch ngu n và đ a ch đích Đ a ch có th là 1 đ a ch IP đ n ho cị ỉ ồ ị ỉ ị ỉ ể ị ỉ ơ ặ
đ a ch c a m t m ng Ta dùng t any đ áp lu t cho t t c các đ a chị ỉ ủ ộ ạ ừ ể ậ ấ ả ị ỉ
alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;)
• Ngăn ch n đ a ch hay lo i tr đ a ch : s d ng d u (!) trặ ị ỉ ạ ừ ị ỉ ử ụ ấ ở ướ ẽc s ch cho Snortỉ
không ki m tra gói tin đ n ho c đi t đ a ch đóể ế ặ ừ ị ỉ
TTL=100”; ttl: 100;)
• Danh sách đ a chị ỉ
“Ping with TTL=100”; ttl: 100;)
• C ng (Port number): áp d ng lu t cho gói tin đ n ho c đi t 1 c ng hay ph m viổ ụ ậ ế ặ ừ ổ ạ
c ngổ
alert tcp 192.168.2.0/24 23 -> any any (content: “confidential”;
msg: ”Detected confidential”;)
• Dãy c ng hay ph m vi c ngổ ạ ổ
Trang 16NGHIÊN C U NG D NG SNORT Ứ Ứ Ụ
TRONG IDS/IPS
16
2.3.2.2 Các tùy ch n: n m ngay sau ph n Rule Header đọ ằ ầ ược bao b c trong d u ngo cọ ấ ặ
đ n N u có nhi u option thì phân cách nhau b ng d u “,” và các tùy ch n này ph i ơ ế ề ằ ấ ọ ả
đ ng th i th a mãnồ ờ ỏ
• T khóa ack: trong TCP header thì trừ ường ack dài 32bit ch ra s th t ti p theo c a gói tin ỉ ố ứ ự ế ủ
alert tcp any any -> 192.168.1.0/24 any (flags: A; ack: 0; msg: “TCP ping detected”)
• T khóa classtype: file classification.conf bao g mtrong file snort.conf M i dòng có cú pháp:ừ ồ ỗ
config classification: name, description, priority
• name: dùng đ phân lo i, để ạ ược dùng v i t khóa classtype trong các lu tớ ừ ậ
• description: mô t v lo i l p nàyả ề ạ ớ
• priority: ch đ u tiên m c đ nh c a l p nàyỉ ộ ư ặ ị ủ ớ
config classification: DoS , Denial of Service Attack, 2
• T khóa contents: kh năng đ c t c a snort là tìm m t m u d li u bên trong M u này có thừ ả ặ ả ủ ộ ẫ ữ ệ ẫ ể
Dướ ại d ng chu i ASCII, ho c chu i nh phânỗ ặ ỗ ị
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “GET”; msg: “GET match”;)
• T khóa dsize: dùng đ đ i sánh chi u dài ph n d li uừ ể ố ề ầ ữ ệ
alert ip any any -> 192.168.1.0/24 any (dsize: > 6000; msg: “Goi tin co kich thuoc lon”;)
Trang 17NGHIÊN C U NG D NG SNORT Ứ Ứ Ụ
TRONG IDS/IPS
2.3.2.2 Các tùy ch nọ
•T khóa flags: phát hi n nh ng bit c flag nào đừ ệ ữ ờ ược b tậ
alert tcp any any -> 192.168.1.0/24 any (flags: SF; msg: “SYNC-FIN packet detected”;)
• T khóa fragbits: ph n IP header c a gói tin ch a 3bit dùng đ ch ng phân m nhừ ầ ủ ứ ể ố ả
• Reserved Bit (RB): dùng đ dành cho tể ương lai
• Don’t Fragment Bit (DF): bit này được thi t l p thì gói tin đó không b phân m nh ế ậ ị ả
• More Fragments Bit (MF): bit này được thi t l p thì các ph n khác c a gói tin đangế ậ ầ ủ
trên đường đi mà ch a t i đích N u bit này không đư ớ ế ược thi t l p thì có nghĩa đây là ph n cu iế ậ ầ ố cùng c a gói tin(gói tin duy nh t)ủ ấ
alert icmp any any -> 192.168.1.0/24 any (fragbits: D; msg: “Dont Fragment bit set”;)
Trang 182.4 Ch đ ngăn ch n c a Snort: Snort – Inlineế ộ ặ ủ
2.4.1 Tích h p kh năng ngăn ch n vào Snort: ý tợ ả ặ ưởng là k t h p kh năng ngăn ch nế ợ ả ặ
c a Iptables vào trong Snort Đi u này th c hi n b ng cách thay đ i modun phát hi n và x lýủ ề ự ệ ằ ổ ệ ử cho phép Snort tương tác v i Iptable Vi c ch n b t các gói tin th c hi n thông qua Netfilterớ ệ ặ ắ ự ệ 2.4.2 Nh ng b xung cho c u trúc lu t c a Snort h tr Inline modeữ ổ ấ ậ ủ ỗ ợ
• DROP: yêu c u Iptables lo i b gói tin và ghi l i thông tin nh hành đ ng Logầ ạ ỏ ạ ư ộ
• SDROP: tương t DROP nh ng không ghi l i Logự ư ạ
• REJECT: yêu c u Iptable t ch i gói tin Iptables s lo i b gói tin và g i l i m t thông ầ ừ ố ẽ ạ ỏ ử ạ ộ báo cho ngu n g i gó tin đóồ ử
Trình t u tiên c a các lu t: ự ư ủ ậ
• Trong phiên b n g c: ả ố
activation->dynamic-> alert->pass->log
• Trong inline – mode trình u tiên: ư
activation->dynamic->pass->drop->sdrop->reject->alert->log
Trang 193.CÀI Đ T VÀ C U HÌNH SNORT TRÊN N N Ặ Ấ Ề
CENTOS.K T H P SNORT V I IPTABLES Ế Ợ Ớ
M i th y giáo và các b n cùng theo dõi ph n demo ờ ầ ạ ầ