Tải bản đầy đủ (.pdf) (39 trang)

(Tiểu luận) bài báo cáo môn an toàn mạng máy tính chủ đề triển khai ids snort trên pfsense

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4 MB, 39 trang )

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


×