KR101442020B1 - 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치 - Google Patents

송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치 Download PDF

Info

Publication number
KR101442020B1
KR101442020B1 KR1020100109324A KR20100109324A KR101442020B1 KR 101442020 B1 KR101442020 B1 KR 101442020B1 KR 1020100109324 A KR1020100109324 A KR 1020100109324A KR 20100109324 A KR20100109324 A KR 20100109324A KR 101442020 B1 KR101442020 B1 KR 101442020B1
Authority
KR
South Korea
Prior art keywords
packet
flooding attack
attack
session
flooding
Prior art date
Application number
KR1020100109324A
Other languages
English (en)
Other versions
KR20120047641A (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 KR1020100109324A priority Critical patent/KR101442020B1/ko
Priority to US13/287,646 priority patent/US8667585B2/en
Publication of KR20120047641A publication Critical patent/KR20120047641A/ko
Application granted granted Critical
Publication of KR101442020B1 publication Critical patent/KR101442020B1/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • 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/166Implementing security features at a particular protocol layer at 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격 방어 방법 및 장치가 개시된다. 본 발명에 따른 TCP 플러딩 공격 방어 방법은, 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류를 확인하는 단계; 상기 패킷의 방향성을 결정하는 단계; 상기 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하는 단계; 상기 세션 상태들 각각을 플로우별로 추적하여 송신 제어 프로토콜플러딩 공격을 탐지하는 단계; 및 상기 송신 제어 프로토콜 플러딩 공격의 종류에 따라 상기 송신 제어 프로토콜 플러딩 공격에 대응하는 단계를 포함한다.

Description

송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치{Method and apparatus for preventing transmission control protocol flooding attacks}
본 발명은 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격 방어 방법 및 장치에 관한 것으로, 특히 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하고 상기 세션 상태를 플로우별로 추적하여 플러딩 공격을 탐지하여 대응함으로써 TCP 플러딩 공격을 신속하고 정확하게 탐지하여 방어할 수 있는 TCP 플러딩 공격 방어 방법 및 장치에 관한 것이다.
분산서비스거부(DDoS: Distributed Denial-of-Service) 공격은, 불특정 다수의 공격자가 시스템의 정상적인 서비스를 방해할 목적으로 대량의 데이터를 보내 대상 네트워크나 시스템의 성능을 급격히 저하시켜 시스템에서 제공하는 서비스를 사용하지 못하게 하는 공격이다.
DDoS 공격은 크게 네트워크 레벨(Network Level) 공격과 응용 레벨(Application Level) 공격으로 분류된다. 네트워크 레벨 공격은 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩(Flooding), 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP) 플러딩, 인터넷 콘트롤 메시지 프로토콜(Internet Control Message Protocol; ICMP) 플러딩과 같은 네트워크 레벨 혹은 계층(Layer)의 공격을 일컫고, 응용 레벨 공격은 하이퍼텍스터 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 플러딩, 세션 개시 프로토콜(Session Initiation Protocol; SIP) 플러딩, 도메인 네임 서버(Domain Name Server; DNS) 플러딩과 같은 응용 계층의 공격을 일컫는다. 두 공격 유형은 공격 특성이 상이하여 탐지 및 대응 방법도 다르다.
기존의 DDoS 방어 기법들은 대부분 BPS(Bit per Second), PPS(Packet per Second)와 같은 트래픽 양을 측정하여, 정해진 임계값(Threshold)을 넘으면 일정시간 패킷을 차단하는 단순한 기법을 사용한다. 또한 IDS/IPS(Intrusion Detection System/Intrusion Prevention System) 제품들에서는 주로 DDoS 공격 툴에서 나타나는 스트링 패턴(String Pattern)들을 탐지룰(Detection Rule)로 적용하여 패턴 매칭(Pattern Matching) 기능을 수행하여 이러한 패킷이 탐지되면 바로 차단하는 기법을 사용한다. 단순 패턴 매칭 만으로는 한계가 있어서 근래에는 QoS와 결합하여 우선순위 큐(Queue)를 두던지, 레이트 제한(Rate Limiting) 기법을 함께 적용하여 보다 효과적으로 대응하려는 시도가 이루어지고 있다.
그러나 기존의 DDoS 방어 기법들은 근본적으로 단순한 트래픽 양과 스트링 패턴을 기반으로 탐지 및 대응이 이루어지므로, 실제 DDoS 공격 상황에서 신속하고 정확한 방어가 이루어지는데 한계를 가지고 있는 실정이다.
상기한 과제를 해결하기 위한 본 발명의 목적은, 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하고 상기 세션 상태를 플로우별로 추적하여 플러딩 공격을 탐지하여 대응함으로써 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격을 신속하고 정확하게 탐지하여 방어할 수 있는 TCP 플러딩 공격 방어 방법 및 장치를 제공하는 것이다.
본 발명의 일 실시예에 따른 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격 방어 방법은, 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류를 확인하는 단계; 상기 패킷의 방향성을 결정하는 단계; 상기 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하는 단계; 상기 세션 상태들 각각을 플로우별로 추적하여 송신 제어 프로토콜 플러딩 공격을 탐지하는 단계; 및 상기 송신 제어 프로토콜 플러딩 공격의 종류에 따라 상기 송신 제어 프로토콜 플러딩 공격에 대응하는 단계를 포함한다.
이 때, 상기 패킷의 방향성을 결정하는 단계는, 발신지 아이피(IP) 주소와 목적지 아이피 주소의 크기를 비교하여 상기 패킷의 방향성을 결정하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 송신 제어 프로토콜 플러딩 공격 방어 장치는, 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하는 세션 상태 정의부; 상기 세션 상태들 각각을 플로우별로 추적하여 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격을 탐지하고 상기 송신 제어 프로토콜 플러딩 공격의 종류를 식별하는 공격 탐지부; 및 상기 송신 제어 프로토콜 플러딩 공격의 종류에 따라 상기 송신 제어 프로토콜 플러딩 공격에 대응하는 공격 대응부를 포함한다.
이 때, 상기 세션 상태 정의부는, 발신지 아이피(IP)와 목적지 아이피의 크기를 비교하여 상기 패킷의 방향성을 결정하고 상기 패킷의 방향성에 따라 상기 세션 상태를 상이하게 정의할 수 있다.
본 발명의 일 측면에 따르면, 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하고 상기 세션 상태를 플로우별로 추적하여 플러딩 공격을 탐지하여 대응함으로써 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격을 신속하고 정확하게 탐지하여 방어할 수 있는 TCP 플러딩 공격 방어 방법 및 장치를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 송신 제어 프로토콜 플러딩 공격 방어 장치를 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 송신 제어 프로토콜 플러딩 공격 방어 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치에서의 세션 상태 정의의 일 예를 도시한 도면이다.
도 4는 신 플러딩 공격을 설명하기 위한 도면이다.
도 5는 플래그 플러딩 공격을 설명하기 위한 도면이다.
도 6은 오픈 플러딩 공격을 설명하기 위한 도면이다.
도 7은 연결 플러딩 공격을 설명하기 위한 도면이다.
도 8은 핀-웨이트-1 플러딩 공격을 설명하기 위한 도면이다.
도 9는 핀-웨이트-2 플러딩 공격을 설명하기 위한 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 송신 제어 프로토콜(Transmission Control Prot10ocol; TCP) 플러딩 공격 방어 장치를 개략적으로 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치는 세션 상태 정의부(101), 공격 탐지부(102) 및 공격 대응부(103)를 포함하여 구성될 수 있다. 도 1에 도시된 TCP 플러딩 공격 방어 장치는 예시적으로 도시된 것이며, 필요에 따라 일부 구성 요소가 추가, 삭제 또는 변경되어 구성될 수 있다.
세션 상태 정의부(101)는 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의한다. 세션 연결 및 종료 과정에서는 각 단계별로 패킷을 주고 받게 되는데 이 때 패킷의 종류 및 방향성에 따라 다양하게 세션 상태를 정의할 수 있다. 세션 상태 정의부(101)는 패킷의 종류 및 방향성에 따라 세션 상태를 정의함으로써 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치가 다양한 종류의 TCP 플러딩 공격을 탐지하고 대응할 수 있도록 한다. 이 때, 패킷의 방향성은 발신지 아이피(IP) 주소와 목적지 아이피 주소의 크기를 비교하여 결정될 수 있으며, 세션 상태 정의부(101)는 패킷의 방향성에 따라 상기 세션 상태는 상이하게 정의될 수 있다. 이와 같이, 세션 상태는 다양한 방식으로 정의될 수 있으며, 이후 세션 상태를 정의하는 방식의 일 예를 도면을 참조하여 상세하게 설명하도록 한다.
공격 탐지부(102)는 상기 세션 상태들 각각을 플로우(flow)별로 추적하여 TCP 플러딩 공격을 탐지하고 TCP 플러딩 공격의 종류를 식별한다. 공격 탐지부(102)에서 TCP 플러딩 공격을 탐지하기 위해서는 기본적으로 플로우별 세션 상태 추적이 이루어져야 한다. 플로우는 공통된 특성을 가진 일련의 패킷 스트림(packet stream)으로 정의할 수 있는데, 본 발명에서는 동일한 <목적지 IP>를 갖거나, 동일한 <목적지 IP, 목적지 포트(Port)>를 갖거나, 동일한 <발신지 IP, 목적지 IP, 목적지 포트>를 가지고 있는 일련의 패킷 스트림을 "플로우"로 정의한다. 이렇게 정의된 플로우별로 특정 세션 상태를 추적하면 각각의 유형별 TCP 플러딩을 탐지하고 식별할 수 있다. 공격 탐지부(202)의 각 유형별 TCP 플러딩 공격 탐지 과정은 이후 도면을 참조하여 상세히 설명하도록 한다.
공격 대응부(103)는 공격 탐지부(102)에서 탐지된 상기 TCP 플러딩 공격의 종류에 따라 대응하여 TCP 플러딩 공격을 방어할 수 있도록 한다. 즉, 공격 탐지부(102)에서 세션 상태 추적을 통해 TCP 플러딩에 대한 유형별 탐지가 이루어지면, 공격 대응부(103)에서 유형별로 적합한 대응이 이루어진다. 공격 대응부(103)의 각 유형별 TCP 플러딩 공격 대응 과정은 이후 도면을 참조하여 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 송신 제어 프로토콜 플러딩 공격 방어 방법을 설명하기 위한 순서도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법이 시작되면, 먼저 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류를 확인한다(S201). 그 다음, 상기 패킷의 방향성을 결정한다(S202). 단계(S202)에서, 발신지 IP 주소와 목적지 IP 주소의 크기를 비교하여 상기 패킷의 방향성을 결정할 수 있다. 이와 같이 패킷의 종류 및 방향성이 결정되고 나면(S201, 202), 상기 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의한다(S203). 그리고 나서, 상기 세션 상태들 각각을 플로우별로 추적하여 TCP 플러딩 공격을 탐지하고(S204), 상기 TCP 플러딩 공격의 종류에 따라 상기 TCP 플러딩 공격에 대응한다(S205).
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법은 도 2에 도시된 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치와 유사하게 TCP 플러딩 공격 방어 과정이 진행되므로 특별한 언급이 없는 한 도 1에의 설명이 그대로 적용되므로 상세한 설명은 생략하도록 한다. 도 2에서도 도 1에서와 마찬가지로 도 2에 도시된 순서도의 각 단계들은 모든 단계가 필수 단계는 아니며, 다른 실시예에서 일부 단계가 추가, 변경 또는 삭제될 수 있다.
도 3은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치에서의 세션 상태 정의의 일 예를 도시한 도면이다.
본 발명에 따른 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격 방어 방법 및 장치를 설명하기 위한 전제로서, 본 발명에 따른 TCP 플러딩 공격 방어 방법 및 장치에서 세션 상태를 정의하는 일 예를 설명하도록 한다.
종래의 TCP 세션의 연결 및 종료에 대한 클라이언트와 서버의 상태 천이는 3-웨이 핸드쉐이킹(3-way handshaking)을 통한 세션 연결 단계, 데이터 요청 및 전송 단계, 4-웨이 핸드쉐이킹(4-way handshaking)을 통한 세션 종료 단계와 같이 크게 3 단계로 구성될 수 있다. 이 때, 연결요청(SYN) 패킷, 응답확인(ACK) 패킷, 종료(FIN) 패킷 등을 서로 송수신함에 따라 클라이언트와 서버는 알맞은 상태 천이가 이루어지게 된다.
본 발명에 따른 TCP 플러딩 공격 방어 방법 및 장치에서는 세션 상태 추적을 통해 TCP 플러딩 공격을 탐지하기 위해 클라이언트와 서버의 중간 단에서 각 단계별 수신되는 패킷의 종류에 따라 새롭게 세션 상태를 정의하고, 플로우 별로 이를 추적하여 공격을 정확하게 탐지한다.
본 발명에 따른 TCP 플러딩 공격 방어 방법 및 장치에서는 TCP 플러딩 공격을 탐지하기 위해 일 예로서 표 1과 같은 16개의 세션 상태를 새롭게 정의할 수 있다. 클라이언트와 서버의 중간 단에서 DDoS 공격을 탐지하기 위해 종래의 TCP 상태 천이에서 정의한 세션 상태와는 다른 세션 상태를 새롭게 정의한 것이다.
세션 상태 설명
0000 미연결 상태
0001 SYN 패킷 수신(SYN_RCVD)(3-웨이 핸드쉐이킹)
0010 SYN+ACK 패킷 수신(SYNACK_RCVD)(3-웨이 핸드쉐이킹)
0011 미사용(reserved)
0100 연결 상태, 발신지 IP가 목적지 IP보다 작음, 제2 ACK 패킷 수신(FIRST_FIN-ACK_RCVD)(클라이언트 -> 서버)
0101 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 제2 ACK 패킷 수신(FIRST_FIN-ACK_RCVD)(클라이언트 -> 서버)
0110 연결 상태, 발신지 IP가 목적지 IP보다 작음, 세션 연결이 확립됨(ESTABLISHED)
0111 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 세션 연결이 확립됨(ESTABLISHED)
1000 연결 상태, 발신지 IP가 목적지 IP보다 작음, 제1 데이터 수신(FIRST_DATA_RCVD)(클라이언트 -> 서버)
1001 연결 상태, 발신지 IP가 목적지 IP보다 작음, 제1 FIN 패킷 수신(FIRST_FIN_RCVD)(클라이언트 -> 서버)
1010 연결 상태, 발신지 IP가 목적지 IP보다 작음, 제1 FIN 패킷 수신(FIRST_FIN_RCVD)(서버 -> 클라이언트)
1011 연결 상태, 발신지 IP가 목적지 IP보다 작음, 제2 FIN 패킷 수신(SECOND_FIN_RCVD)(서버 -> 클라이언트 또는 클라이언트 -> 서버)
1100 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 제1 데이터 수신(FIRST_DATA_RCVD)(클라이언트 -> 서버)
1101 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 제1 FIN 패킷 수신(FIRST_FIN_RCVD)(클라이언트 -> 서버)
1110 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 제1 FIN 패킷 수신(FIRST_FIN_RCVD)(서버 -> 클라이언트)
1111 연결 상태, 발신지 IP가 목적지 IP보다 작지 않음, 제2 FIN 패킷 수신(SECOND_FIN_RCVD)(서버 -> 클라이언트 또는 클라이언트 -> 서버)
도 3에서는 표 1에서와 같이 정의된 세션 상태의 천이도가 도시된다. 표 1의 각 세션 상태에 대해서는 도 3을 참조하여 기술하도록 한다. 도 3을 참조하면, 우선 세션의 초기 상태인 "0000"은 세션 연결이 이루어지지 않은 상태를 나타낸다. 클라이언트가 세션 연결을 위해 서버로 연결요청(SYN) 패킷을 전송하면 세션 상태는 "0000"에서 "0001" 상태로 천이된다. 서버에서 SYN 패킷에 대한 응답으로 연결요청응답(SYN+ACK) 패킷을 클라이언트로 전송하면 세션 상태는 "0001"에서 "0010" 상태로 천이된다. 클라이언트가 SYN+ACK 패킷에 대한 응답으로 마지막 3-웨이 핸드쉐이킹 과정의 제1 응답확인(ACK) 패킷을 전송하면 발신지(source) 아이피(IP) 주소와 목적지(Destination) IP 주소의 크기를 비교하여 발신지 IP 주소가 작으면 "0010" 상태에서 "0110" 상태로 천이하고, 발신지 IP 주소가 크거나 같으면 "0010" 상태에서 "0111" 상태로 천이한다.
TCP 3-웨이 핸드쉐이킹 과정의 마지막 ACK 패킷은 항상 클라이언트에서 서버로 전송되므로 두 IP 주소의 크기에 따라 세션 상태를 달리 해두면 세션 연결 이후의 패킷이 클라이언트에서 서버로 가는 패킷인지, 아니면 서버에서 클라이언트로 가는 패킷인지 그 방향성을 쉽게 알 수 있다. 예를 들면, 세션의 상태가 "0110", "1000", "1001", "1010", "0100", "1011" 상태에서 패킷의 발신지 IP 주소가 목적지 IP 주소보다 작으면 그 패킷은 클라이언트에서 서버로 향하는 패킷이고, 반대로 발신지 IP 주소가 목적지 IP 주소보다 크거나 같으면 그 패킷은 서버에서 클라이언트로 향하는 패킷이다. 그리고 만약 세션의 상태가 "0111", "1100", "1101", "1110", "0101", "1111" 상태에서 패킷의 발신지 IP 주소가 목적지 IP 주소보다 작으면 그 패킷은 서버에서 클라이언트로 향하는 패킷이고, 반대로 발신지 IP 주소가 목적지 IP 주소보다 크거나 같으면 그 패킷은 클라이언트에서 서버로 향하는 패킷이다. 세션의 상태 천이는 세션의 현재 상태와 패킷의 방향성에 의해 이루어지기 때문에 패킷의 방향성에 대하여 판단할 필요가 있다.
TCP 3-웨이 핸드쉐이킹 과정이 완료되어 세션 연결이 확립된 후, 클라이언트에서 서버로 제1 데이터 전송이 이루어지면 세션 상태 "0110"은 "1000" 상태로 천이되고, 세션 상태 "0111"은 "1100" 상태로 천이된다. 만약 데이터 전송 없이 바로 세션 종료를 위한 제1 종료(FIN) 패킷을 클라이언트에서 서버로 전송하면 세션 상태 "0110"은 "1001" 상태로 천이되고, 세션 상태 "0111"은 "1101" 상태로 천이된다. 천이된 상태에서 세션 종료를 위한 제2 FIN 패킷이 서버에서 클라이언트로 전송되면 세션 상태 "1001"은 "1011" 상태로 천이되고, 세션 상태 "1101"은 "1111" 상태로 천이된다. 또는, 만약 데이터 전송 없이 바로 세션 종료를 위한 제1 FIN 패킷을 서버에서 클라이언트로 전송하면 세션 상태 "0110"은 "1010" 상태로 천이되고, 세션 상태 "0111"은 "1110" 상태로 천이된다. 천이된 상태에서 제1 FIN 패킷에 대한 제2 ACK 패킷이 클라이언트에서 서버로 전송되면 세션 상태 "1010"은 "0100"으로 천이되고, 세션 상태 "1110"은 "0101"로 천이된다. 그 다음, 세션 종료를 위한 제2 FIN 패킷이 서버에서 클라이언트로 전송되면 세션 상태 "1001"은 "1011" 상태로 천이되고, 세션 상태 "1101"은 "1111" 상태로 천이된다.
세션 종료를 위한 제1 FIN 패킷의 전송 없이 데이터 전송이 이루어지는 상황에서는 세션 상태 "1000", "1100" 상태를 유지한다. 데이터 전송이 완료되고 세션 종료를 위한 정상적인 4-웨이 핸드쉐이킹을 위한 제1 FIN 패킷이 전송되면 패킷의 방향성에 따라 상태 천이가 다르게 이루어진다. 클라이언트에서 서버로 제1 FIN 패킷이 전송되면 세션 상태 "1000"은 "1001" 상태로 천이되고, "1100"은 "1101" 상태로 천이된다. 서버에서 클라이언트로 제1 FIN 패킷이 전송되면 세션 상태 "1000"은 "1010" 상태로 천이되고, "1100"은 "1110" 상태로 천이된다. 4-웨이 핸드쉐이킹 과정의 제1 FIN 패킷이 서버에서 클라이언트로 전송되고, 이에 대한 응답으로 제2 ACK 패킷이 클라이언트에서 서버로 전송되면 세션 상태 "1010"은 "0100" 상태로 천이되고, "1110"은 "0101" 상태로 천이된다.
4-웨이 핸드쉐이킹을 위한 제2 FIN 패킷이 전송되면 역시 패킷의 방향성에 따라 상태 천이가 다르게 이루어진다. 제2 FIN 패킷이 클라이언트에서 서버로 전송되면 세션 상태 "0100"은 "1011" 상태로 천이되고, "0101"은 "1111" 상태로 천이된다. 만약 제2 FIN 패킷이 서버에서 클라이언트로 전송되면 세션 상태 "1001"은 "1011" 상태로 천이되고, "1101"은 "1111" 상태로 천이된다.
4-웨이 핸드쉐이킹 과정의 제2 FIN 패킷에 대한 응답으로써 제3 ACK 패킷이 전송되면 세션 상태 "1011"은 "0000" 상태로 천이되고, "1111"은 "0000" 상태로 천이된다. 이것은 세션 종료 과정이 완료된 것으로 초기 상태인 "0000"으로 천이되는 것이다.
지금까지 세션 상태 추적을 통한 TCP 플러딩 공격을 탐지하기 위해 클라이언트와 서버의 중간 단에서 새롭게 정의한 세션 상태와 패킷의 방향성을 고려하여, 어떤 조건일 때 해당 세션으로 천이가 이루어지는지 기술하였다. 지금부터는 새롭게 정의된 세션 상태 추적을 통해 TCP 플러딩 공격을 어떻게 탐지하고 방어하는지에 대해 기술한다.
네트워크 레벨의 분산서비스거부(DDoS: Distributed Denial-of-Service) 공격 트래픽은 프로토콜의 종류에 따라 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩(Flooding), 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP) 플러딩, 인터넷 콘트롤 메시지 프로토콜(Internet Control Message Protocol; ICMP) 플러딩으로 나눌 수 있다. 이 중 TCP 플러딩 공격은 신(SYN) 플러딩, ACK 플러딩, FIN 플러딩 등 여러 가지 유형으로 나눌 수 있는데, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 신 플러딩, 플래그(flag) 플러딩, 오픈(open) 플러딩, 연결(connection) 플러딩, 핀-웨이트-1(FIN-WAIT-1) 플러딩 및 핀-웨이트-2(FIN-WAIT-2) 플러딩과 같은 여섯 가지 유형의 TCP 플러딩 공격에 대한 탐지 및 대응 기법을 제공할 수 있다.
이하 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치의 TCP 플러딩 공격 종류별 탐지 및 대응 과정을 도면을 참조하여 기술하도록 한다.
도 4는 SYN 플러딩 공격을 설명하기 위한 도면이다.
SYN 플러딩 공격은 새로운 세션 연결 요청을 위해 SYN 패킷(401)을 대량 전송하는 가장 대표적인 DDoS 공격이다. 도 4를 참조하면, SYN 플러딩 공격은 다량의 SYN 패킷(401)을 서버(10)로 전송하고, 서버에서 전송한 SYN+ACK 패킷(402)에 대한 응답으로 제1 ACK 패킷을 전송하지 않는다. 따라서 서버(10)에는 SYN 패킷 수신 상태 즉, "SYN-RCVD" 상태(403)의 세션으로 가득차게 되어, 즉 서버(10)의 백로그 큐(Backlog Queue)가 고갈되어 더 이상의 TCP 세션 연결을 못하게 되고 서버(10)가 서비스 불능 상태가 된다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 SYN 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. SYN 플러딩의 경우 3-웨이 쉐이킹 과정의 마지막 패킷인 제1 ACK 패킷을 전송하지 않음으로써, 클라이언트(20)가 SYN+ACK 패킷(402)을 수신한 세션 상태 즉, 세션 상태 "0010"이 급격히 증가한다. 정상적인 세션 연결의 경우에는 마지막 ACK 패킷이 바로 전송되어 세션 상태가 "0110"으로 천이가 이루어져 특정 시간에 세션 상태 "0010"인 세션의 개수는 일정한 범위 안에서 유지되고, 일반적으로 "0010" 상태의 개수는 10미만을 유지한다. 따라서 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치에 따르면, 플로우 별로 측정하는 세션 상태 "0010"의 개수가 제1 임계값 이상이 되면 SYN 플러딩이 발생했다고 탐지할 수 있다. 제1 임계값은 세션 상태 "0010"의 개수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 SYN 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 SYN 플러딩 공격에 대해 다음과 같이 대응할 수 있다. SYN 플러딩이 탐지된 <목적지 IP> 혹은 <목적지 IP, 목적지 포트>로 향하는 트래픽에 대해 레이트 제한(Rate-Limiting)을 건다든지, 접속이력을 추적하여 신뢰할 수 있는 발신지 IP만 통과시켜 SYN 플러딩 공격에 대응할 수 있다. 또는 SYN 쿠키 프록시(Cookie Proxy)와 같은 종래의 대응 방법을 이용할 수도 있다. 이와 같은 SYN 플러딩 공격 대응 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 대응부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 대응하는 단계에서 수행될 수 있다.
도 5는 플래그 플러딩 공격을 설명하기 위한 도면이다.
도 5를 참조하면, 플래그 플러딩 공격은 세션 연결이 성립되지 않은 패킷, 즉 아웃-오브-스테이트(Out-of-State) 상태의 패킷을 대량 전송한다. 즉, 정상적인 세션 연결을 위한 TCP 3-웨이 핸드쉐이킹 과정(501) 없이 임의의 TCP 플래그를 생성하여 다량의 비정상 패킷(502)을 서버(10)로 전송한다. 예를 들면 SYN+ACK, ACK, FIN, 재설정(RST), 푸쉬응답(PSH+ACK), 널(NULL), 엑스마스(XMAS) 등의 패킷이나 랜덤 플래그(Random Flag) 패킷을 대량 전송하여 서비스거부 공격을 야기한다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 플래그 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. 플래그 플러딩은 SYN 패킷 이외의 패킷, 예를 들면 ACK 패킷, FIN 패킷, PSH+ACK 패킷 등이 인입되었을 때 세션 상태 검색 결과, 해당 세션 상태에 해당되지 않으면 이 패킷은 아웃-오브-스테이트 패킷이므로 비정상 패킷(502)으로 간주되고, 플로우 별로 측정되는 이러한 비정상 패킷(502)의 개수가 제2 임계값 이상이 되면 플래그 플러딩으로 탐지한다. 제2 임계값은 비정상 패킷(502)의 개수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 플래그 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 플래그 플러딩 공격에 대해 다음과 같이 대응할 수 있다. 플래그 플러딩이 탐지되면 해당 패킷 하나하나에 대해서 패킷-대-패킷(Packet-by-Packet)으로 대응할 수 있다. 즉, 비정상 패킷(502)을 모두 드롭(drop)할 수 있다. 이와 같은 플래그 플러딩 공격 대응 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 대응부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 대응하는 단계에서 수행될 수 있다.
도 6은 오픈 플러딩 공격을 설명하기 위한 도면이다.
도 6을 참조하면, 오픈 플러딩 공격은 세션 연결한 후, 아무런 데이터 패킷을 보내지 않고 계속해서 세션 연결(603)만 만들어냄으로써 서버(10)의 세션을 고갈시키는 공격이다. 정상적인 경우, TCP 세션 연결 후 데이터를 전송하고 세션을 종료하는 과정을 거치지만, 오픈 플러딩 공격의 경우 데이터 전송이나 세션 종료 과정은 생략된다. 오픈 플러딩 공격이 계속되면 세션 종료 과정 없이 계속해서 세션 연결(603)만 이루어지고, 결국 서버(10)는 최대 한계 세션 연결 수에 도달하여 더 이상의 새로운 세션 연결을 제공할 수 없게 된다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 오픈 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. 오픈 플러딩 공격은 3-웨이 핸드쉐이킹 과정의 마지막 제1 ACK 패킷을 수신하여 세션 연결(603)이 이루어진 후, 아무런 데이터 전송이 이루어지지 않아 서버(10)가 제1 ACK 패킷을 수신하고 세션 연결(602)이 확립된 세션 상태 즉, 세션 상태 "0110" 또는 "0111"이 급격히 증가한다. 정상적인 세션 연결의 경우에는 세션 연결 후, 바로 데이터 전송이 이루어져 세션 상태가 "1000" 또는 "1100"으로 천이가 이루어져 특정 시간에 세션 상태 "0110" 또는 "0111"인 세션의 개수는 일정한 범위 안에서 유지될 것이다. 따라서 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치에 따르면, 플로우 별로 측정하는 세션 상태 "0110" 또는 "0111"의 개수가 제3 임계값 이상이 되면 오픈 플러딩으로 탐지할 수 있다. 제3 임계값은 세션 상태 "1000" 또는 "1100"의 개수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 오픈 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 오픈 플러딩 공격, 연결 플러딩 공격, FIN-WAIT-1 플러딩 공격, FIN-WAIT-2 플러딩 공격에 대해 동일하게 대응할 수 있으므로, 대응 과정은 이후에 통합하여 기술하도록 한다.
도 7은 연결 플러딩 공격을 설명하기 위한 도면이다.
도 7을 참조하면, 연결 플러딩 공격은 TCP 세션 연결(701) 후, 아무런 데이터 패킷 전송 없이 바로 FIN 패킷(702)이나 RST 패킷(703)을 전송하여 세션을 종료함으로써, 서버(10)의 부하를 가중시키는 공격이다. 정상적인 경우, TCP 세션 연결(701) 후 데이터를 전송하고 세션을 종료하는 과정을 거치지만, 연결 플러딩 공격의 경우 데이터 전송 과정 없이 바로 세션을 종료한다. 이러한 공격은 서버(10)의 초당 세션 연결 개수(Connections per Second: CPS)를 가중시키므로 CPS 플러딩 공격이라고도 불린다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 연결 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. 연결 플러딩 공격은 세션 연결(701) 후, 데이터 전송없이 FIN 패킷(702)이나 RST 패킷(703)과 같은 바로 세션을 종료하는 패킷을 전송하므로 이런 비정상적인 상태의 세션 개수를 추적하면 탐지할 수 있다. 즉, 상기 서버(10)가 제1 응답확인(ACK) 패킷을 수신하고 세션 연결(701)이 확립된 세션 상태인 "0110" 또는 "0111"에서 FIN 패킷(701)이나 RST 패킷(703)을 수신한 세션의 개수가 제4 임계값 이상이 되면 연결 플러딩 공격으로 탐지할 수 있다. 제4 임계값은 세션 연결(701) 후 바로 세션을 종료하는 패킷을 수신한 세션의 개수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 연결 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
앞에서 기술한 바와 마찬가지로, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 오픈 플러딩 공격, 연결 플러딩 공격, FIN-WAIT-1 플러딩 공격, FIN-WAIT-2 플러딩 공격에 대해 동일하게 대응할 수 있으므로, 대응 과정은 이후에 통합하여 기술하도록 한다.
도 8은 핀-웨이트-1(FIN-WAIT-1) 플러딩 공격을 설명하기 위한 도면이다.
도 8을 참조하면, FIN-WAIT-1 플러딩 공격은 세션 종료를 위해 서버(10)로부터 수신한 제1 FIN 패킷(804)에 대한 응답으로서의 제2 ACK 패킷(805)을 전송하지 않음으로써, 서버(10)의 리소스를 고갈시키는 공격이다. 즉, FIN-WAIT-1 플러딩 공격을 받으면, 정상적인 TCP 3-웨이 핸드쉐이킹 과정을 통해 세션 연결(801)을 하고 데이터 전송을 마친 후, TCP 4-웨이 핸드쉐이킹 과정을 통해 세션을 종료하는데 필요한 과정이 제대로 수행되지 않는다. 도 8과 같이 클라이언트(20)로부터 데이터 요구(Http: Get Request)(802)가 들어오면 서버(10)는 데이터 전송(803)을 마친 후, 세션을 종료하기 위해 제1 FIN 패킷(804)을 클라이언트(20)로 전송한다. 클라이언트(20)가 제1 FIN 패킷(804)을 수신한 후, 제2 ACK 패킷(805)을 전송하지 않으면 서버(10)에는 "FIN-WAIT-1" 상태(806)의 세션으로 가득차게 되고 결국 리소스 고갈로 이어져, "FIN-WAIT-1" 상태(806)의 세션이 타임아웃(Timeout) 될 때까지 서버(10)는 제대로 된 서비스를 제공하지 못하게 된다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 FIN-WAIT-1 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. FIN-WAIT-1 플러딩 공격은 세션 종료를 위해 서버(10)에서 클라이언트(20)로 제1 FIN 패킷(804)이 전송된 후, 클라이언트(20)에서 이에 대한 응답으로 제2 ACK 패킷(805)의 전송이 이루어지지 않아 클라이언트(20)가 제1 FIN 패킷(804)을 수신한 세션 상태 즉, 세션 상태 "1010" 또는 "1110"이 급격이 증가한다. 정상적인 세션 종료의 경우에는 제1 FIN 패킷(804) 수신 후, 바로 제2 ACK 패킷(805) 전송이 이루어져 세션 상태가 "0100" 또는 "0101"으로 천이가 이루어져 특정 시간에 세션 상태 "1010" 또는 "1110"인 세션의 개수는 일정한 범위 안에서 유지된다. 따라서 플로우 별로 측정하는 세션 상태 "1010" 또는 "1110"의 개수가 임계치 이상이 되면 FIN-WAIT-1 플러딩 공격으로 탐지할 수 있다. 제5 임계값은 클라이언트(20)가 제1 FIN 패킷(804)을 수신한 세션 상태의 수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 FIN-WAIT-1 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
앞에서 기술한 바와 마찬가지로, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 오픈 플러딩 공격, 연결 플러딩 공격, FIN-WAIT-1 플러딩 공격, FIN-WAIT-2 플러딩 공격에 대해 동일하게 대응할 수 있으므로, 대응 과정은 이후에 통합하여 기술하도록 한다.
도 9는 핀-웨이트-2(FIN-WAIT-2) 플러딩 공격을 설명하기 위한 도면이다.
도 9를 참조하면, FIN-WAIT-2 플러딩 공격은 세션 종료를 위해 서버(10)로부터 수신한 제1 FIN 패킷(904)에 대한 응답으로서의 제2 ACK 패킷(905)을 전송한 후, 클라이언트(20)가 제2 FIN 패킷(906)을 전송하지 않음으로써, 서버(10)의 리소스를 고갈시키는 공격이다. 정상적인 TCP 3-웨이 핸드쉐이킹 과정을 통해 세션 연결(901)을 하고 데이터 전송을 마친 후, TCP 4- 웨이 핸드쉐이킹 과정을 통해 세션을 종료하는데 필요한 과정을 제대로 수행하지 않는다. 도 9와 같이 클라이언트(20)로부터 데이터 요구(Http: Get Request)(902)가 들어오면 서버(10)는 데이터 전송(903)을 마친 후, 세션을 종료하기 위해 제1 FIN 패킷(904)을 클라이언트(20)로 전송한다. 클라이언트(20)가 제1 FIN 패킷(904)을 수신하고 제2 ACK 패킷(905)을 전송한 후, 서버(10)로 제2 FIN 패킷(906)을 전송하지 않으면 서버(10)에는 "FIN-WAIT-2" 상태(907)의 세션으로 가득차게 되고 결국 리소스 고갈로 이어져, "FIN-WAIT-2" 상태(907)의 세션이 타임아웃(Timeout) 될 때까지 서버(10)는 제대로 된 서비스를 제공하지 못하게 된다.
본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 FIN-WAIT-2 플러딩 공격에 대해 다음과 같이 탐지할 수 있다. FIN-WAIT-2 플러딩 공격은 세션 종료를 위해 서버(10)에서 클라이언트(20)로 제1 FIN 패킷(904)이 전송되고 클라이언트(20)에서 이에 대한 응답으로 제2 ACK 패킷(905)이 전송된 후, 클라이언트(20)에서 서버(10)로의 제2 FIN 패킷(906)의 전송이 이루어지지 않아 서버(10)가 제1 FIN 패킷(904)에 대한 제2 ACK 패킷(905)을 수신한 세션 상태 즉, 세션 상태 "0100" 또는 "0101"이 급격이 증가한다. 정상적인 세션 종료의 경우에는 서버(10)에서 클라이언트(20)로 제1 FIN 패킷(904)이 전송되고 이에 대한 응답으로 제2 ACK 패킷(905)이 전송된 후, 바로 클라이언트(20)에서 서버(10)로 제2 FIN 패킷(906)의 전송이 이루어져 세션 상태가 "1011" 또는 "1111"으로 천이가 이루어져 특정 시간에 세션 상태 "0100" 또는 "0101"인 세션의 개수는 일정한 범위 안에서 유지된다. 따라서 플로우 별로 측정하는 세션 상태 "0100" 또는 "0101"의 개수가 제6 임계값 이상이 되면 FIN-WAIT-2 플러딩 공격으로 탐지할 수 있다. 제6 임계값은 서버(10)가 제1 FIN 패킷(904)에 대한 제2 ACK 패킷(905)을 수신한 세션 상태의 수가 과도해져 서버(10)의 서비스가 불능 상태가 되는 것을 방지하기 위해 사용자에 의해 미리 설정될 수 있는 값이다. 이와 같은 FIN-WAIT-1 플러딩 공격 탐지 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 탐지부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 탐지하는 단계에서 수행될 수 있다.
상기 기술한 바와 마찬가지로, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법 및 장치는 오픈 플러딩 공격, 연결 플러딩 공격, FIN-WAIT-1 플러딩 공격, FIN-WAIT-2 플러딩 공격에 대해 동일하게 대응할 수 있으며, 대응 과정은 다음과 같다. 오픈 플러딩 공격, 연결 플러딩 공격, FIN-WAIT-1, FIN-WAIT-2 플러딩 공격은 합법적인 3-웨이 핸드쉐이킹 과정을 거친 세션에 대해서 공격이 탐지된 것이므로, 즉 발신지 IP 변조(Spoofing)가 이루어질 수 없는 공격이 탐지된 것이므로, 탐지된 패킷의 발신지 IP를 ACL(Access Control List)이나 블랙리스트(Blacklist)와 같은 리스트로 관리하고 해당 발신지 IP에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하는 방법을 통해 효과적으로 방어할 수 있다. 미리 정해진 시간은 DDoS 공격이 지속되는 시간 또는 사용자에 의해 정해진 일정 시간이 될 수 있다. 이와 같은 공격 대응 과정은 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 장치의 공격 대응부에 의해 수행될 수 있고, 본 발명의 일 실시예에 따른 TCP 플러딩 공격 방어 방법의 대응하는 단계에서 수행될 수 있다.
이상 본 발명의 특정 실시예를 도시하고 설명하였으나, 본 발명의 기술사상은 첨부된 도면과 상기한 설명내용에 한정하지 않으며 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 형태의 변형이 가능함은 이 분야의 통상의 지식을 가진 자에게는 자명한 사실이며, 이러한 형태의 변형은, 본 발명의 정신에 위배되지 않는 범위 내에서 본 발명의 특허청구범위에 속한다고 볼 것이다.

Claims (18)

  1. 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류를 확인하는 단계;
    발신지 아이피(IP) 주소와 목적지 아이피 주소의 크기를 비교하여 상기 패킷의 방향성을 결정하는 단계;
    상기 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하는 단계;
    상기 세션 상태들 각각을 플로우별로 추적하여 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격을 탐지하는 단계; 및
    상기 TCP 플러딩 공격의 종류에 따라 상기 TCP 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 클라이언트가 연결요청응답(SYN+ACK) 패킷을 수신한 세션 상태의 수가 제1 임계값 이상인 경우에 신(SYN) 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 신 플러딩 공격이 탐지된 트래픽에 대하여 레이트 제한을 걸어 상기 신 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  4. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 클라이언트가 연결요청응답(SYN+ACK) 패킷을 수신한 세션 상태의 수가 제1 임계값 이상인 경우에 신(SYN) 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    발신지 아이피의 접속 이력을 추적하여 신뢰 가능한 발신지 아이피만 통과시켜 상기 신 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  5. 제1항에 있어서,
    상기 탐지하는 단계는,
    연결요청(SYN) 패킷 이외의 패킷이 인입되었을 경우에 인입된 후의 세션 상태가 상기 정의하는 단계에서 정의된 세션 상태에 해당하지 않으면 인입된 상기 패킷을 비정상 패킷으로 간주하는 단계; 및
    상기 비정상 패킷의 수가 제2 임계값 이상인 경우에 플래그 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 비정상 패킷을 모두 드롭하여 상기 플래그 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  6. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 서버가 제1 응답확인(ACK) 패킷을 수신하고 세션 연결이 확립된 세션 상태의 수가 제3 임계값 이상인 경우에 오픈 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 오픈 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 오픈 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  7. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 서버가 제1 응답확인(ACK) 패킷을 수신하고 세션 연결이 확립된 세션 상태에서 바로 세션을 종료하는 패킷을 수신한 세션의 수가 제4 임계값 이상인 경우에 연결 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 연결 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 연결 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  8. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 클라이언트가 제1 종료(FIN) 패킷을 수신한 세션 상태의 수가 제5 임계값 이상인 경우에 핀-웨이트-1(FIN-WAIT-1) 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 핀-웨이트-1 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 핀-웨이트-1 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  9. 제1항에 있어서,
    상기 탐지하는 단계는,
    상기 서버가 제1 종료(FIN) 패킷에 대한 제2 응답확인(ACK) 패킷을 수신한 세션 상태의 수가 제6 임계값 이상인 경우에 핀-웨이트-2(FIN-WAIT-2) 플러딩 공격으로 탐지하는 단계를 포함하고,
    상기 대응하는 단계는,
    상기 핀-웨이트-2 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 핀-웨이트-2 플러딩 공격에 대응하는 단계를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 방법.
  10. 클라이언트와 서버의 중간 단에서 수신되는 패킷의 종류 및 방향성에 따라 복수의 세션 상태들을 정의하되, 발신지 아이피(IP) 주소와 목적지 아이피 주소의 크기를 비교하여 상기 패킷의 방향성을 결정하고 상기 패킷의 방향성에 따라 상기 세션 상태를 상이하게 정의하는 세션 상태 정의부;
    상기 세션 상태들 각각을 플로우별로 추적하여 송신 제어 프로토콜(Transmission Control Protocol; TCP) 플러딩 공격을 탐지하고 상기 송신 제어 프로토콜 플러딩 공격의 종류를 식별하는 공격 탐지부; 및
    상기 송신 제어 프로토콜 플러딩 공격의 종류에 따라 상기 송신 제어 프로토콜 플러딩 공격에 대응하는 공격 대응부를 포함하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  11. 삭제
  12. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 클라이언트가 연결요청응답(SYN+ACK) 패킷을 수신한 세션 상태의 수가 제1 임계값 이상인 경우에 신(SYN) 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    상기 신 플러딩 공격이 탐지된 트래픽에 대하여 레이트 제한을 걸어 상기 신 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  13. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 클라이언트가 연결요청응답(SYN+ACK) 패킷을 수신한 세션 상태의 수가 제1 임계값 이상인 경우에 신(SYN) 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    발신지 아이피의 접속 이력을 추적하여 신뢰 가능한 발신지 아이피만 통과시켜 상기 신 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  14. 제10항에 있어서,
    상기 공격 탐지부는,
    연결요청(SYN) 패킷 이외의 패킷이 인입되었을 경우에 인입된 후의 세션 상태가 상기 정의하는 단계에서 정의된 세션 상태에 해당하지 않으면 인입된 상기 패킷을 비정상 패킷으로 간주하고, 상기 비정상 패킷의 수가 제2 임계값 이상인 경우에 플래그 플러딩 공격으로 탐지하며,
    상기 공격 대응부는,
    상기 비정상 패킷을 모두 드롭하여 상기 플래그 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  15. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 서버가 제1 응답확인(ACK) 패킷을 수신하고 세션 연결이 확립된 세션 상태의 수가 제3 임계값 이상인 경우에 오픈 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    상기 오픈 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 오픈 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  16. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 서버가 제1 응답확인(ACK) 패킷을 수신하고 세션 연결이 확립된 세션 상태에서 바로 세션을 종료하는 패킷을 수신한 세션의 수가 제4 임계값 이상인 경우에 연결 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    상기 연결 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 연결 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  17. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 클라이언트가 제1 종료(FIN) 패킷을 수신한 세션 상태의 수가 제5 임계값 이상인 경우에 핀-웨이트-1(FIN-WAIT-1) 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    상기 핀-웨이트-1 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 핀-웨이트-1 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
  18. 제10항에 있어서,
    상기 공격 탐지부는,
    상기 서버가 제1 종료(FIN) 패킷에 대한 제2 응답확인(ACK) 패킷을 수신한 세션 상태의 수가 제6 임계값 이상인 경우에 핀-웨이트-2(FIN-WAIT-2) 플러딩 공격으로 탐지하고,
    상기 공격 대응부는,
    상기 핀-웨이트-2 플러딩 공격이 탐지된 패킷의 발신지 아이피를 리스트로 관리하고 해당 발신지 아이피에서 전송되는 모든 트래픽에 대해 미리 정해진 시간동안 차단하여 상기 핀-웨이트-2 플러딩 공격에 대응하는 것을 특징으로 하는 송신 제어 프로토콜 플러딩 공격 방어 장치.
KR1020100109324A 2010-11-04 2010-11-04 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치 KR101442020B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100109324A KR101442020B1 (ko) 2010-11-04 2010-11-04 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치
US13/287,646 US8667585B2 (en) 2010-11-04 2011-11-02 Transmission control protocol flooding attack prevention method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100109324A KR101442020B1 (ko) 2010-11-04 2010-11-04 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20120047641A KR20120047641A (ko) 2012-05-14
KR101442020B1 true KR101442020B1 (ko) 2014-09-24

Family

ID=46020920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100109324A KR101442020B1 (ko) 2010-11-04 2010-11-04 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치

Country Status (2)

Country Link
US (1) US8667585B2 (ko)
KR (1) KR101442020B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130030086A (ko) * 2011-09-16 2013-03-26 한국전자통신연구원 비정상 세션 연결 종료 행위를 통한 분산 서비스 거부 공격 방어 방법 및 장치
EP2901612A4 (en) * 2012-09-28 2016-06-15 Level 3 Communications Llc APPARATUS, SYSTEM AND METHOD FOR IDENTIFYING AND MITIGATING MALICIOUS THREATS ON A NETWORK
US8973143B2 (en) * 2013-01-28 2015-03-03 The Barrier Group, Llc Method and system for defeating denial of service attacks
US8978138B2 (en) * 2013-03-15 2015-03-10 Mehdi Mahvi TCP validation via systematic transmission regulation and regeneration
US9722918B2 (en) 2013-03-15 2017-08-01 A10 Networks, Inc. System and method for customizing the identification of application or content type
US8997232B2 (en) * 2013-04-22 2015-03-31 Imperva, Inc. Iterative automatic generation of attribute values for rules of a web application layer attack detector
US9838425B2 (en) 2013-04-25 2017-12-05 A10 Networks, Inc. Systems and methods for network access control
US10027761B2 (en) * 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
CN104348811B (zh) * 2013-08-05 2018-01-26 深圳市腾讯计算机系统有限公司 分布式拒绝服务攻击检测方法及装置
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9787581B2 (en) 2015-09-21 2017-10-10 A10 Networks, Inc. Secure data flow open information analytics
US9762610B1 (en) 2015-10-30 2017-09-12 Palo Alto Networks, Inc. Latency-based policy activation
CN106936799B (zh) * 2015-12-31 2021-05-04 阿里巴巴集团控股有限公司 报文清洗方法及装置
US10812348B2 (en) 2016-07-15 2020-10-20 A10 Networks, Inc. Automatic capture of network data for a detected anomaly
US10341118B2 (en) 2016-08-01 2019-07-02 A10 Networks, Inc. SSL gateway with integrated hardware security module
US10659476B2 (en) 2016-09-12 2020-05-19 Architecture Technology Corporation Transparent bridge for monitoring crypto-partitioned wide-area network
US10382562B2 (en) 2016-11-04 2019-08-13 A10 Networks, Inc. Verification of server certificates using hash codes
US10250475B2 (en) 2016-12-08 2019-04-02 A10 Networks, Inc. Measurement of application response delay time
US10397270B2 (en) 2017-01-04 2019-08-27 A10 Networks, Inc. Dynamic session rate limiter
US10187377B2 (en) 2017-02-08 2019-01-22 A10 Networks, Inc. Caching network generated security certificates
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11122075B2 (en) * 2019-07-03 2021-09-14 Netflix, Inc. Attack mitigation in a packet-switched network
US11463366B1 (en) 2020-09-22 2022-10-04 Architecture Technology Corporation Autonomous network optimization using network templates

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW518864B (en) * 2000-05-12 2003-01-21 Ibm Methods and system for defeating TCP SYN flooding attacks
US7380272B2 (en) * 2000-05-17 2008-05-27 Deep Nines Incorporated System and method for detecting and eliminating IP spoofing in a data transmission network
US7971237B2 (en) * 2003-05-15 2011-06-28 Verizon Business Global Llc Method and system for providing fraud detection for remote access services
JP2005277804A (ja) * 2004-03-25 2005-10-06 Hitachi Ltd 情報中継装置
US7609625B2 (en) * 2005-07-06 2009-10-27 Fortinet, Inc. Systems and methods for detecting and preventing flooding attacks in a network environment
KR100882809B1 (ko) 2006-08-31 2009-02-10 영남대학교 산학협력단 플로우 기반 패킷 처리방식의 분산 서비스 거부 공격 방어시스템 및 방법
US8341724B1 (en) * 2008-12-19 2012-12-25 Juniper Networks, Inc. Blocking unidentified encrypted communication sessions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Haining Wang, et. al., "Detecting SYN flooding attacks"(2002.06.27.) *
Haining Wang, et. al., "Detecting SYN flooding attacks"(2002.06.27.)*

Also Published As

Publication number Publication date
US8667585B2 (en) 2014-03-04
KR20120047641A (ko) 2012-05-14
US20120117646A1 (en) 2012-05-10

Similar Documents

Publication Publication Date Title
KR101442020B1 (ko) 송신 제어 프로토콜 플러딩 공격 방어 방법 및 장치
US7301899B2 (en) Prevention of bandwidth congestion in a denial of service or other internet-based attack
US7930740B2 (en) System and method for detection and mitigation of distributed denial of service attacks
EP2130350B1 (en) Identifying abnormal network traffic
US8966627B2 (en) Method and apparatus for defending distributed denial-of-service (DDoS) attack through abnormally terminated session
US10931711B2 (en) System of defending against HTTP DDoS attack based on SDN and method thereof
Ohsita et al. Detecting distributed Denial-of-Service attacks by analyzing TCP SYN packets statistically
US7404210B2 (en) Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs
François et al. Network security through software defined networking: a survey
Kavisankar et al. A mitigation model for TCP SYN flooding with IP spoofing
Bogdanoski et al. Wireless network behavior under icmp ping flooddos attack and mitigation techniques
Simpson TCP cookie transactions (TCPCT)
KR20110026926A (ko) 분산서비스거부 공격의 차단 방법
WO2009064114A2 (en) Protection method and system for distributed denial of service attack
Yang et al. Modeling and mitigating the coremelt attack
KR20130009130A (ko) 좀비 피씨 및 디도스 대응 장치 및 방법
KR101776128B1 (ko) 보안 장치 및 이의 동작 방법
Sardana et al. Detection and honeypot based redirection to counter DDoS attacks in ISP domain
Lee et al. Rescuing QUIC Flows From Countermeasures Against UDP Flooding Attacks
KR101449627B1 (ko) 비정상 세션 탐지 방법 및 장치
Felix TCP/IP stack transport layer performance, privacy, and security issues
WO2023142493A1 (zh) 一种攻击防御方法、设备及系统
EP1975829A1 (en) Identifying abnormal network traffic conditions
Wei et al. A novel mechanism to defend against low-rate denial-of-service attacks
Voznak et al. SIP proxy robustness against DoS attacks

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180912

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190910

Year of fee payment: 6