KR102013044B1 - SDN for preventing malware attack and controller including the same - Google Patents

SDN for preventing malware attack and controller including the same Download PDF

Info

Publication number
KR102013044B1
KR102013044B1 KR1020170181021A KR20170181021A KR102013044B1 KR 102013044 B1 KR102013044 B1 KR 102013044B1 KR 1020170181021 A KR1020170181021 A KR 1020170181021A KR 20170181021 A KR20170181021 A KR 20170181021A KR 102013044 B1 KR102013044 B1 KR 102013044B1
Authority
KR
South Korea
Prior art keywords
host
address information
list
sending
transmitting
Prior art date
Application number
KR1020170181021A
Other languages
Korean (ko)
Other versions
KR20190049323A (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 숭실대학교산학협력단
Publication of KR20190049323A publication Critical patent/KR20190049323A/en
Application granted granted Critical
Publication of KR102013044B1 publication Critical patent/KR102013044B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

멀웨어 공격을 방지하는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러가 개시된다. 개시된 소프트웨어 정의 네트워크는 소프트웨어 정의 네트워크에 있어서, 적어도 하나의 호스트와 연결되는 복수의 스위치; 및 상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되, 상기 컨트롤러는, 상기 복수의 스위치 중 어느 하나의 스위치로부터 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출하고, 상기 송신 호스트의 주소 정보를 이용하여 상기 송신 호스트에 대한 보류 연결 리스트 또는 최근 접속 수신 호스트 리스트를 검색하고, 상기 송신 호스트의 주소 정보 및 상기 보류 연결 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하거나, 상기 송신 호스트의 주소 정보 및 상기 수신 호스트의 주소 정보 및 상기 최근 접속 수신 호스트 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단한다.A software defined network and a controller included therein for preventing malware attacks are disclosed. The disclosed software defined network comprises a plurality of switches connected to at least one host; And a controller for controlling the plurality of switches, wherein the controller extracts address information of a transmitting host and address information of a receiving host from a connection request message received from any one of the plurality of switches. Search the pending connection list or the recent connection receiving host list for the sending host by using the address information of the sending host, and determine whether the sending host is a malicious host by using the address information of the sending host and the pending connection list. Alternatively, it is determined whether the transmitting host is a malicious host by using the address information of the transmitting host, the address information of the receiving host, and the list of recently accessed receiving hosts.

Description

멀웨어 공격을 방지하는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러{SDN for preventing malware attack and controller including the same}Software-defined networks and controllers to prevent malware attacks {SDN for preventing malware attack and controller including the same}

본 발명의 실시예들은 멀웨어 공격(malware attack)을 방지하는 소프트웨어 정의 네트워크(SDN: Software Defined Network) 및 이에 포함되는 컨트롤러(controller)에 관한 것이다. Embodiments of the present invention relate to a software defined network (SDN) and a controller included therein for preventing a malware attack.

인터넷은 우리의 일상에서 이제 불가분의 중요한 역할을 하고 있으며 사물 인터넷이 본격적으로 일상에 적용될 시에는 이 역할은 더욱 커질 것이라 예상한다. 하지만 종래의 네트워크 장비는 미리 정해진 룰에 따라 작동이 되는 시스템으로서, 관리 시 어려움이 있으며, 새로운 기능을 추가 할 시에는 연관된 모든 장비를 업데이트 또는 교체해야 하는 불편함이 존재한다. 그리고, 각종 새로운 악성 공격으로부터도 보안 상의 취약성을 보이고 있다. The Internet now plays an indispensable role in our daily lives, and we expect this role to grow even further when the Internet of Things is applied in our daily lives. However, the conventional network equipment is a system that operates according to a predetermined rule, there is a difficulty in management, and there is an inconvenience of updating or replacing all related equipment when adding a new function. In addition, there are security vulnerabilities from various new malicious attacks.

따라서, 이를 해결하고자 등장한 것이 소프트웨어 정의 네트워크(SDN: Software Defined Network)이다. 소프트웨어 정의 네트워크는 기존의 네트워크 장비와는 달리 컨트롤 평면(control plane)과 데이터 평면(data plane)이 분리된다. Therefore, what appeared to solve this is the Software Defined Network (SDN). Software-defined networks, unlike traditional network equipment, have separate control and data planes.

이 때, 컨트롤 평면에는 컨트롤러(controller)가 위치하고, 데이터 평면에는 복수의 스위치(switch)가 위치하며, 복수의 스위치는 컨트롤러에 의해 제어되며, 스위치는 주기적으로 자신의 상태를 컨트롤러에게 보고한다. 즉, 컨트롤러는 하부 스위치에 라우팅 메커니즘을 구성하여 전체적으로 네트워크를 관리한다. 따라서, 네트워크 구조가 단순화되어 있고, 네트워크 관리를 유연하게 해준다. At this time, a controller is located in the control plane, a plurality of switches are located in the data plane, the plurality of switches are controlled by the controller, and the switch periodically reports its status to the controller. In other words, the controller manages the network as a whole by configuring a routing mechanism in the lower switch. Thus, the network structure is simplified, and network management is flexible.

한편, 모바일 장치가 급속하게 발전하면서, 모바일 멀웨어 공격이 증가하고 있다. 모바일 멀웨어는 사용자 시스템에 침투하기 위해 설계되는 소프트웨어로써, 특히, 안드로이드 기반의 모바일 장치의 경우 APK(Android Application Package)를 통해 모바일 멀웨어가 무작위로 배포되고 있다. 모바일 멀웨어는 시스템을 파괴하는 데 그치지 않고 개인의 정보를 해킹할 수 있으며, 이에 따라 모바일 멀웨어의 위협성이 커지고 있다. On the other hand, with the rapid development of mobile devices, mobile malware attacks are increasing. Mobile malware is software designed to penetrate user systems. In particular, mobile malware is randomly distributed through Android Application Package (Apk) for Android-based mobile devices. Mobile malware can hack personal information, not just destroying the system, which increases the threat of mobile malware.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 멀웨어 공격을 효과적으로 방지할 수 있는 소프트웨어 정의 네트워크(SDN: Software Defined Network) 및 이에 포함되는 컨트롤러(controller)를 제공하고자 한다. In order to solve the problems of the prior art as described above, the present invention is to provide a software defined network (SDN) and a controller (controller) included therein that can effectively prevent malware attacks.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 소프트웨어 정의 네트워크에 있어서, 적어도 하나의 호스트와 연결되는 복수의 스위치; 및 상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되, 상기 컨트롤러는, 상기 복수의 스위치 중 어느 하나의 스위치로부터 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출하고, 상기 송신 호스트의 주소 정보를 이용하여 상기 송신 호스트에 대한 보류 연결 리스트 또는 최근 접속 수신 호스트 리스트를 검색하고, 상기 송신 호스트의 주소 정보 및 상기 보류 연결 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하거나, 상기 송신 호스트의 주소 정보 및 상기 수신 호스트의 주소 정보 및 상기 최근 접속 수신 호스트 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하는 것을 특징으로 하는 소프트웨어 정의 네트워크가 제공된다. According to a preferred embodiment of the present invention to achieve the above object, a software defined network, comprising: a plurality of switches connected to at least one host; And a controller for controlling the plurality of switches, wherein the controller extracts address information of a transmitting host and address information of a receiving host from a connection request message received from any one of the plurality of switches. Retrieve the pending connection list or the recent connection receiving host list for the sending host by using the address information of the sending host, and determine whether the sending host is a malicious host by using the address information of the sending host and the pending connection list. Or determining whether the transmitting host is a malicious host by using the address information of the transmitting host, the address information of the receiving host, and the recently accessed receiving host list.

상기 컨트롤러는, 상기 송신 호스트의 주소 정보가 악의적인 호스트인지 여부를 판단하기 위한 미리 설정된 블랙 리스트에 포함되는 경우, 상기 송신 호스트를 악의적 호스트로 판단할 수 있다. The controller may determine the transmitting host as the malicious host when the address information of the transmitting host is included in a preset black list for determining whether the address host is the malicious host.

상기 송신 호스트의 주소 정보가 상기 블랙 리스트에 포함되어 있지 않는 경우, 상기 컨트롤러는, 상기 수신된 연결 요청 메시지에 따른 연결 요청을 상기 보류 연결 리스트에 추가하고, 상기 추가된 연결 요청이 포함된 상기 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하는 경우 상기 송신 호스트를 악의적 호스트로 판단할 수 있다. If the address information of the sending host is not included in the black list, the controller adds a connection request according to the received connection request message to the pending connection list, and the pending message including the added connection request. When the total connection request of the connection list exceeds the first threshold value, the transmitting host may be determined to be a malicious host.

상기 송신 호스트의 주소 정보가 상기 블랙 리스트에 포함되어 있지 않는 경우, 상기 컨트롤러는, 상기 추출된 수신 호스트의 주소 정보가 상기 최근 접속 수신 호스트 리스트에 포함되어 있지 않는 경우, 상기 수신된 연결 요청 메시지에 따른 연결 요청을 대기 큐(waiting queue)에 배치하고, 상기 배치된 연결 요청이 포함된 상기 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하는 경우 상기 송신 호스트를 악의적 호스트로 판단할 수 있다. When the address information of the sending host is not included in the black list, the controller is further configured to include the received connection request message when the extracted address information of the receiving host is not included in the list of the latest connection receiving host. A connection request according to the request queue, and when the total connection request arranged in the waiting queue including the arranged connection request exceeds a second preset threshold, the transmitting host is determined to be a malicious host. can do.

또한, 본 발명의 다른 실시예에 따르면, 소프트웨어 정의 네트워크의 컨트롤 평면에 위치하는 컨트롤러에 있어서, 상기 복수의 스위치 중 어느 하나의 스위치로부터 연결 요청 메시지를 수신하는 통신부; 상기 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출하는 추출부; 상기 송신 호스트의 주소 정보를 이용하여 상기 송신 호스트에 대한 보류 연결 리스트 또는 최근 접속 수신 호스트 리스트를 검색하는 검색부; 및 상기 송신 호스트의 주소 정보 및 상기 보류 연결 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하거나, 상기 송신 호스트의 주소 정보 및 상기 수신 호스트의 주소 정보 및 상기 최근 접속 수신 호스트 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하는 제어부;를 포함하는 것을 특징으로 하는 컨트롤러가 제공된다. According to another embodiment of the present invention, a controller located in the control plane of a software defined network, the controller comprising: a communication unit for receiving a connection request message from any one of the plurality of switches; An extraction unit for extracting address information of a sending host and address information of a receiving host from the received connection request message; A retrieving unit for retrieving a pending connection list or a recent connection receiving host list for the transmitting host using the address information of the transmitting host; And determining whether the sending host is a malicious host by using the address information of the sending host and the pending connection list, or by using the address information of the sending host, the address information of the receiving host, and the recently connected receiving host list. And a controller for determining whether the transmitting host is a malicious host.

본 발명에 따르면, 본 발명에 따른 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러는 멀웨어 공격을 효과적으로 방지할 수 있는 장점이 있다. According to the present invention, the software defined network and the controller included therein have the advantage of effectively preventing malware attacks.

또한, 본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
In addition, the effect of this invention is not limited to the above-mentioned effect, It should be understood that it includes all the effects which can be inferred from the structure of the invention described in the detailed description of this invention, or a claim.

도 1은 종래의 소프트웨어 정의 네트워크(SDN: Software Defined Network)의 기본 구조를 도시한 도면이다.
도 2는 종래의 소프트웨어 정의 네트워크에 사용되는 OpenFlow의 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크의 개략적인 구조를 도시한 도면이다.
도 4는 본 발명의 제1 실시예에 따른 컨트롤러의 멀웨어 공격의 방지 동작의 흐름도를 도시한 도면이다.
도 5는 본 발명의 제2 실시예에 따른 컨트롤러의 멀웨어 공격의 방지 동작의 흐름도를 도시한 도면이다.
1 is a diagram illustrating a basic structure of a conventional software defined network (SDN).
2 is a diagram illustrating the structure of OpenFlow used in a conventional software defined network.
3 is a diagram illustrating a schematic structure of a software defined network according to an embodiment of the present invention.
4 is a flowchart illustrating an operation of preventing a malware attack of the controller according to the first embodiment of the present invention.
5 is a flowchart illustrating an operation of preventing a malware attack of a controller according to a second embodiment of the present invention.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
As used herein, the singular forms "a", "an" and "the" include plural forms unless the context clearly indicates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the specification, and some of the components or some steps It should be construed that it may not be included or may further include additional components or steps. In addition, the terms "... unit", "module", etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software. .

이하, 본 발명의 대상이 되는 종래의 소프트웨어 정의 네트워크에 대해 간략하게 설명하기로 한다. The following is a brief description of a conventional software defined network that is the subject of the present invention.

도 1은 종래의 소프트웨어 정의 네트워크(SDN: Software Defined Network)의 기본 구조를 도시한 도면이고, 도 2는 종래의 소프트웨어 정의 네트워크에 사용되는 OpenFlow의 구조를 도시한 도면이다. FIG. 1 is a diagram illustrating a basic structure of a conventional software defined network (SDN), and FIG. 2 is a diagram illustrating a structure of OpenFlow used in a conventional software defined network.

도 1을 참조하면, 소프트웨어 정의 네트워크는 크게 데이터 평면(data plane)과 대응되는 인프라스트럭처 계층(infrastructure layer)과, 컨트롤 평면(control plane)과 대응되는 컨트롤 계층(control layer)과, 애플리케이션 계층(application layer)으로 나뉜다. Referring to FIG. 1, a software defined network may be classified into an infrastructure layer corresponding to a data plane, a control layer corresponding to a control plane, and an application layer. layer).

데이터 계층은 소프트웨어 정의 네트워크의 특정 인터페이스를 통해 제어를 받는 계층으로서, 데이터 흐름의 전송을 담당한다. 컨트롤 계층은 데이터의 흐름을 제어하는 계층으로서 애플리케이션과 네트워크 서비스를 통하여 데이터 흐름을 라우팅 할 것인지, 전달을 할 것인지, 거절할 것인지를 결정한다. 또한 데이터 계층의 동작들을 정리하여 API(Application Programming Interface) 형태로 애플리케이션 계층에 전달한다. 마지막으로 애플리케이션 계층은 제어 계층에서 제공한 API들을 이용하여 네트워크의 다양한 기능들을 수행 할 수 있도록 한다.The data layer is the layer under control over a specific interface of the software-defined network and is responsible for the transmission of data flows. The control layer is the layer that controls the flow of data and decides whether to route, forward or reject data flow through applications and network services. It also organizes the operations of the data layer and delivers it to the application layer in the form of an API (Application Programming Interface). Finally, the application layer can use the APIs provided by the control layer to perform various functions of the network.

한편, 전통적인 네트워크에서 라우터, 스위치와 같은 네트워크 장비는 트래픽 제어와 규칙을 담당한다. 그러므로 네트워크의 라우팅 정보는 스위치와 라우터에서 저장한다. 이와 같은 네트워크 구조는 네트워크가 변화할 때마다 관리자가 관련 인터넷 설비를 배치해야 한다는 문제가 있고, 데이터 센터나 그룹 네트워크 환경은 잦은 네트워크 변화로 자원을 낭비한다.Meanwhile, in traditional networks, network equipment such as routers and switches are responsible for traffic control and rules. Therefore, routing information of network is stored in switch and router. This network structure has a problem that the administrator must deploy the relevant Internet facilities whenever the network changes, and data center or group network environment wastes resources due to frequent network changes.

OpenFlow은 위와 같은 전통적인 네트워크의 단점을 보완하는 컨트롤러와 네트워크 장치간의 인터페이스 규격으로 사용되고 있는 기술이다. 도 2를 참조하면, OpenFlow는 제어 평면과 데이터 평면을 분리하여 네트워크를 운용할 수 있게 함으로써 네트워크 트래픽을 제어할 수 있는 기능과 전달할 수 있는 기능을 분리하며 소프트웨어를 제작하여 네트워크를 제어할 수 있도록 해준다. OpenFlow 프로토콜을 사용하면, 제어 및 데이터 평면을 하드웨어가 아닌 소프트웨어로도 구현할 수 있으며, 이 소프트웨어를 범용 서버에 설치하여 신속하게 새로운 기능을 구현할 수 있다.OpenFlow is a technology that is used as an interface standard between a controller and a network device to compensate for the disadvantages of the traditional network. Referring to FIG. 2, OpenFlow separates the control plane from the data plane so that the network can be operated, thereby separating the function of controlling network traffic and the function of delivering and making software to control the network. . Using the OpenFlow protocol, control and data planes can be implemented in software rather than in hardware, and the software can be installed on a general purpose server to quickly implement new features.

OpenFlow는 프로토콜 계층 1~4까지의 헤더 정보를 하나로 조합하여 패킷(프레임)의 동작을 지정할 수 있다. 제어 평면의 프로그램을 수정하면 계층 4까지의 범위에서 사용자가 자유롭게 새로운 프로토콜을 만들 수 있고, 특정 서비스나 애플리케이션에 최적화된 네트워크를 사용자가 구현할 수도 있다. 즉, OpenFlow는 패킷을 제어하는 기능과 전달하는 기능을 분리하고 프로그래밍을 통해 네트워크를 제어하는 기술이다. OpenFlow can specify the operation of packets (frames) by combining header information from protocol layers 1 to 4 into one. By modifying the program in the control plane, users can freely create new protocols up to Layer 4, or they can implement networks optimized for specific services or applications. In other words, OpenFlow is a technology that separates the function of controlling the packet from the function of forwarding and controls the network through programming.

상기에서 설명된 내용을 참조하여 멀웨어 공격(malware attack)을 방지하는 소프트웨어 정의 네트워크(SDN: Software Defined Network) 및 이에 포함되는 컨트롤러(controller)를 상세하게 설명한다.
A software defined network (SDN) for preventing a malware attack and a controller included therein will be described in detail with reference to the above description.

도 3은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크의 개략적인 구조를 도시한 도면이다. 3 is a diagram illustrating a schematic structure of a software defined network according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크(300)는, 컨트롤러(310), 복수의 스위치(320) 및 복수의 호스트(330)를 포함한다. 이 때, 복수의 호스트(330)는 PC, 서버, 스마트 기기 등과 같은 모바일 장치를 포함한다. Referring to FIG. 3, the software defined network 300 according to an embodiment of the present invention includes a controller 310, a plurality of switches 320, and a plurality of hosts 330. In this case, the plurality of hosts 330 may include a mobile device such as a PC, a server, a smart device, and the like.

컨트롤러(310)는 OpenFlow 인터페이스를 따르는 OF 컨트롤러일 수 있고, 컨트롤 평면에 위치하며, 네트워크의 모든 제어 명령, 데이터 트래픽의 전달을 수행하며, 전체 네트워크를 직접적으로 제어한다. The controller 310 may be an OF controller along the OpenFlow interface, is located in the control plane, performs all control commands, data traffic transfer of the network, and directly controls the entire network.

복수의 스위치(320) 각각은 OpenFlow 인터페이스를 따르는 OF 스위치일 수 있고, 데이터 평면에 위치하며, 컨트롤러(310)에 의해 동작이 제어되며, 복수의 스위치(320) 각각은 주기적으로 자신의 상태를 컨트롤러에게 보고한다. 또한, 스위치(320) 각각에는 복수의 호스트(330)가 연결된다. Each of the plurality of switches 320 may be an OF switch along an OpenFlow interface, located in the data plane, and controlled by the controller 310, and each of the plurality of switches 320 periodically controls its state. Report to In addition, a plurality of hosts 330 are connected to each switch 320.

즉, 컨트롤러(310)는 복수의 스위치(320) 각각에 명령을 전송하고, 각각의 스위치(320)는 수신된 명령에 따라 패킷을 송신 호스트에서 수신 호스트로 전송하거나 수정, 폐기하는 등의 처리를 한다. 일례로, OpenFlow 프로토콜을 이용하여, 컨트롤러(310)는 패킷의 포워딩 방법이나 VLAN 우선순위 값 등을 스위치(320)에 전달하여 수행되도록 하며, 스위치(320)는 장애정보와 사전에 등록된 플로우 엔트리가 없는 패킷에 대한 정보를 컨트롤러(310)에 문의하고 그 결정을 받아 처리한다. That is, the controller 310 transmits a command to each of the plurality of switches 320, and each switch 320 transmits, modifies, or discards a packet from a transmitting host to a receiving host according to the received command. do. For example, by using the OpenFlow protocol, the controller 310 transmits a packet forwarding method or a VLAN priority value to the switch 320 to be performed, and the switch 320 performs fault information and a pre-registered flow entry. The controller 310 inquires about the packet having no packet, receives the decision, and processes the information.

특히, 컨트롤러(310)는 경로 계산을 주 역할로 수행하는 것으로서, 패킷을 전송할 때 몇 가지 매개 변수를 기반으로 경로를 결정한다. 사용하는 매개 변수로는 최단경로(SPF)나 회선 속도 외에 사용자가 지정한 경로의 가중치나 부하 분산 조건 등이 있다. 컨트롤러(310)가 계산한 경로 정보는 TLS(Transport Layer Security) 또는 일반 TCP 연결을 통해 스위치(320)에 보내지며 플로우 테이블에 저장된다. 이후, 스위치(320)는 패킷을 수신할 때마다 플로우 테이블을 확인하고 그 프레임을 지정된 경로로 전송한다.In particular, the controller 310 performs a route calculation as a main role, and determines a path based on several parameters when transmitting a packet. In addition to the shortest path (SPF) and line speed, the parameters used include weights of the user-specified paths and load balancing conditions. The route information calculated by the controller 310 is sent to the switch 320 through a transport layer security (TLS) or a general TCP connection and stored in a flow table. Thereafter, each time the switch 320 receives the packet, the switch 320 checks the flow table and transmits the frame to the designated path.

한편, 본 발명에 따른 소프트웨어 정의 네트워크(300)는 앞서 언급한 바와 같이 멀웨어 공격을 효과적으로 방지하는 기능을 수행하는 것으로서, 호스트 A에서 연결 요청 메시지를 스위치 A를 통해 컨트롤러(310)로 전송하는 경우, 컨트롤러(310)는 연결 요청 메시지에 포함된 정보에 기초하여 호스트 A가 멀웨어 공격을 수행하는 악성 호스트인지 여부를 판단한다. Meanwhile, as described above, the software defined network 300 according to the present invention performs a function of effectively preventing a malware attack. When the host A transmits a connection request message to the controller 310 through the switch A, The controller 310 determines whether the host A is a malicious host performing a malware attack based on the information included in the connection request message.

이 때, 호스트 A가 악성 호스트인 경우, 컨트롤러(310)는 호스트 A의 연결 요청을 불허하는 제1 명령을 호스트 A와 연결된 스위치 A로 전송하며, 스위치 A는 호스트 A의 모든 연결 요청을 차단한다. 반대로, 호스트 A가 악성 호스트가 아닌 경우, 컨트롤러(310)는 호스트 A의 연결 요청을 허가하는 제2 명령을 호스트 A와 연결된 스위치 A로 전송한다. In this case, when the host A is a malicious host, the controller 310 transmits a first command to the switch A connected with the host A, which disallows the connection request from the host A, and the switch A blocks all connection requests from the host A. . In contrast, when the host A is not a malicious host, the controller 310 transmits a second command to the switch A connected with the host A to allow the connection request of the host A.

이를 위해, 컨트롤러(310)는 도 3에 도시된 바와 같이 통신부(311), 추출부(312), 검색부(313) 및 제어부(314)를 포함한다. 이하, 도 3의 컨트롤러(310)의 구성과, 도 4 및 도 5를 참조하여 소프트웨어 정의 네트워크(300)의 컨트롤러(310)에서 수행되는 멀웨어 공격의 방지 동작을 상세하게 설명하기로 한다. To this end, the controller 310 includes a communication unit 311, an extraction unit 312, a search unit 313, and a control unit 314 as shown in FIG. 3. Hereinafter, the configuration of the controller 310 of FIG. 3 and the operation of preventing a malware attack performed by the controller 310 of the software defined network 300 will be described in detail with reference to FIGS. 4 and 5.

도 4는 본 발명의 제1 실시예에 따른 컨트롤러(310)의 멀웨어 공격의 방지 동작의 흐름도를 도시한 도면이다. 이하, 각 단계 별로 수행되는 과정을 설명한다. 4 is a flowchart illustrating an operation of preventing a malware attack of the controller 310 according to the first embodiment of the present invention. Hereinafter, a process performed for each step will be described.

먼저, 단계(402)에서, 통신부(311)는 복수의 스위치(320) 중 어느 하나의 스위치로부터 연결 요청 메시지를 수신한다. First, in step 402, the communication unit 311 receives a connection request message from any one of the plurality of switches (320).

다음으로, 단계(404)에서, 추출부(312)는 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보를 추출한다. 이 때, 주소 정보는 IP 주소 정보일 수 있다. Next, in step 404, the extraction unit 312 extracts the address information of the sending host from the received connection request message. In this case, the address information may be IP address information.

계속하여, 단계(406)에서, 제어부(314)는 송신 호스트의 주소 정보가 미리 설정된 블랙 리스트에 포함되어 있는지 여부를 판단한다.Subsequently, in step 406, the controller 314 determines whether the address information of the transmitting host is included in the preset black list.

이 때, 블랙 리스트는 악의적 호스트의 정보를 담고 있으며, 이는 공개적으로 사용 가능한 악의적 호스트에 관한 정보 및 컨트롤러(310)의 과거의 정보(경험) 중 적어도 하나를 통해 설정될 수 있다. At this time, the black list contains information of the malicious host, which may be set through at least one of information about the malicious host that is publicly available and past information (experience) of the controller 310.

만약, 송신 호스트의 주소 정보가 블랙 리스트에 포함되어 있는 경우, 단계(408)에서, 제어부(314)는 송신 호스트를 멀웨어를 유출시키는 악의적인 호스트로 판단한다. If the address information of the transmitting host is included in the black list, in step 408, the controller 314 determines that the transmitting host is a malicious host that leaks malware.

반대로, 송신 호스트의 주소 정보가 블랙 리스트에 포함되어 있지 않는 경우, 단계(410)에서, 검색부(313)는 송신 호스트의 주소 정보를 이용하여 송신 호스트에 대한 보류 연결 리스트를 검색한다. Conversely, if the address information of the transmitting host is not included in the black list, in step 410, the searching unit 313 searches for a pending connection list for the transmitting host using the address information of the transmitting host.

보류 연결 리스트는 복수의 호스트(330) 별로 설정되는 것으로서, 처리되지 않는 연결 요청, 즉 보류 중인 연결 요청에 대한 리스트가 저장되어 있다. 만약, 보류 연결 리스트에 포함된 하나의 연결 요청이 처리되는 경우, 처리된 연결 요청은 보류 연결 리스트에서 제거된다. The pending connection list is set for each of the plurality of hosts 330 and stores a list of connection requests that are not processed, that is, pending connection requests. If one connection request included in the pending connection list is processed, the processed connection request is removed from the pending connection list.

그 후, 제어부(314)는, 단계(412)에서 수신된 연결 요청 메시지에 따른 연결 요청을 보류 연결 리스트에 추가하고, 단계(414)에서 추가된 연결 요청이 포함된 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하는지 여부를 판단한다. 제1 임계값은 실험적으로 결정될 수 있다. Thereafter, the control unit 314 adds the connection request according to the connection request message received in step 412 to the pending connection list, and the total connection request of the pending connection list including the connection request added in step 414. It is determined whether or not this preset first threshold value is exceeded. The first threshold can be determined experimentally.

만약, 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하지 않는 경우, 단계(416)에서, 제어부(314)는 보류 연결 리스트의 총 연결 요청을 순차적으로 처리할 수 있다. 반대로, 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하는 경우, 단계(418)에서, 제어부(314)는 송신 호스트를 멀웨어를 유포시키는 악의적 호스트로 판단한다. If the total connection request of the pending connection list does not exceed the preset first threshold value, in step 416, the controller 314 may sequentially process the total connection request of the pending connection list. Conversely, if the total connection request of the pending connection list exceeds the first predetermined threshold, in step 418, the controller 314 determines the sending host as a malicious host that distributes malware.

다시 말해, 정상적인 호스트가 악의적인 호스트에 비해 성공적으로 통신 연결이 될 확률이 높으므로, 처리가 되지 않는 연결 요청이 많은 호스트는 악의적인 호스트일 가능성이 높다. 따라서, 본 발명에 따른 컨트롤러(310)는 보류 연결 리스트의 총 연결 요청의 개수를 이용하여 악의적 호스트인지 여부를 판단한다.
In other words, since a normal host has a high probability of successfully communicating with a malicious host, a host with many connection requests that are not processed is likely to be a malicious host. Therefore, the controller 310 according to the present invention determines whether the host is a malicious host by using the total number of connection requests in the pending connection list.

도 5는 본 발명의 제2 실시예에 따른 컨트롤러(310)의 멀웨어 공격의 방지 동작의 흐름도를 도시한 도면이다. 이하, 각 단계 별로 수행되는 과정을 설명한다. 5 is a flowchart illustrating an operation of preventing a malware attack of the controller 310 according to the second embodiment of the present invention. Hereinafter, a process performed for each step will be described.

먼저, 단계(502)에서, 통신부(311)는 복수의 스위치(320) 중 어느 하나의 스위치로부터 연결 요청 메시지를 수신한다. First, in step 502, the communication unit 311 receives a connection request message from any one of the plurality of switches 320.

다음으로, 단계(504)에서, 추출부(312)는 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출한다. 이 때, 주소 정보는 IP 주소 정보일 수 있다. Next, in step 504, the extraction unit 312 extracts the address information of the sending host and the address information of the receiving host from the received connection request message. In this case, the address information may be IP address information.

계속하여, 단계(506)에서, 제어부(314)는 송신 호스트의 주소 정보가 미리 설정된 블랙 리스트에 포함되어 있는지 여부를 판단한다. Subsequently, in step 506, the controller 314 determines whether the address information of the transmitting host is included in the preset black list.

만약, 송신 호스트의 주소 정보가 블랙 리스트에 포함되어 있는 경우, 단계(508)에서, 제어부(314)는 송신 호스트를 멀웨어를 유출시키는 악의적인 호스트로 판단한다. If the address information of the transmitting host is included in the black list, in step 508, the controller 314 determines that the transmitting host is a malicious host that leaks malware.

반대로, 송신 호스트의 주소 정보가 블랙 리스트에 포함되어 있지 않는 경우, 단계(510)에서 검색부(313)는 송신 호스트의 주소 정보를 이용하여 최근 접속 수신 호스트(RAD: Recently Accessed Destinations) 리스트를 검색한다. On the contrary, when the address information of the transmitting host is not included in the black list, in step 510, the searching unit 313 searches for a list of recently accessed destinations (RAD) using the address information of the transmitting host. do.

최근 접속 수신 호스트 리스트는 복수의 호스트(330) 별로 미리 설정되는 것으로서, 호스트가 최근에 접속 내지 통신 연결된 수신 호스트의 리스트가 저장되어 있다. The recent connection receiving host list is set in advance for each of the plurality of hosts 330, and a list of receiving hosts to which the host has recently been connected or communicated is stored.

그 후, 단계(512)에서, 제어부(314)는 추출된 수신 호스트가 최근 접속 수신 호스트 리스트에 포함되어 있는지 여부를 판단한다. Then, in step 512, the controller 314 determines whether the extracted receiving host is included in the list of recently connected receiving hosts.

만약, 수신 호스트가 최근 접속 수신 호스트 리스트에 포함되어 있는 경우, 단계(514)에서, 제어부(314)는 연결 요청 메시지에 따른 연결 요청을 처리한다. If the receiving host is included in the recent connection receiving host list, in step 514, the controller 314 processes the connection request according to the connection request message.

반대로, 수신 호스트가 최근 접속 수신 호스트 리스트에 포함되어 있지 않는 경우, 단계(516)에서, 제어부(314)는 연결 요청 메시지에 따른 연결 요청을 대기 큐(waiting queue)에 배치한다. 대기 큐는 최근 접속 수신 호스트 리스트에 포함되지 않는 연결 요청을 처리하기 위한 큐를 의미하며, 미리 정의된 시간 간격으로 연결 요청을 처리한다. Conversely, if the receiving host is not included in the recent connection receiving host list, in step 516, the controller 314 places a connection request according to the connection request message in a waiting queue. The waiting queue refers to a queue for processing a connection request that is not included in the list of recently accessed hosts. The waiting queue processes the connection request at a predetermined time interval.

계속하여, 단계(518)에서, 제어부(314)는 배치된 연결 요청이 포함된 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하는지 여 부를 판단한다. 제2 임계값은 실험적으로 결정될 수 있다. Subsequently, in step 518, the controller 314 determines whether the total connection request placed in the waiting queue including the placed connection request exceeds a second preset threshold. The second threshold can be determined experimentally.

만약, 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하지 않는 경우, 단계(520)에서, 제어부(314)는 대기 큐에 배치된 연결 요청을 순차적으로 처리할 수 있다. 반대로, 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하는 경우, 단계(522)에서, 제어부(314)는 송신 호스트를 멀웨어를 유포시키는 악의적 호스트로 판단한다. If the total connection request placed in the waiting queue does not exceed the second preset threshold value, in step 520, the controller 314 may sequentially process the connection request placed in the waiting queue. Conversely, if the total connection request placed in the waiting queue exceeds the second preset threshold value, in step 522, the control unit 314 determines that the transmitting host is a malicious host that distributes malware.

다시 말해, 악의적인 호스트는 많은 수의 호스트에 멀웨어를 유포하므로, 다수의 수신 호스트로 통신 연결을 시도하는 송신 호스트는 악의적인 호스트일 가능성이 높다. 따라서, 본 발명에 따른 컨트롤러(310)는 대기 큐에 배치된 총 연결 요청의 개수를 이용하여 악의적 호스트인지 여부를 판단한다. In other words, since a malicious host spreads malware to a large number of hosts, a sending host that attempts a communication connection to a plurality of receiving hosts is likely to be a malicious host. Accordingly, the controller 310 according to the present invention determines whether the host is a malicious host by using the total number of connection requests placed in the waiting queue.

한편, 본 발명의 다른 실시예에 따르면, 대기 큐에 배치된 총 연결 요청이 제2 임계값을 초과하지 않는 경우, 제어부(314)는 대기 큐에 배치된 총 연결 요청이 제1 임계값을 초과하는지 여부를 판단한다. 만약, 대기 큐에 배치된 총 연결 요청이 제1 임계값을 초과하는 경우, 제어부(314)는 송신 호스트를 멀웨어를 유포시키는 악의적 호스트로 판단한다. 반대로, 대기 큐에 배치된 총 연결 요청이 제1 임계값을 초과하지 않는 경우, 제어부(314)는 대기 큐에 배치된 연결 요청을 순차적으로 처리할 수 있다.
Meanwhile, according to another embodiment of the present invention, when the total connection request placed in the waiting queue does not exceed the second threshold, the controller 314 may determine that the total connection request placed in the waiting queue exceeds the first threshold. Determine whether or not. If the total connection request placed in the waiting queue exceeds the first threshold, the controller 314 determines that the transmitting host is a malicious host that distributes malware. On the contrary, when the total connection request placed in the waiting queue does not exceed the first threshold value, the controller 314 may sequentially process the connection request placed in the waiting queue.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention can be implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Examples of program instructions such as magneto-optical, ROM, RAM, flash memory, etc. may be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Contains high-level language codes. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help the overall understanding of the present invention, the present invention is not limited to the above embodiments, Various modifications and variations can be made by those skilled in the art to which the present invention pertains. Therefore, the spirit of the present invention should not be limited to the described embodiments, and all the things that are equivalent to or equivalent to the claims as well as the following claims will belong to the scope of the present invention. .

Claims (5)

소프트웨어 정의 네트워크에 있어서,
적어도 하나의 호스트와 연결되는 복수의 스위치; 및
상기 복수의 스위치를 제어하는 컨트롤러;를 포함하되,
상기 컨트롤러는,
상기 복수의 스위치 중 어느 하나의 스위치로부터 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출하고, 상기 송신 호스트의 주소 정보를 이용하여 상기 송신 호스트에 대한 보류 연결 리스트 또는 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 검색하며,
상기 송신 호스트의 주소 정보, 미리 설정된 블랙 리스트 및 상기 송신 호스트에 대한 보류 연결 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하거나, 상기 송신 호스트의 주소 정보, 상기 블랙 리스트, 상기 수신 호스트의 주소 정보 및 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하되,
상기 송신 호스트의 주소 정보, 상기 블랙 리스트 및 상기 송신 호스트에 대한 보류 연결 리스트를 이용하는 경우에 있어서, 상기 컨트롤러는 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하는 경우 상기 송신 호스트를 악의적 호스트로 판단하거나, 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하지 않는 경우 상기 수신된 연결 요청 메시지에 따른 처리되지 않은 연결 요청이 포함된 상기 송신 호스트에 대한 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하고, 상기 보류 연결 리스트는 복수의 호스트별로 설정되고, 상기 보류 연결 리스트에 포함된 하나의 연결 요청이 처리되는 경우 처리된 연결 요청은 상기 보류 연결 리스트에서 제거되며,
상기 송신 호스트의 주소 정보, 상기 블랙 리스트, 상기 수신 호스트의 주소 정보 및 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 이용하는 경우에 있어서, 상기 컨트롤러는 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하거나, 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하지 않는 경우, 상기 수신 호스트의 주소 정보가 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트에 포함되어 있지 않고 상기 수신된 연결 요청 메시지에 따른 처리되지 않은 연결 요청을 포함하는 상기 송신 호스트의 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하는 것을 특징으로 하는 소프트웨어 정의 네트워크.
In a software defined network,
A plurality of switches connected to at least one host; And
Including; a controller for controlling the plurality of switches;
The controller,
Extracting address information of a sending host and address information of a receiving host from a connection request message received from any one of the plurality of switches, and using the address information of the sending host, a pending connection list for the sending host or the Retrieves the list of recently connected recipient hosts for the sending host.
It is determined whether the transmitting host is a malicious host by using the address information of the transmitting host, a preset black list, and a pending connection list for the transmitting host, or the address information of the transmitting host, the black list, and the receiving host. It is determined whether the sending host is a malicious host by using address information and a list of recently connected receiving hosts for the sending host.
In the case of using the address information of the transmitting host, the black list, and the pending connection list for the transmitting host, the controller determines that the transmitting host is a malicious host when the address information of the transmitting host is present in the black list. Or if the address information of the sending host does not exist in the black list, the first connection request of the total connection request of the pending connection list for the sending host including the unprocessed connection request according to the received connection request message is preset. If the sending host is determined to be a malicious host based on whether a threshold value is exceeded, the pending connection list is set for each host, and when one connection request included in the pending connection list is processed, the processed connection request is processed. Removed from the pending connection list,
In the case of using the address information of the transmitting host, the black list, the address information of the receiving host, and the recent connection receiving host list for the transmitting host, the controller determines whether the address information of the transmitting host exists in the black list. If it is determined whether the sending host is a malicious host or if the address information of the sending host does not exist in the black list, the address information of the receiving host is not included in the list of recently connected receiving hosts for the sending host. Determine the sending host as a malicious host based on whether the total connection request placed in the waiting queue of the sending host including the unprocessed connection request according to the received connection request message exceeds a second preset threshold. Cow which is characterized by Software defined network.
삭제delete 삭제delete 삭제delete 소프트웨어 정의 네트워크의 컨트롤 평면에 위치하는 컨트롤러에 있어서,
상기 소프트웨어 정의 네트워크의 데이터 평면에 위치하는 복수의 스위치 중 어느 하나의 스위치로부터 연결 요청 메시지를 수신하는 통신부;
상기 수신된 연결 요청 메시지로부터 송신 호스트의 주소 정보 및 수신 호스트의 주소 정보를 추출하는 추출부;
상기 송신 호스트의 주소 정보를 이용하여 상기 송신 호스트에 대한 보류 연결 리스트 또는 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 검색하는 검색부; 및
상기 송신 호스트의 주소 정보, 미리 설정된 블랙 리스트 및 상기 송신 호스트에 대한 보류 연결 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하거나, 상기 송신 호스트의 주소 정보, 상기 블랙 리스트, 상기 수신 호스트의 주소 정보 및 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 이용하여 상기 송신 호스트가 악의적 호스트인지 여부를 판단하는 제어부;를 포함하되,
상기 송신 호스트의 주소 정보, 상기 블랙 리스트 및 상기 송신 호스트에 대한 보류 연결 리스트를 이용하는 경우에 있어서, 상기 제어부는 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하고, 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하지 않는 경우, 상기 수신된 연결 요청 메시지에 따른 처리되지 않은 연결 요청이 포함된 상기 송신 호스트에 대한 보류 연결 리스트의 총 연결 요청이 미리 설정된 제1 임계값을 초과하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하며,
상기 보류 연결 리스트는 복수의 호스트별로 설정되고, 상기 보류 연결 리스트에 포함된 하나의 연결 요청이 처리되는 경우 처리된 연결 요청은 상기 보류 연결 리스트에서 제거되며,
상기 송신 호스트의 주소 정보, 상기 블랙 리스트, 상기 수신 호스트의 주소 정보 및 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트를 이용하는 경우에 있어서, 상기 제어부는 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하는 경우 상기 송신 호스트를 악의적 호스트로 판단하고, 상기 블랙 리스트에 상기 송신 호스트의 주소 정보가 존재하지 않은 경우, 상기 수신 호스트의 주소 정보가 상기 송신 호스트에 대한 최근 접속 수신 호스트 리스트에 포함되어 있지 않고 상기 수신된 연결 요청 메시지에 따른 처리되지 않은 연결 요청을 포함하는 상기 송신 호스트의 대기 큐에 배치된 총 연결 요청이 미리 설정된 제2 임계값을 초과하는지 여부를 통해 상기 송신 호스트를 악의적 호스트로 판단하는 것을 특징으로 하는 컨트롤러.
For a controller located on the control plane of a software defined network,
A communication unit receiving a connection request message from any one of a plurality of switches located in a data plane of the software defined network;
An extraction unit for extracting address information of a sending host and address information of a receiving host from the received connection request message;
A retrieving unit for retrieving a pending connection list for the transmitting host or a recent connection receiving host list for the transmitting host using the address information of the transmitting host; And
It is determined whether the transmitting host is a malicious host by using the address information of the transmitting host, a preset black list, and a pending connection list for the transmitting host, or the address information of the transmitting host, the black list, and the receiving host. And a controller for determining whether the transmitting host is a malicious host using address information and a list of recently accessed receiving hosts for the transmitting host.
In the case of using the address information of the sending host, the black list, and the pending connection list for the sending host, the controller determines whether the sending host is a malicious host through whether the address information of the sending host is present in the black list. If the address information of the sending host does not exist in the black list, the total connection request of the pending connection list for the sending host including the unprocessed connection request according to the received connection request message is previously received. Determine the sending host as a malicious host based on whether the first threshold value is set;
The pending connection list is set for a plurality of hosts, and when one connection request included in the pending connection list is processed, the processed connection request is removed from the pending connection list,
In the case of using the address information of the transmitting host, the black list, the address information of the receiving host, and the recent access receiving host list for the transmitting host, the control unit may include the address information of the transmitting host in the black list. If it is determined that the sending host is a malicious host, and if the address information of the sending host does not exist in the black list, the address information of the receiving host is not included in the list of recently connected receiving hosts for the sending host. Judging the sending host as a malicious host based on whether a total connection request placed in the waiting queue of the sending host including an unprocessed connection request according to the received connection request message exceeds a second preset threshold. Controller.
KR1020170181021A 2017-11-01 2017-12-27 SDN for preventing malware attack and controller including the same KR102013044B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170144618 2017-11-01
KR1020170144618 2017-11-01

Publications (2)

Publication Number Publication Date
KR20190049323A KR20190049323A (en) 2019-05-09
KR102013044B1 true KR102013044B1 (en) 2019-08-21

Family

ID=66546794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181021A KR102013044B1 (en) 2017-11-01 2017-12-27 SDN for preventing malware attack and controller including the same

Country Status (1)

Country Link
KR (1) KR102013044B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978580B (en) * 2022-04-08 2023-09-29 中国电信股份有限公司 Network detection method and device, storage medium and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712168B1 (en) * 2015-08-24 2017-03-03 주식회사 케이티 Method for controling packet-in message, switch and controller thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219796B1 (en) * 2009-10-07 2013-01-09 한국전자통신연구원 Apparatus and Method for protecting DDoS
KR20160143086A (en) * 2015-06-04 2016-12-14 성균관대학교산학협력단 Cyber inspection system and method using sdn
KR101835319B1 (en) * 2016-03-10 2018-03-08 주식회사 윈스 Attack sensing system using user behavior analysis and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712168B1 (en) * 2015-08-24 2017-03-03 주식회사 케이티 Method for controling packet-in message, switch and controller thereof

Also Published As

Publication number Publication date
KR20190049323A (en) 2019-05-09

Similar Documents

Publication Publication Date Title
KR101900154B1 (en) SDN capable of detection DDoS attacks and switch including the same
US10084751B2 (en) Load balancing among a cluster of firewall security devices
US8089871B2 (en) Method and apparatus for traffic control of dynamic denial of service attacks within a communications network
US7480707B2 (en) Network communications management system and method
KR101703446B1 (en) Network capable of detection DoS attacks and Method for controlling thereof, Gateway and Managing server comprising the network
US10931711B2 (en) System of defending against HTTP DDoS attack based on SDN and method thereof
US20140143854A1 (en) Load balancing among a cluster of firewall security devices
US10313238B2 (en) Communication system, communication method, and non-transitiory computer readable medium storing program
US20070118896A1 (en) Network attack combating method, network attack combating device and network attack combating program
US10536379B2 (en) System and method for control traffic reduction between SDN controller and switch
US20120254980A1 (en) Switching hub, a system, a method of the switching hub and a program thereof
EP3903461B1 (en) Packet analysis and filtering
KR102050089B1 (en) System and method for network security performing adaptive rule-set setting
Dridi et al. A holistic approach to mitigating DoS attacks in SDN networks
KR102376493B1 (en) NFV based messaging service security providing method and system for the same
KR102013044B1 (en) SDN for preventing malware attack and controller including the same
CN102546587B (en) Prevent gateway system Session Resources by the method that maliciously exhausts and device
CN112350939A (en) Bypass blocking method, system, device, computer equipment and storage medium
CN110995586A (en) BGP message processing method and device, electronic equipment and storage medium
US10257087B2 (en) Communication device and communication method
KR101854996B1 (en) SDN for preventing malicious application and Determination apparatus comprising the same
Nalayini et al. Block Link Flooding Algorithm for TCP SYN Flooding Attack
KR101914831B1 (en) SDN to prevent an attack on the host tracking service and controller including the same
Lotlikar et al. A Defense Mechanism for DoS Attacks in SDN (Software Defined Network)
KR102136923B1 (en) System and method for providing security service of road traffic network using software defined networking and network function virtualization

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant