KR101061377B1 - 분포 기반 디도스 공격 탐지 및 대응 장치 - Google Patents

분포 기반 디도스 공격 탐지 및 대응 장치 Download PDF

Info

Publication number
KR101061377B1
KR101061377B1 KR1020090111217A KR20090111217A KR101061377B1 KR 101061377 B1 KR101061377 B1 KR 101061377B1 KR 1020090111217 A KR1020090111217 A KR 1020090111217A KR 20090111217 A KR20090111217 A KR 20090111217A KR 101061377 B1 KR101061377 B1 KR 101061377B1
Authority
KR
South Korea
Prior art keywords
distribution
time
ddos
ddos attack
http
Prior art date
Application number
KR1020090111217A
Other languages
English (en)
Other versions
KR20110054537A (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 KR1020090111217A priority Critical patent/KR101061377B1/ko
Publication of KR20110054537A publication Critical patent/KR20110054537A/ko
Application granted granted Critical
Publication of KR101061377B1 publication Critical patent/KR101061377B1/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/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

분포 기반 디도스 공격 탐지 및 대응 장치가 개시된다. 소정의 IP로 특정되는 클라이언트 단말기로부터 HTTP 요청을 수신하는 수신부, 상기 HTTP 요청의 수신시간을 소정의 관측시간동안 측정하여 HTTP 요청간의 수신시간 차를 산출하는 시간 정보 산출부, 상기 HTTP 요청의 상기 수신시간 차의 분포를 산출하는 시간 분포 산출부, 상기 산출된 수신시간 차의 분포값을 미리 저장된 정상 트래픽 분포 정보와 비교하고, 상기 정상 트래픽 분포 정보 보다 큰 분포값을 합산한 합산값을 생성하는 시간 정보 비교부, 상기 합산값을 소정의 임계치와 비교하고, 상기 합산값이 소정의 임계치보다 큰 경우 상기 IP의 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 디도스 판별부 및 상기 디도스 판별부가 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 차단부를 포함하는 분포 기반 디도스 공격 탐지 및 대응 장치는 분포 특성을 이용하여 연산량을 최소화하면서 디도스 공격에 대응할 수 있고, 디도스 공격의 주요 대상이 되는 웹 서비스를 대상으로 하는 응용계층 기반 디도스 공격 탐지 및 대응 알고리즘을 수행할 수 있는 효과가 있다.
DDoS, 분포, HTTP, 임계치.

Description

분포 기반 디도스 공격 탐지 및 대응 장치{Apparatus for detecting and filtering DDoS attack based on distribution}
본 발명은 전자 기기에 관한 것으로, 특히 분포 기반 디도스 공격 탐지 및 대응 장치에 관한 것이다.
오래전부터 많은 피해를 발생시켜 온 디도스(DDoS : Distributed Denial of Service) 공격은 최근 Netbot Attacker, Blackenergy, 7.7 DDoS 등 봇넷을 이용한 공격방식을 통해 대응하기 점차 어려워지고 있다. 특히, 기존 DDoS 공격은 SYN, UDP, SYN + ACK, ICMP Flooding 등 네트워크 계층에서의 대역폭(bandwidth) 소모위주의 공격이 발생한 반면, 최근에는 HTTP GET Flooding, CC(Cache Control) Attack 등과 같은 시스템의 CPU, 메모리, DB 서버 자원을 고갈시키는 응용계층 기반 디도스 공격이 발생하고 있다.
그러나 현재 출시된 대부분의 디도스 대응장비는 네트워크 계층에서의 디도스 공격대응 위주의 기능을 제공하고 있어서, 소량의 HTTP 트래픽이 발생하면서 특 정 호스트의 동작을 중지시키는 Netbot Attacker, Blackenergy 등의 응용계층의 디도스 공격에는 대응하지 못하고 있다. 이러한 공격도구는 기존 네트워크 계층에 대한 디도스 공격 뿐 아니라 HTTP GET Flooding, CC Attack 등 다양한 공격이 가능하다.
이러한 응용계층 디도스 공격에 대응하기 위해 최근 몇가지 연구가 진행되고 있다. 웹 서비스 특성상 이용자 IP 리스트는 균일하게 분포하지 않고 기존에 들어왔던 이들이 계속 들어오는 특징을 이용하여, 그 비율을 이용한 디도스 공격 탐지방안, 웹 서비스 이용패턴 정보를 분석하여 공격자로 의심스러운 IP 들을 대상으로 그레이 리스트(Greylist)로 분류하고, 이들에 대해 적은 리소스를 할당하는 방법에 대한 연구, 각 URL 페이지 히트 분포 등을 통계적 방식에 기반하여 분석 후, 일시적인 요청 폭주와 디도스 공격을 구별하는 방법, 웹 서비스 사용자 페이지 이동경로에 따른 분석, 디도스 공격의 원인이 되는 비정상 사용자에 대한 접속 제어(Admission Control)를 통해 대응하는 방법 등이 제안되어 있다.
하지만 종래 기술에 따르면, URL 페이지 히트 분포는 많은 연산량을 필요로 하며, 웹서비스에 올라가는 컨텐츠 및 시기에 따라 크게 변하여 임계치(threshold) 설정이 어려운 단점이 있고, 접속 제어 기법은 아웃 오브 패스(out of path) 방식으로는 동작할 수 없고, 인라인으로 동작해야 하는데 세션관리가 필요한 단점이 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공 중에게 공개된 공지기술이라 할 수는 없다.
본 발명은 연산량을 최소화하면서 디도스 공격에 대응할 수 있는 대응 메커니즘을 수행할 수 있는 분포 기반 디도스 공격 탐지 및 대응 장치를 제공하기 위한 것이다.
또한, 본 발명은 디도스 공격의 주요 대상이 되는 웹 서비스를 대상으로 응용계층 기반 디도스 공격탐지 및 대응 알고리즘을 수행할 수 있는 분포 기반 디도스 공격 탐지 및 대응 장치를 제공하기 위한 것이다.
본 발명이 제시하는 이외의 기술적 과제들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 소정의 IP로 특정되는 클라이언트 단말기로부터 HTTP 요청을 수신하는 수신부, 상기 HTTP 요청의 수신시간을 소정의 관측시간동안 측정하여 HTTP 요청간의 수신시간 차를 산출하는 시간 정보 산출부, 상기 HTTP 요청의 상기 수신시간 차의 분포를 산출하는 시간 분포 산출부, 상기 산출된 수신시간 차의 분포값을 미리 저장된 정상 트래픽 분포 정보와 비교하고, 상기 정상 트래픽 분포 정보 보다 큰 분포값을 합산한 합산값을 생성하는 시간 정보 비교부, 상 기 합산값을 소정의 임계치와 비교하고, 상기 합산값이 소정의 임계치보다 큰 경우 상기 IP의 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 디도스 판별부 및 상기 디도스 판별부가 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 차단부를 포함하는 분포 기반 디도스 공격 탐지 및 대응 장치가 제공된다.
여기서, 상기 합산값은 상기 분포값의 상기 정상 트래픽 분포 정보에 대한 초과값을 합산한 것이며, 상기 시간 분포 산출부는, 상기 수신시간 차의 분포를 상기 HTTP 요청의 전체 모집단에 대한 비율에 대해 산출할 수 있다. 여기서, 임계치는 상술한 관측시간이 10초인 경우 40 ~ 60%가 될 수 있다.
또한, 본 실시예는 상기 합산값을 상기 임계치와 비교하고, 상기 합산값이 상기 임계치의 소정 비율보다 큰 경우 상기 디도스 판별부의 작동을 개시하는 판별 개시부를 더 포함할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명에 따른 분포 기반 디도스 공격 탐지 및 대응 장치는 분포 특성을 이용하여 연산량을 최소화하면서 디도스 공격에 대응할 수 있고, 디도스 공격의 주요 대상이 되는 웹 서비스를 대상으로 하는 응용계층 기반 디도스 공격 탐지 및 대응 알고리즘을 수행할 수 있는 효과가 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 실시예에 따른 디도스(DDoS) 공격 탐지 및 대응 장치의 시스템 구성도이다. 도 1을 참조하면, 클라이언트 단말기(110), 웹서버(120), 디도스 공격 탐지 및 대응 장치(130), 네트워크(140)가 도시된다. 디도스 공격탐지 및 대응장치(130)는 네트워크 트래픽 경로 상에 인라인으로 위치하거나, 트래픽 정보를 따로 받는 아웃오프패스 방식으로 동작할 수 있다.
본 실시예는 정상 트래픽 상태와 디도스 공격 상태에서의 HTTP 요청의 분포가 서로 다른 점을 이용하여 디도스 공격을 탐지하는 특징이 있다. 본 발명은 다양한 실시예로 구체화될 수 있으며, 구체적으로, 본 발명의 제1 실시예는 각 IP별로 HTTP 요청의 수신시간 차에 관한 분포값을 정상 상태의 분포값과 비교함으로써 디도스 공격을 탐지하는 특징이 있다. 즉, 본 제1 실시예는 디도스 공격의 경우 HTTP 요청의 수신시간 차가 정상 상태의 값과 차이가 있음에 착안하여 그 차이값을 이용하여 디도스 공격을 탐지한다.
또한, 본 발명의 제2 실시예에 따르면, 각 IP별 분포 벡터(Distribution Vector)를 통해 디도스 공격징후를 탐지하고, 이상 징후 발생 시 해당 IP로부터의 트래픽을 필터링하는 특징이 있다. 즉, 본 제2 실시예에 따르면, 소량의 HTTP 트래픽이 발생하더라도, 발생한 URI 분포에 기반하여 연산량을 최소화하면서 디도스 공격에 대응할 수 있는 최적의 대응 메커니즘을 제시하는 특징이 있다.
또한, 본 발명의 제3 실시예에 따르면, HTTP 요청의 분포를 벡터 형태로 변환하여 정상적인 분포와 디도스 공격시 분포를 서로 비교하는 특징이 있다. 즉, 본 발명의 제3 실시예는 HTTP 요청을 종류별로 소정의 N차원의 벡터로 나타내고, 이러 한 벡터의 분포를 기준으로 정상적인 분포와 디도스 공격시 분포를 서로 구별할 수 있다. 상술한 각 실시예는 이하에서 자세히 설명한다.
웹 서비스에서의 GET Flooding 공격 유형은 IP별, 단위시간당 대량의 HTTP 요청(request)을 발생시키는 GET Flooding, IP별, 단위시간당 특정 URI에 대해 소정의 임계치를 초과하는 HTTP 요청을 발생시키는 GET Flooding, IP별, 단위시간당 URI당 평균 HTTP 요청이 소정의 임계치를 초과하는 GET Flooding, IP별, 단위시간당 요청된 URI 분포가 비정상적인 GET Flooding, IP별, 단위시간당 다수의 URI를 대상으로 최소한의 HTTP 요청을 발생시키는 GET Flooding 등 다양한 공격 유형을 가진다. 상술한 웹 서비스에서의 GET Flooding 공격 유형은 지금까지 발생한 다수의 디도스 공격도구, 종래의 7.7 디도스 공격 등뿐만 아니라 앞으로 발생가능한 공격 유형을 포함한다. 본 실시예에 따른 디도스 공격 탐지 및 대응 방법은 상술한 공격 유형들에 효과적으로 대처할 수 있는 방법이다.
클라이언트 단말기(110)는 웹서버(120)를 대상으로 디도스 공격을 하는 단말기로서, 소위 좀비 PC로 지칭될 수 있다. 디도스 공격 탐지 및 대응 장치(130)는 클라이언트 단말기(110)의 디도스 공격을 탐지하고 이를 탐지한 경우 클라이언트 단말기(110)가 웹서버(120)에 접속하지 못하도록 차단한다.
디도스 공격 탐지 및 대응 장치(130)는 네트워크(140)의 라우터에 구비되거나 수정 라우터 혹은 디도스 전용장비, 침입방지시스템 등에 위치하거나 또는 각 웹서버(120)의 특정 구성요소 또는 파이어월로 구비됨으로써 디도스 공격을 차단할 수 있다. 또한, 본 발명은 클라이언트 단말기(110)가 웹서버(120)에 디도스 공격을 수행하는 경우를 중심으로 설명하지만, 이에 한정되지 않으며, 예를 들면, 특정 웹사이트, 어플리케이션 서버 등 다양한 주체, 하드웨어 또는 소프트웨어 모듈을 공격하는 경우에도 적용될 수 있음은 물론이다.
디도스 공격 탐지 및 대응 장치(130)는 디도스 공격의 주요 대상이 되는 웹 서비스를 대상으로 응용계층 기반 디도스 공격 탐지 및 대응 알고리즘이 구현된다. 즉, 디도스 공격 탐지 및 대응 장치(130)는 각 IP별 소량의 HTTP 트래픽을 보내는 디도스 공격이 발생했을 때, 이를 탐지하고 대응하는 메커니즘을 제시한다. 이하에서 본 발명의 다양한 실시예에 관하여 상세히 기술한다.
도 2a는 본 발명의 제1 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도이다. 도 2a를 참조하면, 수신부(132), 시간 정보 산출부(133), 시간 분포 산출부(135), 시간 정보 비교부(137), 디도스 판별부(139), 차단부(138)가 도시된다.
본 실시예는 정상 웹서비스에 관한 HTTP 요청의 분포와 비정상 트래픽에서의 HTTP 요청의 분포가 서로 다름을 이용하여 이러한 차이점을 양적으로 계산하고, 계산된 값을 임계치와 비교함으로써 디도스 공격을 탐지하는 특징이 있다.
즉, 정상 웹서비스의 경우, 사용자의 액션에 따라 초기 시점에 거의 동시에 수많은 HTTP 요청이 발생하며, 그 이후에는 해당 요청이 거의 발생하지 않는다. 도 2b를 참조하여 정상 웹서비스와 비정상 웹서비스의 HTTP 요청을 분포를 설명하면 다음과 같다.
X축을 클라이언트 단말기(110)로부터 수신한 HTTP 요청간의 수신시간 차로 놓고, Y축을 X에 대한 분포 비율(%)로 할 때, 정상 사용자에 의한 HTTP 요청의 경우 검은색의 그래프 모양을 갖는다. 또한, 디도스 공격에 의한 HTTP 요청의 경우 붉은색의 그래프 모양을 갖는다. 여기서, HTTP 요청간의 수신시간 차는 특정 단위, 예를 들면, ms와 같은 단위로 산출될 수 있다.
Y축은 전체 모집단에 대한 해당 수신시간 차의 비율이며, 단위 눈금이 10.00%이다. 이러한 설정에 의해 본 실시예는 분포 비율을 서로 비교함으로써, 트래픽의 양에 상관없이 적용할 수 있다. 물론, 분포 비율이 아닌 소정의 관측시간 당 X의 개수를 Y축으로 설정하는 등 다른 방식의 그래프가 본 발명에 적용될 수 있음은 물론이다.
현존하는 모든 종류의 디도스 공격도구는 주기성의 특징을 가지고, 디도스 공격시 HTTP 요청이 정상 사용자에 의한 HTTP 요청과 서로 다른 분포를 가진다. 본 실시예는 이러한 차이값을 이용하여 비정상 트래픽을 판별한다. 여기서, 정상 사용자에 의한 HTTP 요청은 미리 저장되어 실시간으로 수신되는 HTTP 요청에 관한 분포와 비교될 수 있다. 정상 사용자에 의한 HTTP 요청에 관한 분포는 정상적인 상태에서 기록되는 트래픽 통계를 통해 산출하거나 소정 기간 정상적인 사용에 의한 테스트 결과로 산출되는 등 다양한 방식에 의해 산출될 수 있다.
수신부(132)는 소정의 IP로 특정되는 클라이언트 단말기(110)로부터 HTTP 요청을 수신한다. 수신부(132)는 TCP 80 포트에서 수집된 HTTP 패킷을 수신하고, HTTP 헤더를 파싱함으로써 데이터 측정부(134)가 관련 데이터를 측정 및 산출할 수 있도록 한다.
시간 정보 산출부(133)는 수신부(132)에서 수신한 HTTP 요청의 수신시간을 소정의 관측시간동안 측정하여 HTTP 요청간의 수신시간 차를 산출한다. 여기서, HTTP 요청간의 수신시간 차는 인접한 HTTP 요청 사이의 수신시간 차이가 될 수 있다. 예를 들면, A, B, C, D와 같은 HTTP 요청이 차례대로 수신부(132)에 수신되는 경우 A와 B의 수신시간 차, B와 C의 수신시간 차 및 C와 D의 수신시간 차가 본 실시예에서 분포값으로 산출되는 데이터가 될 수 있다.
시간 분포 산출부(135)는 HTTP 요청의 수신시간 차의 분포를 산출한다. 즉, 시간 분포 산출부(135)는 특정 시간대에 존재하는 수신시간 차를 상술한 바와 같이 전체에 대한 분포 비율로 나타낸다. 도 2b를 참조하면, Netbot Attacker의 디도스 공격의 경우 수신시간 차가 10ms인 비율이 40%가 넘으며, 40ms인 비율이 10% 정도된다. 시간 분포 산출부(135)는 이와 같이 수신시간 차를 분포 비율 또는 절대 개수로 취합함으로써 분포를 산출한다.
시간 정보 비교부(137)는 시간 분포 산출부(135)에서 산출된 수신시간 차의 분포값을 미리 저장된 정상 트래픽 분포 정보와 비교하고, 분포값이 정상 트래픽 분포 정보 보다 큰 경우 해당 분포값을 합산하여 합산값을 생성한다. 여기서, 정상 트래픽 분포 정보는 상술한 바와 같이 정상 사용자에 의한 HTTP 요청에 관한 분포가 될 수 있다.
또한, 다른 실시예에 따르면, 시간 정보 비교부(137)는 시간 분포 산출부(135)에서 산출된 수신시간 차의 분포값을 미리 저장된 정상 트래픽 분포 정보와 비교하고, 분포값이 정상 트래픽 분포 정보 보다 큰 경우 해당 분포값의 정상 트래 픽 분포 정보에 대한 초과값을 합산하여 합산값을 생성할 수도 있다. 즉, 정상 트래픽 분포 정보 보다 큰 수신시간 차의 분포값과 정상 트래픽 분포 정보의 차이를 합산하고, 합산된 값을 임계치와 비교함으로써 디도스 공격을 탐지할 수도 있다.
디도스 판별부(139)는 합산된 합산값을 소정의 임계치와 비교하고, 합산값이 소정의 임계치보다 큰 경우 해당 클라이언트 단말기의 접속을 디도스 공격으로 탐지할 수 있다. 이에 따른 디도스 공격 탐지 기준은 다음과 같이 제시된다.
Figure 112009070640943-pat00001
(1)
Figure 112009070640943-pat00002
Figure 112009070640943-pat00003
여기서, F(x)는 정상 사용자에 의한 HTTP 요청에 대한 분포, G(x)는 디도스 공격에 의한 HTTP 요청에 대한 분포를 나타내는 함수이다. 상술한 식에서 D(x)의 합은 D(x)를 적분할 수 있으며, Y축의 개수를 합하거나 X축의 단위에 관한 수치를 더하는 방법 등에 의해 상술한 합산값을 도출할 수 있음은 물론이다. 여기서, 임계치는 상술한 관측시간이 10초인 경우 40 ~ 60%가 될 수 있다.
차단부(138)는 디도스 판별부(136)가 디도스 공격으로 탐지하는 경우 해당 클라이언트 단말기(110)의 접속을 차단한다. 차단부(138)는 이 경우 일정 시간 그 접속을 차단하거나, IP의 패킷을 차단하거나 또는 디도스 공격 경고음을 발생하는 등 다양한 대응 방법을 수행할 수 있다. 차단부(138)는 특정 IP의 클라이언트 단말기(110)가 디도스 공격 단말기로 판단되는 경우 해당 클라이언트 단말기(110)의 접속을 차단함으로써 디도스 공격에 대응할 수 있다.
도 3은 본 발명의 제1 실시예에 따른 디도스 공격 탐지 및 대응 방법의 흐름도이다. 도시된 흐름도는 디도스 공격 탐지 및 대응 장치(130)가 수행하는 대응 메커니즘이 될 수 있다.
단계 S310에서, 클라이언트 단말기(110)로부터 패킷이 유입된다. 단계 S320에서, IP를 기반으로 미리 디도스 공격으로 판단된 클라이언트 단말기(110)를 차단한다. 여기서, 만약 클라이언트 단말기(110)의 IP가 신규 IP로 판단되는 경우 클라이언트 단말기(110)의 IP를 신규 IP로 소정의 데이터베이스에 저장할 수 있다.
단계 S330에서, TCP 80 포트 및 HTTP 패킷을 수집하고, 단계 S340에서, HTTP 헤더를 파싱한다. 예를 들면, 본 실시예는 커널 기반 고속의 트래픽 처리 엔진을 구비하여 NDIS intermediate Driver 및 커널 오브젝트인 패킷 풀(packet pool)에서 해당 HTTP를 수집하여 HTTP 헤더를 파싱할 수 있다.
단계 S350에서, 수신한 HTTP 요청의 수신시간 차 및 이에 대한 분포를 산출하고, 단계 S360에서, 상술한 바와 같이 산출한 분포값을 정상 트래픽 분포 정보와 비교하고, 정상 트래픽 분포 정보 보다 큰 분포값의 합산값을 생성한다.
단계 S370에서, 합산값을 소정의 임계치와 비교하고, 만약 합산값이 해당 임계치보다 큰(같은 경우도 포함될 수 있음) 경우 단계 S320에서 해당 IP에 기반하여 특정 클라이언트 단말기(110)의 접속을 차단하며, 합산값이 해당 임계치보다 크지 않는 경우에는 해당 IP의 접속을 유지한다.
도 4는 본 발명의 제2 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도이다. 도 4를 참조하면, 수신부(132), 데이터 측정부(134), 디도스 판별부(136), 차단부(138)가 도시된다. 상술한 바와의 차이점을 위주로 설명한다.
수신부(132)는 소정의 IP로 특정되는 클라이언트 단말기(110)로부터 HTTP 요청을 수신한다.
데이터 측정부(134)는 수신한 HTTP의 개수를 소정의 관측시간동안 IP별로 산출하고, 관측시간동안 HTTP의 URI 개수를 산출한다. 구체적으로 데이터 측정부(134)는 수신한 패킷마다 해당 IP, URI 별로 검색하고 이를 업데이트할 수 있다. 본 실시예는 이러한 IP별, 단위시간당, HTTP 개수, URI 개수 등과 같은 데이터를 저장하기 위한 별도의 저장부를 포함할 수 있다. IP별 및 URI별 관리를 위해서 hash/mod 방식 등이 사용될 수 있으며, 이러한 기술은 본 발명의 당업자가 용이하게 실시할 수 있는 기술이므로 자세한 설명은 생략한다.
디도스 판별부(136)는 측정된 URI 별 HTTP의 개수를 포함하는 연산결과를 소정의 임계치와 비교하고, URI 별 HTTP의 개수가 임계치보다 큰 경우 상기 IP의 클라이언트 단말기(110)의 접속을 디도스 공격으로 탐지한다.
본 실시예는 URI 수를 크게 증가시켜서 URI 별 HTTP 임계치를 낮게 유지하는 디도스 공격유형의 경우 URI 히트 분포가 특정 URI에 집중되어 있다면, 비정상적인 트래픽 분포로 탐지 및 차단할 수 있다. 즉, 본 실시예는 소량의 HTTP 트래픽이 발 생하더라도, 발생한 URI 분포(Distribution)에 기반하여 디도스 공격을 탐지하는 방법이 될 수 있다. 이에 따른 디도스 공격 탐지 기준은 다음과 같이 제시된다.
Figure 112009070640943-pat00004
(2)
여기서,
Figure 112009070640943-pat00005
는 분포에 기반한 임계치,
Figure 112009070640943-pat00006
이고,
Figure 112009070640943-pat00007
,
Figure 112009070640943-pat00008
는 단위시간 t 및 특정 IP인 s에서의 k번째 URI에 대한 HTTP PPS이며, T는 관측시간,
Figure 112009070640943-pat00009
,
Figure 112009070640943-pat00010
,
Figure 112009070640943-pat00011
는 관측시간 T의 시간구간인 t 및 특정 IP인 s에서의 HTTP PPS(packet per second), n은 상기 관측시간 T동안 요청했던 URI 개수이다. 여기서, 단위시간 t는 시간구간, 예를 들면, 1초를 의미한다. 즉,
Figure 112009070640943-pat00012
는 특정 IP에서 t ~t+1초 사이의 HTTP 개수를 의미한다. 본 실시예에 따르면, 디도스 공격 탐지 및 대응 방법은 관측시간 T를 기준으로 수행될 수 있으며, 본 명세서에서 설명하는 실시예들도 동일하게 관측시간 T를 기준으로 수행될 수 있다. 관측시간 T는 디도스 공격을 유효하게 탐지할 수 있으면서도 빠른 시간내에 탐지할 수 있는 시간, 예를 들면, 5초 내지 20초가 될 수 있다. 이는 웹 서비스의 특 징상 PPS를 기준으로는 해당 IP의 현재 행위를 판단하기 어렵기 때문이다. 또한,
Figure 112009070640943-pat00013
의 범위는 관측시간 T가 달라지는 비율만큼 그 범위도 달라질 수 있다.
정상적인 웹 서비스에 대해 위 수식을 이용하여 분포값(
Figure 112009070640943-pat00014
)을 계산하면, 정상적인 웹 서비스의 경우, 분포값(Distribution vector의 분포)은 URI당 평균 히트수와 큰 차이가 나지 않음을 알 수 있다.
도 5는 본 발명의 제2 실시예에 따른 디도스 공격 탐지 및 대응 방법의 흐름도이다. 도시된 흐름도는 디도스 공격 탐지 및 대응 장치(130)가 수행하는 대응 메커니즘이 될 수 있다.
단계 S510에서, 클라이언트 단말기(110)로부터 패킷이 유입된다. 단계 S520에서, IP를 기반으로 미리 디도스 공격으로 판단된 클라이언트 단말기(110)를 차단한다. 여기서, 만약 클라이언트 단말기(110)의 IP가 신규 IP로 판단되는 경우 클라이언트 단말기(110)의 IP를 신규 IP로 소정의 데이터베이스에 저장할 수 있다.
단계 S530에서, TCP 80 포트 및 HTTP 패킷을 수집하고, 단계 S540에서, HTTP 헤더를 파싱한다. 예를 들면, 본 실시예는 커널 기반 고속의 트래픽 처리 엔진을 구비하여 NDIS intermediate Driver 및 커널 오브젝트인 패킷 풀(packet pool)에서 해당 HTTP를 수집하여 HTTP 헤더를 파싱할 수 있다.
단계 S550에서, IP별, URI별 HTTP 개수를 산출하고, 단계 S560에서, 상술한 바와 같이 관측시간 T동안 IP별, URI별 HTTP 누적 개수를 산출한다.
단계 S570에서, 산출된 URI별 HTTP의 개수에 대한 소정의 분포값을 소정의 임계치와 비교하고, 만약 URI별 HTTP의 개수에 대한 소정의 분포값이 해당 임계치보다 큰(같은 경우도 포함될 수 있음) 경우 단계 S520에서 해당 IP에 기반하여 특정 클라이언트 단말기(110)의 접속을 차단하며, URI별 HTTP의 개수에 대한 소정의 분포값이 해당 임계치보다 크지 않는 경우에는 해당 IP의 접속을 유지한다.
또한, 본 발명의 제3 실시예에 따르면, 디도스 공격 대응 메커니즘은 다음과 같은 다른 형태로 구현될 수도 있다. 일반적으로, 특정 사이트에 GET Request 요청 시, 웹서버(120)는 해당하는 응답(response)을 주게 되는데, 이 응답은 image, iframe, html, flash 등 다양한 정보를 포함한다. 클라이언트 단말기(110)의 웹 브라우저는 이 다양한 정보들에 대해 각각 GET Request를 발생시켜 데이터를 받아오고, 받아온 결과를 웹 브라우저에 디스플레이한다.
여기서, 수많은 HTTP 요청(Request)은 사용자가 직접 액션을 취해서 발생한 요청과 해당 요청에 의해 추가로 실행되는 요청으로 구분할 수 있다. 사용자 액션에 의한 요청은, 예를 들면, 웹 브라우저 실행에 의한 요청, F5 누름 등에 의한 웹 페이지 새로고침(refresh)에 의한 요청, 메뉴 또는 링크 등에 대한 사용자의 클릭에 의한 요청 등이 될 수 있다.
사용자 액션에 의한 HTTP 요청과 이의 발생시 추가로 발생하는 HTTP 요청들은 다음과 같은 일정한 성격을 가진다.
사용자 접속 URI sequence
User1 1,2,3,4,5,...,100,1,2,3,4,5,...,100
User2 1,2,3,4,5,1,2,3,4,5,6,...,100
User3 1,1,1,1,1,1,1,...,1,1,1
User4 1,101,5,6,101,5,6,...,1
User5 1,2,3,4,5,...,100,1,2,3,4,5,...99,101
상기 표에서 접속 URI sequence의 1은 사용자 액션에 의한 HTTP 요청이고, 2 내지 101은 1의 발생시 추가로 발생하는 HTTP 요청들이다. 정상적인 경우 User1 및 User2와 같이 동작한다. User2의 접속 URI sequence는 페이지 5까지 받은 시점에서 새로고침(refresh)을 한 경우가 될 수 있다.
일반적인 봇넷(Botnet)의 경우, User3처럼 특정 페이지만 지속적으로 요청하며, 현재 출현하지는 않았지만 지능적인(intelligent) 봇넷의 경우, User4, User5처럼 동작할 것으로 예상된다.
종래 기술에 따르면, 이를 탐지하는 다양한 방법이 있지만, 연산량이 많아 실제 사용하는데 부적합하다. 본 실시예에 따른 알고리즘은 요청 분포(Request Distribution)를 벡터 형태로 변환하여, 비교하는 방법을 사용한다. 상기 표에 기술된 각 행위에 대한 분포 벡터는 다음과 같이 변환되어 표현된다.
사용자 분포 벡터
User1 (2,2,2,2,2,2,...2,0)
User2 (2,2,2,2,2,1,...,1,0)
User3 (67,0,...,0,0,0,0,0)
User4 (2,0,0,0,33,33,0,...,0,33)
User5 (2,2,2,2,2,...,2,1,1)
여기서, 분포 벡터가 101차원인 경우, 즉, 접속 URI가 101가지인 경우를 고려하였다. 벡터로 표현된 정상적인 분포를 참조하면, User1의 경우 모든 차원에 대 해 동일하고, User2의 경우, 1 내지 2정도 차이가 나게 된다. 즉, 정상적인 USER의 어떤 형태의 요청도 벡터로 변환하면 그 차이는 크게 나타날 수 없다.
도 6a를 참조하면, 정상적인 사용자에 의한 요청의 분포가 도시된다. X축은 URI의 식별자, Y축은 URI의 개수를 나타낸다. 정상적인 사용자가 새로고침(refresh)을 연속적으로 수행하여도 소정의 관측시간, 예를 들면, 10초 동안 URI의 개수는 33을 넘지 않는다. 또한, 도 6b를 참조하면, 상술한 User1 내지 User5의 각 행위에 대한 분포 벡터가 그래프상에 도시된다. 정상적인 사용자에 의한 요청은 소정의 범위내에 그 분포가 존재한다. 본 실시예는 이를 이용하여 디도스 공격을 탐지한다. 예를 들면, URI의 개수가 33 이상의 영역에 위치하는 분포는 디도스 공격으로 판단될 수 있다.
차단부(138)는 디도스 판별부(136)가 디도스 공격으로 탐지하는 경우 IP의 패킷을 차단한다. 차단부(138)는 특정 IP의 클라이언트 단말기(110)가 디도스 공격 단말기로 판단되는 경우 해당 클라이언트 단말기(110)의 패킷을 차단함으로써 디도스 공격에 대응할 수 있다.
또한, 본 발명은 상술한 디도스 판별부(136, 139)와 차단부(138)가 동작하기 전에 예비적으로 이상 증후를 검사하기 위한 구성요소를 더 포함할 수 있다. 즉, 본 실시예에 따르면, 웹서버(120) 접속이 지연되거나 부하가 심해서 느려지는 등의 이상 징후가 발생하는 경우에만 디도스 공격 탐지 및 대응 장치(130)가 가동될 수 있도록 하여 서버의 부하를 줄이고 효율적으로 연산을 수행할 수 있는 특징이 있다.
이를 위하여 본 실시예는 상술한 합산값을 소정의 임계치와 비교하고, 합산값이 해당 임계치의 소정 비율보다 큰 경우 디도스 판별부(139)의 작동을 개시하거나 또는 상술한 각 실시예에서 산출된 URI의 HTTP 개수를 소정의 임계치와 비교하고, URI의 HTTP 개수가 이러한 임계치의 소정 비율보다 큰 경우 디도스 판별부(136)의 작동을 개시하는 판별 개시부(미도시)를 더 포함할 수 있다.
여기서, 임계치의 소정 비율은 디폴트로 정해지거나, 네트워크 및/또는 서버 환경 등에 따라 자동 설정되거나 또는 사용자 설정에 의해 임의대로 정해질 수 있다. 자동 설정의 경우 네트워크 및/또는 서버에 부하가 걸리는 빈도, 부하량 등에 따라 임계치의 소정 비율을 조절할 수 있다. 예를 들면, 부하의 빈도가 높은 경우 요주의 상황으로서 소정 비율이 높아질 수 있다. 또한. 사용자 설정의 경우 본 실시예는 이러한 임계치의 소정 비율을 조절하기 위한 사용자 인터페이스를 더 포함할 수 있다. 임계치의 소정 비율은 예를 들면, 상술한 임계치의 50 내지 70%가 될 수 있다.
그 외 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치에 대한 구체적인 시스템 구성도, O/S 등의 공통 플랫폼 기술과 통신 프로토콜, I/O 인터페이스 등 인터페이스 표준화 기술 등에 대한 구체적인 설명은 본 발명이 속하는 기술 분야의 통상의 지식을 가진자에게 자명한 사항이므로 생략하기로 한다.
상기한 바에서, 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치 및 그 방법은 특정 수식 및 임계치의 수치 등을 일 실시예에 따라 기술하였으나, 반드시 이에 한정될 필요는 없고, 상기 수식 및 수치가 달라지더라도 전체적인 작용 및 효과에는 차이가 없다면 이러한 다른 구성은 본 발명의 권리범위에 포함될 수 있으며, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 디도스 공격 탐지 및 대응 장치의 시스템 구성도.
도 2a는 본 발명의 제1 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 2b는 본 발명의 제1 실시예에 따른 디도스 공격 탐지 및 대응을 위한 수신시간 차의 비교 그래프.
도 3은 본 발명의 제1 실시예에 따른 디도스 공격 탐지 및 대응 방법의 흐름도.
도 4는 본 발명의 제2 실시예에 따른 디도스 공격 탐지 및 대응 장치의 블록 구성도.
도 5는 본 발명의 제2 실시예에 따른 디도스 공격 탐지 및 대응 방법의 흐름도.
도 6a는 본 발명의 제3 실시예에 따른 정상적인 사용자에 의한 요청(request)의 분포를 나타낸 그래프.
도 6b는 본 발명의 제3 실시예에 따른 정상적인 사용자 및 디도스 공격에 의한 요청(request)의 분포를 나타낸 그래프.
<도면의 주요부분에 대한 부호의 설명>
110 : 클라이언트 단말기 120 : 웹서버
130 : 디도스 공격 탐지 및 대응 장치 132 : 수신부
133 : 시간 정보 산출부 134 : 데이터 측정부
135 : 시간 분포 산출부 136, 139 : 디도스 판별부
137 : 시간 정보 비교부 138 : 차단부
140 : 네트워크

Claims (5)

  1. 소정의 IP로 특정되는 클라이언트 단말기로부터 HTTP 요청을 수신하는 수신부;
    상기 HTTP 요청의 수신시간을 소정의 관측시간동안 측정하여 HTTP 요청간의 수신시간 차를 산출하는 시간 정보 산출부;
    상기 HTTP 요청간의 수신시간 차에 대한 HTTP 요청간의 수신시간 차의 분포 비율 또는 개수를 나타내는 상기 HTTP 요청의 상기 수신시간 차의 분포를 산출하는 시간 분포 산출부;
    상기 산출된 수신시간 차의 분포값을 미리 저장된 정상 트래픽 분포 정보와 비교하고, 상기 정상 트래픽 분포 정보 보다 큰 분포값을 합산한 합산값을 생성하는 시간 정보 비교부-상기 합산값은 상기 분포값의 상기 정상 트래픽 분포 정보에 대한 초과값을 합산한 것임-;
    상기 합산값을 소정의 임계치와 비교하고, 상기 합산값이 소정의 임계치보다 큰 경우 상기 IP의 클라이언트 단말기의 접속을 디도스 공격으로 탐지하는 디도스 판별부; 및
    상기 디도스 판별부가 디도스 공격으로 탐지하는 경우 상기 클라이언트 단말기의 접속을 차단하는 차단부를 포함하는 분포 기반 디도스 공격 탐지 및 대응 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 시간 분포 산출부는,
    상기 수신시간 차의 분포를 상기 HTTP 요청의 전체 모집단에 대한 비율에 대해 산출하는 것을 특징으로 하는 분포 기반 디도스 공격 탐지 및 대응 장치.
  4. 제3항에 있어서,
    상기 임계치는 상기 관측시간이 10초인 경우 40 ~ 60%인 것을 특징으로 하는 분포 기반 디도스 공격 탐지 및 대응 장치.
  5. 제1항에 있어서,
    상기 합산값을 상기 임계치와 비교하고, 상기 합산값이 상기 임계치의 소정 비율보다 큰 경우 상기 디도스 판별부의 작동을 개시하는 판별 개시부를 더 포함하는 분포 기반 디도스 공격 탐지 및 대응 장치.
KR1020090111217A 2009-11-18 2009-11-18 분포 기반 디도스 공격 탐지 및 대응 장치 KR101061377B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090111217A KR101061377B1 (ko) 2009-11-18 2009-11-18 분포 기반 디도스 공격 탐지 및 대응 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090111217A KR101061377B1 (ko) 2009-11-18 2009-11-18 분포 기반 디도스 공격 탐지 및 대응 장치

Publications (2)

Publication Number Publication Date
KR20110054537A KR20110054537A (ko) 2011-05-25
KR101061377B1 true KR101061377B1 (ko) 2011-09-02

Family

ID=44363711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090111217A KR101061377B1 (ko) 2009-11-18 2009-11-18 분포 기반 디도스 공격 탐지 및 대응 장치

Country Status (1)

Country Link
KR (1) KR101061377B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419861B1 (ko) 2013-07-30 2014-07-16 (주) 시스메이트 가공된 하프 클로즈 순서에 따른 패킷을 사용한 세션 관리 및 세션 자원 소모형 디도스 공격 방어 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130030086A (ko) 2011-09-16 2013-03-26 한국전자통신연구원 비정상 세션 연결 종료 행위를 통한 분산 서비스 거부 공격 방어 방법 및 장치
KR101149587B1 (ko) * 2011-10-31 2012-05-29 한국인터넷진흥원 이동통신망의 시그널링 도스 트래픽 탐지방법
KR101713911B1 (ko) 2015-10-06 2017-03-09 주식회사 윈스 네트워크의 고속 연속적 데이터의 손실 방지 서비스 제공 방법 및 시스템
RU2676021C1 (ru) * 2017-07-17 2018-12-25 Акционерное общество "Лаборатория Касперского" Система и способ определения DDoS-атак

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100632204B1 (ko) * 2004-03-31 2006-10-09 아주대학교산학협력단 네트워크 상의 공격 탐지 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100632204B1 (ko) * 2004-03-31 2006-10-09 아주대학교산학협력단 네트워크 상의 공격 탐지 장치 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419861B1 (ko) 2013-07-30 2014-07-16 (주) 시스메이트 가공된 하프 클로즈 순서에 따른 패킷을 사용한 세션 관리 및 세션 자원 소모형 디도스 공격 방어 장치 및 방법

Also Published As

Publication number Publication date
KR20110054537A (ko) 2011-05-25

Similar Documents

Publication Publication Date Title
KR101077135B1 (ko) 웹 서비스 대상 응용계층 디도스 공격 탐지 및 대응 장치
KR101061375B1 (ko) Uri 타입 기반 디도스 공격 탐지 및 대응 장치
US11316878B2 (en) System and method for malware detection
US8966627B2 (en) Method and apparatus for defending distributed denial-of-service (DDoS) attack through abnormally terminated session
US8001601B2 (en) Method and apparatus for large-scale automated distributed denial of service attack detection
US11297098B2 (en) DDoS defence in a packet-switched network
US8844034B2 (en) Method and apparatus for detecting and defending against CC attack
KR101424490B1 (ko) 지연시간 기반 역 접속 탐지 시스템 및 그 탐지 방법
US10911473B2 (en) Distributed denial-of-service attack detection and mitigation based on autonomous system number
US11032315B2 (en) Distributed denial-of-service attack mitigation with reduced latency
US11005865B2 (en) Distributed denial-of-service attack detection and mitigation based on autonomous system number
JP2006295920A (ja) 無線ネットワーク内の電力消耗サービス拒否攻撃の検出
KR101061377B1 (ko) 분포 기반 디도스 공격 탐지 및 대응 장치
US20110016523A1 (en) Apparatus and method for detecting distributed denial of service attack
CN113518057B (zh) 分布式拒绝服务攻击的检测方法、装置及其计算机设备
KR101538374B1 (ko) 사이버 위협 사전 예측 장치 및 방법
Tang et al. FR-RED: Fractal residual based real-time detection of the LDoS attack
JP2004356915A (ja) 情報処理システム、情報処理装置、プログラム、及び通信ネットワークにおける通信の異常を検知する方法
EP2112800B1 (en) Method and system for enhanced recognition of attacks to computer systems
JP2017147558A (ja) 攻撃検知装置、攻撃検知システムおよび攻撃検知方法
He et al. Adaptive traffic sampling for P2P botnet detection
KR101587845B1 (ko) 디도스 공격을 탐지하는 방법 및 장치
Singh et al. Denial of service attack: analysis of network traffic anormaly using queuing theory
KR20070083089A (ko) 이상 트래픽 분석방법
KR101686472B1 (ko) 네트워크 보안 장치, 네트워크 보안 장치에서 수행되는 악성 행위 방어 방법

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: 20140813

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150813

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee