KR101537996B1 - 트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법 - Google Patents

트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법 Download PDF

Info

Publication number
KR101537996B1
KR101537996B1 KR1020130096273A KR20130096273A KR101537996B1 KR 101537996 B1 KR101537996 B1 KR 101537996B1 KR 1020130096273 A KR1020130096273 A KR 1020130096273A KR 20130096273 A KR20130096273 A KR 20130096273A KR 101537996 B1 KR101537996 B1 KR 101537996B1
Authority
KR
South Korea
Prior art keywords
string
packets
cpu
unit
gpu
Prior art date
Application number
KR1020130096273A
Other languages
English (en)
Other versions
KR20140049926A (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 US14/053,655 priority Critical patent/US9342366B2/en
Publication of KR20140049926A publication Critical patent/KR20140049926A/ko
Application granted granted Critical
Publication of KR101537996B1 publication Critical patent/KR101537996B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법에 관한 것으로, 다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장하는 패킷 포착부; 상기 패킷 포착부에 저장된 상기 패킷들의 개수를 파악하여 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 문자열 검토 작업 분배부; 상기 CPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 CPU 문자열 검토부; 및 상기 GPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 GPU 문자열 검토부;를 포함한다.

Description

트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법{APPARATUS AND METHOD FOR INTRUSION DETECTION WITH TRAFFIC CONDITION LOAD BALANCER BETWEEN CPU AND GPU }
본 발명은 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법에 관한 것으로, 보다 자세하게는 트래픽 상황에 따라 성능과 전력 소모량을 고려하여 침입 탐지를 위한 작업을 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)에서 분배하는 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법에 관한 것이다.
기존 범용 운영체제는 고속 패킷 입출력에 효율적이지 못한 구조로 되어 있어 패킷 누수가 발생하여 전체 트래픽에 대해 침입 탐지를 수행하는 데 한계가 있었다. 또한 정규 표현식을 이용한 패킷 검토에는 계산 능력과 메모리 대역폭이 많이 소요되어 FPGA(Field Programmable Gate Array)와 같은 특별한 하드웨어를 이용한 방법이 사용되기도 하였다. 그러나 이는 전용 하드웨어를 장착해야 하므로 비용이 많이 들며 동적으로 탐지규칙을 추가하거나 삭제하는데 어려움이 있었다. 이후 고성능 하드웨어들이 출시되면서 고속 패킷을 처리하기 위해 10Gbps 이상의 고속 NIC카드, 멀티코어 중앙 처리 장치와 메니코어 그래픽 처리 장치를 이용하는 소프트웨어 기반의 방법들이 제시되고 있다. 그러나 그래픽 처리 장치 사용으로 인한 전력 소모 증가 문제나 그래픽 처리 장치로의 데이터 전송 시 소요되는 부하 문제를 고려하지 않은 방법을 사용하거나, 다량의 패킷들을 동시에 일괄처리할 때 특정 단위의 패킷들을 모두 수신한 후 후속 작업을 수행하여 수신 대기로 인한 전체 시스템의 성능 감소 우려가 있는 방법을 사용하는 문제가 있었다.
관련하여, 한국공개특허 2011-0071817호 “트래픽 제어 장치 및 방법”에 관하 기술을 개시하고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 발명된 것으로서, 트래픽 상황에 따라 성능과 전력 소모량을 고려하여 침입 탐지를 위한 패킷들의 문자열 검사 작업을 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)가 분배하여 수행하는 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 패킷들의 개수를 토대로 하여 패킷들의 문자열 검사 작업을 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU) 중 어느 하나에 분배하는 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 침입 탐지 장치는 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치에 있어서, 다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장하는 패킷 포착부; 상기 패킷 포착부에 저장된 상기 패킷들의 개수를 파악하여 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 문자열 검토 작업 분배부; 상기 CPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 CPU 문자열 검토부; 및 상기 GPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 GPU 문자열 검토부;를 포함한다.
또한, 상기 문자열 검토 작업 분배부는, 상기 패킷들의 개수를 파악하는 패킷 개수 파악부; 및 상기 패킷들의 개수를 토대로 하여, 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 분배 결정부;를 포함하는 것을 특징으로 한다.
또한, 상기 분배 결정부는, 상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 임계치 판단부; 및 상기 임계치 범위를 토대로, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 분배 개수 판단부;를 포함하는 것을 특징으로 한다.
또한, 상기 임계치 판단부는, 상기 패킷들의 개수를 로우(LOW), 미들(MID) 및 하이(HI) 임계치 범위로 구분하고, 상기 패킷들이 유입되기 시작하는 경우에 상기 패킷들의 개수가 디폴트(0)에서 상기 미들 사이에 해당하면 제1 임계치 범위 및 상기 미들에서 상기 하이 사이에 해당하면 제2 임계치 범위, 상기 하이(HI) 이상에 해당하면 제3 임계치 범위 그리고 상기 패킷들이 분배되기 시작하는 경우에 상기 패킷들의 개수가 상기 하이 이상에서 상기 미들 사이에 해당하면 제4 임계치 범위, 상기 미들에서 상기 로우 사이에 해당하면 제5 임계치 범위 및 상기 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위에 해당하는지 판단하는 것을 특징으로 한다.
또한, 상기 임계치 판단부는, 상기 문자열 검사 작업을 상기 제1 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하고, 상기 제2 임계치 범위, 상기 제3 임계치 범위, 상기 제4 임계치 범위 및 제5 임계치 범위에서는 상기 GPU 문자열 검토부에 분배하도록 결정하고, 상기 제6 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하는 것을 특징으로 한다.
또한, 상기 분배 개수 판단부는, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값)으로 구분하고, 상기 제1 임계치 범위에서는 상기 A로 결정하고 상기 제2 임계치 범위에서는 상기 B로 결정하고, 상기 제3 임계치 범위 및 제4 임계치 범위에서는 상기 C로 결정하고, 상기 제5 임계치 범위에서는 상기 B로 결정하고, 상기 제6 임계치 범위에서는 상기 A로 결정하는 것을 특징으로 한다.
또한, 상기 탐지규칙은 패킷에 포함된 필드 중 소정의 필드들을 검사하는 항목을 정의하고, 정의된 검사항목의 검사 순서 및 검사 조건을 정의한 적어도 하나 이상의 침입 탐지를 위한 규칙인 것을 특징으로 한다.
또한, 상기 CPU 문자열 검토부 및 GPU 문자열 검토부는 상기 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 상기 패킷들의 문자열에 대해 패턴 매칭을 수행하는 것을 특징으로 하는 한다.
또한, 상기 CPU는 상기 CPU 문자열 검토부 및 GPU 문자열 검토부로부터 상기 문자열 검사 작업이 완료된 상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 부가규칙 평가부;를 더 포함하는 것을 특징으로 한다.
그리고 상기 CPU는 상기 GPU와의 통신을 수행하는 CPU 통신부를 더 포함하는 것을 특징으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 침입 탐지 방법은 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 방법에 있어서, 패킷 포착부에 의해, 다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장하는 단계; 문자열 검토 작업 분배부에 의해, 상기 패킷 포착부에 저장된 상기 패킷들의 개수를 파악하여 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 단계;상기 CPU 내에서 CPU 문자열 검토부에 의해, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계; 및 상기 GPU 내에서 GPU 문자열 검토부에 의해, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 단계는, 상기 패킷들의 개수를 파악하는 단계; 및 상기 패킷들의 개수를 토대로 하여, 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 패킷들의 개수를 토대로 하여, 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계는, 상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계; 및 상기 임계치 범위를 토대로, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계는, 상기 패킷들의 개수를 로우(LOW), 미들(MID) 및 하이(HI) 임계치 범위로 구분하고, 상기 패킷들이 유입되기 시작하는 경우에 상기 패킷들의 개수가 디폴트(0)에서 상기 미들 사이에 해당하면 제1 임계치 범위 및 상기 미들에서 상기 하이 사이에 해당하면 제2 임계치 범위, 상기 하이(HI) 이상에 해당하면 제3 임계치 범위 그리고 상기 패킷들이 분배되기 시작하는 경우에 상기 패킷들의 개수가 상기 하이에서 상기 미들 사이에 해당하면 제4 임계치 범위, 상기 미들에서 상기 로우 사이에 해당하면 제5 임계치 범위 및 상기 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위에 해당하는지 판단하는 것을 특징으로 한다.
또한, 상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계; 상기 문자열 검사 작업을 상기 제1 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하고, 상기 제2 임계치 범위, 상기 제3 임계치 범위, 상기 제4 임계치 범위 및 제5 임계치 범위에서는 상기 GPU 문자열 검토부에 분배하도록 결정하고, 상기 제6 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하는 것을 특징으로 한다.
또한, 상기 임계치 범위를 토대로, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계; 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값)으로 구분하고, 상기 제1 임계치 범위에서는 상기 A로 결정하고 상기 제2 임계치 범위에서는 상기 B로 결정하고, 상기 제3 임계치 범위 및 제4 임계치 범위에서는 상기 C로 결정하고, 상기 제5임계치 범위에서는 상기 B로 결정하고, 상기 제6 임계치 범위에서는 상기 A로 결정하는 것을 특징으로 한다.
또한, 상기 CPU 또는 GPU내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계는, 상기 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 상기 패킷들의 문자열에 대해 패턴 매칭을 수행하는 것을 특징으로 한다.
또한, 상기 CPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계 이후에, 상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 상기 GPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계 이후에, 상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 단계;를 더 포함하는 것을 특징으로 한다.
상기와 같은 구성을 갖는 본 발명에 의한 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법은 트래픽 상황에 따라 부하 및 전력 소모량을 고려하여 침입 탐지를 위한 패킷들의 문자열 검사 작업을 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)가 분배하여 수행함으로써, 중앙 처리 장치에 집중되는 부하를 분산시킬 수 있는 효과가 있다.
또한, 본 발명은 패킷들의 문자열 검사 작업 분배와 분배되는 패킷의 개수를 동적으로 결정함으로써, 패킷의 누수 없이 침입 탐지를 빠르고 효율적으로 수행할 수 있는 효과가 있다.
또한, 본 발명은 백본과 같은 네트워크 환경에서 메모리 사용 효율을 높이고 발열로 인한 시스템 안정성 저해 요소를 제거하면서 고속 패킷을 처리할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 침입 탐지 장치의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 문자열 검토 작업 분배부의 세부 구성을 설명하기 위한 도면이다.
도 3 및 도 4는 본 발명의 실시예에 따른 분배 결정부의 세부 구성을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 침입 탐지 방법의 순서를 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 문자열 검사 작업을 분배하는 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 실시예에 따른 문자열 검사 작업 분배 방법에서 문자열 검사 작업의 분배를 결정하고, 한번에 분배되는 패킷들의 개수를 결정하는 방법을 설명하기 위한 순서도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선, 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 출력되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서는, 본 발명의 실시예에 따른 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법에 대하여 첨부된 도면을 참고로 하여 상세히 설명한다.
본 발명에 따른 CPU(100) 즉, 중앙 처리 장치는 다수의 코어로 구성되어 있으며 멀티 쓰레드를 지원한다. 즉, 각 코어당 하나의 쓰레드를 사용하고 네트워크 인터페이스(10)와 연결되는 수신큐(11)로부터 유입되는 패킷들을 대상으로 저장, 문자열 검사, 부가규칙 검사를 수행할 수 있다. 그리고 CPU(100)의 네트워크 인터페이스(10)는 NIC 장치의 각 포트에 할당되며 고속 패킷을 수신하기 위해 다수의 수신큐와 연결된다. 따라서, 대용량의 패킷을 수신하기 위해 각 코어에 할당된 쓰레드는 서로 다른 NIC에 할당된 수신큐에 있는 배치 단위의 다수 패킷들을 동시에 가져올 수 있어 하나의 플로우에 속한 패킷들은 모두 동일한 코어에서 처리할 수 있게 된다.
그리고 GPU(200) 즉, 그래픽 처리 장치는 중앙 처리 장치의 부하를 분산시키기 위해 사용되며, 코어수가 많고 메모리 대역폭이 놓은 고성능 그래픽 처리 장치는 계산 부하가 많이 걸리는 작업이나 메모리 접근이 수시로 발생하는 연산에 적합한 문자열 검사를 수행할 수 있다. 즉, 본 발명은 패킷의 길이가 작거나 작업큐에 포함된 패킷 개수가 적어 CPU(100)만으로 처리하는 효율이 높은 경우 또는 CPU(100)만으로도 처리 효율이 높은 경우에는 GPU(200)를 사용하지 않을 수 있다,
도 1은 본 발명의 실시예에 따른 침입 탐지 장치의 구성을 설명하기 위한 도면이다.
도 1을 참조하여 설명하면, 본 발명에 따른 침입 탐지 장치는 크게 패킷 포착부(110), 문자열 검토 작업 분배부(120), CPU 문자열 검토부(130), 부가규칙 평가부(140), CPU 통신부(150) 및 GPU 문자열 검토부(210)를 포함한다. 이때, 저장부(110), 문자열 검토 작업 분배부(120), CPU 문자열 검토부(130), 부가규칙 평가부(140), CPU 통신부(150)는 CPU(100) 에 속하고, GPU 문자열 검토부(210)는 GPU(200)에 속한다.
패킷 포착부(110)는 다수의 수신 큐로부터 유입되는 패킷들을 저장한다. 즉, 패킷 포착부(110)는 네트워크 인터페이스에서 침입 탐지 장치로 패킷들을 가져오는 역할을 한다.
그리고 패킷 포착부(110)는 다량의 패킷들을 동시에 처리할 수 있도록 다수의 수신큐(11)에 있는 패킷들을 각 쓰레드에 할당된 작업큐에 저장한다. 즉, 패킷 포착부(110)는 하나의 플로우에 속한 패킷들을 동일한 작업큐에서 처리하도록 한다.
문자열 검토 작업 분배부(120)는 패킷 포착부(110)에 저장된 패킷들의 개수를 파악하여 패킷들의 문자열 검사 작업을 CPU(100)의 CPU 문자열 검토부(130) 또는 GPU(200)의 GPU 문자열 검토부(210)에 분배한다. 문자열 검토 작업 분배부(120)는 부하 및 전력 소모를 고려하여 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 패킷들의 문자열 검사 작업을 분배해주는 역할로 이에 대해서는 이후 설명되는 도 2 내지 도 4에서 자세하게 설명하기로 한다.
CPU 문자열 검토부(130)는 CPU(100) 내에서 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행한다. CPU 문자열 검토부(130)는 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 패킷들의 문자열에 대해 패턴 매칭을 수행한다. 이때, 탐지규칙은 패킷에 포함된 필드 중 소정의 필드들을 검사하는 항목을 정의하고, 정의된 검사항목의 검사 순서 및 검사 조건을 정의한 적어도 하나 이상의 침입 탐지를 위한 규칙을 의미한다.
침임 탐지를 위한 패킷의 필드는 헤더라고 불리는 주소 및 기타 제어 정보가 들어있는 부분과 실제 사용자 데이터가 들어있는 페이로드 부분으로 나누어지는데, 본 발명에 따른 침임 탐지 장치는 패킷의 페이로드에 침입 탐지로 판단되는 특정 문자열이 포함되어 있는지를 단순 문자열 또는 정규 표현식과 같은 패턴 매칭 방법으로 검사한다.
부가규칙 평가부(140)는 문자열 검사가 완료된 패킷들에 대해 부가규칙에 대한 검사를 수행한다. 부가규칙 평가부(140)는 앞서 CPU 문자열 검토부(130)로부터 문자열 검사가 완료된 패킷들에 대해 문자열 검사 작업 이외의 탐지규칙에 존재하는 검사 항목 즉, 부가규칙을 검사한다. 또한, 부가규칙 평가부(140)는 CPU 통신부(150)를 통해 GPU 문자열 검토부(210)로부터 문자열 검사가 완료된 패킷들을 전달받아 부가규칙을 검사한다.
CPU 통신부(150)는 CPU(100)와 GPU(200) 간의 통신을 수행한다. CPU 통신부(150)는 문자열 검토 작업 분배부(120)에서 문자열 검토 작업을 GPU(200)에 분배하는 GPU(200)에 패킷들을 전달하고, GPU 문자열 검토부(210)의 검사 결과를 수신하여 부가규칙 평가부(140)에 전달하여, 부가규칙 검사가 수행될 수 있도록 한다.
GPU 문자열 검토부(210)는 GPU(200) 내에서, 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행한다. GPU 문자열 검토부(210)는 CPU 문자열 검토부(130)와 동일하게 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 패킷들의 문자열에 대해 패턴 매칭을 수행한다.
도 2는 본 발명의 실시예에 따른 문자열 검토 작업 분배부의 세부 구성을 설명하기 위한 도면이다.
도 2를 참조하여 설명하면, 본 발명에 따른 문자열 검토 작업 분배부(120)는 패킷 포착부(110)에 저장된 패킷들의 개수를 파악하여 패킷들의 문자열 검사 작업을 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배한다.
이를 위해, 문자열 검토 작업 분배부(120)는 패킷 개수 파악부(121) 및 분배 결정부(122)를 포함한다.
패킷 개수 파악부(121)는 패킷 포착부(110)에 저장된 패킷들의 개수를 파악한다.
분배 결정부(122)는 파악된 패킷들의 개수를 토대로 하여, 패킷들의 개수가 적은 경우 CPU 문자열 검토부(130)에 문자열 검사 작업을 분배하고, 패킷들의 개수가 많은 경우 GPU 문자열 검토부(210)에 문자열 검사 작업을 분배한 다음, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 한번에 분배되는 패킷들의 개수를 결정한다.
즉, 분배 결정부(122)는 패킷들의 개수가 많지 않아 패킷 누수 없이 처리가 가능할 경우 CPU(100)를 사용하고, 연산 능력을 필요로 하거나 메모리 접근이 빈번히 발생하는 작업을 수행할 경우 또는 패킷 포착부(110) 안에 처리할 패킷들의 개수가 많은 경우 GPU(200)를 사용하도록 한다. 이에 대해서는 이후 설명되는 도 3 및 도 4에서 자세하게 설명하기로 한다.
도 3 및 도 4는 본 발명의 실시에에 따른 분배 결정부의 세부 구성을 설명하기 위한 도면이다.
도 3을 참조하여 설명하면, 본 발명에 따른 분배 결정부(122)는 파악된 패킷들의 개수를 토대로 하여, 패킷들의 개수가 적은 경우 CPU 문자열 검토부(130)에 문자열 검사 작업을 분배하고, 패킷들의 개수가 많은 경우 GPU 문자열 검토부(210)에 문자열 검사 작업을 분배한 다음, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 한번에 분배되는 패킷들의 개수를 결정한다.
이를 위해, 분배 결정부(122)는 임계치 판단부(123) 및 분배 개수 판단부(124)를 포함한다.
임계치 판단부(123)는 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 문자열 검사 작업을 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배할지를 결정한다.
임계치 판단부(123)는 패킷들의 개수를 로우(LOW), 미들(MID) 및 하이(HI) 임계치 범위로 구분한다. 이때, 실제 네트워크에서는 유입되는 패킷 개수가 일정하지 않고 한번에 수신할 수 있는 패킷 개수보다 적게 들어오는 경우가 많다 많다. 따라서, 로우(LOW), 미들(MID) 및 하이(HI) 임계치 값은 시스템 성능에 따라 다르게 설정될 수 있다. 예를 들어, 패킷 포착부(110)에서 수신가능한 패킷개수의 최대크기를 Max라고 할 때, 로우, 미들, 하이 임계치 값을 Max * 0.1, Max * 0.75, Max * 0.9로 각각 설정할 수 있다.
그리고 임계치 판단부(123)는 패킷들의 개수를 임계치 값을 토대로 기 설정된 제1 임계치 범위 내지 제6 임계치 범위 중 어느 하나의 범위에 해당하는지 판단한다.
즉, 임계치 판단부(123)는 도 4에 도시된 바와 같이 패킷 개수가 증가하면서 유입되기 시작하는 경우에 패킷들의 개수가 디폴트(0)에서 미들 사이에 해당하면 제1 임계치 범위(Ⅰ), 미들에서 하이 사이에 해당하면 제2 임계치 범위(Ⅱ), 하이 이상에 해당하면 제3 임계치 범위(Ⅲ) 그리고 처리할 패킷 개수가 점차 감소할 경우 패킷들의 개수가 하이 이상에서 미들 사이에 해당하면 제4 임계치 범위(Ⅳ), 미들에서 로우 사이에 해당하면 제5 임계치 범위(Ⅴ) 및 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위(Ⅵ)에 해당하는 것으로 판단한다. 이와 같이 처리할 패킷 개수가 점차 감소할 경우 임계치 범위가 HI에서 바뀌지 않고 MID에서 변경되는 것은 패턴매칭을 수행하는 주체(CPU 혹은 GPU)가 자주 변경되는 것을 방지하기 위함이다.
또한, 임계치 판단부(123)는 문자열 검사 작업을 제1 임계치 범위(Ⅰ)에서는 CPU 문자열 검토부(130)에 분배하도록 결정하고, 제2 임계치 범위(Ⅱ), 제3 임계치 범위(Ⅲ), 제4 임계치 범위(Ⅳ) 및 제5 임계치 범위(Ⅴ)에서는 GPU 문자열 검토부(210)에 분배하도록 결정하고, 제6 임계치 범위(Ⅵ)에서는 CPU 문자열 검토부(130)에 분배하도록 결정한다.
분배 개수 판단부(124)는 판단된 임계치 범위를 토대로, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 한번에 분배되는 패킷들의 개수를 결정한다.
분배 개수 판단부(124)는 도 4에 도시된 바와 같이, 임계치 판단부에서 결정된 장치(DEV) 즉, CPU(100)의 CPU 문자열 검토부(130) 또는 GPU(200)의 GPU 문자열 검토부(210)를 토대로, CPU(100)의 CPU 문자열 검토부(130)에 분배되는 패킷의 개수 X, GPU(200)의 GPU 문자열 검토부(210)에 분배되는 패킷 개수 Y를 결정한다. 이때, X의 초기값은 A이며, Y의 초기값은 0으로 본 발명은 CPU(100)를 기본으로 사용한다.
분배 개수 판단부(124)는 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 한번에 분배되는 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값)으로 구분한다. 이때, C는 CPU(100)의 메모리에서 오버플로가 발생하지 않는 최대값으로 결정되며, B는 패킷 처리 성능을 높이기 위해 C보다 작은 값으로 결정되고, A는 B보다 작은 값으로 결정된다. 따라서, C는 CPU(100)의 캐쉬에서 오버플로우 발생을 최소화시키면서 최대로 가져갈 수 있는 크기로 정하고, B는 처리 장치 코어의 개수를 고려하여 정하며 예로 C의 반 정도 크기로 정할 수 있으며, B는 한 번에 가져갈 수 있는 최대값인 C보다 약간 작은 값으로 설정할 수 있고, A,B 및 C는 시스템 성능에 따라 다르게 설정될 수 있다.
이를 토대로 분배 개수 판단부(124)는 제1 임계치 범위(Ⅰ)에서는 한번에 분배되는 패킷들의 개수를 A로 결정하고, 제2 임계치 범위(Ⅱ)에서는 한번에 분배되는 패킷들의 개수를 B로 결정하고, 제3 임계치 범위(Ⅲ) 및 제4 임계치 범위(Ⅳ)에서는 한번에 분배되는 패킷들의 개수를 C로 결정하고, 제5 임계치 범위(Ⅴ)에서는 한번에 분배되는 패킷들의 개수를 B로 결정하고, 제6 임계치 범위(Ⅵ)에서는 한번에 분배되는 패킷들의 개수를 A로 결정한다. 즉, 분배 개수 판단부(124)는 제1 임계치 범위(Ⅰ)에서는 X는 A, Y는 0으로 결정하고, 제2 임계치 범위(Ⅱ)에서는 X는 0, Y는 B로 결정하고, 제3 임계치 범위(Ⅲ) 및 제4 임계치 범위(Ⅳ)에서는 X는 0, Y는 C로 결정하고, 제5 임계치 범위(Ⅴ)에서는 X는 0, Y는 B로 결정하고, 제6 임계치 범위(Ⅵ)에서는 X는 A, Y는 0으로 결정한다.
도 5는 본 발명의 실시예에 따른 침입 탐지 방법의 순서를 설명하기 위한 순서도이다.
도 5를 참조하여 설명하면, 본 발명에 따른 침입 탐지 방법은 앞서 설명한 바와 같은 침입 탐지 장치를 이용하는 방법으로 이하, 중복되는 설명은 생략하기로 한다.
먼저, 패킷 포착부(110)에 의해, 다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장한다.(S500)
다음, 문자열 검토 작업 분배부(120)에 의해, 패킷 포착부(110)에 저장된 패킷들의 개수를 파악하여 패킷들의 문자열 검사 작업을 CPU(100)의 CPU 문자열 검토부(130) 또는 GPU(200)의 GPU 문자열 검토부(210)에 분배한다.(S510) S510 단계는 부하 및 전력 소모를 고려하여 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 패킷들의 문자열 검사 작업을 분배해주는 과정으로 이에 대해서는 이후 설명되는 도 6 내지 도 8에서 자세하게 설명하기로 한다.
다음, CPU 문자열 검토부(130)에 의해, 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행한다.(S520) S520 단계는 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 패킷들의 문자열에 대해 패턴 매칭을 수행한다.
다음, S520 단계 이후에, 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행한다.(S530)
다음, GPU 문자열 검토부(210)에 의해, 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행한다.(S540) S540 단계는 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 패킷들의 문자열에 대해 패턴 매칭을 수행한다.
그 다음, S540 단계 이후에, 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행한다.
도 6은 본 발명의 실시예에 따른 문자열 검사 작업을 분배하는 방법을 설명하기 위한 순서도이다.
도 6을 참조하여 설명하면, 먼저, 패킷들의 개수를 파악한다.(S600)
다음, 패킷들의 개수를 토대로 하여, 패킷들의 개수가 적은 경우 문자열 검사 작업을 CPU 문자열 검토부(130)에 분배할지 또는 패킷들의 개수가 많은 경우 문자열 검사 작업을 GPU 문자열 검토부(210)에 분배할지를 결정하고, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배되는 한번에 분배되는 패킷들의 개수를 결정한다.(S610) 즉, S610 단계에서는 패킷들의 개수가 많지 않아 패킷 누수 없이 처리가 가능할 경우 CPU(100)를 사용하고, 연산 능력을 필요로 하거나 메모리 접근이 빈번히 발생하는 작업을 수행할 경우 또는 패킷 포착부(110) 안에 처리할 패킷들의 개수가 많은 경우 GPU(200)를 사용하도록 한다. 이에 대해서는 이후 설명되는 도 7에서 자세하게 설명하기로 한다.
도 7은 본 발명의 실시예에 따른 문자열 검사 작업 분배 방법에서 문자열 검사 작업의 분배를 결정하고, 한번에 분배되는 패킷들의 개수를 결정하는 방법을 설명하기 위한 순서도이다.
도 7을 참조하여 설명하면, 먼저 CPU(100)의 CPU 문자열 검토부(130)에 패킷을 분배하는 것으로 하여, CPU 문자열 검토부(130)에 분배되는 패킷의 개수 X, GPU(200)의 GPU 문자열 검토부(210)에 분배되는 패킷 개수 Y의 초기값을 설정한다. 이때, X의 초기값은 A이며, Y의 초기값은 0으로 설정한다.(S700)
다음, 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위(도면에서 P)에 해당하는지 판단한다.(S710)
다음, 문자열 검사 작업을 사용장치 즉, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배할지를 결정한다. 즉, 패킷들의 개수를 토대로 결정된 작업큐 즉, CPU(100)의 CPU 문자열 검토부(130) 또는 GPU(200)의 GPU 문자열 검토부(210)인지 확인한다. 또한, 사용장치가 결정되면 그에 따라 CPU(100)의 CPU 문자열 검토부(130)에 분배되는 패킷의 개수 X, GPU(200)의 GPU 문자열 검토부(210)에 분배되는 패킷 개수 Y를 계산하여 결정한다.(S720)
다음, 사용장치가 CPU(100)의 CPU 문자열 검토부(130)인지 여부를 판단한다.(S730)
다음, 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 문자열 검사 작업을 CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배할지를 결정한다.(S740, S750) 이때, 디폴트(0)에서 미들 사이에 해당하면 제1 임계치 범위에, 미들에서 하이 사이에 해당하면 제2 임계치 범위, 하이 이상에 해당하면 제3 임계치 범위 그리고 패킷들이 분배되기 시작하는 경우에 패킷들의 개수가 하이 이상에서 미들 사이에 해당하면 제4 임계치 범위, 미들에서 로우 사이에 해당하면 제5 임계치 범위(Ⅴ) 및 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위(Ⅵ)에 해당하는 것으로 판단한다.(S741, S742, S751, S752)
다음, 판단된 임계치 범위를 토대로, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 한번에 분배되는 패킷들의 개수를 결정한다.(S760, S761, S762, S763)
이때, CPU 문자열 검토부(130) 또는 GPU 문자열 검토부(210)에 분배되는 한번에 분배되는 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값)으로 구분한다. 이때, C는 CPU(100)의 메모리에서 오버플로가 발생하지 않는 최대값을 최대값으로 결정되며, B는 패킷 처리 성능을 높이기 위해 C보다 작은 값으로 결정되고, A는 B보다 작은 값으로 결정된다. 보다 자세하게는 제1 임계치 범위(Ⅰ)에서는 한번에 분배되는 패킷들의 개수를 A로 결정하고, 제2 임계치 범위(Ⅱ)에서는 한번에 분배되는 패킷들의 개수를 B로 결정하고, 제3 임계치 범위(Ⅲ) 및 제4 임계치 범위(Ⅳ)에서는 한번에 분배되는 패킷들의 개수를 C로 결정하고, 제5 임계치 범위(Ⅴ)에서는 한번에 분배되는 패킷들의 개수를 B로 결정하고, 제6 임계치 범위(Ⅵ)에서는 한번에 분배되는 패킷들의 개수를 A로 결정한다. 즉, 분배 개수 판단부(124)는 제1 임계치 범위(Ⅰ)에서는 X는 A, Y는 0으로 결정하고, 제2 임계치 범위(Ⅱ)에서는 X는 0, Y는 B로 결정하고, 제3 임계치 범위(Ⅲ) 및 제4 임계치 범위(Ⅳ)에서는 X는 0, Y는 C로 결정하고, 제5 임계치 범위(Ⅴ)에서는 X는 0, Y는 B로 결정하고, 제6 임계치 범위(Ⅵ)에서는 X는 A, Y는 0으로 결정한다.
이처럼, 본 발명은 고속 NIC 카드로 유입되는 패킷들을 CPU에 전달하기 위하여, CPU 코어의 쓰레드가 다수의 NIC 카드의 수신큐에 저장된 패킷들을 동시에 작업큐로 가져오도록 하였다.
또한, 멀티 쓰레드, 전역 변수와 같은 방법을 사용하여 탐지에 필요한 정보를 공유하여 불필요한 메모리 낭비를 줄였고, 작업큐에 있는 다수의 패킷들을 한 번에 처리함으로써 함수 호출 횟수를 감소시키고 메모리 접근 횟수를 감소시켰다.
또한, NUMA(Non-Uniform Memory Access)와 같은 프로세스별 메모리 할당 구조의 사용 여부를 판단하여 수신된 패킷들을 해당 코어에 할당된 영역의 메모리에 저장한다. 이로 인하여 CPU 각 코어가 타 영역의 메모리에 접근하는 것을 차단하여 메모리 접근 속도를 높였다.
또한, GPU는 메모리 접근하여 다량의 비교 연산을 해야 하는 작업에 적합하므로, 이에 해당하는 문자열 검토 작업은 GPU에 할당한다. 그리고 문자열 검토 작업은 내부적으로 다중문자열 매칭 작업과 정규표현식 매칭 작업으로 구성되며, 대표적인 시그너처 기반 공개용 침입 탐지 시스템인 Snort에서의 Content 매칭과 PCRE 매칭에 해당한다.
따라서, 패킷 개수가 작거나 패킷 길이가 작을 경우 CPU만을 사용하여 GPU에 필요한 정보를 전송해야 하는 부하와 전력 소모량을 감소시킨다.
또한, 충분한 성능을 제공하기 위해 작업큐의 상태에 따라 CPU와 GPU로의 작업 분배와 처리할 패킷 개수를 동적으로 결정한다.
이상에서 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진 자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
100 : CPU 110 : 패킷 포착부
120 : 문자열 검토 작업 분배부 130 : CPU 문자열 검토부
140 : 부가규칙 평가부 150 : CPU 통신부
200 : GPU 210 : GPU 문자열 검토부

Claims (19)

  1. 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 장치에 있어서,
    다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장하는 패킷 포착부;
    상기 패킷 포착부에 저장된 상기 패킷들의 개수를 파악하여 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 문자열 검토 작업 분배부;
    상기 CPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 CPU 문자열 검토부; 및
    상기 GPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 GPU 문자열 검토부;를 포함하고,
    상기 문자열 검토 작업 분배부는,
    상기 패킷들의 개수를 파악하는 패킷 개수 파악부; 및
    상기 패킷들의 개수를 토대로 하여, 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 분배 결정부;를 포함하며,
    상기 분배 결정부는,
    상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 임계치 판단부; 및
    상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 상기 임계치 범위에 따라 기 구분된 A(최소값), B(중간값) 및 C(최대값) 값 중 어느 하나로 결정하는 분배 개수 판단부;
    를 포함하는 것을 특징으로 하는 침입 탐지 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 임계치 판단부는, 상기 패킷들의 개수를 로우(LOW), 미들(MID) 및 하이(HI) 임계치 범위로 구분하고, 상기 패킷들이 유입되기 시작하는 경우에 상기 패킷들의 개수가 디폴트(0)에서 상기 미들 사이에 해당하면 제1 임계치 범위 및 상기 미들에서 상기 하이 사이에 해당하면 제2 임계치 범위, 상기 하이(HI) 이상에 해당하면 제3 임계치 범위 그리고 상기 패킷들이 분배되기 시작하는 경우에 상기 패킷들의 개수가 상기 하이 이상에서 상기 미들 사이에 해당하면 제4 임계치 범위, 상기 미들에서 상기 로우 사이에 해당하면 제5 임계치 범위 및 상기 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위에 해당하는지 판단하는 것을 특징으로 하는 침입 탐지 장치.
  5. 제4항에 있어서,
    상기 임계치 판단부는, 상기 문자열 검사 작업을 상기 제1 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하고, 상기 제2 임계치 범위, 상기 제3 임계치 범위, 상기 제4 임계치 범위 및 제5 임계치 범위에서는 상기 GPU 문자열 검토부에 분배하도록 결정하고, 상기 제6 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하는 것을 특징으로 하는 침입 탐지 장치.
  6. 제5항에 있어서,
    상기 분배 개수 판단부는, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값) 값으로 구분하고, 상기 제1 임계치 범위에서는 상기 A로 결정하고 상기 제2 임계치 범위에서는 상기 B로 결정하고, 상기 제3 임계치 범위 및 제4 임계치 범위에서는 상기 C로 결정하고, 상기 제5임계치 범위에서는 상기 B로 결정하고, 상기 제6 임계치 범위에서는 상기 A로 결정하는 것을 특징으로 하는 침입 탐지 장치.
  7. 제1항에 있어서,
    상기 탐지규칙은 패킷에 포함된 필드 중 소정의 필드들을 검사하는 항목을 정의하고, 정의된 검사항목의 검사 순서 및 검사 조건을 정의한 적어도 하나 이상의 침입 탐지를 위한 규칙인 것을 특징으로 하는 침입 탐지 장치.
  8. 제1항에 있어서,
    상기 CPU 문자열 검토부 및 GPU 문자열 검토부는 상기 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 상기 패킷들의 문자열에 대해 패턴 매칭을 수행하는 것을 특징으로 하는 침입 탐지 장치.
  9. 제1항에 있어서,
    상기 CPU는 상기 CPU 문자열 검토부 및 GPU 문자열 검토부로부터 상기 문자열 검사 작업이 완료된 상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 부가규칙 평가부;를 더 포함하는 것을 특징으로 하는 침입 탐지 장치.
  10. 제1항에 있어서,
    상기 CPU는 상기 GPU와의 통신을 수행하는 CPU 통신부를 더 포함하는 것을 특징으로 하는 침입 탐지 장치.
  11. 트래픽 상황에 따른 CPU와 GPU간의 로드 밸런스를 가지는 침입 탐지 방법에 있어서,
    패킷 포착부에 의해, 다수의 수신 큐로부터 유입되는 패킷들을 수신 받아, 동일한 플로우에 속한 패킷들을 하나의 작업 큐에 저장하는 단계;
    문자열 검토 작업 분배부에 의해, 상기 패킷 포착부에 저장된 상기 패킷들의 개수를 파악하여 상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 단계;
    상기 CPU 내에서 CPU 문자열 검토부에 의해, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계; 및
    상기 GPU 내에서 GPU 문자열 검토부에 의해, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계;를 포함하고,
    상기 패킷들의 문자열 검사 작업을 상기 CPU 또는 상기 GPU에 분배하는 단계는,
    상기 패킷들의 개수를 파악하는 단계; 및
    상기 패킷들의 개수를 토대로 하여, 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계;를 포함하고,
    상기 패킷들의 개수가 적은 경우 상기 문자열 검사 작업을 상기 CPU 문자열 검토부에 분배할지 또는 상기 패킷들의 개수가 많은 경우 상기 문자열 검사 작업을 상기 GPU 문자열 검토부에 분배할지를 결정하고, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계는,
    상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계; 및
    상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 상기 임계치 범위에 따라 기 구분된 A(최소값), B(중간값) 및 C(최대값) 값 중 어느 하나로 결정하는 단계;
    를 포함하는 것을 특징으로 하는 침입 탐지 방법.
  12. 삭제
  13. 삭제
  14. 제11항에 있어서,
    상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계는,
    상기 패킷들의 개수를 로우(LOW), 미들(MID) 및 하이(HI) 임계치 범위로 구분하고, 상기 패킷들이 유입되기 시작하는 경우에 상기 패킷들의 개수가 디폴트(0)에서 상기 미들 사이에 해당하면 제1 임계치 범위 및 상기 미들에서 상기 하이 사이에 해당하면 제2 임계치 범위, 상기 하이(HI) 이상에 해당하면 제3 임계치 범위 그리고 상기 패킷들이 분배되기 시작하는 경우에 상기 패킷들의 개수가 상기 하이에서 상기 미들 사이에 해당하면 제4 임계치 범위, 상기 미들에서 상기 로우 사이에 해당하면 제5 임계치 범위 및 상기 로우에서 디폴트(0) 사이에 해당하면 제6 임계치 범위에 해당하는지 판단하는 것을 특징으로 하는 침입 탐지 방법.
  15. 제14항에 있어서,
    상기 패킷들의 개수가 기 설정된 다수의 임계치 범위 중 어느 하나의 범위에 해당하는지 판단하여 상기 문자열 검사 작업을 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 분배할지를 결정하는 단계는,
    상기 문자열 검사 작업을 상기 제1 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하고, 상기 제2 임계치 범위, 상기 제3 임계치 범위, 상기 제4 임계치 범위 및 제5 임계치 범위에서는 상기 GPU 문자열 검토부에 분배하도록 결정하고, 상기 제6 임계치 범위에서는 상기 CPU 문자열 검토부에 분배하도록 결정하는 것을 특징으로 하는 침입 탐지 방법.
  16. 제15항에 있어서,
    상기 임계치 범위를 토대로, 상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 결정하는 단계는,
    상기 CPU 문자열 검토부 또는 상기 GPU 문자열 검토부에 한번에 분배되는 상기 패킷들의 개수를 A(최소값), B(중간값) 및 C(최대값)으로 구분하고, 상기 제1 임계치 범위에서는 상기 A로 결정하고 상기 제2 임계치 범위에서는 상기 B로 결정하고, 상기 제3 임계치 범위 및 제4 임계치 범위에서는 상기 C로 결정하고, 상기 제5 임계치 범위에서는 상기 B로 결정하고, 상기 제6 임계치 범위에서는 상기 A로 결정하는 것을 특징으로 하는 침입 탐지 방법.
  17. 제11항에 있어서,
    상기 CPU 또는 GPU내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계는,
    상기 탐지규칙에서 기 정의된 침입 탐지로 판단되는 특정 문자열과 상기 패킷들의 문자열에 대해 패턴 매칭을 수행하는 것을 특징으로 하는 침입 탐지 방법.
  18. 제11항에 있어서,
    상기 CPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계 이후에,
    상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 단계;를 더 포함하는 것을 특징으로 하는 침입 탐지 방법.
  19. 제11항에 있어서,
    상기 GPU 내에서, 상기 패킷들의 문자열과 탐지규칙에 정의된 문자열의 비교 검사를 수행하는 단계 이후에,
    상기 패킷들에 대해 상기 탐지규칙에서 상기 패킷들의 문자열 검사 작업 이외에 존재하는 부가규칙에 대한 검사를 수행하는 단계;를 더 포함하는 것을 특징으로 하는 침입 탐지 방법.


KR1020130096273A 2012-10-17 2013-08-14 트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법 KR101537996B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/053,655 US9342366B2 (en) 2012-10-17 2013-10-15 Intrusion detection apparatus and method using load balancer responsive to traffic conditions between central processing unit and graphics processing unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120115226 2012-10-17
KR1020120115226 2012-10-17

Publications (2)

Publication Number Publication Date
KR20140049926A KR20140049926A (ko) 2014-04-28
KR101537996B1 true KR101537996B1 (ko) 2015-07-23

Family

ID=50655338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130096273A KR101537996B1 (ko) 2012-10-17 2013-08-14 트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101537996B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704928B1 (ko) * 2015-10-26 2017-02-08 동국대학교 산학협력단 Gpu를 이용한 파일의 분산 저장 시스템 및 방법
KR102055494B1 (ko) * 2018-01-05 2019-12-12 이호석 시그니처 및 pcre 탐색을 위한 코드 프로세서, 그리고 이를 이용한 시그니처 및 pcre 탐색 방법
CN108712508A (zh) * 2018-06-06 2018-10-26 亚信科技(中国)有限公司 一种负载均衡方法及装置
CN111698178B (zh) * 2020-04-14 2022-08-30 新华三技术有限公司 一种流量分析方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010263A (ko) * 2001-07-26 2003-02-05 펜타시큐리티시스템 주식회사 다단계 침입 탐지 엔진
KR20110098269A (ko) * 2010-02-26 2011-09-01 인하대학교 산학협력단 패턴 검색을 통한 침입 탐지 방법
KR20120019711A (ko) * 2010-08-26 2012-03-07 한국과학기술원 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법
KR20130081140A (ko) * 2012-01-06 2013-07-16 한남대학교 산학협력단 패턴 매칭을 통한 네트워크 침입 탐지 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030010263A (ko) * 2001-07-26 2003-02-05 펜타시큐리티시스템 주식회사 다단계 침입 탐지 엔진
KR20110098269A (ko) * 2010-02-26 2011-09-01 인하대학교 산학협력단 패턴 검색을 통한 침입 탐지 방법
KR20120019711A (ko) * 2010-08-26 2012-03-07 한국과학기술원 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법
KR20130081140A (ko) * 2012-01-06 2013-07-16 한남대학교 산학협력단 패턴 매칭을 통한 네트워크 침입 탐지 장치

Also Published As

Publication number Publication date
KR20140049926A (ko) 2014-04-28

Similar Documents

Publication Publication Date Title
US9342366B2 (en) Intrusion detection apparatus and method using load balancer responsive to traffic conditions between central processing unit and graphics processing unit
US8984526B2 (en) Dynamic processor mapping for virtual machine network traffic queues
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
KR101537996B1 (ko) 트래픽 상황에 따른 cpu와 gpu간의 로드 밸런스를 가지는 침입 탐지 장치 및 방법
US6919896B2 (en) System and method of optimizing graphics processing
US10523692B2 (en) Load balancing method and apparatus in intrusion detection system
US20140233588A1 (en) Large receive offload functionality for a system on chip
WO2021136137A1 (zh) 一种资源调度方法、装置及相关设备
CN105511953B (zh) 云环境下的虚拟机负载评估系统、方法以及服务节点
CN111506434B (zh) 一种任务处理方法、装置及计算机可读存储介质
US9940732B2 (en) Implementing reduced video stream bandwidth requirements when remotely rendering complex computer graphics scene
KR20150037367A (ko) 캐시 메모리 시스템 및 그 동작방법
CN106776023B (zh) 一种自适应gpu统一染色阵列任务负载均衡方法
US20110153584A1 (en) Method, system, and engine dispatch for content search
CN107370783B (zh) 一种云计算集群资源的调度方法及装置
CN105471770B (zh) 一种基于多核处理器的报文处理方法及装置
Wu et al. Parallel detection for efficient video analytics at the edge
US11374869B2 (en) Managing bandwidth based on user behavior
WO2015035901A1 (zh) 程序性能干扰模型的确定方法及设备
CN114020471B (zh) 一种基于草图的轻量级大象流检测方法及平台
CN114500398B (zh) 一种处理器协同加速的方法、装置、设备及介质
JP2000353237A (ja) マルチプロセッサ構成画像処理システム
Araújo et al. Accelerating VNF-based Deep Packet Inspection with the use of GPUs
CN110659571B (zh) 一种基于帧缓存队列的流视频人脸检测加速方法
US8793698B1 (en) Load balancer for parallel processors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 5