KR102006220B1 - 시그니처 재구성 장치 및 방법 - Google Patents

시그니처 재구성 장치 및 방법 Download PDF

Info

Publication number
KR102006220B1
KR102006220B1 KR1020180059159A KR20180059159A KR102006220B1 KR 102006220 B1 KR102006220 B1 KR 102006220B1 KR 1020180059159 A KR1020180059159 A KR 1020180059159A KR 20180059159 A KR20180059159 A KR 20180059159A KR 102006220 B1 KR102006220 B1 KR 102006220B1
Authority
KR
South Korea
Prior art keywords
signature
fragment
load
impact
influence
Prior art date
Application number
KR1020180059159A
Other languages
English (en)
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 KR1020180059159A priority Critical patent/KR102006220B1/ko
Priority to US16/420,836 priority patent/US11223641B2/en
Application granted granted Critical
Publication of KR102006220B1 publication Critical patent/KR102006220B1/ko

Links

Images

Classifications

    • 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/1425Traffic logging, e.g. anomaly detection
    • 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
    • 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
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • 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/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

본 발명은 시그니처 기반의 비정상 트래픽 탐지 기법에 이용되는 시그니처를 재구성하기 위한 장치 및 방법에 관한 것이다. 이를 위한 본 발명의 시그니처 재구성 방법은 데이터베이스에 저장된 시그니처 리스트에서 하나의 시그니처를 선택하고, 선택된 시그니처를 복수의 시그니처 단편들로 분할하는 단계; 복수의 시그니처 단편들을 복수의 부하요소에 대해 검사하여, 복수의 부하요소마다 제1 영향도를 산출하는 단계; 복수의 부하요소에 대한 가중치를 제1 영향도에 각각 적용함으로써, 복수의 부하요소마다 제2 영향도를 산출하는 단계; 산출된 제2 영향도 중에서 각 시그니처 단편에 대응하는 제2 영향도들을 합산하여, 각 시그니처 단편에 대한 최종 부하 영향도를 산출하는 단계; 및 산출된 최종 부하 영향도의 크기에 따라, 복수의 시그니처 단편들의 순서를 재배치하는 단계를 포함하는 것을 특징으로 한다.

Description

시그니처 재구성 장치 및 방법{APPARATUS AND METHOD FOR RECONFIGURING SIGNITURE}
본 발명은 시그니처 기반의 비정상 트래픽 탐지 기법에 이용되는 시그니처를 재구성하기 위한 장치 및 방법에 관한 것이고, 더 상세하게 시그니처를 이루는 복수의 시그니처 단편들의 순서를 재배치함으로써 각 시그니처를 최적화시킬 수 있는 시그니처 재구성 장치 및 방법에 관한 것이다.
컴퓨터 및 인터넷 보급의 확산에 따라 ISP(Internet Service Provider) 업체가 늘어나고 있다. ISP는 개인이나 기업에게 인터넷 접속 서비스, 웹 사이트 구축 등을 제공하는 회사를 의미하며, ISP 업체는 광범위한 정보통신망을 제공하고 있다. 그러나, ISP 업체가 증가함에 따라, 이에 따른 부작용도 급증하고 있다. 특히, P2P(Peer-to-Peer) 응용서비스, 이메일 등을 통해 비정상 트래픽을 발생시키는 웜, 바이러스, 백도어, 랜섬웨어 등이 인터넷에 다량으로 유포되고 있으며, 이들의 공격기법 또한 고도화되고 다양화되어 가는 추세이다. 이들 공격기법은 정보통신망의 안전성 및 신뢰성을 위협하고 있어서, 공격에 대한 발생 징후를 사전에 탐지하여 대응할 수 있는 방안의 필요성이 대두되고 있다.
정보통신망의 이상 징후를 탐지하는 기법 중에는 시그니처 기반의 비정상 트래픽 탐지 기법이 있다. 시그니처란 트래픽의 특징을 나타내는 것으로서, 특정 응용 프로토콜 수행을 위해서 네트워크 상으로 주고 받는 메시지 중에서 해당 응용 프로토콜에서만 발견되는 비트 패턴을 의미한다. 시그니처는 보통 정규표현식(Regular Expression)의 형태로 메모리에 저장될 수 있다.
정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용되는 형식 언어로서, 다양한 검색 엔진, 문서 편집기 등을 포함하는 대부분의 어플리케이션 상에서 주로 텍스트 패턴 매칭에 활용되고 있다. 그런데 정규표현식이 유연성이 높은 형태로 이루어지는 경우(예를 들어, 정규표현식이 불특정 표현 또는 길이를 나타내는 자료형 또는 짧은 길이로 표현되는 경우), 매칭되는 텍스트 패턴이 과도하게 많아지고, 계산량이 증가될 수 있다. 또한, 매칭 범위가 모호한 경우 이를 자료구조로 표현하였을 때, 탐색 구조의 회귀가 빈번하게 발생할 수 있다. 이렇듯 탐색 과정에서 빈번한 회기의 발생 등으로 많은 반복적인 계산이 발생하는 경우에 대해서 '부하 비용이 크다'라고 표현한다.
한편, 시그니처를 이용한 비정상 트래픽 탐지 기법은 서버로 송신되는 패킷들 중 시그니처를 포함하는 패킷을 탐지하고, 탐지된 패킷이 비정상 패킷인지 여부를 판단함으로써 이루어진다. 다만, 부하 비용이 큰 시그니처를 이용하여 비정상 트래픽을 탐지할 경우, 송신되는 매 패킷에 대해 큰 부하 비용을 갖는 시그니처를 활용하여 비정상 트래픽 여부를 확인해야 하므로, 보안 시스템의 시스템 부하가 높아진다. 이러한 문제는 DDoS(Distributed Denial of Service Attack)와 같이 대규모 공격이 발생할 경우, 심각한 문제를 초래할 수 있다. 따라서, 부하 비용을 고려하여, 비정상 트래픽의 탐지에 이용되는 시그니처를 재구성할 수 있는 새로운 방법이 요구된다.
한국등록특허 제1633649호
본 발명은 시그니처 기반으로 비정상 트래픽을 탐지하는 네트워크 장비에 적용되어, 다수의 시그니처를 탐색이 가능한 자료구조로 변환하는 과정에서 탐색 시간에 영향을 주는 요소별 영향도를 계산하고 이를 기반으로 한 최적화 과정을 통해 시그니처를 구성하는 시그니처 단편들의 순서를 재배치할 수 있는 시그니처 재구성 장치 및 방법을 제공하는데 그 목적이 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 시그니처 기반 비정상 트래픽 탐지를 위한 시그니처 재구성 방법은 데이터베이스에 저장된 시그니처 리스트에서 하나의 시그니처를 선택하고, 선택된 시그니처를 복수의 시그니처 단편들로 분할하는 단계; 복수의 시그니처 단편들을 복수의 부하요소에 대해 검사하여, 복수의 부하요소마다 제1 영향도를 산출하는 단계; 복수의 부하요소에 대한 가중치를 제1 영향도에 각각 적용함으로써, 복수의 부하요소마다 제2 영향도를 산출하는 단계; 산출된 제2 영향도 중에서 각 시그니처 단편에 대응하는 제2 영향도들을 합산하여, 각 시그니처 단편에 대한 최종 부하 영향도를 산출하는 단계; 및 산출된 최종 부하 영향도의 크기에 따라, 복수의 시그니처 단편들의 순서를 재배치하는 단계를 포함하는 것을 특징으로 한다.
또한, 복수의 부하요소에 대한 가중치 중 적어도 두 개는 상이할 수 있다.
또한, 가중치는 시그니처 구성, 패턴 탐색 알고리즘, 시그니처 기반 비정상 트래픽 탐지를 수행하는 보안 장치의 사양 중 적어도 하나에 따라 각각 조절될 수 있다.
또한, 복수의 부하요소에 대한 검사는 시그니처 단편에 포함된 패턴의 문법 검사를 포함하고, 제1 영향도를 산출하는 단계는 시그니처 단편에 포함된 패턴의 문법에 따른 제1 영향도를 산출하는 단계를 포함할 수 있다.
또한, 복수의 부하요소에 대한 검사는 시그니처 단편의 길이 검사를 포함하고, 제1 영향도를 산출하는 단계는 시그니처 단편의 길이가 짧을수록 크기가 커지도록 길이 검사에 따른 제1 영향도를 산출하는 단계를 포함할 수 있다.
또한, 복수의 부하요소에 대한 검사는 시그니처 단편에 대한 오토마타 활성 상태 크기 검사를 포함하고, 제1 영향도를 산출하는 단계는 시그니처 단편의 오토마타 활성 상태 크기에 따른 제1 영향도를 산출하는 단계를 포함할 수 있다.
또한, 복수의 부하요소에 대한 검사는 시그니처 단편에 대한 오토마타 활성상태 검색공간 크기 검사를 포함하고, 제1 영향도를 산출하는 단계는 시그니처 단편의 오토마타 활성상태 검색공간 크기에 따른 제1 영향도를 산출하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 시그니처 재구성 방법은 복수의 시그니처 단편이 미리 설정된 패널티 조건에 일치하는지 확인하는 단계; 및 패널티 조건에 일치하는 시그니처 단편에 패널티 값을 부여하는 단계를 더 포함하고, 각 시그니처 단편에 대한 최종 부하 영향도를 산출하는 단계는 패널티 값이 부여된 시그니처 단편의 경우, 산출된 최종 부하 영향도에 부여된 패널티 값을 합하는 단계를 포함할 수 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 시그니처 기반 비정상 트래픽 탐지를 위한 시그니처 재구성 장치는 데이터베이스에 저장된 시그니처 리스트에서 하나의 시그니처를 선택하고, 선택된 시그니처를 복수의 시그니처 단편들로 분할하는 시그니처 분할부; 복수의 시그니처 단편들을 복수의 부하요소에 대해 검사하여, 복수의 부하요소마다 제1 영향도를 산출하는 부하요소 검사부; 복수의 부하요소에 대한 가중치를 제1 영향도에 각각 적용함으로써, 복수의 부하요소마다 제2 영향도를 산출하는 가중치 처리부; 및 산출된 제2 영향도 중에서 각 시그니처 단편에 대응하는 제2 영향도들을 합산하여, 각 시그니처 단편에 대한 최종 부하 영향도를 산출하고, 산출된 최종 부하 영향도의 크기에 따라 복수의 시그니처 단편들의 순서를 재배치하는 시그니처 재구성부를 포함할 수 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 시그니처 재구성 장치는 상술한 방법을 수행하는 제어부를 포함할 수 있다.
본 발명의 일 실시예에 따른 시그니처 재구성 장치 및 방법은 각 시그니처에 포함된 시그니처 단편 중 주요 요소로 판단되는 부하 요인에 기반하여 각 순서를 재배치함으로써 보다 최적화된 탐색 환경을 구성할 수 있다.
또한, 본 발명의 일 실시예에 따른 시그니처 재구성 장치 및 방법은 시그니처와 하드웨어 장비, 네트워크 망 등의 영향을 산술적인 수치로 부하 영향도에 반영할 수 있다.
도 1은 본 발명의 일 실시예에 따른 비정상 트래픽 탐지 시스템에 대한 개념도이다.
도 2는 본 발명의 제1 실시예에 따른 시그니처 재구성 장치에 대한 블록도이다.
도 3은 본 발명의 제1 실시예에 따른 시그니처 재구성 장치를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 제2 실시예에 따른 시그니처 재구성 장치에 대한 블록도이다.
도 5는 본 발명의 제2 실시예에 따른 시그니처 재구성 장치를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다.
도 6은 본 발명의 제3 실시예에 따른 시그니처 재구성 장치에 대한 블록도이다.
도 7은 오토마타 생성부를 통해 생성된 오토마타의 일 예시를 도시한다.
도 8은 본 발명의 제3 실시예에 따른 시그니처 재구성 장치를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다.
도 9는 본 발명의 일 실시예에 따른 시그니처 재구성 방법에 대한 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
도 1은 본 발명의 일 실시예에 따른 비정상 트래픽 탐지 시스템(1000)에 대한 개념도이다. 본 발명의 일 실시예에 따른 비정상 트래픽 탐지 시스템(1000)은 복수의 클라이언트(1a, 1b, 1c)들, 서버(2), 보안 장치(10), 데이터베이스(20) 및 시그니처 재구성 장치(100)를 포함한다. 시그니처 재구성 장치(100)는 보안 장치(10)의 내부에 장착되거나 소프트웨어의 형태로 설치될 수 있고, 별도의 장치 형태로 보안 장치(10)에 직접 연결될 수도 있다. 도 1에서, 클라이언트의 개수는 3개인 것으로 도시되었으나, 이는 예시일 뿐이고 실제 환경에 따라 다양한 수의 클라이언트들이 포함될 수 있다.
보안 장치(10)는 복수의 클라이언트들(1a, 1b, 1c)로부터 송신된 패킷들을 분석함으로써 비정상 트래픽을 탐지하는 기능을 한다. 여기서, 보안 장치(10)는 데이터베이스(20)에 저장된 탐지패턴 리스트(이하, 시그니처 리스트)를 이용하여, 복수의 클라이언트들(1a, 1b, 1c)로부터 서버(2)로 송신된 패킷(또는 패킷에 포함된 페이로드)들을 분석하고 비정상 트래픽을 탐지할 수 있다. 구체적으로, 보안 장치(10)는 패킷을 수집하고, 패킷의 내용과 시그니처 리스트에 포함된 각 시그니처를 순차적으로 비교하는 과정을 수행한다. 여기서, 각 시그니처는 적어도 하나의 시그니처 단편을 포함하고, 시그니처 단편의 패턴은 정규표현식의 형태를 가질 수 있다.
예를 들어, 복수의 클라이언트들(1a, 1b, 1c) 중 제1 클라이언트(1a)가 패킷을 보낸 상황을 가정한다. 보안 장치(10)는 제1 클라이언트(1a)가 송신한 패킷을 분석하고, 패킷의 내용을 추출할 수 있다. 그 후, 보안 장치(10)는 제1 클라이언트(1a)가 송신한 패킷의 내용이 데이터베이스(20)에 저장된 각 시그니처에 대응하는지 비교한다. 상술한 것처럼, 데이터베이스(20)는 복수의 시그니처들을 포함하는 시그니처 리스트를 포함하고, 각 시그니처는 정규표현식으로 표현된 복수의 시그니처 단편을 포함한다. 본 발명의 설명을 위한 예시로서, 시그니처 리스트는 n개의 시그니처를 포함하고, 각 시그니처는 아래의 수학식 1과 같이 표현되는 것으로 가정한다.
Figure 112018051089679-pat00001
수학식 1에서 Sn는 n 번째 시그니처를 나타내고, P'는 시그니처에 포함된 시그니처 단편을 나타낸다. 수학식 1에서 A, B, C, D, E, F, G, X, Y, Z는 각 시그니처 단편의 구분을 위해 상이한 문자를 기재하였으나, 이들 중 적어도 일부는 동일할 수도 있다.
이 예시에서, 보안 장치(10)는 제1 클라이언트(1a)가 송신한 패킷의 내용과 데이터베이스(20)에 저장된 n개의 시그니처(S1, S2, Sn)를 순차적으로 비교할 수 있다. 예를 들어, 보안 장치(10)는 패킷의 내용과 제1 시그니처(S1)에 포함된 첫 번째 시그니처 단편(P'A')의 패턴을 비교하고, 패킷의 내용이 제1 시그니처(S1)의 첫 번째 시그니처 단편(P'A')의 패턴에 일치하는지 판단한다. 판단 결과, 패킷의 내용이 제1 시그니처(S1)에 포함된 첫 번째 시그니처 단편(P'A')의 패턴에 일치하는 경우, 보안 장치(10)는 패킷의 내용과 제1 시그니처(S1)에 포함된 두 번째 시그니처 단편(P'B')의 패턴을 비교한다. 또한, 패킷의 내용이 제1 시그니처(S1)에 포함된 두 번째 시그니처 단편(P'B')의 패턴에도 일치하는 경우, 보안 장치(10)는 패킷의 내용과 제1 시그니처(S1)에 포함된 세 번째 시그니처 단편(P'C')의 패턴을 비교한다. 판단 결과, 패킷의 내용이 제1 시그니처(S1)에 포함된 두 번째 시그니처 단편(P'C')의 패턴에도 일치하는 경우, 보안 장치(10)는 패킷이 제1 시그니처(S1)와 대응되는 비정상 트래픽인 것으로 판단하고, 수신한 패킷을 버릴 것이다.
반대로, 보안 장치(10)는 패킷의 내용이 제1 시그니처(S1)에 포함된 시그니처 단편들(P'A', P'B', P'C')의 패턴 중 적어도 하나에 일치하지 않는 경우, 패킷의 내용과 다음 시그니처(본 예시에서 제2 시그니처(S2))의 첫 번째 시그니처 단편의 패턴의 비교를 수행한다. 보안 장치(10)에서 이루어지는 패킷의 내용과 제2 시그니처(S2) 내지 제n 시그니처(Sn)의 비교 과정은 제1 시그니처(S1)와의 비교 과정과 실질적으로 동일하므로, 중복되는 설명은 생략한다.
보안 장치(10)는 패킷의 내용과 각 시그니처를 순차적으로 비교하여, 패킷의 내용이 적어도 하나의 시그니처와 일치하는 경우, 해당 패킷을 비정상 트래픽으로 판단하고 버린다. 반대로, 패킷의 내용이 모든 시그니처와 일치하지 않는 경우, 보안 장치(10)는 제1 클라이언트(1a)가 송신한 패킷을 정상 트래픽으로 판단하고, 패킷을 서버(2)로 전달한다.
이처럼, 보안 장치(10)는 클라이언트로부터 수신한 패킷에 대해, 시그니처 리스트에 속한 시그니처 순으로, 그리고 각 시그니처에 포함된 시그니처 단편 순으로 비교 과정을 수행한다. 즉, 보안 장치(10)를 통해 이루어지는 비정상 트래픽 검사 과정은 시그니처 단편의 배열에 따라 복잡도가 결정될 수 있다.
본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 보안 장치(10)가 이용하는 데이터베이스(20) 내의 시그니처 리스트를 분석하고, 분석 결과에 따라 시그니처 리스트에 포함된 각 시그니처의 순서를 재배치함으로써 비정상 트래픽 검사 효율을 높일 수 있다. 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)가 각 시그니처를 재구성할 때 고려되는 사항들은 다음과 같다.
첫째, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 정규표현식 문법을 검사한다. 구체적으로, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법(예를 들어, 메타문자, 문자 클래스 등)이 시그니처 단편에 포함되어있는지 여부를 검사할 수 있다. 앞서 설명한 것처럼 정규표현식이 단순한 자료구조로 표현되는 경우, 어느 시그니처 단편은 공격 패턴이 명확하게 포함된 한편, 어느 시그니처 단편은 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법(예를 들어, '*', '+', ".{x, }" 등)을 포함할 수 있다. 다만, 불특정 길이 또는 불특정 자료형을 나타내는 문법은 정상 트래픽에 포함된 데이터에도 매칭될 확률이 높다.
예를 들어, 제1 시그니처(S1)에서, P'A'는 "*g"이고, P'B'는 "abcd"이고, P'C'는 "12345jpg"이며, 유입되는 패킷은 "bcc345defg"의 내용을 갖는 상황을 가정한다. 그리고, "*"은 모든 길이의 문자를 의미하는 것으로 가정한다. P'A'에서 '*g'는 마지막 문자가 g인 모든 문자열(예를 들어, "g", "baaag", "bcdddsg", "baabbaag" 등)을 나타내므로, 텍스트 등으로 이루어진 다른 패턴들에 비해 매칭 확률이 높을 것이다.
이 예시에서, 보안 장치(10)는 패킷의 내용과 제1 시그니처(S1)의 첫 번째 시그니처 단편(P'A')인 "*g"를 비교한다. 여기서, 보안 장치(10)가 송신한 패킷에는 "bcc345defg"와 같이 마지막 문자가 'g'이므로, 보안 장치(10)는 패킷의 내용이 제1 시그니처(S1)의 첫 번째 시그니처 단편(P'A')과 일치하는 것으로 판단하고, 패킷의 내용과 두 번째 시그니처 단편(P'B')과 비교를 할 것이다. 그 후, 보안 장치(10)는 패킷의 내용과 제1 시그니처(S1)의 두 번째 시그니처 단편(P'B')인 "abcd"를 비교한다. 이 예시에서, 패킷의 내용과 제1 시그니처(S1)의 두 번째 시그니처 단편(P'B')은 서로 일치하지 않으므로, 보안 장치(10)는 패킷의 내용과 제2 시그니처(S2) 간 비교를 수행하게 될 것이다.
다른 예시로서, 제1 시그니처(S1)가 P'B' P'C' P'A' 순으로 구성된 상황을 가정한다. 보안 장치(10)는 제1 시그니처(S1)의 첫 번째 시그니처 단편인 P'B'와 패킷의 내용을 비교할 것이다. 이 경우, 패킷의 내용과 제1 시그니처(S1)의 첫 번째 시그니처 단편(P'B')은 서로 일치하지 않으므로, 보안 장치(10)는 제1 시그니처(S1)에 대한 추가적인 비교 과정 없이, 바로 제2 시그니처(S2)를 통한 비교를 수행할 것이다.
이처럼, 시그니처에 불특정 길이 또는 불특정 자료형인 메타문자 또는 문자 클래스를 포함하는 시그니처 단편이 우선적으로 배치된 경우 클라이언트로부터 송신된 패킷이 정상 패킷이더라도, 이 메타문자 또는 문자 클래스로 인해 가능한, 문자열의 다양한 조합만큼 시그니처의 두 번째 시그니처 단편에 대한 검사가 수행될 확률이 높다. 다시 말해, 이러한 시그니처를 이용한 비정상 트래픽의 검사 효율은 상당히 떨어질 것이다. 반면, 불특정 길이 또는 불특정 자료형의 문자를 포함하는 시그니처 단편이 차후에 비교될 수 있도록 시그니처의 뒤쪽에 배치되면, 이 시그니처를 이용한 비정상 트래픽의 검사 효율을 높일 수 있다.
둘째, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 패턴의 길이를 고려한다. 하나의 시그니처는 복수의 시그니처 단편을 가질 수 있고, 각 시그니처 단편은 서로 상이한 패턴 길이를 가질 수 있다. 일반적으로, 시그니처 단편들에서, 상대적으로 길이가 긴 시그니처 단편은 희소성이 있는 것으로 볼 수 있고, 길이가 짧은 시그니처 단편은 패킷의 내용과 일치 확률이 높으므로, 전처리 과정에서 높은 부하를 야기할 가능성이 있다. 따라서, 일정 길이 범위 내에서 희소성이 높은 시그니처 단편에 대해서는 낮은 부하 영향도를 부여할 수 있고, 희소성이 낮은 시그니처 단편(예를 들어, 문자 길이가 일정 길이 미만인 시그니처 단편)은 높은 부하 영향도를 부여할 수 있다. 또한, 길이가 정의한 범위를 벗어나는 경우는 매칭 비용 발생을 고려하여 부하 영향도를 추가적으로 부여할 수 있다. 여기서, 부하 영향도란 아래에서 설명되는 부하요소 별로 보안 장치 또는 네트워크에 발생시킬 부하 정도를 나타낸다.
이처럼, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 상술한 메타문자 또는 문자 클래스의 존재여부와, 시그니처 단편에 포함된 패턴의 길이를 이용하여 각 시그니처를 재구성할 수 있다. 또한, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 아래에서 설명되는 사항들을 선택적으로 더 고려할 수도 있다.
본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 오토마타 활성상태 크기를 더 고려할 수 있다. 오토마타는 복수의 상태를 포함할 수 있고, 오토마타 활성상태가 크다는 것은 상태의 개수가 많아, 문자열을 검색하는 과정에서 많은 상태 전이를 거쳐야 한다는 것을 의미한다. 오토마타의 상태가 많을수록 매칭되기까지 많은 조건을 만족시켜야 하기 때문에 전이 상태를 보관하는 시간, 활성상태를 지속적으로 변경하며 오토마타 전체를 검색하는 시간이 탐색 부하에 직접적 연관 요소로 작용할 수 있다.
또한, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 오토마타 활성상태 검색공간 크기를 더 고려할 수 있다. 오토마타 활성상태 검색공간 크기는 활성상태 개수와는 별개로 부하 영향도를 표현할 수 있는 또 다른 요소로서, 검색공간 크기가 커지면, 부하 영향도도 비례하여 증가된다. 여기서, 오토마타 활성상태 검색공간 크기란 오토마타의 활성상태 개수와 무관하게, 매칭 범위가 모호하거나 반복적인 계산을 하는 정규표현식 문법을 위해 확보하는 메모리 공간을 나타낸다. 오토마타 활성상태 검색공간 크기는 정규표현식의 표현에 따라 매칭을 결정하기 전에, 가능성이 있는 모든 문자열에 대해 저장을 하는 공간의 크기로 볼 수 있다. 예를 들어, 정규표현식에서 '*'이라는 문자는 '모든 길이의 문자'라는 의미를 갖는다. 따라서, "*.co.kr"이라는 패턴이 있다고 가정할 때, .co.kr이 검출되기 전까지 내부적으로 ".co.kr을 포함할 가능성이 있는" 모든 문자열에 대한 정보를 메모리에 저장해야 한다. 이 때의 저장 공간의 크기가 오토마타 활성상태 검색공간 크기로 정의될 수 있다.
도 2는 본 발명의 제1 실시예에 따른 시그니처 재구성 장치(100)에 대한 블록도이다. 본 발명의 제1 실시예에 따른 시그니처 재구성 장치(100)는 시그니처 기반 비정상 트래픽 탐지가 효율적으로 수행될 수 있도록, 시그니처에 포함된 각 시그니처 단편의 배치 순서를 재구성할 수 있다. 이를 위해, 본 발명의 제1 실시예에 따른 시그니처 재구성 장치(100)는 시그니처 분할부(110), 부하요소 검사부(120) 및 시그니처 재구성부(140)를 포함한다. 여기서, 시그니처 분할부(110), 부하요소 검사부(120) 및 시그니처 재구성부(140)는 본 발명의 이해를 돕기 위해 기능별로 구분한 것이고, 시그니처 재구성 장치(100)는 하나의 제어부 또는 소프트웨어의 형태로 구현될 수 있다. 또한, 시그니처 재구성 장치(100)는 단일 코어 또는 다중 코어로 이루어진 CPU, MPU 등으로 구현될 수도 있다.
데이터베이스(20)는 복수의 시그니처를 시그니처 리스트의 형태로 저장할 수 있다. 또한, 시그니처 분할부(110)는 데이터베이스(20)에 저장된 시그니처들 중 하나의 시그니처를 선택하고, 시그니처를 복수의 시그니처 단편들로 분할할 수 있다. 예를 들어, 시그니처 분할부(110)는 파서(parser)일 수 있고, 시그니처를 입력 받아, 문자열 패턴과 정규표현식 문법 등을 고려하여 복수의 시그니처 단편들(예를 들어, 구문을 해석할 수 있는 단위)로 분할한다. 또한, 시그니처 분할부(110)는 컴파일러 또는 인터프리터에서 시그니처를 읽고, 그 구조를 알아내는 구문 분석(parsing)을 하는 구성을 나타낸다. 시그니처 분할부(110)에 의해 수행되는 시그니처 분할 방식은 특정 방식으로 제한되지 않고 다양한 방식으로 이루어질 수 있다.
부하요소 검사부(120)는 시그니처 분할부(110)를 통해 분할된 각 시그니처 단편에 대해, 부하요소마다 제1 영향도를 산출한다. 여기서, 부하요소는 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 시그니처 단편에 포함되어있는지 여부와 시그니처 단편의 패턴의 길이, 오토마타 활성상태 크기 및 오토마타 활성상태 검색공간 크기 중 적어도 일부를 포함한다. 본 발명의 제1 실시예는 부하요소 검사부(120)가 위의 두 개의 부하요소에 대해 검사를 수행하는 것으로 설명되나 이는 예시일 뿐이고, 부하요소 검사부(120)를 통해 이루어지는 검사는 이 두 개의 부하요소 외에 다른 부하요소가 더 추가될 수 있다. 아래의 설명에서는 제1 검사 모듈(121)이 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법의 존재 여부를 고려하고, 제2 검사 모듈(122)이 시그니처 단편의 패턴의 길이를 고려하는 상황을 가정한다.
제1 검사 모듈(121)은 데이터베이스(20)로부터 선택된 시그니처(예를 들어, 제1 시그니처)에 포함된 각 시그니처 단편에 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법(예를 들어, 메타문자, 문자 클래스 등)을 포함하는지 확인하고, 이에 따라 영향도를 부여한다. 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법(예를 들어, 메타문자, 문자 클래스 등)은 다양하게 존재하고, 각 정규표현식 문법(예를 들어, 메타문자 또는 문자 클래스)마다 비정상 트래픽 탐지를 수행하는 보안 장치(10)에 야기될 부하도 상이하다. 따라서, 제1 검사 모듈(121)은 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법의 존재 여부 및 종류를 확인하고, 이의 존재 여부 또는 종류에 따라 상이한 부하 영향도를 부여한다.
예를 들어, 제1 검사 모듈(121)은 시그니처 단편에 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 존재하지 않음을 확인한 경우, 제1 영향도를 기본값(예를 들어, 0 또는 다른 부하요소의 제1 영향도와 비교하여 상대적으로 낮은 값)으로 결정할 수 있다. 반대로, 제1 검사 모듈(121)은 시그니처 단편에 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 존재함을 확인한 경우, 제1 부하요소의 제1 영향도를 해당 정규표현식 문법(예를 들어, 메타문자, 문자 클래스 등)에 따라 미리 설정된 값으로 결정한다. 따라서, 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법 중 상대적으로 부하 영향도가 낮은 정규표현식 문법이 포함된 시그니처 단편은 낮은 영향도 값이 설정될 수 있고, 상대적으로 부하 영향도가 높은 정규표현식 문법이 포함된 시그니처 단편은 높은 영향도 값이 설정될 수 있다.
제2 검사 모듈(122)은 시그니처 단편의 패턴 길이를 확인하고, 패턴 길이에 따라 상이한 영향도를 부여한다. 앞서 설명한 것처럼, 상대적으로 길이가 긴 패턴은 희소성이 높은 것으로 볼 수 있고, 상대적으로 길이가 짧은 패턴은 희소성이 낮은 것으로 볼 수 있다. 또한, 상대적으로 길이가 짧은 패턴은 패킷과의 일치 확률이 높아서 높은 부하를 야기할 가능성이 있다. 따라서, 제2 검사 모듈(122)은 시그니처 단편의 패턴의 길이를 확인하고, 패턴의 길이가 낮을수록 제2 부하요소의 제1 영향도에 높은 값을 부여한다. 예를 들어, 제2 검사 모듈(122)은 시그니처 단편의 패턴 길이를 복수 개의 패턴 길이 판단 범위와 비교하고, 시그니처 단편의 패턴 길이가 속하는 패턴 길이 판단 범위에 따라 상이한 값을 제2 부하요소의 제1 영향도로 설정할 수 있다. 또한, 제2 검사 모듈(122)은 패턴의 길이가 미리 정의된 패턴 길이 판단 범위 미만인 경우, 매칭 비용 발생을 고려하여 부하 영향도를 추가적으로 부여할 수 있다.
도 1을 참조로 설명한 것처럼, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 비정상 트래픽 탐지에서 주요 부하요소로 판단되는 부하 요인을 강조함으로써 시그니처를 재구성할 수 있다. 이를 위해, 본 발명의 일 실시예에 따른 시그니처 재구성 장치(100)는 시그니처 재구성부(140)를 더 포함한다.
시그니처 재구성부(140)는 부하요소 검사부(120)를 통해 계산된 시그니처 단편 별로 각 부하요소에 대한 제1 영향도를 이용하여 시그니처 단편 별로 최종 부하 영향도를 산출한다. 예를 들어, 제1 시그니처 단편의 제1 부하요소의 제1 영향도가 20, 제1 시그니처 단편의 제2 부하요소의 제1 영향도가 50으로 부여된 상황을 가정하면, 제1 시그니처 단편의 최종 부하 영향도는 제1 부하요소의 제1 영향도와 제2 부하요소의 제1 영향도를 합한 70이 된다. 시그니처 재구성부(140)는 부하요소 검사부(120)를 통해 산출된 제1 영향도를 합산하는 과정을 시그니처 단편 별로 수행함으로써, 시그니처 단편 별 최종 부하 영향도를 산출한다.
또한, 시그니처 재구성부(140)는 데이터베이스(20)로부터 선택된 시그니처의 시그니처 단편마다 최종 부하 영향도를 산출하고, 최종 부하 영향도에 따라 시그니처 단편들을 재배치한다. 예를 들어, 시그니처 재구성부(140)는 시그니처 단편들의 최종 부하 영향도를 비교하고, 최종 부하 영향도가 낮을수록 시그니처의 전단에 시그니처 단편을 배치하고, 최종 부하 영향도가 높을수록 시그니처의 후단에 시그니처 단편을 배치하는 재배치를 수행할 수 있다.
도 3은 본 발명의 제1 실시예에 따른 시그니처 재구성 장치(100)를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다. 도 3에 도시된 예시에서는 데이터베이스(20)에서 제1 시그니처(S1)가 선택되었고, 제1 시그니처(S1)는 제1 시그니처 단편(P'A'), 제2 시그니처 단편(P'B') 및 제3 시그니처 단편(P'C')을 포함하고, S1이 P'A' P'B' P'C' 순으로 시그니처 단편을 포함한 상황을 가정한다. 또한, 부하요소 검사부(120)는 두 개의 부하요소에 대해 검사를 수행하는 상황을 가정한다.
시그니처 분할부(110)는 문자열 패턴과 정규표현식 문법 등을 고려하여 제1 시그니처(S1)를 분석하고, 분석 결과에 따라 제1 시그니처(S1)를 복수의 시그니처 단편들로 분할한다. 본 예시에서는 위의 가정에 따라 시그니처 분할부(110)가 제1 시그니처(S1)를 제1 시그니처 단편(P'A'), 제2 시그니처 단편(P'B') 및 제3 시그니처 단편(P'C')으로 분할할 수 있다.
부하요소 검사부(120)는 시그니처 분할부(110)를 통해 분할된 각 시그니처 단편(P'A', P'B', P'C')에 대해, 부하요소에 대한 제1 영향도를 산출한다. 예를 들어, 부하요소 검사부(120)가 두 개의 부하요소에 대해 검사를 수행한다고 가정하면, 부하요소 검사부(120)는 시그니처 단편 순으로 시그니처 단편마다 제1 영향도를 산출할 수 있다. 예를 들어, 부하요소 검사부(120)는 순차적으로 제1 시그니처 단편(P'A')에 대해 제1 및 제2 부하요소의 제1 영향도를 산출하고, 제2 시그니처 단편(P'B')에 대해 제1 및 제2 부하요소의 제1 영향도를 산출하며, 제3 시그니처 단편(P'C')에 대해 제1 및 제2 부하요소의 제1 영향도를 산출할 수 있다. 다른 예시로서, 부하요소 검사부(120)는 부하요소 순으로 시그니처 단편 별로 제1 영향도를 산출할 수 있다. 예를 들어, 부하요소 검사부는 (120)는 순차적으로, 제1 부하요소에 대해 제1, 제2 및 제3 시그니처 단편(P'A', P'B', P'C')을 검사한 후, 제2 부하요소에 대해 제1, 제2 및 제3 시그니처 단편(P'A', P'B', P'C')을 검사하여 시그니처 단편 별로 각 부하요소의 제1 영향도를 산출할 수 있다. 부하요소 검사부(120)를 통해 이루어지는 제1 영향도 산출 순서는 위의 순서로 제한되지 않고, 이의 조합 또는 역순으로도 가능하다. 또한, 위의 설명에서는 부하요소 검사부(120)를 통해 이루어지는 제1 영향도 산출이 시그니처 단편 순으로 또는 부하요소 순으로 순차적으로 이루어지는 것으로 설명하였으나, 이러한 산출 과정은 병렬적으로 동시에 이루어질 수도 있다.
시그니처 재구성부(140)는 부하요소 검사부(120)를 통해 산출된 시그니처 단편 별로 제1 영향도를 합산함으로써 시그니처 단편 별로 최종 부하 영향도를 산출한다. 그 후, 시그니처 재구성부(140)는 각 시그니처 단편의 최종 부하 영향도를 비교하고, 최종 부하 영향도의 크기가 상대적으로 낮은 시그니처 단편을 시그니처의 전단에, 최종 부하 영향도의 크기가 상대적으로 높은 시그니처 단편을 시그니처의 후단에 배치함으로써, 시그니처를 재구성한다.
예를 들어, 시그니처 재구성부(140)를 통해 산출된 결과가 제1 시그니처 단편(P'A')의 최종 부하 영향도가 70이고, 제2 시그니처 단편(P'B')의 최종 부하 영향도가 60이며, 제3 시그니처 단편(P'C')의 최종 부하 영향도가 80인 상황을 가정하면, 시그니처 재구성부(140)는 각 시그니처 단편의 최종 부하 영향도의 크기를 고려하여, 제1 시그니처(S1)를 제2 시그니처 단편(P'B'), 제1 시그니처 단편(P'A'), 제3 시그니처 단편(P'C') 순으로 재구성 할 것이다. 다른 예시로서, 시그니처 재구성부(140)를 통해 산출된 결과가 제1 시그니처 단편(P'A')의 최종 부하 영향도가 80이고, 제2 시그니처 단편(P'B')의 최종 부하 영향도가 30이며, 제3 시그니처 단편(P'C')의 최종 부하 영향도가 50인 상황을 가정하면, 시그니처 재구성부(140)는 각 시그니처 단편의 최종 부하 영향도의 크기를 고려하여, 제1 시그니처(S1)를 제2 시그니처 단편(P'B'), 제3 시그니처 단편(P'C'), 제1 시그니처 단편(P'A') 순으로 재배치 할 것이다.
도 4는 본 발명의 제2 실시예에 따른 시그니처 재구성 장치(200)에 대한 블록도이다. 본 발명의 제2 실시예에 따른 시그니처 재구성 장치(200)는 시그니처 분할부(210), 부하요소 검사부(220), 가중치 처리부(230) 및 시그니처 재구성부(240)를 포함하여 구성될 수 있다. 여기서, 시그니처 분할부(210), 부하요소 검사부(220), 가중치 처리부(230) 및 시그니처 재구성부(240)는 본 발명의 이해를 돕기 위해 기능별로 구분한 것이고, 시그니처 재구성 장치(200)는 하나의 제어부 또는 소프트웨어의 형태로 구현될 수 있다. 또한, 시그니처 재구성 장치(200)는 단일 코어 또는 다중 코어로 이루어진 CPU, MPU 등으로 구현될 수도 있다. 또한, 본 발명의 제2 실시예는 시그니처 재구성 장치(200)가 가중치 처리부(230)를 더 포함하는 점, 그리고 시그니처 재구성부(240)가 가중치 처리부(230)를 이용하여 시그니처를 재구성한다는 점을 제외하고, 제1 실시예와 실질적으로 동일하다. 따라서, 아래에서는 제1 실시예와 차이점을 중심으로 그 설명이 이루어진다.
가중치 처리부(230)는 복수의 부하요소에 대한 가중치를 산출하고, 부하요소 검사부(220)에서 출력된 각 부하요소의 제1 영향도에 복수의 부하요소에 대한 가중치를 반영함으로써, 각 부하요소의 제2 영향도를 산출한다. 즉, 가중치 처리부(230)는 각 부하요소의 제1 영향도에 가중치를 각각 반영함으로써, 제1 영향도 값들을 조절한다. 가중치 처리부(230)를 통해 가중치를 고려하는 이유는 본 발명의 실시예에 따른 시그니처 재구성 장치 또는 방법이 적용되는 보안 장치(10)의 성능(예를 들어, CPU의 사양, 메모리의 용량 등)과 통신 환경이 상이할 수 있기 때문이다. 예를 들어, 어떠한 환경에서는 각 시그니처 단편의 구성(예를 들어, 단순 텍스트 또는 정규표현식)이 보안 장치(10)의 부하에 크게 관여할 수 있는 한편, 다른 환경에서는 그렇지 않을 수 있다. 따라서, 가중치 처리부(230)는 아래의 사항을 고려하여 각 부하요소에 대한 가중치를 산출하고, 산출된 가중치들을 이용하여, 부하요소 검사부(220)에서 출력된 제1 영향도의 크기를 각각 조절한다.
먼저, 가중치 처리부(230)는 제1 부하요소로 언급된 데이터베이스(20)에 저장된 시그니처의 구성을 고려한다. 시그니처의 구성은 단순 텍스트로만 구성되거나 또는, 여러 반복문과 정규표현식이 포함된 문자열 등으로 구성될 수 있다. 예를 들어, 데이터베이스(20)에 저장된 시그니처 리스트에서 대부분의 시그니처들이 단순 텍스트만으로 이루어진 경우, 시그니처의 문법으로 인해 발생할 부하 영향도는 상당히 낮을 것이다.
따라서, 가중치 처리부(230)는 전체 시그니처에서 구성이 단순 텍스트로 이루어진 시그니처 단편의 비율을 확인하고, 이 비율이 미리 설정된 비율(예를 들어, 30%, 40%, 50% 등)을 벗어난 경우 제1 부하요소에 대한 가중치를 높일 수 있다. 일 실시예에서, 가중치 처리부(230)는 시그니처 구성에서 단순 텍스트의 비율이 미리 설정된 비율을 초과하는 경우, 제1 부하요소의 가중치를 다른 가중치에 비해 상대적으로 높게 결정할 수 있다.
또한, 가중치 처리부(230)는 보안 장치(10)가 이용하는 패턴 탐색 알고리즘을 확인하고, 패턴 탐색 알고리즘의 종류에 따라 제2 부하요소의 가중치를 높거나 낮게 설정할 수 있다. 보안 장치(10)가 적용되는 네트워크 망 환경은 다양한 트래픽이 흐르는 인터넷 망뿐만 아니라, 특정 서비스망으로 한정할 수 있다. 보안 장치(10)는 보안 장치(10)가 적용될 망에 따라 상이한 패턴 탐색 알고리즘이 적용될 수 있는데, 이들 중 어떤 패턴 탐색 알고리즘은 패턴의 길이에 따라 문자열 탐색 시간이 길어지는 방식일 수 있다. 따라서, 가중치 처리부(230)는 보안 장치(10)가 이용하는 패턴 탐색 알고리즘을 확인함으로써 제2 부하요소의 가중치를 조절할 수 있다.
가중치는 각 부하요소 별로 고정된 값이 아니다. 가중치의 부여는 시그니처의 구성, 운용 장비의 물리적 장치의 특성, 장비를 운용하는 네트워크망의 트래픽 특성을 고려하여 가변적으로 이루어질 수 있다.
또한, 가중치 처리부(230)는 각 부하요소의 제2 영향도에 대해 추가적인 조정이 필요한지 확인할 수 있다. 예를 들어, 가중치 처리부(230)는 패널티 정보를 확인하고, 패널티 정보를 이용하여 아래에서 설명되는 시그니처 단편에 대한 최종 부하 영향도에 추가적인 조정이 필요한지 확인할 수 있다. 패널티 정보는 시그니처 단편에 추가적인 부하 영향도를 부여할지 판단하기 위한 패널티 조건을 포함하는 정보이다. 즉, 패널티 정보는 부하요소 검사부(220)를 통한 각 부하요소의 검사과정에서 산술적인 부하 판단기준 이외에, 추가적인 판단 과정을 통해 시그니처 단편이 패널티 정보에 포함된 추가적인 패널티 조건에 일치하는지 판단할 때 이용될 수 있다. 가중치 처리부(230)는 패널티 정보에 포함된 추가적인 판단 조건(예를 들어, 패널티 조건)에 일치하는 경우, 이 시그니처 단편에 대한 패널티 값을 부여한다.
예를 들어, 가중치 처리부(230)는 위에서 설명한 부하요소들에 대한 영향도 산출 이외에, 추가적인 패널티 조건을 이용한 비교 과정을 수행하고 패널티 조건에 일치하는 시그니처 단편이 검색되면, 검색된 시그니처 단편의 순서를 최종 부하 영향도에 재배치하는 패널티 값을 부여할 수 있다. 다시 말해, 가중치는 부하요소에 대한 제1 영향도에 적용되는 값이고, 패널티 값은 시그니처 단편에 대해 적용되는 값이다.
시그니처 재구성부(240)는 가중치 처리부(230)에서 출력된 각 부하요소의 제2 영향도를 받고, 제2 영향도를 이용하여 시그니처 단편의 최종 부하 영향도를 산출한다. 또한, 시그니처 재구성부(240)는 최종 부하 영향도를 산출하기 전, 시그니처 단편에 패널티 값이 부여되었는지 확인하고, 패널티값이 부여된 경우 각 부하요소 제2 영향도와 패널티 값 모두를 합하여 시그니처 단편의 최종 부하 영향도를 산출할 수 있다.
또한, 시그니처 재구성부(240)는 시그니처의 모든 시그니처 단편에 대해 최종 부하 영향도가 산출되었는지 확인하고, 모든 시그니처 단편에 대한 최종 부하 영향도가 산출된 경우, 시그니처에서 최종 부하 영향도의 크기에 따라 각 시그니처 단편을 재배치함으로써 시그니처를 재구성한다. 시그니처 재구성부(240)를 통해 이루어지는 동작은 도 2 및 도 3을 참조로 상세히 설명하였으므로, 중복되는 설명은 생략한다.
본 발명의 제2 실시예에 따른 시그니처 재구성 장치(200)는 가중치를 반영하여(예를 들어, 시그니처 구성과 패턴 탐색 알고리즘 등을 고려하여) 부하요소에 대해 영향도를 산출할 수 있다. 가중치는 검색 성능에 영향이 큰 부하요소에서 계산된 부하 발생 비용이 통합 비용(예를 들어, 최종 부하 영향도)에 적용될 때의 비중을 높이는 역할을 한다. 상황에 따라 조절된 크기의 가중치를 반영함으로써, 가중치가 적용되지 않을 때보다 시그니처의 부하 여부 검출 확률을 높일 수 있으며, 적은 탐색 시간도 보장할 수 있다.
도 5는 본 발명의 제2 실시예에 따른 시그니처 재구성 장치(200)를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다. 도 5에 도시된 예시는 도 3에 도시된 예시와 마찬가지로, 데이터베이스(20)에서 제1 시그니처(S1)가 선택되었고, 제1 시그니처(S1)는 제1 시그니처 단편(P'A'), 제2 시그니처 단편(P'B') 및 제3 시그니처 단편(P'C')을 포함하고, 제1 시그니처(S1)가 P'A' P'B' P'C' 순으로 시그니처 단편을 포함한 상황을 가정한다. 부하요소 검사부(220)는 두 개의 부하요소에 대해 검사를 수행하는 상황을 가정한다. 또한, 본 발명의 제2 실시예는 가중치를 고려한다는 점을 제외하고, 제1 실시예와 실질적으로 동일하므로 아래에서는 차이점 위주로 설명이 이루어진다.
가중치 처리부(230)는 부하요소 검사부(220)에서 출력된 각 부하요소의 제1 영향도(도 5에서, 제1 부하요소의 제1 영향도 및 제2 부하요소의 제1 영향도)에 복수의 부하요소에 대한 가중치를 적용함으로써, 각 부하요소의 제2 영향도(도 5에서, 제1 부하요소의 제2 영향도 및 제2 부하요소의 제2 영향도)를 산출한다. 도 5에 도시된 예시는 제1 부하요소에 대한 가중치가 제2 부하요소에 대한 가중치보다 높은 상황을 가정한다. 예를 들어, 제1 부하요소의 제1 영향도 및 제1 부하요소의 제2 영향도가 각각 30이고, 제1 부하요소의 가중치 및 제2 부하요소의 가중치가 각각 1.5 및 0.5인 상황을 가정하면, 제1 부하요소의 제2 영향도는 45, 그리고 제2 부하요소의 제2 영향도는 15가 될 것이다. 또한, 제1 부하요소의 제1 영향도 및 제1 부하요소의 제2 영향도가 각각 60 및 30이고, 제1 부하요소의 가중치 및 제2 부하요소의 가중치가 각각 1.5 및 0.5인 상황을 가정하면, 제1 부하요소의 제2 영향도는 90, 그리고 제2 부하요소의 제2 영향도는 15가 될 것이다.
시그니처 재구성부(240)는 가중치 처리부(230)를 통해 가중치가 반영된 제2 영향도들을 합산함으로써, 각 시그니처 단편의 최종 부하 영향도를 계산한다. 또한, 시그니처 재구성부(240)는 시그니처에 포함된 모든 시그니처 단편들의 최종 부하 영향도 계산이 완료되면, 최종 부하 영향도의 크기에 따라 시그니처 단편들을 P'B' P'C' P'A' 순으로 재배치함으로써, 시그니처를 재구성한다.
도 6은 본 발명의 제3 실시예에 따른 시그니처 재구성 장치(300)에 대한 블록도이다. 본 발명의 제3 실시예에 따른 시그니처 재구성 장치(300)는 시그니처 분할부(310), 부하요소 검사부(320), 가중치 처리부(330), 시그니처 재구성부(340) 및 오토마타 생성부(350)를 포함하여 구성될 수 있다. 여기서, 시그니처 분할부(310), 부하요소 검사부(320), 가중치 처리부(330), 시그니처 재구성부(340) 및 오토마타 생성부(350)는 본 발명의 이해를 돕기 위해 기능별로 구분한 것이고, 시그니처 재구성 장치(300)는 하나의 제어부 또는 소프트웨어의 형태로 구현될 수 있다. 또한, 시그니처 재구성 장치(300)는 단일 코어 또는 다중 코어로 이루어진 CPU, MPU 등으로 구현될 수도 있다. 또한, 본 발명의 제3 실시예는 부하요소 검사부(320)가 N개의 부하요소를 고려하는 점, 그리고 부하요소 검사부(320)를 통해 고려될 오토마타를 생성하기 위한 오토마타 생성부(350)를 더 포함하는 점을 제외하고, 제1 실시예 또는 제2 실시예와 실질적으로 동일하다. 따라서, 아래에서는 제1 실시예 또는 제2 실시예와의 차이점을 중심으로 그 설명이 이루어진다.
시그니처 분할부(310)는 데이터베이스(20)에 저장된 시그니처들 중 하나의 시그니처를 선택하고, 시그니처를 복수의 시그니처 단편들로 분할한다.
오토마타 생성부(350)는 시그니처 분할부(310)를 통해 분할된 복수의 시그니처 단편들에 대한 오토마타를 하나씩 순차적으로 생성하거나 동시에 생성할 수 있다. 여기서, 오토마타는 디지털 컴퓨터에 대한 추상적 모델을 나타내며, 유한 상태일 수 있다. 유한 상태의 오토마타는 유한개의 상태, 입력, 상태전이 함수, 하나의 초기 상태, 적어도 하나의 종료 상태를 포함한다. 일반적으로, 유한 상태 모델은 연속적으로 입력되는 입력에 대한 처리를 위한 모델이다. 오토마타 생성부(350)를 통해 생성한 오토마타의 예시는 도 7에 도시된다.
도 7은 오토마타(예를 들어, 유한 상태 오토마타)의 개념을 설명하기 위한 개념도이다. 도 7에서 숫자 0 내지 숫자 5를 포함하는 원은 유한 오토마타의 상태를 각각 나타내고, 화살표에 병기된 문자(a, b, d)는 상태 전이 조건을 나타낸다. 입력된 문자가 상태 전이 조건을 만족할 경우 화살표 방향으로 상태가 전이된다. 예를 들어, 0이 표시된 원은 시작 상태를 나타내고, 시작 상태에서 a가 입력되면 상태 1로 전이된다. 또한, 두 개의 동심원으로 이루어진 5로 표시된 원은 최종 상태를 나타낸다. 시작 상태에서부터 출발하여, 상태가 전이(transition)된 결과 종료 상태에 도달하면 검색하고자 하는 문자열이 검색되었음을 의미한다. 다시 도 6을 참조한다.
부하요소 검사부(320)는 시그니처 분할부(310)를 통해 각 시그니처 단편에 대해, 각 부하요소의 제1 영향도를 산출한다. 제1 및 제2 실시예에서 두 개의 부하요소에 대해 제1 영향도를 산출한 것과 달리, 부하요소 검사부(320)는 N 개(예를 들어, 3개, 4개 또는 그 이상)의 부하요소에 대한 제1 영향도를 산출할 수 있다. 예를 들어, 부하요소는 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 시그니처 단편에 포함되어있는지의 여부, 시그니처 단편의 패턴의 길이, 오토마타 활성상태 크기 및 오토마타 활성상태 검색공간 크기 중 적어도 일부를 포함한다. 도 6에서는 부하요소가 4개인 것으로 도시되나, 이는 예시일 뿐이고 부하요소 검사부(320)는 위의 부하요소 중 일부 또는 전체, 또는 위의 부하요소 외의 다른 부하요소를 고려하여 각 부하요소에 대한 제1 영향도를 산출할 수 있다.
부하요소 검사부(320)는 이들 네 개의 부하요소 중 적어도 일부 또는 전체, 또는 상술한 부하요소 이외의 다른 부하요소에 대해 제1 영향도를 산출할 수 있다. 아래에서는 부하요소 검사부(320)가 네 개의 검사 모듈(321, 322, 323, 324)을 포함하여 네 개의 부하요소에 대한 제1 영향도를 산출하는 상황을 가정한다. 예를 들어, 제1 검사 모듈(321)이 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법의 존재 여부를 고려하고, 제2 검사 모듈(322)이 시그니처 단편의 패턴의 길이를 고려하고, 제3 검사 모듈(323)이 오토마타 활성상태 크기를 고려하며, 제4 검사 모듈(324)이 오토마타 활성상태 검색공간 크기를 고려하는 상황을 가정한다. 여기서, 제1 및 제2 검사 모듈(321, 322)을 통해 이루어지는 동작은 도 2를 참조로 설명한 제1 및 제2 검사 모듈(121, 122)과 실질적으로 동일하므로, 중복되는 설명은 생략한다.
제3 검사 모듈(323)은 오토마타 생성부(350)를 통해 생성된 시그니처 단편의 오토마타의 활성상태 크기에 따라 제3 부하요소의 제1 영향도를 부여할 수 있다. 앞서 설명한 바와 같이, 오토마타의 활성상태가 크다는 것은, 문자열을 검색하는 과정에서 많은 상태 전이를 거쳐야 함을 의미한다. 예를 들어, 활성상태가 큰 오토마타를 갖는 시그니처 단편을 이용하여 비정상 트래픽을 검출할 경우, 매칭되기 까지 많은 조건을 만족시켜야 하기 때문에 전이 상태를 보관하는 시간과, 활성상태를 지속적으로 변경하며 오토마타 전체를 검색하는 시간이 탐색 부하에 직접적 연관 요소로 작용할 수 있다. 따라서, 제3 검사모듈(323)은 이러한 특성을 고려하여 활성상태가 클수록 높은 값을, 그리고 활성상태가 낮을수록 낮은 값을 제3 부하요소의 제1 영향도에 부여할 수 있다.
제4 검사 모듈(324)은 오토마타 생성부(350)를 통해 생성된 시그니처 단편의 오토마타의 활성상태 검색공간 크기에 따라 제4 부하요소의 제1 영향도를 부여할 수 있다. 오토마타의 활성상태 개수는 적으나 매칭 범위가 모호하거나 반복적인 계산을 하는 정규표현식 문법을 위해 확보하는 메모리 공간은 활성상태 검색공간의 크기로서 표현될 수 있다. 이는 활성상태 개수와는 별개로 부하 영향도를 표현할 수 있는 오토마타 검증의 또 다른 주요 요소로서, 검색공간 크기와 비례하여 부하 영향도가 부여된다.
가중치 처리부(330)는 부하요소 검사부(320)에서 출력된 각 부하요소의 제1 영향도에 가중치를 각각 반영함으로써, 각 부하요소의 제2 영향도를 산출한다. 즉, 가중치 처리부(330)는 각 부하요소의 제1 영향도에 가중치를 반영함으로써, 각 부하요소의 제1 영향도 값을 조절한다. 제2 실시예와는 달리, 가중치 처리부(330)는 제1 및 제2 검사 모듈(321, 322)에서 출력된 제1 및 제2 부하요소에 대한 제1 영향도 뿐 아니라, 제3 및 제4 검사 모듈(323, 324)에서 출력된 제3 및 제4 부하요소에 대한 제1 영향도에 제3 및 제4 부하요소에 대한 가중치를 적용함으로써, 제1 내지 제4 부하요소에 대한 제2 영향도를 산출할 수 있다. 한편, 제1 및 제2 부하요소에 대해 가중치를 반영할 때에 고려되어야 할 사항은 위에서 상세히 설명하였으므로, 아래에서는 제3 및 제4 부하요소에 대한 가중치를 반영할 때에 고려되어야 할 사항을 중심으로 설명이 이루어진다.
가중치 처리부(330)는 시그니처 재구성 장치(300) 또는 방법이 적용되는 보안 장비의 성능을 고려할 수 있다. 본 발명의 실시예들에 따른 시그니처 재구성 장치(300)는 시그니처를 운용하는 장비를 대용량 네트워크 트렁크를 처리하는 고성능의 시스템을 가정하고 있으나, 본 발명의 실시예들을 적용하는 기술이 소프트웨어 기반에서 동작할 수 있기 때문에 운용 장비의 환경이 변수가 될 수 있다. 메모리가 적은 시스템에서 오토마타 활성상태 검색공간 크기는 주요 검토 요소가 되며, 가급적 가중치를 높여 그 패턴이 후 순위로 처리될 수 있도록 조치하는 것이 옳다.
따라서, 가중치 처리부(330)는 제1 부하요소로 언급된 시그니처 구성이 정규 표현식인 경우(정규 표현식은 오토마타 활성상태 또는 오토마타 활성상태 검색 공간 크기에 영향을 미침), 그리고 보안 장치(10)에서 메모리의 여유 공간이 적은 경우, 제3 부하요소 및 제4 부하요소에 대한 가중치를 상대적으로 높일 수 있다. 또한, 가중치 처리부(330)는 시그니처 구성이 단순 텍스트인 경우, 텍스트를 구성하는 문자의 개수가 오토마타의 상태 개수에 영향을 미치므로 제3 부하요소의 가중치를 증가시킬 수 있다.
부하를 나타내는 각 요소는 서로 연관성이 있다. 예를 들어, 하나의 시그니처 단편이 100 바이트를 초과하는 텍스트 패턴인 상황을 가정한다. 100 바이트를 초과하는 텍스트 패턴은 예를 들어, 100개를 초과하는 숫자 또는 문자의 조합을 포함할 수 있고, 이 텍스트 패턴에 대해 생성된 오토마타는 100개를 초과하는 상태를 포함하므로, 오토마타의 활성상태 크기도 상대적으로 크다. 그러나, 시그니처 단편이 큰 텍스트 패턴의 경우, 이와 완전히 일치하는 문자열을 찾기 어렵기 때문에, 상대적으로 반복적인 계산의 수행 횟수가 적어진다. 따라서, 오토마타 활성상태 검색공간 크기는 크지 않다.
다른 예시로서, 동일 문자가 4개 이상 100개 이하 반복을 의미하는 '.{4,100}'와 같은 시그니처 단편은 그 길이가 길지 않기 때문에, 오토마타의 활성상태 크기도 크지 않다. 그러나 탐색이 종료되는 시점까지 최소 4 바이트에서 100 바이트까지의 문자열 범위에 대하여 매칭 가능성을 확보해야 하기 때문에, 오토마타 활성상태 검색공간의 크기는 커야 한다.
이처럼, 가중치 처리부(330)는 본 발명의 실시예들에 따른 시그니처 재구성 장치(300) 또는 방법이 적용될 장비의 성능, 그리고 시그니처 리스트에 포함된 각 시그니처의 구조 등을 고려하여, 부하요소 별로 상이한(또는 적어도 두 개가 상이한) 가중치를 적용할 수 있다. 또한, 위에서는 가중치를 증가시키거나 감소시키는 상황에 대해 설명하였다. 다만 이는 예시일 뿐이고, 상기 조건 외에도 다양한 조건을 통해 또는 다양한 상황에 따라 각 부하요소에 대한 가중치가 산출 또는 조절될 수 있다.
가중치 처리부(330)는 제2 실시예와 마찬가지로, 패널티 정보를 확인하고, 패널티 정보를 이용하여 시그니처 단편에 패널티 값을 부여할지 여부를 결정할 수 있다. 패널티 정보를 이용하여 시그니처 단편의 최종 부하 영향도를 조정하는 방법에 대한 설명은 도 4를 참조로 상세히 언급하였으므로, 중복되는 설명을 생략한다.
시그니처 재구성부(340)는 가중치 처리부(330)에서 출력된 각 부하요소의 제2 영향도를 수신하고, 제2 영향도를 이용하여 시그니처 단편의 최종 부하 영향도를 산출한다. 또한, 시그니처 재구성부(340)는 시그니처 단편에 패널티 값이 부여된 경우, 각 부하요소의 제2 영향도와 패널티 값 모두를 합산함으로써 시그니처 단편의 최종 부하 영향도를 산출할 수 있다. 그 후, 시그니처 재구성부(340)는 그 시그니처에서 최종 부하 영향도의 크기에 따라 각 시그니처 단편을 재배치함으로써, 시그니처를 재구성한다. 시그니처 재구성부(340)를 통해 이루어지는 동작은 위에서 상세히 설명하였으므로, 중복되는 설명은 생략한다.
도 8은 본 발명의 제3 실시예에 따른 시그니처 재구성 장치(300)를 통해, 하나의 시그니처를 재구성하는 방법을 설명하기 위한 개념도이다. 도 8에 도시된 예시는 도 3 및 도 5에 도시된 예시와 마찬가지로, 데이터베이스(20)에서 제1 시그니처(S1)가 선택되었고, 제1 시그니처(S1)는 제1 시그니처 단편(P'A'), 제2 시그니처 단편(P'B') 및 제3 시그니처 단편(P'C')을 포함하고, 제1 시그니처(S1)가 P'A' P'B' P'C' 순으로 시그니처 단편을 포함한 상황을 가정한다. 이에 부가하여, 부하요소 검사부(320)는 네 개의 부하요소에 대해 검사를 수행하는 상황을 가정한다.
도 8을 참고하면, 부하요소 검사부(320)는 시그니처 분할부(310)를 통해 분할된 각 시그니처 단편(P'A', P'B', P'C')에 대해, 각 부하요소의 제1 영향도를 산출한다. 예를 들어, 부하요소 검사부(320)는 시그니처 단편 순으로, 또는 부하요소 순으로, 제1 부하요소 내지 제4 부하요소에 대한 제1 영향도를 산출할 수 있다. 도 3을 참조로 설명한 바와 같이, 부하요소 검사부(320)를 통해 이루어지는 제1 영향도 산출은 순차적으로는 물론, 병렬적으로 동시에 이루어질 수도 있다. 도 6을 참조로 설명한 것처럼, 제1 부하요소는 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 시그니처 단편에 포함되어있는지의 여부를 나타내고, 제2 부하요소는 시그니처 단편의 패턴의 길이를 나타내고, 제3 부하요소는 오토마타 활성상태 크기를 나타내며, 제4 부하요소는 오토마타 활성상태 검색공간 크기를 나타낼 수 있다.
가중치 처리부(330)는 부하요소 검사부(320)에서 출력된 제1 내지 제4 부하요소의 제1 영향도에 복수의 부하요소에 대한 가중치를 적용함으로써 각 부하요소의 제2 영향도를 산출한다. 또한, 가중치 처리부(330)는 패널티 조건 등을 고려하여 제2 영향도를 산출할 수 있다.
시그니처 재구성부(340)는 가중치 처리부(330)를 통해 가중치가 반영된(또는 패널티가 반영된) 각 부하요소의 제2 영향도를 합산함으로써, 각 시그니처 단편의 최종 부하 영향도를 계산한다. 또한, 시그니처 재구성부(340)는 시그니처에 포함된 모든 시그니처 단편들의 최종 부하 영향도 계산이 완료되면, 최종 부하 영향도의 크기에 따라 시그니처 단편들을 P'B' P'C' P'A' 순으로 재배치함으로써, 시그니처를 재구성한다.
도 9는 본 발명의 일 실시예에 따른 시그니처 재구성 방법에 대한 흐름도이다. 상술한 바와 같이, 본 발명의 일 실시예에 따른 시그니처 재구성 방법은 시그니처 기반 비정상 트래픽 탐지 기법이 보다 효율적으로 이루어질 수 있도록, 시그니처에 포함된 각 시그니처 단편을 재구성함으로써 각 시그니처를 재구성할 수 있다. 본 발명의 일 실시예에 따른 시그니처 재구성 방법은 도 1 내지 도 8을 참조로 설명된 장치(예를 들어, 복수의 구성들 또는 하나의 제어부를 포함하는 장치)에 의해 이루어지거나, 다른 실시예에서 소프트웨어의 형태로 보안 장치에 설치됨으로써 적용될 수 있다. 이하에서는 위에서 설명된 사항과 중복되는 부분은 생략하여 그 설명이 이루어진다.
S110 단계는 데이터베이스(20)에 저장된 시그니처 중 하나의 시그니처(예를 들어, 제1 시그니처)를 선택하는 단계이다. 앞서 설명한 것처럼, 데이터베이스는 복수의 시그니처들을 시그니처 리스트의 형태로 구비할 수 있다.
S120 단계는 S110 단계를 통해 선택한 시그니처(예를 들어, 제1 시그니처)를 복수의 단편들로 분할하는 단계이다. 예를 들어, S120 단계는 파서 등을 이용하여 시그니처를 수신하고, 문자열 패턴과 정규표현식 문법 등을 고려하여 복수의 시그니처 단편들로(예를 들어, 구문을 해석할 수 있는 단위로) 분할함으로써 이루어질 수 있다. S120 단계에서 이루어지는 구문 분석 방식은 다양한 방식이 존재하므로, 본 발명에서는 이를 특정 방식으로 제한하지 않는다.
S130 단계는 S120 단계를 통해 분할된 각 시그니처 단편들 중 하나의 시그니처 단편을 선택하고, 선택한 시그니처 단편의 각 부하요소의 제1 영향도를 산출하는 단계이다. 부하요소는 불특정 길이 또는 불특정 자료형을 나타내는 정규표현식 문법이 시그니처 단편에 포함되어있는지의 여부, 시그니처 단편의 패턴의 길이, 오토마타 활성상태 크기 및 오토마타 활성상태 검색공간 크기 중 적어도 일부를 포함한다. 예를 들어, S130 단계는 선택한 시그니처 단편에 대해, 두 개, 세 개, 네 개 또는 그 이상의 부하요소의 제1 영향도를 산출할 수 있다. 부하요소는 위에서 설명한 것으로 제한되지 않고 다른 부하요소가 더 고려될 수 있다. 그리고, 각 부하요소에 대한 제1 영향도 산출 방법은 위에서 상세히 언급하였으므로, 중복되는 설명은 생략한다.
S140 단계는 복수의 부하요소에 대한 가중치를 산출 하는 단계이다. 앞서 설명한 바와 같이, 본 발명의 일 실시예에 따른 시그니처 재구성 방법은 시그니처의 구성, 패턴 탐색 알고리즘의 종류, 시스템 메모리의 여유 공간 등을 고려하여, 각 부하요소에 대한 가중치를 산출한다. 가중치를 산출하는 방법과 이에 이용되는 조건 등은 위에서 상세히 설명하였으므로, 중복되는 설명은 생략한다.
S150 단계는 S130 단계를 통해 산출한 각 부하요소의 제1 영향도에 S140 단계를 통해 산출된 복수의 부하요소에 대한 가중치를 각각 적용함으로써, 각 부하요소의 제2 영향도를 산출하는 단계이다.
S150 단계 이후, 도 9에서 블록 A로 도시된, 패널티 정보를 확인하고, 시그니처 단편이 패널티 정보에 포함된 패널티 조건에 매칭하는지 확인한다. 확인 결과, 패널티 조건에 매칭하는 시그니처 단편에 패널티 값을 부여하는 단계가 수행될 수 있다. 패널티 조건을 이용한 확인 단계 및 패널티 조건에 매칭하는 시그니처 단편에 패널티 값을 부여하는 단계는 필수적이지 않다. 그리고, 이들 단계에 대한 설명은 위에서 상세히 설명하였으므로, 중복되는 설명은 생략한다.
S160 단계는 시그니처 단편 별로, 각 부하요소의 제2 영향도를 합산함으로써 각 시그니처 단편에 대한 최종 부하 영향도를 산출하는 단계이다.
S170 단계는 S110 단계를 통해 선택한 시그니처에서 모든 시그니처 단편에 대한 최종 부하 영향도가 산출되었는지 확인하는 단계이다. 확인 결과, 모든 시그니처 단편에 대한 최종 부하 영향도가 산출된 경우, S180 단계가 수행된다. S110 단계에서 선택된 시그니처에 다른 시그니처 단편이 더 존재하는 경우, S130 단계 내지 S160 단계가 더 수행될 수 있다. S170 단계를 통해, S130 단계 내지 S160 단계는 하나의 시그니처에서 모든 시그니처 단편에 대한 최종 부하 영향도가 산출될 때까지 반복될 수 있다.
위의 설명에서는, S130 단계 내지 S160 단계는 S120 단계를 통해 분할한 시그니처 단편 순으로 반복적으로 이루어지는 것으로 설명되었다. 다만 이는 예시일 뿐이고, S130 단계 내지 S160 단계는 각 시그니처에 대해 병렬적으로 제1 영향도, 제2 영향도 및 최종 부하 영향도를 산출함으로써 이루어질 수 있다.
S180 단계는 하나의 시그니처(예를 들어, 제1 시그니처)에 대한 최종 부하 영향도 산출이 완료될 때 수행되고, 각 시그니처 단편의 최종 부하 영향도에 따라 상기 시그니처에 포함된 각 시그니처 단편의 순서를 재배치하는 단계이다. 앞서 설명한 것처럼, S180 단계는 최종 부하 영향도가 낮은 시그니처 단편을 시그니처의 전단에 재배치하고, 최종 부하 영향도가 높은 시그니처 단편을 시그니처의 후단에 재배치함으로써 이루어질 수 있다.
S190 단계는 데이터베이스(20)에서(예를 들어, 시그니처 리스트에서) 다른 시그니처가 존재하는지 확인하는 단계이다. 확인 결과, 시그니처의 재구성이 이루어지지 않은 다른 시그니처가 존재하는 경우, S110 단계 내지 S180 단계가 재수행된다. 그렇지 않은 경우, 모든 과정이 종료된다.
본 발명에 따른 상기 예시적인 방법들은 프로세서에 의해 실행되는 프로그램 명령들, 소프트웨어 모듈, 마이크로코드, 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함함)로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램 제품, 애플리케이션, 논리 회로들, 주문형 반도체, 또는 펌웨어 등 다양한 방식으로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD, DVD, 자기 테이프, 하드 디스크, 플로피 디스크, 하드 디스크, 광데이터 저장 장치 등이 있으며, 이에 제한되는 것은 아니다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 발명을 예시적으로 설명한 것에 불과하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 다양한 변형이 가능할 것이다.
100: 시그니처 재구성 장치 110: 시그니처 분할부
120: 부하요소 검사부 140: 시그니처 재구성부
200: 시그니처 재구성 장치 210: 시그니처 분할부
220: 부하요소 검사부 230: 가중치 처리부
240: 시그니처 재구성부

Claims (10)

  1. 시그니처 기반 비정상 트래픽 탐지를 위한 시그니처 재구성 방법으로서,
    데이터베이스에 저장된 시그니처 리스트에서 하나의 시그니처를 선택하고, 상기 선택된 시그니처를 복수의 시그니처 단편들로 분할하는 단계;
    상기 복수의 시그니처 단편들을 복수의 부하요소에 대해 검사하여, 상기 복수의 부하요소마다 제1 영향도를 산출하는 단계;
    상기 복수의 부하요소에 대한 가중치를 상기 제1 영향도에 각각 적용함으로써, 상기 복수의 부하요소마다 제2 영향도를 산출하는 단계;
    상기 복수의 시그니처 단편들에 포함된 시그니처 단편이 미리 설정된 패널티 조건에 일치할 경우 상기 시그니처 단편에 패널티 값을 부여하는 단계;
    상기 산출된 제2 영향도 중에서 각 시그니처 단편에 대응하는 제2 영향도 및 상기 각 시그니처 단편에 부여된 패널티 값을 기반으로 각 시그니처 단편에 대한 최종 부하 영향도를 산출하는 단계; 및
    상기 산출된 최종 부하 영향도의 크기에 따라, 상기 복수의 시그니처 단편들의 순서를 재배치하는 단계를 포함하는 것을 특징으로 하는 시그니처 재구성 방법.
  2. 제1항에 있어서,
    상기 복수의 부하요소에 대한 가중치 중 적어도 두 개는 상이한 것을 특징으로 하는 시그니처 재구성 방법.
  3. 제2항에 있어서,
    상기 가중치는 시그니처 구성, 패턴 탐색 알고리즘, 시그니처 기반 비정상 트래픽 탐지를 수행하는 보안 장치의 사양 중 적어도 하나에 따라 각각 조절되는 것을 특징으로 하는 시그니처 재구성 방법.
  4. 제1항에 있어서,
    상기 복수의 부하요소에 대한 검사는,
    상기 시그니처 단편에 포함된 패턴의 문법 검사를 포함하고, 상기 제1 영향도를 산출하는 단계는 상기 시그니처 단편에 포함된 패턴의 문법에 따른 제1 영향도를 산출하는 단계를 포함하는 것을 특징으로 하는 시그니처 재구성 방법.
  5. 제1항에 있어서,
    상기 복수의 부하요소에 대한 검사는,
    상기 시그니처 단편의 길이 검사를 포함하고, 상기 제1 영향도를 산출하는 단계는, 상기 시그니처 단편의 길이가 짧을수록 크기가 커지도록 상기 길이 검사에 따른 제1 영향도를 산출하는 단계를 포함하는 것을 특징으로 하는 시그니처 재구성 방법.
  6. 제1항에 있어서,
    상기 복수의 부하요소에 대한 검사는,
    상기 시그니처 단편에 대한 오토마타 활성 상태 크기 검사를 포함하고, 상기 제1 영향도를 산출하는 단계는 상기 시그니처 단편의 오토마타 활성 상태 크기에 따른 제1 영향도를 산출하는 단계를 포함하는 것을 특징으로 하는 시그니처 재구성 방법.
  7. 제1항에 있어서,
    상기 복수의 부하요소에 대한 검사는,
    상기 시그니처 단편에 대한 오토마타 활성상태 검색공간 크기 검사를 포함하고, 상기 제1 영향도를 산출하는 단계는 상기 시그니처 단편의 오토마타 활성상태 검색공간 크기에 따른 제1 영향도를 산출하는 단계를 포함하는 것을 특징으로 하는 시그니처 재구성 방법.
  8. 제1항에 있어서,
    상기 최종 부하 영향도는 상기 각 시그니처 단편에 대응하는 제2 영향도 및 상기 각 시그니처 단편에 부여된 패널티 값을 합산하여 결정되는 것을 특징으로 하는 시그니처 재구성 방법.
  9. 시그니처 기반 비정상 트래픽 탐지를 위한 시그니처 재구성 장치로서,
    데이터베이스에 저장된 시그니처 리스트에서 하나의 시그니처를 선택하고, 상기 선택된 시그니처를 복수의 시그니처 단편들로 분할하는 시그니처 분할부;
    상기 복수의 시그니처 단편들을 복수의 부하요소에 대해 검사하여, 상기 복수의 부하요소마다 제1 영향도를 산출하는 부하요소 검사부;
    상기 복수의 부하요소에 대한 가중치를 상기 제1 영향도에 각각 적용함으로써, 상기 복수의 부하요소마다 제2 영향도를 산출하는 가중치 처리부; 및
    상기 복수의 시그니처 단편들에 포함된 시그니처 단편이 미리 설정된 패널티 조건에 일치할 경우 상기 시그니처 단편에 패널티 값을 부여하고, 상기 산출된 제2 영향도 중에서 각 시그니처 단편에 대응하는 제2 영향도 및 상기 각 시그니처 단편에 부여된 패널티 값을 기반으로, 상기 각 시그니처 단편에 대한 최종 부하 영향도를 산출하고, 상기 산출된 최종 부하 영향도의 크기에 따라 상기 복수의 시그니처 단편들의 순서를 재배치하는 시그니처 재구성부를 포함하는 것을 특징으로 하는 시그니처 재구성 장치.
  10. 시그니처 기반 비정상 트래픽 탐지를 위한 시그니처 재구성 장치로서,
    제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하는 제어부를 포함하는, 시그니처 재구성 장치.
KR1020180059159A 2018-05-24 2018-05-24 시그니처 재구성 장치 및 방법 KR102006220B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180059159A KR102006220B1 (ko) 2018-05-24 2018-05-24 시그니처 재구성 장치 및 방법
US16/420,836 US11223641B2 (en) 2018-05-24 2019-05-23 Apparatus and method for reconfiguring signature

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180059159A KR102006220B1 (ko) 2018-05-24 2018-05-24 시그니처 재구성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102006220B1 true KR102006220B1 (ko) 2019-08-02

Family

ID=67614184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180059159A KR102006220B1 (ko) 2018-05-24 2018-05-24 시그니처 재구성 장치 및 방법

Country Status (2)

Country Link
US (1) US11223641B2 (ko)
KR (1) KR102006220B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616759B2 (en) * 2021-04-09 2023-03-28 Palo Alto Networks, Inc. Increased coverage of application-based traffic classification with local and cloud classification services
KR20230169131A (ko) * 2021-04-09 2023-12-15 팔로 알토 네트웍스, 인크. 로컬 및 클라우드 분류 서비스를 통한 애플리케이션 기반 트래픽 분류의 범위 확대

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229012B1 (ko) * 2011-12-29 2013-02-15 시큐아이닷컴 주식회사 시그니처 탐지 장치 및 방법
KR101631242B1 (ko) * 2015-01-27 2016-06-16 한국전자통신연구원 잠재 디리클레 할당을 이용한 악성 트래픽의 시그니처의 자동화된 식별 방법 및 장치
KR101633649B1 (ko) 2014-01-31 2016-06-28 캐비엄, 인코포레이티드 유한 오토마톤 프로세싱을 최적화시키기 위한 방법 및 장치
KR20160085593A (ko) * 2015-01-08 2016-07-18 주식회사 윈스 시그니처 기반 네트워크 보안 장비의 프로파일링 서비스 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016073457A2 (en) * 2014-11-03 2016-05-12 Level 3 Communications, Llc Identifying a potential ddos attack using statistical analysis
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
KR20170060280A (ko) * 2015-11-24 2017-06-01 한국전자통신연구원 탐지 규칙 자동 생성 장치 및 방법
US20180063178A1 (en) * 2016-09-01 2018-03-01 Promithius Inc. Method and systems for real-time internal network threat detection and enforcement
FR3057123A1 (fr) * 2016-09-30 2018-04-06 Orange Procede et systeme de detection d'intrusions sur un reseau

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229012B1 (ko) * 2011-12-29 2013-02-15 시큐아이닷컴 주식회사 시그니처 탐지 장치 및 방법
KR101633649B1 (ko) 2014-01-31 2016-06-28 캐비엄, 인코포레이티드 유한 오토마톤 프로세싱을 최적화시키기 위한 방법 및 장치
KR20160085593A (ko) * 2015-01-08 2016-07-18 주식회사 윈스 시그니처 기반 네트워크 보안 장비의 프로파일링 서비스 방법 및 장치
KR101631242B1 (ko) * 2015-01-27 2016-06-16 한국전자통신연구원 잠재 디리클레 할당을 이용한 악성 트래픽의 시그니처의 자동화된 식별 방법 및 장치

Also Published As

Publication number Publication date
US20190364066A1 (en) 2019-11-28
US11223641B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
US11899786B2 (en) Detecting security-violation-associated event data
JP5240475B2 (ja) 近似パターン合致の方法および装置
Widodo et al. A new content-defined chunking algorithm for data deduplication in cloud storage
US20200183986A1 (en) Method and system for document similarity analysis
EP3614645B1 (en) Embedded dga representations for botnet analysis
US20090235357A1 (en) Method and System for Generating a Malware Sequence File
Rudd et al. Meade: Towards a malicious email attachment detection engine
US10706032B2 (en) Unsolicited bulk email detection using URL tree hashes
KR20140051914A (ko) 규칙적 표현들에 대한 컴파일러
US20210097177A1 (en) System and method for detection of malicious files
US11080398B2 (en) Identifying signatures for data sets
KR101913141B1 (ko) 비용기반 최적화 기법을 통한 정규 표현식 탐색 성능 향상 장치 및 방법
Pungila et al. A highly-efficient memory-compression approach for GPU-accelerated virus signature matching
US9075836B2 (en) Partitioning keys for hash tables
KR102006220B1 (ko) 시그니처 재구성 장치 및 방법
US11288368B1 (en) Signature generation
Naik et al. Fuzzy-import hashing: A static analysis technique for malware detection
US8260780B2 (en) Protection of database operations
US7158024B2 (en) Packet intrusion detection rule simplification apparatus and method, and packet intrusion detection apparatus and method using simplified intrusion detection rule
EP3798885B1 (en) System and method for detection of malicious files
CN112199344A (zh) 一种日志分类的方法和装置
CN110196952A (zh) 程序代码的搜索处理方法、装置、设备及存储介质
CN113486359B (zh) 软件漏洞的检测方法、装置、电子装置和存储介质
US20150081649A1 (en) In-line deduplication for a network and/or storage platform
US20220272125A1 (en) Systems and methods for malicious url pattern detection

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant