KR101913141B1 - 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법 - Google Patents

비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법 Download PDF

Info

Publication number
KR101913141B1
KR101913141B1 KR1020160142330A KR20160142330A KR101913141B1 KR 101913141 B1 KR101913141 B1 KR 101913141B1 KR 1020160142330 A KR1020160142330 A KR 1020160142330A KR 20160142330 A KR20160142330 A KR 20160142330A KR 101913141 B1 KR101913141 B1 KR 101913141B1
Authority
KR
South Korea
Prior art keywords
regular expression
fragment
unit
cost
matching
Prior art date
Application number
KR1020160142330A
Other languages
English (en)
Other versions
KR20180046763A (ko
Inventor
조학수
진용식
니반제브루스
Original Assignee
주식회사 윈스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 윈스 filed Critical 주식회사 윈스
Priority to KR1020160142330A priority Critical patent/KR101913141B1/ko
Priority to US15/665,915 priority patent/US20180121544A1/en
Publication of KR20180046763A publication Critical patent/KR20180046763A/ko
Application granted granted Critical
Publication of KR101913141B1 publication Critical patent/KR101913141B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 정규표현식의 분할, 재집합, 복잡도 계산 및 학습 정보를 기반으로 효율적인 탐색 노드를 구성하여 고성능 정규표현식 탐색을 위한 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법에 관한 것이다.
또한, 본 발명에 따르면, 정규표현식 문자열을 포함하는 악성 페이로드 탐지 규칙이 저장되어 있는 정책 데이터베이스; 상기 정책 데이터베이스로부터 각 정책에 포함된 정규표현식 문자열의 집합을 생성하는 정규식 추출부; 상기 정규식 추출부에서 추출한 각 정규 표현식 문자열을 단편화 규칙에 따라 분할하고 통합하여 정규식 단편 테이블을 생성하는 정규식 단편부; 상기 정규식 단편부에서 생성한 정규식 단편 테이블의 각 정규식 단편에 대해서 최적화 과정을 수행하여 최적화된 정규식 단편 테이블을 형성하는 정규식 일반화부; 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽을 인가하여 각 정규식 단편에 비용을 책정하는 비용 계산 엔진부; 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블의 각 단편에 대해 상기 비용 계산 엔진부에서 계산한 비용 정보를 기반으로 결정 트리를 생성하는 결정 트리 생성부; 및 결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하는 패턴 매칭 엔진부를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법을 제공한다.

Description

비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법{ENHANCING APPARATUS AND METHOD OF THE SEARCH ABILITY FOR REGULAR EXPRESSIONS BASED ON COST OPTIMIZED}
본 발명은 정규표현식의 분할, 재집합, 복잡도 계산 및 학습 정보를 기반으로 효율적인 탐색 노드를 구성하여 고성능 정규표현식 탐색을 위한 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법에 관한 것이다.
스노트는 프로토콜 분석 및 페이로드 패턴 매칭을 수행할 수 있는 오픈소스 라이브러리로서 자체적으로 제공하는 스노트 탐지 정책 이외에도 사용자가 커스텀하게 정책을 생성하고 운용할 수 있기 때문에 널리 사용되고 있다. 또한 다수의 침입탐지시스템에서도 이러한 장점을 수용하여 변칙적인 문자열의 공격성 여부를 판단하기 위해 스노트 문법을 사용하여 패킷 검사를 수행한다.
스노트 문법은 문자열과 오프셋 관련 옵션 이외에도 정규표현식을 지원하여 매칭의 유연성을 극대화한 것이 장점이다. 그러나 정규표현식을 사용을 통한 매칭의 유연성은 곧 다수의 반복적인 매칭 검사와 리소스 점유로 이어질 수 있다.
일반적인 정규표현식의 검색은 각 정규표현식 리스트에 대해 패턴과 문자열을 반복적으로 매칭하며 각 정규식에 대한 탐색 노드는 정규식이 가진 특성과는 관계 없이 일반적인 오토마타 알고리즘을 사용하여 구성한다. 이는 다음과 같은 한계 사항을 내포하고 있다.
첫째, 정책 개수와 노드 개수가 비례하며 따라서 트리 검색 속도가 기하급수적으로 늘어날 수 있다. 따라서 성능을 보장하는데에 있어 운용 정책 개수가 제한적이다. 둘째, 정규표현식 문법 중 복잡도가 높은 패턴의 영향을 받는다. .* 또는 ? 와 같은 매칭이 빈번한 문법을 사용하게 되면 매칭 빈도가 증가하면서 전체적인 검색 속도를 저하시킨다. 특히 이러한 패턴이 여러 정규식에 걸쳐 반복적으로 등장하는 경우 매칭 시 과도한 리소스 점유가 발생한다. 종래에는 이러한 문제들을 극복하고자 정규표현식 문법 중 Recursive Matching 을 야기하는 패턴을 포함하는 정책을 추출하고, 해당 패턴을 복잡도가 낮은 형태로 변환하는 최적화 작업을 진행하였다. 그러나 위와 같은 최적화 방식은 일부 수작업을 수반하며 모든 정책에 일률적으로 적용하기가 어렵기 때문에 비효율적이다.
국내공개번호 10-2005-0032765호 국내공개번호 10-2006-0086081호
상기와 같은 문제점을 해결하기 위하여 본 발명은 통합 정규식 검색 트리를 생성하여 매칭시 가장 부하가 되는 정규식 검사 구조를 개별 정책 매칭 구조에서 멀티 패턴 구조로 전환하고 단일 매칭 시도로 다수의 패턴(멀티 패턴)에 대한 매칭 여부를 가릴 수 있도록 한 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법을 제공하는데 있다.
또한 본 발명은 정규식 검색 트리를 구성함에 있어서 각 노드를 효율적으로 구성할 수 있는 분할 및 통합, 최적화 작업을 추가한 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법을 제공하는데 있다.
본 발명의 일 측면은 정규표현식 문자열을 포함하는 악성 페이로드 탐지 규칙이 저장되어 있는 정책 데이터베이스; 상기 정책 데이터베이스로부터 각 정책에 포함된 정규표현식 문자열의 집합을 생성하는 정규식 추출부; 상기 정규식 추출부에서 추출한 각 정규 표현식 문자열을 단편화 규칙에 따라 분할하고 통합하여 정규식 단편 테이블을 생성하는 정규식 단편부; 상기 정규식 단편부에서 생성한 정규식 단편 테이블의 각 정규식 단편에 대해서 최적화 과정을 수행하여 최적화된 정규식 단편 테이블을 형성하는 정규식 일반화부; 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽을 인가하여 각 정규식 단편에 비용을 책정하는 비용 계산 엔진부; 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블의 각 단편에 대해 상기 비용 계산 엔진부에서 계산한 비용 정보를 기반으로 결정 트리를 생성하는 결정 트리 생성부; 및 결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하는 패턴 매칭 엔진부를 포함한다.
또한, 본 발명의 일 측면의 상기 정규식 추출부는 상기 탐지 정책 데이터베이스의 모든 정책을 로드하여 각 정책별 정규식 옵션 포함 여부를 확인하여 정규식 옵션을 포함할 경우에 정규식 리스트에 추가하여 정규 표현식 문자열의 집합을 형성한다.
또한, 본 발명의 일 측면의 상기 정규식 단편부는 정규 표현식 문자열의 집합의 각 정규 표현식 문자열에 대하여 단편화 규칙을 적용하여 단편으로 분할하고, 중복되는 단편이 존재하지 않으면 정규식 단편 테이블에 추가하고, 중복되면 이를 통합하여 정규식 단편 테이블을 형성한다.
또한, 본 발명의 일 측면의 상기 정규식 일반화부는 정규식 단편 테이블의 각 단편을 검사하여 의존성 및 복잡도를 제거하는 형태의 최적화를 수행하여 최적화된 단편 테이블을 형성한다.
또한, 본 발명의 일 측면의 상기 비용 계산 엔진부는 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 패킷 스트림을 인가하여 매칭 여부를 기록하여 해당 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 각 정규식 단편에 비용을 책정한다.
또한, 본 발명의 일 측면의 상기 비용 계산 엔진부는 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 네트워크 트래픽을 인가하여 매칭 여부를 기록하여 해당 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 각 정규식 단편에 비용을 책정한다.
한편, 본 발명의 다른 측면은 (A) 정규식 추출부가 정책 데이터베이스로부터 각 정책에 포함된 정규표현식 문자열의 집합을 생성하는 단계; (B) 정규식 단편부가 상기 정규식 추출부에서 추출한 각 정규 표현식 문자열을 단편화 규칙에 따라 분할하고 통합하여 정규식 단편 테이블을 생성하는 단계; (C) 정규식 일반화부가 상기 정규식 단편부에서 생성한 정규식 단편 테이블의 각 정규식 단편에 대해서 최적화 과정을 수행하여 최적화된 정규식 단편 테이블을 형성하는 단계; (D) 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽을 인가하여 각 정규식 단편에 비용을 책정하는 단계; (E) 결정 트리 생성부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블의 각 단편에 대해 상기 비용 계산 엔진부에서 계산한 비용 정보를 기반으로 결정 트리를 생성하는 단계; 및 (F) 패턴 매칭 엔진부가 결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하는 단계를 포함한다.
또한, 본 발명의 다른 측면의 상기 (A) 단계는 (A-1) 상기 정규식 추출부가 상기 탐지 정책 데이터베이스의 모든 정책을 로드하는 단계; 및 (A-2) 상기 정규식 추출부가 각 정책별 정규식 옵션 포함 여부를 확인하여 정규식 옵션을 포함할 경우에 정규식 리스트에 추가하여 정규 표현식 문자열의 집합을 형성하는 단계를 포함한다.
또한, 본 발명의 다른 측면의 상기 (B) 단계는 (B-1) 상기 정규식 단편부가 정규 표현식 문자열의 집합의 각 정규 표현식 문자열에 대하여 단편화 규칙을 적용하여 단편으로 분할하는 단계; (B-2) 상기 정규식 단편부가 분할된 단편에 대하여 다른 정규식에서 분할된 단편과 중복되는지 여부를 판단하는 단계; (B-3) 상기 정규식 단편부는 상기(B-2)의 판단 결과, 중복되는 단편이 존재하지 않으면 정규식 단편 테이블에 추가하여 정규식 단편 테이블을 형성하는 단계; 및 (B-4) 상기 정규식 단편부는 상기 (B-2)의 판단 결과, 중복되는 단편이 존재하면 이를 통합하여 정규식 단편 테이블을 형성하는 단계를 포함한다.
또한, 본 발명의 다른 측면의 상기 (C) 단계에서 상기 정규식 일반화부는 정규식 단편 테이블의 각 단편을 검사하여 의존성 및 복잡도를 제거하는 형태의 최적화를 수행하여 최적화된 단편 테이블을 형성한다.
또한, 본 발명의 다른 측면의 상기 (D) 단계는 (D-1) 상기 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 패킷 스트림을 인가하는 단계; (D-2) 상기 비용 계산 엔진부가 패킷 스트림에 대하여 매칭 여부를 기록하는 단계; (D-3) 상기 비용 계산 엔진부가 패킷 스트림에 대한 매칭 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 단편에 비용을 책정하는 단계; (D-4) 상기 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 네트워크 트래픽을 인가하는 단계; (D-5) 상기 비용 계산 엔진부가 네트워크 트래픽에 대하여 매칭 여부를 기록하는 단계; 및 (D-6) 상기 비용 계산 엔진부가 네트워크 트래픽에 대한 매칭 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 단편에 비용을 책정하는 단계를 포함한다.
또한, 본 발명의 다른 측면의 상기 (F) 단계는 (F-1) 상기 패턴 매칭 엔진부가 정책 데이터베이스에 저장된 각 정책에 대해서 정규표현식을 제외한 탐색 옵션 존재 시 해당 정보를 추출하는 단계; (F-2) 상기 패턴 매칭 엔진부가 정규식 옵션을 기반으로 생성한 정규표현식 결정 트리를 통합하는 단계; (F-3) 상기 패턴 매칭 엔진부가 상기 (F-1)에서 추출한 정보와 상기 (F-2)에서 통합한 정규 표현식 결정 트리를 통합하여 탐색 엔진을 구성하여 메모리에 적재하는 단계; 및 (F-4) 상기 패턴 매칭 엔진부가 패킷 유입시 공격 매칭을 수행하는 단계를 포함한다.
상기와 같은 본 발명에 따르면, 전체 정규식을 통합한 결정 트리를 통해 멀티 패턴을 단일 프로세스로 매칭 여부를 가리는 매칭 구조 효율화를 달성한다.
또한, 본 발명에 따르면, 정규식 탐색 트리를 개선하여 패킷 공격 매칭 수행 시 매칭 속도를 향상시킨다.
또한, 본 발명에 따르면, 정규식 단편 최적화 과정에서 기존 정책 개수와 반비례하는 성능 구조를 개선할 수 있다.
또한, 본 발명에 따르면, 매칭 비용 계산을 통한 탐색 트리 생성으로 복잡도 높은 패턴 유입 시 시스템 성능 영향도를 최소화할 수 있다.
또한, 본 발명에 따르면, 매칭 비용 계산에 실망 트래픽 적용 기능을 통해 시스템이 설치된 네트워크 환경에 적응된 탐색 구조를 제공한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치의 구성도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법의 흐름도이다.
도 3은 도 2의 정규 표현식 집합 생성 과정에서부터 최적화 과정의 상세 흐름도이다.
도 4는 도 2의 정규식 단편에 비용 책정 과정과 결정 트리 생성 과정의 상세 흐름도이다.
도 5는 도 2의 탐지 엔진 구성 과정의 상세 흐름도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 설명하기 위하여 이하에서는 본 발명의 바람직한 실시예를 예시하고 이를 참조하여 살펴본다.
먼저, 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명에서는 통합 정규식 검색 트리를 생성하여 매칭시 가장 부하가 되는 정규식 검사 구조를 개별 정책 매칭 구조에서 멀티 패턴 구조로 전환하고 단일 매칭 시도로 다수의 패턴(멀티 패턴)에 대한 매칭 여부를 가릴 수 있도록 개선하였다.
또한 정규식 검색 트리를 구성함에 있어서 각 노드를 효율적으로 구성할 수 있는 분할 및 통합, 최적화 작업을 추가하여 기존의 문제점을 해결하고자 한다.
노드를 최적화 하는 ①첫 번째 단계는 전체 정책에서 정규표현식의 묶음을 구하는 것이다. ②두 번째 단계는 정규표현식 문자열을 검색 트리의 노드로 구성할 수 있도록 더 작은 단위의 정규식으로 단편화(fragmentation) 하는 것이다. ③세 번째 단계는 분할한 각 단편에 대해서 중복되는 단편을 통합하고, 복잡도가 높은(매칭 빈도가 높은) 정규표현식에 대해 검사하여 이를 복잡도가 낮은 방향으로 변경하는 최적화 작업을 진행한다. ④네 번째 단계는 각 고유의 단편의 집합으로 이루어진 테이블에 샘플 트래픽 매칭을 수행하여 매칭 결과 및 빈도를 기반으로 비용을 책정하는 것이다. ⑤마지막으로 도출된 비용 정보 결정 트리 알고리즘에 제공하여 결정트리 (decision tree) 를 생성한다.
새롭게 구성된 결정트리는 단계별 최적화 과정을 거쳐 효율적인 노드로 구성된다. 몇 가지 기능 개선을 기대할 수 있다. 노드 간 의존성을 최소화 하여 독립적으로 구분되면서 불필요한 노드 탐색을 줄일 수 있다. 이는 매칭 속도의 향상으로 이어진다. 또한 독립적인 노드 구조는 정책의 개수나 복잡도에 관계없이 일정한 검색 성능을 보장한다. 특히 복잡도가 높은 노드의 경우 최적화 과정에서 매칭 노드가 위치하는 depth 를 알고리즘 규칙에 의해 일정하게 배치할 수 있기 때문에 정책의 추가 및 변경 시 시스템의 영향도 또한 일관될 수 있다.
표본 트래픽 데이터 및 실망에 유입되는 트래픽 환경 정보를 학습하여 반영한 cost 계산은 같은 정책이지만 트래픽 환경의 차이에 따라 다른 결과의 결정 트리를 생성할 수 있다. 이는 종래의 장비의 운용 환경에 관계없이 동일한 비유연한 탐지 구조보다 시스템이 설치된 환경에 기인한(network-oriented) 형태의 효율적인 매칭을 가능하게 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치의 구성도이고, 도 2는 본 발명의 바람직한 일 실시예에 따른 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법의 흐름도이다.
도 1을 참조하면, 본 발명의 바람직한 일 실시예에 따른 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치는 정책 데이터베이스(10), 정규식 추출부(20), 정규식 단편부(30), 정규식 일반화부(40), 비용 계산 엔진부(50), 결정트리 생성부(60) 및 패턴 매칭 엔진부(70)를 포함한다.
상기 정책 데이터베이스(10)는 정규표현식 문자열을 포함하는 악성 페이로드 탐지 규칙이 저장되어 있다.
그리고, 상기 정규식 추출부(20)는 상기 정책 데이터베이스(10)로부터 각 정책에 포함된 정규표현식 문자열의 집합을 생성하여 도 2의 정규 표현식 집합 생성 과정(S10)을 수행한다.
다음으로, 정규식 단편부(30)는 상기 정규식 추출부(20)에서 추출한 각 정규표현식을 단편화 규칙에 따라 분할하고 여러 정책에 걸쳐 중복되는 정규식 단편(fragment)이 존재하는 경우 이를 통합하여, 하나의 정규식 단편 테이블을 생성함으로, 도 2의 정규식 단편 테이블 생성 과정(S20)을 수행한다.
상기 정규식 일반화부(40)는 상기 정규식 단편부(30)에서 분할한 각 정규식 단편에 대해서 의존성 제거 및 복잡도를 계산하여 최적화 과정을 수행하는 정규식 일반화(normalization) 작업을 수행하며, 이는 도 2의 최적화 수행 과정(S30에 대응된다.
다음으로, 비용 계산 엔진부(50)는 최적화된 정규식 단편 테이블에 패킷 스트림 또는 네트워크 트래픽의 데이터 매칭을 수행하고, 데이터 매칭 결과에 따라 각 정규식 단편에 비용을 책정하여, 도 2의 정규식 단편에 비용 책정 과정(S40)을 수행한다.
여기에서, 패킷 스트림은 비용 계산 엔진부(50)에서 비용 계산 과정에서 사용할 수 있는 표본 트래픽 파일을 의미한다.
그리고, 네트워크 트래픽은 시스템이 네트워크 환경을 사용하는 경우, 실시간으로 유입되는 트래픽을 의미한다. 비용 계산 엔진부(50)는 비용 계산 과정에서 패킷 스트림 또는 네트워크 트래픽을 비용 계산 적용 데이터로서 선택적으로 사용할 수 있다.
상기 결정 트리 생성부(60)는 상기 정규식 일반화부(40)에서 최적화된 정규식 단편 집합과 각 단편에 대해 상기 비용 계산 엔진부(50)에서 계산한 비용 정보를 기반으로 결정트리 알고리즘을 적용하여 결정트리를 생성하며, 이는 도2의 결정 트리 생성 과정(S50)에 대응된다.
상기 패턴 매칭 엔진부(70)는 결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하며, 이는 도 2의 탐지 엔진 구성 과정(S60)에 대응된다.
도 3은 도 2의 정규 표현식 집합 생성 과정에서부터 최적화 과정의 상세 흐름도이다.
도 3을 참조하면, 도 2의 정규 표현식 집합 생성 과정에서부터 최적화 과정의 상세 과정은 먼저, 정규식 추출부(20)가 탐지 정책 데이터베이스(10)에서 모든 정책을 로드한다(S11).
이후에, 정규식 추출부(20)는 탐지 정책 데이터베이스(10)에서 로드한 모든 정책에 대하여 각 정책별로 정규식 옵션이 포함되어 있는지 여부를 확인한다(S12).
상기 정규식 추출부(20)는 확인 결과, 정규식 옵션을 포함할 경우 이를 정규식 리스트에 추가한 후에(S13), 모든 정책에 대한 정규식 옵션 검사를 수행한다(S14).
한편, 정규식 단편부(30)는 상기 정규식 추출부(20)에서 정규식 리스트를 입력받아(S21) 정규식 리스트에 있는 각 정규식에 단편화 규칙을 적용하여 1개 이상의 단편으로 분할한다(S22).
단편(fragment) 는 1개 이상의 정규식 문법으로 구성된 정규표현식이다. 단편화 규칙은 단편을 노드로 트리를 구성하였을 때 중복 탐색을 최소화할 수 있도록 고유성을 기준으로 판단한다.
상기 정규식 단편부(30)는 분할된 단편에 대해서 다른 정규식에 중복되는 단편이 존재하는지 검사한다(S23).
상기 정규식 단편부(30)는 분할된 단편에 대해서 다른 정규식에 중복되는 단편이 존재하는 경우에 이를 통합한다(S24).
이와 달리 정규식 단편부(30)는 분할된 단편에 대해서 다른 정규식에 중복 단편이 존재하지 않는 경우 정규식 단편 테이블에 단편 정보를 추가한다(S25).
이와 같은 과정을 거쳐 정규식 단편부(30)는 모든 정규식에 대해 단편화를 수행하여 고유의 단편 정보가 수집된 정규식 단편 테이블을 생성한다.
다음으로, 정규식 일반화부(40)는 상기 정규식 단편부(30)에서 각 정규식 단편의 정보를 입력받는다(S31).
상기 정규식 일반화부(40)는 상기 정규식 단편부(30)에서 입력받은 정규식 단편을 검사하여 의존성 및 복잡도를 제거하는 형태의 최적화를 수행한다(S32).
이후에, 정규식 일반화부(40)는 정규식 단편 테이블 내 모든 단편에 대해 최적화를 수행한 최적화 단편 테이블을 생성한다(S33). 단편 테이블은 단일 정책이 아닌 다수의 정책 내 정규식을 반영하여 멀티 패턴 검색을 지원한다.
도 4는 도 2의 정규식 단편에 비용 책정 과정과 결정 트리 생성 과정의 상세 흐름도이다.
도 4를 참조하면, 도 2의 정규식 단편에 비용 책정 과정과 결정 트리 생성 과정은 먼저 비용 계산 엔진부(50)가 비용 계산 시 사용할 데이터, 즉 샘플 트래픽 유형을 선택하며(S41), 이때 트래픽 유형으로 패킷 스트림을 표본 트래픽 파일로 선택할 수 있다(S42, S43).
물론, 비용 계산 엔진부(50)는 시스템이 네트워크 환경을 사용하는 경우에, 트래픽 유형으로 실시간으로 유입되는 트래픽인 네트워크 트래픽을 선택할 수 있다(S45).
다음으로, 비용 계산 엔진부(50)는 정규식 일반화를 거쳐 생성된 최적화 단편 테이블을 로드한다(S44).
그리고, 비용 계산 엔진부(50)는 최적화 단편 테이블에 샘플 트래픽을 인가하여 매칭 여부를 기록한다(S46).
상기 비용 계산 엔진부(50)는 전체 샘플 트래픽에 대한 매칭 결과가 도출되면 해당 결과를 기반으로 각 단편에 대한 매칭 비용을 계산한다(S47).
한편, 결정 트리 생성부(60)는 결정트리 알고리즘에 매칭 비용 정보를 전달하여(S51) 각 단편을 노드로 구성된 정규식 결정 트리를 생성한다(S52).
도 5는 도 2의 탐지 엔진 구성 과정의 상세 흐름도이다.
도 5를 참조하면, 도 2의 탐지 엔진 구성 과정은 먼저 패턴 매칭 엔진부(70)가 정책 데이터베이스(10)에 저장된 각 정책에 대해서 정규표현식을 제외한 탐색 옵션 존재 시 해당 정보를 추출한다(S61, S62).
상기 패턴 매칭 엔진부(70)는 상기 정규식 옵션을 기반으로 생성한 정규표현식 결정 트리를 통합한다(S63).
상기 패턴 매칭 엔진부(70)는 상기 S61과 S62에서 추출한 정보와 상기 S63에서 통합한 정규 표현식 결정 트리를 통합하여 탐색 엔진을 구성하여 메모리에 적재한다(S64).
이후에, 패턴 매칭 엔진부(70)는 패킷 유입 시 공격 매칭을 수행한다(S65).
상기와 같은 본 발명에 따르면, 전체 정규식을 통합한 결정 트리를 통해 멀티 패턴을 단일 프로세스로 매칭 여부를 가리는 매칭 구조 효율화를 달성한다.
또한, 본 발명에 따르면, 정규식 탐색 트리를 개선하여 패킷 공격 매칭 수행 시 매칭 속도를 향상시킨다.
또한, 본 발명에 따르면, 정규식 단편 최적화 과정에서 기존 정책 개수와 반비례하는 성능 구조를 개선할 수 있다.
또한, 본 발명에 따르면, 매칭 비용 계산을 통한 탐색 트리 생성으로 복잡도 높은 패턴 유입 시 시스템 성능 영향도를 최소화할 수 있다.
또한, 본 발명에 따르면, 매칭 비용 계산에 실망 트래픽 적용 기능을 통해 시스템이 설치된 네트워크 환경에 적응된 탐색 구조를 제공한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상이 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 정책 데이터베이스 20 : 정규식 추출부
30 : 정규식 단편부 40 : 정규식 일반화부
50 : 비용 계산 엔진부 60 : 결정 트리 생성부
70 : 패턴 매칭 엔진부

Claims (12)

  1. 정규표현식 옵션 문자열을 포함하는 악성 페이로드 탐지 규칙이 저장되어 있는 정책 데이터베이스;
    상기 정책 데이터베이스로부터 각 정책에 포함된 정규표현식 옵션 문자열의 집합을 생성하는 정규식 추출부;
    상기 정규식 추출부에서 추출한 각 정규 표현식 옵션 문자열을 단편화 규칙에 따라 분할하고 통합하여 정규식 단편 테이블을 생성하는 정규식 단편부;
    상기 정규식 단편부에서 생성한 정규식 단편 테이블의 각 정규식 단편에 대해서 최적화 과정을 수행하여 최적화된 정규식 단편 테이블을 형성하는 정규식 일반화부;
    상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽을 인가하여 각 정규식 단편에 매칭 비용을 책정하는 비용 계산 엔진부;
    상기 정규식 일반화부에서 최적화된 정규식 단편 테이블의 각 단편에 대해 상기 비용 계산 엔진부에서 계산한 매칭 비용 정보를 기반으로 결정 트리를 생성하는 결정 트리 생성부; 및
    결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하는 패턴 매칭 엔진부를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  2. 청구항 1항에 있어서,
    상기 정규식 추출부는 상기 정책 데이터베이스의 모든 정책을 로드하여 각 정책별 정규식 옵션 포함 여부를 확인하여 정규식 옵션을 포함할 경우에 정규식 리스트에 추가하여 정규 표현식 옵션 문자열의 집합을 형성하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  3. 청구항 1항에 있어서,
    상기 정규식 단편부는 정규 표현식 옵션 문자열의 집합의 각 정규 표현식 옵션 문자열에 대하여 단편화 규칙을 적용하여 단편으로 분할하고, 중복되는 단편이 존재하지 않으면 정규식 단편 테이블에 추가하고, 중복되면 이를 통합하여 정규식 단편 테이블을 형성하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  4. 청구항 1항에 있어서,
    상기 정규식 일반화부는 정규식 단편 테이블의 각 단편을 검사하여 의존성 및 복잡도를 제거하는 형태의 최적화를 수행하여 최적화된 단편 테이블을 형성하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  5. 청구항 1항에 있어서,
    상기 비용 계산 엔진부는 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 패킷 스트림을 인가하여 매칭 여부를 기록하여 해당 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 각 정규식 단편에 매칭 비용을 책정하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  6. 청구항 1항에 있어서,
    상기 비용 계산 엔진부는 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 네트워크 트래픽을 인가하여 매칭 여부를 기록하여 해당 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 각 정규식 단편에 매칭 비용을 책정하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치.
  7. (A) 정규식 추출부가 정책 데이터베이스로부터 각 정책에 포함된 정규표현식 옵션 문자열의 집합을 생성하는 단계;
    (B) 정규식 단편부가 상기 정규식 추출부에서 추출한 각 정규 표현식 옵션 문자열을 단편화 규칙에 따라 분할하고 통합하여 정규식 단편 테이블을 생성하는 단계;
    (C) 정규식 일반화부가 상기 정규식 단편부에서 생성한 정규식 단편 테이블의 각 정규식 단편에 대해서 최적화 과정을 수행하여 최적화된 정규식 단편 테이블을 형성하는 단계;
    (D) 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽을 인가하여 각 정규식 단편에 매칭 비용을 책정하는 단계;
    (E) 결정 트리 생성부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블의 각 단편에 대해 상기 비용 계산 엔진부에서 계산한 매칭 비용 정보를 기반으로 결정 트리를 생성하는 단계; 및
    (F) 패턴 매칭 엔진부가 결정 트리를 적용하여 정책 패턴 매칭을 수행하는 탐지 엔진을 구성하는 단계를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
  8. 청구항 7항에 있어서,
    상기 (A) 단계는
    (A-1) 상기 정규식 추출부가 상기 정책 데이터베이스의 모든 정책을 로드하는 단계; 및
    (A-2) 상기 정규식 추출부가 각 정책별 정규식 옵션 포함 여부를 확인하여 정규식 옵션을 포함할 경우에 정규식 리스트에 추가하여 정규 표현식 옵션 문자열의 집합을 형성하는 단계를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
  9. 청구항 7항에 있어서,
    상기 (B) 단계는
    (B-1) 상기 정규식 단편부가 정규 표현식 옵션 문자열의 집합의 각 정규 표현식 옵션 문자열에 대하여 단편화 규칙을 적용하여 단편으로 분할하는 단계;
    (B-2) 상기 정규식 단편부가 분할된 단편에 대하여 다른 정규식에서 분할된 단편과 중복되는지 여부를 판단하는 단계;
    (B-3) 상기 정규식 단편부는 상기(B-2)의 판단 결과, 중복되는 단편이 존재하지 않으면 정규식 단편 테이블에 추가하여 정규식 단편 테이블을 형성하는 단계; 및
    (B-4) 상기 정규식 단편부는 상기 (B-2)의 판단 결과, 중복되는 단편이 존재하면 이를 통합하여 정규식 단편 테이블을 형성하는 단계를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
  10. 청구항 7항에 있어서,
    상기 (C) 단계에서 상기 정규식 일반화부는 정규식 단편 테이블의 각 단편을 검사하여 의존성 및 복잡도를 제거하는 형태의 최적화를 수행하여 최적화된 단편 테이블을 형성하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
  11. 청구항 7항에 있어서,
    상기 (D) 단계는
    (D-1) 상기 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 패킷 스트림을 인가하는 단계;
    (D-2) 상기 비용 계산 엔진부가 패킷 스트림에 대하여 매칭 여부를 기록하는 단계;
    (D-3) 상기 비용 계산 엔진부가 패킷 스트림에 대한 매칭 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 단편에 비용을 책정하는 단계;
    (D-4) 상기 비용 계산 엔진부가 상기 정규식 일반화부에서 최적화된 정규식 단편 테이블에 샘플 트래픽으로 네트워크 트래픽을 인가하는 단계;
    (D-5) 상기 비용 계산 엔진부가 네트워크 트래픽에 대하여 매칭 여부를 기록하는 단계; 및
    (D-6) 상기 비용 계산 엔진부가 네트워크 트래픽에 대한 매칭 결과를 기반으로 각 단편에 대한 매칭 비용을 계산하여 단편에 매칭 비용을 책정하는 단계를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
  12. 청구항 7항에 있어서,
    상기 (F) 단계는
    (F-1) 상기 패턴 매칭 엔진부가 정책 데이터베이스에 저장된 각 정책에 대해서 정규표현식을 제외한 탐색 옵션 존재 시 해당 정보를 추출하는 단계;
    (F-2) 상기 패턴 매칭 엔진부가 정규식 옵션을 기반으로 생성한 정규표현식 결정 트리를 통합하는 단계; 및
    (F-3) 상기 패턴 매칭 엔진부가 상기 (F-1)에서 추출한 정보와 상기 (F-2)에서 통합한 정규 표현식 결정 트리를 통합하여 탐색 엔진을 구성하여 메모리에 적재하는 단계; 및
    (F-4) 상기 패턴 매칭 엔진부가 패킷 유입시 공격 매칭을 수행하는 단계를 포함하는 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 방법.
KR1020160142330A 2016-10-28 2016-10-28 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법 KR101913141B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160142330A KR101913141B1 (ko) 2016-10-28 2016-10-28 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법
US15/665,915 US20180121544A1 (en) 2016-10-28 2017-08-01 Apparatus and method for enhancing regular expression search performance through cost-based optimization technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142330A KR101913141B1 (ko) 2016-10-28 2016-10-28 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180046763A KR20180046763A (ko) 2018-05-09
KR101913141B1 true KR101913141B1 (ko) 2019-01-14

Family

ID=62021577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142330A KR101913141B1 (ko) 2016-10-28 2016-10-28 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법

Country Status (2)

Country Link
US (1) US20180121544A1 (ko)
KR (1) KR101913141B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851506B (zh) * 2018-07-25 2021-12-03 上海柯林布瑞信息技术有限公司 临床大数据的搜索方法及装置、存储介质、服务器
CN111343127B (zh) * 2018-12-18 2021-03-16 北京数安鑫云信息技术有限公司 一种提升爬虫识别召回率的方法、装置、介质及设备
WO2022013608A1 (en) * 2020-07-15 2022-01-20 Telefonaktiebolaget Lm Ericsson (Publ) User plane function selection based on per subscriber cpu and memory footprint for packet inspection
US11636132B1 (en) * 2021-02-16 2023-04-25 Wells Fargo Bank, N.A. Systems and methods for automatically deriving data transformation criteria
US11546217B1 (en) * 2021-09-14 2023-01-03 Hewlett Packard Enterprise Development Lp Detecting configuration anomaly in user configuration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101268510B1 (ko) * 2011-12-29 2013-06-07 주식회사 시큐아이 시그니처 탐지 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814111B2 (en) * 2006-01-03 2010-10-12 Microsoft International Holdings B.V. Detection of patterns in data records
US10721244B2 (en) * 2014-03-19 2020-07-21 Nippon Telegraph And Telephone Corporation Traffic feature information extraction method, traffic feature information extraction device, and traffic feature information extraction program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101268510B1 (ko) * 2011-12-29 2013-06-07 주식회사 시큐아이 시그니처 탐지 장치 및 방법

Also Published As

Publication number Publication date
US20180121544A1 (en) 2018-05-03
KR20180046763A (ko) 2018-05-09

Similar Documents

Publication Publication Date Title
KR101913141B1 (ko) 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법
US9495479B2 (en) Traversal with arc configuration information
US8914320B2 (en) Graph generation method for graph-based search
US20080189784A1 (en) Method and Apparatus for Deep Packet Inspection
Cho et al. Fast reconfiguring deep packet filter for 1+ gigabit network
US20080111716A1 (en) Detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit strings using a hierarchical data structure
JP2009535747A (ja) 近似パターン合致の方法および装置
US20110022617A1 (en) Finite automaton generation system for string matching for multi-byte processing
Pettie et al. A randomized time-work optimal parallel algorithm for finding a minimum spanning forest
CN107563201A (zh) 基于机器学习的关联样本查找方法、装置及服务器
CN113128143A (zh) Ai处理器的仿真方法、装置、计算机设备及存储介质
US9065743B2 (en) Determining connectivity in a failed network
US11223641B2 (en) Apparatus and method for reconfiguring signature
Weng et al. Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system
KR102425525B1 (ko) 베이지안 확률 및 폐쇄 패턴 마이닝 방식을 이용한 로그 이상 탐지 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
US20120158635A1 (en) Storage efficient programmable state machine
Vakili et al. Memory-efficient string matching for intrusion detection systems using a high-precision pattern grouping algorithm
KR101771352B1 (ko) 동적 환경에서의 그래프 요약 방법 및 장치
Kawano et al. High-speed DPI method using multi-stage packet flow analyses
Stimpfling et al. Extensions to decision-tree based packet classification algorithms to address new classification paradigms
US11025650B2 (en) Multi-pattern policy detection system and method
Liu et al. Overlay automata and algorithms for fast and scalable regular expression matching
KR101893029B1 (ko) 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치
KR20180050163A (ko) 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치
Ramesh et al. Parallelizing deep packet inspection on GPU

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right