KR101270339B1 - 시그니쳐 검사 방법 - Google Patents

시그니쳐 검사 방법 Download PDF

Info

Publication number
KR101270339B1
KR101270339B1 KR1020110144788A KR20110144788A KR101270339B1 KR 101270339 B1 KR101270339 B1 KR 101270339B1 KR 1020110144788 A KR1020110144788 A KR 1020110144788A KR 20110144788 A KR20110144788 A KR 20110144788A KR 101270339 B1 KR101270339 B1 KR 101270339B1
Authority
KR
South Korea
Prior art keywords
signature
signatures
index
list
network packet
Prior art date
Application number
KR1020110144788A
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 KR1020110144788A priority Critical patent/KR101270339B1/ko
Application granted granted Critical
Publication of KR101270339B1 publication Critical patent/KR101270339B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

시그니쳐 검사 방법이 개시된다. 본 발명의 일실시예에 따른 시그니쳐 검사 방법은, 시그니쳐 목록에 포함된 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑(Grouping)하는 단계; 시그니쳐 검사 대상이 되는 네트워크 패킷을 입력 받는 단계; 상기 복수 개의 인덱스 중 상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는지 여부를 검색하는 인덱스 검사를 수행하는 단계; 및 상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는 경우, 상기 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐에 대하여 시그니쳐 검사를 수행하는 단계를 포함할 수 있다.

Description

시그니쳐 검사 방법{Method for Detecting Signature}
본 발명의 실시예들은 시그니쳐 검사 방법에 관한 것으로서, 보다 구체적으로는 네트워크 칩입 탐지 및 방지 시스템에 있어서 시그니쳐를 검사하는 방법에 관한 것이다.
최근 몇 년간 인터넷의 사용이 급증하면서 네트워크 트래픽의 양 또한 기하급수적으로 증가하고 있다. 대부분의 네트워크 트래픽은 Peer-to-Peer 파일 전송이나 비디오 스트리밍, 단순 웹 브라우징과 같이 순수한 의도를 위해 발생되지만, 악의적인 의도로 생성된 네트워크 트래픽도 존재한다. 악성 네트워크 트래픽을 발생시키는 공격은 피싱, 스팸 메일, 악성 프로그램 유포, DDoS 공격 등과 같이 네트워크 서비스의 성능을 저하시키거나 네트워크 사용자를 불편에 빠뜨린다. 이러한 네트워크 관련 공격 방법은 점차적으로 더욱 복잡해지고 있으며, 이로 인해 발생하는 악성 네트워크 트래픽을 탐지하는 것 또한 점점 어려워지고 있다.
악성 네트워크 트래픽을 빠르고 정확하게 탐지하기 위하여 여러 가지의 네트워크 패킷 검사 방법이 존재하는데, 네트워크 패킷의 헤더와 내용(Payload) 모두를 검사하여야 높은 정확도의 탐지가 가능하다. 이를 위해 오픈소스 네트워크 침입 탐지 시스템인 Snort가 널리 사용되고 있다.
Snort(www.snort.org)는 시그니쳐 기반 탐지, 프로토콜 기반 탐지, 그리고 이상 행동(Anomaly) 기반 탐지 등의 기능을 제공한다. Snort는 크게 패킷 해독 엔진(Packet Decode Engine), 탐지 엔진(Detection Engine), 기록/알림 엔진(Logging/Alert Engine)의 세 가지 엔진으로 구분되며, 수천 개의 시그니쳐를 포함하고 있어 특성 시그니쳐와 일치하는 내용을 포함하는 네트워크 패킷이 존재하는지 여부를 검사하여 악성 네트워크 패킷을 걸러낸다. Snort의 시그니쳐는 헤더(Header) 부분과 옵션(Option) 부분의 두 가지 부분으로 구성되며, 계속해서 새로운 시그니쳐의 업데이트가 이루어지고 있고, 원하는 시그니쳐를 네트워크 관리자가 직접 정의하여 사용하는 것도 가능하다.
한편, Snort에서 시그니쳐 검사가 이루어지는 과정은 다음과 같다. 입력받은 네트워크 패킷을 해독하여 탐지 엔진으로 전달하면, 저장된 모든 시그니쳐에 대해 일치하는 결과가 존재하는지 검사를 수행한다. 예를 들어 5000개의 시그니쳐가 존재한다면 모두 5000번의 검사가 이루어지는 것인데, 이러한 검사 방법은 매우 비효율적이다. 5000개의 시그니쳐 중 일치하는 결과가 존재한다고 하더라도 그 비율은 전체 시그니쳐의 개수에 비해 매우 적으며, 일치하는 결과가 존재하지 않는 경우가 더 많다. 네트워크상의 악성행위가 점점 증가하는 추세를 고려했을 때 앞으로 필요한 시그니쳐의 숫자는 더욱 증가할 것으로 예상되는데, 이러한 검사 방법을 그대로 유지할 경우 시그니쳐의 숫자가 늘어남에 따라 검사는 더더욱 비효율적으로 진행될 것이며 이는 네트워크 침입 탐지 성능을 저하시키는 주요 요인이 될 것이다. 따라서 시그니쳐 검사 방법을더욱 효율적으로 수행하기 위한 새로운 방법이 요구된다.
본 발명의 일실시예에 따른 시그니쳐 검사 방법은, 시그니쳐 목록에 포함된 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑(Grouping)하는 단계; 시그니쳐 검사 대상이 되는 네트워크 패킷을 입력 받는 단계; 상기 복수 개의 인덱스 중 상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는지 여부를 검색하는 인덱스 검사를 수행하는 단계; 및 상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는 경우, 상기 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐에 대하여 시그니쳐 검사를 수행하는 단계를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 그룹핑하는 단계는 상기 복수 개의 시그니쳐 중 어느 하나의 시그니쳐를 선택하는 단계; 상기 선택된 시그니쳐의 미리 설정된 길이의 문자열을 후보 인덱스로 결정하는 단계; 상기 복수 개의 시그니쳐 중 상기 후보 인덱스를 포함하는 시그니쳐를 검색하는 단계; 및 상기 검색된 시그니쳐의 개수가 미리 설정된 허용 범위 내인 경우, 상기 검색된 시그니쳐를 상기 후보 인덱스에 대한 그룹에 저장하고, 상기 검색된 시그니쳐를 상기 시그니쳐 목록으로부터 제거하며, 상기 후보 인덱스를 상기 인덱스 검사에서 이용되는 인덱스로 결정하는 단계를 포함할 수 있다.
본 발명의 일측에 따르면, 상기 그룹핑하는 단계는 상기 검색된 시그니쳐의 개수가 상기 허용 범위 밖인 경우, 상기 검색된 시그니쳐를 오버사이즈드 시그니쳐 목록에 저장하고, 상기 검색된 시그니쳐를 상기 시그니쳐 목록으로부터 제거하며, 상기 후보 인덱스를 상기 인덱스 검사에서 이용되는 인덱스에서 제외하는 단계를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 그룹핑하는 단계는 상기 시그니쳐 목록으로부터 상기 복수 개의 시그니쳐가 모두 제거될 때까지 상기 그룹핑하는 동작을 반복 수행하는 단계를 더 포함할 수 있다.
본 발명의 일측에 따르면, 상기 그룹핑하는 단계는 상기 시그니쳐 목록으로부터 상기 복수 개의 시그니쳐가 모두 제거되면, 상기 오버사이즈드 시그니쳐 목록에 저장된 시그니쳐를 상기 시그니쳐 목록에 저장하여 상기 시그니쳐 목록을 갱신하는 단계; 상기 후보 인덱스를 결정하기 위한 상기 문자열의 길이를 증가 변경하는 단계; 및 상기 증가 변경된 문자열의 길이에 기반하여, 상기 갱신된 시그니쳐 목록에 저장된 시그니쳐가 모두 제거될 때까지 상기 그룹핑하는 동작을 반복 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 더 신속한 네트워크 침입 탐지가 가능하고, 악성 네트워크 트래픽을 조기에 탐지하고 차단할 수 있으며, 악성 네트워크 트래픽으로부터 발생할 수 있는 잠재적인 피해를 최소화 할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 침입 탐지 시스템을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 시그니쳐 검사 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 있어서, 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑하는 동작을 나타내는 흐름도이다.
도 4는 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 의해서 그룹핑된 시그니쳐를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 의한 인덱스 검사 결과 및 시그니쳐 검사 대상을 나타내는 도면이다.
도 6은 Snort의 여러 종류의 시그니쳐 목록 중 웹-콜드퓨전(Web-coldfusion) 시그니쳐 목록에 포함된 일부 시그니쳐에 대한 예시를 나타내는 도면이다(시그니쳐의 처음 15바이트만 표시함).
도 7은 본 발명의 일실시예에 따른 시그니쳐 검사 방법이 네트워크 패킷에 대하여 시그니쳐 검사를 수행하는 일례는 나타내는 도면이다.
이하에서, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 네트워크 침입 탐지 시스템을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 네트워크 칩입 탐지 시스템은 인덱싱 모듈(112) 및 패킷 검사 모듈(122)을 포함할 수 있다.
인덱싱 모듈(112)은, 네트워크 패킷(121)에 대하여 시그니쳐 검사를 수행하기 전 선처리(Preprocess) 과정(110)으로서, 시그니쳐 목록(111)에 포함된 복수 개의 시그니쳐에 대하여 인덱싱 공정을 수행할 수 있다. 이 때, 인덱싱이란 시그니쳐로부터 공통적으로 나타나는 문자열을 하나의 키워드(=인덱스)로 삼고, 해당 인덱스를 공유하는 시그니쳐를 하나의 그룹으로 묶는 과정을 나타낸다. 즉, 인덱싱 모듈은 가변 길이 인덱스를 생성하는 단계(113)를 수행하고, 인덱싱 결과(103)를 데이터베이스에 저장할 수 있다.
패킷 검사 모듈(122)은 선처리 과정에서 획득한 인덱싱 결과(103)를 기반으로 입력되는 네트워크 패킷(121)에 대한 검사를 수행하는 과정을 실시간으로 처리할 수 있다. 즉, 패킷 검사 모듈(122)은 인덱싱 결과(103)에 기반하여 네트워크 패킷(121)에 대하여 인덱스 검사 단계(123), 매칭 단계(124) 및 시그니쳐 검사 단계(125)를 수행하여 네트워크 패킷(121)에 대한 검사를 실시간으로 수행할 수 있다. 이 때, 기존의 시그니쳐 검사 방법에 비해 검사해야 하는 시그니쳐의 문자열 수가 비약적으로 감소하기 때문에 훨씬 효율적인 네트워크 패킷 검사가 가능하다.
이상 설명한, 네트워크 칩입 탐지 시스템이 시그니쳐를 검사하는 방법에 대해서는 이하 도 2 내지 도 5를 참조하여 상세히 설명한다.
도 2는 본 발명의 일실시예에 따른 시그니쳐 검사 방법을 나타내는 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 시그니쳐 검사 방법은, 시그니쳐 목록에 포함된 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑(Grouping)할 수 있다(210). 인덱스 별로 그룹핑하는 동작에 대해서는 도 3을 참조하여 뒤에서 다시 상세히 설명한다.
그룹핑이 완료되면, 시그니쳐 검사 방법은 시그니쳐 검사 대상이 되는 네트워크 패킷을 입력 받을 수 있다(220).
또한, 시그니쳐 검사 방법은 복수 개의 인덱스 중 네트워크 패킷의 내용과 일치하는 인덱스가 있는지 여부를 검색하는 인덱스 검사를 수행할 수 있다(230). 인덱스의 길이는 시그니쳐들의 길이에 비해 훨씬 작으며, 인덱스의 개수 또한 시그니쳐의 개수에 비해 훨씬 적으므로 인덱스 검사에 요구되는 연산 오버헤드를 감소시킬 수 있다. 연산량이 가장 많이 나올 수 있는 경우를 가정한다고 해도, 인덱스 중 가장 긴 길이의 인덱스가 N 바이트이고 인덱스의 전체 개수가 M개라고 하면 M*N 바이트의 문자열에 대해서만 검사를 수행하게 된다.
네트워크 패킷의 내용과 일치하는 인덱스가 있는 경우, 시그니쳐 검사 방법은 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐에 대하여 시그니쳐 검사를 수행할 수 있다(240). 이 때, 시그니쳐 검사는 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐 중 시그니쳐 목록에 포함된 복수 개의 시그니쳐와 일치하는 시그니쳐가 있는지 여부를 검색하는 동작을 나타낸다.
네트워크 패킷의 내용과 일치하는 인덱스가 없는 경우, 시그니쳐 검사 방법은 해당 인덱스 그룹에 속한 시그니쳐는 이후에도 검사할 필요가 없으므로 해당 인덱스 그룹에 속한 시그니쳐를 검사에서 완전히 제외할 수 있다.
예를 들어, J개의 인덱스가 시그니쳐 검사 대상에 속하고, 시그니쳐들의 평균 길이를 K, 그리고 인덱스 당 시그니쳐의 평균 개수(Signatures per Index)가 L이라고 가정한다면, 시그니쳐 검사 방법은 J*K*L 바이트의 문자열에 대해서만 검사를 수행할 수 있다. J*K*L 바이트의 문자열은 시그니쳐를 모두 검사하는 것보다 훨씬 적은 양이므로 패킷 검사에 소요되는 시간을 비약적으로 단축할 수 있다.
도 3은 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 있어서, 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑하는 동작을 나타내는 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 시그니쳐 검사 방법은, 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑하기 위하여, 복수 개의 시그니쳐 중 어느 하나의 시그니쳐를 선택할 수 있다(310). 예를 들어, 시그니쳐 검사 방법은 시그니쳐 목록 중 가장 위에 있는 시그니쳐를 선택할 수 있다.
시그니쳐가 선택되면, 시그니쳐 검사 방법은 선택된 시그니쳐의 미리 설정된 길이의 문자열을 후보 인덱스로 결정할 수 있다(320). 보다 자세히 설명하면, 시그니쳐 검사 방법은 선택된 시그니쳐 중에서 미리 설정된 길이 및 위치의 문자열을 추출하고, 추출된 문자열을 후보 인덱스로 결정할 수 있다. 예를 들어, 시그니쳐 검사 방법은 선택된 시그니쳐의 처음 n개의 문자열을 인덱스로 선별할 수 있다.
후보 인덱스가 결정되면, 시그니쳐 검사 방법은 복수 개의 시그니쳐 중 후보 인덱스를 포함하는 시그니쳐를 검색할 수 있다(330). 보다 자세히 설명하면, 시그니쳐 검사 방법은 시그니쳐 목록에 포함된 모든 시그니쳐들을 스캔(Scan)하여 후보 인덱스와 동일한 문자열을 갖고 있는 시그니쳐가 있는지 여부 및 그 개수를 검색할 수 있다.
또한, 시그니쳐 검사 방법은 후보 인덱스를 포함하는 시그니쳐로 검색된 개수가 미리 설정된 허용 범위 내인지 여부를 판단할 수 있다(340).
후보 인덱스를 포함하는 시그니쳐로 검색된 개수가 미리 설정된 허용 범위 내인 경우 - 시그니쳐의 개수의 최소값(MIN_COUNT) 및 최대값(MAX_COUNT) 사이를 만족하는 경우 -, 시그니쳐 검사 방법은 후보 인덱스를 포함하는 시그니쳐로 검색된 시그니쳐를 후보 인덱스에 대한 그룹에 저장할 수 있다(351). 또한, 시그니쳐 검사 방법은 검색된 시그니쳐를 시그니쳐 목록으로부터 제거하며(352), 후보 인덱스를 인덱스 검사에서 이용되는 인덱스로 결정할 수 있다(353).
검색된 시그니쳐의 개수가 허용 범위 밖인 경우, 시그니쳐 검사 방법은 검색된 시그니쳐를 오버사이즈드(Oversized) 시그니쳐 목록에 저장하고(361), 검색된 시그니쳐를 시그니쳐 목록으로부터 제거하며(362), 후보 인덱스를 인덱스 검사에서 이용되는 인덱스에서 제외할 수 있다(363).
이 때, 일실시예에 따른 시그니쳐 검사 방법은 시그니쳐 목록으로부터 복수 개의 시그니쳐가 모두 제거될 때까지 상술한 그룹핑 동작을 반복 수행할 수 있다(단계 310 내지 단계 370). 즉, 그룹핑 동작을 반복 수행하면서, 시그니쳐 검사 방법은 시그니쳐 목록에 포함된 시그니쳐가 모두 제거되었는지 여부를 판단할 수 있다(370).
그룹핑 동작을 반복 수행하여 시그니쳐 목록으로부터 복수 개의 시그니쳐가 모두 제거되면, 시그니쳐 검사 방법은 오버사이즈드 시그니쳐 목록에 저장된 시그니쳐를 시그니쳐 목록에 저장하여 시그니쳐 목록을 갱신할 수 있다(381).
또한, 시그니쳐 검사 방법은 후보 인덱스를 결정하기 위한 문자열의 길이를 증가 변경할 수 있다(382). 예를 들어, 시그니쳐 검사 방법은 문자열의 길이를 처음 n개로부터 처음 n+1개로 증가시킬 수 있다.
또한, 시그니쳐 검사 방법은 갱신된 시그니쳐 목록에 시그니쳐가 포함되어 있는지 여부를 판단할 수 있다(390).
갱신된 시그니쳐 목록에 시그니쳐가 포함되어 있지 않은 경우, 시그니쳐 검사 방법은 그룹핑 동작을 중단할 수 있다. 또한, 갱신된 시그니쳐 목록에 시그니쳐가 포함되어 있는 경우, 시그니쳐 검사 방법은 증가 변경된 문자열의 길이에 기반하여, 갱신된 시그니쳐 목록에 저장된 시그니쳐가 모두 제거될 때까지 그룹핑하는 동작(단계 310 내지 단계 370)을 반복 수행할 수 있다.
따라서, 시그니쳐 검사 방법은 인덱스의 길이가 최대 가능 인덱스의 길이(MAX_INDEX_LENGTH)가 될 때까지 그룹핑 동작을 반복 수행할 수 있다. 인덱스의 길이가 최대 가능 인덱스 길이가 될 때까지도 시그니쳐 목록에 남아있는 시그니쳐들이 있는 경우, 시그니쳐 검사 방법은 가능한 최대 길이의 인덱스를 사용하여 인덱싱을 마무리할 수 있다.
도 4는 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 의해서 그룹핑된 시그니쳐를 나타내는 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 시그니쳐 검사 방법은 도 3에서 설명한 그룹핑 동작(인덱싱 동작)을 수행함으로써, 시그니쳐 목록에 포함되어 있는 복수 개의 시그니쳐(420)를 복수 개의 인덱스(410) 각각에 대응하는 그룹으로 인덱싱할 수 있다. 예를 들어, 인덱스 1(411)에 대한 그룹에 포함되는 시그니처들(421)은 인덱스 1(411)을 공통으로 포함하고 있는 시그니쳐들일 수 있다.
도 5는 본 발명의 일실시예에 따른 시그니쳐 검사 방법에 의한 인덱스 검사 결과 및 시그니쳐 검사 대상을 나타내는 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 시그니쳐 검사 방법은 복수 개의 인덱스(510) 중 입력되는 네트워크 패킷의 내용과 일치하는 인덱스가 있는지 여부를 검색할 수 있다. 예를 들어, 네트워크 패킷에 인덱스 2(511), 인덱스 N-3(512) 및 인덱스 N-1(513)이 포함되어 있는 경우, 시그니쳐 검사 방법은 인덱스 2(511), 인덱스 N-3(512) 및 인덱스 N-1(513) 각각에 대한 그룹에 포함되어 있는 시그니쳐들에 대하여 시그니쳐 검사를 수행할 수 있다. 즉, 시그니쳐 검사 방법은 (1) 인덱스 2(511)에 대한 그룹에 포함되어 있는 시그니쳐(521)에 대하여 시그니쳐 검사를 수행하며, (2) 인덱스 N-3(512)에 대한 그룹에 포함되어 있는 시그니쳐(522)에 대하여 시그니쳐 검사를 수행하고, (3) 인덱스 N-1(513)에 대한 그룹에 포함되어 있는 시그니쳐(523)에 대하여 시그니쳐 검사를 수행할 수 있다.
이하, 도 6 및 도 7을 참조하여, 본 발명의 일실시예에 따른 시그니쳐 검사 방법의 동작의 일례를 설명한다.
도 6은 Snort의 여러 종류의 시그니쳐 목록 중 웹-콜드퓨전(Web-coldfusion) 시그니쳐 목록에 포함된 일부 시그니쳐에 대한 예시를 나타내는 도면이다(시그니쳐의 처음 15바이트만 표시함).
도 6을 참조하면, 인덱싱 과정에서 초기 인덱스의 크기가 3이고, 가능한 인덱스의 최대 길이가 10, 최소/최대 인덱스 당 시그니쳐 개수(Signatures per Index)는 각각 1과 3이라고 가정할 때, 시그니쳐 검사 방법은 시그니쳐 목록(610)에 포함된 시그니쳐 중 가장 첫 번째 시그니쳐인 시그니쳐 (1)(611)에서 처음 3바이트의 문자열 /ap(621)를 선택하고 동일한 문자열을 가지는 시그니쳐가 있는지 검색할 수 있다.
도 6의 시그니쳐 목록(610)에서는 오직 시그니쳐 (1)(611)만 /ap(621) 문자열을 포함하므로, 시그니쳐 검사 방법은 /ap(621) 문자열을 인덱스로 확정할 수 있으며, 시그니쳐 (1)(611)은 시그니쳐 목록(610)으로부터 제외할 수 있다.
그 다음 시그니쳐인 시그니쳐 (2)(612)에서의 처음 3바이트의 문자열인 /cf는 시그니쳐 (2) 부터 (9)까지 모두 8개의 시그니쳐에 나타나는데, 최대 인덱스 당 시그니쳐 개수를 3으로 제한하였으므로 이 조건에 부합하지 않게 된다. 따라서 시그니쳐 검사 방법은 문자열 /cf은 인덱스로 확정하지 않고(즉, 인덱스 검사에서 이용되는 인덱스에서 제외하고), 이 문자열로 시작하는 시그니쳐 (2)부터 (9)까지는 오버사이즈드 시그니쳐 목록으로 이동시킬 수 있다. 이와 같은 방법으로 시그니쳐 (20)까지 계속 인덱싱을 시도하고, 이 과정에서 문자열 /ap(621), /on, CF_, CFA, CFN이 인덱스로 선택되며, 시그니쳐 (1) 과 시그니쳐 (10) 부터 (16) 까지가 각각 인덱스에 맞게 연결되면서 시그니쳐 목록(610)에서 제외될 수 있다.
조건에 맞지 않는 시그니쳐들도 모두 오버사이즈드 시그니쳐 목록으로 이동되었으므로, 이제 더 이상 원래 목록에는 아무런 시그니쳐도 남아있지 않게 된다. 따라서 시그니쳐 검사 방법은 새롭게 오버사이즈드 시그니쳐 리스트로부터 시그니쳐 리스트를 불러오며, 인덱스의 길이를 4로 늘려서 위와 동일한 과정을 수행할 수 있다.
이러한 과정을 계속 반복하여 인덱싱이 종료되면 모두 13개의 인덱스가 생성되고, 그 중 길이가 3인 인덱스 5개(/ap, /on, CF_, CFA, CFN), 길이가 4인 인덱스 3개(/cfa(622), /cfc, /cfi) 그리고 길이가 9인 인덱스 5개(/cfdocs/e, /cfdocs/s, CFUSION_D, CFUSION_E, CFUSION_G)가 생성될 수 있다. 이 -, 인덱싱된 시그니쳐(630)는 인덱싱이 종료되어 생성된 인덱스(620) 각각에 대한 그룹을 나타낸다.
도 7은 본 발명의 일실시예에 따른 시그니쳐 검사 방법이 네트워크 패킷에 대하여 시그니쳐 검사를 수행하는 일례는 나타내는 도면이다.
도 7을 참조하면, 시그니쳐 검사 방법은 인덱싱을 완료하고 실제 패킷 검사에서는 우선 인덱스 검사를 수행할 수 있다.
인덱스 검사 과정 중 네트워크 패킷 패이로드(Payload)(710) 내에서 만약 /ap, /cfdocs/s, CFA 그리고 CFUSION_D라는 문자열이 발견되면 해당 인덱스(720)와 연결된 시그니쳐(730)에 대해서만 시그니쳐 검사를 수행할 수 있다.
도 6 및 도 7에서 설명한 예시를 기준으로, 만약 인덱싱을 적용하지 않고 모든 시그니쳐를 검사하였다면 모두 536바이트의 문자열을 검사해야 하지만, 도 7에 나타난 것과 같이 본 발명의 일실시예에 따른 시그니쳐 검사 방법은 254바이트의 문자열만 검사하면 되므로 전체의 약 47%에 해당하는 문자열만 검사할 수 있고, 따라서 패킷 검사에 걸리는 시간을 단축시킬 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
112: 인덱싱 모듈
122: 패킷 검사 모듈

Claims (7)

  1. 시그니쳐 목록에 포함된 복수 개의 시그니쳐를 복수 개의 인덱스 별로 그룹핑(Grouping)하는 단계;
    시그니쳐 검사 대상이 되는 네트워크 패킷을 입력 받는 단계;
    상기 복수 개의 인덱스 중 상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는지 여부를 검색하는 인덱스 검사를 수행하는 단계; 및
    상기 네트워크 패킷의 내용과 일치하는 인덱스가 있는 경우, 상기 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐에 대하여 시그니쳐 검사를 수행하는 단계
    를 포함하고,
    상기 그룹핑하는 단계는
    상기 복수 개의 시그니쳐 중 어느 하나의 시그니쳐를 선택하는 단계;
    상기 선택된 시그니쳐의 미리 설정된 길이의 문자열을 후보 인덱스로 결정하는 단계;
    상기 복수 개의 시그니쳐 중 상기 후보 인덱스를 포함하는 시그니쳐를 검색하는 단계; 및
    상기 검색된 시그니쳐의 개수가 미리 설정된 허용 범위 내인 경우, 상기 검색된 시그니쳐를 상기 후보 인덱스에 대한 그룹에 저장하고, 상기 검색된 시그니쳐를 상기 시그니쳐 목록으로부터 제거하며, 상기 후보 인덱스를 상기 인덱스 검사에서 이용되는 인덱스로 결정하는 단계
    를 포함하는 시그니쳐 검사 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 그룹핑하는 단계는
    상기 검색된 시그니쳐의 개수가 상기 허용 범위 밖인 경우, 상기 검색된 시그니쳐를 오버사이즈드 시그니쳐 목록에 저장하고, 상기 검색된 시그니쳐를 상기 시그니쳐 목록으로부터 제거하며, 상기 후보 인덱스를 상기 인덱스 검사에서 이용되는 인덱스에서 제외하는 단계
    를 더 포함하는 시그니쳐 검사 방법.
  4. 제3항에 있어서,
    상기 그룹핑하는 단계는
    상기 시그니쳐 목록으로부터 상기 복수 개의 시그니쳐가 모두 제거될 때까지 상기 그룹핑하는 동작을 반복 수행하는 단계
    를 더 포함하는 시그니쳐 검사 방법.
  5. 제4항에 있어서,
    상기 그룹핑하는 단계는
    상기 시그니쳐 목록으로부터 상기 복수 개의 시그니쳐가 모두 제거되면, 상기 오버사이즈드 시그니쳐 목록에 저장된 시그니쳐를 상기 시그니쳐 목록에 저장하여 상기 시그니쳐 목록을 갱신하는 단계;
    상기 후보 인덱스를 결정하기 위한 상기 문자열의 길이를 증가 변경하는 단계; 및
    상기 증가 변경된 문자열의 길이에 기반하여, 상기 갱신된 시그니쳐 목록에 저장된 시그니쳐가 모두 제거될 때까지 상기 그룹핑하는 동작을 반복 수행하는 단계
    를 더 포함하는 시그니쳐 검사 방법.
  6. 제1항에 있어서,
    상기 시그니쳐 검사를 수행하는 단계는
    상기 네트워크 패킷의 내용과 일치하는 인덱스에 대한 그룹에 포함된 시그니쳐 중 상기 시그니쳐 목록에 포함된 복수 개의 시그니쳐와 일치하는 시그니쳐가 있는지 여부를 검색하는
    시그니쳐 검사 방법.
  7. 제1항 또는 제3항 내지 제6항 중 어느 한 항의 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020110144788A 2011-12-28 2011-12-28 시그니쳐 검사 방법 KR101270339B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110144788A KR101270339B1 (ko) 2011-12-28 2011-12-28 시그니쳐 검사 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110144788A KR101270339B1 (ko) 2011-12-28 2011-12-28 시그니쳐 검사 방법

Publications (1)

Publication Number Publication Date
KR101270339B1 true KR101270339B1 (ko) 2013-05-31

Family

ID=48667331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110144788A KR101270339B1 (ko) 2011-12-28 2011-12-28 시그니쳐 검사 방법

Country Status (1)

Country Link
KR (1) KR101270339B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809416B1 (ko) * 2006-07-28 2008-03-05 한국전자통신연구원 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809416B1 (ko) * 2006-07-28 2008-03-05 한국전자통신연구원 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법

Similar Documents

Publication Publication Date Title
US10200391B2 (en) Detection of malware in derived pattern space
US11546372B2 (en) Method, system, and apparatus for monitoring network traffic and generating summary
EP2924943B1 (en) Virus detection method and device
US10225269B2 (en) Method and apparatus for detecting network attacks and generating attack signatures based on signature merging
US11647032B2 (en) Apparatus and method for classifying attack groups
US20180121544A1 (en) Apparatus and method for enhancing regular expression search performance through cost-based optimization technique
JP6557334B2 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
CN106062740B (zh) 生成多个索引数据字段的方法和装置
EP3905084A1 (en) Method and device for detecting malware
US10255436B2 (en) Creating rules describing malicious files based on file properties
KR100770357B1 (ko) 시그너처 해싱을 이용하여 시그너처 매칭 회수를 줄이는고성능 침입 방지 시스템 및 그 방법
CN105635170A (zh) 基于规则对网络数据包进行识别的方法和装置
CN111585989A (zh) 联网工控设备的漏洞检测方法、装置和计算机设备
US9374383B2 (en) Events from network flows
CN116915450A (zh) 基于多步网络攻击识别和场景重构的拓扑剪枝优化方法
Weng et al. Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system
CN112054992B (zh) 恶意流量识别方法、装置、电子设备及存储介质
KR101322037B1 (ko) N-그램 모델에 기반한 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
CN112351002B (zh) 一种报文检测方法、装置及设备
KR101270339B1 (ko) 시그니쳐 검사 방법
US11025650B2 (en) Multi-pattern policy detection system and method
Wang et al. High performance pattern matching algorithm for network security
KR101270402B1 (ko) 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
KR101548378B1 (ko) 행위 시그니쳐 생성 시스템 및 그 방법, 그리고 상기 시스템을 포함하는 네트워크 트래픽 분석 시스템 및 그 방법
US20120005206A1 (en) Apparatus and method for analysis of data traffic

Legal Events

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

Payment date: 20160418

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee