Transcript 投影片 1
Author:
Xinming Chen ,Kailin Ge ,Zhen Chen and Jun Li
Publisher:
ANCS , 2011
Presenter:
Tsung-Lin Hsieh
Date:
2011/12/14
1
Introduction
Related Work
Background
Proposed Algorithm:AC-Suffix-Tree Algorithm
Performance Analysis
2
TCP and IP fragmentation can be used to evade
signature detection at IDS / IPS.
The common defense is buffering and reassembling
packets. However, buffering of out-of-sequence
packets can become impractical on high speed links
due to limited fast memory capacity.
3
In this paper, AC-Suffix-Tree, a buffer free scheme
for string matching is proposed, which detects
patterns across out-of-sequence packets without
buffering and reassembly.
This novel algorithm associates the classical AC
(ACA) algorithm with a pattern suffix tree to search
patterns with only the state numbers of AC
automaton and suffix tree stored.
4
What is the current situation of packet reordering in
Internet?
In 2005, Dharmapurikar found that packet
reordering in TCP traffic only affects 2-3% of the
overall traffic[6].
An older paper reports that 90% of the TCP packets
were reordered in the trace of Dec. 1997 and Jan.
1998 [3], but Dharmapurikar claims it was because
the older generation of router architecture.
5
Pattern Suffix Tree:
Let X = {abaaba ,ababab} , suffix set of X is
{a,ba,aba,aaba,baaba,b,ab,bab,abab,babab}
6
The return value contains the stop state and a “fact”
mark. Once the input string is not finished but there
is no available next state, fact is false; and once the
input string is finished but PST is not finished, fact is
true. So fact = true means str is a proper factor of
some patterns in X.
7
A simple situation of two packets’ reordering.
When packet y2 comes first, a pattern may exist
between the two packets only if some prefix of y2 is
one suffix of the patterns.
8
For example :yi=aaba , yj=abaa
stop at s6
append path(s6)
9
What if the pattern x crosses more than two
segments?
A information merging mechanism is used to merge
the PST state records in successive blocks.
the return value “fact” of PST is used to identify the
proper factor of x. fact = true means the entire
segment is a proper factor of x, thus needs to merge
the PST state with the predecessor segment.
10
Example :
Pattern set X = {abaaba, ababab}
Input Y = y1y2y3y4 , where
y1 = bbaa ,y2 = baba ,y3 = baab ,y4 = aabb
-> flow number
-> sequence number
-> length
-> state of ACA
-> state of PST
11
First input is y3: (baab)
passing y3 to both ACA & PST
Buffer contains (1,8,4,2,11,true)
12
Second input is y1: (bbaa)
passing y1 to both ACA & PST
Buffer contains (1,8,4,2,11,true) , (1,0,4,2,11,false)
13
Third input is y4: (aabb)
combine y4 with its predecessor (1,8,4,2,11,true)
ACA begin with s2 ,PST begin with s11
Buffer contains (1,0,4,1,8,false) , (1,8,8,0,12,false)
14
Fourth input is y2: (baba)
combine y2 with (1,0,4,1,8,false) & (1,8,8,0,12,false)
path(12) appended to y2’s tail -> bababaaba
ACA match with {abaaba,ababab}
Buffer clean all records with fid = 1.
15
Compression of Suffix Tree:
idea - using a suffix array instead of a tree
Pre-processing time will be longer but not the focus
16
Pattern set is chosen from snort ,released on
2010/07/22. no regular expressions included.
Use traces generated by their own program.
Running on PC Pentium 2-core CPU ,4GB RAM ,32bit XP
17
Processing speed for different traces with long set
18
Memory usage of AC and suffix tree
19
1,3,2,4,5,
6,7,8,9,10
1,4,5,6,7
8,9,10,2,3
1,3,4,6,7
8,9,2,10,5
20