KR101231801B1 - 네트워크 상의 응용 계층 보호 방법 및 장치 - Google Patents

네트워크 상의 응용 계층 보호 방법 및 장치 Download PDF

Info

Publication number
KR101231801B1
KR101231801B1 KR1020090086063A KR20090086063A KR101231801B1 KR 101231801 B1 KR101231801 B1 KR 101231801B1 KR 1020090086063 A KR1020090086063 A KR 1020090086063A KR 20090086063 A KR20090086063 A KR 20090086063A KR 101231801 B1 KR101231801 B1 KR 101231801B1
Authority
KR
South Korea
Prior art keywords
client
application layer
network
server
packet
Prior art date
Application number
KR1020090086063A
Other languages
English (en)
Other versions
KR20110006566A (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/643,100 priority Critical patent/US8543807B2/en
Priority to JP2009292124A priority patent/JP5147819B2/ja
Publication of KR20110006566A publication Critical patent/KR20110006566A/ko
Application granted granted Critical
Publication of KR101231801B1 publication Critical patent/KR101231801B1/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
    • 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/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

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)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

응용 계층(application layer)에 대한 외부 해커(hacker)들의 공격, 예컨대 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격을 탐지하고 대응하기 위해서, 종래에는 전송률 제한(rate limit) 등의 기술을 이용하고 있다. 이러한 기술들은, 완화된 공격 패킷(packet)이 그대로 서버에 전달되어 서버의 부하가 발생하는 부정 오류(false negative) 현상과, 정상적으로 서비스 요청한 사용자의 패킷이 차단되는 긍정 오류(false positive) 발생 위험을 동시에 지닌다는 문제가 있다. 이에 본 발명에서는, 웹 등의 응용 계층의 서비스를 방해하는 분산 서비스 거부 공격 및 패킷을 정확히 탐지하고 방어할 수 있는 응용 계층 보호 기술을 제안하고자 한다.
DDoS, 해킹, 패킷

Description

네트워크 상의 응용 계층 보호 방법 및 장치{METHOD AND APPARATUS FOR PROTECTING APPLICATION LAYER IN NETWORK}
본 발명은 네트워크 서버들의 응용 계층(application layer)을 공격하는 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격에 대한 대응 기술에 관한 것으로, 특히 해커(hacker)들의 웹 서버 공격, 예컨대 HTTP 겟 플루딩(Hyper Text Transfer Protocol GET flooding) 또는 캐시 컨트롤 플루딩(Cache-Control(CC) flooding) 등을 이용하여 웹 서버가 정상적인 서비스를 하지 못하도록 하는 분산 서비스 거부 공격 발생시에, 공격자 또는 악성 코드에 감염된 좀비(zombie) PC에서 발생하는 공격을 탐지하고 대응하는데 적합한 네트워크 상의 응용 계층 보호 방법 및 장치에 관한 것이다.
본 발명은 지식경제부의 IT성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[2009-S-038-01, 분산서비스거부(DDoS) 공격 대응 기술 개발].
최근의 네트워크, 전자 기술 등의 발전으로 인해 웹 등의 다양한 서비스를 손쉽게 제공받고는 있으나, 기술의 발전과 함께 다양한 해킹 툴의 등장으로 인하여 네트워크의 서비스를 방해하거나 해킹하는 행위도 점점 빈번해지고 있다.
또한, 이러한 네트워크의 해킹은 금전적인 이익을 얻기 위한 다양한 공격 형태로 변화되고 있으며, 특히 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격은 웹 등을 통한 정상적인 서비스가 불가능하도록 하는 공격으로, 좀비(zombie) PC들의 네트워크 그룹인 봇넷(botnet) 등을 악용하여 점점 더 심해지고 있는 추세이다.
이러한 분산 서비스 거부 공격에 대응하기 위해 몇몇 탐지 및 대응 기법들이 개발되고는 있으나, 대부분의 분산 서비스 거부 공격에 대한 대응 기법이 네트워크 수준(network level)의 신 플루딩(SYN(SYNchronize) flooding) 등을 탐지하고 차단하는 방법에 국한되어 있으며, 웹 서버 등의 응용 계층 서비스를 방해하는 분산 서비스 거부 공격에 대한 탐지 및 대응 방법으로는 전송률 제한(rate limit)과 같이 서버로 입력되는 패킷을 줄이는 공격 완화 기법이 대부분이고, 응용 계층의 분산 서비스 거부 공격 패킷이나 소스 IP를 찾고 대응하는 기술은 존재하지 않는다.
즉, 종래에는 응용 계층의 분산 서비스 거부 공격을 탐지하고 대응하기 위해서, 전송률 제한 등의 기술을 활용하므로, 완화된 공격 패킷이 그대로 서버에 전달되어 서버의 부하가 발생하는 부정 오류(false negative) 현상과, 정상적으로 서비스 요청한 사용자의 패킷이 차단되는 긍정 오류(false positive) 발생 위험을 동시에 지니고 있다.
이에 본 발명의 실시예에서는, 웹(web) 등의 응용 계층(application layer)의 서비스를 방해하는 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격을 정확히 탐지하고 방어할 수 있는 네트워크 상의 응용 계층 보호 기술을 마련하고자 한다.
구체적으로 본 발명의 실시예에서는, 서버의 응용 계층을 공격하는 분산 서비스 거부 공격, 예를 들어 HTTP 겟 플루딩(Hyper Text Transfer Protocol GET flooding) 또는 캐시 컨트롤 플루딩(Cache-Control(CC) flooding) 등을 탐지하고 방어할 수 있는 네트워크 상의 응용 계층 보호 기술을 마련하고자 한다.
본 발명의 과제를 해결하기 위한 일 실시예에 따르면, 클라이언트와 서버 간의 세션을 설정하는 과정과, 상기 클라이언트에서 상기 서버로의 데이터 요청이 존재하고 상기 서버에서 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트를 응용 계층 공격 클라이언트로 탐지하는 과정을 포함할 수 있다.
여기서, 상기 탐지하는 과정은 상기 클라이언트에서 상기 서버로의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 서버에서 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크 패킷(ACK packet)이 발 생되지 않으면, 상기 클라이언트를 상기 응용 계층 공격 클라이언트로 탐지하는 과정을 포함할 수 있다.
또한, 상기 응용 계층 공격 클라이언트는 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격 형태를 갖는 클라이언트일 수 있다.
또한, 상기 분산 서비스 거부 공격 형태는 HTTP 겟(Hyper Text Transfer Protocol GET) 공격 형태일 수 있다.
또한, 상기 HTTP 겟(GET) 공격 형태는 HTTP 겟(GET) 플루딩(flooding) 공격 형태일 수 있다.
또한, 상기 분산 서비스 거부 공격 형태는 캐시 컨트롤 플루딩(Cache-Control(CC) flooding) 공격 형태일 수 있다.
본 발명의 과제를 해결하기 위한 다른 실시예에 따르면, 클라이언트와 서버 간의 세션을 설정하는 과정과, 상기 클라이언트에서 상기 서버로의 데이터 요청이 존재하고 상기 서버에서 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 서버에서 상기 클라이언트로의 연결을 차단하는 과정을 포함할 수 있다.
여기서, 상기 차단하는 과정은 상기 클라이언트에서 상기 서버로의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 서버에서 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크 패킷이 발생되지 않으면, 상기 서버에서 상기 클라이언트로의 연결을 차단하는 과정일 수 있다.
또한, 상기 차단하는 과정은 상기 클라이언트의 IP(Internet Protocol)를 차 단하는 과정일 수 있다.
또한, 상기 데이터 요청은 상기 클라이언트에서 상기 서버로 겟 패킷(GET packet)을 전송하는 과정을 포함할 수 있다.
또한, 상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 핀 패킷(FIN packet)을 전송하는 과정을 포함할 수 있다.
또한, 상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 리셋 패킷(RST packet)을 전송하는 과정을 포함할 수 있다.
또한, 상기 네트워크는 TCP/IP(Transmission Control Protocol / Internet Protocol) 프로토콜을 기반으로 할 수 있다.
본 발명의 과제를 해결하기 위한 또 다른 실시예에 따르면, 클라이언트와의 세션을 연결하고 상기 클라이언트로부터의 데이터 요청 메시지 및 상기 클라이언트로의 데이터 패킷을 전달하는 네트워크와, 상기 네트워크를 통해 상기 클라이언트와의 세션이 연결된 상태에서, 상기 클라이언트로부터 데이터 요청이 존재하고 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트를 응용 계층 공격 클라이언트로 탐지하는 서버를 포함할 수 있다.
여기서, 상기 응용 계층 공격 클라이언트는 분산 서비스 거부 공격 형태를 가질 수 있다.
또한, 상기 분산 서비스 거부 공격 형태는 HTTP 겟(GET) 공격 형태일 수 있다.
또한, 상기 HTTP 겟(GET) 공격 형태는 HTTP 겟(GET) 플루딩 공격 형태일 수 있다.
또한, 상기 분산 서비스 거부 공격 형태는 캐시 컨트롤(CC) 플루딩 공격 형태일 수 있다.
또한, 상기 서버는 상기 클라이언트로부터의 데이터 요청에 이어 상기 세션 종료 요청이 존재하며 상기 서버의 상기 응답 패킷에 대한 상기 클라이언트로부터의 애크(ACK) 패킷이 발생되지 않으면, 상기 클라이언트를 상기 응용 계층 공격 클라이언트로 탐지할 수 있다.
본 발명의 과제를 해결하기 위한 또 다른 실시예에 따르면, 클라이언트와의 세션을 연결하고 상기 클라이언트로부터의 데이터 요청 메시지 및 상기 클라이언트로의 데이터 패킷을 전달하는 네트워크와, 상기 네트워크를 통해 상기 클라이언트와의 세션이 연결된 상태에서, 상기 클라이언트로부터 데이터 요청이 존재하고 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트로의 연결을 차단하는 서버를 포함할 수 있다.
여기서, 상기 서버는 상기 클라이언트에서 상기 서버로의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 서버에서 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크 패킷이 발생되지 않으면, 상기 서버에서 상기 클라이언트로의 연결을 차단하는 과정일 수 있다.
또한, 상기 차단하는 과정은 상기 클라이언트의 IP를 차단하는 과정일 수 있다.
또한, 상기 데이터 요청은 상기 클라이언트에서 상기 서버로 겟(GET) 패킷을 전송함으로써 구현될 수 있다.
또한, 상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 핀(FIN) 패킷을 전송함으로써 구현될 수 있다.
또한, 상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 리셋(RST) 패킷을 전송함으로써 구현될 수 있다.
또한, 상기 네트워크는 TCP/IP 프로토콜을 기반으로 할 수 있다.
본 발명에 의하면, 정상적인 서비스 요청과 확연히 구분되는 공격자 특징인 겟(GET) 패킷 발생 후 바로 팬(FIN) 패킷을 발생한 IP 또는 패킷에 대한 직접적인 탐지 및 대응이 가능하므로 오류 경고(false alarm)을 발생하지 않고 분산 서비스 거부 공격자를 찾아내고 대응할 수 있다. 또한, 기존에는 전송률 제한(rate limit) 기능을 수행하기 위해 많은 리소스를 요구하나, 본 발명에서는 응용 계층의 분산 서비스 거부 패킷을 발생하는 공격자를 직접 찾아 대응할 수 있기 때문에 리소스가 절약된다. 또한, 본 발명에서는, 클라이언트의 연결 종료 요청 후 서비스 응답에 대한 클라이언트의 응답인 애크(ACK) 패킷의 유무로도 공격자를 찾을 수 있다. 또한 겟(GET) 패킷 뒤에 핀(FIN)이 따라 오는지 확인하고 패킷 단위로 대응 할 경우 NAT(Network Address Translation)를 사용하는 네트워크에서 정상적인 사용자와 좀비(zombie) PC의 트래픽이 혼재되어 있는 경우에도 대응이 가능하다.
본 발명에서는 네트워크 서비스의 응용 계층(application layer)에 대한 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격을 탐지하고 대응하는 방법을 제시한다. 이러한 응용 계층의 공격에 대한 탐지 및 대응 방법을 상세히 기술하기 위하여 대표적인 응용 서비스인 웹 서비스(web service)를 예로 설명한다.
호스트에서 TCP/IP(Transmission Control Protocol / Internet Protocol) 통신 프로그램을 작성하기 위해서는 소켓(socket)을 사용한다. 소켓은 TCP/IP 계층과 응용계층을 연결해 주는 일종의 API(Application Programming Interface)이다. 일부 OS(Operating System)에서는 안정성의 문제 등으로 소켓을 통하지 않은 네트워크 계층 접속을 허용하지 않으므로 대부분의 통신 프로그램은 소켓을 활용하고 있다.
이러한 소켓을 통한 통신 프로그램 중에 TCP를 이용하는 프로그램의 경우, 세션(session)을 먼저 연결한 후 응용 계층의 데이터 통신이 가능하며, 데이터 통신이 끝난 후에 세션을 종료하는 과정으로 통신이 이루어진다.
본 발명은 이러한 점을 감안한 것으로, 클라이언트(client)와 서버(server)간의 세션이 연결된 상태에서, 클라이언트에서 서버로 데이터가 요청되고 기 설정된 시간 이내에(또는 발생 후 즉시) 세션 종료가 요청되거나, 클라이언트가 연결 종료를 요청한 후 발생하는 서버의 응답 패킷에 대한 클라이언트의 애크 패킷(ACK packet)이 발생되지 않을 경우에, 해당 클라이언트를 분산 서비스 거부 공격자로 인식하여 해당 클라이언트와 서버의 연결을 차단하는 것으로 특징으로 한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 도면부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
또한, 본 발명의 기능이 속도의 문제를 해결하기 위해 하드웨어로 구현될 수 있으며 본 발명에서 제시하는 블록의 기능을 동시에 처리하는 형태로 구현되는 것도 가능하다.
실시예의 설명에 앞서, 본 발명은, 웹(web) 등의 응용 계층(application layer)의 서비스를 방해하는 외부 해커(hacker)들로부터의 공격 형태, 예를 들면 분산 서비스 거부(Distribute Denial of Service, 이하 DDoS라 함) 공격으로부터 응용 계층을 보호한다는 것으로, 이러한 기술 사상으로부터 본 발명의 목적으로 하는 바를 용이하게 이해할 수 있을 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대해 구체적으로 설명하기로 한다.
먼저, 도 1은 본 발명의 실시예가 적용될 수 있는 네트워크 구성도로서, 클라이언트(100), 네트워크(102), 응용 계층 보호 서비스 서버(104), 데이터 제공 서버(106)를 포함할 수 있다.
도 1에 예시한 바와 같이, 클라이언트(100)는 네트워크(102)에 접속하여 응용 계층 서비스 등을 제공받는 사용자측 단말, 예를 들면 데스크톱(desk-top), 랩톱(lap-top) 등을 지칭하는 것으로, 네트워크(102)를 통해 데이터 제공 서비스, 응용 계층 서비스 등을 사용자에게 제공할 수 있다. 이러한 클라이언트(100)는, 일반적인 데스크톱, 랩톱뿐만 아니라, 응용 계층의 서비스를 방해하는 좀비 PC도 그 대상이 될 수 있을 것이다. 또한, 도 1에는 하나의 클라이언트(100)를 도시하였으 나, 이는 설명의 편의를 위한 것일 뿐, 네트워크(102) 상에는 다수의 클라이언트들이 연결될 수 있음을 본 발명의 기술 분야에서 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
네트워크(102)는, 예컨대 인터넷(internet)으로서, TCP/IP(Transmission Control Protocol / Internet Protocol) 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), 텔넷(Telnet), FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미하며, 클라이언트(100)에게 네트워크 접속 환경을 제공할 수 있다.
응용 계층 보호 서비스 서버(104)는, 예컨대 본 실시예에 따른 DDoS 대응을 위한 서버로서, 웹 등의 응용 계층의 서비스를 방해하는 공격 형태, 예를 들어 DDoS 공격을 탐지하고 방어하는 역할을 한다. 이러한 응용 계층 보호 서비스 서버(104)는, 예를 들면 IDS(Internet Distribution System), IPS(Internet Provider Security), FW(Firewall), 웹 FW 또는 DDoS 전용장비 형태로 구현될 수 있을 것이다.
데이터 제공 서버(106)는 클라이언트(100)에게 데이터, 예를 들면 웹 페이지 등의 서비스를 제공하는 역할을 한다.
이때, 도 1에서는 응용 계층 보호 서비스 서버(104)과 데이터 제공 서 버(106)를 각각 별개의 서버로 도시하였으나, 이는 설명의 편의를 위해 하나의 실시 형태로서 예시한 것일 뿐, 각각 독립된 별개의 서버 또는 응용 계층 보호 서비스 서버(104)와 데이터 제공 서버(106)가 단일의 서버로 통합 운영될 수도 있음을 주지할 필요가 있다.
여기서, 응용 계층 보호 서비스 서버(104)는, 네트워크(102)를 통해 클라이언트(100)와의 세션이 연결된 상태에서, 클라이언트(100)로부터의 데이터 요청에 이어(또는 발생 후 즉시) 세션 종료가 요청될 경우에, 클라이언트(100)를 응용 계층을 공격하는 클라이언트(DDoS 공격자)로 간주하여 클라이언트(100)로부터 요청된 데이터의 패킷을 차단함으로써, HTTP GET 플루딩(Hyper Text Transfer Protocol get flooding) 또는 캐시 컨트롤 플루딩(Cache-Control(CC) flooding) 등과 같은 DDoS 공격으로부터 응용 계층을 보호할 수 있다.
또한, 응용 계층 보호 서비스 서버(104)는, 네트워크(102)를 통해 클라이언트(100)와의 세션이 연결된 상태에서, 클라이언트(100)로부터 데이터가 요청되고 클라이언트(100)로부터 세션 종료가 요청되더라도 서버(104)의 응답 패킷에 대한 클라이언트(100)의 애크 패킷(ACK packet)이 발생되지 않으면, 클라이언트(100)를 응용 계층을 공격하는 클라이언트(DDoS 공격자)로 인식하여 클라이언트(100)와 데이터 제공 서버(106) 간의 연결을 차단함으로써, HTTP GET 플루딩 또는 CC 플루딩 등과 같은 DDoS 공격으로부터 응용 계층을 보호할 수 있다. 이러한 응용 계층 보호 서비스 서버(104)의 연결 차단은, 예컨대 클라이언트(100)의 IP(Internet Protocol)를 차단함으로써 구현될 수 있을 것이다.
도 2는 이와 같은 응용 계층에서의 네트워크 서비스, 예컨대 클라이언트(100)와 데이터 제공 서버(106) 간의 웹 서비스를 수행하는 과정을 예시한 도면이다.
먼저, 클라이언트(100)는 서비스 요청을 위해 데이터 제공 서버(106)로 세션 연결을 요청한다(S200). 이러한 세션 연결 요청은, 예컨대 클라이언트(100)에서 데이터 제공 서버(106)로 신 패킷((SYN)(SYNchronize) packet)을 전송하는 것으로 구현될 수 있을 것이다.
이때, 데이터 제공 서버(106)의 자원이 허용될 경우에는, 데이터 제공 서버(106)에서 클라이언트(100)로 세션 연결을 응답할 수 있다(S202). 이러한 세션 연결 응답은, 예컨대 신 + 애크 패킷(SYN + ACK(ACKnowledgment) packet)을 전송하는 것으로 구현될 수 있을 것이다.
신 + 애크(SYN + ACK) 패킷을 수신한 클라이언트(100)는 다시 데이터 제공 서버(106)로 애크(ACK) 패킷을 전송함으로써 하나의 세션이 연결될 수 있다(S204).
이와 같이 클라이언트(100)와 데이터 제공 서버(106) 간의 세션이 연결된 상태에서, 클라이언트(100)는 원하는 데이터, 예컨대 웹 페이지(web page)를 데이터 제공 서버(106)로 요청할 수 있다(S206). 이러한 데이터의 요청은, 예컨대 클라이언트(100)에서 데이터 제공 서버(106)로 겟(GET) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
겟(GET) 패킷을 수신한 데이터 제공 서버(106)는 클라이언트(100)로부터 요청된 데이터를 패킷 군을 통해 클라이언트(100)로 전송한다(S208).
요청된 데이터가 데이터 제공 서버(106)에서 클라이언트(100)로 전송되면, 클라이언트(100)는 데이터 제공 서버(106)로부터의 패킷 군을 통한 데이터 수신을 응답한다(S210). 이러한 데이터 수신 응답은, 예컨대 클라이언트(100)에서 데이터 제공 서버(106)로 애크(ACK) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
이후, 모든 패킷을 전송한 데이터 제공 서버(106)는 클라이언트(100)로 연결 종료를 요청할 수 있다(S212). 이러한 연결 종료 요청은, 예컨대 데이터 제공 서버(106)에서 클라이언트(100)로 핀(FIN(FINish)) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
이때, 데이터 제공 서버(106)에서 킵 얼라이브(keep alive) 값을 오프(off)한 경우에는 최종 데이터를 전달한 후 바로 핀(FIN) 패킷을 클라이언트(100)로 전송할 수 있으며, 데이터 제공 서버(106)에서 킵 얼라이브 값을 온(on)한 경우에는 데이터 제공 서버(106)의 킵 얼라이브 시간(keep alive time)을 초과하면 핀(FIN) 패킷을 클라이언트(100)로 전송할 수 있을 것이다.
이후, 클라이언트(100)는 세션 종료 요청을 위한 핀(FIN) 패킷을 데이터 제공 서버(106)로 전송하게 되고(S214), 리셋 패킷(RST(ReSeT) packet) 등에 의해 클라이언트(100)와 데이터 제공 서버(106) 간의 세션이 종료될 수 있다.
도 3은 DDoS 공격 툴, 예를 들어 넷봇(netbot)에서 발생할 수 있는 트래픽 특징을 예시한 도면이다.
먼저, 클라이언트(100)는 서비스 요청을 위해 데이터 제공 서버(106)로 세션 연결을 요청한다(S300). 이러한 세션 연결 요청은, 예컨대 클라이언트(100)에서 데이터 제공 서버(106)로 싱크(SYN) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
이때, 데이터 제공 서버(106)의 자원이 허용될 경우에는, 데이터 제공 서버(106)에서 클라이언트(100)로 세션 연결을 응답할 수 있다(S302). 이러한 세션 연결 응답은, 예컨대 신 + 애크(SYN + ACK) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
신 + 애크(SYN + ACK) 패킷을 수신한 클라이언트(100)는 다시 데이터 제공 서버(106)로 애크(ACK) 패킷을 전송함으로써 하나의 세션이 연결될 수 있다(S304).
이와 같이 클라이언트(100)와 데이터 제공 서버(106) 간의 세션이 연결된 상태에서, 클라이언트(100)는 원하는 데이터, 예컨대 웹 페이지를 데이터 제공 서버(106)로 요청할 수 있다(S306). 이러한 데이터의 요청은, 예컨대 클라이언트(100)에서 데이터 제공 서버(106)로 겟(GET) 패킷을 전송하는 것으로 구현될 수 있을 것이다.
여기까지는 도 2의 응용 계층에서의 네트워크 서비스, 예컨대 클라이언트(100)와 데이터 제공 서버(106) 간의 웹 서비스 수행 과정과 동일하다.
하지만 응용 계층을 공격하는 경우에는, 클라이언트(100)가 바로 핀(FIN) 패킷을 발생하여 데이터 제공 서버(106)에 세션 종료를 요청할 수 있다(S308).
따라서, 데이터 제공 서버(106)는 먼저 수신된 클라이언트(100)로부터의 겟(GET) 패킷에 대한 응답으로 응답 패킷(response packet)을 발생하여 클라이언 트(100)에게 전송하고(S310), 바로 이어 리셋(RST) 패킷을 발생하여 세션을 종료한다(S312).
이러한 과정은 다음과 같이 해석될 수 있다.
먼저, 봇넷(botnet)도 소켓 프로그램으로 작성되었으므로 많은 응용 계층 서비스 요구를 통해 공격하기 위해서는 서비스 요청이 완료된 세션은 반드시 종료해야만 한다. 왜냐하면 세션을 종료해야 클라이언트의 소켓 리소스가 고갈되지 않아 지속적인 패킷 발생이 가능하기 때문이다.
예를 들어, 도 3의 단계(S308)에서 핀(FIN) 패킷을 발생하지 않고 새로운 세션을 계속 생성하면, 클라이언트의 소켓 자원 고갈로 더 이상 통신이 불가능해 진다.
이러한 문제들로 인하여 클라이언트에서 지속적으로 공격 패킷을 발생하기 위해서는 반드시 세션을 종료해야만 한다. 또한, 공격자의 경우에 서버로부터 오는 데이터는 관심의 대상이 아니기 때문에 이들을 수신할 필요가 없으며, 만약 도 2와 같이 정상적으로 세션을 지속하는 경우, 공격자가 원하는 양의 세션과 패킷을 발생할 수 없으며, 서버가 공격을 받는 상황에서는 서버의 부하로 인하여 단계(S214)의 세션 종료 요청이 지연되어 공격자도 패킷을 발생할 수 없는 상황을 경험할 수 있다. 하지만, DDoS 공격자는 서버가 서비스를 못하도록 하는 것이 목적이므로, 도 3의 단계(S308)에서와 같이 세션 종료 요청을 바로 할 수밖에 없다.
웹 서비스의 경우에 HTTP 1.0 표준 문서에는 다음과 같이 기술하고 있다.
“실험적인 응용 프로그램을 제외한 실제 응용에 있어서 각 요구 메시지 전달에 앞서 클라이언트에 의해 연결이 먼저 설립되어야 하고 서버가 응답을 먼저 보내고 연결을 끊도록 하여야 한다. 이때 클라이언트와 서버는 사용자의 동작이나 자동적인 타임아웃, 또는 프로그램 오류에 의해 어느 쪽이든 도중에 연결을 해제할 가능성도 있다는 것을 알아야 하며, 적절한 대응 동작을 할 수 있어야 한다. 어떤 경우에든 어느 한 쪽 또는 양쪽 모두의 연결 해제는 항상 현재 요구에 대한 삭제를 뜻한다.”
HTTP 1.0 표준 문서에서는 서버가 데이터 통신을 완료 한 후 세션을 종료하는 것이 정상적인 서비스 종료인 것으로 규정하고 있으며, 비정상적인 세션 종료는 다음 3가지로 규정하고 있다.
1. 사용자의 동작에 의한 종료
2. 자동적인 타임 아웃
3. 프로그램 오류
도 3의 상황이 발생할 수 있는 경우를 위의 오류 상황과 비교하면 다음과 같은 결론을 얻을 수 있다.
먼저, 실제 넷봇(netbot)과 소켓 프로그램으로 확인한 결과, 단계(S306)의 겟(GET) 패킷과 단계(S308)의 핀(FIN) 패킷이 발생하는 시간 간격이, 예를 들면 수십 마이크로 초(μsec) 이내, 구체적으로 10~90 마이크로 초(μsec) 사이로 아주 짧은 것을 확인할 수 있으며, 이렇게 짧은 시간 내에 두 개의 패킷이 발생하는 이 유는 최대한 많은 공격 패킷을 만들기 위함이다.
이때, 위에서 언급한 1. 사용자의 동작에 의한 종료는 그 발생 가능성이 매우 낮다고 볼 수 있다. 만약, 사용자가 웹 브라우저를 통해 웹 서비스 요청인 겟(GET) 패킷을 발생하고 바로 핀(FIN) 패킷을 발생하려면 수십 마이크로 초(μsec) 이내에 웹 브라우저를 닫아야 하지만, 현실적으로 이렇게 빨리 사용자가 웹 브라우저를 닫는 것은 불가능하다.
두 번째, 2. 자동 타임 아웃에 의해 종료되는 경우인데, 일반적으로 타임 아웃은 수 초, 예를 들어 2~5초로 설정되어 있어 수십 마이크로 초(μsec)와 비교하면 엄청나게 큰 시간이므로 이러한 오류 상황도 현실적으로는 불가능함을 알 수 있다.
마지막으로, 3. 프로그램 오류인데, 이는 명확히 클라이언트 프로그램의 오류인 것으로 해석될 수 있기 때문에, 비정상적 세션 종료를 규정하는 가정에서 제외하기로 한다.
따라서, 본 실시예에서는, 도 3과 같은 패턴으로 겟 패킷이 발생한 후 바로 핀 패킷을 발생할 경우, 해당 클라이언트(100)를 DDoS 공격자로 판단하여 클라이언트(100)로의 데이터 패킷 전송을 차단할 수 있을 것이다.
또한, 단계(S306)의 겟 패킷과 단계(S308)의 핀 패킷은 수십 마이크로 초(μsec) 차이로 발생하지만, 단계(S310)의 서버 응답 패킷은 수 밀리 초(msec) 이후에 발생할 수 있다.
본 실시예에서는, 이와 같이 정상적인 세션 설정이 완료된 후 클라이언트(100)의 데이터(서비스) 요청(S306)과 데이터 제공 서버(106)의 응답 패킷 전송(S310) 사이에 클라이언트(100)의 세션 종료 요청(S308)이 발생될 경우에, 클라이언트(100)를 공격자로 판단하여 클라이언트(100)와 데이터 제공 서버(106)의 연결을 차단할 수 있을 것이다.
이때, 단계(S308)의 세션 종료 패킷은 핀(FIN) 패킷 대신 리셋(RST) 패킷이 사용될 수도 있다.
또한, 본 실시예에서는, 단계(S310)의 서비스 응답에 대해 클라이언트(100)의 소켓이 활성화되어 있는 경우에, 클라이언트(100)는 애크(ACK) 패킷을 발생하여 응답을 정상으로 받았음을 서버로 알려 주어야 하지만, 공격자의 경우 단계(S308)의 세션 종료 요청에 의해 소켓이 종료되므로, 단계(S310)의 응답 패킷에 대한 애크(ACK) 패킷이 발생하지 않는다. 따라서, 데이터 제공 서버(106)의 응답 패킷(S310)에 대해 클라이언트(100)의 애크(ACK) 패킷이 발생하지 않는 경우에도 클라이언트(100)를 공격자로 판단할 수 있다.
이하에서는, 본 실시예에 따른 네트워크 상의 응용 계층 보호 방법, 구체적으로 클라이언트(100)와 응용 계층 보호 서비스 서버(104) 및 데이터 제공 서버(106) 간의 서비스 과정을 도 4의 상태 천이도(state machine)를 참조하여 예시적으로 설명하기로 한다.
도 4의 상태 천이도는 웹 서비스에 대해 각각의 세션마다 하나씩 생성될 수 있다.
먼저, 상태(S0)는 클라이언트(100)가 새로운 세션을 요청하는지를 모니터링 하는 과정으로서, 클라이언트(100)의 신(SYN) 패킷이 모니터링되면 응용 계층 보호 서비스 서버(104)는 상태(S0)를 상태(S1)로 변경하고 데이터 제공 서버(106)의 신 + 애크(SYN + ACK) 패킷을 대기한다.
이때, 데이터 제공 서버(106)로부터 신 + 애크(SYN + ACK) 패킷이 전송되면, 응용 계층 보호 서비스 서버(104)는 상태(S1)를 상태(S2)로 변경하고, 클라이언트(100)가 애크(ACK) 패킷을 전송하여 세션이 완성되는지 모니터링하여 상태(S2)를 상태(S3)로 변경한다.
상태(S3)에서 응용 계층 보호 서비스 서버(104)는 클라이언트(100)가 겟(GET) 패킷을 발생하는 경우, 공격 탐지 상태인 상태(S4)로 이동할 수 있다.
상태(S4)에서 응용 계층 보호 서비스 서버(104)는, 데이터 제공 서버(106)의 응답이 먼저 모니터링될 경우에 현재 상태를 상태(S6)로 변화시키고, 정상 연결 종료되는 경로로 다시 상태(S0)로 피드백한다.
이때, 상태(S6)에서 상태(S0)로 이동하는 과정에는, 클라이언트(100)와 데이터 제공 서버(106)가 많은 패킷을 주고 받지만, 이는 정상적인 프로토콜로 진행되기 때문에 본 실시예에서의 응용 계층 보호 방법에서는 제외하기로 한다.
다시 상태(S4)에서 클라이언트(100)가 핀(IN) 패킷 또는 리셋(RST) 패킷을 발생하는 경우, 응용 계층 보호 서비스 서버(104)는 현재 클라이언트를 응용 계층 공격 클라이언트인 것으로 판단하고, 상태(S5)로 이동하여 공격에 대응하는 동작들 을 수행한다. 이러한 공격에 대응하는 동작들은, 예컨대 해당 클라이언트의 IP를 즉시 차단하거나, 또는 해당 IP를 IPS, FW 등으로 전달하여 차단하는 동작들이 포함될 수 있을 것이다.
또한, 상태(S5)에서 상태(S0)로 상태를 변화시키기까지 클라이언트(100)와 데이터 제공 서버(106) 간에 몇 번 패킷을 주고 받지만, 이는 본 실시예의 응용 계층 보호 방법과 관련이 없는 부분이므로 상세 설명을 생략하기로 한다.
또한, 상태(S3)에서 탐지를 피하기 위해 클라이언트(100)가 겟(GET) 패킷 이외의 다른 패킷을 전달할 경우에는 상태(S3)를 지속할 수 있으며, 연결을 종료하는 경우에는 현재 상태를 상태(S0)로 변경할 수 있을 것이다.
그리고, 상태(S0)를 제외한 나머지 상태에서는 프로토콜에 의해 정상/비정상 연결 종료 행위가 가능하지만, 이는 본 실시예의 응용 계층 보호 방법과 관련이 없이 때문에 구체적인 설명은 생략하기로 한다.
이상에서 HTTP 프로토콜을 예로 들어 응용계층에 대한 DDoS 공격을 탐지 하고 대응 하는 방법을 설명하였지만, 다른 응용 프로그램의 경우에도 세션을 열고 서비스 요구와 함께 세션 종료를 요청하는 클라이언트는 서비스 요청에 대한 응답을 참조 하지 않는 것이므로, 이러한 클라이언트를 서비스 거부 공격자로 탐지하고 대응할 수 있을 것이다. 특히, 서버의 킵 얼라이브(KeepAlive) 옵션을 오프(off) 한 경우에 서버는 하나의 세션에서 하나의 겟(GET) 패킷을 수신한 후 바로 세션을 종료 하므로 더욱 효과적으로 공격을 방어 할 수 있다.
이상과 같이 본 발명은, 도 3에서 설명한 공격자의 행위를 보이는 IP를 찾고 이를 차단하거나, 또는 겟(GET) 패킷과 동시에 핀(FIN) 패킷이 발생하는 겟(GET) 패킷을 차단하여 DDoS 공격을 탐지하고 대응하는 것을 특징으로 한다. 또한, 핀(FIN) 패킷 대신 리셋(RST) 패킷을 이용하여 세션을 종료하는 경우도 포함한다.
본 발명에서는 도 2의 정상적인 서비스 요청과 확연히 구분되는 도 3의 공격자 특징인 겟(GET) 패킷 발생 후 바로 핀(FIN) 패킷을 발생한 IP 또는 패킷에 대한 직접적인 탐지 및 대응이 가능하므로 오류 경고(False alarm)를 발생하지 않고 DDoS 공격자를 찾아내고 대응할 수 있다. 또한, 기존의 방법은 전송률 제한(rate limit) 기능을 수행하기 위해 많은 리소스를 요구하지만, 본 실시예에 의한 방법은 응용 계층 DDoS 패킷을 발생하는 공격자를 직접 찾아 대응할 수 있어 리소스가 절약된다. 또한, 서비스 응답에 대한 클라이언트의 응답인 애크(ACK) 패킷의 유무로도 공격자를 찾을 수 있다. 또한, 겟(GET) 패킷 뒤에 핀(FIN) 패킷이 따라 오는지 확인하고 패킷 단위로 대응할 경우 NAT(Network Address Translation)를 사용하는 네트워크에서 정상적인 사용자와 좀비 PC의 트래픽이 혼재되어 있는 경우에도 대응이 가능하다.
도 1은 본 실시예에 따라 적용되는 클라이언트와 서버 간의 네트워크 구성을 예시한 도면,
도 2는 응용 계층에서의 네트워크 서비스, 예컨대 클라이언트와 서버 간의 웹 서비스를 수행하는 과정을 예시한 도면,
도 3은 분산 서비스 거부 공격의 동작을 예시한 도면,
도 4는 본 실시예에 따른 네트워크 상의 응용 계층 보호 방법을 예시한 흐름도.

Claims (26)

  1. 클라이언트와 서버 간의 세션을 설정하는 과정과,
    상기 클라이언트에서 상기 서버로의 데이터 요청이 존재하고 상기 서버에서 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트를 응용 계층 공격 클라이언트로 탐지하는 과정을 포함하는
    네트워크 상의 응용 계층 보호 방법.
  2. 제 1 항에 있어서,
    상기 탐지하는 과정은 상기 클라이언트에서 상기 서버로의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 서버에서 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크 패킷(ACK packet)이 발생되지 않으면, 상기 클라이언트를 상기 응용 계층 공격 클라이언트로 탐지하는 과정인
    네트워크 상의 응용 계층 보호 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 응용 계층 공격 클라이언트는 분산 서비스 거부(Distribute Denial of Service, DDoS) 공격 형태를 갖는 클라이언트인 것을 특징으로 하는
    네트워크 상의 응용 계층 보호 방법.
  4. 제 3 항에 있어서,
    상기 분산 서비스 거부 공격 형태는 HTTP 겟(Hyper Text Transfer Protocol GET) 공격 형태인 것을 특징으로 하는
    네트워크 상의 응용 계층 보호 방법.
  5. 제 4 항에 있어서,
    상기 HTTP 겟(GET) 공격 형태는 HTTP 겟(GET) 플루딩(flooding) 공격 형태인 것을 특징으로 하는
    네트워크 상의 응용 계층 보호 방법.
  6. 제 3 항에 있어서,
    상기 분산 서비스 거부 공격 형태는 캐시 컨트롤 플루딩(Cache-Control(CC) flooding) 공격 형태인 것을 특징으로 하는
    네트워크 상의 응용 계층 보호 방법.
  7. 클라이언트와 서버 간의 세션을 설정하는 과정과,
    상기 클라이언트에서 상기 서버로의 데이터 요청이 존재하고 상기 서버에서 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 서버에서 상기 클라이언트로의 연결을 차단하는 과정을 포함하는
    네트워크 상의 응용 계층 보호 방법.
  8. 제 7 항에 있어서,
    상기 차단하는 과정은 상기 클라이언트에서 상기 서버로의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 서버에서 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크(ACK) 패킷이 발생되지 않으면, 상기 서버에서 상기 클라이언트로의 연결을 차단하는 과정인
    네트워크 상의 응용 계층 보호 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 차단하는 과정은 상기 클라이언트의 IP(Internet Protocol)를 차단하는 과정인
    네트워크 상의 응용 계층 보호 방법.
  10. 제 1 항 또는 제 7 항에 있어서,
    상기 데이터 요청은 상기 클라이언트에서 상기 서버로 겟 패킷(GET packet)을 전송하는 과정을 포함하는
    네트워크 상의 응용 계층 보호 방법.
  11. 제 1 항 또는 제 7 항에 있어서,
    상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 핀 패킷(FIN packet)을 전송하는 과정을 포함하는
    네트워크 상의 응용 계층 보호 방법.
  12. 제 1 항 또는 제 7 항에 있어서,
    상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 리셋 패킷(RST packet)을 전송하는 과정을 포함하는
    네트워크 상의 응용 계층 보호 방법.
  13. 제 1 항 또는 제 7 항에 있어서,
    상기 네트워크는 TCP/IP(Transmission Control Protocol / Internet Protocol) 프로토콜을 기반으로 하는
    네트워크 상의 응용 계층 보호 방법.
  14. 클라이언트와의 세션을 연결하고 상기 클라이언트로부터의 데이터 요청 메시지 및 상기 클라이언트로의 데이터 패킷을 전달하는 네트워크와,
    상기 네트워크를 통해 상기 클라이언트와의 세션이 연결된 상태에서, 상기 클라이언트로부터 데이터 요청이 존재하고 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트를 응용 계층 공격 클라이언트로 탐지하는 서버를 포함하는
    네트워크 상의 응용 계층 보호 장치.
  15. 제 14 항에 있어서,
    상기 응용 계층 공격 클라이언트는 분산 서비스 거부 공격 형태를 갖는
    네트워크 상의 응용 계층 보호 장치.
  16. 제 15 항에 있어서,
    상기 분산 서비스 거부 공격 형태는 HTTP 겟(GET) 공격 형태인 것을 특징으로 하는
    네트워크 상의 응용 계층 보호 장치.
  17. 제 16 항에 있어서,
    상기 HTTP 겟(GET) 공격 형태는 HTTP 겟(GET) 플루딩 공격 형태인
    네트워크 상의 응용 계층 보호 장치.
  18. 제 15 항에 있어서,
    상기 분산 서비스 거부 공격 형태는 캐시 컨트롤(CC) 플루딩 공격 형태인
    네트워크 상의 응용 계층 보호 장치.
  19. 제 14 항에 있어서,
    상기 서버는 상기 클라이언트로부터의 데이터 요청에 이어 상기 세션 종료 요청이 존재하며 상기 서버의 상기 응답 패킷에 대한 상기 클라이언트로부터의 애크(ACK) 패킷이 발생되지 않으면, 상기 클라이언트를 상기 응용 계층 공격 클라이언트로 탐지하는
    네트워크 상의 응용 계층 보호 장치.
  20. 클라이언트와의 세션을 연결하고 상기 클라이언트로부터의 데이터 요청 메시지 및 상기 클라이언트로의 데이터 패킷을 전달하는 네트워크와,
    상기 네트워크를 통해 상기 클라이언트와의 세션이 연결된 상태에서, 상기 클라이언트로부터 데이터 요청이 존재하고 상기 클라이언트로 응답 패킷을 전송하기 전, 상기 클라이언트의 세션 종료 요청이 발생되면, 상기 클라이언트로의 연결을 차단하는 서버를 포함하는
    네트워크 상의 응용 계층 보호 장치.
  21. 제 20 항에 있어서,
    상기 서버는, 상기 클라이언트로부터의 상기 데이터 요청에 이어 상기 세션 종료가 요청되어 상기 클라이언트로 전송한 상기 응답 패킷에 대해 상기 클라이언트로부터의 애크(ACK) 패킷이 발생되지 않으면, 상기 클라이언트로의 연결을 차단하는
    네트워크 상의 응용 계층 보호 장치.
  22. 제 21 항에 있어서,
    상기 서버는, 상기 클라이언트의 IP를 차단하는
    네트워크 상의 응용 계층 보호 장치.
  23. 제 14 항 또는 제 20 항에 있어서,
    상기 데이터 요청은 상기 클라이언트에서 상기 서버로 겟(GET) 패킷을 전송함으로써 구현되는
    네트워크 상의 응용 계층 보호 장치.
  24. 제 14 항 또는 제 20 항에 있어서,
    상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 핀(FIN) 패킷을 전송함으로써 구현되는
    네트워크 상의 응용 계층 보호 장치.
  25. 제 14 항 또는 제 20 항에 있어서,
    상기 세션 종료 요청은 상기 클라이언트에서 상기 서버로 리셋(RST) 패킷을 전송함으로써 구현되는
    네트워크 상의 응용 계층 보호 장치.
  26. 제 14 항 또는 제 20 항에 있어서,
    상기 네트워크는 TCP/IP 프로토콜을 기반으로 하는
    네트워크 상의 응용 계층 보호 장치.
KR1020090086063A 2009-07-14 2009-09-11 네트워크 상의 응용 계층 보호 방법 및 장치 KR101231801B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/643,100 US8543807B2 (en) 2009-07-14 2009-12-21 Method and apparatus for protecting application layer in computer network system
JP2009292124A JP5147819B2 (ja) 2009-07-14 2009-12-24 コンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090064015 2009-07-14
KR1020090064015 2009-07-14

Publications (2)

Publication Number Publication Date
KR20110006566A KR20110006566A (ko) 2011-01-20
KR101231801B1 true KR101231801B1 (ko) 2013-02-08

Family

ID=43613390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090086063A KR101231801B1 (ko) 2009-07-14 2009-09-11 네트워크 상의 응용 계층 보호 방법 및 장치

Country Status (2)

Country Link
JP (1) JP5147819B2 (ko)
KR (1) KR101231801B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130017333A (ko) 2011-08-10 2013-02-20 한국전자통신연구원 응용 계층 기반의 슬로우 분산서비스거부 공격판단 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100806492B1 (ko) 2006-11-13 2008-02-21 삼성에스디에스 주식회사 Tcp 상태천이를 이용한 서비스거부 공격의 차단방법
KR20080100918A (ko) * 2007-05-15 2008-11-21 고려대학교 산학협력단 인터넷 기반 음성 서비스에서 비정상 패킷을 탐지하는 방법및 컴퓨터로 읽을 수 있는 매체
KR20090015364A (ko) * 2007-08-08 2009-02-12 삼성에스디에스 주식회사 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4512196B2 (ja) * 2005-10-20 2010-07-28 アラクサラネットワークス株式会社 異常トラヒックの検出方法およびパケット中継装置
JP2008028740A (ja) * 2006-07-21 2008-02-07 Secure Ware:Kk 通信制御装置、通信制御方法、及びコンピュータプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100806492B1 (ko) 2006-11-13 2008-02-21 삼성에스디에스 주식회사 Tcp 상태천이를 이용한 서비스거부 공격의 차단방법
KR20080100918A (ko) * 2007-05-15 2008-11-21 고려대학교 산학협력단 인터넷 기반 음성 서비스에서 비정상 패킷을 탐지하는 방법및 컴퓨터로 읽을 수 있는 매체
KR20090015364A (ko) * 2007-08-08 2009-02-12 삼성에스디에스 주식회사 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법

Also Published As

Publication number Publication date
KR20110006566A (ko) 2011-01-20
JP5147819B2 (ja) 2013-02-20
JP2011022985A (ja) 2011-02-03

Similar Documents

Publication Publication Date Title
US11050786B2 (en) Coordinated detection and differentiation of denial of service attacks
Dayal et al. Research trends in security and DDoS in SDN
EP2769509B1 (en) System and method for redirected firewall discovery in a network environment
Weiler Honeypots for distributed denial-of-service attacks
Izhikevich et al. {LZR}: Identifying unexpected internet services
US8670316B2 (en) Method and apparatus to control application messages between client and a server having a private network address
Geva et al. Bandwidth distributed denial of service: Attacks and defenses
TWI294726B (ko)
US8543807B2 (en) Method and apparatus for protecting application layer in computer network system
Cambiaso et al. Slowcomm: Design, development and performance evaluation of a new slow DoS attack
JP2004507978A (ja) ネットワークノードに対するサービス拒絶アタックに対抗するシステム及び方法
US20170250998A1 (en) Systems and methods of preventing infection or data leakage from contact with a malicious host system
Kavisankar et al. A mitigation model for TCP SYN flooding with IP spoofing
US20040250158A1 (en) System and method for protecting an IP transmission network against the denial of service attacks
Wang et al. Efficient and low‐cost defense against distributed denial‐of‐service attacks in SDN‐based networks
US20180020017A1 (en) Advanced persistent threat mitigation
Jeyanthi Internet of things (IoT) as interconnection of threats (IoT)
Wankhede Study of network-based DoS attacks
KR101231801B1 (ko) 네트워크 상의 응용 계층 보호 방법 및 장치
Fowler et al. Impact of denial of service solutions on network quality of service
Buriachok et al. Using 2.4 GHz Wireless Botnets to Implement Denial-of-Service Attacks
Djalaliev et al. Sentinel: hardware-accelerated mitigation of bot-based DDoS attacks
Kumar et al. An analysis of tcp syn flooding attack and defense mechanism
Бурячок et al. Using 2.4 GHz wireless botnets to implement denial-of-service attacks
Holik Protecting IoT Devices with Software-Defined Networks

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee