KR101196325B1 - 분산서비스거부 공격 탐지장치 및 방법 - Google Patents

분산서비스거부 공격 탐지장치 및 방법 Download PDF

Info

Publication number
KR101196325B1
KR101196325B1 KR1020090081900A KR20090081900A KR101196325B1 KR 101196325 B1 KR101196325 B1 KR 101196325B1 KR 1020090081900 A KR1020090081900 A KR 1020090081900A KR 20090081900 A KR20090081900 A KR 20090081900A KR 101196325 B1 KR101196325 B1 KR 101196325B1
Authority
KR
South Korea
Prior art keywords
server
client
distributed service
request
distributed
Prior art date
Application number
KR1020090081900A
Other languages
English (en)
Other versions
KR20110006565A (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 US12/633,121 priority Critical patent/US20110016523A1/en
Publication of KR20110006565A publication Critical patent/KR20110006565A/ko
Application granted granted Critical
Publication of KR101196325B1 publication Critical patent/KR101196325B1/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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

본 발명은 분산서비스거부 공격 탐지장치 및 방법에 관한 것이다. 즉, 본 발명에서는 HTTP 1.1 프로토콜 기반의 서버와 클라이언트로 이루어지는 네트워크상에서 분산서비스거부 공격을 탐지하는 방법에 있어서, HTTP 1.1 프로토콜을 적용하여 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버와 클라이언트로 구성되는 네트워크상 서버의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격에 대해 클라이언트의 다수의 GET 요청과 서버의 응답 패킷의 순서를 모니터링하여 서버의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽을 분산서비스거부 공격의 트래픽으로 판단하는 방식으로 보다 용이하게 분산서비스거부 공격을 탐지할 수 있도록 한다.
HTTP, DDoS, 분산서비스거부, 트래픽, GET

Description

분산서비스거부 공격 탐지장치 및 방법{DISTRIBUTED DENIAL OF SERVICE ATTACK SEARCH APPARATUS AND METHOD THEREOF}
본 발명은 분산서비스거부(distributed denial of service :DDoS) 공격에 대한 방어에 관한 것으로, 특히 HTTP 1.1 프로토콜(protocol)을 적용하여 지속적인 연결(persistent connection) 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버(server)와 다수의 클라이언트(client)로 구성되는 네트워크(network)상 서버(server)의 응용 계층(application layer)에서 하나의 세션(session)을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격에 대해 클라이언트의 다수의 GET 요청과 서버의 응답 패킷(response packet)의 순서를 모니터링(monitoring)하여 서버의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽(traffic)을 분산서비스거부 공격의 트래픽으로 판단하는 방식으로 보다 용이하게 분산서비스거부 공격을 탐지할 수 있도록 하는 HTTP 1.1 프로토콜 기반의 분산서비스거부 공격 탐지장치 및 방법에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-S-038-01, 과제명: 분산서비스 공격(DDoS) 공격 대응기술 개발].
근래 들어, 네트워크의 발전으로 인터넷(internet)을 통해 웹(web) 등의 다양한 서비스가 가능하게 되었으나, 위와 같은 네트워크의 발전된 기술을 바탕으로 네트워크에 대한 다양한 공격 역시 고도화되고 시도횟수도 증가되고 있는 상황이다. 특히, 이러한 공격은 다양한 해킹 툴(hacking tool)이 전문가에 의해 개발되어 배포됨에 따라 누구나 쉽게 강력한 해킹 또는 공격을 시도할 수 있게 되었으며, 과거 단순 과시용 공격에서 현재는 금전적인 이익을 얻기 위한 공격으로 변하고 있는 추세에 있어 그 심각성을 더하고 있다.
위와 같은, 네트워크에 대한 공격 중 하나로, 최근의 분산서비스거부 공격은 일반 기업체에서 가장 중요시되는 서버가 서비스를 제공하지 못하도록 Bot 등을 이용하여 공격을 시도하고 있다.
이러한 분산서비스거부 공격에 대응하기 위해 몇몇 탐지 및 대응 기법이 개발되어 있으나, 대부분의 분산서비스거부 공격에 대한 대응 기법이 네트워크 레벨(Network level) 의 SYN 플로딩(flooding) 공격 등을 탐지하고 차단하는 방법에 관한 것으로, 서버 등의 응용 계층 서비스를 방해하는 분산서비스거부 공격에 대한 탐지 및 대응 기술은 미흡한 것이 사실이다.
즉, 현재 분산서비스거부 공격에 대해 대응하기 위해 제안되고 있는 대부분의 방법은 대부분 대역폭 제한(rate limit)과 같이 서버로 입력되는 트래픽의 양을 줄여 분산서비스거부 공격을 완화시키는 수준의 방법으로, 분산서비스거부 공격 패킷 자체를 탐지하거나 공격자 IP(internet protocol)를 찾아 대응하는 근본적인 탐 지 및 공격 차단 기술은 제안되지 못하고 있다.
이러한 상황에서, HTTP 1.1 프로토콜이 사용되면서 지속적인 연결(persistent connection) 유지 기능에 의하여 하나의 세션을 연결한 후 다중의 URI를 요청하는 GET 패킷을 서버로 전달하는 것이 가능해졌다. 즉, HTTP 1.1 프로토콜에서는 지속적인 연결 유지 기능을 허용하는데, 이런 경우 하나의 세션에서 다수의 HTTP GET 요구가 가능하며, 또한 단계별(pipelined) GET 요구도 가능하다.
도 1은 HTTP 1.1 프로토콜을 지원하는 서버에서 클라이언트가 하나의 세션 연결을 통하여 다수의 GET 요청을 하는 신호 흐름을 도시한 것이다.
먼저, 클라이언트(100)는 서버(110)에 서비스를 요청하기 위해 SYN 패킷을 전송하여 세션 연결을 요청한다(S100). 이때 서버(110)는 자원이 허용되면 위와 같이 전송된 SYN 패킷에 대해 SYN+ACK 패킷으로 응답한다(S102). 그러면 서버(110)로부터 송신된 SYN+ACK 패킷을 수신한 클라이언트(100)가 ACK 패킷을 서버(110)로 보냄(S104)으로써 하나의 새로운 세션이 설정된다.
이에 따라, 위와 같이 클라이언트(100)와 서버(110)간 세션이 설정된 이후 GET 패킷을 통해 클라이언트(100)가 원하는 페이지를 서버(110)에 요구한다(S106). 그러면 서버(110)는 클라이언트(100)로부터 송신된 GET 패킷을 수신하고, GET 패킷에 대응하여 전달할 데이터를 응답 패킷으로 전달하며(S108), 클라이언트(100)는 위와 같은 서버(110)로부터 전송된 응답 패킷을 수신하였다는 응답으로 ACK 패킷을 수시로 서버(110)로 보내게 된다(S110).
여기까지의 과정에 대하여 좀더 구체적으로 설명하기로 한다. 예를 들어, 클 라이언트(100)가 www.ddos.com이라는 웹상 서버(110)에 접속하고자 하는 경우, 웹 브라우저(web browser) 입력 창에 www.ddos.com을 입력하여 접속을 시도하면 클라이언트(100)는 (S100)단계에서 (S104)단계까지의 연결 설정 과정을 진행한다. 이후, 연결된 세션을 통해 www.ddos.com의 메인 페이지(main page)에 대한 GET 요청을 시도한다.
이때, 일반적으로 하나의 웹 페이지(web page)는 여러 개의 GET 요청에 의해서 웹 브라우저 상에 페이지를 표시하게 된다. 예를 들어, 메인 페이지(main page)를 요청하면 메인 페이지를 구성하고 있는 스크립트(script), 이미지 파일(image file), 상세 URI(uniform resource identifier) 등의 정보는 메인 페이지 요청에 의해 클라이언트(100)로 전달되며, 이 정보에 의해 클라이언트는 연속된 데이터를 요청하게 된다.
즉, 추가적인 GET 요청 패킷이 서버(110)로 전달되는 것이다. 이와 같이 클라이언트(100)는 www.ddos.com 메인 페이지를 완전히 수신하여야 다음에 요청할 데이터들을 알 수 있다. 이러한 추가적인 요구는 도 1의 (S112)단계와 (S114)단계와 같이 연속된 GET 요청의 형태로 발생하게 되며, 이들에 대한 서버(110)의 응답으로 (S116)단계와 (S118)단계에서 응답 패킷이 수신되는 것이다.
상기한 도 1에서 살펴본 바와 같이, HTTP 1.1 프로토콜 기반의 서버에서는 지속적인 연결 유지 기능에 의해서 동일한 서버에 반복적으로 연결 설정을 시도해야 하는 단점이 극복되어 서버의 연결 수를 감소시키는 장점이 있으나, 하나의 연결 안에서 다양한 URI를 반복적으로 요구하는 HTTP GET 플로딩(flooding) 또는 CC 플로딩(flooding) 등의 분산서비스 거부 공격 역시 가능해진다.
예를 들어, www.ddos.com이 50개의 URI로 구성되어 있다고 했을 때, 모든 URI를 하나의 세션에서 요청 할 수 있게 됨으로써, 공격자는 하나의 세션을 연결한 후, 이들 50개의 URI를 반복적으로 요청하여 서버가 정상적인 서비스를 하지 못하도록 하는 공격이 가능해지는 것이다.
즉, 과거 HTTP 1.0에서 모든 GET요구는 새로운 세션을 생성하여 요청해야만 했기 때문에 다수의 GET요청이 다수의 세션 요구로 이어져 네트워크를 공격하는 트래픽이 손쉽게 탐지가 가능하였으나, HTTP 1.1 에서는 하나의 세션을 연결하여 다수의 GET 요청이 가능하기 때문에 위와 같이, 하나의 세션을 연결한 후 이들 50개의 URI를 반복적으로 요청하는 등으로 서버가 정상적인 서비스를 하지 못하도록 하는 공격의 경우 정상적인 사용자의 서비스 요구와 공격자의 서비스 요구를 분류하기가 어려운 문제점이 있었다.
이를 위해, 종래에는 HTTP 1.1 프로토콜 기반의 서버에 대한 분산서비스거부 공격을 탐지하기 위해 각 호스트가 단위 시간당 발생하는 GET 패킷의 수를 카운트(count)하여 특정 임계치(threshold value) 초과 여부를 기준으로 공격 호스트를 탐지하는 방법 등이 있으나, 이와 같은 종래 방법에서는 서버의 성능과 웹 페이지의 복잡도 등에 따라 각 서버에 다른 임계치를 설정하여야 하며, 분산서비스거부 공격을 하는 경우 탐지가 용이하지 않은 문제점이 있었다. 또한 분산서비스거부 공격에 대한 탐지를 위해 서버에 설정하는 임계치를 잘못 설정하는 경우 분산서비스거부 공격에 대한 오탐지가 발생하여 오히려 정상 사용자 트래픽을 차단하게 되는 문제점이 있었다.
따라서, 본 발명은 HTTP 1.1 프로토콜 기반에서 제공되는 지속적인 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버와 클라이언트로 구성되는 네트워크상 서버의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격에 대해 클라이언트의 다수의 GET 요청과 서버의 응답 패킷의 순서를 모니터링하여 서버의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽을 분산서비스거부 공격의 트래픽으로 탐지하는 방식으로 보다 용이하게 분산서비스거부 공격을 탐지할 수 있도록 하는 HTTP 1.1 프로토콜 기반의 분산서비스거부 공격 탐지장치 및 방법을 제공하고자 한다.
상술한 본 발명은 분산서비스거부 공격을 탐지하는 장치로서, 클라이언트와 서버간 세션 설정에 따라 송/수신되는 다수의 GET 요청 및 응답을 모니터링하는 모니터링부와, 상기 모니터링되는 상기 클라이언트와 서버간 다수의 GET 요청 및 응답을 분석하여 상기 서버에 대하여 발생하는 분산서비스거부 공격의 트래픽을 탐지하는 공격 탐지부를 포함한다.
또한, 상기 클라이언트는, 상기 세션 설정 후, 상기 서버로 다수의 GET 요청 을 전송하여 원하는 서비스를 요청하고, 상기 서버는, 상기 세션 설정 후, 상기 클라이언트로부터 수신되는 다수의 GET 요청에 응답하여 각각의 GET 요청에 대응되는 데이터를 상기 클라이언트로 전송하며, 상기 클라이언트는, 상기 다수의 GET 요청에 대한 응답으로 상기 서버로부터 전송되는 데이터를 수신하는 경우, 상기 서버로 상기 데이터의 수신을 알리는 ACK 패킷을 송신하는 것을 특징으로 한다.
또한, 상기 공격 탐지부는, 상기 클라이언트와 서버간 송/수신되는 다수의 GET 요청 및 응답을 분석하여 상기 클라이언트로부터의 첫 번째 GET 요청에 대한 상기 서버의 응답완료 전에 상기 클라이언트로부터 두 번째 GET 요청이 다시 발생하는 경우 이를 분산서비스거부 공격으로 탐지하는 것을 특징으로 한다.
또한, 상기 장치는, 상기 공격 탐지부로부터 탐지된 상기 분산서비스거부 공격의 트래픽을 차단시키는 트래픽 차단부를 더 포함하는 것을 특징으로 한다.
또한, 본 발명은 분산서비스거부 공격을 탐지하는 방법으로서, 클라이언트와 서버간 세션을 설정하는 단계와, 상기 세션 설정 후, 상기 클라이언트와 서버간 송/수신되는 다수의 GET 요청 및 응답을 분석하는 단계와, 상기 분석에 따라 상기 서버에 대하여 발생하는 분산서비스거부 공격의 트래픽을 탐지하는 단계를 포함한다.
또한, 상기 분산서비스거부 공격 탐지단계는, 상기 클라이언트로부터 상기 서버로 전송되는 다수의 GET 요청을 모니터링하는 단계와, 상기 다수의 GET 요청에 대한 상기 서버의 응답을 모니터링하는 단계와, 상기 모니터링을 통해 상기 클라이언트로부터의 첫 번째 GET 요청에 대한 상기 서버의 응답완료 전에 상기 클라이언트로부터 두 번째 GET 요청이 다시 발생하는지를 검사하는 단계와, 상기 클라이언 트로부터의 첫 번째 GET 요청에 대한 상기 서버의 응답완료 전에 상기 클라이언트로부터 두 번째 GET 요청이 발생하는 경우 이를 분산서비스거부 공격으로 탐지하는 단계를 포함한다.
또한, 상기 세션 설정 단계는, 상기 클라이언트로부터 SYN 패킷을 통한 세션 설정 요청을 수신하는 단계와, 상기 SYN 패킷에 대한 응답으로 ACK 패킷을 전송하여 상기 클라이언트와 세션을 설정하는 단계를 포함한다.
또한, 상기 방법은, 상기 분산서비스거부 공격 탐지 단계 이후, 상기 분산서비스거부 공격으로 탐지된 상기 클라이언트로부터의 트래픽을 차단시키는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에서는 HTTP 1.1 프로토콜 기반의 서버와 클라이언트로 구성되는 네트워크상에서 분산서비스거부 공격을 탐지함에 있어서, HTTP 1.1 프로토콜 기반에서 제공되는 지속적인 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버와 클라이언트로 구성되는 네트워크상 서버의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격에 대해 클라이언트의 다수의 GET 요청과 서버의 응답 패킷의 순서를 모니터링하여 서버의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽을 분산서비스거부 공격의 트래픽으로 판단함으로써 보다 용이하게 분산서비스거부 공격을 탐지할 수 있는 이점이 있다.
이에 따라, 임계치 등의 불명확한 요소를 사용하지 않으면서 분산서비스거부 공격을 시도하는 공격자를 탐지 할 수 있으며, 공격자와 정상 사용자를 구분하기 위한 학습 등의 행위도 필요 없게 된다. 즉, 클라이언트로부터의 첫 번째 GET 요청에 대한 서버의 응답완료 시점과 두 번째 GET 요청의 발생 시점만을 확인하면 공격을 바로 탐지할 수 있고 공격자의 IP를 바로 확인하여 신속히 대응할 수 있는 이점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2는 본 발명의 실시 예에 따른 HTTP 1.1을 적용하여 다수의 GET 요청을 지원하는 서버에서 분산서비스거부 공격을 탐지하는 장치 및 네트워크 구성을 도시한 것이다.
이하, 도 2를 참조하여 다수의 GET 요청을 지원하는 서버(110)의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격을 탐지 하는 동작을 상세히 설명하기로 한다.
먼저, 클라이언트(100)는 인터넷 등의 네트워크와 연결될 수 있는 인터페이스 단말기(interface terminal)로 PC(personal computer) 등의 단말기가 될 수 있다. 이와 같은 클라이언트(100)는 인터넷을 통해 연결을 원하는 웹상의 서버(110) 즉, 예를 들어, www.ddos.com 등으로 연결할 수 있으며, 서버(110)와의 세션을 설정하는 경우 서버(110)가 HTTP 1.1 프로토콜을 지원함에 따라 지속적인 연결(persistent connection) 유지 기능을 통해 다수의 GET 요청을 서버(110)로 전송할 수 있게 된다.
서버(110)는 인터넷 등의 네트워크를 통해 연결되는 다수의 클라이언트(100)로부터 세션 설정 요청이 있는 경우 클라이언트(100)와 세션 설정을 위한 패킷 교환을 통해 세션을 설정하며, HTTP 1.1 프로토콜 기반에서 지원하는 지속적인 연결 유지 기능을 제공하여 클라이언트(100)로부터 전송되는 다수의 GET 요청을 수신하고, GET 요청에 따른 응답 패킷을 전송하여 클라이언트(100)에서 요청하는 웹페이지 등의 해당 데이터를 전송함으로써, 클라이언트(100)가 원하는 서비스를 얻을 수 있도록 한다.
분산서비스거부 공격 탐지 장치(200)는 HTTP 1.1 프로토콜 기반에서 제공되는 지속적인 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버(110)와 클라이언트(100)로 구성되는 네트워크상 서버(110)의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격을 탐지하기 위해, 클라이언트(100)의 다수의 GET 요청과 서버(110)의 응답 패킷의 순서를 분석하여 서버(110) 의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽을 분산서비스거부 공격의 트래픽으로 탐지하는 방식으로 클라이언트(100)로부터 서버(110)로 행해지는 분산서비스거부 공격을 탐지한다.
즉, 분산서비스거부 공격 탐지장치(200)의 모니터링부(monitoring)(202)는 HTTP 1.1 프로토콜 기반에서 제공되는 지속적인 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버(110)와 클라이언트(100)로 구성되는 네트워크상에서 서버(110)의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격을 탐지하기 위해, 각 클라이언트(100)로부터의 다수의 GET 요청과 그에 따른 서버(110)에서의 응답 패킷의 흐름을 모니터링한다.
공격 탐지부(204)는 클라이언트(100)와 서버(110)간 송/수신되는 다수의 GET 요청 및 그에 따른 응답 패킷의 흐름 정보를 모니터링부(202)로부터 입력받아 GET 요청 및 응답 패킷의 순서를 분석하여 분산서비스거부 공격을 탐지한다.
일반적으로, 정상적인 클라이언트(100)는 서버(110)의 홈페이지 URL등은 알 수 있지만 웹 페이지를 구성할 요소들은 알 수 없다. 이 요소들은 첫 번째 GET 요청에 의해 수집되기 때문이다. 이렇게 수집된 요소 정보들을 바탕으로 도 1에서와 같이 웹 브라우저가 나머지 페이지 구성요소를 동일한 세션에서 GET 요청에 의해 가져오게 된다. 하지만 분산서비스거부 공격을 수행하는 공격자의 클라이언트(100)는 첫 번째 GET 요청에 의한 응답이 끝나기 전에 두 번째 GET 요청을 하며, 이러한 요청은 미래의 일을 예측 할 수 없는 원리를 무시한 행위로 공격자에게만 나타나는 행위이다.
따라서, 공격 탐지부(204)는 클라이언트(100)로부터의 첫 번째 GET 요청에 대한 서버(110)의 응답완료 전에 해당 클라이언트(100)로부터 두 번째 GET 요청이 발생하는 경우 이를 분산서비스거부 공격으로 탐지할 수 있다.
도 3은 본 발명의 실시 예에 따른 HTTP 1.1 프로토콜 기반으로 하나의 세션 연결을 통하여 다수의 GET 요청을 지원하는 서버에서 분산서비스거부 공격 탐지를 위한 클라이언트와 서버간 GET 요청 및 응답 신호 흐름을 도시한 것이다.
먼저, 클라이언트(100)는 서버(110)에 서비스를 요청하기 위해 SYN 패킷을 전송하여 세션 연결을 요청한다(S300). 이때 서버(110)는 자원이 허용되면 (S300)단계에서 전송된 SYN 패킷에 대해 SYN+ACK 패킷으로 응답한다(S302). 그러면 위와 같이 서버(110)로부터 송신된 SYN+ACK 패킷을 수신한 클라이언트(100)가 ACK 패킷을 서버(110)로 보냄(S304)으로써 클라이언트(100)와 서버(110)간 하나의 새로운 세션이 설정된다.
이에 따라, 위와 같이 클라이언트(100)와 서버(110)간 세션이 설정된 이후 GET 패킷을 통해 클라이언트(100)가 원하는 페이지를 서버(110)에 요구한다(S306). 그러면, 서버(110)는 클라이언트(100)로부터 송신된 GET 패킷을 수신하고, GET 패킷에 대응하여 전달할 데이터를 응답 패킷으로 전달하며(S308), 클라이언트(100)는 위와 같은 서버(110)로부터 전송된 응답 패킷을 수신하였다는 응답으로 ACK 패킷을 수시로 서버(110)로 보내게 된다(S310).
즉, 예를 들어, 클라이언트(100)가 www.ddos.com이라는 웹상 서버(110)에 접속하고자 하는 경우, 웹 브라우저 입력 창에 www.ddos.com을 입력하여 접속을 시도 하면 클라이언트(100)는 (S300)단계에서 (S304)단계까지의 연결 설정 과정을 진행한다. 이후 연결된 세션을 통해 www.ddos.com의 메인 페이지에 대한 GET 요청을 시도하고(S306), 서버(110)로부터 전송된 응답 패킷을 수신하여(S308) 원하는 파일을 순차적으로 얻게 되는 것이다.
이때, 위 (S300)~(S310)단계까지의 클라이언트(100)와 서버(110)간 GET 요청 및 응답 패킷의 모니터링을 통해서는 정상적인 클라이언트(100)에 의한 트래픽인지 분산서비스거부 공격에 의한 트래픽인지를 구분할 수 없다.
그러나, (S312)단계의 신호 흐름을 살펴보면, 서버(110)의 응답인 (S308)단계가 끝나기도 전에 클라이언트(100)로부터 다시 GET 요청이 발생하는 것을 볼 수 있다.
이러한 요청은 HTTP 1.1프로토콜 기반의 세션 연결 유지 기능을 이용하여 다수의 GET 요청이 가능한 상황에서는 정상적인 요청으로 보여질 수도 있다. 그러나, 이러한 요청은 일반적인 서비스 상황에서는 발생할 수 없는 비정상적인 것이다. 왜냐하면 클라이언트(100)와 서버(110)간 세션이 연결된 후, 첫 번째 GET 요청에 대해서는 해당 GET 요청에 대한 서버(110)의 응답을 완전히 수신해야만 클라이언트(100)가 추가적으로 GET 요청을 할 URI나 이미지 파일 등에 대한 정보를 얻을 수 있기 때문이다.
따라서, 위와 같은 (S312)단계에서 클라이언트(100)의 GET 요청은 클라이언트(100)가 (S308)단계에서의 서버(110)의 응답이 완료된 후에라야 알 수 있는 정보를 이미 알고 GET 요청을 시도하는 것이므로, 정상적인 트래픽에서는 일어날 수 없 는 상황인 것이다.
따라서, 이와 같이, 클라이언트(100)와 서버(110)간 세션 연결 설정 후, 클라이언트(100)로부터의 첫 번째 GET 요청(S306)에 대한 서버(110)의 응답인 (S308)단계에서의 응답 패킷이 클라이언트(100)로 완전히 수신되기 전에 다시 해당 클라이언트(100)로부터 두 번째 GET 요청(S312)이 수신되는 경우 이를 분산서비스거부 공격으로 탐지할 수 있는 것이다.
즉, 분산서비스거부 공격 탐지장치(200)의 모니터링부(202)에서는 위와 같은 클라이언트(100)와 서버(110)간 GET 요청 및 응답 패킷의 송수신 순서를 모니터링하여 모니터링 정보를 공격 탐지부(204)로 제공한다.
그러면 공격 탐지부(204)는 모니터링부(202)에서 모니터링된 클라이언트(100)와 서버(110)간 GET 요청 및 응답 패킷의 송/수신 순서를 분석하여 클라이언트(100)와 서버(110)간 세션 연결 설정 후, 클라이언트(100)로부터의 첫 번째 GET 요청(S306)에 대한 서버(110)의 응답인 (S308)단계에서의 응답 패킷이 클라이언트(100)로 완전히 수신되기 전에 다시 해당 클라이언트(100)로부터 두 번째 GET 요청(S312)이 수신되는 경우 이를 분산서비스거부 공격으로 탐지하게 된다.
이때, 위와 같이 분산서비스거부 공격으로 탐지된 클라이언트(100)의 트래픽에 대해서는 미리 설정된 정책에 따라 트래픽 차단부(206)에서 해당 클라이언트(100)로부터의 모든 트래픽을 차단시키는 등의 동작을 수행하게 된다.
상기한 바와 같이, 본 발명에서는 HTTP 1.1 프로토콜 기반의 서버와 클라이언트로 구성되는 네트워크상에서 분산서비스거부 공격을 탐지함에 있어서, HTTP 1.1 프로토콜 기반에서 제공되는 지속적인 연결 유지 기능을 바탕으로 다수의 GET 요청을 허용하는 서버와 다수의 클라이언트로 구성되는 네트워크상 서버의 응용 계층에서 하나의 세션을 통해 반복적으로 GET 요청을 하는 분산서비스거부 공격에 대해 클라이언트의 다수의 GET 요청과 서버의 응답 패킷의 순서를 모니터링하여 서버의 응답완료 전에 또 다른 GET 요청을 전송하는 트래픽을 분산서비스거부 공격의 트래픽으로 판단하는 방식으로 보다 용이하게 분산서비스거부 공격을 탐지할 수 있다.
이에 따라, 임계치 등의 불명확한 요소를 사용하지 않으면서 분산서비스거부 공격을 시도하는 공격자를 탐지 할 수 있으며, 공격자와 정상 사용자를 구분하기 위한 학습 등의 행위도 필요 없게 된다. 즉, 클라이언트로부터의 첫 번째 GET 요청에 대한 서버의 응답 발생 시점과 두 번째 GET 요청의 발생 시점만을 확인하면 공격을 바로 탐지할 수 있고 공격자의 IP를 바로 확인하여 대응 할 수 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
도 1은 HTTP 1.1 기반의 서버에서 클라이언트와 서버간 신호 흐름도,
도 2는 본 발명의 실시 예에 따른 HTTP 1.1 기반의 서버에서 분산서비스거부 공격 탐지장치 및 네트워크 구성도,
도 3은 본 발명의 실시 예에 따른 HTTP 1.1 기반의 서버에서 분산서비스거부 공격이 포함된 클라이언트와 서버간 신호 흐름도.
<도면의 주요 부호에 대한 간략한 설명>
100 : 클라이언트 110 : 서버
200 : 분산서비스거부 공격 탐지장치 202 : 모니터링부
204 : 공격 탐지부 206 : 트래픽 차단부

Claims (16)

  1. 클라이언트와 서버간 세션 설정에 따라 송/수신되는 다수의 GET 요청 및 응답을 모니터링하는 모니터링부와,
    상기 모니터링되는 상기 클라이언트와 서버간 다수의 GET 요청 및 응답을 분석하여 상기 서버에 대하여 발생하는 분산서비스거부 공격의 트래픽을 탐지하는 공격 탐지부
    를 포함하는 분산서비스거부 공격 탐지장치.
  2. 제 1 항에 있어서,
    상기 클라이언트는,
    상기 세션 설정 후, 상기 서버로 다수의 GET 요청을 전송하여 서비스를 요청하는 분산서비스거부 공격 탐지장치.
  3. 제 2 항에 있어서,
    상기 서버는,
    상기 세션 설정 후, 상기 클라이언트로부터 수신되는 다수의 GET 요청에 응답하여 각각의 GET 요청에 대응되는 데이터를 상기 클라이언트로 전송하는 분산서 비스거부 공격 탐지장치.
  4. 제 1 항에 있어서,
    상기 서버는,
    상기 클라이언트로부터 전송되는 SYN 패킷을 통한 세션 요청을 수신하는 경우 상기 SYN 패킷에 대한 응답으로 ACK 패킷을 전송하여 상기 클라이언트와 세션을 설정하는 분산서비스거부 공격 탐지장치.
  5. 제 1 항에 있어서,
    상기 장치는,
    상기 공격 탐지부로부터 탐지된 상기 분산서비스거부 공격의 트래픽을 차단시키는 트래픽 차단부를 더 포함하는 분산서비스거부 공격 탐지장치.
  6. 제 1 항에 있어서,
    상기 다수의 GET 요청은,
    HTTP 1.1 프로토콜 기반에서 수행되는 분산서비스거부 공격 탐지장치.
  7. 제 1 항에 있어서,
    상기 서버는,
    상기 HTTP 1.1 프로토콜을 지원하는 분산서비스거부 공격 탐지장치.
  8. 제 1 항에 있어서,
    상기 분산서비스거부 공격은,
    HTTP GET 플로딩인 분산서비스거부 공격 탐지장치.
  9. 클라이언트와 서버간 세션을 설정하는 단계와,
    상기 세션 설정 후, 상기 클라이언트와 서버간 송/수신되는 다수의 GET 요청 및 응답을 분석하는 단계와,
    상기 분석에 따라 상기 서버에 대하여 발생하는 분산서비스거부 공격의 트래픽을 탐지하는 단계
    를 포함하는 분산서비스거부 공격 탐지방법.
  10. 제 9 항에 있어서,
    상기 분산서비스거부 공격 탐지단계는,
    상기 클라이언트로부터 상기 서버로 전송되는 다수의 GET 요청을 모니터링하는 단계와,
    상기 다수의 GET 요청에 대한 상기 서버의 응답을 모니터링하는 단계와,
    상기 모니터링을 통해 상기 클라이언트로부터의 첫 번째 GET 요청에 대한 상기 서버의 응답완료 전에 상기 클라이언트로부터 두 번째 GET 요청이 다시 발생하는지를 검사하는 단계와,
    상기 클라이언트로부터의 첫 번째 GET 요청에 대한 상기 서버의 응답완료 전에 상기 클라이언트로부터 두 번째 GET 요청이 발생하는 경우 이를 분산서비스거부 공격으로 탐지하는 단계
    를 포함하는 분산서비스거부 공격 탐지방법.
  11. 제 9 항에 있어서,
    상기 클라이언트는,
    상기 세션 설정 단계 이후, 상기 서버로 다수의 GET 요청을 전송하여 서비스를 요청하는 분산서비스거부 공격 탐지방법.
  12. 제 11 항에 있어서,
    상기 서버는,
    상기 세션 설정 단계 이후, 상기 클라이언트로부터 수신되는 다수의 GET 요청에 응답하여 각각의 GET 요청에 대응되는 데이터를 상기 클라이언트로 전송하는 분산서비스거부 공격 탐지방법.
  13. 제 9 항에 있어서,
    상기 방법은,
    상기 분산서비스거부 공격 탐지 단계 이후,
    상기 분산서비스거부 공격으로 탐지된 상기 클라이언트로부터의 트래픽을 차단시키는 단계를 더 포함하는 분산서비스거부 공격 탐지방법.
  14. 제 9 항에 있어서,
    상기 다수의 GET 요청은,
    HTTP 1.1 프로토콜 기반에서 수행되는 분산서비스거부 공격 탐지방법.
  15. 제 9 항에 있어서,
    상기 서버는,
    상기 HTTP 1.1 프로토콜을 지원하는 분산서비스거부 공격 탐지방법.
  16. 제 9 항에 있어서,
    상기 분산서비스거부 공격은,
    HTTP GET 플로딩인 분산서비스거부 공격 탐지방법.
KR1020090081900A 2009-07-14 2009-09-01 분산서비스거부 공격 탐지장치 및 방법 KR101196325B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/633,121 US20110016523A1 (en) 2009-07-14 2009-12-08 Apparatus and method for detecting distributed denial of service attack

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090064016 2009-07-14
KR1020090064016 2009-07-14

Publications (2)

Publication Number Publication Date
KR20110006565A KR20110006565A (ko) 2011-01-20
KR101196325B1 true KR101196325B1 (ko) 2012-11-01

Family

ID=43613389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090081900A KR101196325B1 (ko) 2009-07-14 2009-09-01 분산서비스거부 공격 탐지장치 및 방법

Country Status (1)

Country Link
KR (1) KR101196325B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499917B (zh) * 2021-10-25 2024-01-09 中国银联股份有限公司 Cc攻击检测方法及cc攻击检测装置
CN114785611A (zh) * 2022-05-10 2022-07-22 山东高速信息集团有限公司 一种用于智能监控终端的通讯协议配置方法、设备及介质

Also Published As

Publication number Publication date
KR20110006565A (ko) 2011-01-20

Similar Documents

Publication Publication Date Title
KR101095447B1 (ko) 분산 서비스 거부 공격 차단 장치 및 방법
US20110016523A1 (en) Apparatus and method for detecting distributed denial of service attack
KR101424490B1 (ko) 지연시간 기반 역 접속 탐지 시스템 및 그 탐지 방법
US8966627B2 (en) Method and apparatus for defending distributed denial-of-service (DDoS) attack through abnormally terminated session
KR101077135B1 (ko) 웹 서비스 대상 응용계층 디도스 공격 탐지 및 대응 장치
Ndatinya et al. Network forensics analysis using Wireshark
TWI294726B (ko)
JP5844938B2 (ja) ネットワーク監視装置、ネットワーク監視方法およびネットワーク監視プログラム
US20020032871A1 (en) Method and system for detecting, tracking and blocking denial of service attacks over a computer network
KR20130068631A (ko) 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
US8543807B2 (en) Method and apparatus for protecting application layer in computer network system
US8726384B2 (en) Apparatus, and system for determining and cautioning users of internet connected clients of potentially malicious software and method for operating such
KR101250899B1 (ko) 응용계층 분산 서비스 거부 공격 탐지 및 차단 장치 및 그 방법
EP1542406B1 (en) Mechanism for detection of attacks based on impersonation in a wireless network
KR20200109875A (ko) 유해 ip 판단 방법
KR101196325B1 (ko) 분산서비스거부 공격 탐지장치 및 방법
JP7222260B2 (ja) 試験装置
KR20090116206A (ko) 클라이언트 ddos 방어 시스템 및 그 방법
KR20180102884A (ko) 방화벽 및 이의 패킷 처리 방법
Jansky et al. Hunting sip authentication attacks efficiently
CN111669376B (zh) 一种内网安全风险识别的方法和装置
KR101045332B1 (ko) Irc 및 http 봇넷 정보 공유 시스템 및 그 방법
JP5147819B2 (ja) コンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置
JP5160652B2 (ja) コンピュータ・アプリケーション・プログラムを制御するための方法及びシステム
Alharbi et al. SYN Flooding Detection and Mitigation using NFV

Legal Events

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

Payment date: 20150925

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee