150 likes | 272 Views
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.
E N D
String Searching Engine for Virus Scanning Author:DerekPao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher:TRANSACTIONS ON COMPUTERS, 2012 Presenter:Jia-Wei,You Date:2012/3/7
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.
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.
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 )
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.
AS_list : (active states list) Each active state is associated with a bit-mask, a reference locationand 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.
Performance ClamAV virus database (main.cvd version 51 released on 14 May 2009)
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.