[go: up one dir, main page]

KR102439162B1 - 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법 - Google Patents

소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법 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
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020200150032A
Other languages
English (en)
Other versions
KR20220064005A (ko
Inventor
신승원
이승수
우승원
김진우
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020200150032A priority Critical patent/KR102439162B1/ko
Publication of KR20220064005A publication Critical patent/KR20220064005A/ko
Application granted granted Critical
Publication of KR102439162B1 publication Critical patent/KR102439162B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 SDN(Software Defined Network, 소프트웨어 정의 네트워크) 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크에 관한 것으로, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부 및 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부를 포함한다.

Description

소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법{NETWORK POLICY INCONSISTENCIES DETECTION SYSTEM IN SOFTWARE-DEFINED NETWORKS AND THE METHOD THEREOF}
본 발명은 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 SDN(Software Defined Network, 소프트웨어 정의 네트워크) 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크에 관한 것이다.
소프트웨어 정의 네트워킹은 현대 디지털 네트워크에서 가장 영향력 있는 기술 방향 중 하나로 부상했다. SDN은 현재 데이터 컴퓨팅 센터, 네트워크 인프라 제공자에 의해 그리고 기업 네트워크에 광범위하게 배치되고 있다. 이러한 채택이 증가함에 따라 SDN 아키텍처와 구현의 모든 측면에 대한 정밀도도 높아졌다. FortNox의 연구는 SDN 특유의 공격 시나리오(선행 논문 참조)의 실현 가능성을 먼저 탐구했기 때문에, 많은 연구자들은 공격 시나리오를 도입하고 다양한 방어 조치를 제안하였다. 그러나 현재까지 거의 모든 SDN 보안 프로젝트는 소프트웨어 버그 및 애플리케이션 오용과 같은 시스템 수준의 우려를 완화하거나 악의적인 트래픽에 대처하는 관점에서 보호를 제안했다.
보안 커뮤니티는 SDN을 구성하는 계층과 구성요소 사이에서 번역되어 네트워크 정책(플로우 규칙)의 일관성 검사에 제한적인 관심을 기울였다. SDN의 정책 충돌 방지 우려를 해소하기 위한 상당한 사전 작업이 있는 반면, 이러한 연구는 주로 단일 구성요소(예를 들면, SDN 컨트롤러의 정책 데이터베이스) 내에서 발생하는 정책 충돌에 초점을 맞추고 있다. 이러한 이전의 프로젝트는 SDN 스택의 여러 구성 요소(예를 들면, SDN 컨트롤러와 스위치) 간에 나타날 수 있는 정책 불일치를 탐지하는 데 직접 적용할 수 없다.
또한, SDN 응용 프로그램 입력을 예시된 플로우 규칙으로 변환하는 다단계 프로세스 중에 발생하는 사소한 문법 실수라도 네트워크 운영에 상당한 불안정을 초래할 수 있다. 그러한 문제들이 SDN에 심각한 문제를 일으킬 수 있지만, SDN 보안 연구자들은 이러한 문제에 대한 정밀 조사와 이러한 우려를 완화하기 위한 접근법을 제대로 연구하지 못했다.
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 정책이 전달되는 프로세스를 자동으로 분석하고, 그 구성요소 사이에서 발생하는 불일치를 감지하기 위한 새로운 프레임워크를 제안하고자 한다.
본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부 및 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부를 포함한다.
상기 플로우 규칙부는 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 의존성 분석부 및 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 플로우 요청 퍼저부를 포함할 수 있다.
상기 애플리케이션 에이전트부는 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, 상기 SDN 컨트롤러가 제공하는 상기 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 플로우 규칙 처리부 및 상기 플로우 규칙과 그에 상응하는 관련된 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 플로우 규칙 수집부를 포함할 수 있다.
상기 불일치 탐지부는 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 불일치 분석부 및 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 불일치 해결부를 포함할 수 있다.
본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 방법은 플로우 규칙부에 의해, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 단계, 애플리케이션 에이전트부에 의해, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 단계 및 불일치 탐지부에 의해, 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 단계를 포함한다.
상기 플로우 규칙 요청을 생성하는 단계는 의존성 분석부에 의해, 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계 및 플로우 요청 퍼저부에 의해, 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 단계를 포함할 수 있다.
상기 규칙 내역을 수집 및 관리하는 단계는 플로우 규칙 처리부에 의해, 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, 상기 SDN 컨트롤러가 제공하는 상기 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 단계 및 플로우 규칙 수집부에 의해, 상기 플로우 규칙과 그에 상응하는 관련된 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계를 포함할 수 있다.
상기 플로우 규칙 불일치의 발생을 탐지하는 단계는 불일치 분석부에 의해, 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계 및 불일치 해결부에 의해, 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, SDN 구성요소를 통해 관리상의 SDN 정책이 전달되는 프로세스를 자동으로 분석하고, 그 구성요소 사이에서 발생하는 불일치를 감지할 수 있다.
도 1은 SDN 아키텍쳐를 도시한 것이다.
도 2는 네트워크 스위치에 플로우 규칙을 설치하는 절차를 설명하기 위해 도시한 것이다.
도 3은 잘못된 형식의 흐름 규칙에 의한 정책 불일치의 예를 설명하기 위해 도시한 것이다.
도 4는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템의 구성도를 도시한 것이다.
도 5는 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 예를 도시한 것이다.
도 6은 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 요소 및 값을 랜덤화한 예를 도시한 것이다.
도 7은 본 발명의 실시예에 따른 플로우 요소를 제거하여 규칙 종속성 트리를 랜덤화한 예를 도시한 것이다.
도 8은 본 발명의 실시예에 따른 플로우 규칙 상태 다이어그램의 예를 도시한 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 일 실시예들은, 랜덤화(randomization)된 오픈플로우(OpenFlow) 규칙을 자동으로 생성하고, 플로우 규칙 불일치를 감지할 수 있는 새로운 프레임워크의 설계와 구현을 제시하는 것을 그 요지로 한다.
본 발명의 일 실시예에 따르면, 잠재적인 기형 SDN 정책 생성 기회를 자극하기 위해 고안된 전문 네트워크 정책 퍼징 모듈을 제시하고, 실제 SDN 스택에서 이러한 불일치를 자동으로 감지하기 위한 탐지 전략을 도입한다. 본 발명의 탐지 접근방식은 SDN 플로우 규칙이 SDN의 각 계층과 구성요소 사이에서 어떻게 전달되는지에 대한 상태 변환 다이어그램 개념에 의해 알려진다. 이 모델은 퍼징 전략과 가장 널리 사용되는 SDN 구현 전반에 걸쳐 일반화될 수 있는 일관된 테스트 범위를 달성하는 방법에 대한 이해를 알려준다.
이하에서는 도 1 내지 도 9를 참조하여 네트워크 정책 불일치 탐지 시스템 및 방법에 대해 상세히 설명한다.
도 1은 SDN 아키텍쳐를 도시한 것이다.
SDN은 기존의 네트워크와 달리 네트워크 트래픽의 처리 방식을 결정하는 제어부(즉, 애플리케이션층(Application Layer) 및 제어층(Control Layer))를 제어층에 의해 정의된 팩 포워딩 정책을 구현하는 데이터부(즉, 인프라층(Infrastructure Layer))로부터 분리한다. SDN은 논리적으로 중앙 집중화된 네트워크 정책 제어를 도입하여 내부 네트워크 토폴로지에 대한 민첩하고 유연한 관리 제어를 가능하게 한다. SDN 컨트롤러(SDN Controller)는 또한 플로우 규칙 구현의 낮은 수준의 관리를 추상화하여 네트워크 프로그래머가 SDN 애플리케이션으로서 직관적인 네트워크 기능을 구현할 수 있는 네트워크 운영 체제를 제공할 수 있다.
SDN 컨트롤러는 네트워크 구성 및 포워딩(forwarding) 규칙을 southbound API(예를 들면, Openflow)를 통해 네트워크 포워딩 장치(예를 들면, SDN 지원 스위치)로 관리한다.
OpenFlow는 현재 컨트롤러가 포워딩 장치(Openflow 호환 네트워크 스위치)와 상호 작용할 수 있는 명령과 동작을 정의하는 실질적인 SDN 프로토콜이다. 모든 OpenFLow 지원 스위치는 플로우 항목 집합을 관리하는 여러 플로우 테이블을 유지 관리한다. OpenFlow 사양에 따르면 각 플로우 입력은 i)수신 패킷과 비교되는 일치 필드(기준), ii)일치하는 수신 패킷을 처리하는 방법을 정의하는 일련의 작업(명령과 동일), iii)패킷/바이트의 총 수를 추가하는 패킷/바이트 카운터 등 3개의 주요 부분으로 구성된다.
수신 패킷이 스위치에 도착하여 일치하는 플로우 규칙 항목이 없을 때 스위치는 패킷의 부분 정보를 포함한 PACKET IN 메시지를 컨트롤러에 전송한다. 컨트롤러는 패킷을 처리하는 방법을 결정하고, 관련 플로우 규칙을 만든 다음, FLOW MOD 메시지를 통해 스위치에 규칙을 전송한다. FLOW MOD에는 우선 순위, 일치 필드, 규칙별 동작이 포함되어 있어 스위치가 동일한 기준을 충족하는 모든 후속 패킷에 규칙을 묶을 수 있다. 이때, 둘 이상의 플로우 규칙에 일치 필드가 있을 경우 우선 순위가 높은 규칙이 우선한다.
도 2는 네트워크 스위치에 플로우 규칙을 설치하는 절차를 설명하기 위해 도시한 것이다.
SDN의 경우, 각 FLOW MOD 메시지는 네트워크 보안 정책 결정을 나타낸다. 플로우 규칙은 패킷이 어떤 경로를 통과할 것인지, 그리고 패킷이 어느 종점(호스트)을 대상으로 할 것인지 SDN에서 어떤 데이터가 허용될 것인지를 정의한다.
네트워크 관리자(Network Admin)는 네트워크 플로우 규칙 제출 시 i)PACKET IN 메시지에 대응하여 플로우 규칙을 동적으로 계산하는 SDN 애플리케이션(Application)을 사용하는 것과 ii)컨트롤러(Controller) 내부에서 실행되는 기존 SDN 애플리케이션이 제공하는 REST APIs1 또는 명령줄 인터페이스를 통해 플로우 규칙을 능동적으로 요청하는 두 가지 옵션을 가진다.
도 2는 전술한 두 번째 옵션에 관한 것으로, 네트워크 스위치에 플로우 규칙을 사전 예방적으로 설치하는 절차를 나타낸다.
첫째, 관리자(Network Admin)는 ①외부 인터페이스(예를 들면, REST APIs)를 통해 SDN 애플리케이션에 대한 플로우 규칙 추가를 제출한다.
다음으로, 애플리케이션(Application)은 ②수신된 요청에 근거하여 FLOW MOD 메시지를 작성하고, ③플로우 규칙을 컨트롤러(Controller)가 관리하는 내부 데이터베이스(Policy DB)에 저장한다. 그런 다음 SDN 컨트롤러(SDN Controller)가 ④FLOW MOD 메시지를 스위치(Switch)로 전송한다.
마지막으로 스위치(Switch)는 FLOW MOD 메시지 내의 플로우 규칙을 플로우 테이블에 설치한다.
전술한 절차에 의해 플로우 규칙이 관리자, 애플리케이션, 컨트롤러 및 스위치의 네 가지 처리 지점에서 관리된다는 것을 알 수 있다. 이에 따라서, 본 발명은 네트워크 정책이 각 처리 지점에서 서로 다른 뷰(상태)를 가질 수 있음을 이용하며, SDN 운용 과정에서 이러한 상태 차이가 발생할 수 있다는 우려를 정책 불일치 문제로 언급한다.
도 3은 잘못된 형식의 흐름 규칙에 의한 정책 불일치의 예를 설명하기 위해 도시한 것이다.
보다 상세하게는, 도 3은 네트워크 관리자(Network Admin)가 만든 누락된 전제조건이 제어부와 데이터부의 상태 불일치로 이어질 수 있는 컨트롤러에 오류를 발생시키는 예를 보여준다. 이 예에서는 Floodlight SDN 컨트롤러(Floodlight Controller), OpenFlow 지원 스위치(Switch) 1개 및 호스트(Host) 2개로 구성된 네트워크 토폴로지가 있다고 가정한다.
관리자는 StaticEntryPusher 애플리케이션이 제공하는 REST API를 통해 스위치에 플로우 규칙을 설치하려고 시도하여 Host A가 TCP 포트 80을 통해 Host B와 통신할 수 있도록 한다. 나아가, 스위치에 플로우 규칙을 설치하는 절차는 다음과 같다.
먼저 네트워크 관리자는 REST API 양식에 플로우 규칙 추가를 요청하여 애플리케이션(1단계)으로 전송한다. 그런 다음, 애플리케이션은 플로우 규칙을 정책 데이터베이스(Policy DB)에 저장하고, 수신의 성공 여부를 관리자(2단계)에게 다시 전송한다.
그러나 애플리케이션이 FLOW MOD 메시지를 작성하려고 할 때, 처리 오류(3단계)로 인해 스위치와 컨트롤러의 연결이 끊어진다. 구체적으로, 도 3에서, 누락된 전제조건은 잘못된 형식의 FLOW MOD 요청을 초래한다.
OpenFlow 규격에 따르면 플로우 규칙의 일치 필드에 TCT/UDP 포트 번호를 사용할 때 IP 프로토콜을 지정해야 한다. 여기서 문제는 애플리케이션이 이 전제조건을 확인하지 않고, FLOW MOD 메시지를 작성하려고 한다는 것이다. 이에 따라서, 내부 컨트롤러 루프로 인해 CPU 파열을 야기하여 스위치와 컨트롤러의 연결이 끊어질 수 있는 상태가 발생한다. 보다 심각한 것은 컨트롤러가 결과 메시지를 반환하여 요청된 플로우 규칙이 설치되지 않았을 때 성공적으로 설치되었음을 나타낸다. 이로 인하여 관리자는 요청된 규칙이 적절하게 설치되었다고 믿는 것이다. 또한, 컨트롤러는 정책 데이터베이스에 플로우 규칙을 보존할 것이며, 이제 컨트롤러를 통해 작동하는 모든 SDN 애플리케이션에 영향을 주게 되므로, 이는 심각한 문제로 발생되게 된다.
본 발명은 이러한 불일치를 예방하기 위한 불일치 탐지 기술을 제안하고자 한다.
도 4는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템의 구성도를 도시한 것이다.
도 4를 참조하면, 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 SDN 구성요소 사이에서 발생하는 불일치를 감지하기 위한 자동 퍼징(fuzz testing) 프레임워크를 나타낸다.
이를 위해, 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템(400)은 플로우 규칙부(410), 애플리케이션 에이전트부(420) 및 불일치 탐지부(430)를 포함한다.
도 4는 SDN 정책 불일치가 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템(400)에 의해 어떻게 탐지되는지를 보여준다. 이에 대한 작업플로우를 설명하자면, 먼저 (1)사용자로부터 플로우 규칙 요청이 있는 시드 파일(Seed file)을 수신하며, 플로우 규칙부(410)는 플로우 규칙 종속성 트리를 기반으로 시드 규칙을 분석한 다음, 시드 규칙의 요소와 값을 랜덤화한다. 이후에, 플로우 규칙부(410)는 변형된 플로우 요청을 애플리케이션 에이전트부(420)로 전송한다.
(2)애플리케이션 에이전트부(420)는 플로우 규칙부(410)에서 수신한 플로우 규칙 요청을 차례대로 처리한다.
(3)애플리케이션 에이전트부(420)는 플로우 규칙을 정책 데이터베이스(Policy DB)에 저장하고, (4)컨트롤러(SDN Controller)가 제공하는 플로우 서비스를 통해 스위치에 FLOW MOD 메시지를 전송한다.
(5)애플리케이션 에이전트부(420)는 FLOW STATS 메시지를 사용하여 스위치에 설치된 플로우 규칙을 가져온 다음, (6)하나의 플로우 규칙에 대한 모든 정보를 규칙 내역에 포함하여 불일치 탐지부(430)로 전송한다.
마지막으로, 불일치 탐지부(430)는 플로우 규칙 상태 다이어그램을 기준으로 규칙 내역을 검사하고, 플로우 규칙 불일치의 존재에 대한 의견을 제시한다.
도 4를 참조하여 네트워크 정책 불일치 탐지 시스템(400)의 각 구성요소에 대해 보다 세부적으로 설명하자면, 플로우 규칙부(410)는 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성한다.
플로우 규칙부(410)는 의존성 분석부(411) 및 플로우 요청 퍼저부(412)를 포함할 수 있다.
의존성 분석부(411)는 사용자로부터 시드 파일(Seed file)을 수신하며, 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석할 수 있다. 의존성 분석부(411)는 사용자로부터 JSON 또는 XML 형식을 기반으로 하는 플로우 규칙 요청의 시드 파일을 수신할 수 있다. 이에, 의존성 분석부(411)는 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청을 검사한 후, 시드 플로우 요청이 잘못된 형식인지 여부를 결정할 수 있다. 또한, 의존성 분석부(411)는 테스트 사례 생성 중에 어떤 시드 플로우 요청의 요소와 값이 랜덤화되는지를 결정할 수 있다.
본 발명의 실시예에 따른 의존성 분석부(411)는 플로우 규칙 종속성 트리를 유지 및 관리하며, 플로우 규칙 종속성 트리는 랜덤화 값(value) 및 랜덤화 요소(element)의 하위 구성 요소를 포함하는 것으로, 대상 SDN이 불일치 문제를 일으키는지 여부를 검사하기 위해 퍼징 기술을 이용하여 생성된 기형 플로우 규칙일 수 있다. 상기 플로우 규칙 종속성 트리에 대해서는 하기의 도 5 내지 도 7을 참조하여 상세히 설명하기로 한다.
이에 따라서, 의존성 분석부(411)는 초기 플로우 규칙 요청과 함께 플로우 요청 퍼저부(412)로 결정을 넘긴다. 플로우 요청 퍼저부(412)는 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 플로우 규칙 요청(예를 들면, 값 및 요소 랜덤화)하여 랜덤화한 후, 애플리케이션 에이전트부(420)로 시드 플로우 요청(기존 요청) 및 플로우 규칙 요청(변형 요청)을 전송할 수 있다.
애플리케이션 에이전트부(420)는 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리한다.
애플리케이션 에이전트부(420)는 플로우 규칙 처리부(421) 및 플로우 규칙 수집부(422)를 포함할 수 있다.
플로우 규칙 처리부(421)는 SDN 컨트롤러(SDN Controller)가 제공하는 플로우 서비스를 통해 스위치의 플로우 규칙 상태를 관리하는 역할을 수행한다.
구체적으로 설명하면, 플로우 규칙 처리부(421)는 플로우 요청 퍼저부(412)로부터 시드 플로우 요청 및 플로우 규칙 요청을 수신하며, 각 요청을 기반으로 플로우 규칙을 생성하고, 이를 SDN 컨트롤러에 포함된 정책 데이터베이스(Policy DB)에 저장할 수 있다.
이후에, 플로우 규칙 처리부(421)는 생성된 플로우 규칙을 포함한 FLOW MOD 메시지를 전송하고, FLOW STATS 메시지를 사용하여 스위치에 설치된 플로우 규칙 상태를 수신할 수 있다. 또한, 플로우 규칙 처리부(421)는 생성된 플로우 규칙을 포함하여 FLOW MOD 메시지를 빌드하며, 스위치에 의한 플로우 규칙 설치를 확인하기 위해 BARRIER REQUEST 메시지와 함께 FLOW MOD 메시지를 스위치에 전송할 수 있다.
플로우 규칙 수집부(422)는 플로우 규칙과 그에 상응하는 관련된 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용할 수 있다. 특히, 플로우 규칙 수집부(422)는 플로우 규칙 처리부(421)로부터 받은 하나의 초기 플로우 요청이 궁극적으로 스위치의 플로우 규칙이 되는 프로세스를 추적할 수 있다. 이에, 플로우 규칙 수집부(422)는 플로우 규칙이 중간에 삭제되면 규칙 처리가 중지된 위치를 기록하며, 각 플로우 규칙에 해당하는 스위치의 플로우 규칙 상태와 FLOW MOD 메시지, BARRIER REQUEST 메시지 및 FLOW STATS 메시지의 메시지 정보를 포함하는 모든 기록을 규칙 내역으로 정리하여 불일치 탐지부(430)에 제공할 수 있다.
불일치 탐지부(430)는 플로우 규칙 상태 다이어그램을 기반으로 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지한다.
불일치 탐지부(430)는 불일치 분석부(431) 및 불일치 해결부(432)를 포함할 수 있다.
불일치 분석부(431)는 플로우 규칙 상태 다이어그램을 이용하여 규칙 내역을 필터링하여 상태 사이의 불일치를 분석할 수 있다. 예를 들면, 불일치 분석부(431)는 상태 S1 플로우 규칙 요청의 기형 여부를 확인하여 3건의 이상 사례를 분류할 수 있다. 첫 번째의 이상 사례는 플로우 요청이 잘못 형성되었을 때 발생하지만 플로우 규칙 상태가 성공적으로 도달한 사례를 나타낸다. 두 번째의 이상 사례는 플로우 요청이 프로토콜에 부합하지만 최종 상태가 실패한 집합(예를 들면, S3, S5 또는 S8)에 있는 경우를 나타낸다. 마지막의 이상 사례는 스위치의 플로우 규칙 수가 요청과 같지 않을 때 발생한다. 불일치 분석부(431)는 전술한 바와 같이 필터링된 이상 사례에서 4개 상태 S1, S2, S4 및 S9의 플로우 규칙을 추출하여 이들 상태 사이의 불일치를 조사할 수 있다.
상기 플로우 규칙 상태 다이어그램은 S0부터 S10까지의 11가지 상태를 정의한 것으로, 각 에지에 플로우 규칙 처리를 담당하는 애플리케이션 에이전트의 특정 동작을 지정할 수 있다. 상기 플로우 규칙 상태 다이어그램에 대해서는 하기의 도 8을 참조하여 상세히 설명하기로 한다.
불일치 해결부(432)는 불일치 분석부(431)에서 검출된 플로우 규칙 불일치를 처리할 수 있다. 불일치 해결부(432)는 기본적으로 컨트롤러(Controller)의 데이터베이스를 최우선 순위로 간주하므로, 애플리케이션 에이전트부(420)를 통해 스위치의 일관성 없는 플로우 규칙을 삭제할 수 있다.
또한, 불일치 해결부(432)는 컨트롤러와 스위치 사이의 플로우 규칙을 다시 동기화하려고 시도할 수 있다. 그러나 불일치 해결부(432)는 규칙의 형식이 잘못되었거나 스위치가 이를 수용할 수 없어 플로우 규칙을 설치할 수 없는 경우, 컨트롤러의 플로우 규칙도 삭제할 수 있다. 실시예에 따라서, 불일치 해결부(432)는 사후 분석을 위해 로그를 남겨둔다.
도 5는 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 예를 도시한 것이고, 도 6은 본 발명의 실시예에 따른 플로우 규칙 종속성 트리의 요소 및 값을 랜덤화한 예를 도시한 것이며, 도 7은 본 발명의 실시예에 따른 플로우 요소를 제거하여 규칙 종속성 트리를 랜덤화한 예를 도시한 것이다.
본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 종속성 트리를 사용하여 대상 SDN이 예기치 않은 불일치 문제를 일으키는지 검사할 수 있는 기형 플로우 규칙을 생성하며, 임의로 기형 플로우 규칙을 생성하기 위해 퍼징 기술을 사용한다.
본 발명에서, 플로우 규칙 종속성 트리 및 플로우 규칙 랜덤화의 첫 번째 단계는 입력 랜덤화의 대상이 되어야 하는 입력 파라미터 집합을 결정하는 것이다. 본 발명의 프레임워크에서 플로우 규칙을 구성하는 모든 요소는 잠재적 대상이 될 수 있다. 이에, 플로우 규칙 요소의 효율적인 랜덤화를 위해, 플로우 규칙 종속성 트리를 사용한다.
도 5를 참조하면, 플로우 규칙의 부분 종속성 트리를 보여준다. 직사각형 노드와 원형 노드는 각각 요소(element)와 그 값(value) 유형을 나타낸다. 예를 들어 table_id 요소는 서명되지 않은 바이트 유형이므로 그 값은 0 내지 255 사이여야 한다. 또한, 어떤 요소에 상위 요소가 있으면 그 요소들 사이에는 종속성이 있다. 따라서, 플로우 규칙이 TCP 소스 포트(tcp_src)를 기준으로 패킷을 필터링하려면 일치 필드에 IP 프로토콜(ip_proto)을 6으로 지정해야 한다. 종속성 트리는 OpenFlow 규격에서 파생되지만, 다른 SDN 컨트롤러에 대해서는 구현에 따라 확장할 수 있다(예를 들면, 도 5에서의 ‘isPermanent’ 및 ‘boolean’).
또한, 종속성 트리 기반 플로우 규칙 퍼징 프레임워크는 랜덤화 값 및 랜덤화 요소 등 두 개의 하위 구성요소 나뉠 수 있다.
도 6을 참조하여 값 랜덤화에 대해 설명하자면, 플로우 규칙에서 각 요소의 값은 단순히 임의로 지정할 수 있다. 예를 들어 종속성 트리에 기초하여 우선 순위 요소는 숫자 값이어야 하며 그 범위는 0에서 65535 사이어야 한다. 본 발명은 범위를 고려하지 않고 이 값을 랜덤화하여 플로우 규칙(예를 들면, 65536 또는 -1)을 만들어 숫자 유형의 오버플로우 또는 언더플로우를 유발하는 애플리케이션을 잘못 유도할 수 있다. 또한, 큰따옴표(“65535”)를 추가하여 요소의 숫자형(즉, 주조형)을 문자열 형식으로 조작하거나, 값을 거짓으로 변경하여 애플리케이션이 요소값을 실수로 비워둘 수 있도록 할 수 있다.
도 7을 참조하여 요소 랜덤화에 대해 설명하자면, 값을 랜덤화하는 것 외에도 요소들 간의 종속성을 제거(Element Removal)함으로써, 플로우 규칙의 의미를 조작할 수 있다. 예를 들어, 도 7에 도시된 것과 같이 ipv4_dst 요소는 ether형 요소에 의존하고 있어 IP 패킷을 필터링하려면 매치 필드에서도 Ethernet 프로토콜 유형(예를 들면, 0x0800)을 지정해야 한다는 것을 의미한다. 그러나 ether형 요소를 제거해 컨트롤러가 제대로 다룰 수 있는지 확인할 수 있다. 그리고, 종속성 트리에 임의의 요소를 추가하여 플로우 규칙의 작성 처리를 손상시킬 수도 있다.
다시 도 5를 참조하면, 본 발명은 플로우 규칙의 값과 요소를 자동으로 랜덤화하기 위해 트리 운행과 그래프 매칭 개념을 이용한 퍼징 알고리즘을 제시한다. 이 알고리즘에는 두 가지 입력이 필요하다. 첫 번째 입력은 종속성 트리 Tdt = (Vdt,Edt)이며, 여기서 Vdt는 요소와 값이 있는 노드의 집합이고, Edt는 Vdt 간의 종속 관계 집합이다. 두 번째 입력은 시드 플로우 규칙 flowseed이며, 출력은 변형된 플로우 규칙 M의 집합이다.
알고리즘은 출력 M을 빈 집합으로 초기화하며, 시드 플로우 규칙을 시드 트리 Tseed(2, 3행)로 변환한다. 값 랜덤화를 수행하기 위해 알고리즘은 시드 트리의 모든 노드 v를 반복적으로 방문하여 주어진 각 값을 변형한다. 그런 다음 원래 노드 v를 시드 트리에서 변형된 vmuted 노드에 수정하고 이를 출력(4~8행)에 추가한다.
의미 랜덤화의 경우 알고리즘은 새로운 노드를 추가하거나 기존 노드를 제거하여 시드 트리를 변형시킨다. 이를 위해 종속성 트리 Tdt의 모든 에지 e를 방문하고 요소-값 노드 쌍(9~12행)을 얻는다. 이들이 시드 트리에 포함된 경우 알고리즘은 해당 노드 쌍 vparent, vchild를 시드 트리에서 제거하여 종속성을 제거하고 이를 출력 집합(13~15행)에 추가한다. 그렇지 않으면 시드 트리에서 요소 노드 v를 랜덤하게 선택하고, 노드 쌍 vparent, vchild(17~20행)를 요소 노드 v에 차례로 추가하여 새로운 종속성 에지를 추가한다.
도 8은 본 발명의 실시예에 따른 플로우 규칙 상태 다이어그램의 예를 도시한 것이다.
도 8에 도시된 플로우 규칙 상태 다이어그램은 S0부터 S10까지의 11가지 상태를 정의하며, 각 에지는 플로우 규칙 처리를 담당하는 애플리케이션 에이전트부의 특정 동작을 지정한다. 예를 들어, 상태 S1의 애플리케이션 에이전트부가 사용자 요청을 대신하여 플로우 규칙의 생성에 성공하면, 플로우 규칙의 상태가 상태 S2로 전환되고 그렇지 않으면 상태 S3으로 이동한다.
본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템은 플로우 규칙 상태 다이어그램을 이용하여 각 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 조사할 수 있다.
예를 들면, 본 발명은 상태 S1 플로우 규칙 요청의 기형 여부를 확인하여 3건의 이상 사례를 분류할 수 있다. 첫 번째의 이상 사례는 플로우 요청이 잘못 형성되었을 때 발생하지만 플로우 규칙 상태가 성공적으로 도달한 사례를 나타낸다. 두 번째의 이상 사례는 플로우 요청이 프로토콜에 부합하지만 최종 상태가 실패한 집합(예를 들면, S3, S5 또는 S8)에 있는 경우를 나타낸다. 마지막의 이상 사례는 스위치의 플로우 규칙 수가 요청과 같지 않을 때 발생한다. 이에 따라서, 본 발명은 전술한 바와 같이 필터링된 이상 사례에서 4개 상태 S1, S2, S4 및 S9의 플로우 규칙을 추출하여 이들 상태 사이의 불일치를 조사할 수 있다.
도 9는 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 방법의 동작 흐름도를 도시한 것이다.
도 9의 방법은 도 4에 도시된 본 발명의 실시예에 따른 네트워크 정책 불일치 탐지 시스템에 의해 수행된다.
도 9를 참조하면, 단계 910에서, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성한다.
단계 910은 사용자로부터 시드 파일을 수신하며, 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계 및 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 플로우 규칙 요청을 생성하여 랜덤화한 후, 애플리케이션 에이전트부로 시드 플로우 요청 및 플로우 규칙 요청을 전송하는 단계를 포함할 수 있다.
단계 920에서, 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 그에 상응하는 메시지 정보를 포함하는 규칙 내역을 수집 및 관리한다.
단계 920은 플로우 규칙 요청 및 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 스위치의 플로우 규칙 상태를 관리하는 단계 및 플로우 규칙과 그에 상응하는 관련된 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계를 포함할 수 있다.
단계 930에서, 플로우 규칙 상태 다이어그램을 기반으로 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지한다.
단계 930은 플로우 규칙 상태 다이어그램을 이용하여 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계 및 검출된 플로우 규칙 불일치를 처리하는 단계를 포함할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (15)

  1. 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 플로우 규칙부;
    상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 상기 플로우 규칙 상태에 따른 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 애플리케이션 에이전트부; 및
    플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 불일치 탐지부
    를 포함하는 네트워크 정책 불일치 탐지 시스템.
  2. 제1항에 있어서,
    상기 플로우 규칙부는
    사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 의존성 분석부; 및
    분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 플로우 요청 퍼저부
    를 포함하는 네트워크 정책 불일치 탐지 시스템.
  3. 제2항에 있어서,
    상기 의존성 분석부는
    상기 플로우 규칙 종속성 트리를 유지 및 관리하며,
    상기 플로우 규칙 종속성 트리는
    랜덤화 값(value) 및 랜덤화 요소(element)의 하위 구성 요소를 포함하는 것으로, 대상 SDN이 불일치 문제를 일으키는지 여부를 검사하기 위해 퍼징 기술을 이용하여 생성된 기형 플로우 규칙인 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
  4. 제2항에 있어서,
    상기 애플리케이션 에이전트부는
    상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 플로우 규칙 처리부; 및
    상기 플로우 규칙 상태와 상기 플로우 규칙 상태에 따른 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 플로우 규칙 수집부
    를 포함하는 네트워크 정책 불일치 탐지 시스템.
  5. 제4항에 있어서,
    상기 플로우 규칙 처리부는
    상기 플로우 규칙 요청 및 상기 시드 플로우 요청을 기반으로 상기 플로우 규칙을 생성하여 이를 상기 SDN 컨트롤러에 포함된 정책 데이터베이스에 저장하는, 네트워크 정책 불일치 탐지 시스템.
  6. 제5항에 있어서,
    상기 플로우 규칙 처리부는
    상기 생성된 플로우 규칙을 포함한 FLOW MOD 메시지를 상기 스위치로 전송하고, FLOW STATS 메시지를 사용하여 상기 스위치에 설치된 상기 플로우 규칙 상태를 수신하는, 네트워크 정책 불일치 탐지 시스템.
  7. 제6항에 있어서,
    상기 플로우 규칙 처리부는
    상기 생성된 플로우 규칙을 포함하여 상기 FLOW MOD 메시지를 빌드하며, 상기 스위치에 의한 플로우 규칙 설치를 확인하기 위해 BARRIER REQUEST 메시지와 함께 상기 FLOW MOD 메시지를 상기 스위치에 전송하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
  8. 제7항에 있어서,
    상기 플로우 규칙 수집부는
    하나의 플로우 규칙에 대한 상기 스위치의 플로우 규칙 상태와 상기 FLOW MOD 메시지, 상기 BARRIER REQUEST 메시지 및 상기 FLOW STATS 메시지의 상기 메시지 정보를 포함하는 모든 기록을 상기 규칙 내역으로 정리하여 상기 불일치 탐지부에 제공하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
  9. 제1항에 있어서,
    상기 불일치 탐지부는
    상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 불일치 분석부; 및
    상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 불일치 해결부
    를 포함하는 네트워크 정책 불일치 탐지 시스템.
  10. 제9항에 있어서,
    상기 플로우 규칙 상태 다이어그램은
    S0부터 S10까지의 11가지 상태를 정의한 것으로, 각 에지에 플로우 규칙 처리를 담당하는 상기 애플리케이션 에이전트부의 특정 동작을 지정하는 것을 특징으로 하는, 네트워크 정책 불일치 탐지 시스템.
  11. 제9항에 있어서,
    상기 불일치 해결부는
    상기 애플리케이션 에이전트부를 통해 상기 스위치의 일관성 없는 플로우 규칙을 삭제하는, 네트워크 정책 불일치 탐지 시스템.
  12. SDN(Software Defined Network, 소프트웨어 정의 네트워크)의 네트워크 정책 불일치 탐지 시스템의 네트워크 정책 불일치 탐지 방법에 있어서,
    플로우 규칙부에 의해, 플로우 규칙 종속성 트리를 기반으로 시드 파일(Seed file)을 분석하여 시드 규칙의 요소와 값을 랜덤화하는 플로우 규칙 요청을 생성하는 단계;
    애플리케이션 에이전트부에 의해, 상기 플로우 규칙 요청에 따라 플로우 규칙을 생성하며, 하나의 상기 플로우 규칙에 대한 스위치의 플로우 규칙 상태 및 상기 플로우 규칙 상태에 따른 메시지 정보를 포함하는 규칙 내역을 수집 및 관리하는 단계; 및
    불일치 탐지부에 의해, 플로우 규칙 상태 다이어그램을 기반으로 상기 규칙 내역을 탐색하여 플로우 규칙 불일치의 발생을 탐지하는 단계
    를 포함하는 네트워크 정책 불일치 탐지 방법.
  13. 제12항에 있어서,
    상기 플로우 규칙 요청을 생성하는 단계는
    의존성 분석부에 의해, 사용자로부터 상기 시드 파일을 수신하며, 상기 플로우 규칙 종속성 트리를 기반으로 시드 플로우 요청의 형식을 분석하는 단계; 및
    플로우 요청 퍼저부에 의해, 분석된 시드 플로우 요청에 따라 하나 또는 복수 개의 변형된 상기 플로우 규칙 요청을 생성하여 랜덤화한 후, 상기 애플리케이션 에이전트부로 상기 시드 플로우 요청 및 상기 플로우 규칙 요청을 전송하는 단계
    를 포함하는 네트워크 정책 불일치 탐지 방법.
  14. 제13항에 있어서,
    상기 규칙 내역을 수집 및 관리하는 단계는
    플로우 규칙 처리부에 의해, 상기 플로우 규칙 요청 및 상기 시드 플로우 요청에 따라 플로우 규칙을 생성하며, SDN 컨트롤러가 제공하는 플로우 서비스를 통해 상기 스위치의 플로우 규칙 상태를 관리하는 단계; 및
    플로우 규칙 수집부에 의해, 상기 플로우 규칙 상태와 상기 플로우 규칙 상태에 따른 상기 메시지 정보를 수집하여 플로우 규칙 불일치를 탐지하는 데 사용하는 단계
    를 포함하는 네트워크 정책 불일치 탐지 방법.
  15. 제12항에 있어서,
    상기 플로우 규칙 불일치의 발생을 탐지하는 단계는
    불일치 분석부에 의해, 상기 플로우 규칙 상태 다이어그램을 이용하여 상기 규칙 내역을 필터링하여 상태 사이의 불일치를 분석하는 단계; 및
    불일치 해결부에 의해, 상기 불일치 분석부에서 검출된 플로우 규칙 불일치를 처리하는 단계
    를 포함하는 네트워크 정책 불일치 탐지 방법.
KR1020200150032A 2020-11-11 2020-11-11 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법 Active KR102439162B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200150032A KR102439162B1 (ko) 2020-11-11 2020-11-11 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200150032A KR102439162B1 (ko) 2020-11-11 2020-11-11 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법

Publications (2)

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

Family

ID=81800906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200150032A Active KR102439162B1 (ko) 2020-11-11 2020-11-11 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102439162B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528809A (ja) 2013-07-18 2016-09-15 パロ・アルト・ネットワークス・インコーポレーテッドPalo Alto Networks Incorporated ネットワークルーティングのためのパケット分類
JP2019205192A (ja) 2019-07-24 2019-11-28 アルカテル−ルーセント ソフトウェア定義ネットワークにおけるセキュリティ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528809A (ja) 2013-07-18 2016-09-15 パロ・アルト・ネットワークス・インコーポレーテッドPalo Alto Networks Incorporated ネットワークルーティングのためのパケット分類
JP2019205192A (ja) 2019-07-24 2019-11-28 アルカテル−ルーセント ソフトウェア定義ネットワークにおけるセキュリティ

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 (ko) 2022-05-18

Similar Documents

Publication Publication Date Title
JP6419967B2 (ja) ネットワーク管理のためのシステムおよび方法
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
JP2019536331A (ja) 対話型ネットワーク分析プラットフォームのためのシステムおよび方法
JP5613237B2 (ja) 遊休ネットワーク・デバイスの識別
KR102132539B1 (ko) 블록체인 기반의 안전한 소프트웨어 정의 네트워킹 시스템 및 그 방법
CN104115463A (zh) 用于处理网络元数据的流式传输方法和系统
Miserez et al. SDNRacer: Detecting concurrency violations in software-defined networks
KR20200025043A (ko) 인공 지능 기반의 통합 로그 관리 방법 및 그 시스템
Lee et al. AudiSDN: Automated detection of network policy inconsistencies in software-defined networks
CN111756692A (zh) 一种网络安全防护方法及系统
US9444684B2 (en) Method and system for detecting network upgrades
CN103902666A (zh) 一种基于ogg数据库复制的配置文件采集监控方法
US9413598B2 (en) Graph structures for event matching
Lee et al. A framework for policy inconsistency detection in software-defined networks
KR102439162B1 (ko) 소프트웨어 정의 네트워크의 네트워크 정책 불일치 탐지 시스템 및 그 방법
US20220141256A1 (en) Method and system for performing security management automation in cloud-based security services
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
CN112437070A (zh) 一种基于操作生成树状态机完整性验证计算方法及系统
JP6939718B2 (ja) ネットワーク機器及びネットワーク機器の設定方法
US20090249483A1 (en) Command and Control Systems for Cyber Warfare
JP4400868B2 (ja) 不正通信の自動設定侵入検知装置、方法および記録媒体

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20201111

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20211227

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220826

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220829

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220830

End annual number: 3

Start annual number: 1

PG1601 Publication of registration