Download as pdf or txt
Download as pdf or txt
You are on page 1of 41

Shared at SinhVienIT.Net Thanks For hocLinux.

Net

M CL C

L I NÓI U

CH ƠNG I : T NG QUAN V IDS/IPS


1.1 Gi i thi u v IDS/IPS
1.1.1 nh ngh a
1.1.2 S khác nhau gi a IDS và IPS
1.2 Phân lo i IDS/IPS & phân tích ưu như c i m
1.2.1 Network based IDS – NIDS
• 1.2.2 Host based IDS – HIDS
• 1.3 Cơ ch ho t ng c a h th ng IDS/IPS
• 1.3.1 Mô hình phát hi n s l m d ng
• 1.3.2 Mô hình phát hi n s b t thư ng
1.3.2.1 Phát hi n t nh
1.3.2.2 Phát hi n ng
1.3.3 So sánh gi a hai mô hình
• 1.4 M t s s n ph m c a IDS/IPS
CH ƠNG II : 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.2.1 Modun gi i mã gói tin
2.2.2 Mô un ti n x lý
2.2.3 Mô un phát hi n
2.2.4 Mô un log và c nh báo
2.2.5 Mô un k t xu t thong tin
2.3 B lu!t c a snort
2.3.1 Gi i thi u
2.3.2 C u trúc lu!t c a Snort
2.3.2.1 Ph"n tiêu
2.3.2.2 Các tùy ch#n

2.4 Ch ng$n ch%n c a Snort : Snort – Inline


Shared at SinhVienIT.Net Thanks For hocLinux.Net

2.4.1 Tích h p kh n$ng ng$n ch%n vào Snort


2.4.2 Nh ng b& sung cho c u trúc lu!t c a Snort h' tr Inline mode
CH ƠNG III : CÀI (T VÀ C)U HÌNH SNORT, TH* NGHI+M KH,
N-NG PH,N NG C.A IDS/IPS
3.1 nh ngh a các bi n
3.2 C u hình mô un ti n x lý
3.3C u hình mô un k t xu t thông tin
TÀI LI+U THAM KH,O
Shared at SinhVienIT.Net Thanks For hocLinux.Net

L I NÓI U

An ninh thông tin nói chung và an ninh m ng nói riêng ang là v n ư c


quan tâm không ch/ 0 Vi t Nam mà trên toàn th gi i. Cùng v i s phát tri n
nhanh chóng c a m ng Internet, vi c m b o an ninh cho các h th ng thông
tin càng tr0 nên c p thi t hơn bao gi h t.
Trong l nh v c an ninh m ng, phát hi n và phòng ch ng t n công xâm nh!p
cho các m ng máy tính là m t tài hay, thu hút ư c s chú ý c a nhi u nhà
nghiên c1u v i nhi u hư ng nghiên c1u khác nhau. Trong xu hư ng ó, 2 án
th c t!p chuyên ngành này chúng em mong mu n có th tìm hi u, nghiên c1u
v phát hi n và phòng ch ng xâm nh!p m ng v i m c ích n3m b3t ư c các
gi i pháp, các k4 thu!t tiên ti n chu n b t t cho hành trang c a mình sau khi
ra trư ng. M%c dù ã c g3ng h t s1c nhưng do ki n th1c và khã n$ng nhìn
nh!n v n còn h n ch nên bài làm không tránh kh5i thi u sót, r t mong ư c
s quan tâm và góp ý thêm c a th"y cô và t t c các b n.
có th hoàn thành ươc 2 án này , chúng em xin g i l i c m ơn sâu s3c
nh t t i th"y Nguy6n ào Trư ng ã nhi t tình hư ng d7n, ch/ b o và cung c p
cho chúng em nhi u ki n th1c r t b& ích trong su t quá trình làm 2 án. Nh s
giúp 8 t!n tâm c a th"y, chúng em m i có th hoàn thành ư c 2 án này.
M t l"n n a xin c m ơn th"y r t nhi u !

CH ƠNG I : T NG QUAN V IDS/IPS

1.1 Gi i thi u v IDS/IPS


1.1.1 nh ngh a
Shared at SinhVienIT.Net Thanks For hocLinux.Net

H th ng phát hi n xâm nh!p (IDS) 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, c9ng như các hành vi khai thác trái phép
tài nguyên c a h th ng ư c b o v mà có th d7n n vi c làm t&n h i n
tính b o m!t, tính toàn v:n và tính s;n sàng c a h th ng.
H th ng IDS s< thu th!p thông tin t= r t nhi u ngu2n trong h th ng ư c
b o v sau ó ti n hành phân tích nh ng thông tin ó theo các cách khác nhau
phát hi n nh ng xâm nh!p trái phép.
Khi m t h th ng IDS có kh n$ng ng$n ch%n các nguy cơ xâm nh!p mà nó
phát hi n ư c thì nó ư c g#i là m t h th ng phòng ch ng xâm nh!p hay IPS.
Hình sau minh ho các v trí thư ng cài %t IDS trong m ng :

Hình : Các v trí %t IDS trong m ng

1.1.2 S khác nhau gi a IDS và IPS


Có th nh!n th y s khác bi t gi a hai khái ni m ngay 0 tên g#i: “phát hi n”
và “ng$n ch%n”. Các h th ng IDS ư c thi t k v i m c ích ch y u là phát
hi n và c nh báo các nguy cơ xâm nh!p i v i m ng máy tính nó ang b o v
trong khi ó, m t h th ng IPS ngoài kh n$ng phát hi n còn có th t hành
ng ch ng l i các nguy cơ theo các quy nh ư c ngư i qu n tr thi t l!p s;n.
Tuy v!y, s khác bi t này trên th c t không th!t s rõ ràng. M t s h th ng
IDS ư c thi t k v i kh n$ng ng$n ch%n như m t ch1c n$ng tùy ch#n. Trong
khi ó m t s h th ng IPS l i không mang "y ch1c n$ng c a m t h th ng
phòng ch ng theo úng ngh a.
M t câu h5i ư c %t ra là l a ch#n gi i pháp nào, IDS hay IPS? Câu tr l i
tùy thu c vào quy mô, tính ch t c a t=ng m ng máy tính c th c9ng như chính
sách an ninh c a nh ng ngư i qu n tr m ng. Trong trư ng h p các m ng có
quy mô nh5, v i m t máy ch an ninh, thì gi i pháp IPS thư ng ư c cân nh3c
Shared at SinhVienIT.Net Thanks For hocLinux.Net

nhi u hơn do tính ch t k t h p gi a phát hi n, c nh báo và ng$n ch%n c a nó.


Tuy nhiên v i các m ng lơn hơn thì ch1c n$ng ng$n ch%n thư ng ư c giao phó
cho m t s n ph m chuyên d ng như m t firewall ch>ng h n. Khi ó, h th ng
c nh báo s< ch/ c"n theo dõi, phát hi n và g i các c nh báo n m t h th ng
ng$n ch%n khác. S phân chia trách nhi m này s< làm cho vi c m b o an ninh
cho m ng tr0 nên linh ng và hi u qu hơn.

1.2 phân lo i IDS/IPS


Cách thông thư ng nh t phân lo i các h th ng IDS (c9ng như IPS) là
d a vào %c i m c a ngu2n d li u thu th!p ư c. Trong trư ng h p này, các
h th ng IDS ư c chia thành các lo i sau:
• Host-based IDS (HIDS): S d ng d li u ki m tra t= m t máy tr m ơn
phát hi n xâm nh!p.
• Network-based IDS (NIDS): S d ng d li u trên toàn b lưu thông
m ng, cùng v i d li u ki m tra t= m t ho%c m t vài máy tr m phát
hi n xâm nh!p.
1.2.1 Network based IDS – NIDS
NIDS thư ng bao g2m có hai thành ph"n logic :
• B c m bi n – Sensor : %t t i m t o n m ng, ki m soát các cu c lưu
thông nghi ng trên o n m ng ó.
• Tr m qu n lý : nh!n các tín hi u c nh báo t= b c m bi n và thông báo
cho m t i u hành viên.

Hình I : Mô hình NIDS


Shared at SinhVienIT.Net Thanks For hocLinux.Net

M t NIDS truy n th ng v i hai b c m bi n trên các o n m ng khác nhau


cùng giao ti p v i m t tr m ki m soát.
u i m
• Chi phí th p : Do ch/ c"n cài %t NIDS 0 nh ng v trí tr#ng y u là có th
giám sát lưu lư ng toàn m ng nên h th ng không c"n ph i n p các ph"n
m m và qu n lý trên các máy toàn m ng.
• Phát hi n ư c các cu c t n công mà HIDS b5 qua: Khác v i HIDS,
NIDS ki m tra header c a t t c các gói tin vì th nó không b5 sót các
d u hi u xu t phát t= ây. Ví d : nhi u cu c t n công DoS, TearDrop
(phân nh5) ch/ b phát hi n khi xem header c a các gói tin lưu chuy n
trên m ng.
• Khó xoá b5 d u v t (evidence): Các thông tin lưu trong log file có th b
k? t nh!p s a &i che d u các ho t ng xâm nh!p, trong tình hu ng
này HIDS khó có thông tin ho t ng. NIDS s d ng lưu thông
hi n hành trên m ng phát hi n xâm nh!p. Vì th , k? t nh!p không
th xoá b5 ư c các d u v t t n công. Các thông tin b3t ư c không ch/
ch1a cách th1c t n công mà c thông tin h' tr cho vi c xác minh và
bu c t i k? t nh!p.
• Phát hi n và i phó k p th i : NIDS phát hi n các cu c t n công ngay
khi x y ra, vì th vi c c nh báo và i phó có th th c hi n ư c nhanh
hơn. VD : M t hacker th c hi n t n công DoS d a trên TCP có th b
NIDS phát hi n và ng$n ch%n ngay b@ng vi c g i yêu c"u TCP reset
nh@m ch m d1t cu c t n công trư c khi nó xâm nh!p và phá v8 máy b
h i.
• Có tính c l!p cao: L'i h th ng không có nh hư0ng áng k nào i
v i công vi c c a các máy trên m ng. Chúng ch y trên m t h th ng
chuyên d ng d6 dàng cài %t; ơn thu"n ch/ m0 thi t b ra, th c hi n m t
vài s thay &i c u hình và c3m chúng vào trong m ng t i m t v trí cho
phép nó ki m soát các cu c lưu thông nh y c m.
Nh c i m
• B h n ch v i Switch: Nhi u l i i m c a NIDS không phát huy ư c
trong các m ng chuy n m ch hi n i. Thi t b switch chia m ng thành
nhi u ph"n c l!p vì th NIDS khó thu th!p ư c thông tin trong toàn
m ng. Do ch/ ki m tra m ng trên o n mà nó tr c ti p k t n i t i, nó
không th phát hi n m t cu c t n công x y ra trên các o n m ng khác.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

V n này d7n t i yêu c"u t& ch1c c"n ph i mua m t lư ng l n các b


c m bi n có th bao ph h t toàn m ng gây t n kém v chi phí cài %t.
• H n ch v hi u n$ng: NIDS s< g%p khó kh$n khi ph i x lý t t c các gói
tin trên m ng r ng ho%c có m!t lưu thông cao, d7n n không th phát
hi n các cu c t n công th c hi n vào lúc "cao i m". M t s nhà s n xu t
ã kh3c ph c b@ng cách c1ng hoá hoàn toàn IDS nh@m t$ng cư ng t c
cho nó. Tuy nhiên, do ph i m b o v m%t t c nên m t s gói tin
ư c b5 qua có th gây l' h&ng cho t n công xâm nh!p.
• T$ng thông lư ng m ng: M t h th ng phát hi n xâm nh!p có th c"n
truy n m t dung lư ng d li u l n tr0 v h th ng phân tích trung tâm, có
ngh a là m t gói tin ư c ki m soát s< sinh ra m t lư ng l n t i phân tích.
kh3c ph c ngư i ta thư ng s d ng các ti n trình gi m d li u linh
ho t gi m b t s lư ng các lưu thông ư c truy n t i. H# c9ng thư ng
thêm các chu trình t ra các quy t nh vào các b c m bi n và s d ng
các tr m trung tâm như m t thi t b hi n th tr ng thái ho%c trung tâm
truy n thông hơn là th c hi n các phân tích th c t . i m b t l i là nó s<
cung c p r t ít thông tin liên quan cho các b c m bi n; b t kA b c m
bi n nào s< không bi t ư c vi c m t b c m bi n khác dò ư c m t
cu c t n công. M t h th ng như v!y s< không th dò ư c các cu c t n
công hi p 2ng ho%c ph1c t p.
• M t h th ng NIDS thư ng g%p khó kh$n trong vi c x lý các cu c t n
công trong m t phiên ư c mã hoá. L'i này càng tr0 nên tr"m tr#ng khi
nhi u công ty và t& ch1c ang áp d ng m ng riêng o VPN.
• - M t s h th ng NIDS c9ng g%p khó kh$n khi phát hi n các cu c t n
công m ng t= các gói tin phân m nh. Các gói tin nh d ng sai này có th
làm cho NIDS ho t ng sai và & v8.
• 1.2.2 Host based IDS – HIDS
Host-based IDS tìm ki m d u hi u c a xâm nh!p vào m t host c c b ;
thư ng s d ng các cơ ch ki m tra và phân tích các thông tin ư c logging. Nó
tìm ki m các ho t ng b t thư ng như login, truy nh!p file không thích h p,
bư c leo thang các %c quy n không ư c ch p nh!n.
Ki n trúc IDS này thư ng d a trên các lu!t (rule-based) phân tích các ho t
ng. Ví d %c quy n c a ngư i s d ng c p cao ch/ có th t ư c thông
qua l nh su-select user, như v!y nh ng c g3ng liên t c login vào account
root có th ư c coi là m t cu c t n công.
u i m
Shared at SinhVienIT.Net Thanks For hocLinux.Net

• Xác nh ư c k t qu c a cu c t n công: Do HIDS s d ng d li u log


lưu các s ki n x y ra, nó có th bi t ư c cu c t n công là thành công
hay th t b i v i chính xác cao hơn NIDS. Vì th , HIDS có th b& sung
thông tin ti p theo khi cu c t n công ư c s m phát hi n v i NIDS.
• Giám sát ư c các ho t ng c th c a h th ng: HIDS có th giám sát
các ho t ng mà NIDS không th như: truy nh!p file, thay &i quy n,
các hành ng th c thi, truy nh!p d ch v ư c phân quy n. 2ng th i nó
c9ng giám sát các ho t ng ch/ ư c th c hi n b0i ngư i qu n tr . Vì
th , h th ng host-based IDS có th là m t công c c c m nh phân
tích các cu c t n công có th x y ra do nó thư ng cung c p nhi u thông
tin chi ti t và chính xác hơn m t h network-based IDS.
• Phát hi n các xâm nh!p mà NIDS b5 qua: ch>ng h n k? t nh!p s d ng
bàn phím xâm nh!p vào m t server s< không b NIDS phát hi n.
• Thích nghi t t v i môi trư ng chuy n m ch, mã hoá: Vi c chuy n m ch
và mã hoá th c hi n trên m ng và do HIDS cài %t trên máy nên nó
không b nh hư0ng b0i hai k4 thu!t trên.
• Không yêu c"u thêm ph"n c1ng: ư c cài %t tr c ti p lên h t"ng m ng
có s;n (FTP Server, WebServer) nên HIDS không yêu c"u ph i cài %t
thêm các ph"n c1ng khác.
Nh c i m
• Khó qu n tr : các h th ng host-based yêu c"u ph i ư c cài %t trên t t
c các thi t b %c bi t mà b n mu n b o v . ây là m t kh i lư ng công
vi c l n c u hình, qu n lí, c!p nh!t.
• Thông tin ngu2n không an toàn: m t v n khác k t h p v i các h
th ng host-based là nó hư ng n vi c tin vào nh!t ký m%c nh và n$ng
l c ki m soát c a server. Các thông tin này có th b t n công và t nh!p
d7n n h th ng ho t ông sai, không phát hi n ư c xâm nh!p.
• H th ng host-based tương i 3t : nhi u t& ch1c không có ngu2n tài
chính b o v toàn b các o n m ng c a mình s d ng các h th ng
host-based. Nh ng t& ch1c ó ph i r t th!n tr#ng trong vi c ch#n các h
th ng nào b o v . Nó có th l i các l' h&ng l n trong m1c bao
ph phát hi n xâm nh!p. Ví d như m t k? t n công trên m t h th ng
láng gi ng không ư c b o v có th ánh hơi th y các thông tin xác th c
ho%c các tài li u d6 b xâm ph m khác trên m ng.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

• Chi m tài nguyên h th ng : Do cài %t trên các máy c"n b o v nên


HIDS ph i s d ng các tài nguyên c a h th ng ho t ng như: b vi
x lí, RAM, b nh ngoài.

• 1.3 Cơ ch ho t ng c a h th ng IDS/IPS
Có hai cách ti p c!n cơ b n i v i vi c phát hi n và phòng ch ng xâm
nh!p là :
phát hi n s l m d ng (Misuse Detection Model): H th ng s< phát hi n các
xâm nh!p b@ng cách tìm ki m các hành ng tương 1ng v i các k thu!t xâm
nh!p ã ư c bi t n (d a trên các d u hi u - signatures) ho%c các i m d6 b
t n công c a h th ng.
phát hi n s b t thư ng (Anomaly Detection Model): H th ng s< phát hi n
các xâm nh!p b@ng cách tìm ki m các hành ng khác v i hành vi thông thư ng
c a ngư i dùng hay h th ng.

• 1.3.1 phát hi n s l m d ng
Phát hi n s l m d ng là phát hi n nh ng k? xâm nh!p ang c g3ng t
nh!p vào h th ng mà s d ng m t s k4 thu!t ã bi t. Nó liên quan n vi c
mô t %c i m các cách th1c xâm nh!p vào h th ng ã ư c bi t n, m'i
cách th1c này ư c mô t như m t m7u. H th ng phát hi n s l m d ng ch/
th c hi n ki m soát i v i các m7u ã rõ ràng. M7u có th là m t xâu bit c
nh (ví d như m t virus %c t vi c chèn xâu),…dùng mô t m t t!p hay
m t chu'i các hành ng áng nghi ng .
B ây, ta s d ng thu!t ng k ch b n xâm nh p (intrusion scenario). M t h
th ng phát hi n s l m d ng i n hình s< liên t c so sánh hành ng c a h
th ng hi n t i v i m t t!p các k ch b n xâm nh!p c g3ng dò ra k ch b n
ang ư c ti n hành. H th ng này có th xem xét hành ng hi n t i c a h
th ng ư c b o v trong th i gian th c ho%c có th là các b n ghi ki m tra ư c
ghi l i b0i h i u hành.
Các k4 thu!t phát hi n s l m d ng khác nhau 0 cách th1c mà chúng mô
hình hoá các hành vi ch/ nh m t s xâm nh!p. Các h th ng phát hi n s l m
d ng th h "u tiên s d ng các lu!t (rules) mô t nh ng gì mà các nhà qu n
tr an ninh tìm ki m trong h th ng. M t lư ng l n t!p lu!t ư c tích lu4 d7n
n khó có th hi u và s a &i b0i vì chúng không ư c t o thành t=ng nhóm
m t cách h p lý trong m t k ch b n xâm nh!p.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

gi i quy t khó kh$n này, các h th ng th h th1 hai ưa ra các bi u di6n


k ch b n xen k<, bao g2m các t& ch1c lu!t d a trên mô hình và các bi u di6n v
phép bi n &i tr ng thái. i u này s< mang tính hi u qu hơn i v i ngư i
dùng h th ng c"n n s bi u di6n và hi u rõ ràng v các k ch b n. H th ng
ph i thư ng xuyên duy trì và c!p nh!t ương "u v i nh ng k ch b n xâm
nh!p m i ư c phát hi n.
Do các k ch b n xâm nh!p có th ư c %c t m t cách chính xác, các h
th ng phát hi n s l m d ng s< d a theo ó theo v t hành ng xâm nh!p.
Trong m t chu'i hành ng, h th ng phát hi n có th oán trư c ư c bư c
ti p theo c a hành ng xâm nh!p. B dò tìm phân tích thông tin h th ng
ki m tra bư c ti p theo, và khi c"n s< can thi p làm gi m b0i tác h i có th .

• 1.3.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 a các hành vi có th ch p
nh!n c a h th ng phân bi t chúng v i các hành vi không mong mu n ho%c
b t thư ng, tìm ra các thay &i, các hành vi b t h p pháp.
Như v!y, b phát hi n s không bình thư ng ph i có kh n$ng phân bi t gi a
nh ng hi n tư ng thông thư ng và hi n tư ng b t thư ng.
Ranh gi i gi a d ng th1c ch p nh!n ư c và d ng th1c b t thư ng c a o n
mã và d li u lưu tr ư c nh ngh a rõ ràng (ch/ c"n m t bit khác nhau), còn
ranh gi i gi a hành vi h p l và hành vi b t thý ng thì khó xác nh hơn.
Phát hi n s không bình thư ng ư c chia thành hai lo i t nh và ng

1.3.2.1 Phát hi n t nh
D a trên gi thi t ban "u là ph"n h th ng ư c ki m soát ph i luôn
luôn không &i. B ây, ta ch/ quan tâm n ph"n m m c a vùng h th ng ó
(v i gi s là ph"n c1ng không c"n ph i ki m tra). Ph"n t nh c a m t h th ng
bao g2m 2 ph"n con: mã h th ng và d li u c a ph"n h th ng ó. Hai thông
tin này u ư c bi u di6n dư i d ng m t xâu bit nh phân ho%c m t t!p các
xâu. N u bi u di6n này có s sai khác so v i d ng th1c g c thì ho%c có l'i x y
ra ho%c m t k? xâm nh!p nào ó ã thay &i nó. Lúc này, b phát hi n t nh s<
ư c thông báo ki m tra tính toàn v:n d li u.
C th là: b phát hi n t nh ưa ra m t ho%c m t vài xâu bit c nh nh
ngh a tr ng thái mong mu n c a h th ng. Các xâu này giúp ta thu ư c m t
bi u di6n v tr ng thái ó, có th 0 d ng nén. Sau ó, nó so sánh bi u di6n tr ng
thái thu ư c v i bi u di6n tương t ư c tính toán d a trên tr ng thái hi n t i
Shared at SinhVienIT.Net Thanks For hocLinux.Net

c a cùng xâu bit c nh. B t kA s khác nhau nào u là th hi n l'i như h5ng
ph"n c1ng ho%c có xâm nh!p.
Bi u di6n tr ng thái t nh có th là các xâu bit th c t ư c ch#n nh ngh a
cho tr ng thái h th ng, tuy nhiên i u ó khá t n kém v lưu tr c9ng như v
các phép toán so sánh. Do v n c"n quan tâm là vi c tìm ra ư c s sai khác
c nh báo xâm nh!p ch1 không ph i ch/ ra sai khác 0 âu nên ta có th s
d ng d ng bi u di6n ư c nén gi m chi phí. Nó là giá tr tóm t3t tính ư c t=
m t xâu bit cơ s0. Phép tính toán này ph i m b o sao cho giá tr tính ư c t=
các xâu bit cơ s0 khác nhau là khác nhau. Có th s d ng các thu!t toán
checksums, message-digest (phân lo i thông i p), các hàm b$m.
M t s b phát hi n xâm nh!p k t h p ch%t ch< v i meta-data (d li u mô t
các i tư ng d li u) ho%c thông tin v c u trúc c a i tư ng ư c ki m tra.
Ví d , meta-data cho m t log file bao g2m kích c8 c a nó. N u kích c8 c a log
file t$ng thì có th là m t d u hi u xâm nh!p.

1.3.2.2 Phát hi n ng
Trư c h t ta ưa ra khái ni m hành vi c a h th ng (behavior). Hành vi
c a h th ng ư c nh ngh a là m t chu'i các s ki n phân bi t, ví d như r t
nhi u h th ng phát hi n xâm nh!p s d ng các b n ghi ki m tra (audit record),
sinh ra b0i h i u hành nh ngh a các s ki n liên quan, trong trư ng h p
này ch/ nh ng hành vi mà k t qu c a nó là vi c t o ra các b n ghi ki m tra c a
h i u hành m i ư c xem xét.
Các s ki n có th x y ra theo tr!t t nghiêm ng%t ho%c không và thông tin
ph i ư c tích lu4. Các ng ng ư c nh ngh a phân bi t ranh gi i gi a
vi c s d ng tài nguyên h p lý hay b t thư ng.
N u không ch3c ch3n hành vi là b t thư ng hay không, h th ng có th d a
vào các tham s ư c thi t l!p trong su t quá trình kh0i t o liên quan n hành
vi. Ranh gi i trong trư ng h p này là không rõ ràng do ó có th d7n n nh ng
c nh báo sai.
Cách th1c thông thư ng nh t xác nh ranh gi i là s d ng các phân lo i
th ng kê và các l ch chu n. Khi m t phân lo i ư c thi t l!p, ranh gi i có
th ư c v ch ra nh s d ng m t s l ch chu n. N u hành vi n@m bên ngoài
thì s< c nh báo là có xâm nh!p.
C th là: các h th ng phát hi n ng thư ng t o ra m t profile (d li u) cơ
s0 mô t %c i m các hành vi bình thư ng, ch p nh!n ư c. M t d li u bao
Shared at SinhVienIT.Net Thanks For hocLinux.Net

g2m t!p các o lư ng ư c xem xét v hành vi, m'i i lư ng o lư ng g2m


nhi u chi u:
• Liên quan n các l a ch#n: th i gian $ng nh!p, v trí $ng nh!p,…
• Các tài nguyên ư c s d ng trong c quá trình ho%c trên m t ơn v th i
gian: chi u dài phiên giao d ch, s các thông i p g i ra m ng trong m t
ơn v th i gian,…
• Chu'i bi u di6n các hành ng.
Sau khi kh0i t o d li u cơ s0, quá trình phát hi n xâm nh!p có th ư c b3t
"u. Phát hi n ng lúc này c9ng gi ng như phát hi n t nh 0 ó chúng ki m soát
hành vi b@ng cách so sánh mô t %c i m hi n t i v hành vi v i mô t ban "u
c a hành vi ư c mong i (chính là d li u cơ s0), tìm ra s khác nhau. Khi
h th ng phát hi n xâm nh!p th c hi n, nó xem xét các s ki n liên quan n
th c th ho%c các hành ng là thu c tính c a th c th . Chúng xây d ng thêm
m t d li u hi n t i.
Các h th ng phát hi n xâm nh!p th h trư c ph i ph thu c vào các b n ghi
ki m tra (audit record) b3t gi các s ki n ho%c các hành ng liên quan.
Các h th ng sau này thì ghi l i m t cơ s0 d li u %c t cho phát hi n xâm
nh!p. M t s h th ng ho t ng v i th i gian th c, ho%c g"n th i gian th c,
quan sát tr c ti p s ki n trong khi chúng x y ra hơn là i h i u hành t o ra
b n ghi mô t s ki n.
Khó kh$n chính i v i các h th ng phát hi n ng là chúng ph i xây d ng
các d li u cơ s0 m t cách chính xác, và sau ó nh!n d ng hành vi sai trái nh
các d li u.
Các d li u cơ s0 có th xây d ng nh vi c gi ch y h th ng ho%c quan sát
hành vi ngư i dùng thông thư ng qua m t th i gian dài.

• 1.3.3 So sánh gi a hai mô hình


Phát hi n s l m d ng Phát hi n s b t thư ng
Bao g2m: Bao g2m:
• Cơ s0 d li u các d u hi u t n • Cơ s0 d li u các hành ng
công. thông thư ng.
• Tìm ki m các so kh p m7u • Tìm ki m l ch c a hành
úng. 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 Hi u qu trong vi c phát hi n các
Shared at SinhVienIT.Net Thanks For hocLinux.Net

d ng t n công ã bi t, hay các bi n d ng t n công m i mà m t h th ng


th (thay &i nh5) c a các d ng t n phát hi n s l m d ng b5 qua.
công ã bi t. Không phát hi n ư c
các d ng t n công m i.
D6 c u hình hơn do òi h5i ít hơn Khó c u hình hơn vì ưa ra nhi u
v thu th!p d li u, phân tích và c!p d li u hơn, ph i có ư c m t khái
nh!t 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 ưa ra k t qu d a vào tương
kh p m7u (pattern matching). 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ư8ng cho phép).
Có th kích ho t m t thông i p Có th h' tr vi c t sinh thông
c nh báo nh m t d u hi u ch3c tin h th ng m t cách t ng nhưng
ch3n, ho%c cung c p d li u h' tr c"n có th i gian và d li u thu th!p
cho các d u hi u khác. ư c ph i rõ ràng.
B ng So sánh 2 mô hình phát hi n
có ư c m t h th ng phát hi n xâm nh!p t t nh t ta ti n hành k t h p c
hai phương pháp trên trong cùng m t h th ng. H th ng k t h p này s< cung
c p kh n$ng phát hi n nhi u lo i t n công hơn và hi u qu hơn.
Sơ 2 h th ng k t h p như sau:
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Hình I : H th ng k t h p 2 mô hình phát hi n

• 1.4 M t s s n ph m c a IDS/IPS
Ph"n này gi i thi u m t s s n ph m IDS, IPS thương m i c9ng như mi6n
phí ph& bi n, nh ng s n ph m i n hình trong l nh v c phát hi n và phòng
ch ng xâm nh!p.

Cisco IDS-4235
Cisco IDS (còn có tên là NetRanger) là m t 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.
Cisco IDS là m t gi i pháp riêng bi t, ư c Cisco cung c p 2ng b ph"n
c1ng và ph"n m m trong m t thi t b chuyên d ng.
Gi i pháp k4 thu!t c a Cisco IDS là m t d ng lai gi a gi i mã (decode) và
i sánh (grep). Cisco IDS ho t ng trên m t h th ng Unix ư c t i ưu hóa
v c u hình và có giao di n tương tác CLI (Cisco Command Line Interface)
quen thu c c a Cisco.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

ISS Proventia A201


Proventia A201 là s n ph m c a hãng Internet Security Systems. V m%t b n
ch t, Proventia không ch/ là m t h th ng ph"n m m hay ph"n c1ng mà nó là
m t h th ng các thi t b ư c tri n khai phân tán trong m ng ư c b o v . M t
h th ng Proventia bao g2m các thi t b sau:
• Intrusion Protection Appliance: Là trung tâm c a toàn b h th ng
Proventia. Nó lưu tr các c u hình m ng, các d li u i sánh c9ng như
các quy nh v chính sách c a h th ng. V b n ch t, 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 c9ng như
các gói d ch v ư c t i thi u hóa.
• Proventia Network Agent: óng vai trò như các b c m bi n (sensor). Nó
ư c b trí t i nh ng v trí nh y c m trong m ng nh@m theo dõi toàn b
lưu thông trong m ng và phát hi n nh ng nguy cơ xâm nh!p ti m n.
• SiteProtector: Là trung tâm i u khi n c a h th ng Proventia. ây là nơi
ngư i qu n tr m ng i u khi n toàn b c u hình c9ng như ho t ng c a
h th ng.
V i gi i pháp c a Proventia, các thi t b s< ư c tri n khai sao cho phù h p
v i c u hình c a t=ng m ng c th có th t ư c hi u qu cao nh t.

NFR NID-310
NFR là s n ph m c a NFR Security Inc. C9ng gi ng như Proventia, NFR
NID là m t h th ng hư ng thi t b (appliance-based). i m %c bi t trong ki n
trúc c a NFR NID là h# các b c m bi n có kh n$ng thích 1ng v i r t nhi u
m ng khác nhau t= m ng 10Mbps n các m ng gigabits v i thông lư ng r t
l n.
M t i m %c s3c c a NFR NID là mô hình i u khi n ba l p. Thay vì các
thi t b trong h th ng ư c i u khi n tr c ti p b0i m t giao di n qu n tr
(Administration Interface – AI) riêng bi t, NFR cung c p m t cơ ch i u khi n
t!p trung v i các middle-ware làm nhi m v i u khi n tr c ti p các thi t b .

SNORT
Snort là ph"n m m IDS mã ngu2n m0, ư c phát tri n b0i Martin Roesh.
Snort "u tiên ư c xây d ng trên n n Unix sau ó phát tri n sang các n n t ng
khác. Snort ư c ánh giá là IDS mã ngu2n m0 áng chú ý nh t v i nh ng tính
n$ng r t m nh. Chi ti t v Snort s< ư c trình bày trong ph"n chương II c a
tài .
Shared at SinhVienIT.Net Thanks For hocLinux.Net

CH ƠNG II : NGHIÊN C U NG D NG SNORT TRONG


IDS/IPS
• 2.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ã ngu2n
m0. Tuy Snort mi6n phí nhưng nó l i có r t nhi u tính n$ng tuy t v i mà không
ph i s n ph m thương m i nào c9ng có th có ư c. V i ki n trúc thi t k theo
ki u module, ngư i dùng có th t t$ng cư ng tính n$ng cho h th ng Snort c a
mình b@ng vi c cài %t hay vi t thêm m i các module. Cơ s0 d li u lu!t c a
Snort ã lên t i 2930 lu!t và ư c c!p nh!t thư ng xuyên b0i m t c ng 2ng
ngư i s d ng. Snort có th ch y trên nhi u h th ng n n như Windows, Linux,
OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS.
Bên c nh vi c có th ho t ng như m t 1ng d ng thu b3t gói tin thông
thư ng, Snort còn có th ư c c u hình ch y như m t NIDS. Snort h' tr
kh n$ng ho t ng trên các giao th1c sau: Ethernet, 802.11,Token Ring, FDDI,
Cisco HDLC, SLIP, PPP, và PF c a OpenBSD.

2.2 Ki n trúc c a snort


Snort bao g2m nhi u thành ph"n, v i m'i ph"n có m t ch1c n$ng riêng.
Các ph"n chính ó là:
• Mô un gi i mã gói tin (Packet Decoder)
• Mô un ti n x lý (Preprocessors)
• Mô un phát hi n (Detection Engine)
• Mô un log và c nh báo (Logging and Alerting System)
• Mô un k t xu t thông tin (Output Module)
• Ki n trúc c a Snort ư c mô t trong hình sau:

Shared at SinhVienIT.Net Thanks For hocLinux.Net

Hình IV : Mô hình ki n trúc h th ng Snort

Khi Snort ho t ng nó s< th c hi n vi c l3ng nghe và thu b3t t t c các gói


tin nào di chuy n qua nó. Các gói tin sau khi b b3t ư c ưa vào Mô un Gi i
mã gói tin. Ti p theo gói tin s< ư c ưa vào mô un Ti n x lý, r2i mô un Phát
hi n. T i ây tùy theo vi c có phát hi n ư c xâm nh!p hay không mà gói tin có
th ư c b5 qua lưu thông ti p ho%c ư c ưa vào mô un Log và c nh báo
x lý. Khi các c nh báo ư c xác nh mô un K t xu t thông tin s< th c hi n
vi c ưa c nh báo ra theo úng nh d ng mong mu n. Sau ây ta s< i sâu vào
chi ti t hơn v cơ ch ho t ng và ch1c n$ng c a t=ng thành ph"n.

2.2.1 Modun gi i mã gói tin


Snort s d ng thư vi n pcap b3t m#i gói tin trên m ng lưu thông qua
h th ng. Hình sau mô t vi c m t gói tin Ethernet s< ư c gi i mã th nào:

Hình V: X lý m t gói tin Ethernet


Shared at SinhVienIT.Net Thanks For hocLinux.Net

M t gói tin sau khi ư c gi i mã s< ư c ưa ti p vào mô un ti n x lý.

2.2.2 Mô un ti n x lý
Mô un ti n x lý là m t mô un r t quan tr#ng i v i b t kA m t h th ng
IDS nào có th chu n b gói d li u ưa và cho mô un Phát hi n phân tích.
Ba nhi m v chính c a các mô un lo i này là:
K t h p l i các gói tin: Khi m t lư ng d li u l n ư c g i i, thông tin s<
không óng gói toàn b vào m t gói tin mà ph i th c hi n vi c phân m nh, chia
gói tin ban "u thành nhi u gói tin r2i m i g i i. Khi Snort nh!n ư c các gói
tin này nó ph i th c hi n vi c ghép n i l i có ư c d li u nguyên d ng ban
"u, t= ó m i th c hi n ư c các công vi c x lý ti p. Như ta ã bi t khi m t
phiên làm vi c c a h th ng di6n ra, s< có r t nhi u gói tin u c trao &i trong
phiên ó. M t gói tin riêng l? s< không có tr ng thái và n u công vi c phát hi n
xâm nh!p ch/ d a hoàn toàn vào gói tin ó s< không em l i hi u qu cao.
Module ti n x lý stream giúp Snort có th hi u ư c các phiên làm vi c khác
nhau (nói cách khác em l i tính có tr ng thái cho các gói tin) t= ó giúp t
ư c hi u qu cao hơn trong vi c phát hi n xâm nh!p.
Gi i mã và chu n hóa giao th1c (decode/normalize): 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
th1c có d li u có th ư c th hi n dư i nhi u d ng khác nhau. Ví d : m t web
server có th ch p nh!n nhi u d ng URL như URL ư c vi t dư i d ng mã
hexa/Unicode, URL ch p nh!n c d u \ hay / ho%c nhi u ký t này liên ti p
cùng lúc. Ch>ng h n ta có d u hi u nh!n d ng “scripts/iisadmin”, k? t n công có
th vư t qua ư c b@ng cách tùy bi n các yêu c u g i n web server như sau:
“scripts/./iisadmin”
“scripts/examples/../iisadmin”
“scripts\iisadmin”
“scripts/.\iisadmin”
Ho%c th c hi n vi c mã hóa các chu'i này dư i d ng khác. N u Snort ch/
th c hi n ơn thu"n vi c so sánh d li u v i d u hi u nh!n d ng s< x y ra tình
tr ng b5 sót các hành vi xâm nh!p. Do v!y, m t s mô un ti n x lý c a Snort
ph i có nhi m v gi i mã và ch/nh s a, s3p x p l i các thông tin "u vào này
thông tin khi ưa n mô un phát hi n có th phát hi n ư c mà không b5 sót.
Hi n nay Snort ã h' tr vi c gi i mã và chu n hóa cho các giao th1c: telnet,
http, rpc, arp.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Phát hi n các xâm nh!p b t thư ng (nonrule /anormal): các plugin ti n x lý


d ng này thư ng dùng i phó v i các xâm nh!p không th ho%c r t khó phát
hi n ư c b@ng các lu!t thông thư ng ho%c các d u hi u b t thư ng trong giao
th1c. Các mô un ti n x lý d ng này có th th c hi n vi c phát hi n xâm nh!p
theo b t c1 cách nào mà ta ngh ra t= ó t$ng cư ng thêm tính n$ng cho Snort.
Ví d , m t plugin ti n x lý có nhi m v th ng kê thông lư ng m ng t i th i
i m bình thư ng r2i khi có thông lư ng m ng b t thư ng x y ra nó có th
tính toán, phát hi n và ưa ra c nh báo (phát hi n xâm nh!p theo mô hình th ng
kê). Phiên b n hi n t i c a Snort có i kèm hai plugin giúp phát hi n các xâm
nh!p b t thư ng ó là portscan và bo (backoffice). Portcan dùng ưa ra c nh
báo khi k? t n công th c hi n vi c quét các c&ng c a h th ng tìm l' h&ng.
Bo dùng ưa ra c nh báo khi h th ng ã b nhi6m trojan backoffice và k?
t n công t= xa k t n i t i backoffice th c hi n các l nh t= xa.

2.2.3 Mô un phát hi n
ây là mô un quan tr#ng nh t c a Snort. Nó ch u trách nhi m phát hi n
các d u hi u xâm nh!p. Mô un phát hi 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 t= ó xác nh xem có xâm nh!p x y
ra hay không. R2i ti p theo m i có th th c hi n m t s công vi c như ghi log,
t o thông báo và k t xu t thông tin.
M t v n r t quan tr#ng trong mô un phát hi n là v n th i gian x lý
các gói tin: m t IDS thư ng nh!n ư c r t nhi u gói tin và b n thân nó c9ng có
r t nhi u các lu!t x lý. Có th m t nh ng kho ng th i gian khác nhau cho vi c
x lý các gói tin khác nhau. Và khi thông lư ng m ng quá l n có th x y ra vi c
b5 sót ho%c không ph n h2i ư c úng lúc. Kh n$ng x lý c a mô un phát
hi n d a trên m t s y u t như: s lư ng các lu!t, t c c a h th ng ang
ch y Snort, t i trên m ng. M t s th nghi m cho bi t, phiên b n hi n t i c a
Snort khi ư c t i ưu hóa ch y trên h th ng có nhi u b vi x lý và c u hình
máy tính tương i m nh thì có th ho t ng t t trên c các m ng c8 Giga.
M t mô un phát hi n c9ng có kh n$ng tách các ph"n c a gói tin ra và áp
d ng các lu!t lên t=ng ph"n nào c a gói tin ó. Các ph"n ó có th là:
• IP header
• Header 0 t"ng giao v!n: TCP, UDP
• Header 0 t"ng 1ng d ng: DNS header, HTTP header, FTP header, …
• Ph"n t i c a gói tin (b n c9ng có th áp d ng các lu!t lên các ph"n d
li u ư c truy n i c a gói tin)
Shared at SinhVienIT.Net Thanks For hocLinux.Net

M t v n n a trong Mô un phát hi n ó là vi c x lý th nào khi m t gói


tin b phát hi n b0i nhi u lu!t. Do các lu!t trong Snort c9ng ðý c ðánh th1 t ýu
tiên, nên m t gói tin khi b phát hi n b0i nhi u lu!t khác nhau, c nh báo ðý c
ðýa ra s< là c nh báo 1ng v i lu!t có m1c ýu tiên l n nh t.

2.2.4 Mô un log và c nh báo


Tùy thu c vào vi c mô un Phát hi n có nh!n d ng u c xâm nh!p hay không
mà gói tin có th b ghi log ho%c ưa ra c nh báo. Các file log là các file text d
li u trong ó có th ư c ghi dư i nhi u nh d ng khác nhau ch>ng h n
tcpdump.
2.2.5 Mô un k t xu t thong tin
Mô un này có th th c hi n các thao tác khác nhau tùy theo vi c b n mu n
lưu k t qu xu t ra như th nào. Tùy theo vi c c u hình h th ng mà nó có th
th c hi n các công vi c như là:
• Ghi log file
• Ghi syslog: syslog và m t chu n lưu tr các file log ư c s d ng r t
nhi u trên các h th ng Unix, Linux.
• Ghi c nh báo vào cơ s0 d li u.
• T o file log d ng xml: vi c ghi log file d ng xml r t thu!n ti n cho vi c
trao &i và chia s? d li u.
• C u hình l i Router, firewall.
• G i các c nh báo ư c gói trong gói tin s d ng giao th1c SNMP. Các
gói tin d ng SNMP này s< ư c g i t i m t SNMP server t= ó giúp cho
vi c qu n lý các c nh báo và h th ng IDS m t cách t!p trung và thu!n
ti n hơn.
• G i các thông i p SMB (Server Message Block) t i các máy tính
Windows.
N u không hài lòng v i các cách xu t thông tin như trên, ta có th vi t các
mô un k t xu t thông tin riêng tuA theo m c ích s d ng.

2.3 B lu!t c a snort


2.3.1 Gi i thi u
C9ng gi ng như virus, h"u h t các ho t ng t n công hay xâm nh!p u có
các d u hi u riêng. Các thông tin v các d u hi u này s< ư c s d ng t o
nên các lu!t cho Snort. Thông thư ng, các b7y (honey pots) ư c t o ra tìm
hi u xem các k? t n công làm gì c9ng như các thông tin v công c và công
Shared at SinhVienIT.Net Thanks For hocLinux.Net

ngh chúng s d ng. Và ngư c l i, c9ng có các cơ s0 d li u v các l' h&ng b o


m!t mà nh ng k? t n công mu n khai thác. Các d ng t n công ã bi t này ư c
dùng như các d u hi u phát hi n t n công xâm nh!p. Các d u hi u ó có th
xu t hi n trong ph"n header c a các gói tin ho%c n@m trong ph"n n i dung c a
chúng. H th ng phát hi n c a Snort ho t ng d a trên các lu!t (rules) và các
lu!t này l i ư c d a trên các d u hi u nh!n d ng t n công. Các lu!t có th
ư c áp d ng cho t t c các ph"n khác nhau c a m t gói tin d li u .
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 b5 qua m t gói tin.

2.3.2 C u trúc lu!t c a Snort


Hãy xem xét m t ví d ơn gi n :
alert tcp 192.168.2.0/24 23 -> any any (content:”confidential”; msg: “Detected
confidential”)
Ta th y c u trúc c a m t lu!t có d ng như sau:

Hình VI : C u trúc lu!t c a Snort


Di n gi i:
T t c các Lu!t c a Snort v logic u g2m 2 ph"n: Ph"n header và ph"n
Option.
• Ph"n Header ch1a thông tin v hành ng mà lu!t ó s< th c hi n khi
phát hi n ra có xâm nh!p n@m trong gói tin và nó c9ng ch1a các tiêu
chu n áp d ng lu!t v i gói tin ó.
• Ph"n Option ch1a m t thông i p c nh báo và các thông tin v các ph"n
c a gói tin dùng t o nên c nh báo. Ph"n Option ch1a các tiêu chu n
ph thêm i sánh lu!t v i gói tin. M t lu!t có th phát hi n ư c m t
hay nhi u ho t ng th$m dò hay t n công. Các lu!t thông minh có kh
n$ng áp d ng cho nhi u d u hi u xâm nh!p.
Dư i ây là c u trúc chung c a ph"n Header c a m t lu!t Snort:

Hình VII : Header lu!t c a Snort

• Action: là ph"n qui nh lo i hành ng nào ư c th c thi khi các d u


hi u c a gói tin ư c nh!n d ng chính xác b@ng lu!t ó. Thông thư ng,
Shared at SinhVienIT.Net Thanks For hocLinux.Net

các hành ng t o ra m t c nh báo ho%c log thông i p ho%c kích ho t


m t lu!t khác.
• Protocol: là ph"n qui nh vi c áp d ng lu!t cho các packet ch/ thu c m t
giao th1c c th nào ó. Ví d như IP, TCP, UDP …
• Address: là ph"n a ch/ ngu2n và a ch/ ích. Các a ch/ có th là m t
máy ơn, nhi u máy ho%c c a m t m ng nào ó. Trong hai ph"n a ch/
trên thì m t s< là a ch/ ngu2n, m t s< là a ch/ ích và a ch/ nào
thu c lo i nào s< do ph"n Direction “->” qui nh.
• Port: xác nh các c&ng ngu2n và ích c a m t gói tin mà trên ó lu!t
ư c áp d ng.
• Direction: ph"n này s< ch/ ra âu là a ch/ ngu2n, âu là a ch/ ích.
Ví d :
alert icmp any any -> any any (msg: “Ping with TTL=100”;ttl: 100;)
Ph"n 1ng trư c d u m0 ngo%c là ph"n Header c a lu!t còn ph"n còn l i là
ph"n Option. Chi ti t c a ph"n Header như sau:
• Hành ng c a lu!t 0 ây là “alert” : m t c nh báo s< ư c t o ra n u như
các i u ki n c a gói tin là phù h p v i lu!t(gói tin luôn ư c log l i m'i
khi c nh báo ư c t o ra).
• Protocol c a lu!t 0 ây là ICMP t1c là lu!t ch/ áp d ng cho các gói tin
thu c lo i ICMP. B0i v!y, n u như m t gói tin không thu c lo i ICMP
thì ph"n còn l i c a lu!t s< không c"n i chi u.
• a ch/ ngu2n 0 ây là “any”: t1c là lu!t s< áp d ng cho t t c các gói tin
n t= m#i ngu2n còn c&ng thì c9ng là “any” vì i v i lo i gói tin ICMP
thì c&ng không có ý ngh a. S hi u c&ng ch/ có ý ngh a v i các gói tin
thu c lo i TCP ho%c UDP thôi.
• Còn ph"n Option trong d u óng ngo%c ch/ ra m t c nh báo ch1a dòng
“Ping with TTL=100” s< ư c t o khi tìm th y i u ki n TTL=100. TTL
là Time To Live là m t trư ng trong Header IP.

2.3.2.1 Ph"n tiêu
Như ph"n trên ã trình bày, Header c a lu!t bao g2m nhi u ph"n. Sau
ây, là chi ti t c th c a t=ng ph"n m t.
Hành ng c a lu t (Rule Action)
Là ph"n "u tiên c a lu!t, ch/ ra hành ng nào ư c th c hi n khi mà các
i u ki n c a lu!t ư c thoã mãn. M t hành ng ư c th c hi n khi và ch/ khi
t t c các i u ki n u phù h p. Có 5 hành ng ã ư c nh ngh a nhưng ta
Shared at SinhVienIT.Net Thanks For hocLinux.Net

có th t o ra các hành ng riêng tuA thu c vào yêu c"u c a mình. i v i các
phiên b n trư c c a Snort thì khi nhi u lu!t là phù h p v i m t gói tin nào ó
thì ch/ m t lu!t ư c áp d ng. Sau khi áp d ng lu!t "u tiên thì các lu!t ti p
theo s< không áp d ng cho gói tin y n a. Nhưng i v i các phiên b n sau c a
Snort thì t t c các lu!t s< ư c áp d ng gói tin ó.
• Pass: Hành ng này hư ng d7n Snort b5 qua gói tin này. Hành ng này
óng vai trò quan tr#ng trong vi c t$ng cư ng t c ho t ng c a Snort
khi mà ta không mu n áp d ng các ki m tra trên các gói tin nh t nh. Ví
d ta s d ng các b7y ( %t trên m t máy nào ó) nh các hacker t n
công vào thì ta ph i cho t t c các gói tin i n ư c máy ó. Ho%c là
dùng m t máy quét ki m tra an toàn m ng c a mình thì ta ph i b5
qua t t c các gói tin n t= máy ki m tra ó.
• Log: Hành ng này dùng log gói tin. Có th log vào file hay vào cơ
s0 d li u tuA thu c vào nhu c"u c a mình.
• Alert: G i m t thông i p c nh báo khi d u hi u xâm nh!p ư c phát
hi n. Có nhi u cách g i thông i p như g i ra file ho%c ra m t
Console. T t nhiên là sau khi g i thông i p c nh báo thì gói tin s< ư c
log l i.
• Activate: s d ng t o ra m t 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 c a gói tin.
• Dynamic: ch/ ra ây là lu!t ư c g#i b0i các lu!t khác có hành ng là
Activate.
Các hành ng do ngư i dùng nh ngh a: m t hành ng m i ư c nh
ngh a theo c u trúc sau:
ruletype action_name
{
action definition
}
ruletype là t= khoá.
Hành ng ư c nh ngh a chính xác trong d u ngo%c nh#n: có th là m t
hàm vi t b@ng ngôn ng C ch>ng h n.
Ví d như:
ruletype smb_db_alert
{
type alert
output alert_smb: workstation.list
Shared at SinhVienIT.Net Thanks For hocLinux.Net

output database: log, mysql, user=test password=test


dbname=snort host = localhost
}
ây là hành ng có tên là smb_db_alert dùng g i thông i p c nh báo
dư i d ng c a s& pop-up SMB t i các máy có tên trong danh sách li t kê trong
file workstation.list và t i cơ s0 d li u MySQL tên là snort.

Protocols
Là ph"n th1 hai c a m t lu!t có ch1c n$ng ch/ ra lo i gói tin mà lu!t s< ư c
áp d ng. Hi n t i Snort hi u ư c các protocol sau :
• IP
• ICMP
• TCP
• UDP
N u là IP thì Snort s< ki m tra header c a l p liên k t xác nh lo i gói tin.
N u b t kì giao th1c nào khác ư c s d ng thì Snort s d ng header IP xác
nh lo i protocol. Protocol ch/ óng vai trò trong vi c ch/ rõ tiêu chu n trong
ph"n header c a lu!t. Ph"n option c a lu!t có th có các i u ki n không liên
quan gì n protocol.

Address
Có hai ph"n a ch/ trong m t lu!t c a Snort. Các a ch/ này ư c dùng
ki m tra ngu2n sinh ra và ích n c a gói tin. a ch/ có th là a ch/ c a m t
IP ơn ho%c là a ch/ c a m t m ng. Ta có th dùng t= any áp d ng lu!t cho
t t c các a ch/.
a ch/ ư c vi t ngay theo sau m t d u g ch chéo và s bít trong subnet
mask. Ví d như a ch/ 192.168.2.0/24 th hi n m ng l p C 192.168.2.0 v i 24
bít c a subnet mask. Subnet mask 24 bít chính là 255.255.255.0. Ta bi t r@ng :
• N u subnet mask là 24 bít thì ó là m ng l p C
• N u subnet mask là 16 bít thì ó là m ng l p B
• N u subnet mask là 8 bít thì ó là m ng l p A
• N u subnet mask là 32 bít thì ó là a ch/ IP ơn.
Trong hai a ch/ c a m t lu!t Snort thì có m t a ch/ là a ch/ ngu2n và a
ch/ còn l i là a ch/ ích. Vi c xác nh âu là a ch/ ngu2n, âu là a ch/
ích thì ph thu c vào ph"n hư ng (direction).
Ví d như lu!t :
Shared at SinhVienIT.Net Thanks For hocLinux.Net

alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;)
Lu!t trên s< t o ra m t c nh báo i v i t t c các gói tin t= b t kì ngu2n nào
có TTL = 100 i n web server 192.168.1.10 t i c&ng 80.
Ng n ch n a ch hay lo i tr a ch
Snort cung c p cho ta k thu!t lo i tr= a ch/ b@ng cách s d ng d u ph
nh (d u !). D u ph nh này 1ng trư c a ch/ s< ch/ cho Snort không ki m
tra các gói tin n t= hay i t i a ch/ ó. Ví d , lu!t sau s< áp d ng cho t t c
các gói tin ngo i tr= các gói có ngu2n xu t phát t= m ng l p C 192.168.2.0.
alert icmp ![192.168.2.0/24] any -> any any (msg: “Ping with TTL=100”;
ttl: 100;)
Danh sách a ch
Ta có th nh rõ ra danh sách các a ch/ trong m t lu!t c a Snort. Ví d n u
b n mu n áp d ng lu!t cho t t c các gói tin tr= các gói xu t phát t= hai m ng
l p C 192.168.2.0 và 192.168.8.0 thì lu!t ư c vi t như sau:
alert icmp ![192.168.2.0/24, 192.168.8.0/24] any -> any any (msg: “Ping
with TTL=100”; ttl: 100;)
Hai d u [] ch/ c"n dùng khi có d u ! 1ng trư c.
C ng (Port Number)
S hi u c&ng dùng áp d ng lu!t cho các gói tin n t= ho%c i n m t
c&ng hay m t ph m vi c&ng c th nào ó. Ví d ta có th s d ng s c&ng
ngu2n là 23 áp d ng lu!t cho t t c các gói tin n t= m t server Telnet. T=
any c9ng ư c dùng i di n cho t t c các c&ng. Chú ý là s hi u c&ng ch/
có ý ngh a trong các giao th1c TCP và UDP thôi. N u protocol c a lu!t là IP
hay ICMP thì s hi u c&ng không óng vai trò gì c .
Ví d :
alert tcp 192.168.2.0/24 23 -> any any (content: “confidential”; msg: ”Detected
confidential”;)
S hi u c&ng ch/ h u d ng khi ta mu n áp d ng m t lu!t ch/ cho m t lo i gói
tin d li u c th nào ó. Ví d như là m t lu!t ch ng hack cho web thì ta ch/
c"n s d ng c&ng 80 phát hi n t n công.
Dãy c ng hay ph m vi c ng:
Ta có th áp d ng lu!t cho dãy các c&ng thay vì ch/ cho m t c&ng nào ó.
C&ng b3t "u và c&ng k t thúc phân cách nhau b0i d u hai ch m “:”.
Ví d :
alert udp any 1024:2048 -> any any (msg: “UDP ports”;)
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Ta c9ng có th dùn c&ng theo ki u c!n trên và c!n dư i, t1c là ch/ s d ng


c&ng b3t "u ho%c c&ng k t thúc mà thôi. Ví d như là “1024:” ho%c là “:2048”
D u ph nh c9ng ư c áp d ng trong vi c s d ng c&ng. Ví d sau s< log
t t c các gói tin ngo i tr= các gói tin xu t phát t= c&ng 53.
log udp any !53 -> any any log udp
Sau ây là m t s c&ng thông d ng hay là các c&ng c a các d ch v thông
d ng nh t:
• 20 FTP data
• 21 FTP
• 22 SSH
• 23 Telnet
• 24 SMTP
• 53 DNS Server
• 80 HTTP
• 110 POP3
• 161 SNMP
• 443 HTTPS
• 3360 MySQL

H ng – Direction
Ch/ ra âu là ngu2n âu là ích, có th là -> hay <- ho%c <>. Trư ng h p <>
là khi ta mu n ki m tra c Client và Server.

2.3.2.2 Các tùy ch#n


Ph"n Rule Option n@m ngay sau ph"n Rule Header và ư c bao b#c
trong d u ngo%c ơn. N u có nhi u option thì các option s< ư c phân cách v i
nhau b@ng d u ch m ph y ”,”.N u nhi u option ư c s d ng thì các option này
ph i 2ng th i ư c thoã mãn t1c là theo logic các option này liên k t v i nhau
b@ng AND.
M#i option ư c nh ngh a b@ng các t= khoá. M t s các option còn ch1a
các tham s . Nói chung m t option g2m 2 ph"n: m t t= khoá và m t tham s ,
hai ph"n này phân cách nhau b@ng d u hai ch m. Ví d ã dùng :
msg: “Detected confidented”;
msg là t= khoá còn “Detected confidented” là tham s .
Sau ây là chi ti t m t s các option c a lu!t Snort.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

T khoá ack
Trong header TCP có ch1a trư ng Acknowledgement Number v i dài 32
bit. Trư ng này có ý ngh a là ch/ ra s th1 t ti p theo gói tin TCP c a bên g i
ang ư c ch nh!n. Trư ng này ch/ có ý ngh a khi mà c ACK ư c thi t
l!p.
Các công c như Nmap s d ng %c i m này ping m t máy. Ví d , nó có th
g i m t gói tin TCP t i c&ng 80 v i c ACK ư c b!t và s th1 t là 0. B0i
v!y, bên nh!n s< th y gói tin không h p l và s< g i tr0 l i gói tin RST. Khi mà
Nmap nh!n ư c gói tin RST thì t1c là a ch/ ích ang “s ng”. Phương pháp
này v7n làm vi c t t i v i các máy không tr l i gói tin thu c d ng ping
ICMP ECHO REQUEST.
V!y ki m tra lo i ping TCP này thì ta có th dùng lu!t như sau:
alert tcp any any -> 192.168.1.0/24 any (flags: A; ack: 0; msg: “TCP
ping detected”)

T khoá classtype
Các lu!t có th ư c phân lo i và gán cho m t s ch/ ưu tiên nào ó
nhóm và phân bi t chúng v i nhau. hi u rõ hơn v t= khoá này ta "u tiên
ph i hi u ư c file classification.config ( ư c bao g2m trong file snort.conf s
d ng t= khoá include). M'i dòng trong file classification.config có cú pháp như
sau:
config classification: name, description, priority
trong ó:
• name: là tên dùng phân lo i, tên này s< ư c dùng v i t= khoá
classtype trong các lu!t Snort.
• description: mô t v lo i l p này
• priority: là m t s ch/ ưu tiên m%c nh c a l p này. ưu tiên này có
th ư c i u ch/nh trong t= khoá priority c a ph"n option trong lu!t c a
Snort.
Ví d :
config classification: DoS , Denial of Service Attack, 2
và trong lu!t:
alert udp any any -> 192.168.1.0/24 6838 (msg:”DoS”; content: “server”;
classtype: DoS;)
Shared at SinhVienIT.Net Thanks For hocLinux.Net

alert udp any any -> 192.168.1.0/24 6838 (msg:”DoS”; content: “server”;
classtype: DoS; priority: 1;)
Trong câu l nh th1 2 thì ta ã ghi è lên giá tr priority m%c nh c a l p ã
nh ngh a.

T khoá content
M t %c tính quan tr#ng c a Snort là nó có kh n$ng tìm m t m7u d li u bên
trong m t gói tin. M7u này có th dư i d ng chu'i ASCII ho%c là m t chu'i nh
phân dư i d ng các kí t h 16. Gi ng như virus, các t n công c9ng có các d u
hi u nh!n d ng và t= khoá content này dùng tìm các d u hi u ó bên trong
gói tin. Ví d :
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “GET”; msg:
“GET match”;)
Lu!t trên tìm m7u “GET” trong ph"n d li u c a t t c các gói tin TCP có
ngu2n i t= m ng 192.168.1.0/24 và i n các a ch/ không thu c m ng ó.
T= “GET” này r t hay ư c dùng trong các t n công HTTP.
M t lu!t khác c9ng th c hi n úng nhi m v gi ng như l nh trên nhưng m7u
d li u l i dư i d ng h 16 là:
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “|47 45 54|”;
msg: “GET match”;)
ý r@ng s 47 0 h 16 chính là b@ng kí t ASCII : G và tương t 45 là E và
54 là T. Ta có th dùng c hai d ng trên trong cùng m t lu!t nhưng nh là ph i
d ng th!p l c phân gi a c%p kí t ||.
Tuy nhiên khi s d ng t= khoá content ta c"n nh r@ng:
i sánh n i dung s< ph i x lý tính toán r t l n và ta ph i h t s1c cân nh3c
khi s d ng nhi u lu!t có i sánh n i dung.
Ta có th s d ng nhi u t= khoá content trong cùng m t lu!t tìm nhi u d u
hi u trong cùng m t gói tin.
i sánh n i dung là công vi c r t nh y c m.
Có 3 t= khoá khác hay ư c dùng cùng v i t= khoá content dùng b& sung
thêm các i u ki n tìm ki m là :
• offset: dùng xác nh v trí b3t "u tìm ki m (chu'i ch1a trong t= khoá
content ) là offset tính t= "u ph"n d li u c a gói tin. Ví d sau s< tìm
chu'i “HTTP” b3t "u t= v trí cách "u o n d li u c a gói tin là 4
byte:
Shared at SinhVienIT.Net Thanks For hocLinux.Net

alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; msg:
“HTTP matched”;)
• dept : dùng xác nh v trí mà t= ó Snort s< d=ng vi c tìm ki m.T=
khoá này c9ng thư ng ư c dùng chung v i t= khoá offset v=a nêu trên.
• Ví d :
alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; dept:
40; msg: “HTTP matched”;).
• T= khoá này s< giúp cho vi c tiêu t n th i gian tìm ki m khi mà o n d
li u trong gói tin là khá l n.
• content-list: ư c s d ng cùng v i m t file. Tên file ( ư c ch/ ra trong
ph"n tham s c a t= khoá này) là m t file text ch1a danh sách các chu'i
c"n tìm trong ph"n d li u c a gói tin. M'i chu'i n@m trên m t dòng
riêng bi t. Ví d như file test có d ng như sau:
• “test”
“Snort”
“NIDS”
và ta có lu!t sau:
alert tcp 192.168.1.0/24 any -> any any (content-list: “test”;msg: “This is my
Test”;).
Ta c9ng có th dùng kí t ph nh ! trư c tên file c nh báo i v i các
gói tin không tìm th y m t chu'i nào trong file ó.

T khoá dsize
Dùng i sánh theo chi u dài c a ph"n d li u. R t nhi u t n công s
d ng l'i tràn b m b@ng cách g i các gói tin có kích thư c r t l n. S d ng t=
khoá này, ta có th so sánh l n c a ph"n d li u c a gói tin v i m t s nào
ó.
alert ip any any -> 192.168.1.0/24 any (dsize: > 6000; msg: “Goi tin co kich
thuoc lon”;)

T khoá flags
T= khoá này ư c dùng phát hi n xem nh ng bit c flag nào ư c b!t
(thi t l!p) trong ph"n TCP header c a gói tin. M'i c có th ư c s d ng như
m t tham s trong t= khoá flags. Sau ây là m t s các c s d ng trong t= khoá
flags:
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Flag Kí t tham s dùng trong lu!t


c a Snort
FIN (Finish Flag) F
SYN – Sync Flag S
RST – Reset Flag R
PSH – Push Flag P
ACK – Acknowledge A
Flag
URG – Urgent Flag U
Reserved Bit 1 1
Reserved Bit 2 2
No Flag set 0
B ng Các c s d ng v i t= khoá flags
Ta có th s d ng các d u +, * và ! th c hi n các phép toán logic AND,
OR và NOT trên các bit c mu n ki m tra. Ví d lu!t sau ây s< phát hi n m t
hành ng quét dùng gói tin TCP SYN-FIN:
alert tcp any any -> 192.168.1.0/24 any (flags: SF; msg: “SYNC-FIN packet
detected”;)

T khoá fragbits
Ph"n IP header c a gói tin ch1a 3 bit dùng ch ng phân m nh và t&ng h p
các gói tin IP. Các bit ó là:
• Reserved Bit (RB) dùng dành cho tương lai.
• Don’t Fragment Bit (DF): n u bit này ư c thi t l!p thì t1c là gói tin ó
không b phân m nh.
• More Fragments Bit (MF): n u ư c thi t l!p thì t1c là các ph"n khác
(gói tin b phân m nh) c a gói tin v7n ang còn 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 là ây là ph"n cu i
cùng c a gói tin (ho%c là gói duy nh t). i u này xu t phát t= nguyên
nhân: Nơi g i i ph i chia gói tin IP thành nhi u o n nh5 do ph thu c
vào ơn v truy n d li u l n nh t cho phép (Maximum Transfer Units -
MTU) trên ư ng truy n. Kích thư c c a gói tin không ư c phép vư t
quá kích thư c l n nh t này. Do v!y, bit MF này giúp bên ích có th
t&ng h p l i các ph"n khác nhau thành m t gói tin hoàn ch/nh.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

ôi khi các bit này b các hacker s d ng t n công và khai thác thông tin
trên m ng c a ta. Ví d , bit DF có th ư c dùng tìm MTU l n nh t và nh5
nh t trên ư ng i t= ngu2n xu t phát n ích n.
S d ng fragbits, ta có th ki m tra xem các bit trên có ư c thi t l!p hay
không. Ví d lu!t sau s< phát hi n xem bit DF trong gói tin ICMP có ư c b!t
hay không:
alert icmp any any -> 192.168.1.0/24 any (fragbits: D; msg: “Dont Fragment bit
set”;)
Trong lu!t này , D dùng cho bit DF, R cho bit d tr và M cho bit MF. Ta
c9ng có th dùng d u ph nh ! trong lu!t này ki m tra khi bit không ư c
b!t:
alert icmp any any -> 192.168.1.0/24 any (fragbits: !D; msg: “Dont Fragment
bit not set”;)

2.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
Snort-inline là m t nhánh phát tri n c a Snort do William Metcalf kh0i
xư ng và lãnh o. n phiên b n 2.3.0 RC1 c a Snort, inline-mode ã ư c
tích h p vào b n chính th1c do snort.org phát hành. S ki n này ã bi n Snort
t= m t IDS thu"n túy tr0 thành m t h th ng có các kh n$ng c a m t IPS, m%c
dù ch này v7n ch/ là tùy ch#n ch1 không ph i m%c nh.
Ý tư0ng chính c a inline-mode là k t h p kh n$ng ng$n ch%n c a iptables
vào bên trong snort. i u này ư c th c hi n b@ng cách thay &i mô un phát
hi n và mô un x lý cho phép snort tương tác v i iptables. C th , vi c ch%n
b3t các gói tin trong Snort ư c th c hi n thông qua Netfilter và thư vi n
libpcap s< ư c thay th b@ng vi c s d ng ipqueue và thư vi n libipq. Hành
ng ng$n ch%n c a snort-inline s< ư c th c hi n b@ng devel-mode c a
iptables.

2.4.2 Nh ng b& sung cho c u trúc lu!t c a Snort h' tr Inline mode
h' tr tính n$ng ng$n ch%n c a Snort-inline, m t s thay &i và b& sung
ã ư c ưa vào b lu!t Snort. ó là ưa thêm 3 hành ng DROP, SDROP,
INJECT và thay &i trình t ưu tiên c a các lu!t trong Snort.
DROP
Hành ng DROP yêu c"u iptables lo i b5 gói tin và ghi l i thông tin như
hành ng LOG.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

SDROP
Hành ng SDROP c9ng tương t như hành ng DROP, i u khác bi t là 0
ch' Snort s< không ghi l i thông tin như hành ng LOG.
REJECT
Hành ng REJECT yêu c"u iptables t= ch i gói tin, có ngh a là iptables s<
lo i b5 và g i l i m t thông báo cho ngu2n g i gói tin ó. Hành ng REJECT
không ghi l i b t c thông tin gì.
Trình t ưu tiên c a các lu!t
Trong các phiên b n g c, trình t ưu tiên c a các hành ng trong Snort là :
activation->dynamic-> alert->pass->log
Trong inline-mode, trình t ưu tiên này ư c thay &i như sau :
activation->dynamic->pass->drop->sdrop->reject->alert->log

CH ƠNG III: CÀI (T VÀ C)U HÌNH SNORT TRÊN N N CENTOS,


TH* NGHI+M KH, N-NG PH,N NG C.A SNORT IDS/IPS

3.1 SƠ L CC V QUÁ TRÌNH CÀI (T

3.1.1 Cài các gói yêu c"u sau


- L"n lư t cài các gói ph thu c:

( mysql, mysql-bench, mysql-server, mysql-devel, yum-utils, php-mysql,


httpd, gcc, pcre-devel, php-gd, gd, distcache-devel, mod_ssl, glib2-devel, gcc-
c++, libpcap-devel, php, php-pear)
- dùng l nh (yum install package) cài %t cho các gói tin.
- m t s gói c"n thi cho snort c"n ph i biên d ch t= soure
( libnet, libdnet, daq, pcre, Snortinline, BASE, adodb )
# cd /tmp
# wget http://www.filewatcher.com/m/libnet-.0.2a.tar.gz.140191.0.0.html
# wget http://code.google.com/p/libdnet/downloads/detail?name=libdnet-
1.12.tgz&can=2&q=
# wget http://sourceforge.net/projects/adodb/files/adodb-php-4-and-5/adodb-
4991-for-php/adodb4991.tgz/download
Shared at SinhVienIT.Net Thanks For hocLinux.Net

# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
download snort_inline http://snort-inline.sourceforge.net/download.html
download base t= ngu2n http://sourceforge.net/projects/secureideas/files/
- sau khi download các gói v ti n hành biên d ch cho các gói
+ biên d ch gói libnet
cd /tmp (di chuy n vào th m c tmp)
tar xvzf libnet-1.0.2a.tar.gz (gi nén libnet)
cd Libnet-1.0.2a (di chuy n vào th m c Libnet-1.0.2a v a gi i nén)
./configure && make && make install (ki m tra câu hình và biên d ch libnet,
d u && có ý ngh a n u câu l nh trư c nó thành công thì m i th c hi n câu l nh
1ng sau )

+ biên d ch gói libdnet


cd /tmp (di chuy n vào th m c tmp)
tar libdnet-1.12.tgz
cd libdnet-1.12 (di chuy n vào th m c libdnet-1.12 v a gi i nén)
./configure && make && make install (ki m tra câu hình và biên d ch
libdnet, d u && có ý ngh a n u câu l nh trư c nó thành công thì m i th c hi n
câu l nh 1ng sau )

+ biên d ch gói daq


cd /tmp (di chuy n n th m c tmp)
tar zxvf daq-0.3.tar.gz (gi i nén daq)
cd daq-0.3 (di chuy n n th m c daq-0.3 v a gi i nén c)
./configure && make && make install (ki m tra câu hình và biên d ch daq,
d u && có ý ngh a n u câu l nh trư c nó thành công thì m i th c hi n câu l nh
1ng sau )
+ biên d ch pcre
cd /tmp
tar xvzf pcre-7.9.tar.gz
cd pcre-7.9
./configure && make && make install (ki m tra câu hình và biên d ch pcre,
d u && có ý ngh a n u câu l nh trư c nó thành công thì m i th c hi n câu l nh
1ng sau )
+ biên d ch snort_inline
cd /tmp
Shared at SinhVienIT.Net Thanks For hocLinux.Net

tar -xvf snort_inline-2.4.5a.tar.gz


cd snort_inline
./configure --with-mysql && make && make install (ki m tra câu hình và
biên d ch snort, d u && có ý ngh a n u câu l nh trư c nó thành công thì m i
th c hi n câu l nh 1ng sau )
+ t o password cho tài kho n root trong mysql
# mysqladmin -u root password new_root_password
+ t o database
# mysql -u root -p
>create database snort;
+ c p toàn quy n cho tài kho n snort trong cơ s0 d li u snort
grant all on snort.* to snortuser@localhost identified by 'snortpassword';

+ c u hình các c nh báo s< ư c xu t vào cơ s0 d li u mysql


#nano /etc/snort_inline/snort_inline.conf
ch/nh l i dòng
output database: log, mysql, user=snortuser password=snortpassword
dbname=snort host=localhost
+sau khi c u hình song snort_inline v!y là quá trình cài %t snort_inline ã
song. gi mu n hi n th và qu n lý các c nh bão m t cách d6 dàng ta cài %t
thêm base và adodb.
+ cài %t base
# tar -xvzf base-1.4.5.tar.gz
# mv /tmp/base-1.4.5 /var/www/html/base
+ cài %t adodb
#tar -xvzf adodb490.tgz
#mv /tmp/adodb490 /var/www/html/adodb
+ c u hình base
#mv /var/www/html/base/base_conf.php.dist
/var/www/html/base/base_conf.php
c u hình các bi n như sau

$DBlib_path="./adodb";
$DBtype="mysql";
$alert_dbname = snort;
$alert_host = localhost;
Shared at SinhVienIT.Net Thanks For hocLinux.Net

$alert_port = "";
$alert_user = snortuser;
$alert_password = snortpassword;
$archive_dbname = snort;
$archive_host = localhost;
$archive_port = "";
$archive_user = snortuser;
$archive_password = snortpassword;

+ bây gi cài %t thêm cá gói sau hi n th nh trên base


#pear install --force Image_Color
#pear install --force Image_Canvas
#pear install --force Image_Graph
+ cài %t thêm webmin d6 dàng qu n lý
# yum install webmin
sau khi cài %t song webmin ta kh0i ng các d ch v
# services httpd start
# services mysql start
https://localhost.localdomain:10000
Shared at SinhVienIT.Net Thanks For hocLinux.Net

T t c các thông tin c u hình c a Snort ư c lưu trong file snort.conf. File
snort.conf bao g2m 4 ph"n :
• nh ngh a các bi n xác nh c u hình m ng.
• C u hình mô un ti n x lý.
• C u hình mô un k t xu t thông tin.
• C u hình b lu!t s d ng.
Sau ây là n i dung c th và ý ngh a c a các thông tin trong snort.conf.

3.1 nh ngh a các bi n


Snort cho phép nh ngh a các bi n xác nh các thông s m ng theo nh
d ng :
var : <name> <value>
Các bi n này s< ư c s d ng trong toàn b file c u hình t= ó v sau. Ví d ,
n u nh ngh a : “var : MY_NET 192.168.1.0/24” thì trong toàn b file config
hay các file lu!t ký hi u MY_NET s< ư c thay th b@ng giá tr 192.168.1.0/24.

3.2 C u hình mô un ti n x lý
Các thông tin c u hình cho mô un ti n x lý ư c nh ngh a như sau :
preprocessor <name>:<options>
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Quy nh v name và options tùy thu c vào t=ng plugin c a mô un ti n x


lý. Ví d : c u hình c a plugin Portscan detection do Patrick Mullen vi t như
sau :
preprocessor portscan 192.168.0.1/24 5 7 /var/log/portscan.log
trong ó :
192.168.0.1/24 là m ng ư c theo dõi nguy cơ quét c&ng.
5 là s lư ng c&ng truy c!p 2ng th i trong quá trình quét.
7 là th i gian theo dõi ê xác nh nguy cơ quét c&ng.
/var/log/portscan.log là file ghi l i log c a quá trinh phát hi n.

3.3C u hình mô un k t xu t thông tin


C u hình cho mô un k t xu t thông tin c9ng ư c nh ngh a tương t c u
hình cho mô un ti n x lý.
output <name>:<options>
Ví d , c u hình cho Snort k t xu t thông tin c nh báo ra syslog c a m t máy
trong m ng như sau :
output alert_syslog: host=192.168.0.1:123, LOG_AUTH LOG_ALERT
Trong ó, host là ip và c&ng syslog c a máy ư c ghi, LOG_AUTH và
LOG_ALERT là các lo i log ư c ghi l i.
Snort k t xu t thông tin ra cơ s0 d li u, c u hình như sau :
database: <log | alert>, <database type>, <parameter list>
Trong ó :
• log | alert : ch/ ra ghi l i thông tin gì? Log hay alert ?
• database type : Lo i cơ s0 d li u. Snort h' tr mysql, postgre sql và ms
sql server.
• Parameter list : danh sách tham s ph c v cho vi c k t n i v i cơ s0 d
li u. C th tùy thu c vào t=ng lo i cơ s0 d li u c th . Ví d , parameter
list c a mysql là như sau : dbname=snort user=snort host=localhost
password=xyz.

3.4 C u hình b lu!t
Ph"n này ch/ ra các file lu!t ư c dùng. Cú pháp như sau :
include RULE_PATH/RULE_FILE
Ví d : yêu c"u Snort s d ng lu!t phát hi n ddos b@ng dòng l nh sau :
include $RULE_PATH/ddos.rules
Shared at SinhVienIT.Net Thanks For hocLinux.Net

Trong ó, $RULE_PATH là bi n ch/ n thư m c ch1a các file lu!t ã ư c


nh ngh a trong ph"n nh ngh a các bi n còn ddos.rules là file lu!t.

3.5 TH* NGHI+M KH, N-NG PH,N NG C.A SNORT IDS/IPS


truy c!p vào base http://127.0.0.1/base

lúc này chưa có c nh báo nào vì ta chưa kh0i ch y snort. gi s ta t o m t rules


v i d u hi u như sau:

sau ó include nó vào file /etc/snort_inline/snort_inline.conf


và kh0i ch y snort: # snort_inline -c /etc/snort_inline/snort_inline.conf -Q
r2i t= m t máy khác ping n v i a ch/ c a máy ping là 192.168.1.121
và a ch/ c a máy IDS là 192.168.1.111 ta có k t qu sau.
Shared at SinhVienIT.Net Thanks For hocLinux.Net

như v!y snort IDS ã ho t ng t t, ta th rules sau cho trư ng h p phát hi n


nmap scan c&ng.

sau ó include scan.rules vào file /etc/snort_inline/snort_inline.conf


Shared at SinhVienIT.Net Thanks For hocLinux.Net

kh0i ng l i snort_inline. t= máy t n công b!t nmap và scan c&ng ta nh!n


ư c k t qu . như v!y snort ã th hiên là m t IPS

vào mày snort và xem k t qu .


Shared at SinhVienIT.Net Thanks For hocLinux.Net

TÀI LI+U THAM KH,O


Tài li u ti ng Vi t :

[1] M ng máy tính và các h th ng m0


Tác gi : GSTS Nguy6n Thúc H i
NXB Giáo d c – 1999
[2] L!p trình LINUX –t!p 1
Tác gi : Nguy6n Phương Lan, Hoàng 1c H i
NXB Giáo D c – 2001
Tài li u ti ng Anh :
[3] Intrusion Detection with Snort
Tác gi : Rafeeq Rehman
NXB Prentice Hall – 2003
[4] Snort User Manual
Tác gi : Martin Roesch, Chris Green
The Snort Project – 2003
[5] Snort 2.1 Intrusion Detection
Websites :

[6] http://www.snort.org
http://netfilter.org
[7] http://snortinline.sourceforge.net
http://hoclinux.net

You might also like