I H C QU C GIA TP. HCM
I H C BÁCH KHOA
--------------------
TR N TRUNG HI U
X
LÝ N I DUNG GÓI TIN CHO H TH NG
PHÁT HI N XÂM NH P M NG TRÊN FPGA
Chuyên ngành : . . Khoa h c máy tính . . . . . . . .
Mã s
604801
LU
TP. H CHÍ MINH, tháng 6
2013
C HOÀN THÀNH T I
I H C BÁCH KHOA
-HCM
Cán b
ng d n khoa h c : TS. Tr n Ng c Th nh .................................
Cán b ch m nh n xét 1 : TS. Lê Thành Sách ...........................................
Cán b ch m nh n xét 2 : TS. Nguy
.....................................
Lu
c b o v t i Tr ng
HCM ngày . 24 . tháng . 7.
2013 .
i h c Bách Khoa, HQG Tp.
Thành ph n H i ng nh giá lu n v n th c s g m:
(Ghi rõ h , tên, h c hàm, h c v c a H i ng ch m b o v lu n v n th c
s)
1. TS. Nguy
2. TS. Tr
c Thái ..........................
...............................
3. TS. Tr n Ng c Th nh ...........................
4. TS. Lê Thành Sách ...............................
5. TS. Nguy
.........................
Xác nh n c a Ch t ch H i ng
chuyên ngành sau khi lu n v n ã
CH T CH H
NG
h giá LV và
ng Khoa qu n lý
c s a ch a (n u có).
IH C
GIA TP.HCM
I H C BÁCH
KHOA
C NG HÒA XÃ
CH
T NAM
c l p - T do - H nh phúc
NHI M V LU
MSHV:
11076025
02/10/1988
Chun ngành:
I.
tính
:
604801
TÀI:
X LÝ N I DUNG GĨI TIN CHO H TH NG PHÁT HI N XÂM NH P
M NG TRÊN FGPA
II. NHI M V VÀ N I DUNG:
Tìm hi
xu t p
phát hi n xâm nh p m ng.
so trùng m u cho t p quy lu t c a h th ng
Thi t k và hi n th c h th ng x lý n i dung ph n thân gói d li
c ng FPGA.
Xây d ng cơng c h tr vi c t
ph n thân gói d li u.
ng hóa xây d ng h th ng x lý n i dung
III. NGÀY GIAO NHI M V :
02/07/2012
IV. NGÀY HOÀN THÀNH NHI M V :
21/06/2013
V. CÁN B
NG D N:
TS. Tr n Ng c Th nh
Tp. HCM, ng
CÁN B
NG D N
trên ph n
CH NHI M B
T O
NG KHOA KH & KT MT
.
u tiên, tôi xin g i l
i Th
ng d n c a tôi TS.
Tr n Ng c Th nh. Trong su t qua trình th c hi n lu
tâm theo sát và h tr tôi. Nh ng l
là ngu
quan
ng d n t n tình c a Th y
ng l c l n nh t cho tơi hồn thành lu
il
n anh Tr
m
ib
viên và h tr tôi r t nhi u trong th i gian h c t p và nghiên c u t
c
il
ng
ng. Bên
n các b n h c viên cao h c khóa 2011,
các em sinh viên khóa 2007, 2008 làm th c t p và lu
platform, v nh ng h tr và chia s trong su t quá trình tôi th c hi n lu
này.
Và cu i cùng, tôi xin g i l
n bè và nh ng
ôn là ch d a tinh th n v ng ch c, c
t q
trình h c t p, nghiên c u.
TP H Chí Minh tháng 6/2013
Tr n Trung Hi u
S phát tri n m nh m c a m ng máy tính tồn c u và nh ng u c u ngày
càng cao trong các d ch v m
u ki n ho
ng cho nhi u hi m h a
v an ninh m
p m ng, sâu máy tính, virus, spam
u này cho
th y, vai trò c a m t h th ng an ninh m ng m nh m là c n thi
h t. H th ng phát hi n xâm nh p m ng (NIDS) là m t gi i pháp an ninh có th
ng yêu c
i v i NIDS, các gi i thu t và tác v
u
c xem là n n t ng thi t y
uyên nhân gây gi m
hi u su t c a h th ng khi mà s
ph c t p c a các t p quy lu t ngày
u nghiên c u t p trung vào vi c hi n th c tác v so
trùng m u này xu ng ph n c ng.
Lu
trình bày vi c thi t k , xây d ng và hi n th c m
m u d a trên n n t ng FPGA cho vi c x lý n i dung ph n thân gói d li u c a
h th ng NIDS. Máy so trùng này có th làm vi c t
Gbps và h tr
y
các d ng lu t khác nhau c a ph n m m phát hi n xâm nh p m ng mã ngu n
m Snort. N i dung c a lu
c phân làm hai ph n chính: ki n trúc
ph n c ng kh c
ng h p lu t.
Ki n trúc ph n c ng kh c u hình trình bày thi t k và hi n th c máy so trùng
u trên chip FPGA bao g m vi c so trùng m
ng và
k t h p các ràng bu
h tr m t lu t NIDS hoàn ch
i v i so
trùng m
K t qu th
nghi m cho th
hi u qu v tài nguyên trong ki n trúc này v i vi c h tr
c t p ký t
n 115K. i v i so trùng
m
ng, lu
nh. Bên
c nh ki n trúc truy n th ng, lu
xu
chia s m u
con infix, suffix gi a các m
ng v
hi u d ng v tài
nguyên ph n c ng. Th nghi m cho th y, thi t k này ti t ki
n 42%
LUT và 32%FFs so v
n th ng.
ng h p lu t, lu
ình
và phát tri n các cơng c cho phép t
ng phân tích và xây d ng máy so trùng
u t t p lu t c a h th ng phát hi n xâm nh p m ng.
Ki n trúc ph n c
c ki m tra v i t p quy lu t c a Snort.
c ki m
c th c hi n thành công c trên ph n m m v i công c mô ph ng c a
Xilinx và trên ph n c ng v i n n t ng phát tri n ng d ng m ng NetFPGA.
II
Widespread development of the internet and increasing demand on network
services have made computer network more vulnerable to many threats, such as
intrusions, worms, viruses and spam. Therefore, the role of network security
system has become more and more crucial. Network intrusion detection system
(NIDS) is one such system that monitors network traffic and detects intrusions
and malicious activities. Multi-pattern matching is a critical mechanism in NIDS
and has been considered as a bottleneck of software-based NIDS as the number
and complexity of signature have recently increased. In order to speed up this
process, recent researches have focused on hardware-based pattern matching
engine.
This thesis provides a FPGA-based multi-pattern matching engine for support
packet payload inspection on NIDS. The engine can work at Gbps throughput
and completely support Snort NIDS signature set. The thesis contributions are
mainly made up from two parts: Reconfigurable hardware, and pattern analyzer
and complier.
The reconfigurable hardware provides hardware architecture for multi-pattern
matching on FPGA which includes matching static patterns, matching dynamic
patterns, and combining these matching results for a complete NIDS signature.
For matching static patterns, the thesis proposed to use Cuckoo Hashing
approaches. Experimental static matching engine could support more than 8000
patterns with character size of 115K. The thesis utilizes Non-deterministic Finite
Automata for matching dynamic patterns and provides novel technique for
sharing common infix, suffix across pattern set. The technique improves
hardware utilization of dynamic pattern matching engine. Required hardware
resources of matching engine have been reduced up to 42% LUTs and 32%FFs
compared to traditional approaches.
The pattern analyzer and complier provide an automatic and fully
configurable approach to analyze NIDS signature set and construct multi-pattern
matching engine.
The proposed multi-pattern matching architecture has been evaluated using
Snort NIDS signature set. Experimental system has been verified on software
using Xilinx simulation tool and deployed on NetFPGA platform.
III
ng, ngoài nh ng tài li u tham kh o và các tài li u khác
ng
n
u
là k t qu nghiên c u c a chính tơi và do tơi t so n th o.
N u có b t c sai ph m nào so v i l i cam k t, tơi xin ch u các hình th c x
nh.
Tr n Trung Hi u
IV
L
................................................................................................................... I
TÓM T T LU
................................................................................................. II
ABSTRACT ................................................................................................................... III
L
.......................................................................................................... IV
M C L C......................................................................................................................... V
M C L C HÌNH ..........................................................................................................VII
M C L C B NG .......................................................................................................... IX
GI I THI U ....................................................................................... 1
1.1 Tính c p thi t c
1.2 Phát bi u v
1.3
tài ...................................................................................... 1
................................................................................................. 2
a lu
1.4 C u trúc lu
........................................................................................ 3
................................................................................................ 3
KI N TH C N N T NG .................................................................. 4
2.1 H th ng phát hi n xâm nh p m ng .................................................................... 4
2.1.1 Snort IDS .............................................................................................................. 4
2.2 So trùng m u ...................................................................................................... 5
2.3 T ng quan các nghiên c u
................................................................... 6
trùng m
.......................................................................... 6
u bi u th c chính quy ................................................ 8
2.3.3 V
x lý các ràng bu c k t h
u........................................................ 8
Cuckoo .................................................................................. 9
máy tr ng thái ............................................................................ 10
2.5.1 Máy tr
nh .................................................................................... 11
2.5.2 Máy tr
nh ......................................................................... 11
2.6 NetFPGA Platform ............................................................................................ 13
TH NG NIDS
3.1 T
T NG QUAN X
16
d li u
LÝ PH N THÂN GÓI D
LI U CHO H
c c a Snort................................................................... 16
3.1.1 C u trúc lu t c a Snort ...................................................................................... 17
3.1.2 Phân lo i m u .................................................................................................... 18
3.1.3 Các ràng bu c và k t h p m u .......................................................................... 20
3.2 X lý n i dung gói d li u trên ph n c ng ......................................................... 21
3.2.1 Phân tích và t ng h p lu t ................................................................................. 22
V
3.2.2 Ki n trúc ph n c ng ........................................................................................... 23
HI N TH C MODULE PH N C NG......................................... 25
4.1 Static Pattern Matching Module........................................................................ 25
4.1.1 Cuckoo Pattern Matching Unit (CPMU) ............................................................. 25
4.1.2 Long Pattern Matching ...................................................................................... 28
4.2 Dynamic Pattern Matching Unit ........................................................................ 29
4.2.1 Module giao ti
u ......................................................................................... 31
4.2.2 Module Detect Engine ....................................................................................... 32
4.2.3 Module giao ti p cu i (PostInterface) ............................................................... 38
4.3 Pattern Combine Module .................................................................................. 38
CH
PHÂN TÍCH VÀ X
LÝ T P LU T ............................................ 44
5.1 Compile Static Pattern ...................................................................................... 45
5.1.1 X lý các m u ng n ............................................................................................ 46
n m u và x lý m u dài ....................................................................... 47
5.2 Dynamic pattern Compiler ................................................................................ 47
5.2.1 Ti n x lý và trích xu t t p chia s infix ............................................................. 47
5.2.2 Xây d ng ki n trúc máy tr ng thái NFA ............................................................. 49
5.2.3 Ánh x sang ki n trúc ph n c ng ....................................................................... 52
M NGHI M H TH NG ............................. 58
n trúc so trùng m
................................................................. 58
n trúc so trùng m
ng ............................................................... 62
6.3 Th nghi m h th ng........................................................................................ 65
T NG K T ....................................................................................... 68
7.1 K t qu lu n
............................................................................................... 68
ng phát tri n ...................................................................................... 68
TÀI LI U THAM KH O ............................................................................................ 69
VI
HÌNH 1-1 C U TRÚC CHÍNH C A NIDS...................................................................................................... 2
HÌNH 2-1 TRI N KHAI NIDS TRONG H TH NG M NG............................................................................. 4
HÌNH 2-2 CÁCH TH C CHÈN VÀO B NG T1 T2 S D NG CUCKOO HASHING ......................................... 9
HÌNH 2-3 M T MÁY TR NG THÁI CH P NH N CHU
................................................................ 10
HÌNH 2-4 DFA CH P NH N T T C CÁC CHU I BIT CH A ÍT NH T 2 BIT 1. .......................................... 11
HÌNH 2-5 NFA CH P NH N CÁC CHU I BIT K T THÚC B I 00 HAY 0110 ............................................... 11
HÌNH 2-6 NFA CH P NH N M T KÝ T
........................................................................................ 12
HÌNH 2-7 K T N I HAI BI U TH C CHÍNH QUY CON .............................................................................. 12
HÌNH 2-8 LU T LUÂN PHIÊN HAI BI U TH C CHÍNH QUY ...................................................................... 12
HÌNH 2-9 NFA BI U DI N * CH P NH N M T CHU I B T K G M C CHU I R NG ........................... 13
HÌNH 2-10 NFA BI U DI N ?CH P NH N KHƠNG HAY CH M T CHU
HÌNH 2-11 NFA BI U DI N + CH P NH N M T S
HÌNH 2-12 NFA BI U DI
U VÀO. ............................... 13
U VÀO....................................... 13
C XÂY D NG THEO CÁC QUY T
N. .................... 13
HÌNH 2-13 KI N TRÚC NETFPGA ............................................................................................................. 14
HÌNH 3-1 VÍ D M T LU T D NG PLAIN TEXT TRONG SNORT .............................................................. 16
HÌNH 3-2 VÍ D RULE HEADER ................................................................................................................ 17
HÌNH 3-3 M I LIÊN QUAN C
.................................... 21
HÌNH 3-4 MƠ HÌNH GIAO TI P D LI U C A MODULE X LÝ N I DUNG GĨI D LI U ........................ 22
HÌNH 3-5 QUY TRÌNH T NG QT PHÂN TÍCH X LÝ LU T VÀ XÂY D NG H TH NG ......................... 23
HÌNH 3-6 MƠ HÌNH T NG QT KI N TRÚC PH N C NG CHO MODULE PAYLOAD PROCESSOR......... 24
HÌNH 3-7 MINH H A KI N TRÚC MÁY TR
SO TRÙNG M U
NG
...... 24
HÌNH 4-1 KI N TRÚC T NG QUÁT H TH NG X LÝ PH N THÂN GÓI D LI U .................................... 25
HÌNH 4-
T NG QUÁT CPMU ...................................................................................................... 26
HÌNH 4-3 B NG PHÂN B CHI U DÀI M
NG V I CÁC NHĨM LU T ....................................... 26
HÌNH 4-4 KI N TRÚC MODULE CUCKOO ................................................................................................. 27
HÌNH 4-5 KI N TRÚC LIÊN K T CÁC CHU I TRONG LONG PATTERN MATCHING ................................... 28
HÌNH 4-6 KI N TRÚC T NG QUAN MÁY SO TRÙNG BI U TH C CHÍNH QUY ......................................... 30
HÌNH 4-7 C U TRÚC NHĨM SO TRUNG BI U TH C CHÍNH QUY (REMG) .............................................. 30
HÌNH 4-8 C U TRÚC C A MODULE GIAO TI
HÌNH 4-
U ............................................................................... 31
NH D NG M T ENTRY TRONG FIFO .................................................................................... 31
HÌNH 4-10 D
U RA C A MODULE GIAO TI
HÌNH 4-11 MƠ HÌNH CÁC KH
HÌNH 4-12 MƠ HÌNH T NG QUÁT KH
U ............................................................ 32
N: A. STATE BLOCK; B. START BLOCK; C. END BLOCK. ..... 33
............................................................................ 33
HÌNH 4-13 KI N TRÚC KH I CRB CHO TH C CHÍNH QUY
.............................................. 34
HÌNH 4-14 KI N TRÚC KH I CRB.A, T NG QUÁT. B, KH I AT LEAST. C, EXACTLY & BETWEEN. D, AT
MOST............................................................................................................................................. 35
HÌNH 4-15 MƠ HÌNH T NG QT CHIA S INFIX GI A CÁC REME ........................................................ 35
VII
HÌNH 4-16 HAI CH
HO
NG C A LOGIC CELL ........................................................................... 36
HÌNH 4-17 VÍ D CHIA S INFIX GI A HAI PATTERN EATING VÀ EARNING. ........................................... 36
AB[^AB]*B ............................................................... 37
HÌNH 4-18 MƠ T M CH SO TRÙNG CHO M
HÌNH 4-19 C U TRÚC C A MODULE GIAO TI P CU I ............................................................................ 38
HÌNH 4-20 KI N TRÚC PHÂN LO I .......................................................................................................... 39
HÌNH 4-21 KI N TRÚC X LÝ CÁC NHÓM LU T ...................................................................................... 39
HÌNH 4-22 KI N TRÚC CONTRAIN VERIFY UNIT ...................................................................................... 40
HÌNH 4-23 KI N TRÚC X LÝ LU T K T H P NHI U M
HÌNH 5-
HO
I TI P .............................................. 42
NG PH N M M PHÂN TÍCH VÀ X LÝ LU T ................................................. 45
HÌNH 5-2 GI I THU T THÊM M I M U NG N ....................................................................................... 46
HÌNH 5-3 GI I THU
N CHU I DÀI ...................................................................................... 47
HÌNH 5-4TRÌNH T X LÝ C
C T NG H P M
HÌNH 5-5 CÂY CÚ PHÁP CHO PC
NG ............................................................. 49
MIP){2,10}\
................................................ 51
HÌNH 5-6 C U TRÚC NFA SINH RA T CÂY CÚ PHÁP .............................................................................. 51
HÌNH 5-7 C U TRÚC NFA SAU KHI RÚT G N .......................................................................................... 52
HÌNH 5-8 CHIA S PREFIX GI A HAI M
NG A(D|BC)E VÀ ABCD .................................................... 52
HÌNH 5-
GI I THU T XÂY D NG KI N TRÚC RTL ....................................................................... 53
HÌNH 5-
C XÂY D NG SUBREGEX UNIT VÀ COUNTCOMP UNIT T CHU I "/MIP/,2,10" ... 55
HÌNH 6-1 K T QU XÂY D NG B NG TRA C U CHO T P M U PHÂN BI T CH HOA CH
HÌNH 6-2 K T QU XÂY D NG B NG TRA CHO T P M U KHÔNG PHÂN BI T CH HOA CH
NG. . 60
NG
...................................................................................................................................................... 60
HÌNH 6-3 K T QU S D NG TÀI NGUYÊN VÀ T
HÌNH 6-4 MƠ PH NG KI M TRA CH
HÌNH 6-
X LÝ C A BA KI N TRÚC. ............................... 63
TH NG ..................................................................... 66
K T N I M NG KI M TRA H TH NG TH NGHI M. ................................................. 66
HÌNH 6-6 K T QU TR V C NH BÁO GÓI D LI U CĨ CH
C .............................................. 67
HÌNH 6-7 K T QU TH NGHI M TRÊN TRANG WEB ............................................................................. 67
VIII
B NG 2-1 B NG CHUY N TR NG THÁI C A NFA TRONGHÌNH 2-5........................................................ 12
B NG 3-1 B NG TH NG K T P LU T SNORT PHIÊN B N 2.9.41.......................................................... 18
B NG 3-2 B NG TH NG KÊ T P LU T SNORT PHÂN THEO 7 NHÓM LU T. .......................................... 21
B NG 4-1 CÁC TOÁN T VÀ CÁC KH I LOGIC HI N TH
B NG 4-2 CÁC THÔNG S
NG. ............................................. 32
M VÀ SO SÁNH ............................................................. 34
B NG 4-3 C U TRÚC D LI U PATTERN COMBINE UNIT ....................................................................... 40
B NG 4-
ÈM V I M
................................................................................ 41
B NG 5-1 CÁC C
CX
C CLASSIFY AND FILTER RULE .............................. 44
B NG 5-2 CÁC C
CX
C COMPILE STATIC PATTERN ............................... 45
B NG 5-3 B NG MƠ T CÁC TỐN T
C H TR ................................................................ 48
B NG 5-4 B NG MƠ T THU C TÍNH CÁC KH I START BLOCK, STATE BLOCK VÀ END BLOCK. ............ 54
B NG 5-5 B NG MƠ T CÁC THU C TÍNH C A KH I CRB..................................................................... 54
B NG 5-6 M T PH N B NG BRAM CHO CÁC KÝ T
C XÂY D NG TRONG CÔNG C ................... 57
B NG 6-1 TÀI NGUYÊN BLOCKRAMS S D NG B I MÁY SO TRÙNG M
B NG 6-2 TH NG KÊ TÀI NGUYÊN MÁY SO TRÙNG M
B NG 6-3 S
NG M
TEX 2PRO 50 ................ 59
NG KÝ T TRONG T P M U TH NGHI M ..................... 59
B NG 6-4 B NG SO SÁNH HI U SU T C
B NG 6-5 B
.................................. 58
TRÙNG M
U SU T S D NG TÀI NGUYÊN C A MÁY SO TRÙNG M
.... 61
NG V I
CÁC KI N TRÚC KHÁC NHAU ......................................................................................................... 62
B NG 6-6 SO SÁNH V I CÁC K T QU NGHIÊN C U V SO TRÙNG M
............ 63
B NG 6-7 B NG TH NG KÊ T P LU T TH NGHI M ............................................................................ 65
B NG 6-8 K T QU T NG H P .............................................................................................................. 65
IX
1.1
Trong th
i ngày nay, m
n v i quy mô r t r ng trên toàn th
gi i và v i t
i s phát tri
ng v
pháp t n công trên m ng. Ch ng h
ch i
khác. Không nh ng th các lo i t n công này ngày m t nguy hi
u qu
do chúng gây ra ngày càng nghiêm tr
thi
ng là c n
h t.
Có nhi
c tri n khai áp d
(firewall), anti-virus. Tuy nhiên, do s
th ng
ng trong hình th c t n công, các m
th xu t hi n t i b t c v trí nào trong các gói d li u
có kh
ng l a
c h i có
t ra là c n có m t gi i pháp
p sâu vào tồn b n i dung c a gói d li u và so sánh v i các d u hi u
t n công n m trong m
d li
c ch n l c, t p h p s
lo i t n cơng m t cách chính xác và hi u qu
có th
c các
y sinh ra nhu c u s d ng h th ng
phát hi n xâm nh p m ng NIDS (Network Intrusion Detection System).
Do quy mô m ng ngày càng l n, t
và s
m ng máy tính hi
i hàng ch c Gbps
gi i pháp NIDS trên ph n m m ch
Mbps s không th x lý v
c t p quy lu
tr
ng k p t
mb
ct
truy n d li
i kích
nh và tính chính xác c a h th ng càng
Vì v y các gi i pháp ph n c ng (hardware) cho bài toán này là c n thi t
và t t y u. V
m thu n l i c a mình thì vi c hi n th c NIDS trên ph n c ng
bi t là các thi t b ph n c ng kh l p trình (Field Programable Gate Array- FPGA)
c nghiên c u ng d ng r t m i m và có nhi u ti
Nguyên t c ho
ng c a h th ng NIDS d
c
t
n trên th gi i.
quan tr ng là t p quy lu t
d ng t n công và các gi i thu t so trùng m u. H th ng NIDS s giám sát và
ki m tra vào sâu bên trong n i dung gói d li u, áp d ng các gi i thu t so trùng m
ki m d u hi u t
c mô t trong các quy lu
ti
i thu t so trùng m u trên ph n m
nhanh chóng v s
ph c t p c a các lu
vi
ng t
ng truy n m
tìm
uc i
u ngày càng cao trong
n hàng Gigabit/s, vi c gi i quy t bài toán so trùng
m u trên các các b x lý ph c v m
ra không
1
hi u qu . Các nghiên c u g
b
u t p trung vào các ki n trúc so trùng m u trên các
ph n c ng kh l
[1] [2] [3] [4]
tài lu
p trung vào bài toán x lý n i dung ph n thân gói d li u cho h th ng
phát hi n xâm nh p m
t ph n quan tr
nh trong t
và
chính xác c a tồn b h th ng.
1.2
packet
Traffic
Packet Classification
(Header Processor)
Network Intrusion
Detection System
Alert
Rule Managment
Events
Payload data
Packet Collector
and Decoder
Events
Header data
TEMAC Core
Pattern Scanning
(Payload Processor)
FPGA
Hình 1-1 C u trúc chính c a NIDS
Hình 1-1 mơ t các thành ph n ch y u c a h th ng NIDS trên ph n c ng. Lõi Ethernet
Mac nh n ethernet frame t m ng bên ngoài và chuy n cho module Packet Collector and
Decoder. Module này th c hi
m và gi i mã d li u thành các ph n header và payload. Ph n
header bao g m các thông tin: giao th
cho module x lý ph
a ch IP ngu
a ch c ng ngu
n
u gói d li u (Header Processor). Ph n payload gói d li
c
chuy n cho module x lý ph n thân gói d li u (Payload Processor). Các module x lý ph n
u và ph n thân gói d li u th c hi n các thu t toán tìm ki m m u và tr k t qu v cho module
qu n lý lu t (Rule Management). Module này s t ng h p k t qu , d
mà s
c tính c a lu t
nh báo phù h p.
V
quan tâm c a lu
ng module x lý ph n thân gói d li u (Payload
Processor) cho h th ng phát hi n xâm nh p m ng. Nguyên t
n c a module này là th c
hi n các thu t tốn so trùng và tìm ki m m u. Do hi n th c hoàn toàn trên ph n c ng (chip
FPGA), khi thi t k ph
lý. Ngoài ra m t v
nv
ti t ki m tài nguyên, tính m m d o và t
c n quan tâm khác n a là kh
lu t m i.
2
p nh
x
ng h th ng v i t p
1.3
Nh
a lu
-
Ki n trúc x lý n i dung ph n thân gói d li u cho h th ng phát hi n xâm nh p m ng
trên FPGA.
-
Ki n trúc so trùng m u, cho phép x lý k t h p m
v v trí và tính ch t m u.
-
Ki n trúc so trùng m
ng d a trên máy tr
nh, t
nguyên v i ki n trúc chia s prefix, infix, suffix và h tr toán t l p ràng bu c.
-
Ki n trúc ph n c
ng h p lu t, cho phép t
ng hóa
xây d ng h th ng khi có nh ng c p nh t v t p lu t h th ng phát hi n xâm nh p m ng.
-
Các k t qu nghiên c u và th c nghi
n lu
c công b trong
m t t p chí chuyên ngành qu c t c a Sciencedirect (ISI index) và m t k y u h i ngh
IEEE.
ng v i nh ng ràng bu c
tài
1.4
Ph n ti p theo c a lu
n th c n n t
tài, bao g m h th ng phát
hi n xâm nh p m ng, các gi i thu t so trùng m u và các k t qu nghiên c
T ng quan v v
x lý n i dung ph n thân gói d li u cho h th ng phát
hi n xâm nh p m
m, c u trúc, và các cơng vi c th c hi n c a lu
n.
Trình bày thi t k ki n trúc ph n c ng c a module x lý n i dung ph n thân
gói d li u.
Ch
i pháp, quy trình t ng h p và phân tích lu t, cho phép c p nh t và
xây d ng nhanh chóng h th ng.
m nghi m h th ng, bao g
m u, và ki m nghi m h th ng trên board NetFPGA.
ng 7: T ng k t các k t qu c a lu
xu
3
n trúc so trùng
ng phát tri n ti p theo.
2.1
H th ng phát hi n xâm nh p m ng (Network Intrusion Detection System - NIDS) là m t
gi i phápan ninh m
c s d ng ph bi n ngày này. Vai trò c a NIDS trong h th ng m ng
ng m ng vào ra h th ng nh m phát hi
nh báo k p th i. M
NIDS so v i h th
n i dung ph
c h i, t n
m khác bi t quan tr ng c a h th ng
ng l a
ng l a ch
u gói d li
n d a trên
và tìm ki m sâu vào bên trong n i
dung gói d li u. Hình 2-1 minh h a m t tri n khai c a NIDS trong h th ng m ng.
Hình 2-1 Tri n khai NIDS trong h th ng m ng
có th phát hi n ra các t
lu
ng m ng, NIDS d a vào m t t p các quy
c. T p quy lu t này chính là nh ng m u d li u (pattern) thu th p
ng t n công, xâm nh p m
n i dung xu t hi
ng truy n m ng, NIDS s thu th p phân tích vào sâu bên trong n i
dung gói d li u và tìm ki m s xu t hi n c a các m u này. M
lu
c th a, NIDS s
i khi có
nh báo v
c h i phát hi
u ki n c a m t quy
c.
2.1.1 Snort IDS
SNORT là m t ph n m m phát hi n xâm nh p m ng mã ngu n m
c p mi n phí b i Sourcefile [5]. Phiên b
u tiên c a SNORT
4
c phát tri n và cung
i sáng l p công ty Sourcefirecông b
n nay SNORT không ng ng
c c i ti n và tr thành m t trong nh ng gi i pháp b o m
c an ninh m
c tính có kho
c s d ng ph bi n nh t trong
t download SNORT m i tháng t
Website.
SNORT
Linux, Window, MacOS và Solaris
SNORT là phát hi n xâm
SNORT
d a trên
(
gói
(drop), cho qua (
(log).
SNORT
SNORT
SNORT,
SNORT
2.2
So trùng m u là m t tác v
n trong h th ng phát hi n xâm nh p m ng.Tác v này có
th hi u là vi c tìm ki m s xu t hi n c a m t ho c nhi u m
trong m t chu i liên t c các ký t (byte).M u
ký t (byte) v i chi u dài c
(m
ng).M
c mô t
nh (m
c bi
i d ng m t chu i các
c chu i các ký t xen k v i các siêu ký t
n v
nh d ng bi u th c chính quy (regular
expression).
c am
c trong
ng.
o
"|81 F1 03 01 04 9B 81 F1 0 1|"
5
Dynamic/
mơ
o
/^.{4,9}cgi-
-
Bài tốn so trùng m u có th phân làm hai lo i: so trùng m
-patern matching)
u (multi-pattern matching). So trùng m
xu t hi n c a t ng m
n là tìm ki m s
c l p trong chu i d li
i
s k t h p tìm ki m c a nhi u m u có quan h ràng bu c v i nhau. T p quy lu t c a Snort IDS
là m t ví d
n hình c a bài tốn tìm ki
u.Xét ví d m t lu t tìm ki m trong Snort
i.
content:"|00 00 00|";depth:3; content:"|CD C3 13|7";within:4;distance:1;
Lu t trên phát hi n ho
ng c a backdoor orifice 20006
và có th hi
ng m ng
u tiên c a gói d tin tcp m
|00 00 00|
b qua m t ký t và tìm ti p trong ph m vi 4 byte ti p theo m u |CD C3 13|7
iv
u, bên c nh vi c tìm ki m s xu t hi n c a t ng m
ph i có
ph c t
i và k t h p v i tr
u là m t bài toán
c bi t là x lý trên ph n c ng.
N
c th
m c a t p m u h th ng phát hi n xâm nh p m ng s
n ti p theo c
c phân tích
gi i thi u m t s các nghiên c u
so trùng m u trên ph n c
cs
d ng trong lu
máy tr
i
ng s d ng
nh.
2.3
2.3.1
c chia làm ba d ng ph bi n sau: D ch
D ch và so sánh (shift-and-compare) [6] [3]:
cao nh
p c n d dàng nh t và có t c
n d ng tài nguyên LUT c
ng các b so sánh. Thi t k
các chu i
ng d
6
x lý c a thi t
k . Trong [6], tác gi chia chu
u
dài k, m
ng v i m t
tr ng thái pipeline. Nh v y h th ng có th x lý k kí t ngõ nh p m i chu k xung clock.
Trong [3], tác gi tái s d ng k b so sánh chu
khác nhau nh
li u ngõ nh p t i k v trí offset
c k byte m i chu k
ti p c
ct
i nhi
hi n th c.
Máy tr ng thái (State machine) [1] [4] [2]: Trong [1]
ng bi u th
ng s chuy n m u
n th c s d
NFA (Non-deterministic Finite Automata).
ng thái
m c a bi u th c chính quy là có th bi u di n
k t h p nhi u m
d ng tr c ti p tài nguyên l p trình c
hi n th c.M t cách ti p c n
khác là hi u ch nh gi i thu t Aho-Corasick [7]
[4]
hi n th c trên ph n c ng hi u su t cao [2],
tránh xây d ng m t máy tr ng thái ph c t p cho m t t p l n các m u, Aldwairi và các
ng s chia t p m u thành các t p nh
a trên lo i t n công [4]. Các máy tr ng thái cho
các t p con này có th ch
u su t c a h th ng. M t c i ti n ti p
theo chia nh máy tr ng thái thành 8 máy ch y song song, v i m i máy ch x lý 1 bit [2].
ng b nh c n thi
ng th
ut
b ng tr ng thái gi
x
ng d a trên Aho-Corasick
s d ng k t h p các kh i b nh onchip c a FPGA v i các tài nguyên l
này cho t
i cao và h tr kh
[8] [9] [10]
p nh t t p m u m i d dàng.
pc
c s d ng khá ph bi n trong
các ng d ng b o m t khác. Tuy nhiên trong h th ng NIDS, nó ch v a
t qu
t tr i, v i t
c khá t t. So v
ch p nh
c ng XOR cho các t p m
n
a ch
dài 3,4,5,6 bytes. Các m
dài l
dài ng
a
ng c
pháp này là th c hi n ki m tra m t chu
dài L kí t có thu c vào m t t
c hay không.Ch khi chu
c phát hi n chính xác m i c
pháp hash cuc
h n ch vi
u vào
c t gi n i dung chu i chính xác.Bài
xu
ng L kí t
c chia nh và
hash c a các chu
tìm ki m chu i chính xác trong b nh
a ch , tác gi dùng b nh th c
báo [9]
t ki m ph n c ng
c.Trong [8], tác gi s d ng hàm hash CRC hi n th c v i
tái s d ng k t qu hash c a các m
cs d
c ng d ng g n
c th c hi n. M
u vào thu c vào t p m u này, m t
ng ti n c n khác s d
xu t trong [10], tác gi xây d ng kh
dài t 1-16. Vi c so trùng các chu
dài l
các k t qu c a chu i ng
c l p cho các chu i
c th c hi n b ng cách tái s d ng
u
7
qu v s d ng b nh t t nh t.Ngoài ra các tác gi
nh
xu
p
ng t p m u.
2.3.2
Trên th gi i vi c hi n th c so trùng bi u th c chính quy trên ph n c
c
nghiên c u khá r ng rãi. M t cách hi n th c h u hi u nh t trên các thi t b FPGAs là s d ng
mơ hình máy tr ng thái h u h n FSM (Finite State Machine). Vi c tri
chia thành hai cách ti p c n là máy tr
và máy tr
c
nh Deterministic Finite Automata (DFA)
nh (Non-deterministic Finite Automata).
xu t các kh i logic hi n th c NFA
n cho các toán t
Concatenation (.) , Kleene-Star (*), Union (|) trên FPGAs [11].Clark và Schimmel s d ng gi i
pháp pre-
chia s b so sánh ký t
c
khá nhi u tài nguyên ph n c ng [12].
thành nguyên m u cho nhi u
nghiên c u sau này [13] [14] [15].
[16]
i cho vi c bi u di n NFA trên chip FPGA. Trong
ki
t sau các m
Prasanna.Nh
a Sidhu và
i gian so trùng ký t có th ch ng l p lên th i gian chuy n tr ng thái và
k t qu là m
ng b
c sinh ra s có th ho
ng
t ns
So v
c quan tâm
[17] s d
k c ah
x lý m t s ph n c a bi u th c chính quy.Thi t
c hi n th c trên h th ng FPX (Field programmable Port Extender).H hi n th c
21 bi u th
ct
n th
1.18Gbps.Kumar [18]
xu t mơ hình DFA v
DFA D2FA). M c tiêu c
ti t ki m
G
ms
các ki
tr ngõ nh p (Delayed Input
ng các chuy n tr
a
c tài nguyên h th ng.
u c a h c vi n Kyushu [14] gi i thi u m t thi t k d ng lai ghép
k t h p gi a NFA và DFA. H s d ng mơ hình ki
t c và các ký t
t s ch nh s a cho
x lý các chu i kí t liên
c l p trong bi u th
n d ng các thanh ghi d ch và
x lý các toán t ph c t p.
2.3.3
M cd
so trùng các m
x lý k t h p các m
cl
c nghiên c u khá ph bi n,
th a mãn các ràng bu c v v trí và tính ch t c a
m u thì khơng nhi u. Trong [19], Baker và Prasana m r ng
8
h tr các ràng bu c distance, within. H t n d ng các b
th . Vi c x lý ràng bu c nocase, distance, within
là s d ng bi u th
m và so sánh cho t ng m u c
c nh
thay th cho các m
Schimmel vi t l i t p m
t h p. Trong [20], Clark và
a ràng bu c và hi n th c b
x lý tri
là t n tài nguyên d
n gi m kh
l nm
p nh t.
2.4
n. M t các ti p c n khác
ng
các ràng bu
p ph
m y u chung
r ng, khơng thích h p cho vi c hi n th c s
ng
Cuckoo
Cuckoo Hashing [21]
xu t b
là m t gi i thu t cho phép
tìm ki m chu i v i th i gian tìm ki m h ng s . Cuckoo Hashing s d ng hai hàm hash v i 2
b
T1 và T2. M i khi chèn m t m u m i vào h th ng, m u có th n m 1 trong
hai b ng T1 ho
i c hai.Vi c tìm ki m m
b ng ngay c
it
n tra
ng h p x u nh t.
Hình 2-2 mơ t cách th
chèn thêm m t m u m i vào các b ng tra.Trong hình,m
có th chèn vào 2 v trí c a b ng T1 và T2.N u có ít nh t 1 trong 2 b ng cịn tr ng thì x s
chèn vào 1 trong 2 b
u khơng có b ng nào tr
ch c a 1 giá tr trong 1 b ng,
m ch
ti p t
n khi có ch
y
x
c
x s chi m
y s là giá tr b
m ch
c chèn vào b
b
n ra ti p t c
chèn vào trong b ng T1 ho c T2.
Hình 2-2 Cách th c chèn vào b ng T1 T2 s d ng Cuckoo Hashing
Gi i thu t này có kh
m ch
à
i
n th c trên ph n c ng, nh vào tính ch
ng v i vi c Write d li u
ch
n c a vi c
Read First trong Block
Ram c a FPGA.M t nghiên c u s m nh t v hi n th c so trùng m
i thu t
xu t trong [22]. Các tác gi thi t k ki n trúc so trùng m
d
ki n trúc so trùng m
i hàm hash SAX (Shift-Add-Xor). Trong lu
áp d ng thi t k trong [22] v i m t s
9
phù h p v i
tính ch t m u trong t p quy lu t c a h th ng phát hi n xâm nh p m ng.Chi ti t v thi t k ph n
c ng s
c trình bày c th
.
2.5
ng thái (Finite State Machine
toán h
FSM) là m t khái ni m tr
thi t k m
m t mơ hình bao g m m t s
n lý. FSM th c ch t là
ng h u h n các tr ng thái, s chuy n tr ng thái gi a chúng
mô t m
u ki
c th a.FSM có m t b
nh n i h u h
có th
c mô t
ng
i dùng.Ho
ng c a FSM
t phát t i m t tr ng thái (g i là tr ng thái b
u start state),
ng thái chuy n ti p d
c khi k t thúc t i m t tr ng thái
có m t tr
u là k t thúc thành cơng c a ho t
ng (g i là accept state). N u m t FSM bi u di n m t chu i, ta nói FSM ch p nh n chu
Hình 2-3 M t máy tr ng thái ch p nh n chu i
FSM cung c p hai cách ti p c n là máy tr ng thái h u h
Automata
nh (Deterministic Finite
DFA) và máy tr ng thái h u h
nh (Non-deterministic Finite
Automata).
m khác bi t chính gi a hai cách ti p c n c a máy tr ng thái h u h n n m
ch hàm
chuy n tr ng thái c a chúng. Hàm chuy n tr ng thái c a DFA tr v m t k t qu là m t tr ng
ti p và hàm có ch
NFA tr v m t t p các tr ng thái, có th là
m tt pr
th
t tr ng thái cùng tích c c t i m t
m, DFA ch cho phép m t tr ng thái tích c
i gian chuy n tr ng thái c a
i NFA, tuy nhiên DFA l i ch u s bùng n tr
nh
m c a t ng mơ hình này t o nên nh ng thu n l
trên các thi t b ph n c ng.
10
i NFA. Chính
n th c
2.5.1
M t máy tr ng thái h u h
th
ng bao g
nh (Deterministic Finite Automata
DFA) là m
nh bi u di n tr ng thái và các c nh bi u di n s chuy n tr ng thái.
M
start state và m t hay nhi
state. S chuy n tr
final state hay accepting
c bi u di n b
ng các ký t
i là các c nh ra.T t c các c nh
u vào.DFA không cho phép hai c nh ra c a cùng m t
tr ng thái có cùng m
i m t th
m, ch có m t tr ng thái bi u di n
tr ng thái hi n t i.
Hình 2-4 DFA ch p nh n t t c các chu i bit ch a ít nh t 2 bit 1.
2.5.2
M t máy tr ng thái h u h
nh (Non-deterministic Finite Automata
là m t DFA v i m t s
r ng. NFA cho phép nhi
t tr ng thái bi u di n
tr ng thái hi n t i trong cùng m t th
nh ra xu t phát t m t
tr ng thái có cùng m t nhãn. Khơng gi
có nhãn (khơng có ký t
NFA)
nh ra có th khơng
u vào), các c nh này g i là chuy n tr ng thái epsilon ( -transition).
Hình 2-5 NFA ch p nh n các chu i bit k t thúc b i 00 hay 0110
Hình 2.10 ch ra 1 NFA tích c c khi nh n chu i bit k t thúc b
tr ng thái b
u q0 có 2 c nh ra v i cùng ký t
i tr ng thái hi n
t i là q0, NFA s tích c c c q0 và q1. Khi q1 tích c c q3 s t
c c do q1 có c nh ra t i q3. N u ký t vào ti
vào ti
q2 s tích c
q4 s tích c c (k t thúc). N u ký t
ng th i t t tr ng thái tích c c c a q3. Lúc này, các tr ng thái
tích c c c a NFA g m có q0và q2. Ký t
ký t
ng chuy n sang tr ng thái tích
p theo s chuy n tr ng thái t q2 sang q3
tích c c tr ng thái q4.
11
B ng 2-1 B ng chuy n tr ng thái c a NFA trongHình 2-5
q0
q1
q2
q3
*q4
_
q3
_
_
_
0
{q0, q1}
_
_
q4
_
M t NFA bi u di n m t bi u th c chính quy có th
nguyên t
1
q0
q2
q3
_
_
c xây d ng b ng cách s s ng các
n.
Hình 2-6
Hình 2-6 NFA ch p nh n m t ký t
chính quy con.
Hình 2-7 K t n i hai bi u th c chính quy con
c chính quy theoHình
2-8.
Hình 2-8 Lu t luân phiên hai bi u th c chính quy
12
(
Hình 2-9 NFA bi u di n * ch p nh n m t chu i b t k g m c chu i r ng
Hình 2-10 NFA bi u di n ?ch p nh n không hay ch m t chu
Hình 2-11 NFA bi u di n + ch p nh n m t s
B ng cách k t h p các quy t
u vào.
u vào
c trình bày trong ph n này, hồn tồn có
th xây d ng m t NFA bi u di n m t bi u th c chính quy ph c t
d ng NFA t bi u th c chính quy sau ((a*b)(c|d)) .
ký t
a
ng quy t c th
t ví d xây
c tiên, ta xây d ng NFA ch p nh n
* ta xây d ng NFA cho a* và NFA này
c k t n i v i NFA ch p nh n b. Song song v i thao tác trên, ta xây d ng NFA ch p nh n c
và d r i luân phiên chúng b ng quy t c th ba t o thành NFA cho(c|d). Cu i cùng k t n i
NFA(a*b) và NFA(c|d)
c NFA k t qu mơ t
Hình 2-12 NFA bi u di n ((a*b)(c|d))
Lu
hình 2.17
c xây d ng theo các quy t
áp d
c so trùng m
ng cho h th ng phát
hi n xâm nh p m ng.Chi ti t v thi t k , ki
th c máy tr ng thái s
n.
ng và hi n
c trình bày c th
a lu
2.6 NetFPGA Platform
NetFPGA là m t platform ph n c ng tái c u hình chi phí th p chun d ng cho m ng t c
cao. Trên board NetFPGA bao g m các kh i logic, b nh và các card Gigabit Ether
t
i s d ng có th xây d ng nên m t switch, router hay m t thi t b an ninh m ng. B i
13