KR102387102B1 - System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network - Google Patents

System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network Download PDF

Info

Publication number
KR102387102B1
KR102387102B1 KR1020200151881A KR20200151881A KR102387102B1 KR 102387102 B1 KR102387102 B1 KR 102387102B1 KR 1020200151881 A KR1020200151881 A KR 1020200151881A KR 20200151881 A KR20200151881 A KR 20200151881A KR 102387102 B1 KR102387102 B1 KR 102387102B1
Authority
KR
South Korea
Prior art keywords
flow
timeout
packets
sdn
flow table
Prior art date
Application number
KR1020200151881A
Other languages
Korean (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 KR1020200151881A priority Critical patent/KR102387102B1/en
Application granted granted Critical
Publication of KR102387102B1 publication Critical patent/KR102387102B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • 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

Landscapes

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

Abstract

A system and method for providing flow table overflow attack defense for software-defined network (SDN) dynamically adjust timeout, which is a time that a flow rule remains in a flow table, based on history, which is a packet number, to quickly remove attack flow in the flow table, thereby having an effect of reducing overhead caused by re-installation of the flow rule.

Description

SDN을 위한 플로우 테이블 오버플로우 공격 방어 시스템 및 방법{System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network}System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

본 발명은 플로우 테이블 오버플로우 공격 방어 시스템에 관한 것으로서, 더욱 상세하게는 패킷 개수인 히스토리를 기반으로 플로우 룰이 플로우 테이블 내에서 잔류하는 시간인 타임아웃을 동적으로 조절할 수 있는 플로우 테이블 오버플로우 공격 방어 시스템 및 방법에 관한 것이다.The present invention relates to a flow table overflow attack defense system, and more particularly, a flow table overflow attack defense capable of dynamically adjusting a timeout, which is a time that a flow rule remains in a flow table, based on a history of the number of packets. It relates to systems and methods.

SDN(Software-Defined Network)는 스위치, 라우터와 같은 네트워크 장비에 분산된 기능을 하나 또는 복수의 SDN 컨트롤러에 중앙 집중화하여 네트워크 모니터링 및 관리의 편의성을 증대하고자 등장하였다.Software-Defined Network (SDN) has emerged to increase the convenience of network monitoring and management by centralizing functions distributed in network equipment such as switches and routers to one or more SDN controllers.

SDN의 중앙 집중적인 특성으로 인해 기존 네트워크의 보안 취약점 중 DoS(Denial of Service) 계열 공격에 취약한 모습을 보였고, 이를 해결하기 위하여 많은 연구가 진행되었다.Due to the centralized nature of SDN, it was vulnerable to DoS (Denial of Service) attacks among the security vulnerabilities of existing networks, and many studies were conducted to solve this.

대량의 무작위 패킷을 전송하여 공격하는 DoS 공격은 공격 대상의 컴퓨팅 및 네트워크 자원을 고갈시킨다. 이때, SDN 스위치는 플로우 테이블의 오버플로우 공격에 취약하다. 패킷 처리를 위한 플로우 테이블이 엄청난 수의 비정상 패킷으로 가득차게 되어 정상 패킷을 처리하지 못하기 때문이다.A DoS attack that attacks by sending a large number of random packets exhausts the target's computing and network resources. In this case, the SDN switch is vulnerable to an overflow attack of the flow table. This is because the flow table for packet processing is filled with a huge number of abnormal packets, and normal packets cannot be processed.

플로우 테이블 오버플로우의 공격 대처 방법은 크게 플로우 테이블의 메모리를 늘리거나 플로우 테이블에 저장되는 플로우 룰(Flow Rule)의 수를 줄이는 것이다.A countermeasure against an attack of a flow table overflow is to greatly increase the memory of the flow table or reduce the number of flow rules stored in the flow table.

물리적 메모리를 늘리는 것은 스위치의 가격 상승을 가져올 뿐만 아니라 공격이 지속되면, 물리적 메모리의 한계에 도달하기 때문에 효과적인 접근 방법이 아니다. 따라서, 정해진 물리적 공간 내에서 효율적으로 플로우 룰의 개수를 관리하는 방법이 필요하다.Increasing physical memory is not an effective approach because not only will the price of the switch rise, but if the attack continues, the limit of physical memory will be reached. Accordingly, there is a need for a method for efficiently managing the number of flow rules within a predetermined physical space.

한국 등록특허번호 제10-2138199호Korean Patent No. 10-2138199

이와 같은 문제점을 해결하기 위하여, 본 발명은 패킷 개수인 히스토리를 기반으로 플로우 룰이 플로우 테이블 내에서 잔류하는 시간인 타임아웃을 동적으로 조절할 수 있는 플로우 테이블 오버플로우 공격 방어 시스템 및 방법을 제공하는데 그 목적이 있다.In order to solve such a problem, the present invention provides a flow table overflow attack defense system and method capable of dynamically adjusting a timeout, which is a time that a flow rule remains in a flow table, based on a history that is the number of packets. There is a purpose.

상기 목적을 달성하기 위한 본 발명의 특징에 따른 SDN을 위한 플로우 테이블 오버플로우 공격 방어 시스템은,A flow table overflow attack defense system for SDN according to a feature of the present invention for achieving the above object,

플로우 엔트리의 집합으로 구성되는 플로우 테이블을 구비하고, 유입되는 패킷을 처리하는 복수의 SDN(Software Defined Network) 스위치;a plurality of SDN (Software Defined Network) switches having a flow table composed of a set of flow entries and processing incoming packets;

상기 SDN 스위치로부터 모든 패킷을 수신하고, 상기 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하는 SDN 컨트롤러;an SDN controller receiving all packets from the SDN switch, generating the flow entry and transmitting it to the SDN switch, and receiving a flow table of each flow of packets from the SDN switch;

상기 SDN 컨트롤러로부터 플로우 테이블을 수신하고, 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하는 상태 모듈;a state module that receives a flow table from the SDN controller, analyzes a stat of a flow entry in the received flow table, and generates the analysis information;

상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 2D 카운팅 블룸 필터; 및a 2D counting bloom filter for counting the number of packets in each flow using the analysis information received from the status module; and

상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 해당 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 타임아웃을 동적으로 조절하는 타임아웃 계산 모듈을 포함하는 것을 특징으로 한다.and a timeout calculation module for dynamically adjusting a timeout, which is a time that the corresponding flow remains in a flow table for a predetermined time, based on a history that is the counted number of packets.

본 발명의 특징에 따른 SDN을 위한 플로우 테이블 오버플로우 공격 방어 방법은,A flow table overflow attack defense method for SDN according to a feature of the present invention,

복수의 SDN(Software Defined Network) 스위치와 이를 제어하는 SDN 컨트롤러를 구비한 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법에 있어서,In a flow table overflow attack defense method for SDN having a plurality of SDN (Software Defined Network) switches and an SDN controller controlling the same,

상기 SDN 컨트롤러는 상기 SDN 스위치로부터 모든 패킷을 수신하고, 상기 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하여 상태 모듈로 전송하는 단계;receiving, by the SDN controller, all packets from the SDN switch, generating the flow entry and transmitting it to the SDN switch, receiving a flow table of each flow of packets from the SDN switch and transmitting the flow table to a state module;

상기 상태 모듈은 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하여 2D 카운팅 블룸 필터로 전송하는 단계;The state module analyzes the stats of the flow entries in the received flow table, generates the analysis information, and transmits the analysis information to a 2D counting bloom filter;

상기 2D 카운팅 블룸 필터는 상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 단계; 및counting, by the 2D counting bloom filter, the number of packets in each flow using the analysis information received from the status module; and

상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 해당 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 절대 타임아웃(Hard Timeout) 또는 유휴 타임아웃(Idle Timeout)을 타임아웃 계산 모듈을 통해 동적으로 설정하는 단계를 포함하는 것을 특징으로 한다.Dynamically setting an absolute timeout (Hard Timeout) or an idle timeout (Idle Timeout), which is the time that the corresponding flow remains in the flow table for a certain period of time, through a timeout calculation module based on the history of the counted number of packets It is characterized in that it comprises a step.

전술한 구성에 의하여, 본 발명은 공격 플로우의 플로우 룰이 플로우 테이블에서 빨리 지워지도록 하고, 정상 플로우의 타임아웃을 상대적으로 길게 설정하여 플로우 룰의 재설치로 인한 오버헤드를 줄이는 효과가 있다.According to the above-described configuration, the present invention has the effect of reducing the overhead due to reinstallation of the flow rule by allowing the flow rule of the attack flow to be deleted quickly from the flow table, and by setting the timeout of the normal flow to be relatively long.

본 발명은 절대 타임아웃(Hard Timeout)과 유휴 타임아웃(Idle Timeout)을 모두 사용하여 성능을 극대화하여 플로우 테이블 오버플로우를 방지할 수 있는 효과가 있다.The present invention has the effect of preventing flow table overflow by maximizing performance by using both an absolute timeout and an idle timeout.

도 1은 본 발명의 실시예에 따른 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 2D 카운팅 블룸 필터의 자료 구조를 간략하게 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법을 나타낸 도면이다.
1 is a diagram showing the configuration of a flow table overflow attack defense system for SDN according to an embodiment of the present invention.
2 is a diagram schematically illustrating a data structure of a 2D counting bloom filter according to an embodiment of the present invention.
3 is a diagram illustrating a flow table overflow attack defense method for SDN according to an embodiment of the present invention.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

SDN은 일정한 룰으로 정의할 수 있는 패킷의 집합을 플로우(Flow)로 정의하고, 플로우의 처리 방법을 결정하여 플로우 룰(Flow Rule) 형태로 알리는 컨트롤 플레인(Control Plane)과 플로우 룰을 플로우 테이블에 저장하여 플로우 룰에 따라 패킷을 처리하는 데이터 플레인(Data Plane)으로 나뉜다.SDN defines a set of packets that can be defined by a certain rule as a flow, determines the flow processing method, and reports the control plane and flow rules in the form of a flow rule to the flow table. It is divided into a data plane that stores and processes packets according to flow rules.

SDN은 컨트롤 플레인과 데이터 플레인이 서로 메시지를 교환하여 동작한다. 이 메시지의 표준 프로토콜을 오픈플로우 프로토콜이라고 한다. 오픈플로우 프로토콜은 오픈소스로 공개되어 있으며, 대부분의 SDN에서 해당 프로토콜을 사용하여 메시지를 교환한다.SDN operates by exchanging messages between the control plane and the data plane. The standard protocol for this message is called the OpenFlow protocol. The OpenFlow protocol is open as an open source, and most SDNs use the protocol to exchange messages.

플로우 룰의 수를 낮은 수준으로 유지하기 위해서는 플로우 룰이 플로우 테이블(Flow Table)에 머무리는 시간을 조절하는 것이 방법이다.In order to keep the number of flow rules at a low level, it is a method to adjust the time the flow rules stay in the flow table.

본 발명은 플로우 룰이 플로우 테이블에 머무를 수 있는 시간인 타임아웃(Timeout)을 동적으로 조절하는 동적 타임아웃을 이용한다.The present invention uses a dynamic timeout that dynamically adjusts a timeout, which is a time that a flow rule can stay in a flow table.

본 발명은 플로우 룰이 플로우 테이블 내에서 머무르는 시간, 즉 타임아웃을 동적으로 조절하는 것이다.The present invention is to dynamically adjust the time a flow rule stays in a flow table, that is, a timeout.

도 1은 본 발명의 실시예에 따른 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템의 구성을 나타낸 도면이고, 도 2는 본 발명의 실시예에 따른 2D 카운팅 블룸 필터의 자료 구조를 간략하게 나타낸 도면이고, 도 3은 본 발명의 실시예에 따른 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법을 나타낸 도면이다.1 is a diagram showing the configuration of a flow table overflow attack defense system for SDN according to an embodiment of the present invention, and FIG. 2 is a diagram schematically showing a data structure of a 2D counting bloom filter according to an embodiment of the present invention. , FIG. 3 is a diagram illustrating a flow table overflow attack defense method for SDN according to an embodiment of the present invention.

본 발명의 실시예에 따른 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템(100)은 복수의 SDN 스위치(110), SDN 컨트롤러(120), 상태 모듈(130), 2D 카운팅 블룸 필터(140) 및 타임아웃 계산 모듈(150)을 포함한다.A flow table overflow attack defense system 100 for SDN according to an embodiment of the present invention includes a plurality of SDN switches 110 , SDN controller 120 , state module 130 , 2D counting bloom filter 140 , and time out calculation module 150 .

네트워크는 플로우(Flow)를 이용하여 통신 가능하다. 플로우는 패킷의 수신부터 송신까지 패킷에 대한 일련의 흐름을 의미한다.A network can communicate using a flow. A flow refers to a series of flows for a packet from reception to transmission.

SDN 스위치(110)는 패킷 처리에 필요한 모든 결정을 SDN 컨트롤러(120)로 질의하고, SDN 컨트롤러(120)는 네트워크 구성 및 SDN 스위치(110)를 통한 패킷 처리를 제어한다.The SDN switch 110 queries the SDN controller 120 for all decisions necessary for packet processing, and the SDN controller 120 controls network configuration and packet processing through the SDN switch 110 .

이러한 특징을 가진 네트워크를 소프트웨어 정의 네트워크(Software Defined Network, 이하 'SDN'이라 칭함)라 한다.A network having these characteristics is called a Software Defined Network (hereinafter referred to as 'SDN').

SDN 컨트롤러(120)는 SDN 스위치(110)를 중앙 집중 방식으로 관리한다. SDN 스위치(110)는 SDN 컨트롤러(120)의 제어를 받는 에지 스위치 또는 코어 스위치일 수 있다.The SDN controller 120 manages the SDN switch 110 in a centralized manner. The SDN switch 110 may be an edge switch or a core switch controlled by the SDN controller 120 .

SDN에서 입력 측 SDN 스위치(110)에 의한 패킷 수신으로부터 출력 측 SDN 스위치(110)에 의한 패킷 송신까지 패킷에 대한 일련의 흐름이 플로우가 된다.In SDN, a series of flows for packets from packet reception by the input-side SDN switch 110 to packet transmission by the output-side SDN switch 110 becomes a flow.

플로우는 오픈플로우(OpenFlow) 아키텍처의 특정 애플리케이션에 의해 정의될 수 있다.A flow may be defined by a specific application of the OpenFlow architecture.

호스트들(미도시)은 SDN 스위치(110)에 연결되며, SDN 스위치(110)는 SDN 컨트롤러(120)에 연결되고, 플로우 테이블(Flow Table)을 가진다. 플로우 테이블은 플로우 룰(매칭 조건)에 따라 패킷이 처리되어야 할 액션(처리 내용)을 정의한 플로우 엔트리(Flow Entry)를 가진 테이블이다.Hosts (not shown) are connected to the SDN switch 110 , and the SDN switch 110 is connected to the SDN controller 120 and has a flow table. The flow table is a table having a flow entry defining an action (processing content) to which a packet is to be processed according to a flow rule (matching condition).

SDN 컨트롤러(120)에서 정한 플로우 룰은 플로우 테이블에 저장된다. 플로우 테이블은 플로우 엔트리의 집합으로 구성되며, 플로우 엔트리는 매칭 필드(Matching Field), 액션(Action), 스탯(Stats)으로 구성된다.The flow rule determined by the SDN controller 120 is stored in the flow table. A flow table is composed of a set of flow entries, and a flow entry is composed of a matching field, an action, and stats.

플로우 엔트리의 플로우 룰은 플로우 엔트리 단위로 저장되고 관리된다.Flow rules of flow entries are stored and managed in units of flow entries.

매칭 필드는 패킷의 정보를 저장하고, 액션은 해당 룰에 매칭될 경우, 어떠한 행동을 해야 하는지 정의되며, 스탯은 패킷이 매칭된 개수에 대한 정보를 저장한다.The matching field stores packet information, the action defines what action to take when the corresponding rule is matched, and the stat stores information on the number of packets matched.

플로우 엔트리에는 오픈플로우 아키텍처에서 정의한 룰과 액션이 정의된다.The rules and actions defined in the OpenFlow architecture are defined in the flow entry.

플로우 엔트리의 플로우 룰은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 주소(Destination Address), 송신처 주소(Source Address), 수신처 포트(Destination Port), 송신처 포트(Source Port) 등에 기초하여 정의되고 식별 가능하다.As defined in OpenFlow, the flow rules of flow entries include destination address, source address, destination port, and destination port ( Source Port), etc., can be defined and identified.

플로우 엔트리의 액션은 오픈플로우에서 정의한 바와 같이 "특정한 포트에 출력한다(OUT)", "폐기한다(DROP)" 등과 같은 동작을 나타낸다. 예를 들어, SDN 스위치(110)는 플로우 엔트리의 액션에 출력 포트의 식별 데이터가 나타나 있으면 이 식별 데이터에 대응하는 포트에 패킷을 출력하고, 출력 포트의 식별 데이터가 나타나 있지 않으면 패킷을 폐기한다. SDN 스위치(110)는 플로우 테이블에 등록된 플로우 엔트리의 룰에 따른 패킷 군에 플로우 엔트리의 액션을 수행한다.The action of a flow entry represents an action such as “output to a specific port (OUT)” and “drop (DROP)” as defined in OpenFlow. For example, the SDN switch 110 outputs a packet to the port corresponding to the identification data when the identification data of the output port appears in the action of the flow entry, and discards the packet when the identification data of the output port does not appear. The SDN switch 110 performs an action of a flow entry on a packet group according to a rule of a flow entry registered in the flow table.

SDN 컨트롤러(120)는 플로우 엔트리를 생성하여 SDN 스위치(110)에 전송하고, SDN 스위치(110)는 전송받은 플로우 엔트리를 이용하여 플로우 테이블을 구성한다.The SDN controller 120 generates a flow entry and transmits it to the SDN switch 110 , and the SDN switch 110 configures a flow table using the received flow entry.

SDN 스위치(110)의 플로우 테이블은 TCAM(Ternary Content Addressable Memory) 등과 같은 메모리의 크기 제약 또는 버퍼 오버플로우를 방지하기 위하여 최대 크기가 정해져 있다고 가정한다.It is assumed that the maximum size of the flow table of the SDN switch 110 is determined in order to prevent a buffer overflow or size restriction of a memory such as a ternary content addressable memory (TCAM).

본 발명은 SDN 환경에서 플로우 테이블 오버플로우 공격을 방어하기 위해서 SDN 컨트롤러(120)와 연동하는 상태 모듈(130), 타임아웃 계산 모듈(150) 및 2D 카운팅 블룸 필터(140)를 포함한다.The present invention includes a state module 130 , a timeout calculation module 150 , and a 2D counting bloom filter 140 that interwork with the SDN controller 120 to prevent a flow table overflow attack in an SDN environment.

SDN 스위치(110)는 패킷이 수신되면, 패킷 인(Packet-in) 메시지를 패킷 정보와 함께 SDN 컨트롤러(120)로 전송한다.When a packet is received, the SDN switch 110 transmits a packet-in message to the SDN controller 120 together with packet information.

SDN 스위치(110)는 모든 패킷을 SDN 컨트롤러(120)로 전송하고, 다시 SDN 컨트롤러(120)에서 SDN 스위치(110)의 플로우 테이블에 전송 정보가 저장(기록)된다.The SDN switch 110 transmits all packets to the SDN controller 120 , and the transmission information is stored (recorded) in the flow table of the SDN switch 110 in the SDN controller 120 again.

SDN 컨트롤러(120)는 수신된 패킷에 대한 플로우 룰을 정의하여 Flow-mod 메시지에 포함시켜 패킷 아웃(Packet-out) 메시지와 함께 SDN 스위치(110)로 전송한다.The SDN controller 120 defines a flow rule for the received packet, includes it in the Flow-mod message, and transmits it to the SDN switch 110 together with a packet-out message.

SDN 스위치(110)는 Flow-mod 메시지의 내용을 분석하여 플로우 테이블에 저장하게 되고, 유입되는 패킷을 처리한다.The SDN switch 110 analyzes the content of the Flow-mod message, stores it in the flow table, and processes the incoming packet.

SDN 컨트롤러(120)는 컨트롤러가 관리하는 SDN 스위치(110)에 패킷이 수신되면, 해당 패킷의 헤더를 분석하여 패킷을 위한 플로우 엔트리가 플로우 테이블에 존재하는 경우, 해당 패킷을 플로우 엔트리에 따라 전송한다. 하지만, 해당 패킷에 대한 플로우 엔트리가 플로우 테이블에 존재하지 않으면, SDN 스위치(110)는 SDN 컨트롤러(120)에 해당 패킷의 처리를 요청한다.When a packet is received by the SDN switch 110 managed by the controller, the SDN controller 120 analyzes the header of the packet and, if a flow entry for the packet exists in the flow table, transmits the packet according to the flow entry. . However, if a flow entry for the corresponding packet does not exist in the flow table, the SDN switch 110 requests the SDN controller 120 to process the corresponding packet.

SDN 컨트롤러(120)은 새로운 플로우 셋업 요청에 대해 SDN 스위치(110)에 플로우 엔트리 설치 시 엔트리의 타임아웃을 조절할 수 있다.The SDN controller 120 may adjust a timeout of the entry when the flow entry is installed in the SDN switch 110 in response to a new flow setup request.

SDN 컨트롤러(120)는 SDN 스위치(110)의 플로우 테이블을 추출하여 상태 모듈(130)로 전송한다.The SDN controller 120 extracts the flow table of the SDN switch 110 and transmits it to the state module 130 .

SDN 컨트롤러(120)는 SDN 스위치(110)로부터 모든 패킷을 수신하고, 플로우 엔트리를 생성하여 SDN 스위치(110)에 전송하며, SDN 스위치(110)로부터 패킷의 각 플로우의 플로우 테이블을 수신한다.The SDN controller 120 receives all packets from the SDN switch 110 , creates a flow entry and transmits it to the SDN switch 110 , and receives a flow table of each flow of packets from the SDN switch 110 .

상태 모듈(130)은 SDN 컨트롤러(120)로부터 수신한 각 플로우 테이블을 포함하여 플로우에 관련된 정보를 2D 카운팅 블룸 필터(140)에 저장한다.The state module 130 stores flow-related information including each flow table received from the SDN controller 120 in the 2D counting bloom filter 140 .

상태 모듈(130)은 플로우 테이블에서 플로우 엔트리의 스탯을 분석하고, 그 분석 정보를 2D 카운팅 블룸 필터(140)로 전송한다.The state module 130 analyzes the stats of the flow entries in the flow table, and transmits the analysis information to the 2D counting bloom filter 140 .

SDN 컨트롤러(120)는 악의적인 사용자의 경우, 악의적인 공격 플로우와 정상 플로우에 따라 절대 타임아웃과 유휴 타임아웃으로 타임아웃(Timeout)을 동적으로 조절할 수 있다.In the case of a malicious user, the SDN controller 120 may dynamically adjust a timeout to an absolute timeout and an idle timeout according to a malicious attack flow and a normal flow.

물론, 본 발명은 공격 플로우와 정상 플로우를 명시적으로 구별하지 않으며, 2D 카운팅 블룸 필터(140)에 기록된 히스토리에 따라 타임아웃을 결정하며, 결정된 타임아웃에 따라 공격 플로우가 자연스럽게 더 빨리 플로우 테이블에서 사라지는 구조이다.Of course, the present invention does not explicitly distinguish an attack flow from a normal flow, and determines a timeout according to the history recorded in the 2D counting bloom filter 140, and according to the determined timeout, the attack flow naturally speeds up the flow table structure that disappears from

2D 카운팅 블룸 필터(140)는 네트워크의 플로우에 대한 패킷 개수 기록을 저장하기 위해서 사용되는 자료 구조이고, k개의 해시 함수와 길이 m을 갖는 배열로 이루어져 있으며, 삽입 연산과 체크 연산을 갖는다.The 2D counting bloom filter 140 is a data structure used to store a record of the number of packets for a flow in a network, consists of k hash functions and an array having a length of m, and has an insert operation and a check operation.

삽입 연산은 상태 모듈(130)에서 플로우의 송신자 MAC 주소와 수신자 MAC 주소를 해시함수의 입력으로 사용하고, 해시함수의 결과값을 이용하여 2D 카운팅 블룸 필터(140)의 셀들을 특정한다.The insertion operation uses the sender MAC address and the receiver MAC address of the flow as inputs of the hash function in the state module 130, and specifies the cells of the 2D counting bloom filter 140 using the result value of the hash function.

체크 연산은 삽입 연산과 동일한 방법을 주어진 플로우에 해당하는 셀을 찾아 그 값을 읽어온다.The check operation uses the same method as the insert operation to find the cell corresponding to the given flow and reads its value.

2D 카운팅 블룸 필터(140)는 기존의 블룸 필터와 다르게 송신자 MAC(Media Access Control)과 수신자 MAC을 각각 행과 열의 2차원으로 구성하고, 각 원소의 횟수를 기록할 수 있도록 1bit 이상의 메모리로 형성한다.The 2D counting bloom filter 140 configures the sender MAC (Media Access Control) and the receiver MAC in two dimensions of rows and columns, respectively, unlike the existing bloom filters, and forms a memory of 1 bit or more so that the number of each element can be recorded. .

2D 카운팅 블룸 필터(140)는 종래의 블룸 필터와 달리 패킷 개수를 저장하기 위해 하나의 셀이 8bit이고, 각각의 셀이 발신지 MAC 주소와 수신지 MAC 주소를 이용하여 플로우를 나타내는 2차원으로 구성되어 있다.The 2D counting bloom filter 140 is different from the conventional bloom filter, where one cell is 8 bits to store the number of packets, and each cell uses a source MAC address and a destination MAC address to indicate a flow in two dimensions. there is.

2D 카운팅 블룸 필터(140)는 상태 모듈(130)로부터 수신되는 플로우의 헤더를 분석하여 소스 MAC과 목적지 MAC, 패킷 개수를 읽어오고, 소스 MAC과 목적지 MAC를 행과 열에 해당하는 위치의 셀에 해당 플로우의 패킷 개수를 저장한다.The 2D counting bloom filter 140 reads the source MAC, destination MAC, and the number of packets by analyzing the header of the flow received from the status module 130, and corresponds to the cell at the position corresponding to the row and column for the source MAC and the destination MAC. Stores the number of packets in the flow.

2D 카운팅 블룸 필터(140)는 이미 동일한 소스 MAC과 목적지 MAC가 검색되는 경우, 해당 셀에 플로우의 패킷 개수를 누적하여 카운트한다.The 2D counting bloom filter 140 accumulates and counts the number of packets of a flow in a corresponding cell when the same source MAC and destination MAC are already found.

2D 카운팅 블룸 필터(140)는 상태 모듈(130)로부터 플로우 테이블을 수신하여 저장하는데, SDN 컨트롤러(120)에 수신되는 모든 플로우를 모두 기록한다. 본 발명의 SDN 컨트롤러(120)는 유입되는 플로우를 플로우의 히스토리를 기반으로 판단할 수 있다.The 2D counting bloom filter 140 receives and stores the flow table from the state module 130 , and records all flows received in the SDN controller 120 . The SDN controller 120 of the present invention may determine the incoming flow based on the flow history.

다시 말해, 어떤 플로우가 들어왔을 때 플로우의 기록을 찾는 작업은 큰 저장 공간과 긴 룩업 타임을 발생시키기 때문에 이러한 문제점을 해결하기 위하여 개선된 구조의 2D 카운팅 블룸 필터(140)를 개발했다.In other words, since the operation of finding a record of a flow when a certain flow comes in causes a large storage space and a long lookup time, the 2D counting bloom filter 140 with an improved structure was developed to solve these problems.

2D 카운팅 블룸 필터(140)는 상태 모듈(130)로부터 수신된 플로우 엔트리의 분석 정보를 이용하여 플로우 룰에서 매칭된 패킷 개수를 카운팅한다.The 2D counting bloom filter 140 counts the number of packets matched in the flow rule using the analysis information of the flow entry received from the status module 130 .

따라서, 타임아웃 계산 모듈(150)은 2D 카운팅 블룸 필터(140)와 연동하여 카운팅된 패킷 개수를 추출할 수 있게 된다.Accordingly, the timeout calculation module 150 can extract the counted number of packets in conjunction with the 2D counting bloom filter 140 .

타임아웃 계산 모듈(150)은 2D 카운팅 블룸 필터(140)로부터 수신된 각각의 플로우의 길이를 수신하고, 전체 플로우의 길이의 평균을 계산한다.The timeout calculation module 150 receives the length of each flow received from the 2D counting bloom filter 140 and calculates an average of the lengths of all flows.

타임아웃 계산 모듈(150)은 전체 플로우 길이의 평균과, 2D 카운팅 블룸 필터(140)에 기록된 플로우 룰에 매칭된 패킷 개수에 비례한 값을 이용하여 타임아웃(절대 타임아웃 또는 유휴 타임아웃 등)을 계산한다.The timeout calculation module 150 uses a value proportional to the average of the total flow length and the number of packets matching the flow rule recorded in the 2D counting bloom filter 140 to timeout (absolute timeout or idle timeout, etc.) ) is calculated.

타임아웃은 해당 플로우 엔트리가 플로우 테이블에서 제거되기 이전까지 잔류할 수 있는 시간을 의미한다.The timeout means the amount of time that can remain before the corresponding flow entry is removed from the flow table.

SDN 컨트롤러(120)는 타임아웃 계산 모듈(150)로부터 계산된 타임아웃을 이용하여 해당 플로우가 SDN 스위치(110)의 플로우 테이블에서 제거되는 시점을 제어할 수 있다.The SDN controller 120 may control when the corresponding flow is removed from the flow table of the SDN switch 110 by using the timeout calculated by the timeout calculation module 150 .

본 발명의 타임아웃은 절대 타임아웃(Hard Timeout)과 유휴 타임아웃(Idle Timeout)을 사용한다.The timeout of the present invention uses an absolute timeout (Hard Timeout) and an idle timeout (Idle Timeout).

절대 타임아웃은 플로우 엔트리가 플로우 테이블에 설치된 직후부터 타이머가 작동하여 지정된 시간이 지나면 플로우 엔트리가 삭제되는 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 절대적인 시간을 의미한다.The absolute timeout means an absolute time during which a flow entry from which a flow entry is deleted can remain in the flow table after a specified time elapses as a timer starts immediately after the flow entry is installed in the flow table.

절대 타임아웃은 한 번 설치된 플로우가 불필요하게 재설치 되는 일이 없도록 일정 시간동안 플로우 테이블에 머무르도록 하는 역할을 한다.Absolute timeout serves to stay in the flow table for a certain period of time so that a flow once installed is not unnecessarily reinstalled.

절대 타임아웃은 평균 타임아웃 + ceil(log2(패킷 개수)) + 1이다. 히스토리(패킷 개수)가 로그함수의 입력으로 사용되고, 그 결과값이 평균 타임아웃에 더해진다.The absolute timeout is the average timeout + ceil(log 2 (number of packets)) + 1. The history (number of packets) is used as input to the log function, and the result is added to the average timeout.

절대 타임아웃은 최소한 평균 타임아웃만큼의 시간을 보장받고, 이에 더하여 히스토리(패킷 개수)에 따른 시간을 추가로 부여받는 것이다.The absolute timeout is guaranteed at least as much time as the average timeout, and in addition, additional time is given according to the history (number of packets).

유휴 타임아웃은 플로우 테이블에 있는 플로우 엔트리를 패킷이 마지막으로 지나간 순간부터 타이머가 작동하고, 기설정된 시간동안 플로우 룰을 패킷이 참조하지 않으면, 해당 플로우 룰이 삭제되는데, 즉 더 이상 플로우 엔트리가 사용되지 않았을 때 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 시간을 의미한다.In the idle timeout, a timer starts from the moment the packet last passed a flow entry in the flow table, and if a packet does not refer to a flow rule for a preset period of time, the corresponding flow rule is deleted, that is, the flow entry is no longer used. It means the length of time that a flow entry can remain in the flow table when it is not.

유휴 타임아웃은 설치된 플로우가 아무 일도 하지 않고 자리만 차지하고 있는 것을 방지하는 역할을 한다.The idle timeout serves to prevent installed flows from taking up space doing nothing.

유휴 타임아웃은 ceil(log2(패킷 개수 / 평균 타임아웃)이다. (히스토리 / 평균 타임아웃)이 로그 함수의 입력으로 사용된다.Idle timeout is ceil(log 2 (number of packets / average timeout). (history / average timeout) is used as input to the log function.

결과적으로 히스토리 또는 (히스토리 / 평균 타임아웃)이 로그함수의 입력으로 사용되므로 히스토리 또는 (히스토리 / 평균 타임아웃)에 비례한 값이라는 표현을 사용한다.As a result, history or (history / average timeout) is used as the input of the log function, so the expression of a value proportional to history or (history / average timeout) is used.

따라서, 절대 타임아웃은 유휴 타임아웃보다 긴 잔류 시간을 갖는다.Thus, the absolute timeout has a longer residence time than the idle timeout.

타임아웃 계산 모듈(150)은 전체 플로우 길이의 평균과, 플로우 룰에 매칭된 패킷 개수에 비례한 값을 이용하여 타임아웃을 계산하는데, 모든 플로우에 대하여 평균 타임아웃이 존재하는지 판단한다(S100). 여기서, 평균 타임아웃은 플로우 엔트리가 삭제되는 평균적인 타임아웃의 시간을 나타낸다.The timeout calculation module 150 calculates a timeout by using the average of the total lengths of flows and a value proportional to the number of packets matched to the flow rule, and determines whether an average timeout exists for all flows (S100) . Here, the average timeout represents an average timeout for which a flow entry is deleted.

타임아웃의 계산을 히스토리를 사용하지 않고, 평균 타임아웃을 기초로 하는 것은 네트워크가 정상적인 상태일 때, 플로우는 일정 시간동안 플로우 테이블에 머무는 것이 일반적이다.The calculation of the timeout is based on the average timeout without using the history. When the network is in a normal state, it is common for the flow to stay in the flow table for a certain period of time.

히스토리만을 근거로 타임아웃을 설정하면, 처음 들어오는 정상적인 정상 플로우는 히스토리가 없기 때문에 매우 짧은 절대 타임아웃이 설정될 수 있다. 이는 빈번한 패킷 인(Packet-in) 메시지가 발생하여 네트워크에 부담을 줄 수 있다.If the timeout is set based only on the history, a very short absolute timeout can be set because the first normal flow has no history. This may cause frequent packet-in messages, which may burden the network.

그러나 평균 타임아웃을 기초로 타임아웃을 설정하면, 처음 들어오는 플로우도 평균적인 타임아웃의 시간을 가지므로 플로우가 일정 시간동안 플로우 테이블에 머무를 수 있다.However, if the timeout is set based on the average timeout, the first incoming flow also has an average timeout, so that the flow can stay in the flow table for a certain period of time.

타임아웃 계산 모듈(150)은 평균 타임아웃이 존재하지 않는다고 판단되면, 모든 플로우의 타임아웃을 절대 타임아웃으로 설정한다(S101).When it is determined that the average timeout does not exist, the timeout calculation module 150 sets the timeouts of all flows as absolute timeouts (S101).

SDN 컨트롤러(120)는 설정된 절대 타임아웃으로 해당 플로우가 SDN 스위치(110)의 플로우 테이블에서 제거되도록 제어한다.The SDN controller 120 controls the corresponding flow to be removed from the flow table of the SDN switch 110 with a set absolute timeout.

타임아웃 계산 모듈(150)은 평균 타임아웃이 존재하는 경우, 2D 카운팅 블룸 필터(140)에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단한다(S102).When an average timeout exists, the timeout calculation module 150 determines the packet history according to the presence or absence of the number of packets of the flow stored in the 2D counting bloom filter 140 ( S102 ).

타임아웃 계산 모듈(150)은 패킷 히스토리가 존재하지 않는 경우, 모든 플로우에 대하여 절대 타임아웃을 평균 타임아웃으로 설정하고(S105), 유휴 타임아웃을 1로 설정한다(S106).When there is no packet history, the timeout calculation module 150 sets the absolute timeout as the average timeout for all flows (S105) and sets the idle timeout to 1 (S106).

타임아웃 계산 모듈(150)은 패킷 히스토리가 존재한다고 판단하는 경우, 평균 타임아웃 + 플로우 룰에 매칭된 패킷 개수(히스토리)에 비례한 값을 절대 타임아웃으로 설정한다(S103).When determining that the packet history exists, the timeout calculation module 150 sets a value proportional to the average timeout + the number of packets (history) matching the flow rule as the absolute timeout ( S103 ).

타임아웃 계산 모듈(150)은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 >= 1인지 판단한다(S104).The timeout calculation module 150 determines whether the value obtained by dividing the number of packets (history) matched with the flow rule by the average timeout is >= 1 ( S104 ).

타임아웃 계산 모듈(150)은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 >= 1이 아닌 경우, 유휴 타임아웃을 1로 설정한다(S106).The timeout calculation module 150 sets the idle timeout to 1 when the value obtained by dividing the number of packets (history) matched with the flow rule by the average timeout is not >=1 (S106).

타임아웃 계산 모듈(150)은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 >= 1인 경우, (플로우 룰에 매칭된 패킷 개수(히스토리)/평균 타임아웃)에 비례한 값으로 유휴 타임아웃으로 설정한다(S107).When the value obtained by dividing the number of packets (history) matched with the flow rule by the average timeout is >= 1, the timeout calculation module 150 is proportional to (the number of packets matched to the flow rule (history)/average timeout) A value is set as an idle timeout (S107).

SDN 컨트롤러(120)는 설정된 유휴 타임아웃으로 해당 플로우가 SDN 스위치(110)의 플로우 테이블에서 제거되도록 제어한다.The SDN controller 120 controls the corresponding flow to be removed from the flow table of the SDN switch 110 due to the set idle timeout.

공격 플로우가 절대 타임아웃을 평균 타임아웃으로 설정하게 되면 불필요하게 긴 시간이 설정되기 때문에 유휴 타임아웃으로 설정하여 플로우 테이블에서 빨리 제거된다. 즉, 공격 플로우는 유휴 타임아웃으로 설정하여 플로우 테이블 오버플로우를 방지할 수 있다. 여기서, 유휴 타임아웃은 절대 타임아웃의 범위 내에서 설정된다.If the attack flow sets the absolute timeout as the average timeout, an unnecessarily long time is set, so it is quickly removed from the flow table by setting it as an idle timeout. That is, the attack flow can be set to an idle timeout to prevent flow table overflow. Here, the idle timeout is set within the range of the absolute timeout.

정상 플로우의 경우, 더 많은 패킷 개수가 기록되므로 정상 플로우에 더 긴 타임아웃을 부여해야 한다.In the case of a normal flow, a longer timeout should be given to the normal flow because more packets are recorded.

SDN 컨트롤러(120)는 유휴 타임아웃 또는 절대 타임아웃의 타임아웃으로 동적으로 조절하여 해당 플로우가 SDN 스위치(110)의 플로우 테이블에서 제거되도록 제어한다.The SDN controller 120 controls the corresponding flow to be removed from the flow table of the SDN switch 110 by dynamically adjusting the idle timeout or absolute timeout timeout.

타임아웃이 지난 만료된 플로우 룰은 히스토리에 따라 타임아웃이 계산되는 일련의 과정을 다시 거쳐 SDN 스위치(110)로 전달된다.The expired flow rule after the timeout is transferred to the SDN switch 110 again through a series of processes in which a timeout is calculated according to the history.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention as defined in the following claims are also provided. is within the scope of the right.

100: 플로우 테이블 오버플로우 공격 방어
110: SDN 스위치
120: SDN 컨트롤러
130: 상태 모듈
140: 2D 카운팅 블룸 필터
150: 타임아웃 계산 모듈 및
100: Flow table overflow attack protection
110: SDN switch
120: SDN controller
130: status module
140: 2D counting bloom filter
150: timeout calculation module and

Claims (14)

플로우 엔트리의 집합으로 구성되는 플로우 테이블을 구비하고, 유입되는 패킷을 처리하는 복수의 SDN(Software Defined Network) 스위치;
상기 SDN 스위치로부터 모든 패킷을 수신하고, 상기 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하는 SDN 컨트롤러;
상기 SDN 컨트롤러로부터 플로우 테이블을 수신하고, 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하는 상태 모듈;
상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 2D 카운팅 블룸 필터; 및
상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 각 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 타임아웃을 동적으로 조절하는 타임아웃 계산 모듈을 포함하고,
상기 2D 카운팅 블룸 필터는 송신자 MAC(Media Access Control)과 수신자 MAC을 행과 열의 2차원으로 구성하여 플로우를 나타내고, 패킷 개수를 카운트하여 저장하기 위해 각각의 하나의 셀이 1bit 이상의 메모리로 형성하고,
상기 2D 카운팅 블룸 필터는,
네트워크 플로우에 대한 패킷 개수 기록을 저장하기 위해, k개의 해시 함수와 길이 m을 갖는 배열로 형성되며, 삽입 연산과 체크 연산을 포함하고,
상기 삽입 연산은,
상기 상태 모듈에서의 플로우에 포함된 송신자 MAC 주소와 수신자 MAC 주소를 해시함수의 입력으로 사용하여 상기 해시함수의 결과 값을 산출하고, 상기 해시함수의 결과 값을 이용하여 상기 2D 카운팅 블룸 필터의 셀을 특정하는 연산이고,
상기 체크 연산은,
상기 삽입 연산과 동일하게 주어진 플로우에 해당하는 상기 2D 카운팅 블룸 필터의 셀을 찾아 셀에 저장된 값을 읽는 연산인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
a plurality of SDN (Software Defined Network) switches having a flow table composed of a set of flow entries and processing incoming packets;
an SDN controller that receives all packets from the SDN switch, generates the flow entry and transmits it to the SDN switch, and receives a flow table of each flow of packets from the SDN switch;
a state module that receives a flow table from the SDN controller, analyzes a stat of a flow entry in the received flow table, and generates the analysis information;
a 2D counting bloom filter for counting the number of packets in each flow using the analysis information received from the status module; and
a timeout calculation module for dynamically adjusting a timeout, which is a time that each flow remains in a flow table for a predetermined time, based on a history that is the counted number of packets;
The 2D counting bloom filter represents a flow by composing a sender MAC (Media Access Control) and a receiver MAC in two dimensions of rows and columns, and each cell is formed with a memory of 1 bit or more to count and store the number of packets,
The 2D counting bloom filter,
In order to store a record of the number of packets for a network flow, it is formed in an array with k hash functions and length m, and includes an insert operation and a check operation,
The insertion operation is
The result value of the hash function is calculated using the sender MAC address and the receiver MAC address included in the flow in the state module as inputs of the hash function, and the cell of the 2D counting bloom filter using the result value of the hash function is an operation that specifies
The check operation is
A flow table overflow attack defense system for SDN, characterized in that it is an operation that finds a cell of the 2D counting bloom filter corresponding to a given flow and reads a value stored in the cell, as in the insertion operation.
제1항에 있어서,
상기 타임아웃은 절대 타임아웃(Hard Timeout) 또는 유휴 타임아웃(Idle Timeout)인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
According to claim 1,
The timeout is an absolute timeout (Hard Timeout) or an idle timeout (Idle Timeout) flow table overflow attack defense system for SDN, characterized in that.
삭제delete 제2항에 있어서,
상기 타임아웃 계산 모듈은 상기 절대 타임아웃을 플로우 엔트리가 삭제되는 평균적인 타임아웃의 시간을 나타내는 평균 타임아웃 + ceil(log2(패킷 개수)) + 1로 설정하고, 상기 유휴 타임아웃을 ceil(log2(패킷 개수 / 평균 타임아웃)로 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
3. The method of claim 2,
The timeout calculation module sets the absolute timeout to an average timeout representing an average timeout for which a flow entry is deleted + ceil(log 2 (number of packets)) + 1, and sets the idle timeout to ceil( A flow table overflow attack defense system for SDN, characterized in that it is set to log 2 (number of packets / average timeout).
제4항에 있어서,
상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하고, 상기 패킷 히스토리가 존재하지 않는 경우, 모든 플로우에 대하여 상기 절대 타임아웃을 평균 타임아웃으로 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
5. The method of claim 4,
The timeout calculation module determines the packet history according to the presence or absence of the number of packets of the flows stored in the 2D counting bloom filter, and when the packet history does not exist, the absolute timeout for all flows as an average timeout Flow table overflow attack defense system for SDN, characterized in that setting.
제4항에 있어서,
상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하고, 상기 패킷 히스토리가 존재하는 경우, 해당 플로우를 평균 타임아웃 + 플로우 룰에 매칭된 패킷 개수(히스토리)에 비례한 값으로 절대 타임아웃을 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
5. The method of claim 4,
The timeout calculation module determines the packet history according to the presence or absence of the number of packets of the flow stored in the 2D counting bloom filter, and if the packet history exists, calculates the corresponding flow average timeout + the number of packets matched to the flow rule A flow table overflow attack defense system for SDN, characterized in that the absolute timeout is set to a value proportional to (history).
제6항에 있어서,
상기 타임아웃 계산 모듈은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 >= 1인 경우, 해당 플로우를 (플로우 룰에 매칭된 패킷 개수(히스토리)/평균 타임아웃)에 비례한 값으로 유휴 타임아웃을 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템.
7. The method of claim 6,
When the value obtained by dividing the number of packets (history) matched by the flow rule by the average timeout is >= 1, the timeout calculation module calculates the flow to (number of packets (history)/average timeout) matched to the flow rule. A flow table overflow attack defense system for SDN, characterized in that the idle timeout is set to a proportional value.
복수의 SDN(Software Defined Network) 스위치와 이를 제어하는 SDN 컨트롤러를 구비한 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법에 있어서,
상기 SDN 컨트롤러는 상기 SDN 스위치로부터 모든 패킷을 수신하고, 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하여 상태 모듈로 전송하는 단계;
상기 상태 모듈은 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하여 2D 카운팅 블룸 필터로 전송하는 단계;
상기 2D 카운팅 블룸 필터는 상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 단계; 및
상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 각 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 절대 타임아웃(Hard Timeout) 또는 유휴 타임아웃(Idle Timeout)을 타임아웃 계산 모듈을 통해 동적으로 설정하는 단계를 포함하고,
상기 2D 카운팅 블룸 필터는 송신자 MAC(Media Access Control)과 수신자 MAC을 행과 열의 2차원으로 구성하여 플로우를 나타내고, 패킷 개수를 카운트하여 저장하기 위해 각각의 하나의 셀이 1bit 이상의 메모리로 형성하고,
상기 2D 카운팅 블룸 필터를 이용하여 패킷 개수인 히스토리를 저장하여 검색할 수 있는 단계를 더 포함하고,
상기 2D 카운팅 블룸 필터는,
네트워크 플로우에 대한 패킷 개수 기록을 저장하기 위해, k개의 해시 함수와 길이 m을 갖는 배열로 형성되며, 삽입 연산과 체크 연산을 포함하고,
상기 삽입 연산은,
상기 상태 모듈에서의 플로우에 포함된 송신자 MAC 주소와 수신자 MAC 주소를 해시함수의 입력으로 사용하여 상기 해시함수의 결과 값을 산출하고, 상기 해시함수의 결과 값을 이용하여 상기 2D 카운팅 블룸 필터의 셀을 특정하는 연산이고,
상기 체크 연산은,
상기 삽입 연산과 동일하게 주어진 플로우에 해당하는 상기 2D 카운팅 블룸 필터의 셀을 찾아 셀에 저장된 값을 읽는 연산인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
In a flow table overflow attack defense method for SDN having a plurality of SDN (Software Defined Network) switches and an SDN controller controlling the same,
receiving, by the SDN controller, all packets from the SDN switch, generating a flow entry and transmitting it to the SDN switch, receiving a flow table of each flow of packets from the SDN switch, and transmitting it to a state module;
The state module analyzes the stats of the flow entries in the received flow table, generates the analysis information, and transmits the analysis information to a 2D counting bloom filter;
counting, by the 2D counting bloom filter, the number of packets in each flow using the analysis information received from the state module; and
Based on the history of the counted number of packets, the absolute timeout or idle timeout, which is the time each flow remains in the flow table for a certain period of time, is dynamically set through the timeout calculation module comprising steps;
The 2D counting bloom filter represents a flow by composing a sender MAC (Media Access Control) and a receiver MAC in two dimensions of rows and columns, and each cell is formed with a memory of 1 bit or more to count and store the number of packets,
The method further comprising the step of storing and retrieving a history that is the number of packets using the 2D counting bloom filter,
The 2D counting bloom filter,
In order to store a record of the number of packets for a network flow, it is formed in an array with k hash functions and length m, and includes an insert operation and a check operation,
The insertion operation is
The result value of the hash function is calculated using the sender MAC address and the receiver MAC address included in the flow in the state module as inputs of the hash function, and the cell of the 2D counting bloom filter using the result value of the hash function is an operation that specifies
The check operation is
The method for preventing a flow table overflow attack for SDN, characterized in that it is an operation that finds a cell of the 2D counting bloom filter corresponding to a given flow and reads a value stored in the cell, as in the insertion operation.
삭제delete 제8항에 있어서,
상기 타임아웃 계산 모듈은 상기 절대 타임아웃을 플로우 엔트리가 삭제되는 평균적인 타임아웃의 시간을 나타내는 평균 타임아웃 + ceil(log2(패킷 개수)) + 1로 설정하고, 상기 유휴 타임아웃을 ceil(log2(패킷 개수 / 평균 타임아웃)로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
9. The method of claim 8,
The timeout calculation module sets the absolute timeout to an average timeout representing an average timeout for which a flow entry is deleted + ceil(log 2 (number of packets)) + 1, and sets the idle timeout to ceil( Flow table overflow attack defense method for SDN, characterized in that it further comprises the step of setting to log 2 (number of packets / average timeout).
제10항에 있어서,
상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하는 단계; 및
상기 패킷 히스토리가 존재하지 않는 경우, 모든 플로우에 대하여 상기 절대 타임아웃을 평균 타임아웃으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
11. The method of claim 10,
determining, by the timeout calculation module, a packet history according to the presence or absence of the number of packets of a flow stored in the 2D counting bloom filter; and
The method for preventing a flow table overflow attack for SDN further comprising the step of setting the absolute timeout to an average timeout for all flows when the packet history does not exist.
제10항에 있어서,
상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하는 단계; 및
상기 패킷 히스토리가 존재하는 경우, 해당 플로우를 평균 타임아웃 + 플로우 룰에 매칭된 패킷 개수(히스토리)에 비례한 값으로 절대 타임아웃을 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
11. The method of claim 10,
determining, by the timeout calculation module, a packet history according to the presence or absence of the number of packets of a flow stored in the 2D counting bloom filter; and
If the packet history exists, setting the absolute timeout to a value proportional to the average timeout + the number of packets (history) matched to the flow rule for the corresponding flow. Flow table for SDN, characterized in that it further comprises How to defend against overflow attacks.
제12항에 있어서,
상기 타임아웃 계산 모듈은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 >= 1인 경우, 해당 플로우를 (플로우 룰에 매칭된 패킷 개수(히스토리)/평균 타임아웃)에 비례한 값으로 유휴 타임아웃을 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
13. The method of claim 12,
When the value obtained by dividing the number of packets (history) matched by the flow rule by the average timeout is >= 1, the timeout calculation module calculates the flow to (number of packets (history)/average timeout) matched to the flow rule. Flow table overflow attack defense method for SDN, characterized in that it further comprises the step of setting the idle timeout to a proportional value.
제10항에 있어서,
상기 SDN 컨트롤러는 상기 평균 타임아웃이 존재하지 않는 경우, 해당 플로우를 상기 절대 타임아웃으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법.
11. The method of claim 10,
The method for preventing a flow table overflow attack for SDN, characterized in that the SDN controller further comprises the step of setting the corresponding flow to the absolute timeout when the average timeout does not exist.
KR1020200151881A 2020-11-13 2020-11-13 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network KR102387102B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200151881A KR102387102B1 (en) 2020-11-13 2020-11-13 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200151881A KR102387102B1 (en) 2020-11-13 2020-11-13 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

Publications (1)

Publication Number Publication Date
KR102387102B1 true KR102387102B1 (en) 2022-04-14

Family

ID=81211340

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200151881A KR102387102B1 (en) 2020-11-13 2020-11-13 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

Country Status (1)

Country Link
KR (1) KR102387102B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664752A (en) * 2022-10-19 2023-01-31 湖南大学 Slow flow table overflow attack detection and mitigation method based on ARIMAGini-DT
CN115664754A (en) * 2022-10-18 2023-01-31 湖南大学 Method for detecting and relieving overflow attack of slow flow table based on disorder degree

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100996136B1 (en) * 2009-06-25 2010-11-23 이화여자대학교 산학협력단 Method and apparatus for classifying packet
KR20150082060A (en) * 2014-01-06 2015-07-15 한국전자통신연구원 A method and apparatus for managing flow table
KR20180015916A (en) * 2016-08-04 2018-02-14 한국전자통신연구원 flow traffic monitoring apparatus in a network-based SDN and method therefor
KR102138199B1 (en) 2019-02-13 2020-07-27 성균관대학교산학협력단 Proactive flow entry enviction methods and apparatuses in software defined network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100996136B1 (en) * 2009-06-25 2010-11-23 이화여자대학교 산학협력단 Method and apparatus for classifying packet
KR20150082060A (en) * 2014-01-06 2015-07-15 한국전자통신연구원 A method and apparatus for managing flow table
KR20180015916A (en) * 2016-08-04 2018-02-14 한국전자통신연구원 flow traffic monitoring apparatus in a network-based SDN and method therefor
KR102138199B1 (en) 2019-02-13 2020-07-27 성균관대학교산학협력단 Proactive flow entry enviction methods and apparatuses in software defined network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664754A (en) * 2022-10-18 2023-01-31 湖南大学 Method for detecting and relieving overflow attack of slow flow table based on disorder degree
CN115664754B (en) * 2022-10-18 2024-04-26 湖南大学 Method for detecting and relieving overflow attack of slow flow table based on disorder degree
CN115664752A (en) * 2022-10-19 2023-01-31 湖南大学 Slow flow table overflow attack detection and mitigation method based on ARIMAGini-DT
CN115664752B (en) * 2022-10-19 2024-04-19 湖南大学 ARIMAGINI-DT-based slow flow table overflow attack detection and mitigation method

Similar Documents

Publication Publication Date Title
US10735379B2 (en) Hybrid hardware-software distributed threat analysis
US9935974B2 (en) Hardware-logic based flow collector for distributed denial of service (DDoS) attack mitigation
Dridi et al. SDN-guard: DoS attacks mitigation in SDN networks
EP3420487B1 (en) Hybrid hardware-software distributed threat analysis
US10313375B2 (en) Method and apparatus for malicious attack detection in an SDN network
WO2012090355A1 (en) Communication system, forwarding node, received packet process method, and program
US8509106B2 (en) Techniques for preventing attacks on computer systems and networks
US7672293B2 (en) Hardware throttling of network traffic sent to a processor based on new address rates
US20040215976A1 (en) Method and apparatus for rate based denial of service attack detection and prevention
US20180167361A1 (en) Network Attack Prevention Method, Apparatus and System
KR102387102B1 (en) System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network
JP6433865B2 (en) Communication device
WO2007121361A2 (en) Malicious attack detection system and an associated method of use
US10693890B2 (en) Packet relay apparatus
US9350631B2 (en) Identifying flows causing undesirable network events
CN112134894A (en) Moving target defense method for DDoS attack
CN108028828B (en) Distributed denial of service (DDoS) attack detection method and related equipment
Abbas et al. A stateless fairness-driven active queue management scheme for efficient and fair bandwidth allocation in congested Internet routers
US20060250954A1 (en) Method and apparatus for controlling connection rate of network hosts
EP3618355B1 (en) Systems and methods for operating a networking device
KR101712168B1 (en) Method for controling packet-in message, switch and controller thereof
Udhayan et al. Demystifying and rate limiting ICMP hosted DoS/DDoS flooding attacks with attack productivity analysis
CN113454957B (en) Memory management method and device
Ma et al. Virtual filter for non-duplicate sampling
Bedi et al. Mitigating congestion based DoS attacks with an enhanced AQM technique

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant