HỌC VIỆN AN NINH NHÂN DÂN
KHOA AN NINH THÔNG TIN
----------
BÀI BÁO CÁO
MƠN AN TỒN MẠNG MÁY TÍNH
CHỦ ĐỀ : Triển khai IDS Snort trên Pfsense
HỌC PHẦN: AN TOÀN MẠNG MÁY TÍNH
LỚP: D51-ATTT
NHĨM BÁO CÁO: PHÙNG NGỌC MINH
HÀ NỘI, 2022
1
h
MỤC LỤC
LỜI MỞ ĐẦU......................................................................................................2
PHẦN I. TỔNG QUAN VỀ PFSENSE.............................................................3
1. Pfsense là gì?.............................................................................................3
2. Một số tính năng chính trong Pfsense:.................................................4
3. Cài đặt Pfsense:.........................................................................................9
4. Lợi ích của Pfsense:................................................................................16
PHẦN II. GIỚI THIỆU VỀ IDS SNORT.......................................................17
1. Giới thiệu về IDS Snort:..........................................................................17
2. Kiến trúc của Snort:..................................................................................19
3. Tập luật của Snort:....................................................................................21
PHẦN III. THỰC HÀNH CÀI ĐẶT IDS SNORT TRÊN PFSENSE..........25
1. Cài đặt Snort trên Pfsense:...................................................................25
2. Demo tấn công vào Pfsense:.................................................................30
PHẦN IV. KẾT LUẬN.....................................................................................35
NGUỒN THAM KHẢO...................................................................................36
1
h
LỜI MỞ ĐẦU
Sự phá t triển củ a cô ng nghệ, đặ c biệt là Internet đã giú p cuộ c số ng củ a
con ngườ i trở nên thuậ n tiện và dễ dà ng hơn. Nhờ có hệ thố ng mạ ng
Internet ta có thể trao đổ i, lưu trữ thô ng tin, kết nố i vớ i tấ t cả mọ i ngườ i
trên thế giớ i và hà ng loạ t lợ i ích khá c. Tuy nhiên trong tình hình thự c tế
hiện nay đặ t ra khá nhiều thá ch thứ c đến từ vấ n đề bả o mậ t, bả o vệ hệ
thố ng mạ ng Internet đặ c biệt là cá c doanh nghiệp, cô ng ty trên thế giớ i. Để
bả o vệ hệ thố ng mạ ng thì ta có nhiều giả i phá p như sử dụ ng router cisco,
dù ng firewall cứ ng, firewall mềm củ a microsoft như ISA, … Nhữ ng thiết bị
như trên rấ t tố n kinh phí vì vậ y đố i vớ i cá c doanh nghiệp vừ a và nhỏ thì giả i
phá p firewall mềm mã nguồ n mở là mộ t phương á n hiệu quả và ứ ng dụ ng
Pfsense chính là mộ t ví dụ điển hình. Do đó em xin chọ n chủ đề nghiên cứ u
về “Triển khai IDS Snort trên Pfsense” để tìm hiểu thêm về ứ ng dụ ng
tườ ng lử a nà y và cách thứ c cà i đặ t và sử dụ ng cô ng cụ Snort trên tườ ng lử a
Pfsense.
2
h
PHẦN I. TỔNG QUAN VỀ PFSENSE
1. Pfsense là gì?
- Pfsense là mộ t ứ ng dụ ng có chứ c nă ng định tuyến và o tườ ng lử a
mạ ng và miễn phí dự a trên nền tả ng FreeBSD (FreeBSD là mộ t hệ điều hà nh
kiểu Unix đượ c phá t triển từ Unix theo nhá nh phá t triển củ a BSD dự a trên
386BSD và 4.4BSD) đượ c cung cấ p vớ i mụ c đích sử dụ ng là m bộ định tuyến
(routing) và tườ ng lử a (firewall) rấ t mạ nh. Pfsense đượ c quả n lý hoà n toà n
qua giao diện web. Bắ t đầ u và o nă m 2004, khi m0n0wall mớ i bắ t đầ u chậ p
chữ ng– đâ y là mộ t dự á n bả o mậ t tậ p trung và o cá c hệ thố ng nhú ng –
Pfsense đã có hơn 1 triệu download và đượ c sử dụ ng để bả o vệ cá c mạ ng ở
tấ t cả kích cỡ , từ cá c mạ ng gia đình đến cá c mạ ng lớ n củ a củ a các cơ ng ty.
Ứ ng dụ ng nà y có mộ t cộ ng đồ ng phá t triển rấ t tích cự c và nhiều tính nă ng
đang đượ c bổ sung trong mỗ i phá t hà nh nhằ m cả i thiện hơn nữ a tính bả o
mậ t, sự ổ n định và khả nă ng linh hoạ t củ a nó .
- Pfsense đượ c dự a trên FreeBSD và giao thứ c Common Address
Redundancy Protocol (CARP) củ a FreeBSD, cung cấ p khả nă ng dự phò ng
bằ ng cá ch cho phép cá c quả n trị viên nhó m hai hoặ c nhiều tườ ng lử a và o
mộ t nhó m tự độ ng chuyển đổ i dự phị ng. Vì nó hỗ trợ nhiều kết nố i mạ ng
diện rộ ng (WAN) nên có thể thự c hiện việc câ n bằ ng tả i.
- Pfsense bao gồ m nhiều tính nă ng đặ c biệt là firewall trạ ng thá i mà
chú ng ta vẫ n thấ y trên các thiết bị tườ ng lử a hoặ c router thương mạ i lớ n,
chẳ ng hạ n như giao diện ngườ i dù ng (GUI) trên nền Web tạ o sự quả n lý mộ t
cá ch dễ dà ng. Trong khi đó phầ n mềm miễn phí nà y cị n có nhiều tính nă ng
ấ n tượ ng đố i vớ i firewall/router miễn phí, tuy nhiên cũ ng có mộ t số hạ n
chế.
3
h
- Pfsense hỗ trợ lọ c theo địa chỉ nguồ n, đích, cũ ng như port nguồ n hay
port đích hay địa chỉ IP đồ ng thờ i cũ ng hỗ trợ định tuyến và có thể hoạ t
độ ng trong chế độ bridge hay transparent, cho phép ta chỉ cầ n đặ t Pfsense ở
giữ a cá c thiết bị mạ ng mà khơ ng cầ n đị i hỏ i việc cấ u hình bổ sung. Pfsense
cung cấ p cơ chế NAT và tính nă ng chuyển tiếp cổ ng, tuy nhiên ứ ng dụ ng nà y
vẫ n cò n mộ t số hạ n chế vớ i Point-to-Point Tunneling Protocol (PPTP),
Generic Routing Encapsulation (GRE) và Session Initiation Protocol (SIP)
khi sử dụ ng NAT.
- Đặ c điểm khá quan trọ ng là cấ u hình để cà i đặ t sử dụ ng phầ n mềm
Pfsense khô ng đò i hỏ i cao. Chú ng ta chỉ cầ n mộ t má y tính P3, Ram 128 MB,
HDD 1GB cũ ng đủ để dự ng đượ c tườ ng lử a Pfsense. Tuy nhiên đặ c thù
Pfsense là tườ ng lử a ngă n cá c nguy hạ i giữ a mạ ng WAN và mạ ng LAN nên
má y cà i đặ t Pfsense yêu cầ u tố i thiểu 2 card mạ ng.
Mơ hình triển khai hệ thống với Pfsense cho doanh nghiệp vừa và nhỏ
2. Một số tính năng chính trong Pfsense:
a, Aliases:
4
h
- Trong Pfsense, firewall khơ ng thể có 1 rule gồ m nhiều nhó m IP hoặ c
1 nhó m port. Vì vậ y, điều ta cầ n là m là gom nhó m cá c IP, Port hoặ c URL và o
thà nh 1 Aliases. Mộ t Aliases sẽ cho phép thay thế 1 host, 1 dả i mạ ng, nhiều
IP riêng biệt hay 1 nhó m port, URL, … Aliases giú p ta tiết kiệm đượ c phầ n
lớ n thờ i gian nếu bạ n sử dụ ng mộ t cá ch chính xá c như thay vì sử dụ ng hà ng
loạ t rule để thiết lậ p cho nhiều địa chỉ, ta có thể sử dụ ng 1 rule duy nhấ t để
gom nhó m lạ i.
- Aliases là tính nă ng vơ cù ng hiệu quả củ a Pfsense. Mộ t Aliases có thể
định nghĩa đượ c rấ t nhiều port hoặ c mộ t host hoặ c nhiều dãy IP. Mộ t ví dụ
đơn giả n nếu ta muố n block IP Facebook – Facebook là mộ t dã y IP rấ t nhiều
lớ p mạ ng, ta khô ng thể là m từ ng rule trên Firewall để chặ n Facebook, nó
là m ta mấ t rấ t nhiều thờ i gian, là m chậ m hệ thố ng, là m khó khă n cho việc
quả n lý. Ta chỉ cầ n tạ o mộ t Aliases có tên là IP_Facebook chứ a mộ t dã y IP
facebook. Sau đó trên Firewall ta chỉ cầ n là m mộ t rule là chặ n Aliases
IP_Facebook thì sẽ block đượ c facebook.com.
Thiết lập Firewall: Aliases
- Để và o Aliases củ a Pfsense, ta và o Firewall -> Aliases. Cá c thà nh
phầ n trong Aliases:
+ Host: tạ o nhó m cá c địa chỉ IP
+ Network: tạ o nhó m cá c mạ ng
5
h
+ Port: Cho phép gom nhó m các port nhưng khơ ng cho phép tạ o
nhó m cá c protocol. Cá c protocol đượ c sử dụ ng trong cá c rule
b, Firewall Rules
- Là nơi lưu trữ tấ t cả cá c luậ t ra, và o trên pfsense. Để và o Rules củ a
pfSense, ta và o Firewall -> Rules. Mặ c định Pfsense cho phép mọ i kết nố i ra
và o hệ thố ng, ta phả i tạ o các rules để quả n lý mạ ng bên trong Firewall.
- Mộ t số lự a chọ n trong Destination và Source.
+ Any: Tấ t cả
+ Single host or alias: Mộ t địa chỉ ip hoặ c là mộ t bí danh.
+ Lan subnet: Đườ ng mạ ng Lan
+ Network: địa chỉ mạ ng
+ Lan address: Tấ t cả địa chỉ mạ ng nộ i bộ
+ Wan address: Tấ t cả địa chỉ mạ ng bên ngoà i
+ PPTP clients: Cá c clients thự c hiện kết nố i VPN sử dụ ng giao thứ c
PPTP
+ PPPoE clients: Cá c clients thự c hiện kết nố i VPN sử dụ ng giao thứ c
PPPoE
c, NAT:
- Pfsense có hỗ trợ NAT static dướ i dạ ng NAT 1:1. Điều kiện để thự c
hiện đượ c NAT 1:1 là ta phả i có IP public. Khi thự c hiện NAT 1:1 thì IP
private đượ c nat sẽ l n ra ngoà i bằ ng IP public tương ứ ng và cá c port cũ ng
tương ứ ng trên IP public.
6
h
- Pfsense hỗ trợ NAT Outbound mặ c định vớ i Automatic outbound
NAT rule generation. Để cấ u hình thủ cô ng, ta chọ n Manual Outbound NAT
rule generation (AON - Advanced Outbound NAT) và xó a cá c rule mặ c định
củ a Pfsense đi đồ ng thờ i cấ u hình thêm cá c rule outbound.
- Ngồ i 3 kiểu NAT: port forward, 1:1 và outbound, Pfsense cò n hỗ trợ
NAT Npt. Phương thứ c nà y thự c hiện NAT đố i vớ i Ipv6.
d, Traffic shaper:
- Đâ y là tính nă ng giú p quả n trị mạ ng có thể tinh chỉnh, tố i ưu hó a
đườ ng truyền trong pfsense. Trong pfsense, 1 đườ ng truyền bă ng thô ng sẽ
chia ra cá c hà ng khá c nhau. Có 7 loạ i hà ng trong pfsense:
+ Hà ng qACK: dà nh cho cá c gó i ACK (gó i xác nhậ n) trong giao thứ c
TCP ở nhữ ng ứ ng dụ ng chính cầ n đượ c hỗ trợ như HTTP, SMTP … luồ ng
thô ng tin ACK tương đố i nhỏ nhưng lạ i rấ t cầ n thiết để duy trì tố c độ lưu
thơ ng lớ n.
+ Hà ng qVoIP: dà nh cho nhữ ng loạ i lưu thô ng cầ n đả m bả o độ trễ
nghiêm ngặ t, thườ ng dướ i 10ms như VoIP, video conferences.
+ Hà ng qGames: dà nh cho nhữ ng loạ i lưu thô ng cầ n đả m bả o độ trễ
rấ t chặ t chẽ, thườ ng dướ i 50ms như SSH, game online …
+ Hà ng qOthersHigh: dà nh cho cá c loạ i ứ ng dụ ng quan trọ ng có tính
tương tá c rấ t cao, cầ n đá p ứ ng nhanh, cầ n độ trễ thấ p như: NTP, DNS, SNMP
…
+ Hà ng qOthersDefault: dà nh cho cá c giao thứ c ứ ng dụ ng quan trọ ng
có tính tương tá c vừ a, cầ n độ đá p ứ ng nhấ t định như HTTP, IMAP …
+ Hà ng qOthersLow: dà nh cho cá c giao thứ c ứ ng dụ ng quan trọ ng
nhưng có tính tương tá c thấ p như SMTP, POP3, FTP
+ Hà ng qP2P: dà nh cho cho các ứ ng dụ ng khô ng tương tá c, khô ng
cầ n đá p ứ ng nhanh như bittorrent
7
h
- Mặ c định trong pfsense, các hà ng sẽ có độ ưu tiên từ thấ p đến cao:
qP2P < qOthersLow < qOthersDefault < qOthersHigh < qGames < qACK <
qVoIP.
- Ta có thể chỉnh lạ i độ ưu tiên priority cũ ng như dung lượ ng bă ng
thô ng bandwidth mặ c định mà cá c hà ng chiếm để nâ ng cao bă ng thô ng cho
cá c hà ng tương ứ ng.
- Pfsense cũ ng hỗ trợ giớ i hạ n tố c độ download/upload củ a 1 IP hoặ c
1 dả i IP vớ i ta thiết lậ p thô ng số tạ i phầ n limiter. Firewall Pfsense hỗ trợ
chặ n nhữ ng ứ ng dụ ng chạ y trên layer 7 – application trong mô hình OSI như
sip, ftp, http … trong phầ n Layer 7.
e, VPN:
- Mộ t tính nă ng khá c khơ ng thể thiếu đố i vớ i cá c gateway là VPN. VPN
(Virtual Private Network) là mộ t kiểu kết nố i cho phép cá c má y tính truyền
thơ ng vớ i nhau thô ng qua mộ t mô i trườ ng chia sẻ như mạ ng Internet nhưng
vẫ n đả m bả o đượ c tính riêng tư và bả o mậ t dữ liệu. Để cung cấ p kết nố i giữ a
cá c má y tính, cá c gó i thơ ng tin đượ c bao bọ c bằ ng mộ t header có chứ a
nhữ ng thô ng tin định tuyến, cho phép dữ liệu có thể gử i từ má y truyền qua
mơ i trườ ng mạ ng chia sẻ và đến đượ c má y nhậ n, như truyền trên các đườ ng
ố ng riêng đượ c gọ i là tunnel. Để bả o đả m tính riêng tư và bả o mậ t trên mô i
trườ ng chia sẻ nà y, cá c gó i tin đượ c mã hố và chỉ có thể giả i mã vớ i nhữ ng
khó a thích hợ p, ngă n ngừ a trườ ng hợ p “trộ m” gó i tin trên đườ ng truyền.
Chứ c nă ng nà y củ a pfSense đượ c đá nh giá là rấ t tố t.
- Pfsense cũ ng hỗ trợ VPN qua 4 giao thứ c: IPSec, L2TP, PPTP và
OpenVPN.
f, Monitor băng thơng:
- Pfsense có rấ t nhiều plugin hỗ trợ monitor bă ng thô ng. Sau đây là 1
số plugin thô ng dụ ng:
- RRD Graphs
8
h
+ Đâ y là tool mặ c định có sẵ n khi cà i pfsense. Vớ i RRD graphs, ta có
thể theo dõ i đượ c trạ ng thá i củ a server: memory, process … hay vớ i bă ng
thô ng củ a cá c đườ ng truyền LAN, WAN …
+ Mộ t nhượ c điểm củ a RRD Graphs là khô ng theo dõ i đượ c dung
lượ ng từ ng IP.
- Lightsquid
+ Lightsquid là package hỗ trợ xem report trên pfsense sau khi đã
cà i gó i squid.
+ Vớ i Lightsquid, ta có thể check dung lượ ng mỗ i IP sử dụ ng theo
ngà y. Tổ ng dung lượ ng ngà y hơ m đó sử dụ ng hay cá c trang web đã và o …
- BandwidthD
+ 1 plugin nữ a có thể monitor dung lượ ng sử dụ ng củ a IP là
BandwidthD.
+ BandwidthD thố ng kê dữ liệu theo từ ng IP, dung lượ ng gử i, nhậ n,
cá c giao thứ c sử dụ ng như FTP, HTTP …
- Ntop
+ 1 plugin thườ ng đượ c sử dụ ng nữ a là Ntop. Vớ i Ntop, ta có thể
theo dõ i bă ng thô ng hiện tạ i IP nà o sử dụ ng lớ n nhấ t, dung lượ ng tả i củ a
cổ ng, kết nố i tớ i internet …
3. Cài đặt Pfsense:
9
h
- Chuẩ n bị:
+ Yêu cầ u phầ n cứ ng tố i thiểu để cà i đặ t Pfsense là : CPU 600 MHz,
RAM 512 MB, ổ cứ ng 4 GB và có USB boot hoặ c đĩa CD/DVD để cà i đặ t ban
đầ u.
+ Ta thự c hà nh cà i đặ t Pfsense trên VMWare Workstation vớ i cấ u
hình RAM 2048MB, ổ cứ ng 35GB, 2 core CPU, 2 card mạ ng.
- Cá c bướ c cà i đặ t:
- Và o VMware Workstation Pro và chọ n File rồ i chọ n New Virtual
Machine….
- Chọ n Typical rồ i chọ n Next, chọ n tù y chọ n I will install the
operating system later rồ i chọ n Next
10
h
- Trong mụ c tiếp theo chọ n Other trong Guest operating system rồ i
chọ n Version FreeBSD 11 64-bit
- Trong mụ c tiếp theo điền tên má y ả o và chọ n nơi lưu má y ả o
- Trong mụ c tiếp theo chọ n tù y chọ n Store virtual disk as a single
files và chọ n dung lượ ng là 35Gb
- Tù y chọ n cuố i cù ng chọ n Finish. Sau đó ta phả i cấ u hình lạ i má y ả o
nà y. Chọ n Edit virtual machine settings
- Trong phầ n Memory điền trong Memory for this virtual machine
là 2048Mb
- Trong phầ n Processors chọ n Number of processors là 2
11
h
- Trong phầ n CD/DVD (IDE) ta chọ n Use ISO image file và Browse đến
file iso củ a Pfsense
- Trong phầ n Network Adapter chọ n tù y chọ n Bridged
- Do Pfsense phả i có tố i thiểu 2 card mạ ng nên ta phả i Add thêm mộ t
Network Adapter nữ a, chọ n tù y chọ n củ a Network Adapter mớ i là NAT
Cấ u hình cuố i cù ng củ a Pfsense
- Bậ t Pfsense lên và bắ t đầ u cà i đặ t
Nhấ n Enter để bắ t đầ u cà i đặ t.
12
h
Chọ n Install để cà i đặ t PfsSense.
- Sau đó ta tiếp tụ c chọ n theo mặ c định cá c tù y chọ n bà n phím, phâ n
vù ng ổ cứ ng, đợ i quá trình cà i đặ t hoà n tấ t và reboot:
Hoà n tấ t cà i đặ t và khở i độ ng lạ i má y ả o Pfsense.
- Sau khi đã khở i độ ng xong, ta tù y chỉnh cá c thô ng số như gá n
interface, đặ t IP cho cá c interface theo nhu cầ u sử dụ ng:
13
h
Giao diện Pfsense khi khở i độ ng.
- Nhậ p 2 (Set interface(s) IP address) để đặ t lạ i IP cho các Interface:
Đặ t IP cho cá c interface bằ ng việc chọ n phím 2.
- Cấ u hình lạ i mạ ng LAN, chọ n phím 2. Sau đó nhậ p địa chỉ IP mớ i là
192.168.154.100; trong phầ n new LAN IPv4 subnet bit count điền 24;
trong phầ n new LAN IPv4 upstream gateway address nhậ p
192.168.154.2. Chọ n no (n) ở 2 tù y chọ n tiếp theo, ta đã cấ u hình thà nh
cơ ng mạ ng LAN
- Là m tương tự vớ i cấ u hình mạ ng WAN vớ i địa chỉ 192.168.0.113
14
h
Giao diện sau khi cấ u hình xong
- Ta thự c hiện ping thử ra Internet để kiểm tra kết nố i mạ ng củ a
Pfsense. Chọ n phím 7 rồ i điền google.com để thự c hiện ping
Ping thử ra Internet thà nh cơ ng, Pfsense đã có kết nố i mạ ng
- Sau đó ta chuyển sang má y Kali (đã đượ c cấ u hình từ trướ c:
Network Adapter: NAT, địa chỉ IP: 192.168.154.128) truy cậ p và o IP LAN
củ a Pfsense trên trình duyệt, nhậ p tà i khoả n là admin và mậ t khẩ u mặ c định
15
h
là pfsense sau đó cà i đặ t mộ t số thô ng tin ban đầ u như DNS, đổ i mậ t khẩ u
(pnminh2001), cà i đặ t mộ t số thô ng tin cơ bả n, bỏ chọ n tù y chọ n firewall
mặ c định,…
Dashboard Pfsense khi vừ a cà i đặ t ban đầ u xong.
- Như vậ y quá trình cà i đặ t firewall mềm pfSense đã hồ n tấ t.
- Cá c cơ ng ty ngoà i thự c tế như Viettelco đã triển khai Pfsense cho
nhiều khá ch hà ng vớ i mơ hình ví dụ như dướ i đây, gồ m 1 server cà i đặ t
Pfsense là m OpenVPN server, Zabbix giá m sá t hệ thố ng và cá c server sau
nố i vớ i interface LAN củ a Pfsense:
16
h
4.
Lợi ích của Pfsense:
Lợi ích của Pfsense
- Hồ n tồ n miễn phí, giá cả là ưu thế vượ t trộ i củ a tườ ng lử a Pfsense.
Tuy nhiên, rẻ khơ ng có nghĩa là kém chấ t lượ ng, tườ ng lử a Pfsense hoạ t
độ ng cự c kỳ ổ n định vớ i hiệu nă ng cao, đã tố i ưu hó a mã nguồ n và cả hệ
điều hà nh. Cũ ng chính vì thế, Pfsense khô ng cầ n nền tả ng phầ n cứ ng mạ nh.
- Nếu doanh nghiệp khơ ng có đườ ng truyền tố c độ cao, tườ ng lử a
Pfsense chỉ cầ n cà i đặ t lên mộ t má y tính cá nhâ n là có thể bắ t đầ u hoạ t độ ng.
17
h
Điều đó cà ng gó p phầ n là m giả m chi phí triển khai, đồ ng thờ i tạ o nên sự linh
hoạ t, tính mở rộ ng/sẵ n sà ng chưa từ ng có , khi doanh nghiệp muố n có nhiều
hơn mộ t tườ ng lử a.
- Khô ng chỉ là mộ t tườ ng lử a, Pfsense hoạ t độ ng như mộ t thiết bị
mạ ng tổ ng hợ p vớ i đầy đủ mọ i tính nă ng tồ n diện sẵ n sà ng bấ t cứ lú c nà o.
Khi có mộ t vấ n đề về hệ thố ng mạ ng phá t sinh, thay vì phả i loay hoay tìm
thiết bị và mấ t thờ i gian đặ t hà ng, doanh nghiệp có thể kết hợ p cá c tính
nă ng đa dạ ng trên Pfsense để tạ o thà nh giả i phá p hợ p lý, khắ c phụ c sự cố
ngay lậ p tứ c.
- Khơ ng kém phầ n quan trọ ng đó là khả nă ng quả n lý. Tườ ng lử a
Pfsense đượ c quả n trị mộ t cá ch dễ dà ng, trong sá ng qua giao diện web.
Tườ ng lử a Pfsense là sự kết hợ p hoà n hả o và mạ nh mẽ, đem lạ i sự
hợ p lý cho cá c nhà tà i chính, và sự tin tưở ng cho cá c nhà quả n trị.
PHẦN II. GIỚI THIỆU VỀ IDS SNORT
1. Giới thiệu về IDS Snort:
- Snort là phầ n mềm IDS (Instruction Detection System) đượ c phá t
triển bở i Martin Roesh dướ i dạ ng mã nguồ n mở . Nó i ngắ n gọ n IDS là mộ t hệ
thố ng đượ c cà i đặ t trên mạ ng (hay má y tính) và nhiệm vụ củ a nó là giá m sá t
nhữ ng gó i tin và o ra hệ thố ng mạ ng củ a mình. Nếu mộ t cuộ c tấ n cô ng đượ c
18
h
phá t hiện bở i Snort thì nó có thể phả n ứ ng bằ ng nhiều cá ch khá c nhau phụ
thuộ c và o cấ u hình mà bạ n thiết lậ p, chẳ ng hạ n như nó có thể gở i thơ ng điệp
cả nh bá o đến nhà quả n trị hay loạ i bỏ gó i tin khi phá t hiện có sự bấ t thườ ng
trong các gó i tin đó .
- Snort ban đầ u đượ c xây dự ng trên nền Unix nhưng sau đó phá t triển
sang cá c nền tả ng khá c. Snort đượ c đá nh giá rấ t cao về khả nă ng phá t hiện
xâ m nhậ p. Tuy Snort miễn phí nhưng nó lạ i có rấ t nhiều tính nă ng tuyệt vờ i.
Vớ i kiến trú c 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. Snort có thể chạ y trên nhiều hệ thố ng như
Windows, Linux, OpenBSD, FreeBSD, Solaris …
- Bên cạ nh việc có thể hoạ t độ ng như mộ t ứ ng dụ ng bắ t gó i tin thơ ng
thườ ng, Snort cị n đượ c cấ u hình để chạ y như mộ t NIDS.
Ví dụ về 1 mơ hình mạ ng sử dụ ng Snort trong thự c tế
2. Kiến trúc của Snort:
- Snort bao gồ m nhiều thà nh phầ n, mỗ i phầ n có mộ t chứ c nă ng riêng
biệt:
19
h
+ Module giả i mã gó i tin
+ Module tiền xử lý
+ Module phá t hiện
+ Module log và cả nh bá o
+ Module kết xuấ t thô ng
- Kiến trú c củ a Snort đượ c thể hiện qua mơ hình sau:
- Khi Snort hoạ t độ ng, nó sẽ lắ ng nghe tấ t cả cá c gó i tin nà o di chuyển
qua nó . Cá c gó i tin sau khi bị bắ t sẽ đượ c đưa và o module giả i mã . Tiếp theo
sẽ và o module tiền xử lý và rồ i module phá t hiện. Tạ i đâ y tù y và o việc có
phá t hiện đượ c xâ m nhậ p hay khơ ng mà gó i tin có thể bỏ qua để lưu thô ng
tin tiếp hoặ c đưa và o module Log và cả nh bá o để xử lý. Khi cá c cả nh bá o
đượ c xá c định, Module kết xuấ t thô ng tin sẽ thự c hiện việc đưa ra cả nh bá o
theo đú ng định dạ ng mong muố n.
a, Module giả i mã gó i tin:
- Module giả i mã gó i tin chỉ 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. Bắ t cá c gó i dữ liệu cá c nhau củ a tầ ng
network (Ethernet, SLIP, PPP….);
- Mộ t gó i tin sau khi đượ c giả i mã sẽ đượ c đưa tiếp và o module tiền
xử lý.
b, Module tiền xử lý:
- Module nà y rấ t quan trọ ng đố i vớ i bấ t kỳ hệ thố ng nà o để có thể
chuẩ n bị gó i dữ liệu đưa và o cho Module phá t hiện phâ n tích vớ i 3 nhiệm vụ
chính:
20
h
+ Kết hợ p lạ i cá c gó i tin: Khi mộ t dữ liệu lớ n đượ c gử i đi, thơ ng tin
sẽ khơ ng đó ng gó i tồ n bộ và o mộ t gó i tin mà thự c hiện phâ n mả nh, chia
thà nh nhiều gó i tin rồ i mớ i gử i đi. Khi Snort nhậ n đượ c cá c gó i tin nà y, nó
phả i thự c hiện kết nố i lạ i để có gó i tin ban đầ u. Module tiền xử lý giú p Snort
có thể hiểu đượ c cá c phiên là m việc khá c nhau.
+ Giả i mã và chuẩ n hó a giao thứ c (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 thấ t bạ i khi
kiểm tra cá c giao thứ c có dữ liệu có thể đượ c biểu diễn dướ i nhiều dạ ng
khá c nhau. Ví dụ : mộ t Web server có thể nhậ n nhiều dạ ng URL: URL viết
dướ i dạ ng hexa/unicode hay URL chấ p nhậ n dấ u / hay \. 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 bỏ só t hà nh vi xâ m nhậ p. Do vậ y, 1 số Module tiền xử lý củ a Snort phả i
có nhiệm vụ giả i mã và chỉnh sử a, sắ p xếp lạ i cá c thô ng tin đầ u và o.
+ Phá t hiện cá c xâ m nhậ p bấ t thườ ng (nonrule/anormal): các
plugin dạ ng nà y thườ ng để xử lý vớ i cá c xâ m nhậ p khô ng thể hoặ c rấ t khó
phá t hiện bằ ng cá c luậ t thơ ng thườ ng. Phiển bả n hiện tạ i củ a Snort có đi
kèm 2 plugin giú p phá t hiện xâ m nhậ p bấ t thườ ng đó là portscan và bo
(backoffice). Portscan dù ng để đưa ra cả nh bá o khi kẻ tấ n cô ng thự c hiện
quét cổ ng để tìm lỗ hổ ng. Bo dù ng để đưa ra cả nh bá o khi hệ thố ng nhiễm
trojan backoffice.
c, Module phá t hiện:
- Đâ y là module 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. Module 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.
- Mộ t vấ n đề quan trọ ng đố i vớ i module phá t hiện và vấ n đề thờ i gian
xử lý gó i tin: mộ t IDS thườ ng nhậ n rấ t nhiều gó i tin và bả n thâ n nó cũ ng có
rấ t nhiều luậ t xử lý. Khi lưu lượ ng mạ ng quá lớ n có thể xả y ra việc bỏ só t
21
h
hoặ c khô ng phả n hồ i đú ng lú c. Khả nă ng xử lý củ a module phá t hiện phụ
thuộ c và o nhiều yếu tố : số lượ ng các luậ t, tố c độ hệ thố ng, bă ng thô ng mạ ng.
- Mộ t module phá t hiện có khả nă ng tá ch các phầ n củ a gó i tin ra và á p
dụ ng luậ t lên từ ng phầ n củ a gó i tin:
+ IP header
+ Header ở tầ ng transport: TCP, UDP
+ Header ở tầ ng application: DNS, HTTP, FTP …
+ Phầ n tả i củ a gó i tin
- Do cá c luậ t trong Snort đượ c đá nh số thứ tự ưu tiên nên 1 gó i tin khi
bị phá t hiện bở i nhiều luậ t khá c nhau, cả nh bá o đượ c đưa ra theo luậ t có
mứ c ưu tiên cao nhấ t.
d, Module log và cả nh bá o:
- Tù y thuộ c và o module phá t hiện có nhậ n dạ ng đượ c xâ m nhậ p hay
khơ ng mà gó i tin có thể bị ghi log hay đưa ra cả nh bá o. Cá c file log là các file
dữ liệu có thể ghi dướ i nhiều định dạ ng khá c nhau như tcpdump
e, Module kết xuấ t thô ng tin:
- Module nà y thự c hiện cá c thao tá c khá c nhau tù y thuộ c và o việc cấ u
hình lưu kết quả xuấ t ra như thế nà o.
+ Ghi log file
+ Ghi syslog
+ Ghi cả nh bá o và o cơ sở dữ liệu
+ Tạ o file log XML
+ 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 thứ c SNMP
3. Tập luật của Snort:
- Snort cũ ng có điểm yếu. Đó là tương tự như cá c bộ quét virus (virus
scanner), Snort chỉ có thể chố ng lạ i cá c cuộ c tấ n cô ng mộ t cá ch hiệu quả nếu
như nó biết đượ c dấ u hiệu (signature) củ a cá c cuộ c tấ n cơ ng đó . Dự a và o
điểm nà y, các hacker "cao thủ " có thể điều chỉnh cá c cuộ c tấ n cô ng để thay
22
h
đổ i signature củ a cuộ c tấ n cô ng đó . (Giố ng như virus, hầ u hết hà nh độ ng
xâ m nhậ p có và i loạ i signature). Từ đó cá c cuộ c tấ n cơ ng nà y có thể "qua
mặ t" đượ c sự giá m sá t củ a Snort.
- Như vậ y có thể thấ y rằ ng, để Snort hoạ t độ ng mộ t cá ch hiệu quả thì
mộ t trong nhữ ng yếu tố quan trọ ng cầ n phả i chú ý là cá c luậ t viết cho Snort.
Khi Snort hoạ t độ ng, nó sẽ đọ c cá c tậ p luậ t, giá m sá t luồ ng dữ liệu chạ y qua
hệ thố ng và sẽ phả n ứ ng nếu có bấ t kì luồ ng dữ liệu nà o phù hợ p vớ i tậ p
luậ t củ a nó và nó sẽ phá t ra mộ t thơ ng điệp cả nh bá o, ghi mộ t thô ng điệp. Cụ
thể hơn, tậ p luậ t có thể đượ c tạ o ra để giá m sá t các nỗ lự c quyét cổ ng
(scanning), tìm dấ u vết (footprinting), hoặ c nhiều phương phá p khá c mà cá c
hacker dù ng để tìm cá ch chiếm quyền hệ thố ng. Tậ p luậ t nà y có thể đượ c
tạ o ra bở i ngườ i dù ng hoặ c ngườ i dù ng có thể truy cậ p đến trang chủ củ a
Snort để lấy về.
- Tậ p luậ t củ a Snort bao gồ m:
+ Cơ sở dữ liệu cá c địa chỉ IP, tên miền độ c hạ i, cá c dấ u hiệu mấ t
ATTT do ngườ i phá t triển tự định nghĩa;
+ Cơ sở dữ liệu dấ u hiệu đặ c biệt về nhữ ng cuộ c tấ n cô ng (smurf
attack, buffer overfollow, paket sniffers,…)
- Cấ u trú c tậ p luậ t củ a Snort: Ta thấ y cấ u trú c có dạ ng sau:
|Rule Header| Rule Option| |
+ Phần Header: chứ a 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ó cũ ng chứ a tiểu
chuẩ n để á p dụ ng luậ t vớ i gó i tin đó .
+ Phần Option: chứ a 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 chứ a cá c tiêu chuẩ n
phụ thêm để đố i sá nh vớ i gó i tin.
Ví dụ : alert tcp 192.168.0.0/22 23 -> any any (content:”confidential”;
msg: “Detected confidential”)
3.1 Cấu trúc của phần Header:
23
h
Action| Protocol| Address| Port| Direction| Address| Port| | Alert|
TCP| 192.168.0.0/22| 23| ->| Any| Any
- Gồ m 5 phầ n:
+ Action: là phầ n quy định loạ i hà nh độ ng nà o đượ c thự c thi. Thô ng
thườ ng cá c hà nh độ ng rạ o ra mộ t cả nh bá o hoặ c log thô ng điệp hay kích
hoạ t mộ t luậ t khá c.
+ Protocol: giao thứ c cụ thể
+ Address: địa chỉ nguồ n và địa chỉ đích
+ Port: xá c định cá c cổ ng nguồ n, cổ ng đích củ a mộ t gó i tin
+ Direction: phầ n nà y sẽ chỉ ra địa chỉ nguồ n và địa chỉ đích
a, Action:
- Có 5 luậ t đượ c định nghĩa:
+ Pass: cho phép Snort bỏ qua gó i tin nà y
+ Log: dù ng để log gó i tin. Có thể log và o file hay và o CSDL
+ Alert: gử i thô ng điệp cả nh bá o khi dấ u hiệu xâ m nhậ p đượ c phá t
hiện
+ Activate: tạ o ra cả nh bá o và kích hoạ t thêm cá c luậ t khá c để kiểm
tra thêm điều kiện củ a gó i tin
+ Dynamic: đâ y là luậ t đượ c gọ i bở i cá c luậ t khá c có hà nh độ ng là
Activate
b, Protocol:
- Chỉ ra loạ i gó i tin mà luậ t đượ c á p dụ ng:
+ IP
+ ICMP
24
h