string searching engine for virus scanning author : derek pao, xing wang, xiaoran wang, cong cao,...

15
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 1

Upload: owen-simon

Post on 18-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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

Page 2: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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.

Page 3: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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.

Page 4: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

4

QSV

Page 5: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

5

Page 6: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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 )

Page 7: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

7

Page 8: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

8

Page 9: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

9

Page 10: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

10

Aggregation Unit

Page 11: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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.

Page 12: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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.

Page 13: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

13

Performance

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

Page 14: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

14

Performance

Page 15: STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012

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.