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

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

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 (1.27 MB, 84 trang )

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



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/

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


×