KR102439162B1 - Network policy inconsistencies detection system in software-defined networks and the method thereof - Google Patents

Network policy inconsistencies detection system in software-defined networks and the method thereof Download PDF

Info

Publication number
KR102439162B1
KR102439162B1 KR1020200150032A KR20200150032A KR102439162B1 KR 102439162 B1 KR102439162 B1 KR 102439162B1 KR 1020200150032 A KR1020200150032 A KR 1020200150032A KR 20200150032 A KR20200150032 A KR 20200150032A KR 102439162 B1 KR102439162 B1 KR 102439162B1
Authority
KR
South Korea
Prior art keywords
flow
flow rule
rule
request
unit
Prior art date
Application number
KR1020200150032A
Other languages
Korean (ko)
Other versions
KR20220064005A (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 KR1020200150032A priority Critical patent/KR102439162B1/en
Publication of KR20220064005A publication Critical patent/KR20220064005A/en
Application granted granted Critical
Publication of KR102439162B1 publication Critical patent/KR102439162B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/555Error detection
    • 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/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • 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/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • 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/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 SDN(Software Defined Network, 소프트웨어 정의 네트워크) 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크에 관한 것으로, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부 및 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부를 포함한다.The present invention relates to an automatic fuzz testing framework for detecting inconsistencies that occur between SDN (Software Defined Network) components, and a seed file based on a flow rule dependency tree. A flow rule unit that analyzes and generates a flow rule request for randomizing elements and values of a seed rule, generates a flow rule according to the flow rule request, and a flow rule state of a switch for one of the flow rules and a corresponding and an application agent unit for collecting and managing rule details including message information, and an inconsistency detection unit for detecting occurrence of a flow rule mismatch by searching for the rule details based on a flow rule state diagram.

Figure 112020120583993-pat00004
Figure 112020120583993-pat00004

Description

소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법{NETWORK POLICY INCONSISTENCIES DETECTION SYSTEM IN SOFTWARE-DEFINED NETWORKS AND THE METHOD THEREOF}NETWORK POLICY INCONSISTENCIES DETECTION SYSTEM IN SOFTWARE-DEFINED NETWORKS AND THE METHOD THEREOF

본 발명은 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 SDN(Software Defined Network, 소프트웨어 정의 네트워크) 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크에 관한 것이다. The present invention relates to a network policy inconsistency detection system of a software defined network and a method thereof, and more particularly, automatic fuzz testing for detecting inconsistencies occurring between SDN (Software Defined Network) components. It's about frameworks.

소프트웨어 정의 네트워킹은 현대 디지털 네트워크에서 가장 영향력 있는 기술 방향 중 하나로 부상했다. SDN은 현재 데이터 컴퓨팅 센터, 네트워크 인프라 제공자에 의해 그리고 기업 네트워크에 광범위하게 배치되고 있다. 이러한 채택이 증가함에 따라 SDN 아키텍처와 구현의 모든 측면에 대한 정밀도도 높아졌다. FortNox의 연구는 SDN 특유의 공격 시나리오(선행 논문 참조)의 실현 가능성을 먼저 탐구했기 때문에, 많은 연구자들은 공격 시나리오를 도입하고 다양한 방어 조치를 제안하였다. 그러나 현재까지 거의 모든 SDN 보안 프로젝트는 소프트웨어 버그 및 애플리케이션 오용과 같은 시스템 수준의 우려를 완화하거나 악의적인 트래픽에 대처하는 관점에서 보호를 제안했다.Software-defined networking has emerged as one of the most influential technological directions in modern digital networks. SDNs are now being widely deployed by data computing centers, network infrastructure providers, and in enterprise networks. As this adoption has grown, so has the precision of all aspects of SDN architectures and implementations. Because FortNox's study first explored the feasibility of SDN-specific attack scenarios (see previous papers), many researchers introduced attack scenarios and proposed various defensive measures. However, almost all SDN security projects to date have proposed protection from the standpoint of either mitigating system-level concerns, such as software bugs and application misuse, or combating malicious traffic.

보안 커뮤니티는 SDN을 구성하는 계층과 구성요소 사이에서 번역되어 네트워크 정책(플로우 규칙)의 일관성 검사에 제한적인 관심을 기울였다. SDN의 정책 충돌 방지 우려를 해소하기 위한 상당한 사전 작업이 있는 반면, 이러한 연구는 주로 단일 구성요소(예를 들면, SDN 컨트롤러의 정책 데이터베이스) 내에서 발생하는 정책 충돌에 초점을 맞추고 있다. 이러한 이전의 프로젝트는 SDN 스택의 여러 구성 요소(예를 들면, SDN 컨트롤러와 스위치) 간에 나타날 수 있는 정책 불일치를 탐지하는 데 직접 적용할 수 없다.The security community has paid limited attention to the consistency check of network policies (flow rules) translated between the layers and components that make up SDN. While there is considerable preliminary work to address SDN's policy conflict avoidance concerns, these studies have mainly focused on policy conflicts that occur within a single component (eg, the SDN controller's policy database). These previous projects are not directly applicable to detecting policy inconsistencies that may appear between different components of the SDN stack (eg SDN controllers and switches).

또한, SDN 응용 프로그램 입력을 예시된 플로우 규칙으로 변환하는 다단계 프로세스 중에 발생하는 사소한 문법 실수라도 네트워크 운영에 상당한 불안정을 초래할 수 있다. 그러한 문제들이 SDN에 심각한 문제를 일으킬 수 있지만, SDN 보안 연구자들은 이러한 문제에 대한 정밀 조사와 이러한 우려를 완화하기 위한 접근법을 제대로 연구하지 못했다. In addition, even minor grammatical mistakes that occur during the multi-step process of converting SDN application input into the illustrated flow rules can cause significant instability in network operation. While such issues can cause serious problems for SDN, SDN security researchers have not done a good job of scrutinizing these issues and approaches to alleviating these concerns.

P. Porras, S. Shin, V. Yegneswaran, M. Fong, M. Tyson, and G. Gu, “A security enforcement kernel for openflow networks,” in Proceedings of the first workshop on Hot topics in software defined networks. ACM, 2012, pp. 121-126.P. Porras, S. Shin, V. Yegneswaran, M. Fong, M. Tyson, and G. Gu, “A security enforcement kernel for openflow networks,” in Proceedings of the first workshop on Hot topics in software defined networks. ACM, 2012, pp. 121-126.

본 발명의 목적은 SDN 구성요소를 통해 관리상의 SDN 정책이 전달되는 프로세스를 자동으로 분석하고, 그 구성요소 사이에서 발생하는 불일치를 감지하기 위한 새로운 프레임워크를 제안하고자 한다. It is an object of the present invention to propose a new framework for automatically analyzing a process in which an administrative SDN policy is delivered through an SDN component and detecting inconsistency between the components.

본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부 및 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부를 포함한다.A network policy inconsistency detection system according to an embodiment of the present invention includes a flow rule unit that analyzes a seed file based on a flow rule dependency tree and generates a flow rule request for randomizing elements and values of a seed rule, the Based on a flow rule state diagram and an application agent unit that creates a flow rule according to a flow rule request, and collects and manages rule details including the flow rule status of the switch for one of the flow rules and message information corresponding thereto and a discrepancy detection unit detecting occurrence of a flow rule discrepancy by searching the rule details.

상기 플로우 규칙부는 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 의존성 분석부 및 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 플로우 요청 퍼저부를 포함할 수 있다.The flow rule unit receives the seed file from a user, and based on the flow rule dependency tree, a dependency analyzer analyzes a format of a seed flow request and requests one or more modified flow rules according to the analyzed seed flow request. It may include a flow request fuzzer that generates and randomizes, and transmits the seed flow request and the flow rule request to the application agent unit.

상기 애플리케이션 에이전트부는 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, 상기 SDN 컨트롤러가 제공하는 상기 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 플로우 규칙 처리부 및 상기 플로우 규칙과 그에 상응하는 관련된 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 플로우 규칙 수집부를 포함할 수 있다.The application agent unit generates a flow rule according to the flow rule request and the seed flow request, and a flow rule processing unit that manages a flow rule state of the switch through the flow service provided by the SDN controller, and the flow rule and its and a flow rule collecting unit that collects the corresponding related message information and uses it to detect a flow rule inconsistency.

상기 불일치 탐지부는 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 불일치 분석부 및 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 불일치 해결부를 포함할 수 있다.The inconsistency detection unit may include an inconsistency analyzer that filters the rule details using the flow rule state diagram to analyze inconsistencies between states, and a discrepancy resolution unit that processes the flow rule inconsistency detected by the inconsistency analyzer.

본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 방법은 플로우 규칙부에 의해, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 단계, 애플리케이션 에이전트부에 의해, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 단계 및 불일치 탐지부에 의해, 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 단계를 포함한다.A network policy inconsistency detection method according to an embodiment of the present invention generates a flow rule request that randomizes elements and values of a seed rule by analyzing a seed file based on a flow rule dependency tree by a flow rule unit generating, by the application agent unit, a flow rule according to the flow rule request, and collecting and managing rule details including a flow rule state of a switch for one flow rule and message information corresponding thereto and detecting, by the inconsistency detection unit, occurrence of a flow rule inconsistency by searching the rule details based on the flow rule state diagram.

상기 플로우 규칙 요청을 생성하는 단계는 의존성 분석부에 의해, 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계 및 플로우 요청 퍼저부에 의해, 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 단계를 포함할 수 있다. The generating of the flow rule request includes, by the dependency analysis unit, receiving the seed file from the user, and analyzing the format of the seed flow request based on the flow rule dependency tree, and analyzing by the flow request fuzzer. The method may include generating and randomizing one or a plurality of modified flow rule requests according to the seed flow request, and then transmitting the seed flow request and the flow rule request to the application agent unit.

상기 규칙 내역을 수집 및 관리하는 단계는 플로우 규칙 처리부에 의해, 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, 상기 SDN 컨트롤러가 제공하는 상기 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 단계 및 플로우 규칙 수집부에 의해, 상기 플로우 규칙과 그에 상응하는 관련된 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계를 포함할 수 있다.The step of collecting and managing the rule details includes generating a flow rule according to the flow rule request and the seed flow request by a flow rule processing unit, and a flow rule state of the switch through the flow service provided by the SDN controller. and collecting, by the flow rule collecting unit, the flow rule and the message information corresponding thereto, and using it to detect a flow rule inconsistency.

상기 플로우 규칙 불일치의 발생을 탐지하는 단계는 불일치 분석부에 의해, 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계 및 불일치 해결부에 의해, 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 단계를 포함할 수 있다. The step of detecting the occurrence of the flow rule inconsistency includes, by the inconsistency analysis unit, filtering the rule details using the flow rule state diagram to analyze the inconsistency between states, and by the inconsistency resolution unit, the inconsistency analysis unit and processing the detected flow rule mismatch.

본 발명의 실시예에 따르면, SDN 구성요소를 통해 관리상의 SDN 정책이 전달되는 프로세스를 자동으로 분석하고, 그 구성요소 사이에서 발생하는 불일치를 감지할 수 있다. According to an embodiment of the present invention, it is possible to automatically analyze a process in which an administrative SDN policy is delivered through an SDN component, and to detect inconsistency between the components.

도 1은 SDN 아키텍쳐를 도시한 것이다.
도 2는 네트워크 스위치에 플로우 규칙을 설치하는 절차를 설명하기 위해 도시한 것이다.
도 3은 잘못된 형식의 흐름 규칙에 의한 정책 불일치의 예를 설명하기 위해 도시한 것이다.
도 4는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템의 구성도를 도시한 것이다.
도 5는 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 예를 도시한 것이다.
도 6은 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 요소 및 값을 랜덤화한 예를 도시한 것이다.
도 7은 본 발명의 실시예에 따른 플로우 요소를 제거하여 규칙 종속성 트리를 랜덤화한 예를 도시한 것이다.
도 8은 본 발명의 실시예에 따른 플로우 규칙 상태 다이어그램의 예를 도시한 것이다.
1 shows an SDN architecture.
2 is a diagram illustrating a procedure for installing a flow rule in a network switch.
3 is a diagram to explain an example of a policy inconsistency due to a flow rule of a malformed form.
4 is a block diagram of a network policy inconsistency detection system according to an embodiment of the present invention.
5 shows an example of a flow rule dependency tree according to an embodiment of the present invention.
6 illustrates an example of randomizing elements and values of a flow rule dependency tree according to an embodiment of the present invention.
7 illustrates an example of randomizing a rule dependency tree by removing a flow element according to an embodiment of the present invention.
8 shows an example of a flow rule state diagram according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be embodied in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing the embodiments, and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” refers to the presence of one or more other components, steps, operations and/or elements mentioned. or addition is not excluded.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly specifically defined.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same components in the drawings, and repeated descriptions of the same components are omitted.

본 발명의 일 실시예들은, 랜덤화(randomization)된 오픈플로우(OpenFlow) 규칙을 자동으로 생성하고, 플로우 규칙 불일치를 감지할 수 있는 새로운 프레임워크의 설계와 구현을 제시하는 것을 그 요지로 한다. An aspect of the present invention is to propose a design and implementation of a new framework capable of automatically generating a randomized OpenFlow rule and detecting a flow rule inconsistency.

본 발명의 일 실시예에 따르면, 잠재적인 기형 SDN 정책 생성 기회를 자극하기 위해 고안된 전문 네트워크 정책 퍼징 모듈을 제시하고, 실제 SDN 스택에서 이러한 불일치를 자동으로 감지하기 위한 탐지 전략을 도입한다. 본 발명의 탐지 접근방식은 SDN 플로우 규칙이 SDN의 각 계층과 구성요소 사이에서 어떻게 전달되는지에 대한 상태 변환 다이어그램 개념에 의해 알려진다. 이 모델은 퍼징 전략과 가장 널리 사용되는 SDN 구현 전반에 걸쳐 일반화될 수 있는 일관된 테스트 범위를 달성하는 방법에 대한 이해를 알려준다.According to an embodiment of the present invention, a specialized network policy fuzzing module designed to stimulate potential malformation SDN policy creation opportunities is presented, and a detection strategy is introduced to automatically detect such inconsistencies in the actual SDN stack. The detection approach of the present invention is informed by the state transition diagram concept of how SDN flow rules are passed between each layer and component of SDN. This model informs an understanding of fuzzing strategies and how to achieve consistent test coverage that can be generalized across most popular SDN implementations.

이하에서는 도 1 내지 도 9를 참조하여 네트워크 정책 불일치 탐지 시스템 및 방법에 대해 상세히 설명한다. Hereinafter, a network policy inconsistency detection system and method will be described in detail with reference to FIGS. 1 to 9 .

도 1은 SDN 아키텍쳐를 도시한 것이다.1 shows an SDN architecture.

SDN은 기존의 네트워크와 달리 네트워크 트래픽의 처리 방식을 결정하는 제어부(즉, 애플리케이션층(Application Layer) 및 제어층(Control Layer))를 제어층에 의해 정의된 팩 포워딩 정책을 구현하는 데이터부(즉, 인프라층(Infrastructure Layer))로부터 분리한다. SDN은 논리적으로 중앙 집중화된 네트워크 정책 제어를 도입하여 내부 네트워크 토폴로지에 대한 민첩하고 유연한 관리 제어를 가능하게 한다. SDN 컨트롤러(SDN Controller)는 또한 플로우 규칙 구현의 낮은 수준의 관리를 추상화하여 네트워크 프로그래머가 SDN 애플리케이션으로서 직관적인 네트워크 기능을 구현할 수 있는 네트워크 운영 체제를 제공할 수 있다.Unlike the existing network, the SDN uses the control unit (ie, the application layer and the control layer) that determines the processing method of network traffic, and the data unit (that is, the data unit) that implements the pack forwarding policy defined by the control layer. , separated from the infrastructure layer). SDN introduces a logically centralized network policy control, enabling agile and flexible administrative control over the internal network topology. The SDN Controller can also provide a network operating system that abstracts the low-level management of implementing flow rules, allowing network programmers to implement intuitive network functions as SDN applications.

SDN 컨트롤러는 네트워크 구성 및 포워딩(forwarding) 규칙을 southbound API(예를 들면, Openflow)를 통해 네트워크 포워딩 장치(예를 들면, SDN 지원 스위치)로 관리한다.The SDN controller manages network configuration and forwarding rules to a network forwarding device (eg, SDN-enabled switch) through a southbound API (eg, Openflow).

OpenFlow는 현재 컨트롤러가 포워딩 장치(Openflow 호환 네트워크 스위치)와 상호 작용할 수 있는 명령과 동작을 정의하는 실질적인 SDN 프로토콜이다. 모든 OpenFLow 지원 스위치는 플로우 항목 집합을 관리하는 여러 플로우 테이블을 유지 관리한다. OpenFlow 사양에 따르면 각 플로우 입력은 i)수신 패킷과 비교되는 일치 필드(기준), ii)일치하는 수신 패킷을 처리하는 방법을 정의하는 일련의 작업(명령과 동일), iii)패킷/바이트의 총 수를 추가하는 패킷/바이트 카운터 등 3개의 주요 부분으로 구성된다.OpenFlow is currently the de facto SDN protocol that defines the commands and actions that the controller can interact with forwarding devices (Openflow-compatible network switches). All OpenFlow-enabled switches maintain several flow tables that manage a set of flow entries. According to the OpenFlow specification, each flow input is: i) a match field (baseline) that is compared to an incoming packet, ii) a set of operations (equivalent to a command) defining how to handle a matching incoming packet, iii) the total number of packets/byte It consists of three main parts: a packet/byte counter that adds a count.

수신 패킷이 스위치에 도착하여 일치하는 플로우 규칙 항목이 없을 때 스위치는 패킷의 부분 정보를 포함한 PACKET IN 메시지를 컨트롤러에 전송한다. 컨트롤러는 패킷을 처리하는 방법을 결정하고, 관련 플로우 규칙을 만든 다음, FLOW MOD 메시지를 통해 스위치에 규칙을 전송한다. FLOW MOD에는 우선 순위, 일치 필드, 규칙별 동작이 포함되어 있어 스위치가 동일한 기준을 충족하는 모든 후속 패킷에 규칙을 묶을 수 있다. 이때, 둘 이상의 플로우 규칙에 일치 필드가 있을 경우 우선 순위가 높은 규칙이 우선한다.When a received packet arrives at the switch and there is no matching flow rule item, the switch sends a PACKET IN message including partial information of the packet to the controller. The controller decides how to process the packet, creates the relevant flow rule, and then sends the rule to the switch via a FLOW MOD message. FLOW MOD includes priority, match fields, and per-rule actions, allowing the switch to tie rules to all subsequent packets that meet the same criteria. At this time, if there is a match field in two or more flow rules, the rule with higher priority takes precedence.

도 2는 네트워크 스위치에 플로우 규칙을 설치하는 절차를 설명하기 위해 도시한 것이다.2 is a diagram illustrating a procedure for installing a flow rule in a network switch.

SDN의 경우, 각 FLOW MOD 메시지는 네트워크 보안 정책 결정을 나타낸다. 플로우 규칙은 패킷이 어떤 경로를 통과할 것인지, 그리고 패킷이 어느 종점(호스트)을 대상으로 할 것인지 SDN에서 어떤 데이터가 허용될 것인지를 정의한다.For SDN, each FLOW MOD message represents a network security policy decision. Flow rules define which paths a packet will travel, which endpoints (hosts) the packets will be destined for, and what data will be allowed in the SDN.

네트워크 관리자(Network Admin)는 네트워크 플로우 규칙 제출 시 i)PACKET IN 메시지에 대응하여 플로우 규칙을 동적으로 계산하는 SDN 애플리케이션(Application)을 사용하는 것과 ii)컨트롤러(Controller) 내부에서 실행되는 기존 SDN 애플리케이션이 제공하는 REST APIs1 또는 명령줄 인터페이스를 통해 플로우 규칙을 능동적으로 요청하는 두 가지 옵션을 가진다. When submitting a network flow rule, the Network Admin can i) use an SDN application that dynamically calculates a flow rule in response to a PACKET IN message, and ii) use an existing SDN application running inside the controller. You have two options to actively request flow rules through the REST APIs1 it provides or the command line interface.

도 2는 전술한 두 번째 옵션에 관한 것으로, 네트워크 스위치에 플로우 규칙을 사전 예방적으로 설치하는 절차를 나타낸다.FIG. 2 relates to the second option described above, and shows a procedure for proactively installing a flow rule in a network switch.

첫째, 관리자(Network Admin)는 ①외부 인터페이스(예를 들면, REST APIs)를 통해 SDN 애플리케이션에 대한 플로우 규칙 추가를 제출한다.First, an administrator (Network Admin) submits a flow rule addition to the SDN application through an external interface (eg, REST APIs).

다음으로, 애플리케이션(Application)은 ②수신된 요청에 근거하여 FLOW MOD 메시지를 작성하고, ③플로우 규칙을 컨트롤러(Controller)가 관리하는 내부 데이터베이스(Policy DB)에 저장한다. 그런 다음 SDN 컨트롤러(SDN Controller)가 ④FLOW MOD 메시지를 스위치(Switch)로 전송한다. Next, the application (Application) creates a FLOW MOD message based on ② the received request, and ③ stores the flow rule in the internal database (Policy DB) managed by the controller. Then, the SDN controller sends the ④FLOW MOD message to the switch.

마지막으로 스위치(Switch)는 FLOW MOD 메시지 내의 플로우 규칙을 플로우 테이블에 설치한다. Finally, the switch installs the flow rules in the FLOW MOD message in the flow table.

전술한 절차에 의해 플로우 규칙이 관리자, 애플리케이션, 컨트롤러 및 스위치의 네 가지 처리 지점에서 관리된다는 것을 알 수 있다. 이에 따라서, 본 발명은 네트워크 정책이 각 처리 지점에서 서로 다른 뷰(상태)를 가질 수 있음을 이용하며, SDN 운용 과정에서 이러한 상태 차이가 발생할 수 있다는 우려를 정책 불일치 문제로 언급한다. It can be seen that flow rules are managed at four processing points: manager, application, controller and switch by the procedure described above. Accordingly, the present invention utilizes that a network policy may have a different view (state) at each processing point, and refers to the concern that such a state difference may occur during the SDN operation process as a policy inconsistency problem.

도 3은 잘못된 형식의 흐름 규칙에 의한 정책 불일치의 예를 설명하기 위해 도시한 것이다.3 is a diagram to explain an example of a policy inconsistency due to a flow rule of a malformed form.

보다 상세하게는, 도 3은 네트워크 관리자(Network Admin)가 만든 누락된 전제조건이 제어부와 데이터부의 상태 불일치로 이어질 수 있는 컨트롤러에 오류를 발생시키는 예를 보여준다. 이 예에서는 Floodlight SDN 컨트롤러(Floodlight Controller), OpenFlow 지원 스위치(Switch) 1개 및 호스트(Host) 2개로 구성된 네트워크 토폴로지가 있다고 가정한다.More specifically, FIG. 3 shows an example in which a missing prerequisite made by a network administrator causes an error in the controller, which may lead to a state mismatch between the control unit and the data unit. This example assumes that you have a network topology consisting of a Floodlight SDN controller (Floodlight Controller), one OpenFlow-enabled switch and two hosts.

관리자는 StaticEntryPusher 애플리케이션이 제공하는 REST API를 통해 스위치에 플로우 규칙을 설치하려고 시도하여 Host A가 TCP 포트 80을 통해 Host B와 통신할 수 있도록 한다. 나아가, 스위치에 플로우 규칙을 설치하는 절차는 다음과 같다.The administrator attempts to install a flow rule on the switch via the REST API provided by the StaticEntryPusher application, allowing Host A to communicate with Host B over TCP port 80. Furthermore, the procedure for installing the flow rule in the switch is as follows.

먼저 네트워크 관리자는 REST API 양식에 플로우 규칙 추가를 요청하여 애플리케이션(1단계)으로 전송한다. 그런 다음, 애플리케이션은 플로우 규칙을 정책 데이터베이스(Policy DB)에 저장하고, 수신의 성공 여부를 관리자(2단계)에게 다시 전송한다.First, the network administrator requests to add a flow rule in the REST API form and sends it to the application (step 1). Then, the application stores the flow rule in the policy database (Policy DB), and transmits the success or failure of reception back to the manager (step 2).

그러나 애플리케이션이 FLOW MOD 메시지를 작성하려고 할 때, 처리 오류(3단계)로 인해 스위치와 컨트롤러의 연결이 끊어진다. 구체적으로, 도 3에서, 누락된 전제조건은 잘못된 형식의 FLOW MOD 요청을 초래한다.However, when the application tries to write a FLOW MOD message, a processing error (step 3) causes the switch to disconnect from the controller. Specifically, in Fig. 3, the missing prerequisite results in a malformed FLOW MOD request.

OpenFlow 규격에 따르면 플로우 규칙의 일치 필드에 TCT/UDP 포트 번호를 사용할 때 IP 프로토콜을 지정해야 한다. 여기서 문제는 애플리케이션이 이 전제조건을 확인하지 않고, FLOW MOD 메시지를 작성하려고 한다는 것이다. 이에 따라서, 내부 컨트롤러 루프로 인해 CPU 파열을 야기하여 스위치와 컨트롤러의 연결이 끊어질 수 있는 상태가 발생한다. 보다 심각한 것은 컨트롤러가 결과 메시지를 반환하여 요청된 플로우 규칙이 설치되지 않았을 때 성공적으로 설치되었음을 나타낸다. 이로 인하여 관리자는 요청된 규칙이 적절하게 설치되었다고 믿는 것이다. 또한, 컨트롤러는 정책 데이터베이스에 플로우 규칙을 보존할 것이며, 이제 컨트롤러를 통해 작동하는 모든 SDN 애플리케이션에 영향을 주게 되므로, 이는 심각한 문제로 발생되게 된다.According to the OpenFlow specification, the IP protocol must be specified when using the TCT/UDP port number in the match field of the flow rule. The problem here is that the application does not check this prerequisite and tries to write a FLOW MOD message. As a result, the internal controller loop causes the CPU to burst, resulting in a state in which the connection between the switch and the controller may be disconnected. Even worse, the controller returns a result message to indicate that the requested flow rule was installed successfully when it wasn't installed. This causes the administrator to believe that the requested rule has been properly installed. In addition, the controller will preserve the flow rules in the policy database, which will now affect all SDN applications running through the controller, which becomes a serious problem.

본 발명은 이러한 불일치를 예방하기 위한 불일치 탐지 기술을 제안하고자 한다.The present invention intends to propose a discrepancy detection technique for preventing such discrepancy.

도 4는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템의 구성도를 도시한 것이다.4 is a block diagram of a network policy inconsistency detection system according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 SDN 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크를 나타낸다. Referring to FIG. 4 , the network policy inconsistency detection system according to an embodiment of the present invention represents an automatic fuzz testing framework for detecting inconsistencies occurring between SDN components.

이를 위해, 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템(400)은 플로우 규칙부(410), 애플리케이션 에이전트부(420) 및 불일치 탐지부(430)를 포함한다.To this end, the network policy inconsistency detection system 400 according to an embodiment of the present invention includes a flow rule unit 410 , an application agent unit 420 , and a mismatch detection unit 430 .

도 4는 SDN 정책 불일치가 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템(400)에 의해 어떻게 탐지되는지를 보여준다. 이에 대한 작업플로우를 설명하자면, 먼저 (1)사용자로부터 플로우 규칙 요청이 있는 시드 파일(Seed file)을 수신하며, 플로우 규칙부(410)는 플로우 규칙 종속성 트리를 기반으로 시드 규칙을 분석한 다음, 시드 규칙의 요소와 값을 랜덤화한다. 이후에, 플로우 규칙부(410)는 변형된 플로우 요청을 애플리케이션 에이전트부(420)로 전송한다.4 shows how an SDN policy inconsistency is detected by the network policy inconsistency detection system 400 according to an embodiment of the present invention. To explain the workflow for this, first (1) receiving a seed file with a flow rule request from a user, the flow rule unit 410 analyzes the seed rule based on the flow rule dependency tree, Randomizes the elements and values of the seed rule. Thereafter, the flow rule unit 410 transmits the modified flow request to the application agent unit 420 .

(2)애플리케이션 에이전트부(420)는 플로우 규칙부(410)에서 수신한 플로우 규칙 요청을 차례대로 처리한다.(2) The application agent unit 420 sequentially processes the flow rule requests received from the flow rule unit 410 .

(3)애플리케이션 에이전트부(420)는 플로우 규칙을 정책 데이터베이스(Policy DB)에 저장하고, (4)컨트롤러(SDN Controller)가 제공하는 플로우 서비스를 통해 스위치에 FLOW MOD 메시지를 전송한다.(3) The application agent unit 420 stores the flow rules in the policy database, and (4) transmits the FLOW MOD message to the switch through the flow service provided by the controller (SDN Controller).

(5)애플리케이션 에이전트부(420)는 FLOW STATS 메시지를 사용하여 스위치에 설치된 플로우 규칙을 가져온 다음, (6)하나의 플로우 규칙에 대한 모든 정보를 규칙 내역에 포함하여 불일치 탐지부(430)로 전송한다.(5) The application agent unit 420 uses the FLOW STATS message to get the flow rules installed in the switch, and then (6) includes all information about one flow rule in the rule history and transmits it to the inconsistency detection unit 430 do.

마지막으로, 불일치 탐지부(430)는 플로우 규칙 상태 다이어그램을 기준으로 규칙 내역을 검사하고, 플로우 규칙 불일치의 존재에 대한 의견을 제시한다.Finally, the inconsistency detection unit 430 examines the rule details based on the flow rule state diagram and presents an opinion on the existence of the flow rule inconsistency.

도 4를 참조하여 네트워크 정책 불일치 탐지 시스템(400)의 각 구성요소에 대해 보다 세부적으로 설명하자면, 플로우 규칙부(410)는 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성한다. Referring to FIG. 4 , each component of the network policy inconsistency detection system 400 will be described in more detail. The flow rule unit 410 analyzes a seed file based on the flow rule dependency tree to determine the seed rule. Creates a flow rule request that randomizes the elements and values of

플로우 규칙부(410)는 의존성 분석부(411) 및 플로우 요청 퍼저부(412)를 포함할 수 있다.The flow rule unit 410 may include a dependency analyzer 411 and a flow request fuzzer 412 .

의존성 분석부(411)는 사용자로부터 시드 파일(Seed file)을 수신하며, 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석할 수 있다. 의존성 분석부(411)는 사용자로부터 JSON 또는 XML 형식을 기반으로 하는 플로우 규칙 요청의 시드 파일을 수신할 수 있다. 이에, 의존성 분석부(411)는 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청을 검사한 후, 시드 플로우 요청이 잘못된 형식인지 여부를 결정할 수 있다. 또한, 의존성 분석부(411)는 테스트 사례 생성 중에 어떤 시드 플로우 요청의 요소와 값이 랜덤화되는지를 결정할 수 있다. The dependency analyzer 411 may receive a seed file from the user and analyze the format of the seed flow request based on the flow rule dependency tree. The dependency analyzer 411 may receive a seed file of a flow rule request based on JSON or XML format from the user. Accordingly, the dependency analyzer 411 may determine whether the seed flow request is in the wrong format after examining the seed flow request based on the flow rule dependency tree. Also, the dependency analysis unit 411 may determine which seed flow request elements and values are randomized during test case generation.

본 발명의 실시예에 따른 의존성 분석부(411)는 플로우 규칙 종속성 트리를 유지 및 관리하며, 플로우 규칙 종속성 트리는 랜덤화 값(value) 및 랜덤화 요소(element)의 하위 구성 요소를 포함하는 것으로, 대상 SDN이 불일치 문제를 일으키는지 여부를 검사하기 위해 퍼징 기술을 이용하여 생성된 기형 플로우 규칙일 수 있다. 상기 플로우 규칙 종속성 트리에 대해서는 하기의 도 5 내지 도 7을 참조하여 상세히 설명하기로 한다.The dependency analysis unit 411 according to an embodiment of the present invention maintains and manages a flow rule dependency tree, and the flow rule dependency tree includes a randomized value and a subcomponent of a randomization element, It may be a malformed flow rule created using a fuzzing technique to check whether the target SDN is causing the inconsistency problem. The flow rule dependency tree will be described in detail with reference to FIGS. 5 to 7 below.

이에 따라서, 의존성 분석부(411)는 초기 플로우 규칙 요청과 함께 플로우 요청 퍼저부(412)로 결정을 넘긴다. 플로우 요청 퍼저부(412)는 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 플로우 규칙 요청(예를 들면, 값 및 요소 랜덤화)하여 랜덤화한 후, 애플리케이션 에이전트부(420)로 시드 플로우 요청(기존 요청) 및 플로우 규칙 요청(변형 요청)을 전송할 수 있다. Accordingly, the dependency analysis unit 411 transfers the decision to the flow request fuzzer 412 together with the initial flow rule request. The flow request fuzzer unit 412 randomizes by requesting one or a plurality of modified flow rules (eg, randomizing values and elements) according to the analyzed seed flow request, and then sends the seed flow to the application agent unit 420 . Requests (existing requests) and flow rule requests (modification requests) can be sent.

애플리케이션 에이전트부(420)는 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리한다. The application agent unit 420 creates a flow rule according to a flow rule request, and collects and manages rule details including the flow rule status of the switch for one flow rule and message information corresponding thereto.

애플리케이션 에이전트부(420)는 플로우 규칙 처리부(421) 및 플로우 규칙 수집부(422)를 포함할 수 있다.The application agent unit 420 may include a flow rule processing unit 421 and a flow rule collection unit 422 .

플로우 규칙 처리부(421)는 SDN 컨트롤러(SDN Controller)가 제공하는 플로우 서비스를 통해 스위치의 플로우 규칙 상태를 관리하는 역할을 수행한다.The flow rule processing unit 421 serves to manage the flow rule state of the switch through the flow service provided by the SDN controller.

구체적으로 설명하면, 플로우 규칙 처리부(421)는 플로우 요청 퍼저부(412)로부터 시드 플로우 요청 및 플로우 규칙 요청을 수신하며, 각 요청을 기반으로 플로우 규칙을 생성하고, 이를 SDN 컨트롤러에 포함된 정책 데이터베이스(Policy DB)에 저장할 수 있다.More specifically, the flow rule processing unit 421 receives the seed flow request and the flow rule request from the flow request fuzzer 412 , and generates a flow rule based on each request, and the policy database included in the SDN controller. (Policy DB) can be saved.

이후에, 플로우 규칙 처리부(421)는 생성된 플로우 규칙을 포함한 FLOW MOD 메시지를 전송하고, FLOW STATS 메시지를 사용하여 스위치에 설치된 플로우 규칙 상태를 수신할 수 있다. 또한, 플로우 규칙 처리부(421)는 생성된 플로우 규칙을 포함하여 FLOW MOD 메시지를 빌드하며, 스위치에 의한 플로우 규칙 설치를 확인하기 위해 BARRIER REQUEST 메시지와 함께 FLOW MOD 메시지를 스위치에 전송할 수 있다.Thereafter, the flow rule processing unit 421 may transmit a FLOW MOD message including the generated flow rule and receive the flow rule status installed in the switch using the FLOW STATS message. In addition, the flow rule processing unit 421 may build a FLOW MOD message including the generated flow rule, and transmit the FLOW MOD message to the switch together with the BARRIER REQUEST message to confirm the flow rule installation by the switch.

플로우 규칙 수집부(422)는 플로우 규칙과 그에 상응하는 관련된 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용할 수 있다. 특히, 플로우 규칙 수집부(422)는 플로우 규칙 처리부(421)로부터 받은 하나의 초기 플로우 요청이 궁극적으로 스위치의 플로우 규칙이 되는 프로세스를 추적할 수 있다. 이에, 플로우 규칙 수집부(422)는 플로우 규칙이 중간에 삭제되면 규칙 처리가 중지된 위치를 기록하며, 각 플로우 규칙에 해당하는 스위치의 플로우 규칙 상태와 FLOW MOD 메시지, BARRIER REQUEST 메시지 및 FLOW STATS 메시지의 메시지 정보를 포함하는 모든 기록을 규칙 내역으로 정리하여 불일치 탐지부(430)에 제공할 수 있다. The flow rule collection unit 422 may collect flow rules and corresponding message information and use them to detect a flow rule mismatch. In particular, the flow rule collection unit 422 may track a process in which one initial flow request received from the flow rule processing unit 421 ultimately becomes a flow rule of the switch. Accordingly, the flow rule collection unit 422 records the position where the rule processing is stopped when the flow rule is deleted in the middle, and the flow rule status of the switch corresponding to each flow rule, a FLOW MOD message, a BARRIER REQUEST message, and a FLOW STATS message It is possible to organize all records including the message information of the rule details and provide it to the inconsistency detection unit 430 .

불일치 탐지부(430)는 플로우 규칙 상태 다이어그램을 기반으로 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지한다. The inconsistency detection unit 430 detects the occurrence of a flow rule inconsistency by searching the rule details based on the flow rule state diagram.

불일치 탐지부(430)는 불일치 분석부(431) 및 불일치 해결부(432)를 포함할 수 있다.The discrepancy detection unit 430 may include a discrepancy analysis unit 431 and a discrepancy resolution unit 432 .

불일치 분석부(431)는 플로우 규칙 상태 다이어그램을 이용하여 규칙 내역을 필터링하여 상태 사이의 불일치를 분석할 수 있다. 예를 들면, 불일치 분석부(431)는 상태 S1 플로우 규칙 요청의 기형 여부를 확인하여 3건의 이상 사례를 분류할 수 있다. 첫 번째의 이상 사례는 플로우 요청이 잘못 형성되었을 때 발생하지만 플로우 규칙 상태가 성공적으로 도달한 사례를 나타낸다. 두 번째의 이상 사례는 플로우 요청이 프로토콜에 부합하지만 최종 상태가 실패한 집합(예를 들면, S3, S5 또는 S8)에 있는 경우를 나타낸다. 마지막의 이상 사례는 스위치의 플로우 규칙 수가 요청과 같지 않을 때 발생한다. 불일치 분석부(431)는 전술한 바와 같이 필터링된 이상 사례에서 4개 상태 S1, S2, S4 및 S9의 플로우 규칙을 추출하여 이들 상태 사이의 불일치를 조사할 수 있다. The inconsistency analyzer 431 may analyze the inconsistency between states by filtering the rule details using the flow rule state diagram. For example, the inconsistency analysis unit 431 may classify three abnormal cases by checking whether the state S1 flow rule request is malformed. The first anomaly refers to a case where a flow request was malformed, but the flow rule status was reached successfully. The second anomaly represents the case where the flow request conforms to the protocol but the final state is in the failed set (eg S3, S5 or S8). The last anomaly occurs when the number of flow rules on the switch is not equal to the request. The inconsistency analysis unit 431 may extract flow rules of the four states S1, S2, S4, and S9 from the filtered abnormal cases as described above and investigate the inconsistency between these states.

상기 플로우 규칙 상태 다이어그램은 S0부터 S10까지의 11가지 상태를 정의한 것으로, 각 에지에 플로우 규칙 처리를 담당하는 애플리케이션 에이전트의 특정 동작을 지정할 수 있다. 상기 플로우 규칙 상태 다이어그램에 대해서는 하기의 도 8을 참조하여 상세히 설명하기로 한다. The flow rule state diagram defines 11 states from S0 to S10, and a specific operation of an application agent in charge of flow rule processing can be designated at each edge. The flow rule state diagram will be described in detail with reference to FIG. 8 below.

불일치 해결부(432)는 불일치 분석부(431)에서 검출된 플로우 규칙 불일치를 처리할 수 있다. 불일치 해결부(432)는 기본적으로 컨트롤러(Controller)의 데이터베이스를 최우선 순위로 간주하므로, 애플리케이션 에이전트부(420)를 통해 스위치의 일관성 없는 플로우 규칙을 삭제할 수 있다. The discrepancy resolution unit 432 may process the flow rule discrepancy detected by the discrepancy analysis unit 431 . Since the inconsistency resolution unit 432 basically regards the database of the controller as the highest priority, the inconsistent flow rule of the switch may be deleted through the application agent unit 420 .

또한, 불일치 해결부(432)는 컨트롤러와 스위치 사이의 플로우 규칙을 다시 동기화하려고 시도할 수 있다. 그러나 불일치 해결부(432)는 규칙의 형식이 잘못되었거나 스위치가 이를 수용할 수 없어 플로우 규칙을 설치할 수 없는 경우, 컨트롤러의 플로우 규칙도 삭제할 수 있다. 실시예에 따라서, 불일치 해결부(432)는 사후 분석을 위해 로그를 남겨둔다.Also, the discrepancy resolution unit 432 may attempt to resynchronize the flow rules between the controller and the switch. However, the inconsistency resolution unit 432 may also delete the flow rule of the controller when the form of the rule is incorrect or the flow rule cannot be installed because the switch cannot accommodate it. According to an embodiment, the discrepancy resolution unit 432 leaves a log for post-analysis.

도 5는 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 예를 도시한 것이고, 도 6은 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 요소 및 값을 랜덤화한 예를 도시한 것이며, 도 7은 본 발명의 실시예에 따른 플로우 요소를 제거하여 규칙 종속성 트리를 랜덤화한 예를 도시한 것이다.FIG. 5 shows an example of a flow rule dependency tree according to an embodiment of the present invention, and FIG. 6 shows an example of randomizing elements and values of a flow rule dependency tree according to an embodiment of the present invention, FIG. 7 shows an example of randomizing the rule dependency tree by removing the flow element according to an embodiment of the present invention.

본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 종속성 트리를 사용하여 대상 SDN이 예기치 않은 불일치 문제를 일으키는지 검사할 수 있는 기형 플로우 규칙을 생성하며, 임의로 기형 플로우 규칙을 생성하기 위해 퍼징 기술을 사용한다.A network policy inconsistency detection system according to an embodiment of the present invention uses a flow rule dependency tree to create a malformed flow rule that can check whether a target SDN causes an unexpected inconsistency problem, and arbitrarily fuzzes to create malformed flow rules use technology.

본 발명에서, 플로우 규칙 종속성 트리 및 플로우 규칙 랜덤화의 첫 번째 단계는 입력 랜덤화의 대상이 되어야 하는 입력 파라미터 집합을 결정하는 것이다. 본 발명의 프레임워크에서 플로우 규칙을 구성하는 모든 요소는 잠재적 대상이 될 수 있다. 이에, 플로우 규칙 요소의 효율적인 랜덤화를 위해, 플로우 규칙 종속성 트리를 사용한다. In the present invention, the first step of the flow rule dependency tree and flow rule randomization is to determine a set of input parameters that should be subjected to input randomization. All elements constituting a flow rule in the framework of the present invention may be potential targets. Therefore, for efficient randomization of flow rule elements, a flow rule dependency tree is used.

도 5를 참조하면, 플로우 규칙의 부분 종속성 트리를 보여준다. 직사각형 노드와 원형 노드는 각각 요소(element)와 그 값(value) 유형을 나타낸다. 예를 들어 table_id 요소는 서명되지 않은 바이트 유형이므로 그 값은 0 내지 255 사이여야 한다. 또한, 어떤 요소에 상위 요소가 있으면 그 요소들 사이에는 종속성이 있다. 따라서, 플로우 규칙이 TCP 소스 포트(tcp_src)를 기준으로 패킷을 필터링하려면 일치 필드에 IP 프로토콜(ip_proto)을 6으로 지정해야 한다. 종속성 트리는 OpenFlow 규격에서 파생되지만, 다른 SDN 컨트롤러에 대해서는 구현에 따라 확장할 수 있다(예를 들면, 도 5에서의 ‘isPermanent’ 및 ‘boolean’).Referring to FIG. 5 , a partial dependency tree of a flow rule is shown. A rectangular node and a circular node represent an element and its value type, respectively. For example, the table_id element is an unsigned byte type, so its value must be between 0 and 255. Also, if an element has a parent element, there are dependencies between those elements. Therefore, in order for the flow rule to filter packets based on the TCP source port (tcp_src), the IP protocol (ip_proto) must be set to 6 in the match field. The dependency tree is derived from the OpenFlow specification, but can be extended depending on the implementation for other SDN controllers (eg 'isPermanent' and 'boolean' in FIG. 5).

또한, 종속성 트리 기반 플로우 규칙 퍼징 프레임워크는 랜덤화 값 및 랜덤화 요소 등 두 개의 하위 구성요소 나뉠 수 있다. In addition, the dependency tree-based flow rule fuzzing framework can be divided into two sub-components: randomized values and randomized elements.

도 6을 참조하여 값 랜덤화에 대해 설명하자면, 플로우 규칙에서 각 요소의 값은 단순히 임의로 지정할 수 있다. 예를 들어 종속성 트리에 기초하여 우선 순위 요소는 숫자 값이어야 하며 그 범위는 0에서 65535 사이어야 한다. 본 발명은 범위를 고려하지 않고 이 값을 랜덤화하여 플로우 규칙(예를 들면, 65536 또는 -1)을 만들어 숫자 유형의 오버플로우 또는 언더플로우를 유발하는 애플리케이션을 잘못 유도할 수 있다. 또한, 큰따옴표(“65535”)를 추가하여 요소의 숫자형(즉, 주조형)을 문자열 형식으로 조작하거나, 값을 거짓으로 변경하여 애플리케이션이 요소값을 실수로 비워둘 수 있도록 할 수 있다.When describing value randomization with reference to FIG. 6 , the value of each element in the flow rule may simply be arbitrarily designated. For example, based on the dependency tree, the priority element must be a numeric value and range from 0 to 65535. The present invention can erroneously lead to applications that create flow rules (eg, 65536 or -1) by randomizing this value without considering the range, causing overflow or underflow of numeric types. You can also add double quotation marks (“65535”) to manipulate the numeric (i.e. cast) of an element into a string format, or change the value to false to allow the application to accidentally leave the element value blank.

도 7을 참조하여 요소 랜덤화에 대해 설명하자면, 값을 랜덤화하는 것 외에도 요소들 간의 종속성을 제거(Element Removal)함으로써, 플로우 규칙의 의미를 조작할 수 있다. 예를 들어, 도 7에 도시된 것과 같이 ipv4_dst 요소는 ether형 요소에 의존하고 있어 IP 패킷을 필터링하려면 매치 필드에서도 Ethernet 프로토콜 유형(예를 들면, 0x0800)을 지정해야 한다는 것을 의미한다. 그러나 ether형 요소를 제거해 컨트롤러가 제대로 다룰 수 있는지 확인할 수 있다. 그리고, 종속성 트리에 임의의 요소를 추가하여 플로우 규칙의 작성 처리를 손상시킬 수도 있다.In describing element randomization with reference to FIG. 7 , in addition to randomizing values, the meaning of a flow rule may be manipulated by removing dependencies between elements (Element Removal). For example, as shown in FIG. 7 , the ipv4_dst element depends on the ether element, which means that the Ethernet protocol type (eg, 0x0800) must be specified in the match field to filter IP packets. However, you can remove the ether-like element to see if the controller can handle it properly. In addition, arbitrary elements may be added to the dependency tree to impair the creation process of flow rules.

다시 도 5를 참조하면, 본 발명은 플로우 규칙의 값과 요소를 자동으로 랜덤화하기 위해 트리 운행과 그래프 매칭 개념을 이용한 퍼징 알고리즘을 제시한다. 이 알고리즘에는 두 가지 입력이 필요하다. 첫 번째 입력은 종속성 트리 Tdt = (Vdt,Edt)이며, 여기서 Vdt는 요소와 값이 있는 노드의 집합이고, Edt는 Vdt 간의 종속 관계 집합이다. 두 번째 입력은 시드 플로우 규칙 flowseed이며, 출력은 변형된 플로우 규칙 M의 집합이다.Referring back to FIG. 5 , the present invention proposes a fuzzing algorithm using tree traversal and graph matching concepts to automatically randomize values and elements of a flow rule. This algorithm requires two inputs. The first input is the dependency tree Tdt = (Vdt,Edt), where Vdt is the set of nodes with elements and values, and Edt is the set of dependencies between Vdt. The second input is the seed flow rule flowseed, and the output is a set of modified flow rules M.

알고리즘은 출력 M을 빈 집합으로 초기화하며, 시드 플로우 규칙을 시드 트리 Tseed(2, 3행)로 변환한다. 값 랜덤화를 수행하기 위해 알고리즘은 시드 트리의 모든 노드 v를 반복적으로 방문하여 주어진 각 값을 변형한다. 그런 다음 원래 노드 v를 시드 트리에서 변형된 vmuted 노드에 수정하고 이를 출력(4~8행)에 추가한다. The algorithm initializes the output M to an empty set, and transforms the seed flow rule into a seed tree Tseed (lines 2, 3). To perform value randomization, the algorithm recursively visits every node v in the seed tree and transforms each given value. Then we modify the original node v into the transformed vmuted node in the seed tree and add it to the output (lines 4-8).

의미 랜덤화의 경우 알고리즘은 새로운 노드를 추가하거나 기존 노드를 제거하여 시드 트리를 변형시킨다. 이를 위해 종속성 트리 Tdt의 모든 에지 e를 방문하고 요소-값 노드 쌍(9~12행)을 얻는다. 이들이 시드 트리에 포함된 경우 알고리즘은 해당 노드 쌍 vparent, vchild를 시드 트리에서 제거하여 종속성을 제거하고 이를 출력 집합(13~15행)에 추가한다. 그렇지 않으면 시드 트리에서 요소 노드 v를 랜덤하게 선택하고, 노드 쌍 vparent, vchild(17~20행)를 요소 노드 v에 차례로 추가하여 새로운 종속성 에지를 추가한다. In the case of semantic randomization, the algorithm transforms the seed tree by adding new nodes or removing existing ones. To do this, we visit every edge e of the dependency tree Tdt and get element-value node pairs (lines 9-12). If they are included in the seed tree, the algorithm removes the dependency by removing the corresponding node pair vparent, vchild from the seed tree and adds it to the output set (lines 13-15). Otherwise, a new dependency edge is added by randomly selecting element node v from the seed tree and adding the node pair vparent, vchild (lines 17-20) to element node v in turn.

도 8은 본 발명의 실시예에 따른 플로우 규칙 상태 다이어그램의 예를 도시한 것이다.8 shows an example of a flow rule state diagram according to an embodiment of the present invention.

도 8에 도시된 플로우 규칙 상태 다이어그램은 S0부터 S10까지의 11가지 상태를 정의하며, 각 에지는 플로우 규칙 처리를 담당하는 애플리케이션 에이전트부의 특정 동작을 지정한다. 예를 들어, 상태 S1의 애플리케이션 에이전트부가 사용자 요청을 대신하여 플로우 규칙의 생성에 성공하면, 플로우 규칙의 상태가 상태 S2로 전환되고 그렇지 않으면 상태 S3으로 이동한다.The flow rule state diagram shown in FIG. 8 defines 11 states from S0 to S10, and each edge specifies a specific operation of the application agent unit responsible for processing the flow rule. For example, if the application agent unit in the state S1 succeeds in generating the flow rule on behalf of the user request, the state of the flow rule is switched to the state S2, otherwise it moves to the state S3.

본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 상태 다이어그램을 이용하여 각 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 조사할 수 있다.The network policy inconsistency detection system according to an embodiment of the present invention may investigate the occurrence of a flow rule inconsistency by searching the details of each rule using the flow rule state diagram.

예를 들면, 본 발명은 상태 S1 플로우 규칙 요청의 기형 여부를 확인하여 3건의 이상 사례를 분류할 수 있다. 첫 번째의 이상 사례는 플로우 요청이 잘못 형성되었을 때 발생하지만 플로우 규칙 상태가 성공적으로 도달한 사례를 나타낸다. 두 번째의 이상 사례는 플로우 요청이 프로토콜에 부합하지만 최종 상태가 실패한 집합(예를 들면, S3, S5 또는 S8)에 있는 경우를 나타낸다. 마지막의 이상 사례는 스위치의 플로우 규칙 수가 요청과 같지 않을 때 발생한다. 이에 따라서, 본 발명은 전술한 바와 같이 필터링된 이상 사례에서 4개 상태 S1, S2, S4 및 S9의 플로우 규칙을 추출하여 이들 상태 사이의 불일치를 조사할 수 있다.For example, the present invention can classify three abnormal cases by checking whether the state S1 flow rule request is malformed. The first anomaly refers to a case where a flow request was malformed, but the flow rule status was reached successfully. The second anomaly represents the case where the flow request conforms to the protocol but the final state is in the failed set (eg S3, S5 or S8). The last anomaly occurs when the number of flow rules on the switch is not equal to the request. Accordingly, the present invention can extract the flow rules of the four states S1, S2, S4 and S9 from the filtered outliers as described above and investigate the inconsistency between these states.

도 9는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 방법의 동작 흐름도를 도시한 것이다.9 is a flowchart illustrating a network policy inconsistency detection method according to an embodiment of the present invention.

도 9의 방법은 도 4에 도시된 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템에 의해 수행된다.The method of FIG. 9 is performed by the network policy inconsistency detection system according to the embodiment of the present invention shown in FIG. 4 .

도 9를 참조하면, 단계 910에서, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성한다. Referring to FIG. 9 , in step 910, a seed file is analyzed based on the flow rule dependency tree to generate a flow rule request for randomizing elements and values of the seed rule.

단계 910은 사용자로부터 시드 파일을 수신하며, 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계 및 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 플로우 규칙 요청을 생성하여 랜덤화한 후, 애플리케이션 에이전트부로 시드 플로우 요청 및 플로우 규칙 요청을 전송하는 단계를 포함할 수 있다.Step 910 receives the seed file from the user, analyzes the format of the seed flow request based on the flow rule dependency tree, and generates and randomizes one or a plurality of modified flow rule requests according to the analyzed seed flow request. Thereafter, the method may include transmitting a seed flow request and a flow rule request to the application agent unit.

단계 920에서, 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리한다.In step 920, a flow rule is created according to a flow rule request, and rule details including a flow rule state of a switch for one flow rule and message information corresponding thereto are collected and managed.

단계 920은 플로우 규칙 요청 및 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 스위치의 플로우 규칙 상태를 관리하는 단계 및 플로우 규칙과 그에 상응하는 관련된 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계를 포함할 수 있다.Step 920 creates a flow rule according to the flow rule request and the seed flow request, manages the flow rule status of the switch through the flow service provided by the SDN controller, and collects the flow rule and the corresponding message information It may include steps used to detect rule inconsistencies.

단계 930에서, 플로우 규칙 상태 다이어그램을 기반으로 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지한다. In step 930, the occurrence of a flow rule mismatch is detected by searching the rule details based on the flow rule state diagram.

단계 930은 플로우 규칙 상태 다이어그램을 이용하여 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계 및 검출된 플로우 규칙 불일치를 처리하는 단계를 포함할 수 있다. Operation 930 may include filtering the rule details using the flow rule state diagram to analyze inconsistencies between states and processing the detected flow rule inconsistencies.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, the devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (15)

플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부;
상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 상기 플로우 규칙 상태에 따른 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부; 및
플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부
를 포함하는 네트워크 정책 불일치 탐지 시스템.
a flow rule unit that analyzes a seed file based on the flow rule dependency tree and generates a flow rule request that randomizes elements and values of the seed rule;
an application agent unit that generates a flow rule according to the flow rule request, and collects and manages rule details including a flow rule status of a switch for one flow rule and message information according to the flow rule status; and
Inconsistency detection unit that detects occurrence of flow rule inconsistency by searching the rule details based on the flow rule state diagram
A network policy inconsistency detection system comprising a.
제1항에 있어서,
상기 플로우 규칙부는
사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 의존성 분석부; 및
분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 플로우 요청 퍼저부
를 포함하는 네트워크 정책 불일치 탐지 시스템.
According to claim 1,
The flow rule unit
a dependency analysis unit receiving the seed file from a user and analyzing a format of a seed flow request based on the flow rule dependency tree; and
A flow request fuzzer unit that generates and randomizes one or a plurality of modified flow rule requests according to the analyzed seed flow request, and then transmits the seed flow request and the flow rule request to the application agent unit
A network policy inconsistency detection system comprising a.
제2항에 있어서,
상기 의존성 분석부는
상기 플로우 규칙 종속성 트리를 유지 및 관리하며,
상기 플로우 규칙 종속성 트리는
랜덤화 값(value) 및 랜덤화 요소(element)의 하위 구성 요소를 포함하는 것으로, 대상 SDN이 불일치 문제를 일으키는지 여부를 검사하기 위해 퍼징 기술을 이용하여 생성된 기형 플로우 규칙인 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
3. The method of claim 2,
The dependency analysis unit
maintaining and managing the flow rule dependency tree;
The flow rule dependency tree is
It comprises a randomization value and subcomponents of a randomization element, characterized in that it is a malformed flow rule generated using a fuzzing technique to check whether the target SDN causes a mismatch problem. , network policy inconsistency detection system.
제2항에 있어서,
상기 애플리케이션 에이전트부는
상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 플로우 규칙 처리부; 및
상기 플로우 규칙 상태와 상기 플로우 규칙 상태에 따른 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 플로우 규칙 수집부
를 포함하는 네트워크 정책 불일치 탐지 시스템.
3. The method of claim 2,
The application agent unit
a flow rule processing unit that generates a flow rule according to the flow rule request and the seed flow request, and manages a flow rule state of the switch through a flow service provided by an SDN controller; and
A flow rule collecting unit that collects the flow rule status and the message information according to the flow rule status and uses it to detect a flow rule mismatch.
A network policy inconsistency detection system comprising a.
제4항에 있어서,
상기 플로우 규칙 처리부는
상기 플로우 규칙 요청 및 상기 시드 플로우 요청을 기반으로 상기 플로우 규칙을 생성하여 이를 상기 SDN 컨트롤러에 포함된 정책 데이터베이스에 저장하는, 네트워크 정책 불일치 탐지 시스템.
5. The method of claim 4,
The flow rule processing unit
generating the flow rule based on the flow rule request and the seed flow request and storing it in a policy database included in the SDN controller.
제5항에 있어서,
상기 플로우 규칙 처리부는
상기 생성된 플로우 규칙을 포함한 FLOW MOD 메시지를 상기 스위치로 전송하고, FLOW STATS 메시지를 사용하여 상기 스위치에 설치된 상기 플로우 규칙 상태를 수신하는, 네트워크 정책 불일치 탐지 시스템.
6. The method of claim 5,
The flow rule processing unit
A network policy inconsistency detection system for transmitting a FLOW MOD message including the generated flow rule to the switch, and receiving the flow rule status installed in the switch using a FLOW STATS message.
제6항에 있어서,
상기 플로우 규칙 처리부는
상기 생성된 플로우 규칙을 포함하여 상기 FLOW MOD 메시지를 빌드하며, 상기 스위치에 의한 플로우 규칙 설치를 확인하기 위해 BARRIER REQUEST 메시지와 함께 상기 FLOW MOD 메시지를 상기 스위치에 전송하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
7. The method of claim 6,
The flow rule processing unit
Builds the FLOW MOD message including the generated flow rule, and transmits the FLOW MOD message to the switch together with a BARRIER REQUEST message to confirm the flow rule installation by the switch. Network policy mismatch detection system.
제7항에 있어서,
상기 플로우 규칙 수집부는
하나의 플로우 규칙에 대한 상기 스위치의 플로우 규칙 상태와 상기 FLOW MOD 메시지, 상기 BARRIER REQUEST 메시지 및 상기 FLOW STATS 메시지의 상기 메시지 정보를 포함하는 모든 기록을 상기 규칙 내역으로 정리하여 상기 불일치 탐지부에 제공하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
8. The method of claim 7,
The flow rule collection unit
All records including the flow rule status of the switch for one flow rule and the message information of the FLOW MOD message, the BARRIER REQUEST message, and the FLOW STATS message are organized into the rule details and provided to the inconsistency detection unit characterized in that, the network policy inconsistency detection system.
제1항에 있어서,
상기 불일치 탐지부는
상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 불일치 분석부; 및
상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 불일치 해결부
를 포함하는 네트워크 정책 불일치 탐지 시스템.
According to claim 1,
The discrepancy detection unit
a discrepancy analysis unit that filters the rule details using the flow rule state diagram to analyze discrepancies between states; and
A discrepancy resolution unit that handles the flow rule discrepancy detected by the discrepancy analysis unit
A network policy inconsistency detection system comprising a.
제9항에 있어서,
상기 플로우 규칙 상태 다이어그램은
S0부터 S10까지의 11가지 상태를 정의한 것으로, 각 에지에 플로우 규칙 처리를 담당하는 상기 애플리케이션 에이전트부의 특정 동작을 지정하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
10. The method of claim 9,
The flow rule state diagram is
11 states from S0 to S10 are defined, and a specific operation of the application agent in charge of flow rule processing is designated at each edge.
제9항에 있어서,
상기 불일치 해결부는
상기 애플리케이션 에이전트부를 통해 상기 스위치의 일관성 없는 플로우 규칙을 삭제하는, 네트워크 정책 불일치 탐지 시스템.
10. The method of claim 9,
The discrepancy resolution unit
A network policy inconsistency detection system for deleting an inconsistent flow rule of the switch through the application agent unit.
SDN(Software Defined Network, 소프트웨어 정의 네트워크)의 네트워크 정책 불일치 탐지 시스템의 네트워크 정책 불일치 탐지 방법에 있어서,
플로우 규칙부에 의해, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 단계;
애플리케이션 에이전트부에 의해, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 상기 플로우 규칙 상태에 따른 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 단계; 및
불일치 탐지부에 의해, 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 단계
를 포함하는 네트워크 정책 불일치 탐지 방법.
In the network policy inconsistency detection method of the network policy inconsistency detection system of SDN (Software Defined Network),
generating, by the flow rule unit, a flow rule request for randomizing elements and values of a seed rule by analyzing a seed file based on a flow rule dependency tree;
generating, by the application agent unit, a flow rule according to the flow rule request, and collecting and managing rule details including a flow rule status of a switch for one flow rule and message information according to the flow rule status; ; and
Detecting, by the inconsistency detection unit, occurrence of a flow rule inconsistency by searching the rule details based on the flow rule state diagram
A network policy inconsistency detection method comprising a.
제12항에 있어서,
상기 플로우 규칙 요청을 생성하는 단계는
의존성 분석부에 의해, 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계; 및
플로우 요청 퍼저부에 의해, 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 단계
를 포함하는 네트워크 정책 불일치 탐지 방법.
13. The method of claim 12,
The step of generating the flow rule request is
receiving, by a dependency analysis unit, the seed file from a user, and analyzing a format of a seed flow request based on the flow rule dependency tree; and
After the flow request fuzzer unit generates and randomizes one or a plurality of modified flow rule requests according to the analyzed seed flow request, transmitting the seed flow request and the flow rule request to the application agent unit
A network policy inconsistency detection method comprising a.
제13항에 있어서,
상기 규칙 내역을 수집 및 관리하는 단계는
플로우 규칙 처리부에 의해, 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 단계; 및
플로우 규칙 수집부에 의해, 상기 플로우 규칙 상태와 상기 플로우 규칙 상태에 따른 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계
를 포함하는 네트워크 정책 불일치 탐지 방법.
14. The method of claim 13,
The step of collecting and managing the rule details is
generating, by a flow rule processing unit, a flow rule according to the flow rule request and the seed flow request, and managing a flow rule state of the switch through a flow service provided by an SDN controller; and
Collecting, by a flow rule collecting unit, the flow rule state and the message information according to the flow rule state, and using it to detect a flow rule mismatch
A network policy inconsistency detection method comprising a.
제12항에 있어서,
상기 플로우 규칙 불일치의 발생을 탐지하는 단계는
불일치 분석부에 의해, 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계; 및
불일치 해결부에 의해, 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 단계
를 포함하는 네트워크 정책 불일치 탐지 방법.
13. The method of claim 12,
The step of detecting the occurrence of the flow rule mismatch comprises:
analyzing the inconsistency between states by filtering the rule details using the flow rule state diagram by the inconsistency analysis unit; and
processing, by the inconsistency resolution unit, the flow rule inconsistency detected by the inconsistency analysis unit
A network policy inconsistency detection method comprising a.
KR1020200150032A 2020-11-11 2020-11-11 Network policy inconsistencies detection system in software-defined networks and the method thereof KR102439162B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200150032A KR102439162B1 (en) 2020-11-11 2020-11-11 Network policy inconsistencies detection system in software-defined networks and the method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200150032A KR102439162B1 (en) 2020-11-11 2020-11-11 Network policy inconsistencies detection system in software-defined networks and the method thereof

Publications (2)

Publication Number Publication Date
KR20220064005A KR20220064005A (en) 2022-05-18
KR102439162B1 true KR102439162B1 (en) 2022-09-01

Family

ID=81800906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200150032A KR102439162B1 (en) 2020-11-11 2020-11-11 Network policy inconsistencies detection system in software-defined networks and the method thereof

Country Status (1)

Country Link
KR (1) KR102439162B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528809A (en) 2013-07-18 2016-09-15 パロ・アルト・ネットワークス・インコーポレーテッドPalo Alto Networks Incorporated Packet classification for network routing
JP2019205192A (en) 2019-07-24 2019-11-28 アルカテル−ルーセント Security in software defined network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528809A (en) 2013-07-18 2016-09-15 パロ・アルト・ネットワークス・インコーポレーテッドPalo Alto Networks Incorporated Packet classification for network routing
JP2019205192A (en) 2019-07-24 2019-11-28 アルカテル−ルーセント Security in software defined network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이승수 외 5명, AudiSDN: Automated Detection of Network Policy Inconsistencies in Software-Defined Networks. IEEE, IEEE INFOCON 2020 IEEE Conference on Computer Communications, 2020.08.04., 페이지 1-10.*

Also Published As

Publication number Publication date
KR20220064005A (en) 2022-05-18

Similar Documents

Publication Publication Date Title
JP6419967B2 (en) System and method for network management
US10469320B2 (en) Versioning system for network states in a software-defined network
US8682940B2 (en) Operating a network using relational database methodology
US8429255B1 (en) Determining reorder commands for remote reordering of policy rules
Bleikertz et al. Cloud radar: near real-time detection of security failures in dynamic virtualized infrastructures
JP5613237B2 (en) Identification of idle network devices
CN104115463A (en) A streaming method and system for processing network metadata
Miserez et al. SDNRacer: Detecting concurrency violations in software-defined networks
US20200167342A1 (en) System for Secure Software Defined Networking Based on Block-Chain and Method Thereof
CN109558366A (en) A kind of firewall based on multiple processor structure
US20150188933A1 (en) Dynamic selection of network traffic for file extraction and shellcode detection
KR20200025043A (en) Method and system for security information and event management based on artificial intelligence
Lee et al. AudiSDN: Automated detection of network policy inconsistencies in software-defined networks
US9444684B2 (en) Method and system for detecting network upgrades
CN103902666A (en) Configuration file collecting and monitoring method based on OGG database replication
US20110055924A1 (en) Graph structures for event matching
KR102439162B1 (en) Network policy inconsistencies detection system in software-defined networks and the method thereof
Khelf et al. Ipsec/firewall security policy analysis: A survey
Tudosi et al. Design and implementation of a distributed firewall management system for improved security
Lee et al. A framework for policy inconsistency detection in software-defined networks
US20090249483A1 (en) Command and Control Systems for Cyber Warfare
US20220141256A1 (en) Method and system for performing security management automation in cloud-based security services
Shukla et al. Formal modeling and verification of software‐defined networks: A survey
KR20190049322A (en) Forensic server and Method for identifying the cause of attack on software defined network
JP4400868B2 (en) Unauthorized communication automatic setting intrusion detection device, method and recording medium

Legal Events

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