KR20190049322A - Forensic server and Method for identifying the cause of attack on software defined network - Google Patents

Forensic server and Method for identifying the cause of attack on software defined network Download PDF

Info

Publication number
KR20190049322A
KR20190049322A KR1020170181020A KR20170181020A KR20190049322A KR 20190049322 A KR20190049322 A KR 20190049322A KR 1020170181020 A KR1020170181020 A KR 1020170181020A KR 20170181020 A KR20170181020 A KR 20170181020A KR 20190049322 A KR20190049322 A KR 20190049322A
Authority
KR
South Korea
Prior art keywords
information
log
switch
extracted
software defined
Prior art date
Application number
KR1020170181020A
Other languages
Korean (ko)
Other versions
KR102006553B1 (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 KR20190049322A publication Critical patent/KR20190049322A/en
Application granted granted Critical
Publication of KR102006553B1 publication Critical patent/KR102006553B1/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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/146Tracing the source of attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches

Abstract

Disclosed are a forensic server for identifying a cause of an attack performed on a software defined network and a method thereof. The forensic server comprises: a collection unit for collecting evidence data existing in the software defined network; an extracting unit for extracting pieces of information including execution event information of an application log, host profile information, link database information, event information of an API log, switch flow rule information, and switch runtime log information from the collected evidence data; and a search unit for inputting the extracted pieces of information into a machine learning algorithm to search for a host that has performed the network attack.

Description

소프트웨어 정의 네트워크에 수행된 공격을 원인을 파악하는 포렌식 서버 및 그 방법{Forensic server and Method for identifying the cause of attack on software defined network}[0002] Forensic server and method for identifying the cause of an attack performed on a software defined network and a method thereof [0002]

본 발명의 실시예들은 소프트웨어 정의 네트워크에 수행된 공격을 원인을 파악하는 포렌식 서버 및 그 방법에 관한 것이다. Embodiments of the present invention relate to a forensic server and method for identifying the cause of an attack performed on a software defined network.

인터넷은 우리의 일상에서 이제 불가분의 중요한 역할을 하고 있으며 사물 인터넷이 본격적으로 일상에 적용될 시에는 이 역할은 더욱 커질 것이라 예상한다. 하지만 종래의 네트워크 장비는 미리 정해진 룰에 따라 작동이 되는 시스템으로서, 관리 시 어려움이 있으며, 새로운 기능을 추가 할 시에는 연관된 모든 장비를 업데이트 또는 교체해야 하는 불편함이 존재한다. 그리고, 각종 새로운 악성 공격으로부터도 보안 상의 취약성을 보이고 있다. The Internet plays an integral and important role in our daily lives, and we expect that this role will grow even more when the Internet of Things is applied to everyday life. However, the conventional network equipment operates in accordance with predetermined rules, which is difficult to manage, and when adding new functions, it is inconvenient to update or replace all related equipment. And it shows security vulnerabilities from various new malicious attacks.

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

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

하지만, 이러한 소프트웨어 정의 네트워크의 특징을 이용하여 수많은 보안 공격들이 가해지고 있는 실정이며, 잠재적인 보안 공격들 또한 존재한다. 소프트웨어 정의 네트워크의 개방성과 유연성은 특히 클라우드 서비스 및 데이터 센터에 대한 네트워크에 큰 변화를 가져오지만, 단일 실패 지점과 같은 문제가 발생하여 southbound와 northbound에 인접한 인터페이스 프로토콜의 보안을 제어할 수 없다.However, there are numerous security attacks using features of this software-defined network, and there are also potential security attacks. The openness and flexibility of software-defined networks make a big difference, especially for cloud service and data center networks, but they can not control the security of the interface protocols adjacent to southbound and northbound due to problems such as single point of failure.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 소프트웨어 정의 네트워크에 수행된 공격을 원인을 파악하는 포렌식 서버 및 그 방법을 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention proposes a forensic server and method for detecting the cause of an attack performed in a software defined network.

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

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 소프트웨어 정의 네트워크에 존재하는 증거 데이터를 수집하는 수집부; 상기 수집된 증거 데이터로부터 애플리케이션 로그의 실행 이벤트 정보, 호스트 프로파일 정보, 링크 데이터베이스 정보, API 로그의 이벤트 정보, 스위치 플로우 규칙 정보 및 스위치 런타임 로그 정보를 포함하는 정보들을 추출하는 추출부; 및 상기 추출된 정보들을 머신 러닝 알고리즘에 입력하여 네트워크 공격을 수행한 호스트를 검색하는 검색부;를 포함하는 것을 특징으로 하는 포렌식 서버가 제공된다. In order to accomplish the above object, according to a preferred embodiment of the present invention, there is provided a computer-readable recording medium having a collection unit for collecting evidence data existing in a software defined network; An extraction unit for extracting information including execution event information of the application log, host profile information, link database information, event information of the API log, switch flow rule information, and switch run time log information from the collected evidence data; And a search unit for inputting the extracted information into a machine learning algorithm to search for a host that has performed a network attack.

상기 수집된 증거 데이터는, 상기 애플리케이션 로그, 컨트롤러 서비스 로그, northbound API 로그, southbound API 로그, 스위치 플로우 규칙, 및 스위치 런타임 로그를 포함할 수 있다. The collected evidence data may include the application log, the controller service log, the northbound API log, the southbound API log, the switch flow rules, and the switch runtime log.

상기 애플리케이션 로그의 실행 이벤트 정보는 상기 애플리케이션 로그에서 추출되고, 상기 호스트 프로파일 정보 및 상기 링크 데이터베이스 정보는 상기 컨트롤러 서비스 로그에서 추출되고, API 로그의 이벤트 정보는 상기 northbound API 로그 및 상기 southbound API 로그에서 추출되고, 상기 스위치의 플로우 규칙 정보는 상기 스위치 플로우 규칙에서 추출되고, 상기 스위치 런타임 로그 정보는 상기 스위치 런타임 로그에서 추출될 수 있다. Execution event information of the application log is extracted from the application log, the host profile information and the link database information are extracted from the controller service log, and event information of the API log is extracted from the northbound API log and the southbound API log The flow rule information of the switch is extracted from the switch flow rule, and the switch run time log information can be extracted from the switch run time log.

상기 머신 러닝 알고리즘은 SVM(Support Vector Machine) 알고리즘이고, 상기 추출된 정보들이 상기 SVM 알고리즘의 특징들(features)로 입력될 수 있다. The machine learning algorithm is a SVM (Support Vector Machine) algorithm, and the extracted information can be input as features of the SVM algorithm.

상기 포렌식 서버는, 상기 소프트웨어 정의 네트워크의 비정상 동작 데이터 및 정상 동작 데이터를 포함하는 기록 데이터를 저장하는 데이터베이스;를 더 포함하되, 상기 검색부는 상기 데이터베이스에 저장된 기록 데이터를 더 이용하여 상기 네트워크 공격을 수행한 호스트를 검색할 수 있다. The forensic server further includes a database for storing record data including abnormal operation data and normal operation data of the software defined network, wherein the search unit further performs the network attack using the record data stored in the database You can search for one host.

또한 본 발명의 다른 실시예에 따르면, 프로세서가 포함된 장치에서 수행되는 포렌식 방법에 있어서, 소프트웨어 정의 네트워크에 존재하는 증거 데이터를 수집하는 단계; 상기 수집된 증거 데이터로부터 애플리케이션 로그의 실행 이벤트 정보, 호스트 프로파일 정보, 링크 데이터베이스 정보, API 로그의 이벤트 정보, 스위치 플로우 규칙 정보 및 스위치 런타임 로그 정보를 포함하는 정보들을 추출하는 단계; 및 상기 추출된 정보들을 머신 러닝 알고리즘에 입력하여 네트워크 공격을 수행한 호스트를 검색하는 단계;를 포함하는 것을 특징으로 하는 포렌식 방법이 제공된다. According to another embodiment of the present invention, there is provided a forensic method performed in an apparatus including a processor, the method comprising: collecting evidence data present in a software defined network; Extracting information including execution event information of the application log, host profile information, link database information, event information of the API log, switch flow rule information, and switch runtime log information from the collected evidence data; And inputting the extracted information to a machine learning algorithm to search for a host that has performed a network attack.

본 발명에 따르면, 소프트웨어 정의 네트워크에 수행된 공격을 원인을 정확하게 파악하는 장점이 있다. According to the present invention, there is an advantage of accurately grasping the cause of an attack performed on a software defined network.

또한, 본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.It should be understood that the effects of the present invention are not limited to the above effects and include all effects that can be deduced from the detailed description of the present invention or the configuration of the invention described in the claims.

도 1은 소프트웨어 정의 네트워크의 기본 구조를 도시한 도면이다.
도 2는 소프트웨어 정의 네트워크에 사용되는 OpenFlow의 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 포렌식 서버의 개략적인 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 포렌식 방법의 흐름도를 도시한 도면이다.
도 5는 SVM 알고리즘의 개념을 설명하기 위한 도면이다.
1 is a diagram showing a basic structure of a software defined network.
2 is a diagram showing a structure of OpenFlow used in a software defined network.
FIG. 3 is a diagram showing a schematic configuration of a forensic server according to an embodiment of the present invention.
4 is a flowchart illustrating a forensic method according to an embodiment of the present invention.
5 is a diagram for explaining the concept of the SVM algorithm.

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

이하, 본 발명의 대상이 되는 소프트웨어 정의 네트워크(SDN: Software Defined Network)에 대해 간략하게 설명하기로 한다. Hereinafter, a Software Defined Network (SDN) as an object of the present invention will be briefly described.

도 1은 소프트웨어 정의 네트워크의 기본 구조를 도시한 도면이고, 도 2는 소프트웨어 정의 네트워크에 사용되는 OpenFlow의 구조를 도시한 도면이다. FIG. 1 is a diagram showing a basic structure of a software defined network, and FIG. 2 is a diagram showing a structure of OpenFlow used in a software defined network.

도 1을 참조하면, 소프트웨어 정의 네트워크는 크게 데이터 평면(data plane)과 대응되는 인프라스트럭처 계층(infrastructure layer)과, 컨트롤 평면(control plane)과 대응되는 컨트롤 계층(control layer)과, 애플리케이션 계층(application layer)으로 나뉜다. 데이터 계층은 소프트웨어 정의 네트워크의 특정 인터페이스를 통해 제어를 받는 계층으로서, 데이터 흐름의 전송을 담당한다. 컨트롤 계층은 데이터의 흐름을 제어하는 계층으로서 애플리케이션과 네트워크 서비스를 통하여 데이터 흐름을 라우팅 할 것인지, 전달을 할 것인지, 거절할 것인지를 결정한다. 또한 데이터 계층의 동작들을 정리하여 API(Application Programming Interface) 형태로 애플리케이션 계층에 전달한다. 마지막으로 애플리케이션 계층은 제어 계층에서 제공한 API들을 이용하여 네트워크의 다양한 기능들을 수행 할 수 있도록 한다.Referring to FIG. 1, a software defined network includes an infrastructure layer corresponding to a data plane, a control layer corresponding to a control plane, an application layer layer. The data layer is a layer that receives control through a specific interface of a software defined network and is responsible for the transmission of the data flow. The control layer is the layer that controls the flow of data and determines whether to route, forward, or reject the data flow through applications and network services. In addition, the operations of the data layer are summarized and transmitted to the application layer in the form of API (Application Programming Interface). Finally, the application layer enables various functions of the network to be performed using APIs provided by the control layer.

한편, 전통적인 네트워크에서 라우터, 스위치와 같은 네트워크 장비는 트래픽 제어와 규칙을 담당한다. 그러므로 네트워크의 라우팅 정보는 스위치와 라우터에서 저장한다. 이와 같은 네트워크 구조는 네트워크가 변화할 때마다 관리자가 관련 인터넷 설비를 배치해야 한다는 문제가 있고, 데이터 센터나 그룹 네트워크 환경은 잦은 네트워크 변화로 자원을 낭비한다.On the other hand, in traditional networks, network devices such as routers and switches are responsible for traffic control and rules. Therefore, the routing information of the network is stored in the switch and the router. Such a network structure has a problem in that administrators have to place related 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 used as an interface specification between a controller and a network device that complements the disadvantages of the conventional network. Referring to FIG. 2, OpenFlow separates a control plane and a data plane from each other to operate a network, thereby separating a function for controlling network traffic from a function for delivering and controlling the network by creating software . Using the OpenFlow protocol, control and data planes can be implemented in software rather than hardware, and the software can be installed on a general-purpose server to quickly implement new functionality.

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

상기에서 설명된 내용을 참조하여, 본 발명이 일 실시예에 따른 포렌식 서버 및 방법을 설명하기로 한다. With reference to the above description, the forensic server and method according to an embodiment of the present invention will be described.

도 3은 본 발명의 일 실시예에 따른 포렌식 서버의 개략적인 구성을 도시한 도면이다. FIG. 3 is a diagram showing a schematic configuration of a forensic server according to an embodiment of the present invention.

도 3을 참조하면, 포렌식 서버(300)는 소프트웨어 정의 네트워크에 가해진 공격의 원인을 분석 내지 파악하여 공격자를 검색하는 기능을 수행하는 장치로서, 소프트웨어 정의 네트워크에서 디지털 증거 내지 증거 데이터를 수집하고, 이를 통해 공격의 원인을 분석한다. 이를 위해, 포렌식 서버(300)는 수집부(310), 추출부(320), 검색부(330) 및 데이터베이스(340)를 포함한다. Referring to FIG. 3, the forensic server 300 is a device that performs a function of searching for an attacker by analyzing or grasping the cause of an attack applied to a software defined network, and collects digital evidence or evidence data in a software defined network, Analyze the cause of the attack through. To this end, the forensic server 300 includes a collecting unit 310, an extracting unit 320, a searching unit 330, and a database 340.

그리고, 도 4는 본 발명의 일 실시예에 따른 포렌식 서버(300)의 동작인 포렌식 방법의 흐름도를 도시한 도면이다. 4 is a flowchart illustrating a forensic method that is an operation of the forensic server 300 according to an embodiment of the present invention.

이하, 각 구성 요소 별로 그 기능 및 각 단계 별로 수행되는 과정을 상세하게 설명하기로 한다. Hereinafter, the function of each component and the process performed for each step will be described in detail.

단계(410)에서, 수집부(310)는 소프트웨어 정의 네트워크에 존재하는 증거 데이터를 수집한다. At step 410, the collection unit 310 collects evidence data residing in the software defined network.

본 발명의 일 실시예에 따르면, 증거 데이터는 애플리케이션 로그(application logs), 컨트롤러 서비스 로그(controller service logs), northbound API 로그(Northbound API logs), southbound API 로그(southbound API logs), 스위치 플로우 규칙(switch flow rules) 및 스위치 런타임 로그(switch runtime logs)를 포함한다. According to one embodiment of the present invention, the evidence data includes application logs, controller service logs, northbound API logs, southbound API logs, switch flow rules, and switch runtime logs.

애플리케이션 로그는 애플리케이션으로부터 전송된 요청에 대한 정보가 포함한다. 즉, 애플리케이션이 실행되는 경우 수행되는 이벤트들의 정보가 포함된다. 여기서, 이벤트는 애플리케이션이 실행되거나 중지되거나 호스트가 소프트웨어 정의 네트워크에 연결되거나 끊어지는 등과 같이 소프트웨어 정의 네트워크에서 일어나는 동작을 의미한다. The application log contains information about the request sent from the application. That is, information of events to be performed when an application is executed is included. Here, an event refers to an operation occurring in a software defined network, such as when an application is executed or stopped, or when a host is connected to or disconnected from a software defined network.

일례로서, 애플리케이션 로그는 엑세스 로그(access logs) 및 오류 로그(error logs)를 포함한다. 엑세스 로그는 누구 또는 어디로부터 액세스가 제공되었는지 여부, 요청의 성공 상태, 요청 응답 시간에 대한 정보를 포함하고, 오류 로그는 요청을 처리할 때 애플리케이션에서 발생한 오류에 대한 정보를 포함한다. As an example, the application log includes access logs and error logs. The access log contains information about who or where access has been provided, the success status of the request, and the response time of the request, and the error log contains information about the error that occurred in the application when processing the request.

컨트롤러 서비스 로그는 컨트롤러에서 실행되는 서비스 정보가 포함된다. 일례로, 상기 정보에는 호스트 추적 서비스의 정보, 링크 검색 서비스의 정보, 토폴로지 관리자 정보가 포함된다. The controller service log contains information about the services running on the controller. In one example, the information includes information of a host tracking service, information of a link search service, and topology manager information.

northbound API 로그는 northbound 인터페이스에 대한 호출 이벤트를 포함하고, southbound API 로그는 southbound 인터페이스에 대한 호출 이벤트를 포함한다. 즉, northbound 인터페이스 및 southbound 인터페이스는 컨트롤러와 연결되는 두 개의 기본 채널이며, 두 인터페이스는 모두 API 로그와 관련하여 통신 기록(communication record)을 유지함으로써 조사 프로세스(investigation process)를 지원할 수 있다. 또한, API 로그에는 액세스(일례로, 삽입(insertion), 삭제(deletion), 수정(editing), 보기(viewing)), 시간 및 오류와 같은 호출 이벤트가 포함된다. The northbound API log contains a call event for the northbound interface, and the southbound API log contains a call event for the southbound interface. In other words, the northbound interface and the southbound interface are the two underlying channels that are connected to the controller, and both interfaces can support the investigation process by maintaining a communication record with respect to the API log. The API log also includes call events such as access (e.g., insertion, deletion, editing, viewing), time and error.

스위치 플로우 규칙은 openflow 기반의 스위치의 openflow 플로우 엔트리로서, 매치 필드(match fields), 우선 순위(priority), 카운터(counters), 명령(instructions), 쿠키(cookie)를 포함한다. 이 때, 매치 필드는 진입 포트(ingress ports), 패킷 헤더 필드(packet header fields), 이전 플로우 테이블의 메타 데이터(metadata from a previous flow table)로 구성되고, 우선 순위는 엔트리의 일치 우선 순위이며, 카운터는 매칭 패킷의 통계이고, 명령은 세트 또는 파이프 라인의 처리와 대응되고, 쿠키는 컨트롤러가 전송한 Opaque 데이터를 포함한다.A switch flow rule is an openflow flow entry of an openflow-based switch that contains match fields, priority, counters, instructions, and cookies. At this time, the match field is composed of ingress ports, packet header fields, metadata of a previous flow table, the priority is the matching priority of the entry, The counter is a statistic of the matching packet, the command corresponds to the processing of the set or pipeline, and the cookie contains the Opaque data transmitted by the controller.

스위치 런타임 로그는 설정한 데이터 경로, 구성 업데이트, 컨트롤러 연결 상태로의 전환 및 포트 정보에 대한 정보를 포함한다. The switch runtime log contains information about the set data path, configuration update, switch to controller connection state, and port information.

다음으로, 단계(420)에서, 추출부(320)는 수집된 증거 데이터로부터 애플리케이션 로그의 실행 이벤트 정보, 호스트 프로파일 정보, 링크 데이터베이스 정보, API 로그의 이벤트 정보, 스위치 플로우 규칙 정보 및 스위치 런타임 로그 정보를 포함하는 정보들을 추출한다. Next, in step 420, the extracting unit 320 extracts execution event information of the application log, host profile information, link database information, event information of the API log, switch flow rule information, and switch runtime log information And the like.

이 때, 애플리케이션 로그의 실행 이벤트 정보는 애플리케이션 로그에서 추출되는 것으로서, 액세스 로그 및 오류 로그를 포함할 수 있다. At this time, the execution event information of the application log is extracted from the application log, and may include an access log and an error log.

또한, 호스트 프로파일 정보 및 링크 데이터베이스 정보는 컨트롤러 서비스 로그에서 추출될 수 있다. 이 때, 호스트 프로파일 정보는 IP 주소, MAC 주소, 연결된 스위치 포트, 마지막 활성 타임 스탬프와 같은 호스트의 정보를 포함하고, 링크 데이터베이스 정보는 소프트웨어 정의 네트워크 내의 호스트 간 연결 정보(포트-인(port-in) 정보 및 포트-아웃(port-out) 정보)를 포함한다. Further, the host profile information and the link database information can be extracted from the controller service log. In this case, the host profile information includes information of a host such as an IP address, a MAC address, a connected switch port, and a last active time stamp, and the link database information includes information on a host- ) Information and port-out information).

또한, API 로그의 이벤트 정보는 northbound API 로그 및 southbound API 로그에서 추출되는 정보이다. In addition, the event information of the API log is information extracted from the northbound API log and the southbound API log.

그리고, 스위치 플로우 규칙 정보는 스위치 플로우 규칙에서 추출되는 정보이고, 스위치 런타임 로그 정보는 스위치 런타임 로그에서 추출되는 정보로서, OpenFlow 스위치의 테이블에 있는 플로우 및 플로우 규칙이 설정되는 시간과 대응된다. The switch flow rule information is information extracted from the switch flow rule, and the switch run time log information is information extracted from the switch run time log, and corresponds to the time at which the flow and flow rules in the table of the OpenFlow switch are set.

다음으로, 단계(430)에서, 검색부(330)는 추출된 정보들을 머신 러닝 알고리즘에 입력하여 네트워크 공격을 수행한 호스트를 검색한다. 즉, 검색부(330)는 추출된 증거 데이터를 분석하여 소프트웨어 정의 네트워크에서 수행된 공격의 근본 원인을 찾으며, 이상 징후를 감지할 수 있다.Next, in step 430, the search unit 330 inputs the extracted information to the machine learning algorithm to search for a host that has performed a network attack. That is, the search unit 330 analyzes the extracted evidence data, finds the root cause of the attack performed in the software defined network, and can detect an abnormal symptom.

이 때, 검색부(330)는 데이터베이스(340)에 저장되어 있는 기록 데이터를 더 이용하여 네트워크 공격을 수행한 호스트를 검색할 수 있다. 이 때, 기록 데이터는 비정상 동작 데이터 및 정상 동작 데이터를 포함한다. At this time, the search unit 330 can search the host that has performed the network attack by further using the record data stored in the database 340. At this time, the recording data includes abnormal operation data and normal operation data.

또한, 본 발명의 일 실시예에 따르면, 머신 러닝 알고리즘은 SVM(Support Vector Machine) 알고리즘이고, 상기 추출된 정보들이 SVM 알고리즘의 특징들(features)로 입력될 수 있다. Also, according to an embodiment of the present invention, the machine learning algorithm is a SVM (Support Vector Machine) algorithm, and the extracted information may be input as features of the SVM algorithm.

도 5는 SVM 알고리즘의 개념을 설명하기 위한 도면이다. 5 is a diagram for explaining the concept of the SVM algorithm.

도 5를 참조하면, SVM 알고리즘은 감독된 학습 기법(supervised learning technique)으로서, 분류된 데이터(labeled data) 또는 기록 데이터 (historical data)가 필요하다. 이 때, 기록 데이터는 예측 모델을 구축하기 위한 트레이닝 데이터이다. Referring to FIG. 5, the SVM algorithm is a supervised learning technique and requires labeled data or historical data. At this time, the recording data is training data for constructing a prediction model.

그리고, 데이터베이스(340)는 SVM에 대한 기록 데이터를 제공하며, 기록 데이터에는 앞서 언급한 바와 같이 네트워크 비정상 동작 데이터 및 정상 동작 데이터가 포함된다. Then, the database 340 provides the recording data for the SVM, and the recording data includes the network abnormal operation data and the normal operation data as mentioned above.

이 때, 데이터베이스(340)는 특징들을 포함하는 벡터 형태의 데이터로 저장된다. 여기서, 특징들은 상기 추출된 정보와 대응된다. 벡터 데이터 세트를 기반으로 하여, SVM은 예측 모델을 구축하기 위해 두 경우, 즉, 비정상적이고 정상적인 행동 사이의 분리 평면(또는 하이퍼 플레인)을 정의한다. 벡터가 예측 모델에 도달하면 SVM은 새로운 데이터가 비정상적인 동작인지 여부를 판단할 수 있다. At this time, the database 340 is stored as vector-type data including features. Here, the features correspond to the extracted information. Based on the vector data set, the SVM defines a separation plane (or hyperplane) between the two cases, i.e., abnormal and normal behavior, to build the prediction model. When the vector reaches the predictive model, the SVM can determine whether the new data is abnormal.

요컨대, 본 발명에 따른 포렌식 서버(300) 및 방법은 소프트웨어 정의 네트워크에 가해진 공격의 근본 원인을 파악하는 것으로서, 포렌식 서버(300)는 소프트웨어 정의 네트워크와 구분되는 별도의 장치로 구성될 수 있다. In summary, the forensic server 300 and method according to the present invention grasps the root cause of an attack on a software defined network, and the forensic server 300 can be configured as a separate device separate from a software defined network.

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

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

Claims (6)

소프트웨어 정의 네트워크에 존재하는 증거 데이터를 수집하는 수집부;
상기 수집된 증거 데이터로부터 애플리케이션 로그의 실행 이벤트 정보, 호스트 프로파일 정보, 링크 데이터베이스 정보, API 로그의 이벤트 정보, 스위치 플로우 규칙 정보 및 스위치 런타임 로그 정보를 포함하는 정보들을 추출하는 추출부; 및
상기 추출된 정보들을 머신 러닝 알고리즘에 입력하여 네트워크 공격을 수행한 호스트를 검색하는 검색부;를 포함하는 것을 특징으로 하는 포렌식 서버.
A collection unit for collecting evidence data existing in a software defined network;
An extraction unit for extracting information including execution event information of the application log, host profile information, link database information, event information of the API log, switch flow rule information, and switch run time log information from the collected evidence data; And
And a search unit for inputting the extracted information into a machine learning algorithm and searching for a host that has performed a network attack.
제1항에 있어서,
상기 수집된 증거 데이터는, 상기 애플리케이션 로그, 컨트롤러 서비스 로그, northbound API 로그, southbound API 로그, 스위치 플로우 규칙, 및 스위치 런타임 로그를 포함하는 것을 특징으로 하는 포렌식 서버.
The method according to claim 1,
Wherein the collected evidence data includes the application log, the controller service log, the northbound API log, the southbound API log, the switch flow rule, and the switch run time log.
제2항에 있어서,
상기 애플리케이션 로그의 실행 이벤트 정보는 상기 애플리케이션 로그에서 추출되고, 상기 호스트 프로파일 정보 및 상기 링크 데이터베이스 정보는 상기 컨트롤러 서비스 로그에서 추출되고, API 로그의 이벤트 정보는 상기 northbound API 로그 및 상기 southbound API 로그에서 추출되고, 상기 스위치의 플로우 규칙 정보는 상기 스위치 플로우 규칙에서 추출되고, 상기 스위치 런타임 로그 정보는 상기 스위치 런타임 로그에서 추출되는 것을 특징으로 하는 포렌식 서버.
3. The method of claim 2,
Execution event information of the application log is extracted from the application log, the host profile information and the link database information are extracted from the controller service log, and event information of the API log is extracted from the northbound API log and the southbound API log The flow rule information of the switch is extracted from the switch flow rule, and the switch run time log information is extracted from the switch run time log.
제1항에 있어서,
상기 머신 러닝 알고리즘은 SVM(Support Vector Machine) 알고리즘이고, 상기 추출된 정보들이 상기 SVM 알고리즘의 특징들(features)로 입력되는 것을 특징으로 하는 포렌식 서버.
The method according to claim 1,
Wherein the machine learning algorithm is a SVM (Support Vector Machine) algorithm, and the extracted information is input as features of the SVM algorithm.
제4항에 있어서,
상기 포렌식 서버는, 상기 소프트웨어 정의 네트워크의 비정상 동작 데이터 및 정상 동작 데이터를 포함하는 기록 데이터를 저장하는 데이터베이스;를 더 포함하되,
상기 검색부는 상기 데이터베이스에 저장된 기록 데이터를 더 이용하여 상기 네트워크 공격을 수행한 호스트를 검색하는 것을 특징으로 하는 포렌식 서버.
5. The method of claim 4,
Wherein the forensic server further comprises a database for storing record data including abnormal operation data and normal operation data of the software defined network,
Wherein the search unit searches the host that has performed the network attack by further using the record data stored in the database.
프로세서가 포함된 장치에서 수행되는 포렌식 방법에 있어서,
소프트웨어 정의 네트워크에 존재하는 증거 데이터를 수집하는 단계;
상기 수집된 증거 데이터로부터 애플리케이션 로그의 실행 이벤트 정보, 호스트 프로파일 정보, 링크 데이터베이스 정보, API 로그의 이벤트 정보, 스위치 플로우 규칙 정보 및 스위치 런타임 로그 정보를 포함하는 정보들을 추출하는 단계; 및
상기 추출된 정보들을 머신 러닝 알고리즘에 입력하여 네트워크 공격을 수행한 호스트를 검색하는 단계;를 포함하는 것을 특징으로 하는 포렌식 방법.
A forensic method performed on a device including a processor,
Collecting evidence data present in a software defined network;
Extracting information including execution event information of the application log, host profile information, link database information, event information of the API log, switch flow rule information, and switch runtime log information from the collected evidence data; And
And inputting the extracted information to a machine learning algorithm to search for a host that has performed a network attack.
KR1020170181020A 2017-11-01 2017-12-27 Forensic server and Method for identifying the cause of attack on software defined network KR102006553B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170144617 2017-11-01
KR1020170144617 2017-11-01

Publications (2)

Publication Number Publication Date
KR20190049322A true KR20190049322A (en) 2019-05-09
KR102006553B1 KR102006553B1 (en) 2019-08-01

Family

ID=66546793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181020A KR102006553B1 (en) 2017-11-01 2017-12-27 Forensic server and Method for identifying the cause of attack on software defined network

Country Status (1)

Country Link
KR (1) KR102006553B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178521A (en) * 2004-12-20 2006-07-06 Ubic:Kk Digital forensic method and forensic it security system
KR20160145373A (en) * 2015-06-10 2016-12-20 한국과학기술원 Method, apparatus and computer program for analzing vulnerability of software defined network
KR20170066907A (en) * 2015-12-07 2017-06-15 전남대학교산학협력단 Software Defined Network based Network Flooding Attack Detection/Protection Method and System
KR20170083330A (en) * 2016-01-08 2017-07-18 한국인터넷진흥원 Apparatus for detecting fraudulent transactions using machine learning and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178521A (en) * 2004-12-20 2006-07-06 Ubic:Kk Digital forensic method and forensic it security system
KR20160145373A (en) * 2015-06-10 2016-12-20 한국과학기술원 Method, apparatus and computer program for analzing vulnerability of software defined network
KR20170066907A (en) * 2015-12-07 2017-06-15 전남대학교산학협력단 Software Defined Network based Network Flooding Attack Detection/Protection Method and System
KR20170083330A (en) * 2016-01-08 2017-07-18 한국인터넷진흥원 Apparatus for detecting fraudulent transactions using machine learning and method thereof

Also Published As

Publication number Publication date
KR102006553B1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
US20230040556A1 (en) System and method for network policy simulation
US11528283B2 (en) System for monitoring and managing datacenters
US10972388B2 (en) Federated microburst detection
EP3304822B1 (en) Method and apparatus for grouping features into classes with selected class boundaries for use in anomaly detection
US9787558B2 (en) Identifying configuration inconsistency in edge-based software defined networks (SDN)
WO2022083540A1 (en) Method, apparatus, and system for determining fault recovery plan, and computer storage medium
WO2016195985A1 (en) Network behavior data collection and analytics for anomaly detection
CN105051696A (en) An improved streaming method and system for processing network metadata
WO2020121293A1 (en) Orchestration of activities of entities operating in a network cloud
KR102006553B1 (en) Forensic server and Method for identifying the cause of attack on software defined network
Čisar et al. Implementation of software-defined networks using open-source environment
US20230060758A1 (en) Orchestration of Activities of Entities Operating in a Network Cloud
CN107888438B (en) Flow table technology-based system for automatically sensing and adapting to cloud environment change
KR102411941B1 (en) Firewall redundancy system
CN113660146B (en) Network boundary traffic acquisition method, device and storage medium
EP3474489B1 (en) A method and a system to enable a (re-)configuration of a telecommunications network
Satheesh et al. AI and Machine Learning Enabled Software Defined Networks
Takiddin Firewalling in SDN: Proposal, Analysis, Implementation and Experiment
CN112636955A (en) Stacking double-hanging processing method and device
WO2017058137A1 (en) Latency tracking metadata for a network switch data packet

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)