Professional Documents
Culture Documents
Sinh Vien IT Net BAO CAO IDS IPS
Sinh Vien IT Net BAO CAO IDS IPS
Net
M CL C
L I NÓI U
L I NÓI U
• 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
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
• 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
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
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
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
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
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
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.
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
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.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
# 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 )
$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;
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.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
[6] http://www.snort.org
http://netfilter.org
[7] http://snortinline.sourceforge.net
http://hoclinux.net