KR20100066170A - Denial of service prevention method and apparatus based on session state tracking - Google Patents

Denial of service prevention method and apparatus based on session state tracking

Info

Publication number
KR20100066170A
KR20100066170A KR1020080124848A KR20080124848A KR20100066170A KR 20100066170 A KR20100066170 A KR 20100066170A KR 1020080124848 A KR1020080124848 A KR 1020080124848A KR 20080124848 A KR20080124848 A KR 20080124848A KR 20100066170 A KR20100066170 A KR 20100066170A
Authority
KR
South Korea
Prior art keywords
packet
session
attack
dos
entry
Prior art date
Application number
KR1020080124848A
Other languages
Korean (ko)
Other versions
KR101209214B1 (en
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/en
Publication of KR20100066170A publication Critical patent/KR20100066170A/en
Application granted granted Critical
Publication of KR101209214B1 publication Critical patent/KR101209214B1/en

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

Abstract

PURPOSE: A method and a device for preventing denial service through session state tracking are provided to trace a session stat in a real time, thereby rapidly detecting generation of DoS/DDos attack. CONSTITUTION: An attach detection engine(20) traces the state of the session according to the packet transmission between a client and a server. If the number of sessions of a particular state exceeds a preset critical value, the attack detection engine determines the DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) attack. If the DoS/DDoS attack is detected, a correspondence engine(30) determines the drop of a packet according to the presence of the session corresponding with the new packet of client. The correspondence engine deals with the DoS/DDoS attack by the determination of the packet drop.

Description

세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법{Denial of Service Prevention Method and Apparatus based on Session State Tracking}Denial of Service Prevention Method and Apparatus based on Session State Tracking}

본 발명은 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법에 관한 것으로서, 보다 상세하게는, 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격 발생을 신속하게 탐지하여 효과적으로 대응할 수 있도록 하는 세션 상태 추적을 통한 서비스 거부 공격 방어 장치 및 방법에 관한 것이다. The present invention relates to a denial of service attack defense apparatus and method through session state tracking, and more particularly, to track the state of the session in real time to detect the state of the DoS / DDoS attacks quickly to effectively respond to the session state tracking It relates to a denial of service attack defense device and method.

본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-042-03, 과제명: Network 위협의 Zero-Day Attack 대응을 위한 실시간 공격 Signature 생성 및 관리 기술개발].The present invention is derived from the research conducted as part of the IT growth engine technology development of the Ministry of Knowledge Economy and the Ministry of Information and Telecommunication Research and Development. Development of real-time attack signature generation and management technology for

일반적으로 서비스 거부 공격(DoS: Denial-of-Service)이라 함은, 대량의 데이터를 보내 대상 네트워크나 시스템의 성능을 급격히 저하시킴으로써, 대상 시스템에서 제공하는 서비스를 정상적으로 사용하지 못하게 하는 공격이다. 서비스 거부 공격은, 불특정 다수의 공격자가 단일의 서버를 공격하는 분산 서비스 거부 공격(DDoS: Distributed Denial-of-Service) 형태가 일반적이다. In general, denial-of-service (DoS) is an attack that sends a large amount of data and rapidly degrades the performance of a target network or system, thereby preventing the normal use of services provided by the target system. A denial of service attack is generally a form of distributed denial-of-service (DDoS) in which an unspecified number of attackers attack a single server.

이러한 서비스 거부 공격을 방어하기 위한 기존은 기법들은, 대부분 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 공격을 탐지하려는 시도가 이루어지고 있다. The existing techniques for defending against such denial of service attacks are based on statistical techniques that measure traffic volume in units of Bits Per Second (BPS) and Packets Per Second (PPS). If exceeded, the service is determined to be a denial of service attack, and a technique of blocking the denial of service attack is used. In addition, IDS / IPS (Intrusion Detection System / Intrusion Prevention System) products detect and respond to attacks by performing pattern matching function applied to detection rules, mainly string patterns that appear in DoS / DDoS attack tools. However, since the simple pattern matching alone has a limitation in detection, in recent years, DoS / DDoS is more effectively applied by combining a priority queue or rate limiting technique in combination with a quality of service (QoS). Attempts have been made to detect attacks.

일반적으로 DoS/DDoS 공격 트래픽은 프로토콜의 종류에 따라 TCP Flooding, ICMP Flooding, UDP Flooding으로 나눌 수 있으나, 인터넷 트래픽의 대부분이 TCP 트래픽에 대한 것이므로, TCP Flooding을 효과적으로 차단할 수 있는 기법에 대한 연구가 활발히 이루어지고 있다. 그런데, ICMP Flooding이나 UDP Flooding은 트래픽 양 측정에 의한 통계적 기법을 적용하여 효과적으로 대응할 수 있는 반면, TCP Flooding은 정상적인 트래픽과의 구분이 어렵다. 특히, TCP SYN Flooding과 같은 DoS/DDoS 공격을 효과적으로 방어하기는 현실적으로 매우 어려운 실정이다. In general, DoS / DDoS attack traffic can be divided into TCP Flooding, ICMP Flooding, and UDP Flooding according to the protocol type. However, since most of the Internet traffic is for TCP traffic, researches on techniques that can effectively block TCP flooding are actively conducted. It is done. By the way, ICMP flooding or UDP flooding can effectively respond by applying statistical techniques by measuring traffic volume, whereas TCP flooding is difficult to distinguish from normal traffic. In particular, it is very difficult to effectively defend against DoS / DDoS attacks such as TCP SYN Flooding.

이러한 단점을 해소하기 위해, TCP Flooding 방어를 위해 세션 또는 플로우 기반으로 패킷을 처리하는 기법들이 제안되고 있으며, 그 대표적인 예가 리눅스 커널 2.4 이상 버전에서 구현된 IPTable/Netfilter이다. 그러나, IPTable/Netfilter 는 소프트웨어 기반으로 구현되어 있기 때문에 패킷 처리 성능상의 문제점이 있고, 이러한 문제점에 의해 기가급 네트워크에 적용하기가 실질적으로 불가능하다. 이에, 하드웨어 기반으로 세션 또는 플로우를 관리하면서 DoS/DDoS 공격을 방어하기 위한 노력이 계속 이루어지고 있다. 그러나, 기가급 네트워크 환경에서 트래픽 양의 증가에 따른 세션 또은 플로우 수의 엄청난 증가로 인해, 모든 엔트리를 관리하면서 선로 속도의 패킷 처리 성능을 보장하기에는 기술적으로 어려움이 많은 실정이다. In order to solve this disadvantage, techniques for processing packets based on sessions or flows for TCP flooding defense have been proposed. An example is IPTable / Netfilter implemented in Linux kernel 2.4 or later. However, since IPTable / Netfilter is implemented based on software, there is a problem in packet processing performance, and this problem is practically impossible to apply to a giga-class network. Thus, efforts are being made to defend against DoS / DDoS attacks while managing sessions or flows based on hardware. However, due to the enormous increase in the number of sessions or flows due to the increase in the traffic volume in a giga-class network environment, it is technically difficult to guarantee the line speed packet processing performance while managing all entries.

본 발명의 목적은, 기가급 네트워크 환경에서 선로 속도를 보장하면서, 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격을 신속하게 탐지하고, 효과적으로 대응할 수 있도록 하는 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치를 제공하는 것이다. An object of the present invention, while guaranteeing the line speed in the giga-class network environment, and tracking the state of the session in real time to detect DoS / DDoS attacks quickly, and effectively respond to denial of service attacks through the session state tracking It is to provide a device.

상기 목적은, 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하여 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 공격 탐지 엔진; 및 상기 공격 탐지 엔진에서 상기 DoS/DDoS 공격을 탐지하면, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하여 상기 DoS/DDoS 공격에 대응하는 대응 엔진을 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치에 의해 달성된다. The purpose is to track the state of a session that changes according to packet transmission between the client and the server, and if the number of sessions in a particular state exceeds a preset threshold, DoS (Denial-of-Service) / Distributed Denial-of-service Attack detection engine judging as an attack; And when the attack detection engine detects the DoS / DDoS attack, upon input of a new packet from the client, it is determined whether to drop the packet according to whether a session corresponding to the new packet already exists and the DoS / DDoS. A denial of service attack defense device comprising a response engine corresponding to an attack.

상기 목적은, 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하는 단계; 특정 세션 상태를 가진 패킷의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 단계; 상기 DoS/DDoS 공격의 탐지 후, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법에 의해 달성된다.The purpose is to track the state of a session that changes as the packet is transmitted between the client and server; If the number of packets with a particular session state exceeds a preset threshold, determining that the service is a Denial-of-Service (DoS) / Distributed Denial-of-Service (DDoS) attack; After detecting the DoS / DDoS attack, determining whether to drop the packet according to whether a session corresponding to the new packet already exists when inputting a new packet from the client. Rejection is achieved by attack defense methods.

본 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치에 따르면, 기가급 네트워크 환경에서 선로 속도를 보장하면서 실시간으로 세션 상태를 추적하여 DoS/DDoS 공격 발생을 신속하게 탐지하고, 세션 상태에 따라 패킷을 처리하여 효과적으로 DoS/DDoS 공격에 대응할 수 있다. According to the method and apparatus for defense against denial of service attack through the session state tracking, it is possible to detect the DoS / DDoS attack rapidly by tracking the session state in real time while guaranteeing the line speed in the giga-class network environment, and to detect the packet according to the session state. Can be effectively countered by DoS / DDoS attacks.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

본 세션 상태 추적을 통한 서비스 거부 공격 방어 방법 및 장치는, 3-웨이 핸드쉐이킹 과정의 추적을 통해 클라이언트로부터 ACK 패킷의 전송여부에 따라 서비스 거부 공격 여부를 탐지함으로써, 신속하게 서비스 거부 공격을 방어할 수 있도록 한다.The method and apparatus for defending the denial of service attack through the session state tracking can detect the denial of service attack according to whether the ACK packet is transmitted from the client through the tracking of the 3-way handshaking process, thereby quickly defending the denial of service attack. To help.

도 1은 본 발명에 따른 서비스 거부 공격 방어 장치의 개략적 구성도이다. 1 is a schematic configuration diagram of a denial of service attack defense apparatus according to the present invention.

본 서비스 거부 공격 방어 장치는, 크게 하드웨어 기반 보안 엔진(10)과, 소프트웨어 기반 보안 엔진(50)을 포함한다. 하드웨어 기반 보안 엔진(10)으로는, PHY, 서비스 거부 공격 탐지 엔진(20)(이하, 공격 탐지 엔진(20)), 대응 엔진(30)을 포함하고, 소프트웨어 기반 보안 엔진(50)으로는 CPU(51), 소프트웨어 매니저(55)를 포함하며, 하드웨어 기반 보안 엔진(10)과 소프트웨어 기반 보안 엔진(50)은 PCI(40)를 통해 정보를 주고받는다. The denial of service attack defense apparatus largely includes a hardware-based security engine 10 and a software-based security engine 50. The hardware-based security engine 10 includes a PHY, a denial of service attack detection engine 20 (hereinafter, attack detection engine 20), and a response engine 30, and the software-based security engine 50 includes a CPU. And a software manager 55, the hardware-based security engine 10 and the software-based security engine 50 exchange information through the PCI 40.

PHY(11)는 네트워크를 통해 패킷을 입출력하는 입출력 인터페이스이며, 입력된 패킷을 공격 탐지 엔진(20)으로 전달한다. The PHY 11 is an input / output interface for inputting and outputting a packet through a network, and transmits the input packet to the attack detection engine 20.

공격 탐지 엔진(20)은, PHY(11)를 통해 제공된 패킷의 세션 상태를 점검하여 DoS/DDoS를 탐지한다. The attack detection engine 20 detects DoS / DDoS by checking the session state of the packet provided through the PHY 11.

대응 엔진(30)에서는 공격 탐지 엔진(20)에서 탐지된 결과에 따라, DoS/DDoS를 차단하기 위해 동작한다. The response engine 30 operates to block the DoS / DDoS according to the result detected by the attack detection engine 20.

공격 탐지 엔진(20)에서 탐지된 DoS/DDoS에 대한 정보와, 대응 엔진(30)에서의 대응 결과는 PCI(40)를 통해 소프트웨어 매니저(55)로 전달되며, 소프트웨어 기반 보안 엔진(50)에서는 탐지 및 대응 결과를 기반으로 정책 수립에 대한 내용을 처리한다. Information on the DoS / DDoS detected by the attack detection engine 20 and the response result in the response engine 30 are transmitted to the software manager 55 through the PCI 40, and in the software-based security engine 50. Handles policy formulation based on detection and response results.

도 2는 도 1에서 공격 탐지 엔진을 상세히 나타낸 서비스 거부 공격 방어 장치의 구성도이다. FIG. 2 is a block diagram of a denial of service attack defense apparatus showing the attack detection engine in FIG. 1 in detail.

하드웨어 기반 보안 엔진은, 상술한 공격 탐지 엔진(20)과 대응 엔진(30) 이외에, MAC 모듈(17)과 세션 테이블(15)을 더 포함하며, 공격 탐지 엔진(20)은, 패킷 파서(21), 해쉬 키 생성기(23), 세션 매니저(25), 공격 탐지기(27)를 포함한다.The hardware-based security engine further includes a MAC module 17 and a session table 15 in addition to the above-described attack detection engine 20 and the corresponding engine 30, and the attack detection engine 20 may include a packet parser 21. ), A hash key generator 23, a session manager 25, and an attack detector 27.

이러한 하드웨어 기반 보안 엔진의 각 구성요소는, FPGA(Field Programmable Gate Array) 나 ASIC(Application-Specific Integrated Circuit)와 같은 하드웨어와 SRAM 과 같은 메모리 장치로 구현될 수 있다. Each component of the hardware-based security engine may be implemented with hardware such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC) and a memory device such as an SRAM.

MAC 모듈(17)은, PHY를 통해 유입된 네트워크 패킷을 제공받아, 2계층 이더넷 프레임을 인식하고, IP 패킷을 추출한다. 이때, MAC 모듈(17)은 각각의 패킷을 구별하기 위해 패킷마다 패킷 ID를 생성하며, 패킷 ID는 DoS/DDoS가 탐지되어 대응할 때, 대응 엔진(30)에서 패킷에 따라 대응할 때 각 패킷을 구별할 수 있으므로 유용하다. MAC 모듈(17)에서 추출된 IP 패킷과 패킷 ID는 공격 탐지 엔진(20)으로 전달된다. The MAC module 17 receives the network packet introduced through the PHY, recognizes the Layer 2 Ethernet frame, and extracts the IP packet. At this time, the MAC module 17 generates a packet ID for each packet to distinguish each packet, and when the DoS / DDoS is detected and responds, the packet ID distinguishes each packet when the corresponding engine 30 responds according to the packet. It is useful because we can do it. The IP packet and the packet ID extracted from the MAC module 17 are transmitted to the attack detection engine 20.

세션 테이블(15)은, 패킷의 입력시 세션 매니저(25)에 의해 생성되는 엔트리(16)가 등록되며, 세션 테이블(15)의 구조에 대해서는 후술하기로 한다. In the session table 15, an entry 16 generated by the session manager 25 when a packet is input is registered. The structure of the session table 15 will be described later.

공격 탐지 엔진(20)의 패킷 파서(21)는, MAC 모듈(17)로부터 제공된 패킷을 파싱하여 세션 상태 추적에 필요한 필드들을 추출한다. 세션 상태 추적에 필요한 필드로는, 세션 관리에 필요한 5-Tuple 정보와 TCP 플래그 정보를 포함하며, 5-Tuple 정보는 소스 IP(Source IP), 목적지 IP(Destination IP), 소스 포트(Source Port), 목적지 포트(Destination Port), 프로토콜을 포함한다. The packet parser 21 of the attack detection engine 20 parses the packet provided from the MAC module 17 and extracts fields necessary for session state tracking. Fields required for session state tracking include 5-Tuple information and TCP flag information necessary for session management, and 5-Tuple information includes Source IP, Destination IP, and Source Port. , Destination port, and protocol.

해쉬 키 생성기(23)는, 패킷 파서(21)에서 파싱된 정보를 5-Tuple 정보를 기초로 하여 각각의 세션을 구별하기 위한 해쉬 키와, 해쉬 어드레스를 생성한다. 여기서, 해쉬 키는 세션 테이블(15)내에서 엔트리(16)가 등록된 셋(Set)의 위치를 나타내고, 해쉬 어드레스는 셋내의 엔트리(16)의 위치를 나타낸다. The hash key generator 23 generates a hash key and a hash address for distinguishing each session based on the information parsed by the packet parser 21 based on 5-Tuple information. Here, the hash key indicates the position of the set in which the entry 16 is registered in the session table 15, and the hash address indicates the position of the entry 16 in the set.

세션 매니저(25)는, 세션의 간략한 상태 정보를 포함하는 엔트리(16)를 생성하여 세션 테이블(15)에 저장하는 한편, 세션 상태에 따라 엔트리(16)를 관리하고, 세션 상태를 공격 탐지기(27)로 제공한다. 엔트리(16)는 클라이언트에 대해 설정된 세션의 상태 정보를 포함하며, 일반적으로 세션의 연결 상태 정보, 종료 상태 정보, 패킷의 방향성 정보 등을 포함한다. The session manager 25 generates and stores an entry 16 containing the brief state information of the session in the session table 15, manages the entry 16 according to the session state, and monitors the session state as an attack detector ( 27) to provide. The entry 16 includes state information of the session set up for the client, and generally includes connection state information of the session, termination state information, directional information of the packet, and the like.

공격 탐지기(27)는, 세션 매니저(25)에 의해 관리되는 세션들의 상태를 추적하다가 특정 세션 상태의 엔트리가 미리 설정된 임계치를 초과하면, DoS/DDoS로 판단하고, 경보를 발생시켜 대응 엔진(30)에 판단결과를 전달한다. The attack detector 27 tracks the state of sessions managed by the session manager 25, and if an entry of a specific session state exceeds a preset threshold, determines that the DoS / DDoS is generated and generates an alert to respond to the response engine 30. Pass the judgment result to

대응 엔진(30)에서는 공격 탐지기(27)에서 경보가 발생되면, 패킷을 드롭(Drop)하는 등의 대응을 행하게 된다. PCI를 통해 대응 엔진(30)의 대응 상태 및 결과가 소프트웨어 매니저로 제공되며, 소프트웨어 매니저는 GUI(Graphic User Interface) 등을 이용하여 네트워크 상에서 DoS/DDoS 가 발생되었음을 관리자에게 알리게 된다. When the alert is generated by the attack detector 27, the response engine 30 responds by dropping a packet. The corresponding state and the result of the response engine 30 are provided to the software manager through the PCI, and the software manager notifies the manager that DoS / DDoS has been generated on the network using a GUI (Graphic User Interface).

도 3은 도 2의 세션 테이블의 구성도이다. 3 is a diagram illustrating a session table of FIG. 2.

본 세션 테이블(15)은 제한된 하드웨어 리스소를 이용하여 많은 엔트리(16)를 효율적으로 관리하기 위해 다중 해쉬 함수와 N-웨이 셋 어소시어티브 테이블(N-Way Set Associative Table) 구조를 갖는다. 즉, 해쉬 함수를 이용하여 해쉬 생성기에서 해쉬 키와 해쉬 어드레스를 생성하고, 다수의 세션 테이블(15)에는 해쉬 키와 해쉬 어드레스로 그 위치가 지정된 각 엔트리(16)가 등록된다. This session table 15 has a multiple hash function and an N-Way Set Associative Table structure to efficiently manage many entries 16 using limited hardware resources. That is, the hash generator generates a hash key and a hash address by using a hash function, and each entry 16 whose location is specified by the hash key and the hash address is registered in the plurality of session tables 15.

엔트리(16)는 3-웨이 핸드쉐이킹 연결 설정 과정을 통해 세션 테이블(15)에 등록된다. 즉, 클라이언트로부터 SYN 패킷이 수신되면, 세션 매니저(25)는 SYN 패킷에 대응되는 엔트리(16)를 생성하여 세션 테이블(15)에 등록한다. Entry 16 is registered in session table 15 through a three-way handshaking connection establishment process. That is, when the SYN packet is received from the client, the session manager 25 generates an entry 16 corresponding to the SYN packet and registers it in the session table 15.

엔트리(16)는, 현재 상태(Current State) 값, 타임 스탬프(Time Stamp) 값, 헤쉬 어드레스를 포함한다. 여기서, 현재 상태 값은 세션의 상태 정보를 표시하며, 타임 스탬프 값은 세션 상태에 따라 상이한 값을 갖는 타임아웃(Timeout)을 표 시한다. 예를 들어, 클라이언트로부터 SYN 패킷이 수신된 상태에서 형성되는 "SYN_RCVD" 상태의 세션은, 클라이언트와의 연결이 설정된 "ESTABLISHED" 상태의 세션보다 휠씬 작은 타임아웃 값을 갖는다. 타임아웃이 발생한 엔트리(16)는 세션 테이블(15)에서 삭제된다. The entry 16 includes a current state value, a time stamp value, and a hash address. Here, the current state value indicates state information of the session, and the time stamp value indicates a timeout having a different value according to the session state. For example, a session in the " SYN_RCVD " state formed with a SYN packet received from a client has a timeout value much smaller than a session in the " ESTABLISHED " state with which a connection with the client is established. The entry 16 where the timeout occurred is deleted from the session table 15.

만약, DoS/DDoS 공격이 멈춘 상황에서 DoS/DDoS 공격으로 인해 많이 생성되었던 "SYNASK_RCVD" 상태의 세션들이 타임아웃되어 삭제되면, "SYNASK_RCVD"의 개수가 임계치 이하로 내려가고, 세션 매니저(25)는 해당 정보를 공격 탐지기(27)로 전달하여 DoS/DDoS 공격에 대한 경보가 해제된다. If the sessions in the "SYNASK_RCVD" state, which were frequently created due to the DoS / DDoS attack, are timed out and deleted while the DoS / DDoS attack is stopped, the number of "SYNASK_RCVD" goes below the threshold, and the session manager 25 The information is transmitted to the attack detector 27 to release the alert for the DoS / DDoS attack.

한편, 정상적으로 클라이언트와 세션이 설정된 경우, 엔트리(16)는 클라이어트로부터 리셋(Reset) 패킷이나 핀(Fin) 패킷이 입력되는 4-웨이 핸드쉐이킹 연결 종료 과정에 의해 세션 테이블(15)로부터 삭제된다.On the other hand, if a session is normally established with the client, the entry 16 is deleted from the session table 15 by a 4-way handshaking connection termination procedure in which a Reset packet or a Fin packet is input from the client.

도 4는 본 발명에 따른 서비스 거부 공격 방어 장치에서 TCP SYN Flooding을 탐지하고 대응하는 과정을 보인 개념도이다. 4 is a conceptual diagram illustrating a process of detecting and responding to TCP SYN Flooding in a denial of service attack defense apparatus according to the present invention.

대부분의 TCP SYN Flooding 공격은, 소스 IP 어드레스를 속여서 대량의 SYN 패킷을 서버(7)에 전송함으로써 이루어진다. Most TCP SYN Flooding attacks are made by sending large amounts of SYN packets to the server 7 by tricking the source IP address.

클라이언트(5)가 연결 설정을 위해 서버(7)로 SYN 패킷을 전송하면(S400), 세션 매니저(25)는 세션 테이블(15)에 "SYN_RCVD" 세션 상태를 갖는 엔트리(16)를 등록한다. 서버(7)는 SYN 패킷에 대한 응답으로 SYN+ACK 패킷을 전송하며, 세션 매니저(25)는 엔트리(16)의 세션 상태를 "SYNACK_RCVD" 상태로 변경하게 된다. 그런 다음, 클라이언트(5)가 ACK 패킷을 전송하여 연결을 설정하면, 세션 상태는 "ESTABLISHED"로 변경하게 된다. When the client 5 sends a SYN packet to the server 7 to establish a connection (S400), the session manager 25 registers an entry 16 having a "SYN_RCVD" session state in the session table 15. The server 7 sends a SYN + ACK packet in response to the SYN packet, and the session manager 25 changes the session state of the entry 16 to the "SYNACK_RCVD" state. Then, when the client 5 establishes a connection by sending an ACK packet, the session state is changed to "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), 경보를 발생시킨다. By the way, if the client 5 is performing a DoS / DDoS attack against the server 7, the client 5 transmits the server 7 using a false IP address when transmitting the SYN packet, and the server 7 ) Transmits the SYN + ACK packet to the false IP address, so no ACK packet is sent from the client 5. Therefore, the session is not changed to "ESTABLISED" and the sessions in the "SYNACK_RCVD" state are suddenly increased (s410). When the sessions in the "SYNACK_RCVD" state increase and exceed the preset threshold, the attack detection engine 20 determines that DoS / DDoS has occurred (S420), and generates an alert.

경보가 발생되면, 대응 엔진(30)에서는 즉각적으로 DoS/DDoS에 대응한다. 먼저, 대응 엔진(30)은 경보의 발생 후, 첫번째로 수신되는 SYN 패킷을 드롭시킨다(S430). 드롭된 SYN 패킷에 대해 생성된 엔트리(16)는 세션 테이블(15)에 "SYN_RCVD & DROP" 상태로 등록된다. 만약 드롭된 SYN 패킷이 IP 스푸핑(Spoofing)된 DoS/DDoS 공격 패킷이었다면, 클라이언트(5)는 두번째 SYN 패킷을 재전송하지 아니한다. 그러나, 드롭된 SYN 패킷이 합법적인 클라이언트(5)에 의한 연결 요청이었다면, 클라이언트(5)로부터 두번째 SYN 패킷이 전송된다. When an alarm is generated, the response engine 30 immediately responds to the DoS / DDoS. First, the response engine 30 drops the first received SYN packet after the alert is generated (S430). The entry 16 created for the dropped SYN packet is registered in the session table 15 in the "SYN_RCVD & DROP" state. If the dropped SYN packet was an IP spoofed DoS / DDoS attack packet, the client 5 does not retransmit the second SYN packet. However, if the dropped SYN packet was a connection request by a legitimate client 5, then a second SYN packet is sent from the client 5.

따라서, 두번째 SYN 패킷이 수신되면, 대응 엔진(30)은 RTO(Retransmission Timeout) 체크를 통해 해당 SYN 패킷의 합법성을 다시 한번 확인한 후, 패킷을 패스시켜 패킷 처리를 위한 과정으로 전달한다(S440). 이때, 세션 매니저(25)는 SYN 패킷의 세션 상태를 "SYN_RCVD & DROP"에서 "SYN_RCVD" 상태로 변경되고, 정상적인 3-웨이 핸드쉐이킹 과정을 통해 클라이언트(5)와의 연결이 설정된다. 이렇게 두번 째 SYN 패킷을 수신하여 클라이언트(5)와 정상적인 연결이 설정됨에 따라, DoS/DDoS 공격이 이루어지는 상황에서도 합법적인 사용자들의 연결 요청만을 받아들여, 해당 네트워크나 서버(7) 시스템이 서비스를 제공할 수 있다. Therefore, when the second SYN packet is received, the correspondence engine 30 checks the legality of the corresponding SYN packet once again through a retransmission timeout (RTO) check, passes the packet, and passes the packet for processing (S440). At this time, the session manager 25 changes the session state of the SYN packet from "SYN_RCVD & DROP" to "SYN_RCVD" state, and establishes a connection with the client 5 through a normal 3-way handshaking process. As the second SYN packet is received and a normal connection is established with the client 5, even when a DoS / DDoS attack is performed, only a legitimate user's connection request is accepted and the network or server 7 system provides a service. can do.

도 5는 엔트리에 포함되는 현재 상태 값과 설명을 표시한 표이다. 5 is a table showing the current state values and descriptions included in an entry.

세션의 현재 상태 값은, 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" 상태를 각각 나타낸다. The current state value of the session is represented by 0000 to 1111, where 0000 is the initial state in which the session is not connected, 0001 is the "SYN_RCVD" state that receives the SYN packet from the client 5, and 0010 is the client (5) server (5). In the " SYNASK_RCVD " state in which a SYN + ASK packet is transmitted with respect to the SYN packet, 0011 indicates a " SYN_RCVD & DROP " state in which a packet from the client 5 is dropped by DoS / DDoS attack. 1000 to 1011 represent a state in which a connection is established, and the positions of the client 5 and the server 7 have not changed, 1000 represents a state in which the connection is established, and 1001 represents a first pin packet from the client 5 to the server 7. The " FIRST_FIN_RCVD " state delivered, 1010 indicates the " FIRST_FIN_RCVD " state where the first pin packet is delivered from the server 7 to the client 5, and 1011 indicates the " SECOND_FIN_RCVD " state where the second pin packet is delivered. 1100 to 1111 indicate connection setting states, "FIRST_FIN_RCVD" and "SECOND_FIN_RCVD" states when the connection is established and the position between the client 5 and the server 7 is changed.

일반적으로 클라이언트(5)와 서버(7)의 연결을 종료하기 위해서는 4-웨이 핸드쉐이킹이 수행되므로, 핀 패킷이 두 번 생성되어 전달된다. 연결의 종료 요청은, 클라이언트(5) 또는 서버(7)가 핀 패킷을 상대방으로 전달하면서 요청할 수 있다. 이때, 클라이언트(5)가 서버(7)로 첫번째 핀 패킷이 전달되면 엔트리(16)내의 세션 상태는 1001 상태가 되고, 서버(7)에서 클라이언트(5)로 첫번째 핀 패킷이 전달되면 세션 상태는 1010이 된다. 그런 다음, 상대방에서 두번째 핀 패킷을 전달하면, 세션 상태는 1011이 된다. In general, since 4-way handshaking is performed to terminate the connection between the client 5 and the server 7, pin packets are generated and delivered twice. The request for terminating the connection may be requested while the client 5 or the server 7 delivers the pin packet to the other party. At this time, if the first pin packet is delivered from the client 5 to the server 7, the session state in the entry 16 is 1001. If the first pin packet is delivered from the server 7 to the client 5, the session state is 1010. Then, when the other party forwards the second pin packet, the session state is 1011.

도 6은 도 5의 현재 상태 값을 통해 세션의 상태 전이를 나타내는 개념도이며, 세션이 상태 전이는 세션 매니저(25)에 의해 수행된다. 6 is a conceptual diagram illustrating a state transition of a session through the current state value of FIG. 5, and the session state transition is performed by the session manager 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 상태로 변경한다. In the 0000 state, which is the initial state of no session connection, when a SYN packet for establishing a TCP session is sent from the client 5, the session manager 25 generates an entry 16 to change the current state value to 0001 state. . When a SYN + ASK packet is sent from server 7 to client 5, session manager 25 changes the current state value of entry 16 to 0010 state. Then, when the ASK packet, which is the last step of the 3-way handshaking process, is sent from the client 5, the session manager 25 compares the sizes of the source and the destination. As a result of the comparison, when the positions of the server 7 and the client 5 change, the session manager 25 changes from the 0010 state to the 1100 state, and otherwise changes to the 1000 state.

1000 상태에서 TCP 종료를 위한 첫번째 핀 패킷이 클라이언트(5)에서 서버(7)로 전송되면, 세션 매니저(25)는 1000 상태에서 1001 상태로 전이시키고, 두번째 핀 패킷이 서버(7)에서 클라이언트(5)로 전송되면 1011 상태로 전이시킨다. 마지막으로 ACK 패킷이 전송되면, 세션 매니저(25)는 현재 상태 값을 0000 초기상태로 변경한다. When the first pin packet for TCP termination in the 1000 state is sent from the client 5 to the server 7, the session manager 25 transitions from the 1000 state to the 1001 state, and the second pin packet is sent from the server 7 to the client ( 5) to transition to the 1011 state. Finally, when the ACK packet is transmitted, the session manager 25 changes the current state value to 0000 initial state.

만약 1000 상태에서 첫번째 핀 패킷이 서버(7)에서 클라이언트(5)로 전송되 면, 세션 매니저(25)는 1000 상태에서 1010 상태로 변경하고, 이후 두번째 핀 패킷이 클라이언트(5)에서 서버(7)로 전송되면, 1011 상태로 변경한다. 마지막으로 ACK 패킷이 전송되면, 세션 매니저(25)는 현재 상태 값을 0000 초기상태로 변경한다. If the first pin packet is sent from the server 7 to the client 5 in the 1000 state, the session manager 25 changes from the 1000 state to the 1010 state, and then the second pin packet is sent from the client 5 to the server 7. Is sent to the 1011 state. Finally, when the ACK packet is transmitted, the session manager 25 changes the current state value to 0000 initial state.

한편, DoS/DDoS 공격이 이루어져 경보가 발생한 상황이라면, 첫번째 SYN 패킷이 전송되면, 세션 매니저(25)는 0001 상태가 아닌 0011 상태로 변경하고, 두번째 SYN 패킷이 전송되면 0001 상태로 변경한다. On the other hand, if a DoS / DDoS attack is generated and an alarm occurs, when the first SYN packet is transmitted, the session manager 25 changes to 0011 state instead of the 0001 state, and changes to 0001 state when the second SYN packet is transmitted.

이러한 구성에 의한 서비스 거부 공격 방어 장치에서 패킷을 처리하는 과정을 도 7을 참조하여 살펴보면 다음과 같다. The process of processing the packet in the denial of service attack defense device according to the above configuration will be described with reference to FIG. 7.

TCP 패킷이 입력되면(S700), 세션 매니저(25)는 세션 테이블(15)을 탐색하여 매칭되는 세션이 존재하는지 파악한다(S705). 매칭되는 세션이 존재하면, 엔트리(16)의 현재 상태 값, 타임 스탬프를 업데이트하고 패킷을 패스시킨다(S715,S745). 그러나, 매칭되는 세션이 존재하지 아니하면, SYN 패킷인지를 판단하고(S720), SYN 패킷이 아니라면 정상적인 패킷이 아니므로 드롭시킨다(S765). When the TCP packet is input (S700), the session manager 25 searches the session table 15 to determine whether there is a matching session (S705). If there is a matching session, it updates the current state value, time stamp of entry 16 and passes the packet (S715, S745). However, if there is no matching session, it is determined whether it is a SYN packet (S720). If it is not a SYN packet, it is dropped because it is not a normal packet (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). In the case of the SYN packet, it is checked whether a current DoS / DDoS attack has occurred (S725), and if the DoS / DDoS attack has not occurred, it is checked whether the session table 15 is full (S730). If the session table 15 is full, the session manager 25 applies the Latest Recently Used (LRU) algorithm to replace the oldest entry 16 with the entry 16 created for the newly received SYN packet (S735). The packet is passed (S745). If the session table 15 is not full, a new entry 16 is created, registered in the session table 15, and the packet is passed (S740 and S745).

한편, DoS/DDoS 공격이 발생한 경우에는, 세션 매니저(25)는 세션 테이블(15)이 풀인지 확인하고(S750), 세션 테이블(15)이 풀이면, 가장 오래된 엔트리(16)를 새로 수신된 SYN 패킷에 대해 작성된 엔트리(16)로 교체하고(S755), 패킷을 드롭시킨다(S765). 그리고 세션 테이블(15)이 풀이 아니면 새로운 엔트리(16)를 생성하여 세션 테이블(15)에 등록하고 패킷을 드롭시킨다(S760,S765). On the other hand, when a DoS / DDoS attack occurs, the session manager 25 checks whether the session table 15 is full (S750), and if the session table 15 is full, the oldest entry 16 is newly received. The entry 16 written for the SYN packet is replaced (S755), and the packet is dropped (S765). If the session table 15 is not full, a new entry 16 is created, registered in the session table 15, and the packet is dropped (S760, S765).

이러한 패킷 처리 과정에서, SYN 패킷이 DoS/DDoS 공격이 발생한 뒤, 첫번째 들어오는 SYN 패킷이라면, 매칭되는 세션이 존재하지 아니하므로, 엔트리(16)가 생성된 다음 드롭된다. 이때, SYN 패킷이 DoS/DDoS공격을 위한 패킷인 경우에는 클라이언트(5)가 패킷을 재전송하지 아니하나, SYN 패킷이 합법적인 패킷인 경우에는 클라이언트(5)가 패킷을 재전송한다. 따라서, SYN 패킷이 합법적인 패킷이어서, 두번째 SYN 패킷이 입력되는 경우, 세션 테이블(15)에는 매칭되는 엔트리(16)가 존재하며, 세션 매니저(25)는 두번째 SYN 패킷에 대해 엔트리(16)를 업데이트하고, 두번째 SYN 패킷을 통과시킨다. In this packet processing, if the SYN packet is the first incoming SYN packet after the DoS / DDoS attack has occurred, since no matching session exists, entry 16 is generated and then dropped. At this time, if the SYN packet is a packet for DoS / DDoS attack, the client 5 does not retransmit the packet. If the SYN packet is a legal packet, the client 5 retransmits the packet. Thus, if the SYN packet is a legitimate packet and a second SYN packet is input, then there is a matching entry 16 in the session table 15, and the session manager 25 selects the entry 16 for the second SYN packet. Update and pass the second SYN packet.

이러한 패킷 처리 과정을 통해, DoS/DDoS 공격이 발생하는 동안, DoS/DDoS 공격을 위한 패킷을 드롭시킬 수 있으며, 정상적인 패킷은 서버(7)로 전달되도록 한다. Through this packet processing, during the DoS / DDoS attack, the packet for the DoS / DDoS attack can be dropped and the normal packet is delivered to the server 7.

이와 같이, 본 서비스 거부 공격 방어 장치는, 세션의 상태를 점검하여 DoS/DDoS 공격 여부를 결정한다. 즉, 클라이언트(5)로부터 ACK 패킷이 수신되지 않아 세션 상태가 "SYNACK_RCVD" 상태의 세션들이 일정 임계치 이상으로 생성되면, DoS/DDoS 공격이 발생되었다고 결정하고, 이후에 입력되는 SYN 패킷을 드롭시킨다. 그리고 동일한 SYN 패킷이 타임아웃되기 전에 재전송된 경우에만 클라이언트(5)와 서버(7)간의 세션이 형성되도록 한다. 따라서, 실시간으로 세션 상태를 추적하여 세션별 패킷이 처리되도록 함으로써, DoS/DDoS 공격 발생을 신속하게 탐지하여 효과적으로 대응할 수 있다. In this way, the denial of service attack defense apparatus determines the DoS / DDoS attack by checking the state of the session. That is, if the ACK packet is not received from the client 5 and the session state is generated with a session state of "SYNACK_RCVD" above a certain threshold, it is determined that a DoS / DDoS attack has occurred, and then drop the input SYN packet. The session between the client 5 and the server 7 is established only when the same SYN packet is retransmitted before timeout. Therefore, by tracking the session state in real time to process the packet for each session, it is possible to quickly detect the DoS / DDoS attack occurrence and respond effectively.

한편, 본 서비스 거부 공격 방어 장치는 DoS/DDoS 공격에 대한 탐지와 대응 기능을 하드웨어 기반 보안 엔진에서 수행하므로, 기가급 네트워크에서도 선로 속도를 보장하여 성능상 문제가 없으며, 정책 수립에 대한 내용은 소프트웨어 기반 보안 엔진에서 처리하므로, 시스템 운용에 효율성을 극대화할 수 있다. On the other hand, this denial-of-service defense device performs detection and response functions for DoS / DDoS attacks in a hardware-based security engine, so there is no performance problem by guaranteeing the line speed even in a giga-class network. Because it is handled by the security engine, it can maximize efficiency in system operation.

이상에서 설명한 본 발명은 첨부된 도면 및 상세한 설명의 실시예에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백하다 할 것이다. The present invention described above is not limited to the embodiments of the accompanying drawings and the detailed description, and it is understood that various substitutions, modifications, and changes can be made without departing from the technical spirit of the present invention. It will be apparent to those skilled in the art.

도 1은 본 발명에 따른 서비스 거부 공격 방어 장치의 개략적 구성도, 1 is a schematic configuration diagram of a denial of service attack defense apparatus according to the present invention;

도 2는 도 1에서 공격 탐지 엔진을 상세히 나타낸 서비스 거부 공격 방어 장치의 구성도, 2 is a block diagram of a denial of service attack defense device showing the attack detection engine in detail in FIG.

도 3은 도 2의 세션 테이블의 구성도, 3 is a configuration diagram of the session table of FIG. 2;

도 4는 본 발명에 따른 서비스 거부 공격 방어 장치에서 TCP SYN Flooding을 탐지하고 대응하는 과정을 보인 개념도, 4 is a conceptual diagram illustrating a process of detecting and responding to TCP SYN Flooding in a denial of service attack defense apparatus according to the present invention;

도 5는 엔트리에 포함되는 현재 상태 값과 설명을 표시한 표, 5 is a table showing current state values and descriptions included in an entry;

도 6은 도 5의 현재 상태 값을 통해 세션의 상태 전이를 나타내는 개념도,6 is a conceptual diagram illustrating a state transition of a session through the current state value of FIG. 5;

도 7은 본 발명에 따른 서비스 거부 공격 방어 장치에서 패킷을 처리하는 과정을 나타낸 흐름도이다. 7 is a flowchart illustrating a process of processing a packet in an apparatus for denial of service attack defense according to the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

15 : 세션 테이블 16 : 엔트리15: session table 16: entry

20 : 공격 탐지 엔지 21 : 패킷 파서 20: attack detection engine 21: packet parser

23 : 해쉬 키 생성기 25 : 세션 매니저23: Hash Key Generator 25: Session Manager

27 : 공격 탐지기 30 : 대응 엔진 27: Attack Detector 30: Response Engine

Claims (9)

클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하여 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 공격 탐지 엔진; 및If the number of sessions in a particular state exceeds the preset threshold, it is determined as a Denial-of-Service (DoS) / Distributed Denial-of-Service (DDoS) attack. Attack detection engine; And 상기 공격 탐지 엔진에서 상기 DoS/DDoS 공격을 탐지하면, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 이미 존재하는지 여부에 따라 상기 패킷의 드롭 여부를 결정하여 상기 DoS/DDoS 공격에 대응하는 대응 엔진을 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치. When the attack detection engine detects the DoS / DDoS attack, upon input of a new packet from the client, the DoS / DDoS attack is determined by determining whether to drop the packet according to whether a session corresponding to the new packet already exists. Denial of service attack defense apparatus comprising a corresponding engine corresponding to. 제 1 항에 있어서, The method of claim 1, 상기 공격 탐지 엔진은, The attack detection engine, 상기 패킷 전송에 따라 생성되며, 상기 세션 상태에 대한 정보가 포함된 엔트리를 저장하는 세션 테이블; A session table generated according to the packet transmission and storing an entry including information on the session state; 상기 세션 테이블에 저장된 엔트리의 위치를 지시하는 해쉬 키를 생성하는 해쉬 키 생성기; A hash key generator for generating a hash key indicating a location of an entry stored in the session table; 상기 패킷 전송에 따라 상기 엔트리를 생성하거나 상기 엔트리에 포함된 세션 상태 정보를 변경하는 세션 매니저;A session manager for generating the entry or changing session state information included in the entry in response to the packet transmission; 상기 엔트리의 세션 상태에 대한 정보를 제공받아, 상기 서버에서 SYN 패킷 에 응답하여 생성된 SYN+ASK 패킷에 대응되는 세션 상태를 갖는 엔트리의 수가 미리 설정된 임계치를 초과하면 DoS/DDoS 공격이 발생하였다고 판단하고, 경보를 울리는 공격 탐지기;를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 장치. When the number of entries having session state corresponding to the SYN + ASK packet generated in response to the SYN packet is received from the server by receiving the information on the session state of the entry, it is determined that a DoS / DDoS attack has occurred. And an attack detector for ringing an alarm. 제 2 항에 있어서, The method of claim 2, 상기 세션 매니저는, 상기 DoS/DDoS 공격이 탐지된 후, 상기 세션 테이블에 해당 엔트리가 존재하지 아니하는 SYN 패킷이 입력되면, 상기 SYN 패킷에 대해 엔트리를 생성하여 상기 세션 테이블에 저장하고, 상기 대응 엔진은 상기 SYN 패킷을 드롭시키는 것을 특징으로 하는 서비스 거부 공격 방어 장치. The session manager generates an entry for the SYN packet and stores the entry in the session table after the DoS / DDoS attack is detected, when a SYN packet for which no entry exists in the session table is input. And an engine drops the SYN packet. 제 2 항에 있어서, The method of claim 2, 상기 대응 엔진은, 상기 DoS/DDoS 공격이 탐지된 후, 상기 SYN 패킷이 상기 클라이언트로부터 재전송되면, 상기 세션 테이블에 상기 SYN 패킷에 대한 엔트리가 존재할 경우, 상기 SYN 패킷을 패스시키는 것을 특징으로 하는 서비스 거부 공격 방어 장치. If the SYN packet is retransmitted from the client after the DoS / DDoS attack is detected, the corresponding engine passes the SYN packet when an entry for the SYN packet exists in the session table. Rejection attack defense device. 클라이언트와 서버 간의 패킷 전송에 따라 변경되는 세션의 상태를 추적하는 단계; Tracking the state of the session that changes as the packet is transmitted between the client and the server; 특정 상태의 세션의 수가 미리 설정된 임계치를 초과하면, DoS(Denial-of-Service)/DDoS(Distributed Denial-of-service) 공격으로 판단하는 단계; If the number of sessions in a particular state exceeds a preset threshold, determining that the service is a Denial-of-Service (DoS) / Distributed Denial-of-Service (DDoS) attack; 상기 DoS/DDoS 공격의 탐지 후, 상기 클라이언트로부터 새로운 패킷의 입력시, 상기 새로운 패킷에 대응되는 세션이 미리 생성되어 있는지를 파악하여 상기 패킷의 드롭 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법. Determining whether to drop the packet by detecting whether a session corresponding to the new packet is generated in advance when a new packet is input from the client after the DoS / DDoS attack is detected. How to defend against denial of service attacks. 제 5 항에 있어서, The method of claim 5, 상기 세션의 상태를 추적하는 단계는, Tracking the state of the session, 상기 패킷 전송시 상기 세션 상태에 대한 정보가 포함된 엔트리를 생성하거나, 상기 엔트리에 포함된 세션 상태 정보를 변경하는 단계를 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법. Generating an entry including information on the session state or changing the session state information included in the entry when transmitting the packet. 제 5 항에 있어서, The method of claim 5, 상기 DoS/DDoS 공격으로 판단하는 단계는, The determining of the DoS / DDoS attack may include: SYN 패킷에 대해 상기 서버에서 응답하여 생성된 SYN+ASK 패킷에 대응되는 세션 상태를 갖는 엔트리의 수가 미리 설정된 임계치를 초과하면 서비스 거부 공격이 발생하였다고 판단하는 단계인 것을 특징으로 하는 서비스 거부 공격 방어 방법. And denying a denial of service attack if a number of entries having a session state corresponding to a SYN + ASK packet generated in response to the SYN packet exceeds a preset threshold. . 제 5 항에 있어서, The method of claim 5, 상기 패킷의 드롭 여부를 결정하는 단계는,Determining whether or not to drop the packet, 상기 DoS/DDoS 공격이 탐지된 후, 대응되는 엔트리가 존재하지 아니하는 SYN 패킷이 입력되면, 상기 SYN 패킷에 대해 엔트리를 생성하여 저장하는 단계와, After the DoS / DDoS attack is detected, if a SYN packet in which a corresponding entry does not exist is input, generating and storing an entry for the SYN packet; 상기 SYN 패킷을 드롭시키는 단계를 더 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법. And dropping the SYN packet. 제 5 항에 있어서, The method of claim 5, 상기 패킷의 드롭 여부를 결정하는 단계는, Determining whether or not to drop the packet, 상기 DoS/DDoS 공격이 탐지된 후, 새로운 패킷이 상기 클라이언트로부터 재전송되면, 상기 새로운 패킷에 대한 엔트리가 존재하는 경우, 상기 새로운 패킷을 패스시키는 단계를 더 포함하는 것을 특징으로 하는 서비스 거부 공격 방어 방법.And if a new packet is retransmitted from the client after the DoS / DDoS attack is detected, if the entry for the new packet exists, passing the new packet. .
KR1020080124848A 2008-12-09 2008-12-09 Denial of Service Prevention Method and Apparatus based on Session State Tracking KR101209214B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080124848A KR101209214B1 (en) 2008-12-09 2008-12-09 Denial of Service Prevention Method and Apparatus based on Session State Tracking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080124848A KR101209214B1 (en) 2008-12-09 2008-12-09 Denial of Service Prevention Method and Apparatus based on Session State Tracking

Publications (2)

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

Family

ID=42365296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080124848A KR101209214B1 (en) 2008-12-09 2008-12-09 Denial of Service Prevention Method and Apparatus based on Session State Tracking

Country Status (1)

Country Link
KR (1) KR101209214B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101107741B1 (en) * 2010-09-02 2012-01-20 한국인터넷진흥원 Sip based system for preventing abnormal traffic and method for preventing abnormal traffic
KR101333305B1 (en) * 2009-12-18 2013-12-02 한국전자통신연구원 Apparatus and method for managing safe transmission control protocol connection
US8634717B2 (en) 2010-12-13 2014-01-21 Electronics And Telecommunicatiions Research Institute DDoS attack detection and defense apparatus and method using packet data
US8677488B2 (en) 2010-12-13 2014-03-18 Electronics And Telecommunications Research Institute Distributed denial of service attack detection apparatus and method, and distributed denial of service attack detection and prevention apparatus for reducing false-positive
CN112859607A (en) * 2021-01-13 2021-05-28 河南农业大学 Collaborative design method for distributed security event driver and SDOFD controller
KR102514127B1 (en) 2022-03-21 2023-03-23 이민수 Apparatus for handwriting letter correction

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381606B1 (en) 2013-05-28 2014-04-14 아주대학교산학협력단 Content centric network node and method of detecting denial of service therein

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101333305B1 (en) * 2009-12-18 2013-12-02 한국전자통신연구원 Apparatus and method for managing safe transmission control protocol connection
KR101107741B1 (en) * 2010-09-02 2012-01-20 한국인터넷진흥원 Sip based system for preventing abnormal traffic and method for preventing abnormal traffic
US8634717B2 (en) 2010-12-13 2014-01-21 Electronics And Telecommunicatiions Research Institute DDoS attack detection and defense apparatus and method using packet data
US8677488B2 (en) 2010-12-13 2014-03-18 Electronics And Telecommunications Research Institute Distributed denial of service attack detection apparatus and method, and distributed denial of service attack detection and prevention apparatus for reducing false-positive
CN112859607A (en) * 2021-01-13 2021-05-28 河南农业大学 Collaborative design method for distributed security event driver and SDOFD controller
CN112859607B (en) * 2021-01-13 2024-03-19 河南农业大学 Collaborative design method for distributed security event driver and SDOFD controller
KR102514127B1 (en) 2022-03-21 2023-03-23 이민수 Apparatus for handwriting letter correction

Also Published As

Publication number Publication date
KR101209214B1 (en) 2012-12-06

Similar Documents

Publication Publication Date Title
US7464404B2 (en) Method of responding to a truncated secure session attack
US8020207B2 (en) Containment mechanism for potentially contaminated end systems
Chang Defending against flooding-based distributed denial-of-service attacks: a tutorial
US7478429B2 (en) Network overload detection and mitigation system and method
US8819821B2 (en) Proactive test-based differentiation method and system to mitigate low rate DoS attacks
US9060020B2 (en) Adjusting DDoS protection based on traffic type
US7836498B2 (en) Device to protect victim sites during denial of service attacks
KR101219796B1 (en) Apparatus and Method for protecting DDoS
Chao-Yang DOS attack analysis and study of new measures to prevent
KR101209214B1 (en) Denial of Service Prevention Method and Apparatus based on Session State Tracking
Foroushani et al. TDFA: traceback-based defense against DDoS flooding attacks
US20140380457A1 (en) Adjusting ddos protection
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
Patil et al. A rate limiting mechanism for defending against flooding based distributed denial of service 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
Liu et al. Research of the ARP spoofing principle and a defensive algorithm
US11997133B2 (en) Algorithmically detecting malicious packets in DDoS attacks
US20230319078A1 (en) System and method for detecting and mitigating port scanning attacks
Kuldeep et al. Enhancing Network Security by implementing preventive mechanism using GNS3
Singhal et al. Design and Development of Anti-DoS/DDoS Attacks Framework Using IPtables

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