KR20160145373A - Method, apparatus and computer program for analzing vulnerability of software defined network - Google Patents

Method, apparatus and computer program for analzing vulnerability of software defined network Download PDF

Info

Publication number
KR20160145373A
KR20160145373A KR1020150081885A KR20150081885A KR20160145373A KR 20160145373 A KR20160145373 A KR 20160145373A KR 1020150081885 A KR1020150081885 A KR 1020150081885A KR 20150081885 A KR20150081885 A KR 20150081885A KR 20160145373 A KR20160145373 A KR 20160145373A
Authority
KR
South Korea
Prior art keywords
vulnerability
network
attack
agent
database
Prior art date
Application number
KR1020150081885A
Other languages
Korean (ko)
Other versions
KR101692155B1 (en
Inventor
신승원
윤창훈
이승수
강희도
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020150081885A priority Critical patent/KR101692155B1/en
Publication of KR20160145373A publication Critical patent/KR20160145373A/en
Application granted granted Critical
Publication of KR101692155B1 publication Critical patent/KR101692155B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

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

Abstract

The present invention relates to a method for analyzing vulnerability of a software defined networking (SDN) network, including: a step of classifying at least one vulnerability which is able to occur in an arbitrary SDN network into a control plane category, a data plane category, and a control channel category according to an attack location, and obtaining a vulnerability database including an attack code for a corresponding vulnerability; a first test step of executing at least one agent on the SDN network to be analyzed, and attacking based on the vulnerability database; and a step of collecting a first test result to analyze the vulnerability of the network to be analyzed.

Description

소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR ANALZING VULNERABILITY OF SOFTWARE DEFINED NETWORK}METHOD, APPARATUS AND COMPUTER PROGRAM FOR ANALYZING VULNERABILITY OF SOFTWARE DEFINED NETWORK,

본 발명은 소프트웨어 정의 네트워크의 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램에 대한 것이다. 보다 구체적으로 본 발명은 소프트웨어 정의 네트워크에서 발생할 수 있는 취약점에 대한 정보를 구조화하고, SDN 네트워크의 취약점을 분석하는데 공통적으로 적용될 수 있는 프레임워크에 대한 것이다. The present invention relates to a method, apparatus and computer program for analyzing a vulnerability of a software defined network. More particularly, the present invention relates to a framework that can be applied commonly to structuring information on vulnerabilities that may occur in a software defined network and analyzing vulnerabilities of the SDN network.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다.Software Defined Networking (SDN) is a technology that manages all the network devices in the network by an intelligent central management system. In the SDN technology, a controller provided in a form of software can perform processing instead of a control operation related to the packet processing performed by itself in a conventional hardware type network device, so that various functions can be developed and given over the existing network structure.

SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성될 수 있다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 데이터 플레인 (Data Plane)과 네트워크를 운용하는 컨트롤 플레인 (Control Plane)을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다. The SDN system generally includes a controller server that controls the entire network, a plurality of open flow switches that are controlled by the controller server and process packets, and a host that is a lower layer of the open flow switch. Here, the open flow switch is only responsible for transmitting and receiving packets, and routing, management, and control of the packets are all performed in the controller server. That is, it is a basic structure of the SDN system to separate the data plane constituting the network equipment and the control plane operating the network.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node), 2개의 노드 사이의 연결은 링크(Link)라고 불린다. 1 is a diagram for explaining a configuration of a software defined network. Referring to FIG. 1, a software defined network may include a controller server 100, network equipment 200, and a host 300. The network device 200 and the host 300 are nodes, and the connection between two nodes is called a link.

컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 어플리케이션이 탑재된 형태로 구현될 수 있다. The controller server 100 manages the network equipment 200 and centrally manages and controls the plurality of network equipment 200. Specifically, the controller server 100 includes an application that performs functions such as topology management, path management related to packet processing, link discovery, and packet flow flow management. As shown in FIG.

네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다. 다만 설명의 편의를 위해 이하에서는 네트워크 장비(200)가 오픈플로우 스위치인 경우를 중심으로 설명하도록 한다. The network device 200 functions to process packets under the control of the controller server 100. Examples of the network equipment 200 include a mobile communication base station, a base station controller, a gateway equipment, a wired network switch, and a router. Hereinafter, for convenience of explanation, the case where the network equipment 200 is an open flow switch will be mainly described.

한편 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해되어야 한다. In the present specification, the open flow switch 200 should be understood as a concept including a switch supporting only an open flow protocol, a virtual switch supporting an open flow protocol, and a general L2 switch supporting an open flow protocol.

소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In the software defined network, the controller server 100 and the open flow switch 200 exchange information with each other. The open flow protocol is widely used as a protocol for this. That is, the open flow protocol is a standard that allows the controller server 100 and the open flow switch 200 to communicate with each other.

보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 컨트롤 채널(Control Channel)을 통해 컨트롤러 서버(100)와 정보를 교환한다. 상기 컨트롤 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러 서버(100) 사이의 통신 채널이며, 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 교환되는 정보는 암호화될 수 있다. More specifically, the open flow switch 200 exchanges information with the controller server 100 via a control channel. The control channel is a communication channel between the open flow switch 200 and the controller server 100 located at a remote location. Information exchanged between the controller server 100 and the open flow switch 200 can be encrypted.

그리고 오픈플로우 스위치 (200)에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)을 반영하며, 상기 플로우 룰은 컨트롤러 서버(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메세지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다. The open flow switch 200 has one or more flow tables for defining and processing packets and including statistical information related to the packets. The flow table reflects a flow rule that defines packet processing and the flow rule is a flow mode message generated by the controller server 100 and transmitted to the open flow switch 200 And may be added, modified or deleted by the user. The open flow switch 200 processes the packet with reference to the flow table.

상기 플로우 테이블은 플로우를 정의하는 패킷에 대한 매치 정보(Match Field), 패킷의 처리를 정의하는 동작 정보(Instruction) 및 플로우별 통계 정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭하며 각 플로우 엔트리에는 우선 순위(Priority)가 지정될 수 있다. 오픈플로우 스위치는 패킷의 정보와 부합하는 매치 정보를 가진 플로우 엔트리 중에서 가장 높은 우선 순위를 가지는 플로우 엔트리의 동작 정보에 따라 패킷을 처리할 수 있다. The flow table may include a match field for a packet defining a flow, operation information for defining processing of the packet, and statistical information for each flow (Stats). Each row constituting the flow table is called a flow entry, and a priority can be assigned to each flow entry. The open flow switch can process the packet according to the operation information of the flow entry having the highest priority among the flow entries having match information matching the information of the packet.

호스트(300)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다. The host 300 means a terminal or the like corresponding to a lower layer of the open flow switch 200, and can be used to mean a client and a server. The host 300 can generate a packet for sending to another host via a software defined network and transmit the packet to the open flow switch 200 through a port of the network interface.

예컨대 제 1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제 1 호스트(300a)는 보내고자 하는 패킷을 생성하고 상기 패킷을 제 1 호스트(300a)와 연결된 오픈플로우 스위치(200a)로 전송한다. 패킷을 수신한 오픈플로우 스위치에 상기 패킷과 매치되는 플로우 엔트리가 존재하는 경우에는, 플로우 엔트리의 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200a)에 패킷과 매치되는 플로우 엔트리가 없는 경우에는, 오픈플로우 스위치(200a)는 컨트롤러 서버(100)에 패킷 유입을 알리는 패킷-인 메세지(Packet-in Message)를 전송한다. 컨트롤러 서버(100)는 상기 패킷의 처리를 규정하는 플로우 룰 변경 사항을 생성하여 오픈플로우 스위치(200a)로 전송하고, 오픈플로우 스위치(200a)는 이에 기반하여 상태를 변경하고 상기 패킷을 처리한다. For example, when the first host 300a wants to send a packet to the second host 300b, the first host 300a first generates a packet to be sent and transmits the packet to the first host 300a via an open flow To the switch 200a. When there is a flow entry matching the packet in the open flow switch that received the packet, the packet is processed as specified in the flow entry. However, when there is no flow entry matched with the packet in the open flow switch 200a, the open flow switch 200a transmits a packet-in message informing the controller server 100 of the packet flow. The controller server 100 generates a flow rule change that specifies the processing of the packet and transmits the flow rule change to the open flow switch 200a. The open flow switch 200a changes the state based on the change and processes the packet.

한편 제 1 호스트(300a)가 제 2 호스트(300b)로 패킷을 보낼 수 있는 경로는 다양할 수 있다. 전체 네트워크에는 복수의 오픈플로우 스위치(200) 및 호스트(300)가 존재하므로 각 노드마다 복수의 링크를 가지기 때문이다. 이때, 컨트롤러 서버(100)는 전체 네트워크 토폴로지 맵에 기반하여 상기 패킷을 보낼 수 있는 복수개의 경로 중에서 최적 경로를 연산할 수 있다. 그리고 컨트롤러 서버(100)는 연산된 경로에 대한 정보를 플로우 룰의 형태로 오픈플로우 스위치(200)에 전송하고, 오픈플로우 스위치(200)는 상기 플로우 룰에 따라 패킷을 처리하는 것이 일반적이다.Meanwhile, a path through which the first host 300a can send a packet to the second host 300b may vary. This is because a plurality of open flow switches 200 and the host 300 exist in the whole network, and therefore, each node has a plurality of links. At this time, the controller server 100 can calculate an optimal path among a plurality of paths that can transmit the packet based on the entire network topology map. The controller server 100 transmits information on the calculated route to the open flow switch 200 in the form of a flow rule, and the open flow switch 200 processes the packet in accordance with the flow rule.

본 발명은 소프트웨어 정의 네트워크에서 발생할 수 있는 취약점에 대한 정보를 구조화시킨 데이터베이스를 제공하는 것을 목적으로 한다. An object of the present invention is to provide a database structured with information on vulnerabilities that may occur in a software defined network.

더 나아가 본 발명은 SDN 네트워크의 취약점을 분석하기 위해 공통적으로 적용될 수 있는 프레임워크를 제공하는 것을 목적으로 한다. Furthermore, the present invention aims to provide a framework that can be commonly applied to analyze the vulnerability of an SDN network.

상기 문제를 해결하기 위하여 본 발명의 실시예를 따르는 SDN (Software Defined Networking) 네트워크의 취약점을 분석하는 방법은, 임의의 SDN 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점을 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드를 포함하는 취약점 데이터베이스를 획득하는 단계; 분석 대상 SDN 네트워크에 적어도 하나 이상의 에이전트를 실행시키고, 상기 취약점 데이터베이스를 토대로 공격하는 제 1 테스트 단계; 및 상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 단계를 포함하는 것을 특징으로 한다. In order to solve the above problem, a method of analyzing a vulnerability of an SDN (Software Defined Networking) network according to an embodiment of the present invention includes analyzing at least one vulnerability that may occur in an SDN network to a control plane ), A data plane, and a control channel category, and acquiring a vulnerability database including an attack code for the vulnerability; A first test step of executing at least one agent on an SDN network to be analyzed and attacking based on the vulnerability database; And analyzing a vulnerability of the analysis target network by collecting the first test result.

나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크의 취약점을 분석하는 장치는, 소프트웨어 정의 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점에 대해 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드 정보를 포함하는 취약점 데이터베이스를 저장하는 저장부; 및 분석 대상 네트워크에 적어도 하나 이상의 에이전트를 실행시키고, 상기 취약점 데이터베이스를 토대로 공격하고, 상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 제어부를 포함하는 것을 특징으로 한다. Further, an apparatus for analyzing a vulnerability of a software defined network according to an embodiment of the present invention includes a control plane, a data plane, and a control plane for at least one vulnerability that may occur in a software defined network, A storage unit for classifying the vulnerability database into a control channel category and storing a vulnerability database including attack code information for the vulnerability; And a controller for executing at least one agent on the network to be analyzed, attacking the network based on the vulnerability database, and analyzing the vulnerability of the network to be analyzed by collecting the first test result.

나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크의 취약점을 분석하는 처리를 수행하기 위하여 매체에 저장된 어플리케이션은, 소프트웨어 정의 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점에 대해 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드 정보를 포함하는 취약점 데이터베이스를 획득하는 기능; 분석 대상 네트워크에 적어도 하나 이상의 에이전트를 실행시키고 상기 취약점 데이터베이스를 토대로 공격하는 제 1 테스트 기능; 및 상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 기능을 수행하는 것을 특징으로 한다. Further, in order to perform a process of analyzing a vulnerability of a software defined network according to an embodiment of the present invention, an application stored in a medium may include a control plane according to an attack location for at least one vulnerability that may occur in a software defined network, A data plane, and a control channel category, and acquiring a vulnerability database including attack code information for the vulnerability; A first test function for executing at least one agent on the network to be analyzed and attacking based on the vulnerability database; And analyzing a vulnerability of the analysis target network by collecting the first test result.

본 발명에 따르면, SDN 네트워크의 취약점을 테스트하는 표준화된 프레임워크를 제공하는 효과가 있다. 따라서 각각의 분석 대상 네트워크에 대한 각각의 공격 시나리오마다 취약점 테스트를 위한 구성을 고려할 필요가 없어 네트워크 테스트가 용이해지는 효과가 있다. According to the present invention, it is effective to provide a standardized framework for testing the vulnerability of an SDN network. Therefore, it is not necessary to consider the configuration for the vulnerability test for each attack scenario for each network to be analyzed, thereby making it easy to test the network.

나아가 본 발명에 따르면, SDN 네트워크에서 발생할 수 있는 취약점에 대한 정보를 구조화시킨 데이터베이스를 제공하는 효과가 있다. 따라서 미리 확인된 공격에 대한 면밀한 테스트가 가능하기 때문에 분석 대상 네트워크의 보안이 높아지는 효과가 있다. Further, according to the present invention, it is possible to provide a database structured with information on vulnerabilities that may occur in the SDN network. Therefore, since it is possible to carry out a thorough test on the confirmed attack, the security of the analyzed network is enhanced.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2은 본 발명의 실시예에 따라 소프트웨어 정의 네트워크의 취약점을 분석하는 방법을 설명하기 위한 순서도
도 3은 본 발명의 실시예에 따르는 취약점 데이터베이스의 내용을 설명하기 위한 도면
도 4은 본 발명의 실시예에 따라 소프트웨어 정의 네트워크의 취약점을 진단하는 프레임워크의 소프트웨어 구성을 설명하기 위한 순서도
1 is a diagram for explaining the configuration of a software defined network;
2 is a flowchart illustrating a method for analyzing a vulnerability of a software defined network according to an embodiment of the present invention
3 is a view for explaining contents of a vulnerability database according to an embodiment of the present invention;
4 is a flowchart illustrating a software configuration of a framework for diagnosing a vulnerability of a software defined network according to an embodiment of the present invention

본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. It is to be understood that the present invention is not limited to the description of the embodiments described below, and that various modifications may be made without departing from the technical scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. In the drawings, the same components are denoted by the same reference numerals. And in the accompanying drawings, some of the elements may be exaggerated, omitted or schematically illustrated. It is intended to clearly illustrate the gist of the present invention by omitting unnecessary explanations not related to the gist of the present invention. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

앞서 설명한 바와 같이 SDN 네트워크는 종래의 하드웨어 기반의 네트워크와 전혀 상이하게 구현된다. 따라서 종래의 하드웨어 형태의 네트워크의 취약점을 분석하는 기법들은 SDN 네트워크에는 적용될 수 없다. As described above, the SDN network is implemented entirely differently from the conventional hardware-based network. Therefore, techniques for analyzing the vulnerability of a conventional hardware type network can not be applied to the SDN network.

나아가 현재는 SDN의 시작 단계이기 때문에, SDN 네트워크에 어떠한 공격이 가해질 수 있는지, 어떤 형태의 공격에 가장 취약한지, 특정 공격으로 네트워크에 어떤 피해가 발생할 수 있는지 등, SDN 네트워크에 발생할 수 있는 취약점에 대한 정보가 구조화 및/또는 특징화되어 (systematized and/or characterized) 축적되어 있지 않다In addition, since it is the beginning of SDN, it is vulnerable to SDN network vulnerability such as what kind of attack can be applied to SDN network, which type of attack is most vulnerable, Information about the system is not systematized and / or characterized

따라서 SDN 네트워크의 취약점을 점검하기 위해서는 각각의 분석 대상 네트워크에 대한 임의의 공격 시나리오에 대한 테스트 모듈을 각각 개발해야 한다. 나아가 테스트는 관리자의 개인적인 역량에 의존하여 진행되고, 발생 가능한 모든 공격 시나리오에 대한 점검이 이루어지지 않을 수 있다. 따라서 취약점 점검의 공신력이 떨어지고 사용자들은 네트워크의 안전성에 의구심을 가질 수 있다. Therefore, in order to check the vulnerability of the SDN network, test modules for arbitrary attack scenarios for each analyzed network should be developed. Furthermore, the testing is dependent on the administrator's personal capabilities and may not be checked for all possible attack scenarios. Therefore, vulnerability checks are less credible and users may have doubts about the security of the network.

본 발명은 상기와 같은 문제를 해결하기 위한 것이다. 본 발명은 SDN 네트워크에서 발생할 수 있는 취약점에 대한 정보를 구조화시킨 데이터베이스를 이용하여 SDN 네트워크의 취약점을 테스트할 수 있는 표준화된 프레임워크를 제안한다. The present invention is intended to solve the above problems. The present invention proposes a standardized framework for testing vulnerabilities of an SDN network using a database structured with information on vulnerabilities that may occur in the SDN network.

상기 프레임워크, 즉 취약점 진단 컴퓨터 프로그램은 상기 분석 대상 네트워크의 컨트롤 플레인, 제어 채널, 및 데이터 플레인에 각각의 에이전트를 실행시키고, 상기 취약점 데이터베이스에서 제공하는 공격 코드를 이용하여 에이전트가 분석 대상 네트워크를 공격하도록 제어하는 에이전트 매니저를 포함하여 구현될 수 있다. 나아가 공격 결과를 분석하여 해당 네트워크에 미리 알려진 취약점들이 존재하는지 여부를 판단할 수 있다. The framework, that is, the vulnerability diagnosis computer program, executes each agent on a control plane, a control channel, and a data plane of the analysis target network, and uses an attack code provided from the vulnerability database to attack And an agent manager for controlling the agent manager. Furthermore, attack results can be analyzed to determine whether there are known vulnerabilities in the network.

나아가 본 발명은 SDN 네트워크를 미리 알려진 취약점은 물론, 알려지지 않은 취약점에 대해서도 점검할 수 있는 방법을 제안한다. 예를 들어 상기 취약점 진단 컴퓨터 프로그램은 알려지지 않은 취약점에 대해 점검하기 위해 상기 분석 대상 네트워크에 무작위 데이터를 적용하여 퍼징하는 테스트를 수행할 수 있으며, 퍼징 결과에 대해 취약점 데이터베이스를 업데이트하도록 구현될 수 있다. Further, the present invention proposes a method for checking an SDN network against not only known vulnerabilities but also unknown vulnerabilities. For example, the vulnerability diagnostic computer program may be configured to perform a test to apply random data to the analysis target network to check for an unknown vulnerability, and to update the vulnerability database with respect to the purge result.

도 2은 본 발명의 실시예에 따라 소프트웨어 정의 네트워크의 취약점을 분석하는 방법을 설명하기 위한 순서도이다. 2 is a flowchart illustrating a method of analyzing a vulnerability of a software defined network according to an embodiment of the present invention.

본 발명의 실시예를 따르는 SDN 취약점 점검 장치는, 단계 210에서 SDN에서 발생할 수 있는 취약점들에 대한 데이터베이스를 획득할 수 있다. An SDN vulnerability checking apparatus according to an embodiment of the present invention may acquire a database of vulnerabilities that may occur in the SDN in step 210. [

상기 데이터베이스는 임의의 SDN 네트워크에서 발생할 수 있는 취약점들에 대한 정보를 포함할 수 있다. 예를 들어 미리 알려진 취약점의 위치, 취약점의 원인, 취약점에 대한 공격 코드, 상기 공격으로 발생할 수 있는 결과들, 및/ 또는 취약점에 대한 해결 방안에 대한 정보를 포함할 수 있다. The database may contain information about vulnerabilities that may occur in any SDN network. For example, it may include information on previously known location of a vulnerability, a cause of the vulnerability, an attack code for the vulnerability, a result of the attack, and / or a solution to the vulnerability.

본 발명을 따르는 취약점 데이터베이스의 취약점들은 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류될 수 있다. 이는 취약점 데이터베이스를 이용하여 분석 대상 네트워크를 공격하는 취약점 진단 테스트의 편의를 위한 것이다. The vulnerabilities of the vulnerability database according to the present invention can be classified into a control plane, a data plane, and a control channel according to an attack location. This is for convenience of the vulnerability diagnostic test that attacks the target network using the vulnerability database.

한편 상기 데이터베이스는 본 발명의 실시예를 따르는 취약점 점검 테스트 결과에 의해 수정(modifying), 삭제 (deleting) 및/또는 추가(adding) 등 변경(updating)될 수 있다. 이를 위해 취약점 데이터베이스 관리 프로그램과 취약점 점검 테스트 프로그램은 서로를 참조할 수 있다.Meanwhile, the database may be updated by modifying, deleting and / or adding a vulnerability check test result according to an embodiment of the present invention. For this, the vulnerability database management program and the vulnerability check test program can refer to each other.

본 발명의 실시예를 따르는 취약점 데이터베이스는 특히 22개 형태의 공격에 대한 취약점 정보를 포함할 수 있다. The vulnerability database according to the embodiment of the present invention may include vulnerability information for 22 types of attacks.

표 1은 SDN 네트워크에 발생할 수 있는 상기 22개 취약점에 대한 것이다. 표 1은 관련성이 있는 취약점들은 하나의 관리 코드를 부여하여 총 15개의 관리 코드가 존재한다. 관리 코드가 A로 시작하는 취약점은 컨트롤 플레인에 가해질 수 있는 공격에 대한 것이며, B로 시작하는 취약점은 컨트롤 체인에 가해질 수 있는 공격에 대한 것이며, C로 시작하는 취약점은 데이터 플레인에 가해질 수 있는 공격에 대한 것이다. Table 1 shows the 22 vulnerabilities that can occur in the SDN network. Table 1 shows a total of 15 managed codes for the relevant vulnerabilities. A vulnerability with managed code beginning with A is for an attack that can be placed on the control plane, a vulnerability starting with B is for an attack that can be placed on the control chain, and a vulnerability starting with C is an attack Lt; / RTI >

취약점 이름Vulnerability name 관리 코드Managed code 설명Explanation Packet-In FloodingPacket-In Flooding A-01-AA-01-A Numerous Packet-Ins may lead a SDN controller to be in an unpredictable state:
For example, a malicious host may generate a number of distinct flows to generate numerous Packet-Ins, and thus exhausting the system resource of a SDN controller machine.
Numerous Packet-Ins may lead a SDN controller to an unpredictable state:
For example, a malicious host may generate a number of distinct flows, and thus exhaust the system resource of a SDN controller machine.
Service Chain InterferenceService Chain Interference A-02-MA-02-M A chained execution of applications may be interfered:
i) Control Message Drop: A malicious application may participate in a service chain and drop control messages before the other applications awaiting for them.
ii) Infinite Loops: A malicious application may fall in an infinite loop to stop the chained execution of applications.
A chained execution of applications may be interfered:
i) Control Message Drop : A malicious application may participate in a service chain and drop control messages before the other applications awaiting for them.
ii) Infinite Loops : A malicious application may fall into an infinite loop to stop the execution of applications.
Internal Storage AbuseInternal Storage Abuse A-03-MAA-03-MA The internal storage of a SDN controller shared among various SDN applications may be unrestrictedly accessed and manipulated: For example, a SDN application may access and manipulate the network topology managed in the internal database of a SDN controllerFor example, a SDN application may be accessed and manipulated by a SDN controller in a network topology managed by the SDN controller Control Message ManipulationControl Message Manipulation A-04-MAA-04-MA Control messages may be manipulated to put the control plane in an unpredictable state:
i) Switch Table Flooding: An adversary may persistently send forged control messages to flood the switch table of a SDN controller.
ii) Switch Identification Spoofing: The switch identification field of a control message may be manipulated to put the control plane in an unpredictable state.
iii) Malformed Control Message: A malformed control message may cause malfunction of the control plane.
Control messages may be manipulated to put the control plane in an unpredictable state:
i) Switch Table Flooding : An adversary may persistently send control messages to the SDN controller.
ii) Switch Identification Spoofing : The switch identification field of a control message may be manipulated to put the control plane in an unpredictable state.
iii) Malformed Control Message : A malformed control message may cause malfunction of the control plane.
Control Message AbuseControl Message Abuse A-05-MA-05-M A SDN application may arbitrarily issue control messages:
i) Flow Rule Modification: A malicious application may issue a flow rule to overwrite the existing rule in the flow table of a switch to cause unexpected network behavior.
ii) Flow Table Clearance: A malicious application may issue the control message that clears the flow table entries of a switch to disallow all the communication.
A SDN application may arbitrarily issue control messages:
i) Flow Rule Modification : A malicious application may issue a flow rule to overwrite the existing rule in the flow table of the unexpected network behavior.
ii) Flow Table Clearance : A malicious application may issue a control message that clears the flow table entries.
Northbound API AbuseNorthbound API Abuse A-06-MA-06-M A SDN application may manipulate the behavior of the other applications by abusing a poorly designed Northbound API.
i) Event Listener Unsubscription: A malicious application may arbitrarily unsubscribe the target application from the control message subscription list to make the target incapable of receiving any of the messages.
ii) Application Eviction: A SDN application may force unemploy the other SDN applications on duty.
A SDN application may manipulate the behavior of the other applications by abusing a poorly designed Northbound API.
i) Event Listener Unsubscription : A malicious application may arbitrarily unsubscribe the target application from the control message subscription list to make the target incapable of any of the messages.
ii) Application Eviction : A SDN application may force the other SDN applications on duty.
Resource ExhaustionResource Exhaustion A-07-MAA-07-MA A SDN application may exclusively use all available system resources and affect the performance of the other applications or the controller itself
i) Memory Exhaustion: A malicious application may continuously allocate memory to use up all available system memory.
ii) CPU Exhaustion: A malicious application may continuously create working threads to use up all available CPU resource.
A SDN application may exclusively use all available system resources and affect the performance of the other applications or the controller itself
i) Memory Exhaustion : A malicious application may continuously allocate memory to use all available system memory.
ii) CPU Exhaustion : A malicious application may continuously create working threads to use up all available CPU resources.
System Variable ManipulationSystem Variable Manipulation A-08-MAA-08-MA System variables may be manipulated to put a SDN controller in an unpredictable state:
An adversary may change the system time to make the controller disconnect from the linked switches.
System variables may be manipulated to put a SDN controller in an unpredictable state:
An adversary may change the system time to make the controller disconnect from the connected switches.
System Command ExecutionSystem Command Execution A-09-AA-09-A A SDN application may execute a system exit command to terminate the controller instanceA SDN application may execute a system exit command to terminate the controller instance Network Topology PoisoningNetwork Topology Poisoning A-10-AA-10-A An adversary may manipulate the network topology by exploiting the vulnerabilities exist in the Host Tracking Service and Link Discovery Service of various SDN controllers:
i) Host Location Hijacking: An adversary may generate the crafted network traffic to arbitrarily hijack the location of the other hosts.
ii) Link Fabrication: An adversary may manipulate the network topology by sending a forged or relayed LLDP packet to the controller.
An adversary may manipulate the network topology by exploiting the vulnerabilities in the Host Tracking Service and Link Discovery Service of various SDN controllers:
i) Host Location Hijacking : An adversary may generate the crafted network traffic to arbitrarily hijack the location of the other hosts.
ii) Link Fabrication : An adversary may manipulate the network topology by sending a forged or relayed LLDP packet to the controller.
EavesdropEavesdrop B-01-AB-01-A An adversary may sniff the control channel to steal sensitive information:
For example, an adversary may sniff the ongoing control messages on the control channel to learn the network topology.
An adversary may sniff the control channel to steal sensitive information:
For example, an adversary may sniff the ongoing control messages on the control channel to learn the network topology.
Man-In-The- MiddleMan-In-The- Middle B-02-AB-02-A An adversary may actively intervene in the control channel:
For example, an adversary modifies the flow rule message that is being transferred, and corrupt the behavior of a network.
An adversary may act actively in the control channel:
For example, an adversary modifies the flow rule message that is transferred, and corrupts the behavior of a network.
Flow Rule FloodingFlow Rule Flooding C-01-MAC-01-MA Numerous flow rules may lead a data plane to be in an unpredictable state:
An adversary may intervene in the control channel and install a number of flow rules to the target switch to fill up the flow table.
Numerous flow rules may lead to an unpredictable state:
An adversary may intervene in the control channel and install a number of flow rules to switch to the flow table.
Switch Firmware AbuseSwitch Firmware Abuse C-02-MC-02-M The characteristics or traits of a certain switch model may be abused:
For example, an adversary may install the crafted flow rules that cannot be processed in the hardware table of a certain switch model.
The characteristics or traits of a certain switch model may be abused:
For example, an adversary may install the crafted flow rules that can not be processed in a certain switch model.
Control Message ManipulationControl Message Manipulation C-03-MC-03-M A malformed control message may put the data plane in an unpredictable state:
An adversary may inject a malformed control message to the data plane to interrupt the connection between the control plane and the data plane.
A malformed control message may put the data plane in an unpredictable state:
An adversary may inject a malformed control message to the data plane to interrupt the connection between the control plane and the data plane.

특히 표 1에서 A-02-M, A-05-M, A-06-M, A-06-MA, B-01-A, B-02-A, C-02-M 및 C-03-M 코드는 본 발명의 실시예에 따라 새롭게 발견한 취약점들로서, 보다 구체적인 설명은 아래와 같다. A-02-M, A-05-M, A-06-M, A-06-MA, B- The M code is a newly discovered vulnerability according to an embodiment of the present invention, and a more detailed description is as follows.

첫째로 서비스 체인 간섭 (A-02-M, Service Chain Interference)에 대한 취약점은 컨트롤러에 탑재된 어플리케이션들의 연결된 실행(chained excution)을 하기 위해 필요한 제어 메시지를 악성 어플리케이션이 드랍(drop)시키거나 무한 루프에 빠지게 하는 공격에 대한 것이다. First, the vulnerability to service chain interference (A-02-M) is caused by a malicious application dropping a control message necessary for chained excitation of applications installed on the controller, To attack.

제어 메시지를 드랍시키는 공격 코드는 표 2와 같으며, 무한 루프에 빠지게 하는 공격 코드는 표 3과 같다. 이와 같은 공격 코드는 본 발명의 실시예를 따르는 취약점 데이터베이스에 포함될 수 있으며 이는 나머지 취약점에 대해서도 마찬가지이다. Table 2 shows the attack codes dropping the control message. Table 3 shows the attack codes that cause the infinite loop to fall. Such an attack code may be included in the vulnerability database according to the embodiment of the present invention, and the same is true for the remaining vulnerabilities.

[표 2][Table 2]

Activatior.javaActivatior.java

{{

List<ContainerServiceDependency> list = this.c.getDependencies(); List <ContainerServiceDependency> list = this.c.getDependencies ();

DependencyManager manager = this.c.getDependencyManager(); DependencyManager manager = this.c.getDependencyManager ();

List<DependencyManager> dlist = manager.getDependencyManagers(); List <DependencyManager> dlist = manager.getDependencyManagers ();

BundleContext ctx = manager.getBundleContext(); BundleContext ctx = manager.getBundleContext ();

Bundle[] blist = ctx.getBundles(); Bundle [] blist = ctx.getBundles ();

System.out.println("dList size :" + dlist.size() + "\n"); System.out.println ("dList size:" + dlist.size () + "\ n");

for (int i = 0; i < dlist.size(); i++) { i <dlist.size (); i ++) {

DependencyManager dm = dlist.get(i); DependencyManager dm = dlist.get (i);

System.out.println("DM :" + dm.toString()); System.out.println ("DM:" + dm.toString ());

List<Component> temp = dm.getComponents(); List <Component> temp = dm.getComponents ();

System.out.println("Componenets Size :" + temp.size()); System.out.println ("Componenets Size:" + temp.size ());

for (int j = 0; j < temp.size(); j++) { temp.size (); j ++) {

Component ct = temp.get(j); Component ct = temp.get (j);

@SuppressWarnings("unchecked") @SuppressWarnings ("unchecked")

Dictionary<String, Object> props = ct.getServiceProperties(); Dictionary <String, Object> props = ct.getServiceProperties ();

if (props != null) { if (props! = null) {

Object res = props.get("salListenerName"); // salListenerName Object res = props.get ("salListenerName"); // salListenerName

if (res != null) { if (res! = null) {

if (!((String) res).contains("appagent")) { if (! ((String) res) .contains ("appagent")) {

Dictionary<String, Object> props_new = new Hashtable<String, Object>(); Dictionary <String, Object> props_new = new Hashtable <String, Object> ();

Enumeration<String> keys = props.keys(); Enumeration <String> keys = props.keys ();

while (keys.hasMoreElements()) { while (keys.hasMoreElements ()) {

String key = keys.nextElement(); String key = keys.nextElement ();

props_new.put(key, props.get(key)); props_new.put (key, props.get (key));

} }

props_new.put("salListenerDependency", "appagent"); props_new.put ("salListenerDependency", "appagent");

ct.stop(); ct.stop ();

ct.setServiceProperties(props_new); ct.setServiceProperties (props_new);

ct.start(); ct.start ();

} else { } else {

System.out.println("Here"); System.out.println ("Here");

} }

} }

} }

} }

} }

}}

AppAgent.javaAppAgent.java

public PacketResult receiveDataPacket(RawPacket inPkt) {public PacketResult receiveDataPacket (RawPacket inPkt) {

return PacketResult.CONSUME; return PacketResult.CONSUME;

}}

[표 3][Table 3]

public void Infinite_Loop() {public void Infinite_Loop () {

int i = 0; int i = 0;

System.out.println("[ATTACK] Infinite Loop"); System.out.println ("[ATTACK] Infinite Loop");

while (true) { while (true) {

i++; i ++;

if (i == 10) if (i == 10)

i = 0; i = 0;

} }

}}

둘째로 제어 메시지 남용 (A-05-M, Control Message Abuse)에 대한 취약점은 악성 어플리케이션이 임의로 플로우 룰을 발행하여 플로우 룰을 수정하거나 플로우 테이블을 삭제시키는 공격에 대한 것이다. Second, the vulnerability to control message abuse (A-05-M) is against malicious applications that arbitrarily issue flow rules to modify flow rules or delete flow tables.

셋째로 API 변경에 대한 취약점(A-06-M, Northbound API Abuse)은 임의의 어플리케이션의 이벤트 수신을 불가능하게 하거나 임의의 어플리케이션을 종료(exploit)시키도록 악성 어플리케이션이 컨트롤러의 API를 이용하는 공격에 대한 것이다. Third, the vulnerability to API change (A-06-M, Northbound API Abuse) is used to prevent malicious applications from exploiting an arbitrary application or to exploit an arbitrary application. will be.

넷째로 시스템 변수 조작에 대한 취약점(A-08-MA, System Variable Manipulation)은 컨트롤러의 시스템 시간을 조작하는 공격에 대한 취약점이다. Fourth, vulnerability to system variable manipulation (A-08-MA, System Variable Manipulation) is a vulnerability to attack that manipulates controller's system time.

다섯째로 엿듣기에 대한 취약점(B-01-A, Eavesdrop)은 컨트롤러와 스위치 사이의 패킷을 도청하여 네트워크 토폴로지 정보를 획득하는 공격에 대한 취약점이다. Fifth, vulnerability to eavesdropping (B-01-A, Eavesdrop) is a vulnerability to attack that acquires network topology information by eavesdropping packets between controller and switch.

여섯째로 중간자에 대한 취약점(B-02-A, Man-In-The- Middle)은 컨트롤러와 스위치 사이의 패킷을 수정하여 상기 네트워크 토폴로지를 변경하는 공격에 대한 것이다. The sixth vulnerability to man-in-the-middle (A-Man-In-The-Middle) is an attack that modifies the network topology by modifying packets between the controller and the switch.

일곱째로 스위치 펌웨어 남용 (C-02-M, Switch Firmware Abuse)은 스위치 펌웨어의 모델별 특성을 이용하는 공격으로, 예를 들어 특정 스위치에게 적용하는 플로우 룰의 매치 필드를 해당 스위치에서 저사양 (low specification) 으로만 지원하는 값으로 변경하여, 스위치의 패킷 처리를 느려지게 하는 방식의 공격에 대한 것이다. Seventh, Switch Firmware Abuse (C-02-M) is an attack using the model-specific characteristics of switch firmware. For example, the match field of a flow rule applied to a specific switch is low- To a value supported only by the switch, thereby slowing packet processing of the switch.

여덟번째로 제어 메시지 조작 (C-03-M, Control Message Manipulation)은 조작된 플로우 룰을 스위치에게 적용시키는 공격에 대한 것이다. Eighth, Control Message Manipulation (C-03-M) is for attacks that apply manipulated flow rules to switches.

표 1의 취약점들은 발생 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류될 수 있으며, 이는 도 3을 참고하여 설명한다. The vulnerabilities in Table 1 can be classified into a control plane, a data plane, and a control channel category according to their location, which will be described with reference to FIG.

도 3은 SDN 네트워크에 발생할 수 있는 취약점들을 발생 위치에 태깅하여 표현한 것이다. FIG. 3 is a representation of vulnerabilities that may occur in the SDN network at the occurrence location.

도 3에 도시되는 바와 같이 서비스 체인 간섭 (A-2, Service Chain Interference), 제어 메시지 남용 (A-5, Control Message Abuse), 어플리케이션 API 조작 (A-6, Northbound API Abuse), 자원 고갈 (A-7, Resource Exhaustion) 및 시스템 커멘드 실행 (A-9, System Command Execution)은 SDN의 컨트롤 플레인(100) 중 어플리케이션 레이어(310)에 발생할 수 있다. 3, Service Chain Interference (A-2), Control Message Abuse (A-5), Application API operation (A-6, Northbound API Abuse), resource depletion (Resource Exhaustion) and System Command Execution (A-9, System Command Execution) may occur in the application layer 310 of the control plane 100 of the SDN.

나아가 패킷인 플러딩 (A-1, Packet-In Flooding), 저장소 조작 (A-3, Internal Storage Abuse), 제어 메시지 조작 (A-4, Control Message Manipulation) 및 네트워크 토폴로지 오염 (A-10, Network Topology Poisoning)은 SDN의 컨트롤 플레인(100) 중 컨트롤 레이어(320)에 발생할 수 있다. A-1, Packet-In Flooding, A-3, Internal Storage Abuse , A-4, Control Message Manipulation and Network Topology Pollution (A-10, Network Topology Poisoning may occur in the control layer 320 of the control plane 100 of the SDN.

엿듣기 (B-01, Eavesdrop)및 중간자(B-02, Man-In-The- Middle)는 SDN의 제어 채널(150)에 발생할 수 있다. The eavesdropping (B-01, Eavesdrop) and meson (B-02, Man-In-The-Middle) may occur on the control channel 150 of the SDN.

플로우룰 플러딩 (C-1, Flow Rule Flooding), 스위치 펌웨어 남용 (C-02, Switch Firmware Abuse) 및 제어 메시지 조작 (C-03, Control Message Manipulation)은 SDN의 데이터 플레인(200)의 인프라스트럭처 레이어(330)에 발생할 수 있다. Flow Rule Flooding (C-1), Switch Firmware Abuse (C-02) and Control Message Manipulation (C-03) are performed in the infrastructure layer (330).

다시 도 2에 대한 설명으로 복귀하면, 단계 220에서 취약점 점검 장치는 분석 대상 네트워크의 컨트롤 플레인, 제어 채널, 및 데이터 플레인에 각각 테스트를 위해 네트워크를 공격하거나 퍼징하는 에이전트를 실행시킬 수 있다. Returning now to the description of FIG. 2, in step 220, the vulnerability checking device may execute an agent that attacks or purges the network for testing, respectively, on the control plane, control channel, and data plane of the network under analysis.

보다 구체적으로, 분석 대상 네트워크의 컨트롤러의 어플리케이션 레이어에 어플리케이션 에이전트를, 컨트롤 채널에 채널 에이전트를, 나아가 네트워크의 네트워크 장비에 호스트 에이전트를 실행시킬 수 있다. More specifically, it is possible to execute an application agent in an application layer of a controller of a network to be analyzed, a channel agent in a control channel, and a host agent in a network device of the network.

이후 취약점 점검 장치는 상기 에이전트가 취약점 데이터베이스에서 제공하는 정보에 따라 분석 대상 네트워크를 공격하도록 제어할 수 있다. 또는 상기 취약점 데이터베이스에 기록되지 않은, 알려지지 않은 취약점이 네트워크에 존재하는지 여부를 테스트하기 위해 분석 대상 네트워크를 퍼징하도록 제어할 수도 있다. (단계 230)Thereafter, the vulnerability checking apparatus can control the agent to attack the analysis target network according to information provided from the vulnerability database. Or to purge the network to be analyzed to test whether unknown vulnerabilities not present in the vulnerability database exist in the network. (Step 230)

예를 들어 어플리케이션 에이전트는 취약점 데이터베이스의 컨트롤 플레인 카테고리에 포함되는 취약점 정보에 따라 공격하고, 채널 에이전트는 취약점 데이터베이스의 컨트롤 채널 카테고리에 포함되는 취약점 정보에 따라 공격하고, 호스트 에이전트는 취약점 데이터베이스의 데이터 플레인 카테고리에 포함되는 취약점 정보에 따라 공격하도록 제어할 수 있다. For example, the application agent attacks according to the vulnerability information included in the control plane category of the vulnerability database, the channel agent attacks according to the vulnerability information included in the control channel category of the vulnerability database, and the host agent attacks the data plane category Based on the vulnerability information included in the vulnerability information.

본 발명에 따르면, 위와 같이 분석 대상 네트워크를 구성하는 3가지 영역에 각각의 에이전트를 실행시키고, 에이전트 별로 해당 카테고리의 공격 코드에 따라 네트워크를 공격하도록 하여, 분석 대상 네트워크에 미리 알려진 취약점이 존재하는지 여부를 효율적으로 스캔할 수 있다. According to the present invention, the respective agents are executed in the three areas constituting the analysis target network as described above, and the network is attacked according to the attack code of the category for each agent, Can be efficiently scanned.

한편 퍼징은 알려지지 않은 취약점이 존재하는지 여부를 점검하기 위한 기법이다. 보다 구체적으로, 취약점 점검 장치는 분석 대상 네트워크에 무작위 데이터를 무작위로 적용하고 네트워크의 반응을 테스트할 수 있다. 예를 들어 취약점 점검 장치는 각각의 에이전트에게 해당 위치에 무작위 데이터를 적용하도록 제어할 수 있다.On the other hand, purging is a technique for checking whether an unknown vulnerability exists. More specifically, the vulnerability checking device can randomly apply random data to the network under test and test the response of the network. For example, the vulnerability checker can control each agent to apply random data to that location.

본 발명의 실시예를 따르면, 위와 같은 퍼징으로 종래에 발견되지 않았던 새로운 취약점이 발견되거나 및/또는 종래의 취약점에 대한 새로운 정보가 획득되면, 퍼징 결과를 취약점 데이터베이스에 업데이트할 수 있다. According to an embodiment of the present invention, if a new vulnerability is found that has not been found previously in the above purging and / or new information about a conventional vulnerability is obtained, the purging result can be updated to the vulnerability database.

이후 취약점 분석 장치는 에이전트의 공격에 대한 결과 및/또는 퍼징 결과를 수집하여 분석 대상 네트워크의 취약점을 분석하고 분석 결과를 제공할 수 있다. (단계 240)Then, the vulnerability analysis device can analyze the vulnerability of the analyzed network and provide the analysis result by collecting the result and / or the purging result of the attack of the agent. (Step 240)

예를 들어, 취약점 분석 장치는 특정 취약점을 목표로 하는 공격 수행 결과에 대한 리포트, 분석 대상 네트워크에 존재하는 취약점의 위치, 원인, 분석 대상 네트워크가 어떤 공격을 어느 정도 흡수할 수 있는지에 대한 통계 및/또는 취약점에 대한 해결 방안 등을 제공할 수 있다. For example, the Vulnerability Analyzer displays reports on the outcome of an attack that targets a specific vulnerability, the location and cause of the vulnerability in the network being analyzed, statistics on how well the network can absorb attacks, And / or a solution to the vulnerability.

도 4는 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크의 취약점 분석 프레임워크의 소프트웨어 구성을 설명하기 위한 도면이다. 4 is a diagram for explaining a software configuration of a vulnerability analysis framework of a software defined network according to an embodiment of the present invention.

본 발명의 실시예를 따르는 취약점 분석 프레임워크는 도 4에 도시된 에이전트 메니저 (410), 어플리케이션 에이전트 (420), 채널 에이전트 (430) 및 호스트 에이전트(440)를 포함할 수 있다. The vulnerability analysis framework according to an embodiment of the present invention may include the agent manager 410, the application agent 420, the channel agent 430 and the host agent 440 shown in FIG.

특히 에이전트 메니저(410)는 취약점 데이터베이스를 획득하고, 어플리케이션 에이전트 (420), 채널 에이전트 (430) 및 호스트 에이전트(440)를 도 4에 도시된 각각의 위치에 실행시키고, 각각의 에이전트에게 취약점 데이터베이스를 토대로 각 카테고리의 공격을 실행하도록 제어하고, 공격 결과를 수집 및 분석할 수 있다. Particularly, the agent manager 410 obtains the vulnerability database, and executes the application agent 420, the channel agent 430, and the host agent 440 in the respective locations shown in FIG. 4, Based on this, you can control to execute attacks in each category, and collect and analyze attack results.

나아가 에이전트 메니저(410)는 상기 에이전트에게 해당 위치에 무작위 데이터를 적용하도록 제어하고, 퍼징 결과를 수집 및 분석할 수 있다. Further, the agent manager 410 may control the agent to apply random data to the corresponding location, and may collect and analyze the purging result.

나아가 본 발명의 실시예를 따르면 취약점을 진단하기 위한 공격은 도 4의 450과 같은 GUI로 제공될 수도 있다. Further, according to the embodiment of the present invention, an attack for diagnosing a vulnerability may be provided by a GUI such as 450 in FIG.

본 명세서와 도면에 게시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에게 자명한 것이다. The embodiments of the present invention disclosed in the present specification and drawings are intended to be illustrative only and not intended to limit the scope of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

100 : 컨트롤러 서버
150: 제어 채널
200 : 오픈플로우 스위치
300, 300a, 300b : 호스트
100: Controller server
150: control channel
200: Open flow switch
300, 300a, 300b: Host

Claims (8)

SDN (Software Defined Networking) 네트워크의 취약점을 분석하는 방법에 있어서,
임의의 SDN 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점을 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드를 포함하는 취약점 데이터베이스를 획득하는 단계;
분석 대상 SDN 네트워크에 적어도 하나 이상의 에이전트를 실행시키고, 상기 취약점 데이터베이스를 토대로 공격하는 제 1 테스트 단계; 및
상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 단계를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
In a method for analyzing a vulnerability of a Software Defined Networking (SDN) network,
At least one vulnerability that can occur in an arbitrary SDN network is classified into a control plane, a data plane, and a control channel according to an attack location, and an attack code for the vulnerability is included Obtaining a vulnerability database;
A first test step of executing at least one agent on an SDN network to be analyzed and attacking based on the vulnerability database; And
And analyzing a vulnerability of the network to be analyzed by collecting the first test result.
제 1항에 있어서,
상기 분석 대상 네트워크에 무작위 데이터를 적용하여 퍼징하는 제 2 테스트 단계;
상기 제 2 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 단계; 및
상기 제 2 테스트 결과에 대해 상기 취약점 데이터베이스를 업데이트하는 단계를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
The method according to claim 1,
A second test step of applying random data to the analysis target network and purging the random data;
Collecting the second test result and analyzing the vulnerability of the network to be analyzed; And
And updating the vulnerability database with respect to the second test result.
제 1항에 있어서, 상기 제 1 테스트 단계는,
상기 분석 대상 네트워크의 컨트롤러에 어플리케이션 에이전트를 실행시키고, 상기 어플리케이션 에이전트에게 상기 취약점 데이터베이스의 상기 컨트롤 플레인 카테고리에 포함되는 취약점 정보에 따라 공격하도록 제어하는 단계;
상기 분석 대상 네트워크의 컨트롤 채널에 채널 에이전트를 실행시키고, 상기 채널 에이전트에게 상기 취약점 데이터베이스의 상기 컨트롤 채널 카테고리에 포함되는 취약점 정보에 따라 공격하도록 제어하는 단계; 및
상기 분석 대상 네트워크의 네트워크 장비에 호스트 에이전트를 실행시키고, 상기 호스트 에이전트에게 상기 취약점 데이터베이스의 상기 데이터 플레인 카테고리에 포함되는 취약점에 대해 공격하도록 제어하는 단계를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
2. The method of claim 1, wherein the first test step comprises:
Executing an application agent on a controller of the network to be analyzed and controlling the application agent to attack according to vulnerability information included in the control plane category of the vulnerability database;
Executing a channel agent on a control channel of the analysis target network and controlling the channel agent to attack according to vulnerability information included in the control channel category of the vulnerability database; And
Executing a host agent in the network equipment of the analysis target network and controlling the host agent to attack a vulnerability included in the data plane category of the vulnerability database.
제 1항에 있어서, 상기 취약점 데이터베이스는,
상기 컨트롤 플레인 카테고리에,
다수의 어플리케이션들의 연결된 실행(chained excution)을 하기 위해 필요한 제어 메시지를 드랍(drop)하거나 무한 루프에 빠지게 하는 공격에 대한 취약점, 악성 어플리케이션이 임의로 플로우 룰을 발행하여 플로우 테이블을 변경시키는 공격에 대한 취약점, 임의의 어플리케이션의 이벤트 수신을 불가능하게 하거나 임의의 어플리케이션을 축출(exploit)하도록 컨트롤러의 API를 변경하는 공격에 대한 취약점, 또는 컨트롤러의 시스템 시간을 조작하는 공격에 대한 취약점 중 적어도 하나 이상에 대한 정보를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
The system according to claim 1,
In the control plane category,
A vulnerability to an attack that drops a control message necessary for chained excution of a plurality of applications or causes an infinite loop to be dropped; a vulnerability to an attack that a malicious application arbitrarily issues a flow rule to change a flow table , A vulnerability to an attack that alters a controller's API to disallow receiving an event from any application or to exploit an arbitrary application, or a vulnerability to an attack that manipulates the controller's system time And analyzing the network vulnerability information.
제 1항에 있어서, 상기 취약점 데이터베이스는,
상기 데이터 플레인 카테고리에,
특정 스위치에게 적용되는 플로우 룰의 매치 필드를 상기 스위치에서 저사양 (low specification)으로 지원하는 값으로 변경하는 공격에 대한 취약점, 또는 조작된 플로우 룰을 스위치에게 적용시키는 공격에 대한 취약점 중 적어도 하나 이상에 대한 정보를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
The system according to claim 1,
In the data plane category,
A vulnerability to an attack that changes a match field of a flow rule applied to a specific switch to a value that supports a low specification at the switch or a vulnerability to an attack that applies a manipulated flow rule to a switch The network vulnerability analysis method comprising:
제 1항에 있어서, 상기 취약점 데이터베이스는,
상기 컨트롤 채널 카테고리에,
컨트롤러와 스위치 사이의 패킷을 도청하여 네트워크 토폴로지 정보를 획득하는 공격에 대한 취약점, 또는 상기 패킷을 수정하여 상기 네트워크 토폴로지를 변경하는 공격에 대한 취약점 중 적어도 하나 이상에 대한 정보를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 방법.
The system according to claim 1,
In the control channel category,
A vulnerability to an attack for acquiring network topology information by eavesdropping a packet between a controller and a switch or a vulnerability to an attack for modifying the network topology by modifying the packet, Network vulnerability analysis method.
소프트웨어 정의 네트워크의 취약점을 분석하는 장치에 있어서,
소프트웨어 정의 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점에 대해 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드 정보를 포함하는 취약점 데이터베이스를 저장하는 저장부; 및
분석 대상 네트워크에 적어도 하나 이상의 에이전트를 실행시키고, 상기 취약점 데이터베이스를 토대로 공격하고, 상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 제어부를 포함하는 것을 특징으로 하는 네트워크 취약점 분석 장치.
An apparatus for analyzing a vulnerability of a software defined network,
Software Defined Classify at least one vulnerability that can occur in the network into the control plane, data plane, and control channel category according to attack location, A storage unit for storing a vulnerability database including the vulnerability database; And
And analyzing a vulnerability of the analysis target network by executing at least one agent on the analysis target network, attacking the vulnerability database, and analyzing the vulnerability of the analysis target network by collecting the first test result.
소프트웨어 정의 네트워크의 취약점을 분석하는 처리를 수행하기 위하여 매체에 저장된 어플리케이션에 있어서,
소프트웨어 정의 네트워크에서 발생할 수 있는 적어도 하나 이상의 취약점에 대해 공격 위치에 따라 컨트롤 플레인(control plane), 데이터 플레인(data plane) 및 컨트롤 채널(control channel) 카테고리로 분류하고, 해당 취약점에 대한 공격 코드 정보를 포함하는 취약점 데이터베이스를 획득하는 기능;
분석 대상 네트워크에 적어도 하나 이상의 에이전트를 실행시키고 상기 취약점 데이터베이스를 토대로 공격하는 제 1 테스트 기능; 및
상기 제 1 테스트 결과를 수집하여 상기 분석 대상 네트워크의 취약점을 분석하는 기능을 수행하는 것을 특징으로 하는 컴퓨터 프로그램.
In an application stored in a medium for performing a process of analyzing a vulnerability of a software defined network,
Software Defined Classify at least one vulnerability that can occur in the network into the control plane, data plane, and control channel category according to attack location, The ability to obtain a vulnerability database containing;
A first test function for executing at least one agent on the network to be analyzed and attacking based on the vulnerability database; And
And analyzing a vulnerability of the analysis target network by collecting the first test result.
KR1020150081885A 2015-06-10 2015-06-10 Method, apparatus and computer program for analzing vulnerability of software defined network KR101692155B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150081885A KR101692155B1 (en) 2015-06-10 2015-06-10 Method, apparatus and computer program for analzing vulnerability of software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150081885A KR101692155B1 (en) 2015-06-10 2015-06-10 Method, apparatus and computer program for analzing vulnerability of software defined network

Publications (2)

Publication Number Publication Date
KR20160145373A true KR20160145373A (en) 2016-12-20
KR101692155B1 KR101692155B1 (en) 2017-01-02

Family

ID=57734321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150081885A KR101692155B1 (en) 2015-06-10 2015-06-10 Method, apparatus and computer program for analzing vulnerability of software defined network

Country Status (1)

Country Link
KR (1) KR101692155B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180107932A (en) 2017-03-23 2018-10-04 한국과학기술원 Apparatus, method and computer program for malware detection of software defined network
KR20190004420A (en) 2017-07-04 2019-01-14 한국과학기술원 Method, systtem and computer program for permission modeling of software defined network
KR20190049322A (en) * 2017-11-01 2019-05-09 숭실대학교산학협력단 Forensic server and Method for identifying the cause of attack on software defined network
KR20200083214A (en) * 2018-12-28 2020-07-08 한국과학기술원 Dynamic security analysis method for control plane and system therefore
KR102386232B1 (en) * 2020-10-23 2022-04-13 한국과학기술원 Method and apparatus for detecting cross-site request forgery vulnerabilities for web interface of software defined network

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461707B1 (en) 2017-12-07 2022-11-02 삼성전자주식회사 Server and method for depending malicious code using thereof
US11381588B2 (en) 2019-07-30 2022-07-05 Saudi Arabian Oil Company Cybersecurity vulnerability classification and remediation based on installation base
KR102587055B1 (en) 2021-10-26 2023-10-11 인천대학교 산학협력단 System for Detecting Anomaly Computing Based on Artificial Intelligence

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110069621A1 (en) * 2009-09-23 2011-03-24 Noah Gintis Network Testing Using Control Plane and Data Plane Convergence
US9007922B1 (en) * 2013-05-23 2015-04-14 Juniper Networks, Inc. Systems and methods for testing and analyzing controller-based networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110069621A1 (en) * 2009-09-23 2011-03-24 Noah Gintis Network Testing Using Control Plane and Data Plane Convergence
US9007922B1 (en) * 2013-05-23 2015-04-14 Juniper Networks, Inc. Systems and methods for testing and analyzing controller-based networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Danai Chasaki, IEEE Transactions on Dependable and Secure Computing (Volume:9, Issue:6), "Attacks and Defenses in the Data Plane of Networks", (2012.12. 공개) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180107932A (en) 2017-03-23 2018-10-04 한국과학기술원 Apparatus, method and computer program for malware detection of software defined network
KR20190004420A (en) 2017-07-04 2019-01-14 한국과학기술원 Method, systtem and computer program for permission modeling of software defined network
KR20190049322A (en) * 2017-11-01 2019-05-09 숭실대학교산학협력단 Forensic server and Method for identifying the cause of attack on software defined network
KR20200083214A (en) * 2018-12-28 2020-07-08 한국과학기술원 Dynamic security analysis method for control plane and system therefore
KR102386232B1 (en) * 2020-10-23 2022-04-13 한국과학기술원 Method and apparatus for detecting cross-site request forgery vulnerabilities for web interface of software defined network

Also Published As

Publication number Publication date
KR101692155B1 (en) 2017-01-02

Similar Documents

Publication Publication Date Title
KR101692155B1 (en) Method, apparatus and computer program for analzing vulnerability of software defined network
AU2019216687B2 (en) Path scanning for the detection of anomalous subgraphs and use of DNS requests and host agents for anomaly/change detection and network situational awareness
Nobakht et al. A host-based intrusion detection and mitigation framework for smart home IoT using OpenFlow
US20210281571A1 (en) Enhanced smart process control switch port lockdown
KR101679578B1 (en) Apparatus and method for providing controlling service for iot security
KR102017810B1 (en) Preventive Instrusion Device and Method for Mobile Devices
Radoglou-Grammatikis et al. Attacking iec-60870-5-104 scada systems
Gregorczyk et al. Sniffing detection based on network traffic probing and machine learning
Joëlle et al. Strategies for detecting and mitigating DDoS attacks in SDN: A survey
Unal et al. Towards prediction of security attacks on software defined networks: A big data analytic approach
Lin Sdn-based in-network honeypot: Preemptively disrupt and mislead attacks in iot networks
Tippenhauer et al. Vbump: Securing ethernet-based industrial control system networks with vlan-based traffic aggregation
Burke et al. Misreporting attacks against load balancers in software-defined networking
Zhang et al. Towards verifiable performance measurement over in-the-cloud middleboxes
Wang et al. A lightweight SDN fingerprint attack defense mechanism based on probabilistic scrambling and controller dynamic scheduling strategies
Hori et al. A comprehensive security analysis checksheet for OpenFlow networks
Salazar et al. Enhancing the resiliency of cyber-physical systems with software-defined networks
Nowak et al. Cognitive routing for improvement of IoT security
Zhang et al. Toward comprehensive network verification: Practices, challenges and beyond
Bikbulatov et al. Simulation of DDoS attack on software defined networks
Zeitlin Fingerprinting software defined networks and controllers
Acosta et al. Survivability prediction of ad hoc networks under attack
CN115189905B (en) Network communication and safety control integrated machine and working method thereof
Liu et al. Community Cleanup: Incentivizing Network Hygiene via Distributed Attack Reporting
KR20180045214A (en) SDN to prevent an attack on the host tracking service and controller including the same

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 4

R401 Registration of restoration