[go: up one dir, main page]

KR100809416B1 - 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법 - Google Patents

보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법 Download PDF

Info

Publication number
KR100809416B1
KR100809416B1 KR1020060071654A KR20060071654A KR100809416B1 KR 100809416 B1 KR100809416 B1 KR 100809416B1 KR 1020060071654 A KR1020060071654 A KR 1020060071654A KR 20060071654 A KR20060071654 A KR 20060071654A KR 100809416 B1 KR100809416 B1 KR 100809416B1
Authority
KR
South Korea
Prior art keywords
substring
signature
substrings
packet
substring set
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020060071654A
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 KR1020060071654A priority Critical patent/KR100809416B1/ko
Priority to US11/774,699 priority patent/US20080028468A1/en
Application granted granted Critical
Publication of KR100809416B1 publication Critical patent/KR100809416B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

보안 시스템에 사용되는 시그니처를 자동으로 생성하는 장치 및 방법이 개시된다. 본 발명의 장치 및 방법은 패킷에서 추출된 다수의 서브스트링들을 조합하여 서브스트링 세트를 생성하는 구성, 서브스트링 세트를 가지는 패킷의 공격 특성을 조사하여 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처로 사용할 수 있는지 여부를 확인하는 구성 및 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행하는 구성을 포함한다. 본 발명에 따르면, 공격 시그니처를 자동으로 생성함으로써 네트워크 공격에 대한 실시간 대응을 용이하게 하면서도, 오탐률을 최소화하고 공격 시그니처의 신뢰도를 높이며, 시그니처의 저장, 관리 및 적용을 용이하게 할 수 있다.
웜, 유사성, 시그니처, signature, 시그니처 셋, 핑거프린트, 침입탐지

Description

보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법{Appatus and Method of automatically generating signatures at network security systems}
도 1은 본 발명의 일 실시예에 따른 최적 시그니처 자동 생성 장치의 주요 구성을 도시한 도면,
도 2는 도 1의 서브스트링 세트 생성부(110)의 구조를 더욱 상세히 도시한 도면,
도 3은 본 발명의 일 실시예에 따른 최적 시그니처 자동 생성 방법을 도시한 흐름도,
도 4는 서브스트링 세트 생성 방법을 더욱 상세히 나타낸 흐름도,
도 5는 시그니처의 최적화 방법을 도시한 흐름도,
도 6a는 시그니처 최적화 과정을 거치기 전의 시그니처의 예를 도시한 도면, 및
도 6b는 도 6a의 시그니처가 시그니처 최적화 과정을 거치기 후의 모습을 나타낸 도면이다.
본 발명은 보안 시스템에 사용되는 시그니처(signature)를 자동으로 생성하는 장치 및 방법에 대한 것으로, 더욱 상세하게는 네트워크상에서 웜(worm)이나 바이러스와 같은 공격을 실시간으로 탐지하고 공격 패킷(packet)들이 가지는 고유한 특징들(signature)을 자동으로 생성하여 악성 사용자나 프로그램으로부터 대상 네트워크를 보호하기 위한 장치 및 방법에 관한 것이다.
네트워크의 보안을 위해서는 우선 공격 패킷들의 특성을 파악하여 두는 작업이 필요하다. 이러한 공격 패킷의 특성을 시그니처(signature)로 등록해두고, 수신된 패킷에서 등록된 시그니처가 감지되면 그에 해당하는 보안 정책을 적용하여 악성 사용자나 프로그램으로부터 대상 네트워크를 보호하게 된다.
네트워크상의 공격 패킷들의 특성을 추출하는 기술은 대부분 인터넷상의 웹 문서를 포함하는 전자문서들의 유사성을 검사하거나, 분류하는 기술을 기반으로 한다. 따라서 앞서 개발된 전자문서의 특징을 추출하는 기법을 간단히 설명하고 이러한 기술이 네트워크에서 어떻게 응용되는지를 살펴본다.
방대한 양의 전자 문서들 간의 유사성을 검사하기 위해서는, 우선 각각의 문서들이 가지는 특성을 간략하게 표현할 필요가 있다. 이렇게 간략화 된 문서들을 비교함으로써 유사성 검증에 소요되는 연산량을 최소화할 수 있다.
일반적으로, 문서들이 가지는 특성을 간략하게 표현하는 기술로써 가장 많이 사용되는 방법으로는 해쉬를 기반으로 하는 카프 라빈 핑거프린팅(Karp-Rabin fingerprinting) 기법이 있다. 이 기술에서는 하나의 문서를 임의의 바이트의 서브스트링(substring)들로 나누고 각각의 서브스트링에 대하여 해쉬 값을 계산한다.
다음으로 데이터베이스 상에서 동일한 또는 유사한 문서를 찾기 위해서 해당 문서에 대하여 계산된 해쉬 값들을 비교하게 된다. 그런데, 문서의 크기가 큰 경우 또는 데이터베이스의 크기가 너무 큰 경우, 한 문서에 대해 계산된 해쉬 값들을 모두 비교하는 것은 시스템 성능이 저하되는 주요한 요인이 된다.
그 해결책으로는 샘플링이 사용되고 있다. 즉, 산출된 해쉬 값들을 모두 비교하는 것이 아니라 검증된 샘플링 방법들을 이용하여 샘플링된 해쉬 값들만을 비교함으로써, 신뢰성 있는 결과를 얻으면서도 시스템 성능을 저하시키지 않도록 하고 있다.
지금까지 설명한 전자문서들의 유사성을 검사하거나, 분류하는 기술을 기반으로 네트워크에서 공격 패킷을 탐지하고 그 시그니처를 생성하는 대표적인 기술은 다음의 세 가지로 요약될 수 있다.
첫 번째는 얼리버드(Eearlybird)이다. 얼리버드는 패킷으로부터 카프-라빈 핑거프린팅 기법을 이용하여 해쉬 값을 계산해 낸다. 계산된 해쉬 값은 밸류 샘플링(1/64로 샘플링됨)을 거치고, 별도의 테이블에서 해당 해쉬 값의 빈도를 기록한다. 얼리버드는 이 테이블에 있는 해쉬 값 중 네트워크에 자주 나타나는 시그니처(signature)들을 다시 선택하고, 이들이 가지는 패킷들의 주소(address) 분포를 살핌으로써 웜 시그니처(worm signature)를 생성한다.
두 번째는 오토그래프(Autograph)이다. 오토그래프는 우선 네트워크에 접속하는 세션(session) 중에서 공격의심 세션, 즉 세션을 성공적으로 맺지 못한 접속의 트래픽을 저장하여 해당 패킷의 내용을 재조립한다. 공격의심 세션 분류에는 포 트 스캔 탐지 등의 이상 트래픽 탐지 기술이 주로 사용되고, 조립된 패킷 내용물에 대한 분석 방법은 얼리버드의 경우와 유사하다. 주요 차이점은 오토그래프는 개개의 패킷이 아니라 전체 세션을 조합하여 본다는 점과 서브스트링(substring)과 그 해쉬 값 추출 시, COPP(Content-based payload partitioning) 기법을 사용한다는 점이다. 따라서, 오토그래프에서 발생하는 페이로드(payload)는 가변크기가 된다.
마지막으로 오토그래프를 다형성 웜(polymorphic worm)에 적용하기 위하여 확장한 폴리그래프(polygraph)가 있다. 폴리그래프는 오토그래프와 기본적인 구조를 공유하나, 앞의 두 방법과는 다르게 한 개의 서브스트링을 시그너처로 사용하지 않고, 여러 개의 서브스트링들을 조합하여 하나의 시그니처로 사용한다. 이를 위하여 우선 토큰이라 불리는 서브스트링을 추출하고 이것들을 조합하여 시그니처를 생성한다. 조합 방식에 따라서 순서 없는 조합형 시그니처, 순서를 가지는 시그니처, 그리고 통계학적인 방법을 기반으로 하는 시그니처 등을 생성하게 된다.
오토그래프와 폴리그래프는 한 세션에 해당하는 패킷을 재조립하여 탐지에 사용함으로써 얼리버드의 문제점을 보완하였으나 세션 재조합에 필요한 프로세싱 파워, 메모리 액세스 지연 등으로 인하여 고속 네트워크에서의 구현이 어려운 단점이 있다. 반면, 얼리버드는 연속적인 두 개 이상의 패킷에 걸쳐서 나타날 수 있는 공격 시그니처를 탐지하는데 문제가 있다.
일반적으로 시그니처가 가져야 할 중요한 특성은 고유성(distinction)과 간결함(simplicity)이다. 즉, 하나의 시그니처는 그 대상물만을 표현해야 하며, 표현양식 또한 간결해야 한다. 그러나 기존의 네트워크 공격 시그니처 생성 기술은 이 두 가지 특성을 충분히 만족시키지 못하고 있다.
우선, 기존의 방법들이 고유성의 관점에 있어서 가지는 문제점은, 여러 세션들에서 공통적으로 발견될 수 있는 특정한 블록이 공격 패킷의 시그니처로 등록되기 쉽다는 점이다.
예를 들어, HTTP(hypertext transfer protocol)를 기반으로 하는 대부분의 웹 트래픽은 패킷의 앞 부분에 "GET_message"등과 같이 프로토콜에 의해 널리 쓰이는 부분을 가지기 쉽다. 또한 pdf, postscript 등과 같은 문서들은 문서의 앞 부분에 각 문서 포맷에서만 사용하는 고유한 정보를 담고 있다. 이러한 부분들은 패킷 내용의 사용량(빈도)을 측정하는 부분에서 다른 부분보다 많은 사용량을 나타내게 되어, 공격 신호가 아님에도 불구하고 시그니처로 등록되기 쉽다.
기존의 방법들은 하나의 서브스트링에서 하나의 시그니처를 생성함으로 간결성의 문제에 있어서는 자유로운 편이다. 그러나, 하나의 패킷에서 여러 개의 시그니처가 생성되었을 경우, 어떤 것을 시그니처로 사용해야 할지 결정하는 문제가 남아 있다. 이 작업을 거치지 않을 경우, 하나의 공격에 대하여 여러 개의 시그니처가 생성되어 시그니처 관리가 불가능하게 된다. 따라서, 발생한 시그니처를 검증하는데, 많은 량의 수작업을 동반하게 되므로 실시간 시그니처 적용 또한 어렵게 된다. 또한, 전파됨에 따라서 그 내용이 조금씩 변화될 수 있는 다형성 웜의 경우는 기존의 정확한 패턴 매칭(exact pattern matching) 기술 사용시 탐지에서 누락되는 문제가 생기기 쉽다.
또한 현재 네트워크 침입탐지/방지 시스템의 경우는 대부분 수작업을 통해서 공격 시그니처를 생성하고 있다. 따라서, 시그니처 생성 자체가 매우 어렵고 실시간 대응 또한 어렵다. 이에 비해 오토그래프나 얼리버드의 경우는 공격 시그니처를 자동으로 생성함으로써 시그니처 실시간 대응을 용이하게 하고 있으나, 생성되는 시그니처의 신뢰도가 낮은 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 공격 시그니처를 자동으로 생성함으로써 네트워크 공격에 대한 실시간 대응을 용이하게 하면서도, 오탐률을 최소화하고 공격 시그니처의 신뢰도를 높이며, 시그니처의 생성, 저장, 관리 및 적용을 용이하게 할 수 있는 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법을 제공하는 것이다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 보안 시스템을 위한 최적 시그니처 자동 생성 장치의 일 실시예는, 패킷에서 추출된 다수의 서브스트링(substring)들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트(substring set)를 생성하는 서브스트링 세트 생성부; 서브스트링 세트를 가지는 패킷의 공격 특성을 조사하여 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할 수 있는지 여부를 확인하는 서브스트링 세트 확인부; 및 확인된 서브스트링 세트의 크기를 최소화하여 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행하는 시그니처 최적화부;를 포함한다.
또한 상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 보안 시스템을 위한 최적 시그니처 자동 생성 방법의 일 실시예는, 패킷에서 추출된 다수의 서브스트링(substring)들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트(substring set)를 생성하는 단계; 서브스트링 세트를 가지는 패킷의 공격 특성을 조사하여 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할지 여부를 확인하는 단계; 및 확인된 서브스트링 세트의 크기를 최소화하여 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행하는 단계;를 포함한다.
편의상 본 발명에서 소개하는 시그니처 생성 방법을 OS2(Optimizing Sets Of Signatures)라 한다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 최적 시그니처 자동 생성 장치의 주요 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 최적 시그니처 자동 생성 장치는 서브스트링 세트 생성부(110), 서브스트링 세트 확인부(150) 및 시그니처 최적화부(160)를 포함한다.
본 장치의 주요 구성요소와 그 작업 흐름을 설명한다. 우선 서브스트링 세트 생성부(110)는 조사 대상이 되는 패킷에서 공격 컨텐츠(contents)로 간주되는 서브스트링 세트를 생성한다. 서브스트링 세트 비교부(120)는 생성된 서브스트링 세트와 시그니처 DB(130)에 저장되어 있는 기존의 시그니처를 비교한다. 만약 생성된 서브스트링 세트가 이미 등록되어 있으면 시그니처 적용부(140)에서 해당 보안 정책을 적용한다. 그렇지 않은 경우 생성된 서브스트링 세트가 시그니처로서의 특징이 있는지 서브스트링 세트 확인부(150)에서 검증한다. 검증된 서브스트링 세트 즉, 시그니처는 시그니처 최적화부(160)에서 최적화되어 시그니처 DB(130)에 등록된다.
서브스트링 세트 생성부(110)는 패킷에서 추출된 다수의 서브스트링들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트를 생성한다. 서브스트링 세트 생성부(110)의 세부 구조 및 서브스트링 세트 생성 방법에 대하여는 도 2 및 도 4에서 더욱 상세하게 설명한다.
서브스트링 세트 확인부(150)는 서브스트링 세트 생성부(110)에서 생성된 서브스트링 세트를 가지는 패킷의 공격 특성을 조사하여 이 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할 수 있는지 여부를 확인한다.
바람직하게는, 패킷의 목적지 주소의 개수를 조사하여 목적지 주소의 개수가 특정 값 이상인 경우, 생성된 서브스트링 세트를 공격 패킷의 시그니처로 판단하여 공격 패킷 탐지를 위한 시그니처로 사용하도록 한다.
바람직하게는, 패킷의 세션 성공률을 조사하여 세션 성공률이 특정 값 이하인 경우, 생성된 서브스트링 세트를 공격 패킷의 시그니처로 판단하여 공격 패킷 탐지를 위한 시그니처로 사용하도록 한다.
또한, 위의 두 기준의 어떠한 조합(and/or)을 판단 여부로 사용 할 수 있다.
시그니처 최적화부(160)는 확인된 서브스트링 세트, 즉 시그니처의 크기를 최소화하여 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행한다. 최적화 방법에 대하여는 도 5에서 더욱 상세히 설명한다.
도 2는 도 1의 서브스트링 세트 생성부(110)의 구조를 더욱 상세히 도시한 도면이다.
도 2를 참조하면, 서브스트링 세트 생성부(110)는 패킷에서 일정 길이의 서브스트링들을 추출하는 서브스트링 추출부(210), 추출된 서브스트링들의 해쉬 값을 산출하는 해쉬 연산부(220), 해쉬 연산부(220)에서 연산된 해쉬 값들을 샘플링하는 샘플링부(230), 샘플링된 해쉬 값들의 전부 또는 일부를 인덱스로 하여 선택된 서브스트링들을 등록하는 서브스트링 분포 테이블(240) 및 동일한 패킷 내에서 추출되어 서브스트링 분포 테이블(240)에 등록된 서브스트링들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트를 생성하는 서브스트링 조합부(250)를 포함한다. 서브스트링 세트 생성부(110)가 서브스트링 세트를 생성하는 방법에 대하여는 도 4에서 더욱 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 최적 시그니처 자동 생성 방법을 도시한 흐름도이다.
도 3을 참조하면, 본 발명에 따른 최적 시그니처 자동 생성 방법은 서브스트링 세트 생성 단계(S310), 서브스트링 세트 확인 단계(S340) 및 시그니처 최적화 단계(S350)를 포함한다.
본 방법의 주요 작업 흐름을 설명하면, 우선 조사 대상이 되는 패킷에서 공격 컨텐츠(contents)로 간주되는 서브스트링 세트를 생성한다(S310). 패킷에서 추 출된 다수의 서브스트링(substring)들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트(substring set)를 생성하는 것이다. 서브스트링 세트를 생성하는 방법에 대하여는 도 4에서 더욱 상세하게 설명한다.
다음으로 생성된 서브스트링 세트와 이미 등록되어 있는 기존의 시그니처를 비교하여(S320) 생성된 서브스트링 세트가 이미 등록되어 있으면 그에 해당하는 보안 정책을 적용한다(S330).
그렇지 않은 경우 생성된 서브스트링 세트가 시그니처로서의 특징이 있는지 확인한다(S340). 서브스트링 세트를 가지는 패킷의 공격 특성을 조사하여 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할지 여부를 확인하는 과정이다. 공격가능성이 있는 패킷으로 분류된 패킷의 서브스트링 세트들은 보다 정밀하게 행동특성을 조사하게 되는데, 이때 사용되는 특성으로는 해당 서브스트링 세트를 가지는 패킷들의 목적지 주소 분포, 세션 성공률 등이 있다.
바람직하게는, 패킷의 목적지 주소의 개수를 조사하여 목적지 주소의 개수가 특정 값 이상인 경우, 생성된 서브스트링 세트를 공격 패킷의 시그니처로 판단하여 공격 패킷 탐지를 위한 시그니처로 사용하도록 한다.
바람직하게는, 패킷의 세션 성공률을 조사하여 세션 성공률이 특정 값 이하인 경우, 생성된 서브스트링 세트를 공격 패킷의 시그니처로 판단하여 공격 패킷 탐지를 위한 시그니처로 사용하도록 한다.
또한, 위의 두 기준의 어떠한 조합(and/or)을 판단 여부로 사용 할 수 있다.
위의 과정을 거쳐 생성되는 서브스트링 세트 기반의 시그니처들은 프로토콜 헤더나, 특정 어플리케이션의 헤더 등과 같이 오탐 될 수 있는 부분을 효과적으로 제거 할 수 있다. 그러나 하나의 패킷에 대하여 발생하는 서브스트링 세트를 공격탐지에 사용하는 경우, 기존의 경우보다 시그니처 사이즈 및 개수가 더 커져서 시스템의 성능저하를 유발할 수 있다. 따라서, 위의 과정을 거쳐 공격 패킷으로 분류된 시그니처들은 최적화 과정을 거치게 된다.
확인된 서브스트링 세트들은 시그니처의 크기를 최소화하고 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 거쳐 시그니처 자동 생성이 완료된다(S350). 최적화 방법에 대하여는 도 5에서 더욱 상세히 설명한다.
이렇게 자동으로 생성된 시그니처는 시그니처 DB(130, 도 1 참조)에 등록되어 다시 보안 정책의 적용 여부를 결정하는 비교 대상으로 사용된다.
도 4는 서브스트링 세트 생성 방법을 더욱 상세히 나타낸 흐름도이다.
도 4를 참조하면, 서브스트링 세트 생성은 패킷에서 일정 길이의 서브스트링들을 추출(S410), 추출된 서브스트링들의 해쉬 값을 산출(S420), 연산된 해쉬 값들을 샘플링(S430), 샘플링된 해쉬 값들의 전부 또는 일부를 인덱스로 하여 선택된 서브스트링들을 등록(S440)하는 일련의 과정을 패킷의 마지막 부분에 이를 때까지 반복 수행하여 서브스트링들을 서브스트링 분포 테이블(240, 도 2 참조)에 등록한 후, 등록된 서브스트링들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 확인하고(S460) 동일한 패킷 내에서 추출된 활성화된 서브스트링을 조합하여 서브스트링 세트를 생성한다(S470).
도 4의 각 과정들을 더욱 상세히 설명한다.
우선, 대상 시스템이 설치된 네트워크 장비에 도달하는 모든 패킷에서 일정한 길이를 가진 서브스트링(substing)을 추출한다(S410). 서브스트링의 길이는 일반적으로 2 바이트(byte)에서 100 바이트까지 사용된다. 이때 패킷 내의 일정한 길이의 연속 혹은 불연속적인 바이트 열이 서브스트링으로 사용된다.
다음으로 추출된 서브스트링의 해쉬 값을 널리 활용되는 간단한 해싱 알고리즘을 이용하여 산출한다(S420).
이때, 서브스트링 추출 및 해쉬 값 산출에 활용될 수 있는 대표적인 방법이 앞서 언급한 카프-라빈(Karp-Rabin) 핑거프린팅 기법이다. 이 기술에서는 하나의 문서를 k 바이트의 서브스트링들로 나누고 각각의 서브스트링에 대하여 해쉬 값을 계산한다. 이때, 각각의 서브스트링은 이동 윈도우(moving window) 방식으로 나누어진다. 예를 들어 첫 번째 서브스트링이 1번째 바이트부터 k번째 바이트까지로 구성이 된다면, 2번째 서브스트링은 2번째 바이트부터 k+1번째 바이트까지로 구성된다. 여기서 하나의 서브스트링의 각 바이트를 다항식의 계수로 표현하면 연속적인 서브스트링의 해쉬 값을 간단한 연산만을 통해 얻을 수 있다. 만약, 어떤 문서의 총 크기가 x 바이트일 경우, 생성되는 해쉬 값의 수는 x-k+1 개가 되고, 계산된 x-k+1 개의 해쉬 값들은 그 문서를 대표하게 된다.
앞서 설명한 바와 같이 산출된 해쉬 값들을 모두 비교하는 것은 시스템 성능이 저하되는 주요한 요인이 되므로 계산된 해쉬 값은 샘플링 방법들을 이용하여 샘플링 된다(S430).
본 발명에는 다양한 방법의 샘플링이 적용될 수 있으나 다음과 같은 네 가지 방법을 소개한다.
첫 번째는, 비교하는 문서 사이에 특정한 문자열이 있는지를 조사하는 방법이다. 이를 위하여, 각각의 계산된 해쉬 값들에 대해 P 계수(modulus p) 연산을 하게 된다. 그리고 이 중에서 특정 값만을, 예를 들면 P 계수가 0인 것들을 그 문서의 서브스트링 세트로 선택하는 방법이다. 이 방법은 간단하고 실제로 적용하기 쉬우나, 발생하는 서브스트링 세트의 수가 문서의 내용과 크기에 따라 달라진다는 결점이 있다.
이를 보완하기 위한 방법이 위노잉(winnowing) 기법이다. 위노잉은 P 계수 연산에서 발생하는 특정 값들을 선택하는 대신, 일정한 크기의 윈도우(window)를 두어 그 윈도우에 해당하는 해쉬 값 중에서 최소값을 선택하는 방법이다. 이렇게 함으로써 특정 크기의 문서가 가질 수 있는 최소 서브스트링 세트 수를 보장하고, 더욱 정확하게 서브스트링 세트를 추출할 수 있다.
위노잉 기법보다 조금 간단한 방법으로는 각 문서에서 발생하는 해쉬 값들 중에 n개의 최소값을 선택하는 방법이 있다. 선택된 해쉬 값들은 그 문서를 대표하는 값들의 집합으로 표현되고, 각 문서들을 대표하는 집합들을 비교함으로써 문서들간의 유사성을 계산한다. 이 방법의 문제로는 큰 문서가 작은 문서를 포함하는 경우, 두 문서가 유사한 문서인지 또는 한 문서가 다른 문서에 포함되는지를 판별하기 어렵다는 점이다.
마지막으로, 문서내의 특정한 값을 찾아서 그 위치로부터 특정한 몇 바이트 또는 그 위치로부터 찾는 문자열이 두 번째 나타나는 지점까지를 핑거프린 트(fingerprint)로 사용하는 방법(COPP:Content-based payload partitioning)이 있다.
바람직하게는, 본 발명은 위노잉(winnowing) 기법을 이용하여 샘플링하도록 할 수 있다. 위노잉 기법을 사용하여 서브스트링들을 샘플링함으로써, 밸류 샘플링이 가지는 단점인 샘플링 수의 변동, 특정 문자열의 생성 빈도가 높은 점 등을 보완할 수 있다.
바람직하게는, 하나의 패킷에서 추출할 샘플 개수를 결정하는 방법은 패킷의 길이에 비례하여 결정하도록 할 수 있다.
샘플링을 통하여 선택된 서브스트링들은 계산된 해쉬 값의 전체, 또는 값의 일부(예를 들어 하위 16비트)를 인덱스로 사용하여 서브스트링 분포 테이블(240, 도 2 참조)에서 특정 위치를 점유하게 되며, 이에 따라 해당 위치의 빈도수를 증가 시킨다(S440).
만약 처리해야 할 서브스트링이 남아 있으면 상기의 과정들을 반복하여 수행한다(S450).
다음으로는 서브스트링 분포 테이블(240)에 등록된 서브스트링들의 빈도수를 확인하여 활성화된 서브스트링인지 확인하고(S460), 동일한 패킷 내에서 추출되었으며 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트를 생성한다(S470). 즉, 서브스트링 분포 테이블(240)에 등록된 서브스트링의 빈도수와 미리 설정한 임계값을 기준으로 일정 빈도수 이상으로 나타나는 서브스트링들을 네트워크 공격 가능성이 있는 서브스트링으로 판단하고, 서브스트링들을 조합하여 서브스트링 세트를 생성하는데 사용하는 것이다.
등록된 서브스트링들은 빈도수에 따라 활성 서브스트링(active substring)과 비활성 서브스트링(inactive substring)으로 나누어진다. 이때, 서브스트링이 분류되는 기준은 서브스트링 분포 테이블의 빈도수와 미리 설정된 임계값(threshold)에 따라 결정된다.
임계값을 정하는 방법은 서브스트링들의 전체 평균 빈도수를 이용하는 방법, 실험을 통하여 정상 패킷의 경우 특정시간 내에 기록되는 서브스트링의 가장 높은 빈도수를 이용하여 설정하는 방법 등이 있다. 평균 빈도수를 이용하는 방법에는 지수적 가중 이동 평균(exponentially weighted moving average)를 이용하여 최근 i개 서브스트링에 대한 평균을 구하는 방법과 전체 서브스트링 빈도수의 산술 평균을 이용하는 방법 등이 있다.
예를 들어, 전체 서브스트링의 평균이 Aavg 일때, 임계값 Ath 은 β*Aavg 가 되고(β의 범위는 1 보다 큰 실수), 선택된 서브스트링의 빈도수가 임계값 Ath 보다 커지면 해당 서브스트링은 활성 서브스트링으로 구분된다.
하나의 패킷에 대하여 생성되는 서브스트링들이 샘플링되어 서브스트링 분포 테이블(240)에 등록되는 서브스트링 중에서 빈도수가 임계값 Ath 보다 큰 활성 서브스트링의 총 수를 Na 라 하면, Na 가 미리 정의된 서브스트링 개수 임계값(Sth)보다 크면(Sth는 1보다 큰 정수), 해당 패킷은 공격가능성이 있는 패킷으로 분류되어 해당 패킷에서 발생된 Na 개의 서브스트링들은 별도의 공간에 저장되어 서브스트링 세트로 조합된다(S470).
지금까지 설명한 도 4의 실시예에서는 패킷의 마지막에 도달할 때까지 반복 검사하는 단계 (S450)가 서브스트링 분포 테이블에 등록하는 단계(S440)와 활성화된 서브스트링을 확인하는 단계(S460) 사이에 위치하도록 하였다. 이 경우 한 패킷을 모두 처리한 다음에 활성화된 서브스트링을 확인하기 때문에 서브스트링 분포 테이블 업데이트시 최근 처리한 패킷임을 표시하는 플래그(flag)를 가지고 있어야 한다.
그러나 다른 실시예에서는 동일 패킷내의 활성화된 서브스트링을 조합하는 단계(S470)까지 완료한 후에 반복 검사하도록 할 수 있다. 이 경우 이러한 플래그를 가지고 있지 않아도 현재 검사 중인 패킷에서 발생하는 활성화된 서브스트링을 바로 알 수 있다.
도 5는 시그니처의 최적화 방법을 도시한 흐름도이다.
도 5를 참조하면, 확인된 서브스트링 세트, 즉 새로 생성된 시그니처와 미리 저장된 다른 시그니처들을 각각 비교하여 서로 공통된 서브스트링을 삭제시키는 방법으로 시그니처를 최적화한다.
시그니처 최적화의 주요 목적은 시그니처 생성 시 해쉬를 사용함으로써 발생할 수 있는 시그니처 고유성 저하를 막아 오탐을 최소화하는데 있다. 즉, 생성된 시그니처의 일부가 프로토콜 또는 어플리케이션의 헤더와 같이 여러 패킷에서 공통으로 사용되는 부분을 포함할 경우, 시그니처 저장에 필요한 저장 공간과 시그니처를 적용하는데 필요한 프로세싱 파워 등의 시스템 자원을 불필요하게 소비하게 되고 이는 시스템의 성능저하를 초래하게 된다. 따라서, 여러 시그니처에 포함되어 있는 부분을 제거함으로써 시스템의 효율을 높이고자 하는 기술이 시그니처 최적화이다.
이를 위해 추출된 모든 시그니처에 대하여 이에 속하는 서브스트링이 다른 시그니처에 포함되어 있는지를 검사한다(S510). 즉 서브스트링 세트인 시그니처를 하나의 집합으로 보고, 서브스트링 세트를 구성하는 서브스트링들을 집합의 원소로 보아 공통된 원소(서브스트링)가 있는지 비교하는 것이다.
이때, 해싱 함수의 충돌과 확장성 등을 고려하여 중복되어 나타나는 서브스트링의 개수를 d개로 제한할 수도 있다(S520). 즉, 최적화 과정에서 하나의 서브스트링이 d개 이상의 시그니처에서 발생한 경우에만 해당 서브스트링을 각각의 시그니처에서 삭제시킨다.
만일 중복된 서브스트링의 개수가 설정된 값 d 이하이면 비교할 기존의 시그니처가 더 있는지 확인하여(S530) 다음 시그니처에 대하여 작업을 반복한다(S540).
그런데 이와 같은 삭제시키다 보면 연속적으로 생성된 공격 시그니처 중에서 아주 작은 일부분만이 다른 부분을 가지는 공격 시그니처들까지 모두 삭제되는 경우가 생길 수 있다. 예를 들면, 공격코드의 일부를 매 공격 시도 때마다 조금씩 변화시키는 다형성 웜의 경우, 중복되는 부분을 모두 삭제하면 극히 일부분의 상이한 부분만이 남게 된다. 이는 전술한 얼리버드(Earlybird)와 같이 한 개의 서브스트링만을 가지고 공격을 탐지하는 시스템에서 생산하는 시그니처와 유사한 특성을 나타내어 본 발명의 장점을 약화시킬 있다.
이를 방지하기 위하여 한 개의 시그니처가 다른 시그니처에 포함되거나 일정 수준 이상 닮았을 경우는 삭제하지 않는 방법을 사용할 수 있다.
우선 시그니처 간의 포함 정도(C)와 닮음 정도(R)을 계산한다(S550). 포함 정도(C)나 닮음 정도(R)는 보통 집합론에서 사용하는 개념을 사용한다. 즉, 두 개의 집합(시그니처) A, B에 대하여 A가 B에 포함되는 정도(C)는 아래의 수학식 1에 의하여 계산한다.
Figure 112006054760350-pat00001
또한 A가 B와 닮은 정도(R)은 아래의 수학식 2에 의하여 계산한다.
Figure 112006054760350-pat00002
즉, 두 개의 시그니처의 포함 정도(C)가 보안 시스템의 특성에 따라 미리 정해진 값 Cth 보다 작은 경우(S560), 그리고 닮은 정도(R)가 보안 시스템의 특성에 따라 미리 정해진 값 Rth 보다 작은 경우에 중복되는 서브스트링은 두 시그니처에서 각각 삭제될 수 있다(S580).
도 6a는 시그니처 최적화 과정을 거치기 전의 시그니처의 예를 도시한 도면이고, 도 6b는 도 6a의 시그니처가 시그니처 최적화 과정을 거치기 후의 모습을 나타낸 도면이다.
이 예에서 시그니처를 구성하는 서브스트링의 중복도를 나타내는 변수 d는 1 을 사용하고, Rth 와 Cth 는 각각 0.5를 사용한다고 가정한다.
도 6a를 참조하면, 생성되는 시그니처에는 시그니처 ID가 부여되고, 해당하는 서브스트링들이 등록된다.
예를 들어, 시그니처 1, 2 및 3이 차례로 생성되어 있고, 현재 시그니처 4가 새로 등록되는 경우를 살펴본다. 여기에서 시그니처 4는 서브스트링 601, 603, 625, 630, 617을 가진다. (하나의 시그니처에 등록된 서브스트링들은 후에 필요로 하는 연산의 편의를 위해 정렬해 놓을 수 있으나, 공격 탐지 시에 오탐의 원인이 될 수도 있으므로 본 예에서는 정렬하지 않는다.) 이 중에서 서브스트링 601 및 603은 시그니처 1의 서브스트링과 중복된다. 그리고 서브스트링 617은 시그니처 3의 서브스트링과 중복된다. 이것은 새로 생성된 시그니처 4가 기존의 시그니처 1, 2 및 3과 공통부분을 가진다는 것이며, 새로 생성된 시그니처 4는 고유성이 약하다는 것을 의미한다.
이 예의 경우 d가 1이므로 도 5의 S520 단계의 조건은 만족한다. 포함 정도(C) 및 닮음 정도(R)를 계산해보면, 시그니처 1과 4의 경우 포함 정도(C)는 2/5 = 0.4, 닮음 정도(R)는 2/8 = 0.25 이고, 시그니처 3과 4의 경우 포함 정도(C)는 1/4 = 0.25, 닮음 정도(R)는 1/8=0.125 이다. 따라서 각각 0.5로 가정한 Rth 및 Cth 보다 작으므로 중복되는 서브스트링 601, 603, 617은 모두 삭제된다. 삭제된 결과는 도 6b에 도시되어 있다.
시그니처 최적화 시 사용되는 포함 정도, 닮음 정도를 수량화하는 기술은 시그니처를 이용한 공격 탐지에도 사용될 수 있다. 다형성(Polymorphic) 웜의 경우 매 공격 시마다 패킷의 내용이 조금씩 변할 수 있다. 이 경우, 기존의 정확한 패턴 매칭(exact pattern matching)을 사용하면 오탐을 일으킬 수 있다. 그러나 앞에서 설명한 포함, 닮음을 수량화하는 기술을 사용하면 패킷의 내용의 일부가 변한 경우에도 변화되지 않은 부분을 그대로 시그니처에 포함하고 있으면 공격 패킷으로 탐지될 수 있다.
이제까지 기술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 네트워크의 라우터에 일부분으로 또는 네트워크의 보안장비의 일부분으로 사용될 수 있다. 또한 본 발명의 방법은 초고속 네트워크에서 사용하도록 하드웨어적인 방식, 예를 들어 ASIC, FPGA 등으로 구현될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등 및 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 고속 네트워크에서 발생하는 공격 패킷을 탐지하고, 그 시그니처를 자동으로 생성하여 추후 발생할 해당 공격으로부터 네트워크를 실시간으로 보호하는 효과가 있다.
또한 본 발명에 따르면, 패킷의 일부분에서 발생하는 패턴 대신, 여러 부분에서 발생하는 패턴의 그룹을 공격 시그니처로 사용함으로써 오탐을 최소화할 수 있고, 시그니처가 최적화되어 시그니처의 생성, 저장, 관리 및 적용을 용이하게 하는 보안 시스템을 구축할 수 있다.

Claims (29)

  1. 패킷에서 추출된 다수의 서브스트링(substring)들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트(substring set)를 생성하는 서브스트링 세트 생성부;
    상기 서브스트링 세트를 가지는 패킷이 공격 패킷으로서의 특성을 나타내는지 조사하여 상기 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할 수 있는지 여부를 확인하는 서브스트링 세트 확인부; 및
    상기 확인된 서브스트링 세트의 크기를 최소화하여 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행하는 시그니처 최적화부;를 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  2. 제 1항에 있어서,
    상기 서브스트링 세트 생성부는,
    패킷에서 일정 길이의 서브스트링들을 추출하는 서브스트링 추출부;
    상기 추출된 서브스트링들의 해쉬 값을 산출하는 해쉬 연산부;
    상기 해쉬 연산부에서 연산된 해쉬 값들을 샘플링하는 샘플링부;
    상기 샘플링된 해쉬 값들의 전부 또는 일부를 인덱스로 하여 상기 선택된 서브스트링들을 등록하는 서브스트링 분포 테이블; 및
    동일한 패킷 내에서 추출되어 상기 서브스트링 분포 테이블에 등록된 서브스 트링들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트를 생성하는 서브스트링 조합부;를 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  3. 삭제
  4. 제 2항에 있어서,
    상기 해쉬 연산부는, 카프-라빈(Karp-Rabin) 핑거프린팅 방법을 이용하여 해쉬 값을 산출하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  5. 제 2항에 있어서,
    상기 샘플링부는, 하나의 패킷에서 추출할 샘플 개수를 패킷의 길이에 비례하여 결정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  6. 제 2항에 있어서,
    상기 샘플링부는, 위노잉(winnowing) 기법을 이용하여 샘플링하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  7. 제 2항에 있어서,
    상기 서브스트링 조합부는, 상기 서브스트링 분포 테이블에 등록된 서브스트링의 빈도수와 미리 설정한 임계값을 기준으로 일정 빈도수 이상으로 나타나는 서브스트링들을 네트워크 공격 가능성이 있는 서브스트링으로 판단하여, 상기 공격 가능성 있는 서브스트링들을 조합하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  8. 제 7항에 있어서,
    상기 임계값은, 상기 서브스트링들 전체의 평균 빈도수를 이용하여 설정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  9. 제 7항에 있어서,
    상기 임계값은, 정상 패킷의 경우 특정시간 내에 기록되는 서브스트링의 가장 높은 빈도수를 이용하여 설정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  10. 제 1항에 있어서,
    상기 서브스트링 세트 확인부는, 상기 서브스트링 세트를 가지는 패킷의 목적지 주소의 개수를 조사하여 상기 목적지 주소의 개수가 특정 값 이상인 경우 상기 서브스트링 세트를 시그니처로 사용하도록 확인하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  11. 제 1항에 있어서,
    상기 서브스트링 세트 확인부는, 상기 서브스트링 세트를 가지는 패킷의 세션 성공률을 조사하여 상기 세션 성공률이 특정 값 이하인 경우 상기 서브스트링 세트를 시그니처로 사용하도록 확인하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  12. 제 1항에 있어서,
    상기 시그니처 최적화부는, 상기 확인된 서브스트링 세트와 미리 저장된 다른 시그니처들을 비교하여 공통된 서브스트링을 삭제시키는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  13. 제 12항에 있어서,
    상기 시그니처 최적화부는, 상기 확인된 서브스트링 세트와 미리 저장된 다른 시그니처들 사이의 포함 정도 또는 닮음 정도가 특정한 값 이하인 경우에만 상기 공통된 서브스트링을 삭제시키는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  14. 제 1항에 있어서,
    상기 서브스트링 세트 생성부에서 생성된 서브스트링 세트와 미리 저장된 기존의 시그니처가 동일한지 여부를 비교하는 서브스트링 세트 비교부;를 더 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 장치.
  15. (a) 패킷에서 추출된 다수의 서브스트링(substring)들 중에서 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트(substring set)를 생성하는 단계;
    (b) 상기 서브스트링 세트를 가지는 패킷이 공격 패킷으로서의 특성을 나타내는지 조사하여 상기 서브스트링 세트를 공격 패킷 탐지를 위한 시그니처(signature)로 사용할지 여부를 확인하는 단계; 및
    (c) 상기 확인된 서브스트링 세트의 크기를 최소화하여 시그니처로서의 고유성 및 저장 효율성을 증대시키는 최적화를 수행하는 단계;를 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  16. 제 15항에 있어서,
    상기 (a) 단계는,
    (a1) 패킷에서 일정 길이의 서브스트링들을 추출하는 단계;
    (a2) 상기 추출된 서브스트링들의 해쉬 값을 산출하는 단계;
    (a3) 상기 산출된 해쉬 값들을 샘플링하는 단계;
    (a4) 상기 샘플링된 해쉬 값들의 전부 또는 일부를 인덱스로 하여 상기 샘플링을 통해 선택된 서브스트링들을 등록하는 단계; 및
    (a5) 상기 등록된 서브스트링들 중에서, 동일한 패킷 내에서 추출되었으며 일정 빈도수 이상으로 나타나는 서브스트링들을 조합하여 서브스트링 세트를 생성하는 단계;를 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  17. 삭제
  18. 제 16항에 있어서,
    상기 (a2) 단계에서, 카프-라빈(Karp-Rabin) 핑거프린팅 방법을 이용하여 해쉬 값을 산출하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  19. 제 16항에 있어서,
    상기 (a3) 단계에서, 하나의 패킷에서 추출할 샘플 개수를 결정하는 방법은 패킷의 길이에 비례하여 결정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  20. 제 16항에 있어서,
    상기 (a3) 단계에서, 위노잉(winnowing) 기법을 이용하여 샘플링하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  21. 제 16항에 있어서,
    상기 (a5) 단계에서, 상기 등록된 서브스트링의 빈도수와 미리 설정한 임계값을 기준으로 일정 빈도수 이상으로 나타나는 서브스트링들을 네트워크 공격 가능성이 있는 서브스트링으로 판단하여, 상기 공격 가능성 있는 서브스트링들을 조합하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  22. 제 21항에 있어서,
    상기 임계값은, 상기 서브스트링들 전체의 평균 빈도수를 이용하여 설정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  23. 제 21항에 있어서,
    상기 임계값은, 정상 패킷의 경우 특정시간 내에 기록되는 서브스트링의 가장 높은 빈도수를 이용하여 설정하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  24. 제 15항에 있어서,
    상기 (b) 단계에서, 상기 서브스트링 세트를 가지는 패킷의 목적지 주소의 개수를 조사하여 상기 목적지 주소의 개수가 특정 값 이상인 경우 상기 서브스트링 세트를 시그니처로 사용하도록 확인하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  25. 제 15항에 있어서,
    상기 (b) 단계에서, 상기 서브스트링 세트를 가지는 패킷의 세션 성공률을 조사하여 상기 세션 성공률이 특정 값 이하인 경우 상기 서브스트링 세트를 시그니처로 사용하도록 확인하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  26. 제 15항에 있어서,
    상기 (c) 단계에서, 상기 확인된 서브스트링 세트와 미리 저장된 다른 시그니처들을 비교하여 공통된 서브스트링을 삭제시키는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  27. 제 26항에 있어서,
    상기 (c) 단계에서, 상기 확인된 서브스트링 세트와 미리 저장된 다른 시그니처들 사이의 포함 정도 또는 닮음 정도가 특정한 값 이하인 경우에만 상기 공통된 서브스트링을 삭제시키는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  28. 제 15항에 있어서,
    (d) 상기 (a) 단계에서 생성된 서브스트링 세트와 미리 저장된 기존의 시그니처가 동일한지 여부를 비교하는 단계;를 더 포함하는 것을 특징으로 하는 보안 시스템을 위한 최적 시그니처 자동 생성 방법.
  29. 삭제
KR1020060071654A 2006-07-28 2006-07-28 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법 Active KR100809416B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060071654A KR100809416B1 (ko) 2006-07-28 2006-07-28 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법
US11/774,699 US20080028468A1 (en) 2006-07-28 2007-07-09 Method and apparatus for automatically generating signatures in network security systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060071654A KR100809416B1 (ko) 2006-07-28 2006-07-28 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100809416B1 true KR100809416B1 (ko) 2008-03-05

Family

ID=38987956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060071654A Active KR100809416B1 (ko) 2006-07-28 2006-07-28 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법

Country Status (2)

Country Link
US (1) US20080028468A1 (ko)
KR (1) KR100809416B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090093187A (ko) * 2008-02-28 2009-09-02 윤성진 네트워크 장치를 이용한 유해자료 원천차단 시스템 및 방법
KR101079815B1 (ko) 2008-12-22 2011-11-03 한국전자통신연구원 해싱결과값의 비트-벡터를 이용한 공격 시그니처 분류에 기반한 시그니처 클러스터링 방법
KR101270339B1 (ko) * 2011-12-28 2013-05-31 한양대학교 산학협력단 시그니쳐 검사 방법
KR101270402B1 (ko) * 2011-12-28 2013-06-07 한양대학교 산학협력단 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
KR101346810B1 (ko) 2012-03-07 2014-01-03 주식회사 시큐아이 통합적 서비스 제어 장치 및 방법
KR101444908B1 (ko) * 2013-01-08 2014-09-26 주식회사 시큐아이 시그니처를 저장하는 보안 장치 및 그것의 동작 방법
KR20190028596A (ko) * 2017-09-08 2019-03-19 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
KR20190028597A (ko) * 2017-09-08 2019-03-19 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
KR102353130B1 (ko) * 2020-07-21 2022-01-18 충북대학교 산학협력단 Nidps 기반 대용량 트래픽 제로데이 공격을 방어하기 위한 방어 시스템 및 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7787368B1 (en) * 2008-02-28 2010-08-31 Sprint Communications Company L.P. In-network per packet cashes
US8032757B1 (en) * 2008-05-16 2011-10-04 Trend Micro Incorporated Methods and apparatus for content fingerprinting for information leakage prevention
US9063947B2 (en) * 2008-08-18 2015-06-23 Hewlett-Packard Development Company, L.P. Detecting duplicative hierarchical sets of files
US8661341B1 (en) * 2011-01-19 2014-02-25 Google, Inc. Simhash based spell correction
US9813310B1 (en) * 2011-10-31 2017-11-07 Reality Analytics, Inc. System and method for discriminating nature of communication traffic transmitted through network based on envelope characteristics
US10332005B1 (en) * 2012-09-25 2019-06-25 Narus, Inc. System and method for extracting signatures from controlled execution of applications and using them on traffic traces
US10242187B1 (en) * 2016-09-14 2019-03-26 Symantec Corporation Systems and methods for providing integrated security management
US10698571B2 (en) * 2016-12-29 2020-06-30 Microsoft Technology Licensing, Llc Behavior feature use in programming by example
CN106878314B (zh) * 2017-02-28 2019-12-10 南开大学 基于可信度的网络恶意行为检测方法
US11244048B2 (en) * 2017-03-03 2022-02-08 Nippon Telegraph And Telephone Corporation Attack pattern extraction device, attack pattern extraction method, and attack pattern extraction program
US11119127B2 (en) 2017-08-01 2021-09-14 Carlos Moreno Method and apparatus for non-intrusive program tracing with bandwidth reduction for embedded computing systems
US10284476B1 (en) * 2018-07-31 2019-05-07 Hojae Lee Signature pattern detection in network traffic

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050048558A (ko) * 2005-04-12 2005-05-24 (주)모니터랩 프로파일링 기반 웹 서비스 보안 시스템 및 그 방법
KR20060013491A (ko) * 2003-05-30 2006-02-10 인터내셔널 비지네스 머신즈 코포레이션 어택 서명 생성 방법, 서명 생성 애플리케이션 적용 방법, 컴퓨터 판독 가능 기록 매체 및 어택 서명 생성 장치
KR20060017109A (ko) * 2004-08-20 2006-02-23 (주)한드림넷 네트워크 보호 장치 및 방법
KR20060034581A (ko) * 2004-10-19 2006-04-24 한국전자통신연구원 네트워크 침입 탐지 및 방지 시스템 및 그 방법
KR20060056195A (ko) * 2004-11-20 2006-05-24 한국전자통신연구원 비정상 트래픽 정보 분석 장치 및 그 방법
KR20060076325A (ko) * 2004-10-12 2006-07-04 니폰덴신뎅와 가부시키가이샤 서비스 불능 공격 방어 시스템, 서비스 불능 공격 방어방법 및 서비스 불능 공격 방어 프로그램

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3132738B2 (ja) * 1992-12-10 2001-02-05 ゼロックス コーポレーション テキスト検索方法
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US7366910B2 (en) * 2001-07-17 2008-04-29 The Boeing Company System and method for string filtering
US6738762B1 (en) * 2001-11-26 2004-05-18 At&T Corp. Multidimensional substring selectivity estimation using set hashing of cross-counts
JP4238616B2 (ja) * 2003-03-28 2009-03-18 株式会社日立製作所 類似文書検索方法および類似文書検索装置
US20050108340A1 (en) * 2003-05-15 2005-05-19 Matt Gleeson Method and apparatus for filtering email spam based on similarity measures
US7966658B2 (en) * 2004-04-08 2011-06-21 The Regents Of The University Of California Detecting public network attacks using signatures and fast content analysis
US20060095966A1 (en) * 2004-11-03 2006-05-04 Shawn Park Method of detecting, comparing, blocking, and eliminating spam emails
US20060212426A1 (en) * 2004-12-21 2006-09-21 Udaya Shakara Efficient CAM-based techniques to perform string searches in packet payloads
MX2008012891A (es) * 2006-04-06 2009-07-22 Smobile Systems Inc Sistema y metodo de deteccion de software dañino para plataformas moviles de acceso limitado.
US7395270B2 (en) * 2006-06-26 2008-07-01 International Business Machines Corporation Classification-based method and apparatus for string selectivity estimation
KR100818306B1 (ko) * 2006-11-22 2008-04-01 한국전자통신연구원 공격 패킷 시그너처 후보 추출 장치 및 방법
US8065729B2 (en) * 2006-12-01 2011-11-22 Electronics And Telecommunications Research Institute Method and apparatus for generating network attack signature
US8074278B2 (en) * 2007-09-14 2011-12-06 Fisher-Rosemount Systems, Inc. Apparatus and methods for intrusion protection in safety instrumented process control systems
KR100960120B1 (ko) * 2007-12-17 2010-05-27 한국전자통신연구원 시그니처 스트링 저장 메모리 최적화방법과 그 메모리 구조및 시그니처 스트링 패턴 매칭방법
US20090234852A1 (en) * 2008-03-17 2009-09-17 Microsoft Corporation Sub-linear approximate string match
US8381290B2 (en) * 2009-07-17 2013-02-19 Exelis Inc. Intrusion detection systems and methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060013491A (ko) * 2003-05-30 2006-02-10 인터내셔널 비지네스 머신즈 코포레이션 어택 서명 생성 방법, 서명 생성 애플리케이션 적용 방법, 컴퓨터 판독 가능 기록 매체 및 어택 서명 생성 장치
KR20060017109A (ko) * 2004-08-20 2006-02-23 (주)한드림넷 네트워크 보호 장치 및 방법
KR20060076325A (ko) * 2004-10-12 2006-07-04 니폰덴신뎅와 가부시키가이샤 서비스 불능 공격 방어 시스템, 서비스 불능 공격 방어방법 및 서비스 불능 공격 방어 프로그램
KR20060034581A (ko) * 2004-10-19 2006-04-24 한국전자통신연구원 네트워크 침입 탐지 및 방지 시스템 및 그 방법
KR20060056195A (ko) * 2004-11-20 2006-05-24 한국전자통신연구원 비정상 트래픽 정보 분석 장치 및 그 방법
KR20050048558A (ko) * 2005-04-12 2005-05-24 (주)모니터랩 프로파일링 기반 웹 서비스 보안 시스템 및 그 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090093187A (ko) * 2008-02-28 2009-09-02 윤성진 네트워크 장치를 이용한 유해자료 원천차단 시스템 및 방법
KR101079815B1 (ko) 2008-12-22 2011-11-03 한국전자통신연구원 해싱결과값의 비트-벡터를 이용한 공격 시그니처 분류에 기반한 시그니처 클러스터링 방법
KR101270339B1 (ko) * 2011-12-28 2013-05-31 한양대학교 산학협력단 시그니쳐 검사 방법
KR101270402B1 (ko) * 2011-12-28 2013-06-07 한양대학교 산학협력단 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
KR101346810B1 (ko) 2012-03-07 2014-01-03 주식회사 시큐아이 통합적 서비스 제어 장치 및 방법
KR101444908B1 (ko) * 2013-01-08 2014-09-26 주식회사 시큐아이 시그니처를 저장하는 보안 장치 및 그것의 동작 방법
KR20190028596A (ko) * 2017-09-08 2019-03-19 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
KR20190028597A (ko) * 2017-09-08 2019-03-19 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
KR102014736B1 (ko) * 2017-09-08 2019-08-28 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
KR102014741B1 (ko) * 2017-09-08 2019-08-28 (주)피즐리소프트 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
KR102353130B1 (ko) * 2020-07-21 2022-01-18 충북대학교 산학협력단 Nidps 기반 대용량 트래픽 제로데이 공격을 방어하기 위한 방어 시스템 및 방법

Also Published As

Publication number Publication date
US20080028468A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
KR100809416B1 (ko) 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법
Soska et al. Automatically detecting vulnerable websites before they turn malicious
CN108076040B (zh) 一种基于杀伤链和模糊聚类的apt攻击场景挖掘方法
US8250016B2 (en) Variable-stride stream segmentation and multi-pattern matching
US7810155B1 (en) Performance enhancement for signature based pattern matching
WO2020133986A1 (zh) 僵尸网络域名家族的检测方法、装置、设备及存储介质
CN111277570A (zh) 数据的安全监测方法和装置、电子设备、可读介质
KR100818306B1 (ko) 공격 패킷 시그너처 후보 추출 장치 및 방법
EP2284752B1 (en) Intrusion detection systems and methods
US20140047543A1 (en) Apparatus and method for detecting http botnet based on densities of web transactions
US8065729B2 (en) Method and apparatus for generating network attack signature
CN102685145A (zh) 一种基于dns数据包的僵尸网络域名发现方法
JP5832951B2 (ja) 攻撃判定装置、攻撃判定方法及び攻撃判定プログラム
CN106534146A (zh) 一种安全监测系统及方法
KR100960117B1 (ko) 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체
Zhang et al. Toward unsupervised protocol feature word extraction
CN114021135A (zh) 一种基于R-SAX的LDoS攻击检测与防御方法
CN111680286B (zh) 物联网设备指纹库的精细化方法
Nguyen et al. An approach to detect network attacks applied for network forensics
Li et al. Real-time correlation of network security alerts
CN112104628B (zh) 一种自适应特征规则匹配的实时恶意流量检测方法
Afek et al. Automated signature extraction for high volume attacks
CN117914571A (zh) 一种基于网络流量的apt攻击检测与路径重构方法
Wang et al. High performance pattern matching algorithm for network security
KR100960119B1 (ko) 하드웨어 기반 비정상 트래픽 탐지방법 및 하드웨어 기반비정상 트래픽 탐지엔진이 탑재된 탐지장치

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20060728

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20070723

Patent event code: PE09021S01D

AMND Amendment
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20071130

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20070723

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

AMND Amendment
J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20071221

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20071130

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20080124

Appeal identifier: 2007101012854

Request date: 20071221

PB0901 Examination by re-examination before a trial

Comment text: Amendment to Specification, etc.

Patent event date: 20071221

Patent event code: PB09011R02I

Comment text: Request for Trial against Decision on Refusal

Patent event date: 20071221

Patent event code: PB09011R01I

Comment text: Amendment to Specification, etc.

Patent event date: 20070906

Patent event code: PB09011R02I

B701 Decision to grant
PB0701 Decision of registration after re-examination before a trial

Patent event date: 20080124

Comment text: Decision to Grant Registration

Patent event code: PB07012S01D

Patent event date: 20080122

Comment text: Transfer of Trial File for Re-examination before a Trial

Patent event code: PB07011S01I

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080226

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080227

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110131

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20120131

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130205

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130205

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 19

PR1001 Payment of annual fee

Payment date: 20130730

Start annual number: 7

End annual number: 19