Author : Ozgun Erdogan and Pei Cao Publisher : IEEE Globecom 2005 (IJSN 2007) Presenter : Zong-Lin Sie Date : 2010/12/08 1.

Slides:



Advertisements
Similar presentations
Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol Li Fan, Pei Cao and Jussara Almeida University of Wisconsin-Madison Andrei Broder Compaq/DEC.
Advertisements

Multipattern String Matching On A GPU Author: Xinyan Zha, Sartaj Sahni Publisher: 16th IEEE Symposium on Computers and Communications Presenter: Ye-Zhi.
Fast and Scalable Pattern Matching for Content Filtering Sarang Dharmapurikar John Lockwood.
Space-Time Tradeoffs in Software-based Deep Packet Inspection Author: Anat Bremler-Barr, Yotam Harchol, and David Hay Published in Proc. IEEE HPSR 2011.
Equality Join R X R.A=S.B S : : Relation R M PagesN Pages Relation S Pr records per page Ps records per page.
1 Lecture 13: Cache and Virtual Memroy Review Cache optimization approaches, cache miss classification, Adapted from UCB CS252 S01.
1 Parallel Scientific Computing: Algorithms and Tools Lecture #2 APMA 2821A, Spring 2008 Instructors: George Em Karniadakis Leopold Grinberg.
A Scalable and Reconfigurable Search Memory Substrate for High Throughput Packet Processing Sangyeun Cho and Rami Melhem Dept. of Computer Science University.
Massively Parallel Cuckoo Pattern Matching Applied For NIDS/NIPS  Author: Tran Ngoc Thinh, Surin Kittitornkun  Publisher: Electronic Design, Test and.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
Segmented Hash: An Efficient Hash Table Implementation for High Performance Networking Subsystems Sailesh Kumar Patrick Crowley.
1 Fast Routing Table Lookup Based on Deterministic Multi- hashing Zhuo Huang, David Lin, Jih-Kwon Peir, Shigang Chen, S. M. Iftekharul Alam Department.
Reviewer: Jing Lu Gigabit Rate Packet Pattern- Matching Using TCAM Fang Yu, Randy H. Katz T. V. Lakshman UC Berkeley Bell Labs, Lucent ICNP’2004.
Using Cell Processors for Intrusion Detection through Regular Expression Matching with Speculation Author: C˘at˘alin Radu, C˘at˘alin Leordeanu, Valentin.
CSC1016 Coursework Clarification Derek Mortimer March 2010.
A Fast String Matching Algorithm The Boyer Moore Algorithm.
1 Improving Branch Prediction by Dynamic Dataflow-based Identification of Correlation Branches from a Larger Global History CSE 340 Project Presentation.
Deterministic Memory- Efficient String Matching Algorithms for Intrusion Detection Nathan Tuck, Timothy Sherwood, Brad Calder, George Varghese Department.
Efficient IP-Address Lookup with a Shared Forwarding Table for Multiple Virtual Routers Author: Jing Fu, Jennifer Rexford Publisher: ACM CoNEXT 2008 Presenter:
Computational Astrophysics: Methodology 1.Identify astrophysical problem 2.Write down corresponding equations 3.Identify numerical algorithm 4.Find a computer.
Improved TCAM-based Pre-Filtering for Network Intrusion Detection Systems Department of Computer Science and Information Engineering National Cheng Kung.
Performance Evaluation of IPv6 Packet Classification with Caching Author: Kai-Yuan Ho, Yaw-Chung Chen Publisher: ChinaCom 2008 Presenter: Chen-Yu Chaug.
An Efficient and Scalable Pattern Matching Scheme for Network Security Applications Department of Computer Science and Information Engineering National.
Hash Tables1 Part E Hash Tables  
ECE 526 – Network Processing Systems Design Network Security: string matching algorithm Chapter 17: George Varghese.
Introducing Hashing Chapter 21 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp , February.
1 Scalable Pattern-Matching via Dynamic Differentiated Distributed Detection (D 4 ) Author: Kai Zheng, Hongbin Lu Publisher: GLOBECOM 2008 Presenter: Han-Chen.
A Fast Algorithm for Multi-Pattern Searching Sun Wu, Udi Manber May 1994.
Hash, Don’t Cache: Fast Packet Forwarding for Enterprise Edge Routers Minlan Yu Princeton University Joint work with Jennifer.
GPGPU platforms GP - General Purpose computation using GPU
SHOCK: A Worst-Case Ensured Sub-linear Time Pattern Matching Algorithm for Inline Anti-Virus Scanning Author: Nen-Fu Huang, Wen-Yen Tsai Publisher: IEEE.
Computing Hardware Starter.
Modularizing B+-trees: Three-Level B+-trees Work Fine Shigero Sasaki* and Takuya Araki NEC Corporation * currently with 1st Nexpire Inc.
CMPE 421 Parallel Computer Architecture
Space-Time Tradeoffs in Software-Based Deep Packet Inspection Anat Bremler-Barr Yotam Harchol ⋆ David Hay IDC Herzliya, Israel Hebrew University, Israel.
1 Chapter 17 Disk Storage, Basic File Structures, and Hashing Chapter 18 Index Structures for Files.
Leveraging Traffic Repetitions for High- Speed Deep Packet Inspection Author: Anat Bremler-Barr, Shimrit Tzur David, Yotam Harchol, David Hay Publisher:
Hashing functions Have many uses. We can use them to hash values into a hashing table, but they have more general uses such as computing a unique identifier.
1 Memory Management 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement algorithms.
Towards a Billion Routing Lookups per Second in Software  Author: Marko Zec, Luigi, Rizzo Miljenko Mikuc  Publisher: SIGCOMM Computer Communication Review,
1 CSE 326: Data Structures: Hash Tables Lecture 12: Monday, Feb 3, 2003.
Author : Ramakrishnan Kandhan, Nikhil Teletia & Jignesh M. Patel Publisher : International Conference on Very Large Data Bases 2010 Presenter : Zong-Lin.
CSE 326: Data Structures Lecture #16 Hashing HUGE Data Sets (and two presents from the Database Fiancée) Steve Wolfman Winter Quarter 2000.
Description of a New Variable-Length Key, 64-Bit Block Cipher (BLOWFISH) Bruce Schneier BY Sunitha Thodupunuri.
CSE 241 Computer Engineering (1) هندسة الحاسبات (1) Lecture #3 Ch. 6 Memory System Design Dr. Tamer Samy Gaafar Dept. of Computer & Systems Engineering.
1 A Throughput-Efficient Packet Classifier with n Bloom filters Authors: Heeyeol Yu and Rabi Mahapatra Publisher: IEEE GLOBECOM 2008 proceedings Present:
IP Routing Processing with Graphic Processors Author: Shuai Mu, Xinya Zhang, Nairen Zhang, Jiaxin Lu, Yangdong Steve Deng, Shu Zhang Publisher: IEEE Conference.
Caches Where is a block placed in a cache? –Three possible answers  three different types AnywhereFully associativeOnly into one block Direct mappedInto.
A Pattern-Matching Scheme With High Throughput Performance and Low Memory Requirement Author: Tsern-Huei Lee, Nai-Lun Huang Publisher: TRANSACTIONS ON.
UNIT 5.  The related activities of sorting, searching and merging are central to many computer applications.  Sorting and merging provide us with a.
STRING SEARCHING ENGINE FOR VIRUS SCANNING Author : Derek Pao, Xing Wang, Xiaoran Wang, Cong Cao, Yuesheng Zhu Publisher : TRANSACTIONS ON COMPUTERS, 2012.
Author : Sarang Dharmapurikar, John Lockwood Publisher : IEEE Journal on Selected Areas in Communications, 2006 Presenter : Jo-Ning Yu Date : 2010/12/29.
Radix Sort and Hash-Join for Vector Computers Ripal Nathuji 6.893: Advanced VLSI Computer Architecture 10/12/00.
Author : Yang Xu, Lei Ma, Zhaobo Liu, H. Jonathan Chao Publisher : ANCS 2011 Presenter : Jo-Ning Yu Date : 2011/12/28.
An Improved Multi-Pattern Matching Algorithm for Large-Scale Pattern Sets Author : Zhan Peng, Yu-Ping Wang and Jin-Feng Xue Conference: IEEE 10th International.
Accelerating Multi-Pattern Matching on Compressed HTTP Traffic Dr. Anat Bremler-Barr (IDC) Joint work with Yaron Koral (IDC), Infocom[2009]
1 Space-Efficient TCAM-based Classification Using Gray Coding Authors: Anat Bremler-Barr and Danny Hendler Publisher: IEEE INFOCOM 2007 Present: Chen-Yu.
Memory Design Principles Principle of locality dominates design Smaller = faster Hierarchy goal: total memory system almost as cheap as the cheapest component,
Gnort: High Performance Network Intrusion Detection Using Graphics Processors Date:101/2/15 Publisher:ICS Author:Giorgos Vasiliadis, Spiros Antonatos,
Practical Multituple Packet Classification Using Dynamic Discrete Bit Selection Author: Baohua Yang, Fong J., Weirong Jiang, Yibo Xue, Jun Li Publisher:
Author : Tzi-Cker Chiueh, Prashant Pradhan Publisher : High-Performance Computer Architecture, Presenter : Jo-Ning Yu Date : 2010/11/03.
Memory COMPUTER ARCHITECTURE
Provides Confidentiality
CSC 4250 Computer Architectures
The Hardware/Software Interface CSE351 Winter 2013
Oracle SQL*Loader
Cache Memory Presentation I
SigMatch Fast and Scalable Multi-Pattern Matching
Overview Problem Solution CPU vs Memory performance imbalance
Presentation transcript:

Author : Ozgun Erdogan and Pei Cao Publisher : IEEE Globecom 2005 (IJSN 2007) Presenter : Zong-Lin Sie Date : 2010/12/08 1

 This paper proposes Hash-AV, a virus scanning “booster” technique that aims to take advantage of improvements in CPU performance.  Using a set of hash functions and a bloom filter array that fits in CPU second-level (L2) caches, Hash-AV determines the majority of “no-match” cases without accesses to main memory. 2

 Using bloom filters to speed up signature matching is not a new idea [3], [19].  The key difference between those hardware solutions and our software solution is that the CPU computation cost of hash functions is not a concern in the former, but a key concern in the latter.  If the hash functions are not chosen well, computing the hashes can easily take enough CPU cycles to obliterate the advantage of cache-resident filters. 3

 The most widely used opensource anti-virus scanner  As of July 2005, it has a database of over 30,000 viruses. The database includes over 28,000 plain- text strings and over 1,300 strings with wild-card characters embedded.  The plain-text strings are for non-polymorphic viruses, and the strings with wild-card characters are for polymorphic viruses. 4

 The current version of Clam-AV uses an optimized version of the Boyer-Moore (BM) algorithm [2] for non-polymorphic signatures, and uses the Aho- Corasick (AC) algorithm [1] for polymorphic ones.  AC example : {he,hers,his,she} 5

 Boyer Moore’s algorithm example : 1: EXAMPLE HERE IS A SIMPLE EXAMPLE 2: EXAMPLE HERE IS A SIMPLE EXAMPLE 3: EXAMPLE HERE IS A SIMPLE EXAMPLE 4: MPLEXAMPLE HERE IS A SIMPLE EXAMPLE 6

5: EXAMPLE HERE IS A SIMPLE EXAMPLE 6: EXAMPLE HERE IS A SIMPLE EXAMPLE 7

 It aims to determine the no-match cases with high accuracy, minimal main-memory access and a small number of CPU instructions.  It achieves the goals by using a filter that fits in CPU caches and acts as a first-pass scan to determine if the data need to go through an exact match algorithm. 8

 Hash-AV constructs a bloom filter from the set of plaintext signatures. For each plain-text signature, k hash functions are applied to its first β bytes a, with results h 1 (a); h 2 (a); …; h k (a), all in the range of 1; …;N. The bits at positions h 1 (a); h 2 (a); …; h k (a) are then set to 1.  At scanning time, Hash-AV moves over the input data stream one byte at a time. For each β byte block b, the scanning algorithm applies the first hash function, h 1 (b), and checks the corresponding bit. If the bit is 1, it computes the next hash function h 2 (b); if not, it immediately goes over to the next byte 9

 In the case where all k functions have positive bloom filter matches, Hash-AV needs to check for exact match.  Two alternatives : (1) Use Boyer-Moore. (2) Pre-construct a “secondary hash table” using the last hash function h k, with each entry holding a linked list of signatures which are checked linearly. 10

 Based on our prior experience in using bloom filters [13], k = 4 works well.  Therefore, there are three choices left in setting up Hash-AV: (1) Choosing four hash functions; (2) Choosing the size of the bloom filter; (3) Choosing β; 11

 Performance measurements over a sample executable of 120 MB, and the percentage of false positives in the filter. β is 7 and the bloom filter size is 256 KB. 12

 We then tried two really fast “hash” functions: “mask” and “xor+shift”.  “Mask” takes the first four bytes, casts them to an integer, and chooses the lowest log 2 (N) bits, where N is the size of the bloom filter.  ex : =>

 “Xor+shift” : Take first 6 bytes, cast byte 0-3 into an integer, and xor it with 0 to get first value. Xor 1-4 bytes with first value to get second value. Xor 2-5 bytes with second value to get final value. Then picks the lowest log 2 (N) bits.  “mask” and “xor+shift” can filter away 88% and 96% of the input bytes. However, used as first level hash functions, they can effectively cut down the number of times that the “good” hash functions are calculated by an order of magnitude.  Hash-AV contains the following four hash functions: mask, xor+shift, fast hash from hashlib.c [9] and sdbm [25]. 14

 hash(i) = hash(i - 1) * str[i]; 15

 Daniel J. Bernstein hash(i) = hash(i - 1) * 33 + str[i]; 16

 Pure Hashing Speed: (512KB L2 cache) Results peak at AMD’s second level cache size. If the filter does not fit in the cache, the cache miss latency dominates the throughput. 17

 The speed of Hash-AV on the Athlon desktop over the sample 120MB executable file.  The best filter size is mostly determined by the CPU L2 cache size. 18

 The choice of β is mainly affected by the distribution of signature lengths in the signature database.  Generally, larger βs are preferred. But (1) hash functions take more time to compute the result. Slows the algorithm down. (2) Hash-AV has to leave out short signatures.  The “xor+shift” function is designed to operate on six bytes of data, a lower limit of six is set on β. 19

 Weighting these effects of, we decided to choose β = 7 in our algorithms. 20

 We compare the throughput of Hash-AV with that of Clam- AV, using both the 30,000 signature database and the 120K signature database.  The current implementation of Hash-AV focuses on improving the scanning speed for plain-text signatures. It uses the same Aho-Corasick (AC) implementation as Clam- AV.  Three different types of inputs are used: (1) the 120MB sample executable file as described (2) a file of 99 MB containing HTML data crawled from the web (3) a 100 MB random file. 21

22

23

24

25