KR20090065306A - 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체 - Google Patents

시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체 Download PDF

Info

Publication number
KR20090065306A
KR20090065306A KR1020070132796A KR20070132796A KR20090065306A KR 20090065306 A KR20090065306 A KR 20090065306A KR 1020070132796 A KR1020070132796 A KR 1020070132796A KR 20070132796 A KR20070132796 A KR 20070132796A KR 20090065306 A KR20090065306 A KR 20090065306A
Authority
KR
South Korea
Prior art keywords
substring
signature
packet
hash value
matched
Prior art date
Application number
KR1020070132796A
Other languages
English (en)
Other versions
KR100960117B1 (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 KR1020070132796A priority Critical patent/KR100960117B1/ko
Publication of KR20090065306A publication Critical patent/KR20090065306A/ko
Application granted granted Critical
Publication of KR100960117B1 publication Critical patent/KR100960117B1/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/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0604Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis

Abstract

본 발명은 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이 기록된 기록매체에 관한 것이다. 본 발명은 연속된 문자열이 아니라 중간에 '*'와 같은 와일드 카드를 가지는 시그니처와 유입데이터 패킷을 비교하고 시그니처 패턴 매칭여부를 알 수 있도록 유입데이터 패킷을 서브스트링 단위로 토큰화하고 프리-필터링 및 블룸필터링를 수행한다. 따라서, 시그니처 패턴 매칭시 소요되는 시간이 감소하며 다양한 문자열을 가지는 시그니처 패턴 매칭도 가능한 효과가 있다.
해슁, 패턴 매칭, 시그니처, 블룸 필터

Description

시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이 기록된 기록매체 {Signature Pattern Matching Method, the System for the Same and Computer Readable Medium Storing a Signature Pattern}
스트링 매칭기반의 탐지기술은 그 정확성으로 인하여 현대의 침입탐지/방지 시스템 (Intrusion Detection/Prevention Systems)에 널리 사용되고 있다. 그러나 현재 보안시스템에서 사용되고 있는 스트링 매칭기술은 점점 복잡해지고 있는 시그니처 스트링 시퀀스 형태에 탐지에는 적합하지 않다. 즉, 기존의 스트링 매칭 기반의 시그니처 탐지기술은 시스템 상에서 한 순간에 한 개의 스트링 시퀀스만을 추적할 수 있다. 스트링 시퀀스를 State Machine(SM)으로 표현할 때, 시스템은 한 순간에 하나의 상태, Finite State Machine(FSM)만 가진다.
그러나, 시그니처가 유사한 문자열을 많이 포함하고 있고 여러 개의 스트링으로 구성된 경우 정확한 탐지를 위해서는 여러 개여 시그니처를 동시에 추적할 수 있어야 한다. 이러한 경우는 Non-deterministic Finite State Machine(NFM)로 표현된다. 또한 증가하는 시그니처를 작은 메모리에 효과적으로 수용하기 위해 효율적인 데이터 구조의 활용이 요구된다.
본 발명의 목적은 효과적인 데이터 구조를 통하여 소량의 메모리로 고속의 네트워크에서 스트링 시퀀스형태의 복수개의 시그니처를 동시에 추적하여 탐지하기 위한 기술이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IP성장동력 기술개발로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-042-02, 과제명: Network 위협의 Zero-Day Attack 대응을 위한 실시간 공격 시그니처 생성 및 관리 기술개발].
네트워크의 침입탐지에 사용되는 시그니처 기반 탐지 기술은 패턴 매칭 또는 스트링 매칭으로부터 발전되어 왔고, 이들을 하드웨어를 이용하여 고속화하려는 기술들이 제안되어왔다.
Aho-Corasick알고리즘은 스트링 매칭에 있어 초기 기술이나 체계적인 분석과 효율적인 알고리즘으로 인해 이후 제안되는 많은 기술들에 사용되는 기술이다. Aho-Corasic 알고리즘은 시그니처를 바이트단위의 state machine(이하, SM이라 함)으로 구현한다. 이때, SM 상의 각 상태는 다음에 올 상태에 대한 포인터와 패턴비교 실패시의 상태에 대한 포인터를 갖는다. 따라서 시그니처의 탐지는 패킷에서 발생하는 각 바이트를 입력으로 하여 SM 상에서 각 상태의 변화를 추적함으로써 수행된다. 시그니처의 탐지는 SM 상의 각 상태에서 입력값과 다음 상태로 진행하기 위한 조건값을 비교함으로써 이루어진다. Aho-Corasick알고리즘 이후, 이를 기반으로 고속 네트워크에서 적합하도록 하드웨어로 구현하는 기술들이 꾸준히 개발되었다. 그러나 이러한 기술들은 FSM이 가지는 기본적인 제한점, 즉, SM이 항상 하나의 상태만을 가져야 함, 때문에 복잡한 형태의 시그니처를 지원하기 힘들다는 단점이 있 다.
최근에는 고속네트워크에 적합하도록 블룸 필터를 이용하는 기술이 소개 되었다. 이 기술은 도 1a에서와 같이 블룸 필터(BF)들을 이용하여 시그니처의 대략적인 패턴을 탐지하는 부분(1)과 탐지된 시그니처를 보다 정밀하게 비교하여 오탐을 제거하는 부분(2)으로 구성된다. 저장되는 시그니처는 길이에 따라 하나의 블룸 필터에 프로그램된다 (도 1b). 이때, 시그니처의 길이는 미리 정의된 범위내의 값이어야 하고, 범위의 크기에 해당하는 수 만큼의 블룸 필터가 사용된다.
네트워크에서 발생한 패킷(P1)은 그 내용을 각각 해당길이의 블룸 필터(BF(Lmin), BF(4), BF(5), BF(Lmax))에 전달하고, 블룸 필터에 해당 내용이 존재하는지 여부를 판가름하는 멤버쉽 쿼리 결과에 따라 탐지결과 결정된다. 실제의 구현은 도 1b의 탐지 블록(10)을 여러 개 구현함으로써 고속네트워크에서 적용이 가능하도록 한다.
이 기술은 고속네트워크에서 발생하는 다량의 패킷을 실시간으로 처리하는데 유리한 구조를 가지고 있으나, 시스템 내에서 표현되는 시그니처가 제한 된다는 단점을 가지고 있다. 즉, 시그니처가 한 개 이상의 문자열로 구성될 경우 하드웨어 레벨에서의 시그니처 표현이 불가능하며, 이러한 스트링 조합을 탐지하기 위해서는 도 1a에서 표시된 오탐을 제거하기 위한 소프트웨어의 지원을 필요로 한다. 이 경우, 시스템 성능은 현저하게 저하될 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명에서는, 고속의 네트워크에서 시그니처를 기반으로 공격 패킷을 탐지하는데 있어서 기존의 방법들이 가지는 다음의 두 가지 문제들을 해결하고자 한다.
시그니처를 표현하는데 있어서 가장 널리 사용되는 방식으로 보통 표현법(gular expression)을 들 수가 있다. 보통 표현법(Regular expression)은 그 복잡도에 따라 하나의 스트링, 복수개의 스트링과 이를 연결하는 와일드 카드 (임의 개수의 문자를 의미) 문자, 그리고 불포함시 상태를 나타내는 부정(negation), 범위체크 등의 형태로 나눌 수 있다. 이들 중에서 과거에는 스트링 한개만으로도 공격 시그니처를 표현할 수 있었다. 그러나 현재는 복수개의 스트링 조합을 사용하는 시그니처가 많이 사용되고 있다. 예를 들어, 현재 가장 널리 사용되는 IDS의 하나 인 SNORT의 경우 2007년 기준3000여개의 시그니처를 가지고 있고, 이 중에 약 30% 가량이 한 개 이상 문자열의 조합으로 구성된다.
이러한 와일드 카드문자를 포함하는 형태의 시그니처를 저장하고 패킷 내용과 비교하여 공격을 탐지하기 위해서는 여러 개의 시그니처를 동시에 추적할 수 있어야 한다. 도 2는 한 패킷(P10)의 내용과 시그니처 DB의 한 예를 나타낸 것이다. 시그니처DB에서 사용된 '*'는 임의 길이의 문자열을 나타내고 패킷의 내용은 화살표 방향으로 추출된다. 우선 패킷의 내용이 A, B, D의 순서로 추출되고, 이는 시그니처DB의 ID 1에 해당되고 완전한 매치를 위해서는 임이 길이의 문자열 후에 패킷내에 K를 가지고 있어야 한다. 그러나 A, B, D 이후에 J, J, E, J가 패킷에서 발생하고 이는 ID 2에 해당된다. 따라서 완전한 매치를 위해서는 ID 1과 2가 동시에 추적되어야 한다.
둘째, 증가하는 시그니처를 수용하기 위하여 효율적인 메모리 활용이 필요하며, 메모리 사용을 최소화하여 실시간 탐지를 지원할 수 있어야 한다. SNORT의 경우 시그니처의 수는 2003년 1500여 개에서 2007년 3000여 개로 증가하고 있으며, 이중에서 3바이트 문자열이 두 개 이상의 서로 다른 시그니처에서 사용되는 경우가 30%에 이른다. 따라서 중복 사용되는 문자열에 할당된 메모리 블록을 여러 개의 시그니처에서 공유하여 메모리 사용을 극대화하여야 한다. 이때, 사용되는 데이터 구조 및 알고리즘은 그 오버헤드를 최소화하여 실시간 패킷 분석이 가능해야 한다.
본 발명에서는 복수개의 스트링 조합과 같이 복잡한 시그니처의 형태를 지원하며 메모리 사용 및 시그니처 탐지로 인한 오버헤드를 최소화하여 실시간 공격 패 킷 탐지를 지원하기 위한 새로운 기술을 제안한다.
본 발명에 의한 시그니처 패턴 매칭방법은 유입트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출하여 해쉬값을 구하는 단계, 상기 해쉬값이 유해패킷의 스트링 패턴을 정의한 시그니처들의 서브스트링의 해쉬값들과 일치하는 것이 있는지 여부를 분석하는 프리필터링 단계, 상기 프리필터링 단계에서 일치하는 것이 있는 경우 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링 단계, 및 상기 블룸필터링 단계에서 일치하는 경우 상기 일치된 시그니처의 다음위치 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 경우 경고신호를 발령하는 단계를 포함한다.
본 발명에 의한 시그니처 패턴 매칭시스템은 트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출하여 해쉬값을 구하는 패킷 수집 및 분배부, 상기 해쉬값이 유해패킷의 스트링 패턴을 정의한 시그니처들의 서브스트링의 해쉬값들과 일치하는 것이 있는지 여부를 분석하는 프리필터링부, 상기 프리필터링 단계에서 일치하는 경우 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링부, 및 상기 블룸필터링 단계에서 일치하는 경우 상기 일치된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 경우 경고신호를 발령하는 경고발생부를 포함한다.
본 발명에 의한 시그니처 패턴 기록매체는 유입트래픽 중 유해패킷의 스트링 패턴을 정의한 시그니처를 서브스트링 단위의 트리형태로 정의한 데이터 구조가 기록된 기록매체로서, 상기 서브스트링은 구성하는 시그니처의 종류를 나타내는 필드, 해당 시그니처 내의 다른 서브스트링과 이어지는지 여부를 나타내는 필드, 상기 서버스트링 문자열 필드로 이루어진 메모리 테이블 형태로 기록된다.
본 발명에서 소개하는 시그니처 기반 공격 탐지 기법은, 라우터나 네트워크 보안장비의 일부로 사용되어 고속 네트워크에서 발생하는 패킷의 내용을 기 저장된 시그니처와 비교하여 공격여부를 탐지하기 위한 기술이다.
현재까지의 시그니처 기반 탐지 (패턴매칭) 기술은 고속화되는 네트워크환경에 적응하기 위하여 고속화에 그 초점을 맞추어 왔다. 그러나 현재 사용되고 있는 시그니처가 와일드 카드와 같이 복잡한 형태의 시그니처를 포함하고 있으며, 이를 지원하기 위해 탐지시스템은 복수개의 시그니처를 동시에 추적할 수 있어야 한다. 본 발명은 일련의 블룸 필터를 이용하여 메모리 엑세스 시간을 최소화하여 고속네트워크에 적합함을 물론 메모리 사용량도 매우 적다. 또한, SBF는 일반적으로 시퀀스 추적시 발생하는 오버헤드를 프리-필터를 이용하여 현저하게 줄임으로서 와일드카드 문자를 포함하는 복수개의 시그니처를 효율적으로 추적할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명에 의한 시그니처 패턴 매칭을 수행하기 위해서, 먼저 도 3에 도시된 바와 같이, 유입트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출(S100)하고, 여기에 해쉬함수를 적용하여 해쉬값을 구한다(S110).
그 후, 구해진 해쉬값과 같은 서브스트링 해쉬값을 가지는 시그니처가 존재하는지 멤버쉽을 체크하는 프리-필터링(pre-filtering) 단계(S120)를 수행한다. 이는 상기 해쉬값이 유해패킷의 스트링 패턴을 정의한 시그니처들의 모든 서브스트링의 해쉬값과 일치하는지 여부를 분석함으로서 이루어진다.
프리-필터링 단계(S120)에서 하나라도 일치하는 경우 서브스트링이 존재하는 경우, 본 발명에 의한 시그니처 패턴 매칭방법은, 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링 단계를 거친다(S130, S140).
즉, 이전위치 패킷까지 매칭된 시그니처 패턴의 종류와 매칭된 해당 패턴의 서브스트링 위치에 관한 정보가 저장된 엑티브 토큰 리스트를 참조하여 현재 구한 해쉬값과 비교할 블룸필터를 쿼리하고(S130), 쿼리된 블룸필터에 매칭되는 패턴이 있는지 확인한다(S140).
블룸필터링 단계(S130, S140)에서 매칭된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링지 여부를 상기 매칭된 시그니처 패턴의 서브스트링에 시그니처 완료필드가 포함되었는지 여부를 확인함으로서 판단(S150)한 후, 시그니처 완료필드가 포함되었다면 경고신호를 발령한다(S160).
그러나, 매칭된 시그니처 패턴의 서브스트링에 시그니처 완료필드가 포함되지 않은 경우, 액티브 토큰 리스트 정보를 현재가지 매칭된 시그니처 패턴의 종류와 매칭된 해당 패턴의 서브스트링 위치에 관한 정보를 업데이트한 후(S170), 다음위치의 패킷을 해슁하여 프리-필터링(S120)와 블룸필터링(S130,S140)를 수행한다.
한편, 프리필터링 단계(S120)에서 일치하는 서브스트링이 존재하지 않거나, 블룸필터링 단계(S130, 140)에서 일치하는 서브스트링이 존재하지 않는 경우, 상기 패킷에서 추출되어 해쉬값을 구한 서브스트링의 다음위치 서브스트링의 해쉬값을 구하고 프리필터링과 블룸필터링 단계를 다시 수행한다.
도 4는 본 발명에 의한 시그니처 패턴 매칭시스템의 구성이 도시된 도이다.
도시된 바와 같이, 시그니처 패턴 매칭시스템(100)은 트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출하여 해쉬값을 구하는 패킷 수집 및 분배부(110)와, 상기 해쉬값과 일치하는 해쉬값을 가지는 서브스트링을 포함하는 시그니처가 있는지 여부를 분석하는 프리필터링부(120)와, 상기 프리필터링 단계에서 일치하는 경우 서브스트링을 가지는 시그니처가 시그니처 DB에 있는 경우 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링부(130)와, 상기 블룸필터링 단계에서 일치하는 경우 상기 일치된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 경우 경고신호를 발령하는 경고발생부(140)를 포함한다.
그 외에도, 본 발명의 시그니처 패턴 매칭시스템(100)은 상기 블룸필터링부(130)를 통과한 서브스트링이 현재까지 매칭된 시그니처 패턴의 종류 및 해당 시그니처 패턴에서 일치하는 서브스트링의 위치에 관한 정보가 저장된 토큰리스트 저장부(150)를 더 포함한다.
블룸필터링부(130)는 프리필터링부(120)를 통과한 패킷의 서브스트링의 해쉬값과 비교할 시그니처의 서브스트링을 액티브 토큰리스트에 저장된 패턴의 종류와 서브스트링의 위치에 관한 정보를 바탕으로 호출한다.
한편, 패킷 수집 및 분배부(110)는 패킷에서 적어도 2개의 서브스트링을 추출하여 해쉬값을 구한 후 프리필터링부(120)로 전송하고, 프리필터링부(120)와 상기 블룸필터링부(130)는 전송된 서브스트링에 대하여 동시에 필터링을 수행할 수 있다. 즉, 도 3에 도시된 ID1과 ID2가 동시에 추적 가능하다.
도 5는 1바이트 단위의 tree로 표현된 시그니처의 예를 (310) 일련의 블룸필터링부(320) 표현한 것이며 321, 322, 323은 하나의 블룸 필터를 나타낸다. 이때 각 블룸 필터는 해당 서브스트링의 해쉬값을 계산할 때 이전 필터의 인덱스 값을 씨드(seed)로 갖는데, 이는 310에서 화살표로 표시된 포인터를 표현하기 위한 방법 으로 이를 이용함으로써 동일한 데이터를 여러 개의 시그니처에서 사용할 수 있고, 데이터 구조를 단순화 할 수 있다.
본 발명의 주요 작업흐름을 간략히 설명하면 다음과 같다. 우선 입력이 되는 패킷 (또는 시그니처: 시그니처 입력시)의 모든 바이트 열에서 고정길이(k바이트)의 서브스트링을 추출한다. 추출 된 서브스트링은 해슁을 거처 보다 간략한 표현으로 추상화된다. 이때 해슁된 값을 토큰이라고 칭한다. 생성된 토큰은 시그니처 멤버쉽 체크 과정을 거치는데, 이는 현재 계산된 토큰이 이미 정의된 등록된 시그니처에 사용되었는지를 판단하는 과정이다. 만일, 이 토큰이 시그니처에 사용되지 않았으면 다음 서브스트링 추출의 단계로, 사용되었으면 다음 단계로 진행한다. 블룸 필터 쿼리에서는 앞 단계에서 넘어 온 토큰을 시그니처 DB에서 검색하고 시그니처의 어느부분까지 매치가 되는지 정보를 관리한다. 시그니처가 10바이트의 문자열일 경우 현재 몇번째 바이트까지 매치되었는지가 액티브 토큰 리스트에 저장된다. 여기서 각 블룸 필터의 연산은 독립적으로 수행될 수 있으며, 멤버쉽 체크과정과 블룸 필터 쿼리는 시스템의 성능을 향상시키기 위해 병렬처리 할 수 있다.
액티브 토큰 리스트는 각 필터별로 하나씩 존재하고 각각의 블룸 필터가 현재까지 매치된 정보를 저장하도록 하며 다음 서브스트링의 해쉬값 계산시 씨드로 사용된다. 여기에서 각각의 액티브 토큰 리스트는 매 서브스트링 추출시 동작해야 함으로, 액티브 토큰 리스트에 저장되는 토큰수는 전체 시스템 성능에 많은 영향을 미칠 수 있다. 그러나 액티브 토큰 리스트에 대한 엑세스는 멤버쉽 체크를 통해서 현저하게 줄 수 있다. 즉, 시그니처에 사용되는 문자열은 제한되어 있으면, 그 위 치를 고려했을 경우 그 수는 현저하게 줄어든다. 따라서 멤버쉽 체크 과정을 통하여 소량의 서브스트링만이 액티브 토큰 리스트에 access하게 된다.
SBF에서 각 토큰들이 연속적이어야 하는지 아닌지는 시그니처 등록시 블룸 필터에 한 값으로 저장되어 있으며, 이에 따라 시그니처 매칭 결과가 결정된다. 예를들어, 시그니처가 'ABC'의 3 바이트로 이뤄져 있고 서브스트링의 크기가 1 바이트인 경우, 현재까지 'AB'가 매치되었으면 다음 서브스트링은 반드시 'C'여야 한다. 'C'가 아닌 경우는 'AB'까지 매치된 정보는 시스템에서 삭제된다. 그러나 시그니처가 'AB(*C)'인 경우는 AB가 매치된 이후 임이의 문자가 나오더라도 시스템은 AB까지 매치된 정보를 기억하고 있어야 한다. 만약 현재 처리한 토큰이 시그니처의 맨 마지막 토큰이고 블룸 필터에서 탐지되면 시스템은 알람을 띄워 공격문자가 탐지되었음을 알린다. 위의 과정이 하나의 패킷을 모두 처리할 때까지 반복된다.
이제까지 기술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 네트워크의 라우터에 일부분으로 또는 네트워크의 보안장비의 일부분으로 사용될 수 있다. 또한 본 발명의 방법은 초고속 네트워크에서 사용하도록 네트워크 프로세서를 이용한 소프트웨어적인 방식, ASIC이나 FPGA와 같은 하드웨어적인 방식, 또는 하드웨어와 소프트웨어를 조합하는 방식 등으로 구현될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프 플로피디 스크, 광 데이터 정장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1a와 1b는 일반적으로 시그니처 패턴 매칭을 하는 구조가 도시된 도,
도 2는 와일드 카드를 가진 시그니처 패턴 매칭을 하는 구조가 도시된 도,
도 3은 본 발명에 의한 시그니처 패턴 매칭방법의 흐름이 도시된 순서도,
도 4는 본 발명에 의한 시그니처 패턴 매칭시스템의 구조가 도시된 도,
도 5는 본 발명에 의한 시그니처 패턴 매칭시스템에서 시그니처 패턴이 저장되는 구조가 도시된 도이다.

Claims (11)

  1. 유입트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출하여 해쉬값을 구하는 단계;
    상기 해쉬값이 유해패킷의 스트링 패턴을 정의한 시그니처들의 서브스트링의 해쉬값들과 일치하는 것이 있는지 여부를 분석하는 프리필터링 단계;
    상기 프리필터링 단계에서 일치하는 것이 있는 경우 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링 단계; 및
    상기 블룸필터링 단계에서 일치하는 경우 상기 일치된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 경우 경고신호를 발령하는 단계를 포함하는 것을 특징으로 하는 시그니처 패턴 매칭방법.
  2. 제 1 항에 있어서,
    상기 프리필터링 단계에서 일치하는 것이 없는 경우,
    상기 패킷에서 추출되어 해쉬값을 구한 서브스트링의 다음위치 서브스트링의 해쉬값을 구하고 프리필터링 또는 블룸필터링 단계를 수행하는 것을 특징으로 하는 시그니처 패턴 매칭방법.
  3. 제 1 항에 있어서,
    상기 블룸필터링 단계에서 일치하지 않은 경우,
    상기 패킷에서 추출되어 해쉬값을 구한 서브스트링의 다음위치 서브스트링의 해쉬값을 구하고 프리필터링 또는 블룸필터링 단계를 수행하는 것을 특징으로 하는 시그니처 패턴 매칭방법.
  4. 제 1 항에 있어서,
    상기 블룸필터링 단계에서 일치하는 경우,
    상기 일치된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 아닌 경우 현재까지 매칭된 시그니처 패턴의 종류와 현재까지 매칭된 해당 해턴의 서브스트링 위치에 관한 정보를 업데이트하는 단계를 더 포함하며,
    상기 블룸필터링 단계는 상기 저장된 시그니처 패턴의 종류 및 서브스트링 위치에 관한 정보에 따라 프리필터링을 통과한 패킷의 해쉬값과 비교할 시그니처 서브스트링을 호출하는 것을 특징으로 하는 시그니처 패턴 매칭방법.
  5. 제 1 항에 있어서,
    상기 패킷에서 서브스트링을 추출하여 해쉬값을 구하는 단계는 상기 패킷에서 적어도 2개의 서브스트링을 추출하여 해쉬값을 구한 후 개별적으로 프리필터링 또는 블룸필터링 단계를 수행하는 것을 특징으로 하는 시그니처 패턴 매칭방법.
  6. 트래픽 중 유해패킷을 판별하기 위해 트래픽 패킷의 서브스트링을 추출하여 해쉬값을 구하는 패킷 수집 및 분배부;
    상기 해쉬값이 유해패킷의 스트링 패턴을 정의한 시그니처들의 서브스트링의 해쉬값들과 일치하는 것이 있는지 여부를 분석하는 프리필터링부;
    상기 프리필터링 단계에서 일치하는 것이 있는 경우 현재까지 매칭된 시그니처의 서브스트링의 다음위치 서브스트링과 상기 패킷의 해쉬값이 일치하는지 여부를 분석하는 블룸필터링부; 및
    상기 블룸필터링 단계에서 일치하는 경우 상기 일치된 시그니처의 서브스트링이 해당 시그니처 패턴의 마지막 위치에 존재하는 서브스트링인 경우 경고신호를 발령하는 경고발생부를 포함하는 것을 특징으로 하는 시그니처 패턴 매칭시스템.
  7. 제 6 항에 있어서,
    상기 시그니처 패턴 매칭시스템은 상기 블룸필터링부를 통과한 서브스트링이 현재까지 매칭된 시그니처 패턴의 종류 및 해당 시그니처 패턴에서 일치하는 서브스트링의 위치에 관한 정보가 저장된 토큰리스트 저장부를 더 포함하는 것을 특징으로 하는 시그니처 패턴 매칭시스템.
  8. 제 7 항에 있어서,
    상기 블룸필터링부는 상기 프리필터링부를 통과한 서브스트링의 해쉬값과 비교할 시그니처의 서브스트링을 상기 토큰리스트에 저장된 패턴의 종류와 서브스트 링의 위치에 관한 정보를 바탕으로 호출하는 것을 특징으로 하는 시그니처 패턴 매칭시스템.
  9. 제 7 항에 있어서,
    상기 패킷 수집 및 분배부는 상기 패킷에서 적어도 2개의 서브스트링을 추출하여 해쉬값을 구한 후 상기 프리필터링부로 전송하고,
    상기 프리필터링부 또는 상기 블룸필터링부는 상기 전송된 서브스트링들에 대하여 병렬적으로 필터링을 수행하는 것을 특징으로 하는 시그니처 패턴 매칭시스템.
  10. 유입트래픽 중 유해패킷의 스트링 패턴을 정의한 시그니처를 서브스트링 단위의 트리형태로 정의한 데이터 구조가 기록된 기록매체로서,
    상기 서브스트링은 구성하는 시그니처의 종류를 나타내는 필드, 해당 시그니처 내의 다른 서브스트링과 이어지는지 여부를 나타내는 필드, 상기 서버스트링 문자열 필드로 이루어진 메모리 테이블 형태로 기록되는 것을 특징으로 하는 시그니처 패턴이 기록된 기록매체.
  11. 제 10 항에 있어서,
    상기 서브스트링이 저장된 메모리 테이블은 상기 유입트래픽을 구성하는 패킷의 서브스트링과의 매칭여부를 나타내는 멤버쉽 필드를 더 가지는 것을 특징으로 하는 시그니처 패턴이 기록된 기록매체.
KR1020070132796A 2007-12-17 2007-12-17 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체 KR100960117B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070132796A KR100960117B1 (ko) 2007-12-17 2007-12-17 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132796A KR100960117B1 (ko) 2007-12-17 2007-12-17 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체

Publications (2)

Publication Number Publication Date
KR20090065306A true KR20090065306A (ko) 2009-06-22
KR100960117B1 KR100960117B1 (ko) 2010-05-28

Family

ID=40993687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132796A KR100960117B1 (ko) 2007-12-17 2007-12-17 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체

Country Status (1)

Country Link
KR (1) KR100960117B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101232918B1 (ko) * 2011-08-02 2013-02-13 경희대학교 산학협력단 분산 공격 탐지 기능을 구비한 무선 센서 네트워크
KR101229012B1 (ko) * 2011-12-29 2013-02-15 시큐아이닷컴 주식회사 시그니처 탐지 장치 및 방법
KR101270402B1 (ko) * 2011-12-28 2013-06-07 한양대학교 산학협력단 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
KR101268510B1 (ko) * 2011-12-29 2013-06-07 주식회사 시큐아이 시그니처 탐지 장치 및 방법
KR101448869B1 (ko) * 2013-02-22 2014-10-13 주식회사 시큐아이 패턴매칭 장치 및 그것의 동작방법
KR101465132B1 (ko) * 2013-01-18 2014-11-25 연세대학교 산학협력단 다중바이트 처리 프리필터를 사용한 심층 패킷 검사 가속화 방법 및 이를 이용한 장치
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337874B1 (ko) 2010-12-31 2014-01-28 주식회사 안랩 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
KR101881797B1 (ko) 2018-01-03 2018-07-26 주식회사 윈스 멀티 패턴 정책 탐지 시스템 및 방법
KR102066022B1 (ko) 2018-08-03 2020-01-14 국민대학교산학협력단 실행 코드 상의 함수 시그니처 생성 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101232918B1 (ko) * 2011-08-02 2013-02-13 경희대학교 산학협력단 분산 공격 탐지 기능을 구비한 무선 센서 네트워크
KR101270402B1 (ko) * 2011-12-28 2013-06-07 한양대학교 산학협력단 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
KR101229012B1 (ko) * 2011-12-29 2013-02-15 시큐아이닷컴 주식회사 시그니처 탐지 장치 및 방법
KR101268510B1 (ko) * 2011-12-29 2013-06-07 주식회사 시큐아이 시그니처 탐지 장치 및 방법
KR101465132B1 (ko) * 2013-01-18 2014-11-25 연세대학교 산학협력단 다중바이트 처리 프리필터를 사용한 심층 패킷 검사 가속화 방법 및 이를 이용한 장치
KR101448869B1 (ko) * 2013-02-22 2014-10-13 주식회사 시큐아이 패턴매칭 장치 및 그것의 동작방법
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element

Also Published As

Publication number Publication date
KR100960117B1 (ko) 2010-05-28

Similar Documents

Publication Publication Date Title
KR100960117B1 (ko) 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체
CN110753064B (zh) 机器学习和规则匹配融合的安全检测系统
US9514246B2 (en) Anchored patterns
Gogoi et al. MLH-IDS: a multi-level hybrid intrusion detection method
US9858051B2 (en) Regex compiler
KR101334583B1 (ko) 심볼 패턴에 입력 심볼 스트림을 정합하기 위한 방법 및 장치
KR100809416B1 (ko) 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법
CN111818103B (zh) 一种网络靶场中基于流量的溯源攻击路径方法
CN114143020A (zh) 一种基于规则的网络安全事件关联分析方法和系统
Kaur et al. Automatic attack signature generation systems: A review
CN110768946A (zh) 一种基于布隆过滤器的工控网络入侵检测系统及方法
US20170289180A1 (en) Filtering of metadata signatures
Aldwairi et al. n‐Grams exclusion and inclusion filter for intrusion detection in Internet of Energy big data systems
CN116915450A (zh) 基于多步网络攻击识别和场景重构的拓扑剪枝优化方法
CN115296904B (zh) 域名反射攻击检测方法及装置、电子设备、存储介质
Zhang et al. imcircle: Automatic mining of indicators of compromise from the web
Ajagekar et al. Automated approach for DDOS attacks detection based on naive Bayes multinomial classifier
Sija et al. Automatic payload signature generation for accurate identification of internet applications and application services
Tan et al. Web Application Anomaly Detection Based On Converting HTTP Request Parameters To Numeric
CN114024701A (zh) 域名检测方法、装置及通信系统
CN116418587B (zh) 一种数据跨域交换行为审计追踪方法和数据跨域交换系统
US20240121267A1 (en) Inline malicious url detection with hierarchical structure patterns
CN116318975A (zh) 一种基于多会话和多协议的恶意流量检测方法与系统
Tsuruta et al. Structure-based data mining and screening for network traffic data
Li M-ISDS: A Mobilized Intrusion and Spam Detection System

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130424

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 18