String Searching Engine for Virus Scanning

Post on 06-Jan-2016

26 views 0 download

description

String Searching Engine for Virus Scanning. Author: Derek Pao , Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher: TRANSACTIONS ON COMPUTERS, 2012 Presenter: Jia-Wei,You Date: 2012/3/7. Introduction. - PowerPoint PPT Presentation

Transcript of String Searching Engine for Virus Scanning

1

STRING SEARCHING ENGINE FOR VIRUS SCANNING

Author: Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu

Publisher: TRANSACTIONS ON COMPUTERS, 2012

Presenter: Jia-Wei,You

Date: 2012/3/7

2

Introduction• Intrusion detection system (IDS) and anti-virus software

are essential security tools for today’s computer systems.

• Hence, the memory cost of pure AC-based methods cannot be lower than 8 bits per character.

• Updates to the pattern set in an anti-virus system can be quite frequent.

• However, if all virus signatures were to be stored in the on-chip embedded memory, it would require at least 20Mbyte-200Mbyte memory space.

3

Introduction• Quick sampling plus verification (QSV) approach.

• In our approach of performing string matching over a very large virus signature set (82888 static strings), only 1.4Mbyte on chip memory is required , about 1.4 bits per character of the signature set.

• The QSV system can be updated by only updating the lookup tables, without reconfiguring the circuit.

4

QSV

5

6

EX: input data : 0005 , : 1234 , checksum : abcd( 1234 : 0001 0010 0011 0010 => 10 , access entry 0004 + 2 of )EX: input data : 0005 , : 2391 , checksum : 74b9( 2391 : 0010 0011 1001 0001 => 11 , access entry 0004 + 3 of )

7

8

9

10

Aggregation Unit

11

pid, patLoc, refLoc, verified, which are the pattern ID, location of the last byte of the pattern found in the input stream, location of the last byte of the 16-byte prefix, flag indicating whether the pattern has been verified by a CRC unit respectively.

12

• AS_list : (active states list) Each active state is associated with a bit-mask, a reference location and an expiry location. The bit-mask is used to generate the address offset for accessing table A1. The reference location of an active state is equal to the location of the last byte of the segment (patLoc) that triggers the state transition. The expiry location is equal to the reference location plus the time-to-live counter retrieved from the lookup table.

• : table A0 stores all the transition rules originating from the initial state

• : table A1 stores the rest of the transition rules.• TTL : (time-to-live counter) is equal to the maximum

length among all segments that appear in the out-going edges of the corresponding next state.

13

Performance

ClamAV virus database (main.cvd version 51 released on 14 May 2009)

14

Performance

15

Performance• Using the Xilinx Virtex-5 XC5VSX240T device model

• Design uses 324 (63%) 36-Kbit block RAMs, 4878 (3.3%) LUTs, 6989 (4.7%) register bits and occupies 2163 (5.8%) slices.

• maximum system clock frequency is 200MHz

• 1.4 bits per character.