• Title/Summary/Keyword: string matching

검색결과 102건 처리시간 0.023초

An Efficient String Matching Algorithm Using Bidirectional and Parallel Processing Structure for Intrusion Detection System

  • Chang, Gwo-Ching;Lin, Yue-Der
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제4권5호
    • /
    • pp.956-967
    • /
    • 2010
  • Rapid growth of internet applications has increased the importance of intrusion detection system (IDS) performance. String matching is the most computation-consuming task in IDS. In this paper, a new algorithm for multiple string matching is proposed. This proposed algorithm is based on the canonical Aho-Corasick algorithm and it utilizes a bidirectional and parallel processing structure to accelerate the matching speed. The proposed string matching algorithm was implemented and patched into Snort for experimental evaluation. Comparing with the canonical Aho-Corasick algorithm, the proposed algorithm has gained much improvement on the matching speed, especially in detecting multiple keywords within a long input text string.

정규 표현식을 이용한 패턴 매칭 엔진 개발 (Development of the Pattern Matching Engine using Regular Expression)

  • 고광만;박홍진
    • 한국콘텐츠학회논문지
    • /
    • 제8권2호
    • /
    • pp.33-40
    • /
    • 2008
  • 스트링 패턴 매칭 알고리즘은 특정 검색어, 키워드를 검색하는 속도에서는 우수성이 다양한 방법으로 입증되었지만 다양한 패턴에 대해서는 기존의 알고리즘으로는 한계를 가지고 있다. 본 논문에서는 정규 표현식을 이용하여 특정 키워드를 포함하여 다양한 패턴의 검색어에 대해서도 효율적인 패턴 매칭을 수행하여 패턴 검색의 효율을 높이고자 한다. 이러한 연구는 기존의 단순한 키워드 매칭에 비해 각종 유해한 스트링 패턴을 효과적으로 검색할 수 있으며 스트링 패턴 매칭 속도에서도 기존의 알고리즘에 비해 우수성을 갖는다. 본 연구에서 제안한 LEX로부터 생성된 스트링 검색 엔진은 패턴 검색 속도에 대한 실험에서 패턴의 수가 1000개 이상인 경우에서는 BM&AC 알고리즘보다 효율적이지만 키워드 검색에서는 유사한 결과를 얻었다.

네트워크 보안을 위한 강력한 문자열 매칭 알고리즘 (Robust Quick String Matching Algorithm for Network Security)

  • 이종욱;박찬길
    • 디지털산업정보학회논문지
    • /
    • 제9권4호
    • /
    • pp.135-141
    • /
    • 2013
  • String matching is one of the key algorithms in network security and many areas could be benefit from a faster string matching algorithm. Based on the most efficient string matching algorithm in sual applications, the Boyer-Moore (BM) algorithm, a novel algorithm called RQS is proposed. RQS utilizes an improved bad character heuristic to achieve bigger shift value area and an enhanced good suffix heuristic to dramatically improve the worst case performance. The two heuristics combined with a novel determinant condition to switch between them enable RQS achieve a higher performance than BM both under normal and worst case situation. The experimental results reveal that RQS appears efficient than BM many times in worst case, and the longer the pattern, the bigger the performance improvement. The performance of RQS is 7.57~36.34% higher than BM in English text searching, 16.26~26.18% higher than BM in uniformly random text searching, and 9.77% higher than BM in the real world Snort pattern set searching.

CAM과 비트 분리 문자열 매처를 이용한 DPI를 위한 2단의 문자열 매칭 엔진의 개발 (A Memory-Efficient Two-Stage String Matching Engine Using both Content-Addressable Memory and Bit-split String Matchers for Deep Packet Inspection)

  • 김현진;최강일
    • 한국통신학회논문지
    • /
    • 제39B권7호
    • /
    • pp.433-439
    • /
    • 2014
  • 본 논문은 DPI (deep packet insepction)를 위한 CAM (content-addressable memory)과 병렬의 비트 분리(bit-split) 문자열 매처(matcher)를 이용한 2단의 문자열 매칭 엔진의 구조를 제안한다. 긴 타겟 패턴은 같은 길이의 서브 패턴으로 잘라지게 되고, 각 서브패턴은 1단의 CAM에 매핑된다. CAM으로부터의 매칭 인덱스의 시퀀스를 사용하여 2단에서 긴 패턴의 매칭 여부를 알 수 있다. CAM과 비트 분리 문자열 매처를 사용하여 이 기종의 메모리를 사용했을 경우에 메모리 요구량을 크게 줄일 수 있다.

A Hardware-Based String Matching Using State Transition Compression for Deep Packet Inspection

  • Kim, HyunJin;Lee, Seung-Woo
    • ETRI Journal
    • /
    • 제35권1호
    • /
    • pp.154-157
    • /
    • 2013
  • This letter proposes a memory-based parallel string matching engine using the compressed state transitions. In the finite-state machines of each string matcher, the pointers for representing the existence of state transitions are compressed. In addition, the bit fields for storing state transitions can be shared. Therefore, the total memory requirement can be minimized by reducing the memory size for storing state transitions.

문자열 패턴 매칭 (SPM:String Pattern Matching)프로세서의 설계 (Design of String Pattern Matching (SPM) Processor)

  • 국일호;조원경
    • 대한전기학회:학술대회논문집
    • /
    • 대한전기학회 1988년도 전기.전자공학 학술대회 논문집
    • /
    • pp.659-661
    • /
    • 1988
  • SPM is MDC Processor for string pattern expressed in directional chain code. In this paper we consider the string pattern matching algorithm (Leve-nstein Algorithm) whitch is portion of Dynamic Programing, and propose architecture of SPM and simulate it on the R-T level to evaluate its architecture. We used the C language as the hardware description language, and developed it on the IBM PC/AT Zenix system V OS environment.

  • PDF

퍼지 클러스터링과 스트링 매칭을 통합한 형상 인식법 (Pattern Recognition Method Using Fuzzy Clustering and String Matching)

  • 남원우;이상조
    • 대한기계학회논문집
    • /
    • 제17권11호
    • /
    • pp.2711-2722
    • /
    • 1993
  • Most of the current 2-D object recognition systems are model-based. In such systems, the representation of each of a known set of objects are precompiled and stored in a database of models. Later, they are used to recognize the image of an object in each instance. In this thesis, the approach method for the 2-D object recognition is treating an object boundary as a string of structral units and utilizing string matching to analyze the scenes. To reduce string matching time, models are rebuilt by means of fuzzy c-means clustering algorithm. In this experiments, the image of objects were taken at initial position of a robot from the CCD camera, and the models are consturcted by the proposed algorithm. After that the image of an unknown object is taken by the camera at a random position, and then the unknown object is identified by a comparison between the unknown object and models. Finally, the amount of translation and rotation of object from the initial position is computed.

리눅스 넷필터 기반의 인터넷 웜 탐지에서 버퍼를 이용하지 않는 빠른 스트링 매칭 방법 (A Fast String Matching Scheme without using Buffer for Linux Netfilter based Internet Worm Detection)

  • 곽후근;정규식
    • 정보처리학회논문지C
    • /
    • 제13C권7호
    • /
    • pp.821-830
    • /
    • 2006
  • 전 세계적으로 큰 피해를 주는 웜을 탐지하고 필터링 하는 것은 인터넷 보안에서 큰 이슈중의 하나이다. 웜을 탐지하는 하나의 방법으로서 리눅스 넷필터 커널 모듈이 사용된다. 웜을 탐지하는 기본 동작으로서 스트링 매칭은 네트웍 상으로 들어오는 패킷을 미리 정의된 웜 시그니쳐(Signature, 패턴)와 비교하는 것이다. 웜은 하나의 패킷 혹은 2개(혹은 그 이상의) 연속된 패킷에 나타난다. 이때, 웜의 일부분은 첫 번째 패킷에 있고 나머지 부분은 연속된 패킷 안에 있다. 웜 패턴의 최대 길이가 1024 바이트를 넘지 않는다고 가정하면, 2048 바이트의 길이를 가지는 2개의 연속된 패킷에 대해서 스트링 매칭을 수행해야만 한다. 이렇게 하기 위해, 리눅스 넷필터는 버퍼에 이전 패킷을 저장하고 버퍼링된 패킷과 현재의 패킷을 조합한 2048 바이트 크기의 스트링에 대해 매칭을 수행한다. 웜 탐지 시스템에서 다루어야 하는 동시 연결 개수의 수가 늘어날수록 버퍼(메모리)의 총 크기가 증가하고 스트링 매칭 속도가 감소하게 된다. 이에 본 논문에서는 메모리 버퍼 크기를 줄이고 스트링 매칭의 속도를 증가시키는 버퍼를 이용하지 않는 스트링 매칭 방식을 제안한다. 제안된 방식은 이전 패킷과 시그니쳐(Signature)의 부분 매칭 결과만을 저장하고 이전 패킷을 버퍼링하지 않는다. 부분 매칭 정보는 연속된 패킷에서 웜을 탐지하는데 사용된다. 제안된 방식은 리눅스 넷필터 모듈을 수정하여 구현하였고, 기존 리눅스 넷필터 모듈과 비교하였다. 실험 결과는 기존 방식에 비해 25%의 적은 메모리 사용량 및 54%의 속도 향상을 가짐을 확인하였다.

실시간 침입 탐지 및 대응을 위한 String Matching 알고리즘 개발 (String Matching Algorithms for Real-time Intrusion Detection and Response)

  • 김주엽;김준기;한나래;강성훈;이상후;예홍진
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 봄 학술발표논문집 Vol.31 No.1 (A)
    • /
    • pp.970-972
    • /
    • 2004
  • 최근 들어 웜 바이러스의 출현과 더불어, 인터넷 대란과 같은 서비스 거부 공격의 피해 사례가 급증하고 있다. 이에 따라 네트워크 보안이 많은 관심을 받고 있는데, 보안의 여러 분야 가운데에서도 특히 침입탐지와 대응에 관한 연구가 활발히 이루어지고 있다. 또한 이러한 작업들을 자동화하기 위한 도구들이 개발되고 있지만 그 정확성이 아직 신뢰할 만한 수준에 이르지 못하고 있는 것이 지금의 현실이다. 본 논문에서는 이벤트 로그를 분석하여 침입 패턴을 예측하고, 이를 기반으로 자동화된 침입 탐지 및 대응을 구현할 수 있는 String Matching 알고리즘을 제안하고자 한다.

  • PDF

외부 메모리에서 문자열을 효율적으로 탐색하기 위한 인덱스 자료 구조 (An Index Data Structure for String Search in External Memory)

  • 나중채;박근수
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제32권11_12호
    • /
    • pp.598-607
    • /
    • 2005
  • 본 논문에서는 새로운 외부 메모리 인덱스 자료 구조인 접미사 B-tree를 제안한다. 접미사 B-tree는 String B-tree와 마찬가지로 문자열을 키로 가지는 B-tree이다. String B-tree의 노드는 복잡한 Patricia ie로 구현된 반면, 접미사 B-tree의 노드는 일반적인 B-tree처럼 배열로 구현되어 보다 간단하고 구현하기 쉽다. 그럼에도 불구하고 접미사 B-tree에서 배열을 이용하여 String B-tree만큼 효율적으로 분기를 찾을 수 있다. 결과적으로 문자열 알고리즘 분야에서 기본적이고 중요한 문제인 문자열 매칭을 String B-tree와 동일한 디스크 접근을 사용하여 수행할 수 있다.