KR101209214B1 - 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법 - Google Patents

세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법 Download PDF

Info

Publication number
KR101209214B1
KR101209214B1 KR1020080124848A KR20080124848A KR101209214B1 KR 101209214 B1 KR101209214 B1 KR 101209214B1 KR 1020080124848 A KR1020080124848 A KR 1020080124848A KR 20080124848 A KR20080124848 A KR 20080124848A KR 101209214 B1 KR101209214 B1 KR 101209214B1
Authority
KR
South Korea
Prior art keywords
packet
session
attack
dos
entry
Prior art date
Application number
KR1020080124848A
Other languages
English (en)
Other versions
KR20100066170A (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 KR1020080124848A priority Critical patent/KR101209214B1/ko
Publication of KR20100066170A publication Critical patent/KR20100066170A/ko
Application granted granted Critical
Publication of KR101209214B1 publication Critical patent/KR101209214B1/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법에 관한 것으로서, 본 서비스 거부 공격 방어 장치는, 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하여 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 공격 탐지 엔진과, 공격 탐지 엔진에서 DoS/DDoS 공격을 탐지하면, 클라이언트로부터 새로운 패킷의 입력시 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 패킷의 드롭 여부를 결정하여 DoS/DDoS 공격에 대응하는 대응 엔진을 포함한다. 이에 의해, 기가급 네트워크 환경에서 선로 속도를 보장하면서 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격 발생을 신속하게 탐지하고, 세션 상태에 따라 패킷을 처리하여 효과적으로 DoS/DDoS 공격에 대응할 수 있다.
DoS, DDoS, 세션, 엔트리, 패킷, 탐지, 공격, 드롭, 패스

Description

세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법{Denial of Service Prevention Method and Apparatus based on Session State Tracking}
본 발명은 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법에 관한 것으로서, 보다 상세하게는, 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격 발생을 신속하게 탐지하여 효과적으로 대응할 수 있도록 하는 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-042-03, 과제명: Network 위협의 Zero-Day Attack 대응을 위한 실시간 공격 Signature 생성 및 관리 기술개발].
일반적으로 서비스 거부 공격(DoS: Denial-of-Service)이라 함은, 대량의 데이터를 보내 대상 네트워크나 시스템의 성능을 급격히 저하시킴으로써, 대상 시스템에서 제공하는 서비스를 정상적으로 사용하지 못하게 하는 공격이다. 서비스 거부 공격은, 불특정 다수의 공격자가 단일의 서버를 공격하는 분산 서비스 거부 공격(DDoS: Distributed Denial-of-Service) 형태가 일반적이다.
이러한 서비스 거부 공격을 방어하기 위한 기존은 기법들은, 대부분 BPS(Bits Per Second), PPS(Packets Per Second) 단위로 트래픽 양을 측정하는 통계적 기법을 기반으로 하며, 임계치를 적용하여 트래픽 양이 임계치를 초과하면 서비스 거부 공격으로 판단하고, 서비스 거부 공격을 차단하는 기법을 사용한다. 그리고 IDS/IPS(Intrusion Detection System/Intrusion Prevention System) 제품들에서는 주로 DoS/DDoS 공격 툴에서 나타나는 스트링 패턴들을 탐지 룰에 적용한 패턴 매칭 기능을 수행함으로써, 공격을 탐지하고 대응한다. 그러나, 이러한 단순 패턴 매칭만으로는 탐지에 한계가 있기 때문에, 근래에는 QoS(Quality of Service)와 결합하여 우선순위 큐(Queue)를 두던지 레이트 리미팅(Rate Limiting) 기법을 함께 적용하여 보다 효과적으로 DoS/DDoS 공격을 탐지하려는 시도가 이루어지고 있다.
일반적으로 DoS/DDoS 공격 트래픽은 프로토콜의 종류에 따라 TCP Flooding, ICMP Flooding, UDP Flooding으로 나눌 수 있으나, 인터넷 트래픽의 대부분이 TCP 트래픽에 대한 것이므로, TCP Flooding을 효과적으로 차단할 수 있는 기법에 대한 연구가 활발히 이루어지고 있다. 그런데, ICMP Flooding이나 UDP Flooding은 트래픽 양 측정에 의한 통계적 기법을 적용하여 효과적으로 대응할 수 있는 반면, TCP Flooding은 정상적인 트래픽과의 구분이 어렵다. 특히, TCP SYN Flooding과 같은 DoS/DDoS 공격을 효과적으로 방어하기는 현실적으로 매우 어려운 실정이다.
이러한 단점을 해소하기 위해, TCP Flooding 방어를 위해 세션 또는 플로우 기반으로 패킷을 처리하는 기법들이 제안되고 있으며, 그 대표적인 예가 리눅스 커널 2.4 이상 버전에서 구현된 IPTable/Netfilter이다. 그러나, IPTable/Netfilter 는 소프트웨어 기반으로 구현되어 있기 때문에 패킷 처리 성능상의 문제점이 있고, 이러한 문제점에 의해 기가급 네트워크에 적용하기가 실질적으로 불가능하다. 이에, 하드웨어 기반으로 세션 또는 플로우를 관리하면서 DoS/DDoS 공격을 방어하기 위한 노력이 계속 이루어지고 있다. 그러나, 기가급 네트워크 환경에서 트래픽 양의 증가에 따른 세션 또은 플로우 수의 엄청난 증가로 인해, 모든 엔트리를 관리하면서 선로 속도의 패킷 처리 성능을 보장하기에는 기술적으로 어려움이 많은 실정이다.
본 발명의 목적은, 기가급 네트워크 환경에서 선로 속도를 보장하면서, 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격을 신속하게 탐지하고, 효과적으로 대응할 수 있도록 하는 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치를 제공하는 것이다.
상기 목적은, 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하여 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 공격 탐지 엔진; 및 상기 공격 탐지 엔진에서 상기 DoS/DDoS 공격을 탐지하면, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하여 상기 DoS/DDoS 공격에 대응하는 대응 엔진을 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치에 의해 달성된다.
상기 목적은, 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하는 단계; 특정 세션 상태를 가진 패킷의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 단계; 상기 DoS/DDoS 공격의 탐지 후, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법에 의해 달성된다.
본 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치에 따르면, 기가급 네트워크 환경에서 선로 속도를 보장하면서 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격 발생을 신속하게 탐지하고, 세션 상태에 따라 패킷을 처리하여 효과적으로 DoS/DDoS 공격에 대응할 수 있다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다.
본 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치는, 3-웨이 핸드쉐이킹 과정의 추적을 통해 클라이언트로부터 ACK 패킷의 전송여부에 따라 서비스 거부 공격 여부를 탐지함으로써, 신속하게 서비스 거부 공격을 방어할 수 있도록 한다.
도 1은 본 발명에 따른 서비스 거부 공격 방어 장치의 개략적 구성도이다.
본 서비스 거부 공격 방어 장치는, 크게 하드웨어 기반 보안 엔진(10)과, 소프트웨어 기반 보안 엔진(50)을 포함한다. 하드웨어 기반 보안 엔진(10)으로는, PHY, 서비스 거부 공격 탐지 엔진(20)(이하, 공격 탐지 엔진(20)), 대응 엔진(30)을 포함하고, 소프트웨어 기반 보안 엔진(50)으로는 CPU(51), 소프트웨어 매니저(55)를 포함하며, 하드웨어 기반 보안 엔진(10)과 소프트웨어 기반 보안 엔진(50)은 PCI(40)를 통해 정보를 주고받는다.
PHY(11)는 네트워크를 통해 패킷을 입출력하는 입출력 인터페이스이며, 입력된 패킷을 공격 탐지 엔진(20)으로 전달한다.
공격 탐지 엔진(20)은, PHY(11)를 통해 제공된 패킷의 세션 상태를 점검하여 DoS/DDoS를 탐지한다.
대응 엔진(30)에서는 공격 탐지 엔진(20)에서 탐지된 결과에 따라, DoS/DDoS를 차단하기 위해 동작한다.
공격 탐지 엔진(20)에서 탐지된 DoS/DDoS에 대한 정보와, 대응 엔진(30)에서의 대응 결과는 PCI(40)를 통해 소프트웨어 매니저(55)로 전달되며, 소프트웨어 기반 보안 엔진(50)에서는 탐지 및 대응 결과를 기반으로 정책 수립에 대한 내용을 처리한다.
도 2는 도 1에서 공격 탐지 엔진을 상세히 나타낸 서비스 거부 공격 방어 장치의 구성도이다.
하드웨어 기반 보안 엔진은, 상술한 공격 탐지 엔진(20)과 대응 엔진(30) 이외에, MAC 모듈(17)과 세션 테이블(15)을 더 포함하며, 공격 탐지 엔진(20)은, 패킷 파서(21), 해쉬 키 생성기(23), 세션 매니저(25), 공격 탐지기(27)를 포함한다.
이러한 하드웨어 기반 보안 엔진의 각 구성요소는, FPGA(Field Programmable Gate Array) 나 ASIC(Application-Specific Integrated Circuit)와 같은 하드웨어와 SRAM 과 같은 메모리 장치로 구현될 수 있다.
MAC 모듈(17)은, PHY를 통해 유입된 네트워크 패킷을 제공받아, 2계층 이더넷 프레임을 인식하고, IP 패킷을 추출한다. 이때, MAC 모듈(17)은 각각의 패킷을 구별하기 위해 패킷마다 패킷 ID를 생성하며, 패킷 ID는 DoS/DDoS가 탐지되어 대응할 때, 대응 엔진(30)에서 패킷에 따라 대응할 때 각 패킷을 구별할 수 있으므로 유용하다. MAC 모듈(17)에서 추출된 IP 패킷과 패킷 ID는 공격 탐지 엔진(20)으로 전달된다.
세션 테이블(15)은, 패킷의 입력시 세션 매니저(25)에 의해 생성되는 엔트리(16)가 등록되며, 세션 테이블(15)의 구조에 대해서는 후술하기로 한다.
공격 탐지 엔진(20)의 패킷 파서(21)는, MAC 모듈(17)로부터 제공된 패킷을 파싱하여 세션 상태 추적에 필요한 필드들을 추출한다. 세션 상태 추적에 필요한 필드로는, 세션 관리에 필요한 5-Tuple 정보와 TCP 플래그 정보를 포함하며, 5-Tuple 정보는 소스 IP(Source IP), 목적지 IP(Destination IP), 소스 포트(Source Port), 목적지 포트(Destination Port), 프로토콜을 포함한다.
해쉬 키 생성기(23)는, 패킷 파서(21)에서 파싱된 정보를 5-Tuple 정보를 기초로 하여 각각의 세션을 구별하기 위한 해쉬 키와, 해쉬 어드레스를 생성한다. 여기서, 해쉬 키는 세션 테이블(15)내에서 엔트리(16)가 등록된 셋(Set)의 위치를 나타내고, 해쉬 어드레스는 셋내의 엔트리(16)의 위치를 나타낸다.
세션 매니저(25)는, 세션의 간략한 상태 정보를 포함하는 엔트리(16)를 생성하여 세션 테이블(15)에 저장하는 한편, 세션 상태에 따라 엔트리(16)를 관리하고, 세션 상태를 공격 탐지기(27)로 제공한다. 엔트리(16)는 클라이언트에 대해 설정된 세션의 상태 정보를 포함하며, 일반적으로 세션의 연결 상태 정보, 종료 상태 정보, 패킷의 방향성 정보 등을 포함한다.
공격 탐지기(27)는, 세션 매니저(25)에 의해 관리되는 세션들의 상태를 추적하다가 특정 세션 상태의 엔트리가 미리 설정된 임계치를 초과하면, DoS/DDoS로 판단하고, 경보를 발생시켜 대응 엔진(30)에 판단결과를 전달한다.
대응 엔진(30)에서는 공격 탐지기(27)에서 경보가 발생되면, 패킷을 드롭(Drop)하는 등의 대응을 행하게 된다. PCI를 통해 대응 엔진(30)의 대응 상태 및 결과가 소프트웨어 매니저로 제공되며, 소프트웨어 매니저는 GUI(Graphic User Interface) 등을 이용하여 네트워크 상에서 DoS/DDoS 가 발생되었음을 관리자에게 알리게 된다.
도 3은 도 2의 세션 테이블의 구성도이다.
본 세션 테이블(15)은 제한된 하드웨어 리스소를 이용하여 많은 엔트리(16)를 효율적으로 관리하기 위해 다중 해쉬 함수와 N-웨이 셋 어소시어티브 테이블(N-Way Set Associative Table) 구조를 갖는다. 즉, 해쉬 함수를 이용하여 해쉬 생성기에서 해쉬 키와 해쉬 어드레스를 생성하고, 다수의 세션 테이블(15)에는 해쉬 키와 해쉬 어드레스로 그 위치가 지정된 각 엔트리(16)가 등록된다.
엔트리(16)는 3-웨이 핸드쉐이킹 연결 설정 과정을 통해 세션 테이블(15)에 등록된다. 즉, 클라이언트로부터 SYN 패킷이 수신되면, 세션 매니저(25)는 SYN 패킷에 대응되는 엔트리(16)를 생성하여 세션 테이블(15)에 등록한다.
엔트리(16)는, 현재 상태(Current State) 값, 타임 스탬프(Time Stamp) 값, 헤쉬 어드레스를 포함한다. 여기서, 현재 상태 값은 세션의 상태 정보를 표시하며, 타임 스탬프 값은 세션 상태에 따라 상이한 값을 갖는 타임아웃(Timeout)을 표 시한다. 예를 들어, 클라이언트로부터 SYN 패킷이 수신된 상태에서 형성되는 "SYN_RCVD" 상태의 세션은, 클라이언트와의 연결이 설정된 "ESTABLISHED" 상태의 세션보다 휠씬 작은 타임아웃 값을 갖는다. 타임아웃이 발생한 엔트리(16)는 세션 테이블(15)에서 삭제된다.
만약, DoS/DDoS 공격이 멈춘 상황에서 DoS/DDoS 공격으로 인해 많이 생성되었던 "SYNASK_RCVD" 상태의 세션들이 타임아웃되어 삭제되면, "SYNASK_RCVD"의 개수가 임계치 이하로 내려가고, 세션 매니저(25)는 해당 정보를 공격 탐지기(27)로 전달하여 DoS/DDoS 공격에 대한 경보가 해제된다.
한편, 정상적으로 클라이언트와 세션이 설정된 경우, 엔트리(16)는 클라이어트로부터 리셋(Reset) 패킷이나 핀(Fin) 패킷이 입력되는 4-웨이 핸드쉐이킹 연결 종료 과정에 의해 세션 테이블(15)로부터 삭제된다.
도 4는 본 발명에 따른 서비스 거부 공격 방어 장치에서 TCP SYN Flooding을 탐지하고 대응하는 과정을 보인 개념도이다.
대부분의 TCP SYN Flooding 공격은, 소스 IP 어드레스를 속여서 대량의 SYN 패킷을 서버(7)에 전송함으로써 이루어진다.
클라이언트(5)가 연결 설정을 위해 서버(7)로 SYN 패킷을 전송하면(S400), 세션 매니저(25)는 세션 테이블(15)에 "SYN_RCVD" 세션 상태를 갖는 엔트리(16)를 등록한다. 서버(7)는 SYN 패킷에 대한 응답으로 SYN+ACK 패킷을 전송하며, 세션 매니저(25)는 엔트리(16)의 세션 상태를 "SYNACK_RCVD" 상태로 변경하게 된다. 그런 다음, 클라이언트(5)가 ACK 패킷을 전송하여 연결을 설정하면, 세션 상태는 "ESTABLISHED"로 변경하게 된다.
그런데, 클라이언트(5)가 서버(7)에 대해 DoS/DDoS 공격을 하고 있는 상황이라면, 클라이언트(5)가 서버(7)로 SYN 패킷의 전송시 거짓 IP 어드레스를 이용하여 전송하고, 서버(7)는 거짓 IP 어드레스로 SYN+ACK 패킷을 전송하기 때문에, 클라이언트(5)로부터 ACK 패킷이 전송되지 않는다. 따라서, 세션이 "ESTABLISED"로 바뀌지 못하여 "SYNACK_RCVD" 상태의 세션들이 갑자기 증가하게 된다(s410). 이렇게 "SYNACK_RCVD" 상태의 세션들이 증가하여 미리 설정된 임계치를 초과하면, 공격 탐지 엔진(20)에서 DoS/DDoS 가 발생하였다고 판단하고(S420), 경보를 발생시킨다.
경보가 발생되면, 대응 엔진(30)에서는 즉각적으로 DoS/DDoS에 대응한다. 먼저, 대응 엔진(30)은 경보의 발생 후, 첫번째로 수신되는 SYN 패킷을 드롭시킨다(S430). 드롭된 SYN 패킷에 대해 생성된 엔트리(16)는 세션 테이블(15)에 "SYN_RCVD & DROP" 상태로 등록된다. 만약 드롭된 SYN 패킷이 IP 스푸핑(Spoofing)된 DoS/DDoS 공격 패킷이었다면, 클라이언트(5)는 두번째 SYN 패킷을 재전송하지 아니한다. 그러나, 드롭된 SYN 패킷이 합법적인 클라이언트(5)에 의한 연결 요청이었다면, 클라이언트(5)로부터 두번째 SYN 패킷이 전송된다.
따라서, 두번째 SYN 패킷이 수신되면, 대응 엔진(30)은 RTO(Retransmission Timeout) 체크를 통해 해당 SYN 패킷의 합법성을 다시 한번 확인한 후, 패킷을 패스시켜 패킷 처리를 위한 과정으로 전달한다(S440). 이때, 세션 매니저(25)는 SYN 패킷의 세션 상태를 "SYN_RCVD & DROP"에서 "SYN_RCVD" 상태로 변경되고, 정상적인 3-웨이 핸드쉐이킹 과정을 통해 클라이언트(5)와의 연결이 설정된다. 이렇게 두번 째 SYN 패킷을 수신하여 클라이언트(5)와 정상적인 연결이 설정됨에 따라, DoS/DDoS 공격이 이루어지는 상황에서도 합법적인 사용자들의 연결 요청만을 받아들여, 해당 네트워크나 서버(7) 시스템이 서비스를 제공할 수 있다.
도 5는 엔트리에 포함되는 현재 상태 값과 설명을 표시한 표이다.
세션의 현재 상태 값은, 0000부터 1111로 나타내며, 0000은 세션이 연결되지 않은 초기 상태, 0001은 클라이언트(5)로부터 SYN 패킷을 입력받은 "SYN_RCVD" 상태, 0010은 서버(7)에서 클라이언트(5)로 SYN 패킷에 대해 SYN+ASK 패킷을 전송한 "SYNASK_RCVD" 상태, 0011은 DoS/DDoS 공격을 받아 클라이언트(5)로부터의 패킷을 드롭시킨 "SYN_RCVD & DROP" 상태를 나타낸다. 1000 내지 1011은 연결이 설정되고, 클라이언트(5)와 서버(7)의 위치가 변경되지 아니한 상태를 나타내며, 1000은 연결 설정 상태, 1001은 첫번째 핀 패킷이 클라이언트(5)로부터 서버(7)로 전달되는 "FIRST_FIN_RCVD" 상태, 1010은 첫번째 핀 패킷이 서버(7)로부터 클라이언트(5)로 전달되는 "FIRST_FIN_RCVD" 상태, 1011은 두번째 핀 패킷이 전달된 "SECOND_FIN_RCVD" 상태를 나타낸다. 1100 내지 1111은 연결이 설정되고 클라이언트(5)와 서버(7) 간의 위치가 변경된 경우, 연결 설정 상태, "FIRST_FIN_RCVD", "SECOND_FIN_RCVD" 상태를 각각 나타낸다.
일반적으로 클라이언트(5)와 서버(7)의 연결을 종료하기 위해서는 4-웨이 핸드쉐이킹이 수행되므로, 핀 패킷이 두 번 생성되어 전달된다. 연결의 종료 요청은, 클라이언트(5) 또는 서버(7)가 핀 패킷을 상대방으로 전달하면서 요청할 수 있다. 이때, 클라이언트(5)가 서버(7)로 첫번째 핀 패킷이 전달되면 엔트리(16)내의 세션 상태는 1001 상태가 되고, 서버(7)에서 클라이언트(5)로 첫번째 핀 패킷이 전달되면 세션 상태는 1010이 된다. 그런 다음, 상대방에서 두번째 핀 패킷을 전달하면, 세션 상태는 1011이 된다.
도 6은 도 5의 현재 상태 값을 통해 세션의 상태 전이를 나타내는 개념도이며, 세션이 상태 전이는 세션 매니저(25)에 의해 수행된다.
세션 연결이 되지 않은 초기 상태인 0000 상태에서, TCP 세션 설정을 위한 SYN 패킷이 클라이언트(5)로부터 전송되면, 세션 매니저(25)는 엔트리(16)를 생성하여 현재 상태 값을 0001 상태로 변경한다. 서버(7)에서 클라이언트(5)로 SYN+ASK 패킷이 전송되면, 세션 매니저(25)는, 세션 매니저(25)는 엔트리(16)의 현재 상태 값을 0010 상태로 변경한다. 그런 다음, 클라이언트(5)로부터 3-웨이 핸드쉐이킹 과정의 마지막 과정인 ASK 패킷이 전송되면, 세션 매니저(25)는 소스와 목적지의 크기를 비교한다. 비교결과, 서버(7)와 클라이언트(5)의 위치가 바뀌면, 세션 매니저(25)는 0010 상태에서 1100 상태로 변경하고, 바뀌지 않으면 1000 상태로 변경한다.
1000 상태에서 TCP 종료를 위한 첫번째 핀 패킷이 클라이언트(5)에서 서버(7)로 전송되면, 세션 매니저(25)는 1000 상태에서 1001 상태로 전이시키고, 두번째 핀 패킷이 서버(7)에서 클라이언트(5)로 전송되면 1011 상태로 전이시킨다. 마지막으로 ACK 패킷이 전송되면, 세션 매니저(25)는 현재 상태 값을 0000 초기상태로 변경한다.
만약 1000 상태에서 첫번째 핀 패킷이 서버(7)에서 클라이언트(5)로 전송되 면, 세션 매니저(25)는 1000 상태에서 1010 상태로 변경하고, 이후 두번째 핀 패킷이 클라이언트(5)에서 서버(7)로 전송되면, 1011 상태로 변경한다. 마지막으로 ACK 패킷이 전송되면, 세션 매니저(25)는 현재 상태 값을 0000 초기상태로 변경한다.
한편, DoS/DDoS 공격이 이루어져 경보가 발생한 상황이라면, 첫번째 SYN 패킷이 전송되면, 세션 매니저(25)는 0001 상태가 아닌 0011 상태로 변경하고, 두번째 SYN 패킷이 전송되면 0001 상태로 변경한다.
이러한 구성에 의한 서비스 거부 공격 방어 장치에서 패킷을 처리하는 과정을 도 7을 참조하여 살펴보면 다음과 같다.
TCP 패킷이 입력되면(S700), 세션 매니저(25)는 세션 테이블(15)을 탐색하여 매칭되는 세션이 존재하는지 파악한다(S705). 매칭되는 세션이 존재하면, 엔트리(16)의 현재 상태 값, 타임 스탬프를 업데이트하고 패킷을 패스시킨다(S715,S745). 그러나, 매칭되는 세션이 존재하지 아니하면, SYN 패킷인지를 판단하고(S720), SYN 패킷이 아니라면 정상적인 패킷이 아니므로 드롭시킨다(S765).
SYN 패킷인 경우, 현재 DoS/DDoS 공격이 발생하였는지를 체크하고(S725), DoS/DDoS 공격이 발생하지 아니한 경우에는 세션 테이블(15)이 풀(Full)인지 확인한다(S730). 세션 테이블(15)이 풀이면, 세션 매니저(25)는 LRU(Latest Recently Used) 알고리즘을 적용하여 가장 오래된 엔트리(16)를 새로 수신된 SYN 패킷에 대해 작성된 엔트리(16)로 교체하고(S735), 패킷을 패스시킨다(S745). 그리고 세션 테이블(15)이 풀이 아니면 새로운 엔트리(16)를 생성하여 세션 테이블(15)에 등록 하고 패킷을 패스시킨다(S740,S745).
한편, DoS/DDoS 공격이 발생한 경우에는, 세션 매니저(25)는 세션 테이블(15)이 풀인지 확인하고(S750), 세션 테이블(15)이 풀이면, 가장 오래된 엔트리(16)를 새로 수신된 SYN 패킷에 대해 작성된 엔트리(16)로 교체하고(S755), 패킷을 드롭시킨다(S765). 그리고 세션 테이블(15)이 풀이 아니면 새로운 엔트리(16)를 생성하여 세션 테이블(15)에 등록하고 패킷을 드롭시킨다(S760,S765).
이러한 패킷 처리 과정에서, SYN 패킷이 DoS/DDoS 공격이 발생한 뒤, 첫번째 들어오는 SYN 패킷이라면, 매칭되는 세션이 존재하지 아니하므로, 엔트리(16)가 생성된 다음 드롭된다. 이때, SYN 패킷이 DoS/DDoS공격을 위한 패킷인 경우에는 클라이언트(5)가 패킷을 재전송하지 아니하나, SYN 패킷이 합법적인 패킷인 경우에는 클라이언트(5)가 패킷을 재전송한다. 따라서, SYN 패킷이 합법적인 패킷이어서, 두번째 SYN 패킷이 입력되는 경우, 세션 테이블(15)에는 매칭되는 엔트리(16)가 존재하며, 세션 매니저(25)는 두번째 SYN 패킷에 대해 엔트리(16)를 업데이트하고, 두번째 SYN 패킷을 통과시킨다.
이러한 패킷 처리 과정을 통해, DoS/DDoS 공격이 발생하는 동안, DoS/DDoS 공격을 위한 패킷을 드롭시킬 수 있으며, 정상적인 패킷은 서버(7)로 전달되도록 한다.
이와 같이, 본 서비스 거부 공격 방어 장치는, 세션의 상태를 점검하여 DoS/DDoS 공격 여부를 결정한다. 즉, 클라이언트(5)로부터 ACK 패킷이 수신되지 않아 세션 상태가 "SYNACK_RCVD" 상태의 세션들이 일정 임계치 이상으로 생성되면, DoS/DDoS 공격이 발생되었다고 결정하고, 이후에 입력되는 SYN 패킷을 드롭시킨다. 그리고 동일한 SYN 패킷이 타임아웃되기 전에 재전송된 경우에만 클라이언트(5)와 서버(7)간의 세션이 형성되도록 한다. 따라서, 실시간으로 세션 상태를 추적하여 세션별 패킷이 처리되도록 함으로써, DoS/DDoS 공격 발생을 신속하게 탐지하여 효과적으로 대응할 수 있다.
한편, 본 서비스 거부 공격 방어 장치는 DoS/DDoS 공격에 대한 탐지와 대응 기능을 하드웨어 기반 보안 엔진에서 수행하므로, 기가급 네트워크에서도 선로 속도를 보장하여 성능상 문제가 없으며, 정책 수립에 대한 내용은 소프트웨어 기반 보안 엔진에서 처리하므로, 시스템 운용에 효율성을 극대화할 수 있다.
이상에서 설명한 본 발명은 첨부된 도면 및 상세한 설명의 실시예에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백하다 할 것이다.
도 1은 본 발명에 따른 서비스 거부 공격 방어 장치의 개략적 구성도,
도 2는 도 1에서 공격 탐지 엔진을 상세히 나타낸 서비스 거부 공격 방어 장치의 구성도,
도 3은 도 2의 세션 테이블의 구성도,
도 4는 본 발명에 따른 서비스 거부 공격 방어 장치에서 TCP SYN Flooding을 탐지하고 대응하는 과정을 보인 개념도,
도 5는 엔트리에 포함되는 현재 상태 값과 설명을 표시한 표,
도 6은 도 5의 현재 상태 값을 통해 세션의 상태 전이를 나타내는 개념도,
도 7은 본 발명에 따른 서비스 거부 공격 방어 장치에서 패킷을 처리하는 과정을 나타낸 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
15 : 세션 테이블 16 : 엔트리
20 : 공격 탐지 엔지 21 : 패킷 파서
23 : 해쉬 키 생성기 25 : 세션 매니저
27 : 공격 탐지기 30 : 대응 엔진

Claims (9)

  1. 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하여 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 공격 탐지 엔진; 및
    상기 공격 탐지 엔진에서 상기 DoS/DDoS 공격을 탐지하면, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하여 상기 DoS/DDoS 공격에 대응하는 대응 엔진을 포함하고,
    상기 공격 탐지 엔진은,
    상기 패킷 전송에 따라 상기 세션 상태에 대한 정보가 포함된 엔트리를 생성하거나 상기 엔트리에 포함된 세션 상태 정보를 변경하는 세션 매니저; 및
    상기 엔트리의 세션 상태에 대한 정보를 제공받아, 상기 서버에서 SYN 패킷에 응답하여 생성된 SYN+ASK 패킷에 대응되는 세션 상태를 갖는 엔트리의 수가 미리 설정된 임계치를 초과하면 DoS/DDoS 공격이 발생하였다고 판단하고, 경보를 울리는 공격 탐지기;를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치.
  2. 제 1 항에 있어서,
    상기 공격 탐지 엔진은,
    상기 패킷 전송에 따라 생성되며, 상기 엔트리를 저장하는 세션 테이블; 및
    상기 세션 테이블에 저장된 엔트리의 위치를 지시하는 해쉬 키를 생성하는 해쉬 키 생성기; 를 더 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치.
  3. 제 2 항에 있어서,
    상기 세션 매니저는, 상기 DoS/DDoS 공격이 탐지된 후, 상기 세션 테이블에 해당 엔트리가 존재하지 아니하는 SYN 패킷이 입력되면, 상기 SYN 패킷에 대해 엔트리를 생성하여 상기 세션 테이블에 저장하고, 상기 대응 엔진은 상기 SYN 패킷을 드롭시키는 것을 특징으로 하는 서비스 거부 공격 방어 장치.
  4. 제 2 항에 있어서,
    상기 대응 엔진은, 상기 DoS/DDoS 공격이 탐지된 후, 상기 SYN 패킷이 상기 클라이언트로부터 재전송되면, 상기 세션 테이블에 상기 SYN 패킷에 대한 엔트리가 존재할 경우, 상기 SYN 패킷을 패스시키는 것을 특징으로 하는 서비스 거부 공격 방어 장치.
  5. 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하는 단계;
    특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 단계;
    상기 DoS/DDoS 공격의 탐지 후, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 미리 생성되어 있는지를 파악하여 상기 패킷의 드롭 여부를 결정하는 단계;를 포함하고,
    상기 DoS/DDoS 공격으로 판단하는 단계는, SYN 패킷에 대해 상기 서버에서 응답하여 생성된 SYN+ASK 패킷에 대응되는 세션 상태를 갖는 엔트리의 수가 미리 설정된 임계치를 초과하면 서비스 거부 공격이 발생하였다고 판단하는 것을 특징으로 하는 서비스 거부 공격 방어 방법.
  6. 제 5 항에 있어서,
    상기 세션의 상태를 추적하는 단계는,
    상기 패킷 전송시 상기 세션 상태에 대한 정보가 포함된 엔트리를 생성하거나, 상기 엔트리에 포함된 세션 상태 정보를 변경하는 단계를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법.
  7. 삭제
  8. 제 5 항에 있어서,
    상기 패킷의 드롭 여부를 결정하는 단계는,
    상기 DoS/DDoS 공격이 탐지된 후, 대응되는 엔트리가 존재하지 아니하는 SYN 패킷이 입력되면, 상기 SYN 패킷에 대해 엔트리를 생성하여 저장하는 단계와,
    상기 SYN 패킷을 드롭시키는 단계를 더 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법.
  9. 제 5 항에 있어서,
    상기 패킷의 드롭 여부를 결정하는 단계는,
    상기 DoS/DDoS 공격이 탐지된 후, 새로운 패킷이 상기 클라이언트로부터 재전송되면, 상기 새로운 패킷에 대한 엔트리가 존재하는 경우, 상기 새로운 패킷을 패스시키는 단계를 더 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법.
KR1020080124848A 2008-12-09 2008-12-09 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법 KR101209214B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080124848A KR101209214B1 (ko) 2008-12-09 2008-12-09 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080124848A KR101209214B1 (ko) 2008-12-09 2008-12-09 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100066170A KR20100066170A (ko) 2010-06-17
KR101209214B1 true KR101209214B1 (ko) 2012-12-06

Family

ID=42365296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080124848A KR101209214B1 (ko) 2008-12-09 2008-12-09 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101209214B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381606B1 (ko) 2013-05-28 2014-04-14 아주대학교산학협력단 콘텐츠 중심 네트워크 노드 및 그 노드의 서비스 거부공격 탐지방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101333305B1 (ko) * 2009-12-18 2013-12-02 한국전자통신연구원 안전한 tcp 연결 관리 장치 및 방법
KR101107741B1 (ko) * 2010-09-02 2012-01-20 한국인터넷진흥원 Sip 기반 비정상 트래픽 차단 시스템 및 그 차단 방법
KR101574193B1 (ko) 2010-12-13 2015-12-11 한국전자통신연구원 분산 서비스 거부 공격 탐지 및 방어 장치 및 방법
KR101519623B1 (ko) 2010-12-13 2015-05-12 한국전자통신연구원 오탐률을 줄이기 위한 분산 서비스 거부 공격 탐지 장치 및 방법, 분산 서비스 거부 공격 탐지 및 방어 장치
CN112859607B (zh) * 2021-01-13 2024-03-19 河南农业大学 分布式安全事件驱动器与sdofd控制器协同设计方法
KR102514127B1 (ko) 2022-03-21 2023-03-23 이민수 글씨 교정기

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381606B1 (ko) 2013-05-28 2014-04-14 아주대학교산학협력단 콘텐츠 중심 네트워크 노드 및 그 노드의 서비스 거부공격 탐지방법

Also Published As

Publication number Publication date
KR20100066170A (ko) 2010-06-17

Similar Documents

Publication Publication Date Title
US7464404B2 (en) Method of responding to a truncated secure session attack
Chang Defending against flooding-based distributed denial-of-service attacks: a tutorial
US8020207B2 (en) Containment mechanism for potentially contaminated end systems
US7478429B2 (en) Network overload detection and mitigation system and method
US9060020B2 (en) Adjusting DDoS protection based on traffic type
US8819821B2 (en) Proactive test-based differentiation method and system to mitigate low rate DoS attacks
Chao-Yang DOS attack analysis and study of new measures to prevent
KR101219796B1 (ko) 분산 서비스 거부 방어 장치 및 그 방법
US20020031134A1 (en) Device to protect victim sites during denial of service attacks
KR101209214B1 (ko) 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법
US20020032774A1 (en) Thwarting source address spoofing-based denial of service attacks
Foroushani et al. TDFA: traceback-based defense against DDoS flooding attacks
Kavisankar et al. A mitigation model for TCP SYN flooding with IP spoofing
Gupta et al. Mitigation of dos and port scan attacks using snort
Boppana et al. Analyzing the vulnerabilities introduced by ddos mitigation techniques for software-defined networks
Kumarasamy et al. An active defense mechanism for TCP SYN flooding attacks
Khamruddin et al. A rule based DDoS detection and mitigation technique
US20220053018A1 (en) System and method for detection and mitigation of a dos/ddos attack
Hunt et al. Reactive firewalls—a new technique
Djalaliev et al. Sentinel: hardware-accelerated mitigation of bot-based DDoS attacks
Thang et al. Synflood spoofed source DDoS attack defense based on packet ID anomaly detection with bloom filter
Park et al. An effective defense mechanism against DoS/DDoS attacks in flow-based routers
Mopari et al. Detection of DDoS attack and defense against IP spoofing
EP2109279B1 (en) Method and system for mitigation of distributed denial of service attacks using geographical source and time information
Nakashima et al. Performance estimation of TCP under SYN flood attacks

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee