KR102373874B1 - 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법 - Google Patents

소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102373874B1
KR102373874B1 KR1020170103737A KR20170103737A KR102373874B1 KR 102373874 B1 KR102373874 B1 KR 102373874B1 KR 1020170103737 A KR1020170103737 A KR 1020170103737A KR 20170103737 A KR20170103737 A KR 20170103737A KR 102373874 B1 KR102373874 B1 KR 102373874B1
Authority
KR
South Korea
Prior art keywords
flow
bucket
network
qos
candidate
Prior art date
Application number
KR1020170103737A
Other languages
English (en)
Other versions
KR20190018947A (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 KR1020170103737A priority Critical patent/KR102373874B1/ko
Priority to PCT/KR2018/009327 priority patent/WO2019035634A1/ko
Priority to US16/639,502 priority patent/US11196764B2/en
Publication of KR20190018947A publication Critical patent/KR20190018947A/ko
Application granted granted Critical
Publication of KR102373874B1 publication Critical patent/KR102373874B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

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

Abstract

본 개시는 LTE(Long Term Evolution)와 같은 4G(4th generation) 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G(5th generation) 또는 pre-5G 통신 시스템에 관련된 것이다. 본 개시는 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리하기 위한 장치 및 방법을 제공한다. 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리(handle)하기 위한 방법은, 제1 시간 구간 동안 플로우(flow)에서 네트워크 공격의 제1 후보를 검출하는 과정과, 상기 제1 후보의 검출에 대응하여, 상기 플로우에 대한 서비스 품질(quality of service, QoS)을 제1 QoS에서 제2 QoS로 변경하는 과정과, 상기 제1 시간 구간 다음의 제2 시간 구간 동안, 상기 제2 QoS의 상기 플로우에서 네트워크 공격의 제2 후보를 검출하는 과정과, 상기 제2 후보의 검출에 대응하여, 상기 플로우를 차단하는 과정을 포함한다. 본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 네트워크 공격을 단계적이고 점진적으로 차단함으로써, 네트워크 공격에 대한 오판 가능성을 줄이고, 네트워크 장애에 대한 복구 비용을 줄일 수 있게 한다. 따라서, 본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 효율적인 네트워크 관리를 가능하게 한다.

Description

소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법{APPARATUS AND METHOD FOR HANDLING A NETWORK ATTACK IN A SOFTWARE DEFINED NETWORK}
본 개시(disclosure)는 일반적으로 통신 시스템에 관한 것으로, 보다 구체적으로 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리(handle)하기 위한 장치 및 방법에 관한 것이다.
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(Post LTE) 시스템이라 불리어지고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역(예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO, FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나(large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크(cloud radio access network, cloud RAN), 초고밀도 네트워크(ultra-dense network), 기기 간 통신(Device to Device communication, D2D), 무선 백홀(wireless backhaul), 이동 네트워크(moving network), 협력 통신(cooperative communication), CoMP(Coordinated Multi-Points), 및 수신 간섭제거(interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation, ACM) 방식인 FQAM(Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.
소프트웨어 정의 네트워크(software defined network, SDN)는 네트워크를 구성하는 개별 네트워크 요소(network element, NE)에서 제어 영역이 접근 가능한 장치로 분리되고, 접근 가능한 장치에서 어플리케이션을 이용하여 논리적으로 제어 및 관리되는 네트워크를 의미한다. SDN에서, 각각의 개별 NE들은 개방형 API(application programming interface)를 통한 프로그래밍에 기반하여 제어되거나 관리될 수 있다. SDN에서 네트워크 및/또는 NE들은 중앙 집중형 방식으로 관리될 수 있다. SDN에서 이러한 중앙 집중식 관리는 다양한 측면에서 이점을 가져올 수 있다. 예를 들어, SDN에서 네트워크 인프라에 대한 보안 관리가 효율적으로 수행될 수 있다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는, 소프트웨어 정의 네트워크(software defined network, SDN)에서 보안 관리를 수행하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는, SDN에서 네트워크 공격을 처리하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는 SDN에서 네트워크 공격을 검출하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는 SDN에서 네트워크 공격을 단계적이고 점진적으로 차단하기 위한 장치 및 방법을 제공한다.
본 개시의 다양한 실시 예들에 따르면, 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리(handle)하기 위한 방법은, 제1 시간 구간 동안 플로우(flow)에서 네트워크 공격의 제1 후보를 검출하는 과정과, 상기 제1 후보의 검출에 대응하여, 상기 플로우에 대한 서비스 품질(quality of service, QoS)을 제1 QoS에서 제2 QoS로 변경하는 과정과, 상기 제1 시간 구간 다음의 제2 시간 구간 동안, 상기 제2 QoS의 상기 플로우에서 네트워크 공격의 제2 후보를 검출하는 과정과, 상기 제2 후보의 검출에 대응하여, 상기 플로우를 차단하는 과정을 포함한다.
본 개시의 다양한 실시 예들에 따르면, SDN에서 네트워크 공격을 처리하기 위한 장치는, 제1 시간 구간 동안 플로우에서 네트워크 공격의 제1 후보를 검출하고, 상기 제1 후보의 검출에 대응하여, 상기 플로우에 대한 서비스 품질을 제1 QoS에서 제2 QoS로 변경하고, 상기 제1 시간 구간 다음의 제2 시간 구간 동안, 상기 제2 QoS의 상기 플로우에서 네트워크 공격의 제2 후보를 검출하고, 상기 제2 후보의 검출에 대응하여, 상기 플로우를 차단하는 제어부를 포함한다.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 네트워크 공격을 단계적이고 점진적으로 차단함으로써, 네트워크 공격에 대한 오판 가능성을 줄이고, 네트워크 장애에 대한 복구 비용을 줄일 수 있게 한다. 따라서, 본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 효율적인 네트워크 관리를 가능하게 한다.
도 1은 본 개시의 다양한 실시 예들에 따른 소프트웨어 정의 네트워크(software defined network, SDN)를 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리(handle)하기 위한 시스템을 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치의 구성을 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 동작에 대한 흐름도를 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 단계적 처리 동작에 대한 흐름도를 도시한다.
도 6a는 본 개시의 다양한 실시 예들에 따른 SDN에서 논리적인 버킷 구조(bucket structure)를 도시한다.
도 6b는 본 개시의 다양한 실시 예들에 따른 SDN에서 버킷 이동을 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 공격 탐지 동작의 흐름도를 도시한다.
도 8은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치의 각 요소(element)에서 수행되는 동작의 흐름을 도시한다.
도 9는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 동작의 흐름도를 도시한다.
도 10은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 단계적이고 점진적으로 차단하기 위한 동작의 흐름도를 도시한다.
도 11은 본 개시의 다양한 실시 예들에 따른 SDN에서 SDN 관리 장치(orchestrator)를 포함하는 시스템을 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하 본 개시는 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리하기 위한 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 SDN에서 네트워크 공격의 후보들을 검출하여, 네트워크 공격을 단계적이고 점진적으로 차단하기 위한 기술을 설명한다.
이하 설명에서 사용되는 신호를 지칭하는 용어, 정보를 지칭하는 용어, 네트워크 객체(network entity)들을 지칭하는 용어, 장치의 구성 요소를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 소프트웨어 정의 네트워크(software defined network, SDN) 100을 도시한다. 도 1을 참고하면, SDN 100은 인터넷 망 110, SDN 제어기(controller) 120, 스위치 130, 서버 131, 개인 컴퓨터(personal computer, PC) 133 및 NFV(network function virtualization) 장치 135과 같은 네트워크 객체들을 포함할 수 있다. 도 1에 따르면, 인터넷 망 110, SDN 제어기 120, 서버 131, 개인 컴퓨터 133 및 NFV 장치 135는 스위치 135에 연결되어, 상호간 통신을 수행할 수 있다.
인터넷 망 110은 SDN 100에 포함된 네트워크 객체들에 대해 다른 네트워크로의 접속을 제공할 수 있다. 예를 들어, SDN 100에 포함된 네트워크 객체들로부터 생성된 패킷은 스위치 130에서 라우트(route)되어, 인터넷 망 110을 통해 다른 네트워크로 송신될 수 있다. 또한, 다른 네트워크로부터 생성된 패킷은 스위치 130에서 라우트되어, 인터넷 망 110을 통해 SDN에 포함된 네트워크 객체들에 의해 수신될 수 있다.
SDN 제어기 120은 SDN 100에 속한 네트워크 객체들을 관리하고, 제어할 수 있다. 이를 위해, SDN 제어기 120은 네트워크 객체들과 정보를 교환할 수 있다. 또한, SDN 제어기 120은 네트워크 객체들을 제어 및/또는 관리하기 위한 프로세스를 수행하고, 프로세스의 결과에 따라 네트워크 객체들 중 적어도 하나에 제어 명령(control command)을 송신할 수 있다. 예를 들어, SDN 제어기 120은 SDN 100의 보안 관리를 위한 프로세스를 수행할 수 있고, 프로세스 결과에 따라 네트워크 객체들 중 적어도 하나를 제어할 수 있다. 보안 관리를 위해, SDN 제어기 120은 방화벽 121, 침입 방지 시스템 123 및 분산 서비스 거부(distributed denial of service, DDoS)와 같은 하드웨어 장비 및/또는 소프트웨어 프로그램을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, '보안 관리'는 비정상적인 접근으로부터 네트워크(예: SDN 100)를 보호하기 위한 관리를 포함하는 포괄적인 개념을 의미한다. 예를 들어, 보안 관리는 네트워크 공격(network attack)으로부터 네트워크(예: SDN 100)를 보호하거나, 네트워크에 대한 네트워크 공격을 차단(block)하는 것을 포함할 수 있다. 네트워크 공격은 네트워크(예: SDN 100)에 상주하는 정보나 네트워크 자체를 교란, 거부, 손상 및 파괴하는 일련의 행위(action)을 의미한다. 예를 들어, 네트워크 공격은 DDoS 공격을 포함할 수 있다.
스위치 130은 플로우 규칙(flow rule)에 따라 스위치 130으로 입력되는 패킷들을 적절한 경로로 라우트할 수 있다. 예를 들어, 도 1에서, 스위치 130은 인터넷 망 110, SDN 제어기 120, 서버 131, 개인 컴퓨터 133 및 NFV 장치 135 중 적어도 하나로부터 패킷들을 수신하고, 수신된 패킷들을 플로우 규칙에 대응하는 적어도 하나의 스위치 130은 인터넷 망 110, SDN 제어기 120, 서버 131, 개인 컴퓨터 133 및 NFV 장치 135로 송신할 수 있다. 여기에서, NFV 장치 135는 그 동작이 상위 엔티티(예: SDN 제어기 120)에서 소프트웨어로 구현되는, 가상화된 장치를 의미한다. 예를 들어, NFV 장치 135는 적어도 하나의 가상 머신(virtual machine, VM)을 포함할 수 있다.
도 1에 도시된 SDN 100은 예시적인 것이다. 다시 말해서, SDN 100에서 도 1에 도시된 네트워크 객체들(예: 인터넷 망 110, SDN 제어기 120, 스위치 130, 서버 131, PC 133 및 NFV 장치 135) 중 일부는 생략될 수 있고, SDN 100은 도 1에 도시된 네트워크 객체들 이외의 다른 네트워크 객체를 더 포함할 수 있다.
또한, 도 1에서, 각각의 네트워크 객체들(예: SDN 제어기 120, 스위치 130, 서버 131, PC 133 및 NFV 장치 135)은 독립적인 하드웨어 장비인 것으로 도시되었으나, 이는 예시적인 것이고, 네트워크 객체들의 전부 또는 일부는 하나의 장치에서 소프트웨어로 구현될 수 있다.
SDN 100에서 네트워크 객체들로 구성되는 인프라는 중앙 집중화(centralized) 될 수 있고, 동적으로 관리될 수 있다. 따라서, SDN 100에서 보안 관리는 효율적으로 수행될 수 있다. 예를 들어, SDN 100에서 네트워크 공격을 처리하기 위한 장치는 네트워크 공격을 탐지하고, 탐지한 네트워크 공격을 차단(block)하거나, 격리(quarantine)시킬 수 있다. 그러나, 네트워크 공격에 대한 차단이나 격리와 같은 극단적인 방법은 네트워크에서 채택된 서비스 수준 협약(service level agreement, SLA)에 악영향을 미칠 수 있다. 그러므로, 검출된 네트워크 공격을 극단적으로 차단하거나 격리하지 않고, 단계적이고 점진적으로 차단하기 위한 장치 및 방법이 요구된다.
이하의 설명에서, 네트워크 공격을 단계적이고 점진적으로 차단하기 위한 장치, 방법 및 시스템이 설명된다.
도 2는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리(handle)하기 위한 시스템 200을 도시한다. 도 2를 참고하면, SDN(예: SDN 100)에서 네트워크 공격을 처리하기 위한 시스템 200은 네트워크 공격 탐지 및 대응 장치 210, SDN 제어기 220, 스위치들 231 내지 235, VM들 241 내지 247, 데이터 처리 장치 250, 및 데이터 자장 장치 260을 포함한다.
네트워크 공격 탐지 및 대응 장치(이하, '처리 장치(handling device)'로 지칭된다) 210은 시스템 200을 전반적으로(generally) 관리하고, 사용자 인터페이스(user interface)를 제공할 수 있다. 처리 장치 210은 본 개시의 다양한 실시 예들에 따라 네트워크 공격을 처리하는 주체로서, 네트워크 공격을 검출하고, 검출된 네트워크 공격을 단계적으로 차단할 수 있다. 처리 장치 210은 SDN 제어기 220의 상위 노드(upper node)로서 기능하고, 데이터 플레인(data plane)의 다양한 정보를 수집할 수 있다. 예를 들어, 처리 장치 210은 데이터 플레인에서 시스템 200과 관련된(associated with) 플로우들에 대한 통계 정보를 SDN 제어기 220으로부터 수신하고, 통계 정보에 기반하여 플로우들에 대한 네트워크 특성(network feature)을 결정할 수 있다. 본 개시의 다양한 실시 예들에 따르면, '시스템 200과 관련된 플로우'는 시스템 200에 포함된 네트워크 객체들(예: 처리 장치 210, SDN 제어기 220, 스위치들 231 내지 235, VM들 241 내지 247, 데이터 처리 장치 250, 및 데이터 자장 장치 260)중 적어도 하나를 지나는(pass) 패킷 또는 데이터의 플로우일 수 있다. 플로우들에 대한 통계 정보는 각 플로우와 관련된 파라미터들에 대한 파라미터 값들을 포함할 수 있다.
처리 장치 210은 플로우들에 대한 네트워크 특성을 결정한 후, 네트워크 특성에 관한 정보를 데이터 저장 장치 260으로 전달할 수 있다. 처리 장치 210은 네트워크 특성에 기반하여 생성된 탐지 모델(detection model)을 데이터 처리 장치 250으로부터 제공받을 수 있고, 탐지 모델에 기반하여 네트워크 공격을 검출할 수 있다. 본 개시의 다양한 실시 예들에 따르면, '탐지 모델'은 네트워크 공격을 검출하기 위한 모델로, 시스템 200과 관련된 각 플로우가 네트워크 공격을 초래하는 플로우인지 또는 네트워크 공격을 초래하는 플로우일 가능성이 높은지 여부를 결정하기 위한 기준(criterion)을 제공할 수 있다. 처리 장치 210이 네트워크 공격을 검출한 경우, 처리 장치 210은 SDN 220에 대응 룰(rule)을 적용할 수 있다. 다시 말해서, 처리 장치 210은 네트워크 공격을 초래하는 플로우를 차단하거나, 네트워크 공격을 초래하는 것으로 의심되는 플로우 또는 의심되지 않는 플로우에 대해 단계적인 처리를 수행하기 위한 명령을 SDN 제어기 220에 송신할 수 있다. 처리 장치 210은 네트워크 공격을 처리하기 위해, 인터페이스 211, 버킷 생성기 212, 탐지 모델 생성기 213, 제어 룰 생성기 214, 버킷 제어기 215, 행위 분석기 216 및 통계 정보 관리기 217을 포함할 수 있다.
SDN 제어기 220(예: SDN 제어기 120)은 SDN 제어기 220의 하위 노드들(예: 스위치들 231 내지 235, VM들 241 내지 247)을 직접 또는 간접적으로 관리하고, 제어할 수 있다. 네트워크 공격을 처리하기 위해, SDN 제어기 220은 플로우들에 대한 플로우 통계(flow statistics)에 관한 정보를 스위치들 231 내지 235에 주기적으로 요청할 수 있고, 스위치들 231 내지 235로부터 플로우 통계에 관한 정보를 수신할 수 있다. 플로우 통계를 수집하기 위해, SDN 제어기 220은 통계 정보 수집기 221을 포함할 수 있다. 본 개시의 다양한 실시 예들에 따르면,'플로우 통계'는 각각의 플로우들에 대한 통계 정보를 포함할 수 있다. SDN 제어기 220은 수집된 플로우 통계에 관한 정보를 처리 장치 210에 제공할 수 있고, 처리 장치 210로부터 대응 룰을 수신하여, 네트워크 공격을 초래하는 플로우를 차단하거나, 네트워크 공격을 초래하는 것으로 의심되는 플로우 또는 의심되지 않는 플로우에 대해 단계적인 처리를 수행할 수 있다.
스위치들 231 내지 235(예: 스위치 130)는 플로우 규칙에 따라 각각의 스위치들 231 내지 235에 입력되는 패킷들을 적절한 경로로 라우트할 수 있다. 스위치들 231 내지 235는 각각의 스위치들 231 내지 235를 지나는(pass) 플로우들에 대한 플로우 통계를 수집할 수 있다. 예를 들어, 스위치 231은 스위치 231을 지나는 플로우들에 대한 플로우 통계를 수집할 수 있고, 스위치 233은 스위치 233을 지나는 플로우들에 대한 플로우 통계를 수집할 수 있고, 스위치 235는 스위치 235를 지나는 플로우들에 대한 플로우 통계를 수집할 수 있다. 스위치들 231 내지 235는 수집된 플로우 통계에 관한 정보를 SDN 제어기 220에 제공할 수 있다.
VM들 241 내지 247은 소프트웨어로 구현된 가상의 논리적인 프로세서 또는 컴퓨터를 의미한다. VM들 241 내지 247 각각은 가상의 CPU(central processing unit) 및 가상의 I/O(input/output) 장치를 더 포함할 수 있고, 하나의 독립적인 장치로서 기능할 수 있다. VM들 241 내지 247은 데이터를 생성하고, 프로세스하고, 송신 및 수신할 수 있다. VM들 241 내지 247은 스위치들 스위치들 231 내지 235를 통해 패킷 및/또는 데이터를 송신하거나, 수신할 수 있다.
데이터 처리 장치 250은 데이터 저장 장치 260으로부터 플로우들에 대한 네트워크 특성에 관한 정보를 수신하고, 네트워크 특성에 관한 정보에 기반하여 탐지 모델을 생성할 수 있다. 데이터 처리 장치 250이 플로우들에 대한 네트워크 특성에 기반하여 기계 학습 알고리즘(machine learning algorithm)을 수행하는 경우, 탐지 모델이 생성될 수 있다. 데이터 처리 장치 250은 생성된 탐지 모델을 처리 장치 210으로 제공할 수 있다.
데이터 저장 장치 260은 플로우들에 대한 네트워크 특성에 관한 정보를 처리 장치 210으로부터 수신하고, 네트워크 특성에 관한 정보를 저장할 수 있다. 또한, 데이터 저장 장치 260은 데이터 처리 장치 250으로부터의 요청에 대응하여 데이터 처리 장치 250에 네트워크 특성에 관한 정보를 제공할 수 있다.
도 2에서, 각각의 네트워크 객체들(예: 처리 장치 210, SDN 제어기 220, 스위치들 231 내지 235, VM들 241 내지 247, 데이터 처리 장치 250 및 데이터 저장 장치 260)은 독립적인 하드웨어 장비인 것으로 도시되었으나, 이는 예시적인 것이고, 시스템 200의 네트워크 객체들은 하나의 장치에서 소프트웨어로 구현될 수 있다. 예를 들어, SDN 제어기 220, 스위치들 231 내지 235, VM들 241 내지 247, 데이터 처리 장치 250 및 데이터 저장 장치 260은 처리 장치 210에 통합 되어, 하나의 장치로서 구현될 수 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치의 구성을 도시한다. 도 3에 예시된 구성은 처리 장치 210의 구성으로서 이해될 수 있다. 이하 사용되는 '~부', '~기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 3을 참고하면, 처리 장치 210은 입력부 310, 제어부 320, 백홀 통신부 330 및 저장부 340을 포함한다.
입력부 310은 외부 장치 도는 사용자로부터 입력을 수신할 수 있다. 이를 위해, 입력부 310은 입력 인터페이스를 포함할 수 있다. 입력부 310을 통해 수신된 입력은 제어부 320에서 처리된 후, 백홀통신부 330 및 저장부 340으로 송신될 수 있다. 다시 말해서, 입력부 310을 통해 수신된 입력에 대응하는 정보는 백홀통신부 330을 통해 다른 장치로 송신되거나, 저장부 340에 저장될 수 있다. 다양한 실시 예들에 따라, 입력부 310은 인터페이스 211을 포함할 수 있다. 입력부 310은 사용자 인터페이스(user interface)로도 지칭될 수 있다.
제어부 320은 처리 장치 210의 전반적인 동작들을 제어한다. 예를 들어, 제어부 320은 무선통신부 210를 통해 또는 백홀통신부330을 통해 신호를 송신 및 수신한다. 또한, 제어부 320은 저장부 340에 데이터를 기록하고, 읽는다. 그리고, 제어부 320은 통신 규격에서 요구하는 프로토콜 스택(protocol stack)의 기능들을 수행할 수 있다. 이를 위해, 제어부 320은 적어도 하나의 프로세서(processor)를 포함할 수 있다. 다양한 실시 예들에 따라, 제어부 320은 버킷 생성기 212, 탐지 모델 213, 제어 룰 생성기 214, 버킷 제어기 215, 행위 분석기 216, 통계 정보 관리기 217 및 통계 정보 수집기 221 및 데이터 처리 장치 250을 포함할 수 있다. 여기서, 버킷 생성기 212, 탐지 모델 213, 제어 룰 생성기 214, 버킷 제어기 215, 행위 분석기 216, 통계 정보 관리기 217 및 통계 정보 수집기 221 및 데이터 처리 장치 250는 저장부 340에 저장된 명령어 집합 또는 코드로서, 적어도 일시적으로 제어부 320에 상주된(resided) 명령어/코드 또는 명령어/코드를 저장한 저장 공간이거나, 또는, 제어부 320를 구성하는 회로(circuitry)의 일부일 수 있다.
다양한 실시 예들에 따라, 제어부 320는 제1 시간 구간 동안 플로우에서 네트워크 공격의 제1 후보를 검출하고, 제1 후보의 검출에 대응하여, 플로우에 대한 QoS를 제1 QoS에서 제2 QoS로 변경하고, 제1 시간 구간 다음의 제2 시간 구간 동안, 제2 QoS의 플로우에서 네트워크 공격의 제2 후보를 검출하고, 제2 후보의 검출에 대응하여, 플로우를 차단한다. 예를 들어, 제어부 320은 처리 장치 210이 후술하는 다양한 실시 예들에 따른 동작들을 수행하도록 제어할 수 있다.
백홀통신부330은 네트워크 내 다른 노드들과 통신을 수행하기 위한 인터페이스를 제공한다. 즉, 백홀통신부330은 처리 장치 210에서 다른 노드로 송신되는 비트열을 물리적 신호로 변환하고, 다른 노드로부터 수신되는 물리적 신호를 비트열로 변환한다.
저장부 340은 처리 장치 210의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장한다. 저장부 340은 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 그리고, 저장부 340은 제어부 320의 요청에 따라 저장된 데이터를 제공한다. 다양한 실시 예들에 따라, 저장부 340은 데이터 저장 장치 260을 포함할 수 있다.
도시되지 아니하였으나, 처리 장치 210은 디스플레이를 더 포함할 수 있다. 디스플레이는 이미지, 그래픽, 텍스트 등을 포함하는 화면을 표시할 수 있다. 예를 들어, 디스플레이는 액정(liquid crystal), 발광 다이오드(light emitting diode) 디스플레이 또는 다른 소재로 구성될 수 있다. 디스플레이는 입력부 310을 통해 수신된 입력에 대응하는 정보를 표시하거나, 제어부 320에서 처리된 데이터에 대응하는 화면을 표시할 수 있다. 또한, 디스플레이는 사용자의 입력을 감지하기 위한 터치 스크린을 포함할 수 있다. 이 경우, 디스플레이는 입력부 310의 기능을 수행할 수 있으며, 터치 스크린을 통해 외부 장치 또는 사용자로부터 입력을 수신할 수 있다.
도 4는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 동작에 대한 흐름도를 도시한다. 도 4는 처리 장치 210의 동작 방법을 예시한다.
도 4를 참고하면, 401 단계에서, 처리 장치 210은 제1 시간 구간 동안 플로우에서 네트워크 공격의 제1 후보를 검출한다. 본 개시의 다양한 실시 예들에 따르면, '네트워크 공격의 후보'는 네트워크 공격이 발생할 가능성이 높은 상태를 의미한다. 다시 말해서, 플로우에서 네트워크 공격의 후보를 검출하는 것은, 해당 플로우에서 네트워크 공격이 발생할 가능성이 높다고 결정하는 것에 대응될 수 있다. 보다 상세하게, 처리 장치 210은 탐지 모델에 기반하여, 단위 시간 구간(예: 제1 시간 구간) 동안 각 플로우가 악성으로 의심된 횟수(또는, 각 플로우에서 발생한 경고(alert)들의 수)를 카운트(count)할 수 있다. 단위 시간 동안 플로우에서 발생한 경고들의 수가 기준 수와 같거나 기준 수를 초과하는 경우, 처리 장치 210은 해당 플로우에서 네트워크 공격의 후보를 검출할 수 있다. 다른 예로, 단위 시간 구간 동안 플로우에서 발생한 경고들의 수가 기준 수 미만인 경우, 처리 장치 210은 해당 플로우에서 네트워크 공격의 후보를 검출하지 아니할 수 있고, 또는 해당 플로우에서 네트워크 공격이 발생할 가능성이 낮다고 결정할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 단위 시간 구간은 1분으로 설정될 수 있으나, 이에 한정되지 않는다.
403 단계에서, 처리 장치 210은 제1 후보의 검출에 대응하여, 플로우에 대한 QoS를 제1 QoS에서 제2 QoS로 변경한다. 여기에서, 제2 QoS는 제1 QoS보다 낮을 수 있다. 다시 말해서, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 플로우에서 네트워크 공격의 후보를 검출한 경우, 해당 플로우를 즉시 차단하거나 격리시키지 않고, 해당 플로우에 대한 QoS를 감소시킨다. 따라서, 처리 장치 210은 네트워크 공격이 발생할 가능성이 낮은 다른 양성 플로우들에 대해 상대적으로 높은 QoS를 보장할 수 있고, 전체 플로우들에 대해 SLA이 준수되도록 할 수 있다.
405 단계에서, 처리 장치 210은 제1 시간 구간 다음의 제2 시간 구간 동안, 제2 QoS의 플로우에서 네트워크 공격의 제2 후보를 검출한다. 여기에서, 제2 시간 구간의 길이는 제1 시간 구간의 길이와 동일할 수 있다. 처리 장치 210은 제2 QoS의 플로우에서 발생한 경고들의 수가 기준 수와 같거나 초과하였음을 결정하고, 제2 QoS의 플로우에서 네트워크 공격의 후보를 검출할 수 있다.
407 단계에서, 처리 장치 210은 제2 후보의 검출에 대응하여, 플로우를 차단한다. 다시 말해서, 제1 시간 구간 이후의 제2 시간 구간에서도 플로우에서 네트워크 공격의 후보가 여전히 검출되었으므로, 처리 장치 210은 해당 플로우에서 네트워크 공격이 발생하는 것으로 확정적으로 결정하고, 해당 플로우를 차단한다. 여기에서, 플로우를 차단하는 것은 플로우와 관련된 포트를 차단하거나, 플로우와 관련된 패킷을 드랍(drop)하는 것을 포함할 수 있다.
도시되지 아니하였으나, 제2 시간 구간 동안 제2 QoS의 플로우에서 네트워크 공격의 제2 후보가 검출되지 않을 경우(즉, 네트워크 공격이 발생할 가능성이 낮은 경우), 처리 장치 210은 플로우를 차단하지 않고, 플로우에 대한 QoS를 증가시킬 수 있다. 예를 들어, 플로우에 대한 QoS는 제2 QoS에서 제1 QoS로 다시 변경될 수 있다.
도 4에서 설명된 것과 같이, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 네트워크 공격을 단계적이고 점진적으로 차단함으로써, 네트워크 공격에 대한 오판 가능성을 줄이고, 네트워크 장애에 대한 복구 비용을 줄일 수 있게 한다. 또한, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 네트워크 공격을 단계적이고 점진적으로 차단함으로써, 효율적인 네트워크 관리를 가능하게 한다.
도 4에서, 제1 시간 구간의 길이, 제2 시간 구간의 길이 및 기준 수는 미리 설정될 수 있다. 다른 예로, 제1 시간 구간의 길이, 제2 시간 구간의 길이 및 기준 수 중 적어도 하나에 대한 설정은 입력부 310을 통해 입력될 수 있다. 다시 말해서, 제1 시간 구간의 길이, 제2 시간 구간의 길이 및 기준 수 중 적어도 하나는 사용자의 설정에 따라 변경될 수 있다.
도 5는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 단계적 처리 동작에 대한 흐름도를 도시한다. 도 5는 처리 장치 210의 동작 방법을 예시한다. 또한, 도 5에서 수행되는 동작들은 도 4의 401 단계 이전에 수행될 수 있다.
도 5를 참고하면, 501 단계에서, 처리 장치 210은 각각의 적어도 하나의 시간 구간 동안 플로우에 대한 검출을 수행한다. 예를 들어, 처리 장치 210은 단위 시간 구간 동안 플로우에서 발생한 경고들을 검출하고, 경고들의 수를 카운트 할 수 있다. 501 단계의 적어도 하나의 시간 구간은 401 단계의 제1 시간 구간보다 이전일 수 있다. 또한, 적어도 하나의 시간 구간의 길이는 미리 설정되거나, 입력부 310을 통한 입력에 의해 설정될 수 있다.
503 단계에서, 처리 장치 210은 플로우에서 네트워크 공격의 후보가 검출되는지 여부를 결정한다. 예를 들어, 단위 시간 구간 동안 플로우에서 발생한 경고들의 수가 기준 수와 같거나, 기준 수를 초과할 경우, 처리 장치 210은 플로우에서 네트워크 공격의 후보를 검출할 수 있다. 다른 예로, 단위 시간 구간 동안 플로우에서 발생한 경고들의 수가 기준 수 미만일 경우, 처리 장치 210은 플로우에서 네트워크 공격의 후보를 검출하지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮다고 결정할 수 있다. 기준 수는 미리 설정되거나, 입력부 310을 통한 입력에 의해 설정될 수 있다.
처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출한 경우, 505 단계에서, 처리 장치 210은 플로우에 대한 QoS를 감소시킨다. 다시 말해서, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 플로우에서 네트워크 공격의 후보를 검출한 경우, 해당 플로우를 즉시 차단하거나 격리시키지 않고, 해당 플로우에 대한 QoS를 감소시킨다.
처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출하지 아니한 경우, 507 단계에서, 처리 장치 210은 플로우에 대한 QoS를 증가시킨다. 다시 말해서, 이전 시간 구간 동안 네트워크 공격의 후보가 검출되어 QoS가 감소된 플로우에서 다음 시간 구간 동안 네트워크 공격의 후보가 검출되지 아니한 경우, 플로우에 대한 QoS를 증가시킬 수 있다. 이를 통해, 처리 장치 210은 이전 시간 구간 동안 플로우에서 네트워크 공격의 후보가 잘못 검출되거나, 플로우에서 네트워크 공격의 위험이 제거된 경우에 대해 유연하게 대응할 수 있다.
도시되지 아니하였으나, 플로우에서 단위 시간 구간 동안 네트워크 공격의 후보가 검출되지 않더라도, 플로우가 이미 시스템 200에서 허용된 최상의 QoS를 제공받고 있는 경우, 처리 장치 210은 플로우에 대한 QoS를 증가시키지 않고, 플로우에 대한 QoS를 유지할 수 있다.
도 6a는 본 개시의 다양한 실시 예들에 따른 SDN에서 논리적인 버킷 구조(bucket structure) 600을 도시한다. 본 개시의 다양한 실시 예들에 따르면, '버킷'은 특정 수준 또는 범위의 QoS에 대응하는 논리적인 그룹 또는 집합을 의미한다. 예를 들어, 어떤 버킷에 포함된 플로우는 그 플로우에 대응하는 수준 또는 범위의 QoS를 제공받을 수 있다.
도 6a에 따르면, 버킷 구조 600은 복수의 버킷들을 포함할 수 있다. 예를 들어, 버킷 구조 600은 활성 버킷(active bucket) 610, 패딩 620, 제1 의심 버킷 630 및 제2 의심 버킷 640을 포함할 수 있다. 또한, 도시되지 아니하였으나, 버킷 구조 600은 제1 의심 버킷 630 및 제2 의심 버킷 640 이외의 적어도 하나의 버킷을 더 포함할 수 있다. 버킷 구조 600에서, 각 버킷의 가로 길이는 각 버킷에 대응하는 대역폭(bandwidth)(QoS의 일종)을 나타낸다. 각 버킷에 포함된 플로우는 각 버킷에 대응하는 대역폭을 제공받을 수 있다. 각 버킷에 대응하는 대역폭은 버킷의 크기(size)로 지칭될 수 있다.
활성 버킷 610은 버킷 구조 600에서 가장 높은 수준 또는 범위의 QoS에 대응한다. 다시 말해서, 활성 버킷 610에 포함된 플로우는 높은 수준 또는 범위의 QoS를 제공받을 수 있다. 예를 들어, 활성 버킷 610은 네트워크 공격의 후보가 검출되지 않거나, 네트워크 공격이 발생할 가능성이 낮은 양성 플로우들을 포함할 수 있다.
제1 의심 버킷 630은 버킷 구조 600에서 활성 버킷 610의 QoS보다 낮고, 제2 의심 버킷 640의 QoS보다 높은 수준 또는 범위의 QoS에 대응한다. 예를 들어, 제1 의심 버킷 630은 네트워크 공격의 후보가 적어도 한번 검출된 플로우들을 포함할 수 있다.
패딩 620은 활성 버킷 610의 QoS와 동일한 수준 또는 범위의 QoS에 대응하며, 활성 버킷 610과 제1 의심 버킷 630이 급격히 구분되는 것을 방지하는 버퍼(buffer)로서 기능할 수 있다. 예를 들어, 패딩 620은 활성 버킷 610에 포함된 플로우들의 수가 많을 경우 활성 버킷 610에 추가 대역폭을 제공하여, 보다 많은 수의 플로우들이 높은 QoS를 제공받도록 할 수 있다. 패딩 620의 대역폭은 활성 버킷 610의 대역폭의 1/10으로 설정될 수 있으나, 이에 한정되지 않는다. 본 개시의 다양한 실시 예들에 따르면, 패딩 620은 버킷 구조 600에서 생략될 수 있다.
제2 의심 버킷 640은 버킷 구조 600에서 제1 의심 버킷 630의 QoS보다 낮은 수준 또는 범위의 QoS에 대응한다. 예를 들어, 제2 의심 버킷 640은 네트워크 공격의 후보가 적어도 두 번 검출된 플로우들을 포함할 수 있다.
버킷 구조(예: 버킷 구조 600)는 처리 장치 210에 의해 결정될 수 있다. 다시 말해서, 처리 장치 210은 버킷을 생성할 수 있다. 버킷을 생성하기 위해 필요한 파라미터들은 하기의 <표 1>에서 설명된다.
Figure 112017078998801-pat00001
상기 <표 1>에서 설명된 파라미터들 중 적어도 하나는 입력부 310을 통한 입력에 의해 설정될 수 있다.
플로우는 항상(constantly) 동일한 버킷에 포함되지 않고, 시간이 지남에 따라 다른 버킷에 포함될 수 있다. 다시 말해서, 어떤 시간 구간 동안 플로우는 A 버킷에 포함될 수 있고, 다른 시간 구간 동안 A 버킷과 다른 B 버킷에 포함될 수 있다. 본 개시의 다양한 실시 예들에 따르면, 플로우를 포함하는 버킷이 변경되는 것은 플로우에 대한 버킷 이동(bucket movement)으로 지칭될 수 있다. 버킷마다 QoS가 상이하므로, 버킷 이동은 플로우에 대한 QoS를 변경하는 것에 대응될 수 있다. 즉, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 단위 시간 구간마다 플로우에서 네트워크 공격의 후보를 검출하는지 여부에 기반하여 플로우에 대한 QoS를 변경하므로, 이러한 처리 장치 210의 동작은 버킷 이동에 의해 설명될 수 있다.
이하 도 6b에서는 버킷 이동의 알고리즘이 설명된다.
도 6b는 본 개시의 다양한 실시 예들에 따른 SDN에서 버킷 이동을 도시한다. 버킷 이동이 수행되기 전, 모든 플로우들은 활성 버킷 610에 포함되어 있음을 가정한다.
처리 장치 210은 단위 시간 구간(예: 1분) 동안 활성 버킷 610에 포함된 플로우들 중 어떤 플로우에서 네트워크 공격의 후보가 검출되는지를 결정한다. 다시 말해서, 처리 장치 210은 단위 시간 구간 동안 플로우에서 발생한 경고들의 수가 기준 수를 초과하거나, 기준 수와 같은지 여부를 결정한다. 처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출한 경우, 처리 장치 210은 플로우를 포함하는 버킷을 활성 버킷 610에서 제1 의심 버킷 630으로 변경한다. 다시 말해서, 처리 장치 210은 활성 버킷 610에서 제1 의심 버킷 630으로 플로우에 대한 버킷 이동을 수행한다. 버킷 이동에 따라, 플로우에 제공되는 QoS는 활성 버킷 610의 QoS에서 제1 의심 버킷 630의 QoS로 감소할 수 있다. 대조적으로, 처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출하지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮다고 결정할 경우, 플로우는 이미 활성 버킷 610의 QoS를 제공받고 있으므로, 버킷 이동을 수행하지 아니할 수 있다.
처리 장치 210은 단위 시간 구간(예: 1분) 동안 제1 의심 버킷 630에 포함된 플로우들 중 어떤 플로우에서 네트워크 공격의 후보가 검출되는지를 결정한다. 예를 들어, 제1 의심 버킷 630에 포함된 플로우는 이전 시간 구간에 활성 버킷 610에 포함 되었거나, 제2 의심 버킷 640에 포함되었을 수 있다. 처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출한 경우, 처리 장치 210은 제1 의심 버킷 630에서 제2 의심 버킷 640으로 플로우에 대한 버킷 이동을 수행한다. 대조적으로, 처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출하지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮다고 결정할 경우, 처리 장치 210은 제1 의심 버킷 630에서 활성 버킷 610으로 플로우에 대한 버킷 이동을 수행한다. 다시 말해서, 활성 버킷 610에 포함되어 있는 동안 네트워크 공격의 후보가 검출되어 제1 의심 버킷 630으로 버킷 이동이 수행된 플로우에 대해 단위 시간 구간 동안 네트워크 공격의 후보가 검출되지 아니할 경우, QoS가 상대적으로 높은 버킷으로 플로우에 대한 버킷 이동이 수행될 수 있다.
본 개시의 다양한 실시 예들에 따르면, 버킷 이동은 음성 버킷 이동(negative bucket movement)과 양성 버킷 이동(positive bucket movement)을 포함할 수 있다. 음성 버킷 이동은 상대적으로 높은 QoS의 버킷에서 상대적으로 낮은 QoS의 버킷으로 수행되는 버킷 이동을 의미하고, 양성 버킷 이동은 상대적으로 낮은 QoS의 버킷에서 상대적으로 높은 QoS의 버킷으로 수행되는 버킷 이동을 의미한다. 예를 들어, 플로우에서 네트워크 공격의 후보가 검출될 경우, 플로우에 대한 음성 버킷 이동이 수행될 수 있다. 다른 예로, 플로우에서 네트워크 공격의 후보가 검출되지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮은 것으로 결정될 경우, 양성 버킷 이동이 수행되거나, 버킷 이동이 수행되지 아니할 수 있다.
처리 장치 210은 단위 시간 구간(예: 1분) 동안 제2 의심 버킷 640에 포함된 플로우들 중 어떤 플로우에서 네트워크 공격의 후보가 검출되는지를 결정한다. 예를 들어, 제2 의심 버킷 640에 포함된 플로우는 이전 시간 구간에 제1 의심 버킷 630에 포함되었을 수 있다. 처리 장치 210이 플로우에서 네트워크 공격의 후보를 검출한 경우, 처리 장치 210은 플로우를 차단한다. 다시 말해서, 버킷 구조 600에서 제2 의심 버킷 640의 QoS보다 낮은 QoS에 대응하는 의심 버킷이 정의되지 아니한 경우, 처리 장치 210은 플로우에 대한 음성 버킷 이동을 수행할 수 없으므로, 처리 장치 210은 플로우에서 네트워크 공격이 발생하는 것으로 확정적으로 결정하고, 플로우를 차단한다. 이와 같이, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 플로우에서 네트워크 공격의 후보가 검출되더라도 플로우를 즉시 차단하거나 격리시키지 않고, 복수의 버킷 이동들(예: 활성 버킷 610
Figure 112017078998801-pat00002
제1 의심 버킷 630
Figure 112017078998801-pat00003
제2 의심 버킷 640)을 수행함으로써, 네트워크 공격을 단계적이고 점진적으로 차단할 수 있다. 이를 통해, 본 개시의 다양한 실시 예들에 따른 처리 장치 210은 효율적인 네트워크 관리를 가능하게 하고, 네트워크 공격에 대한 오판 가능성을 줄이고, 네트워크 장애에 대한 복구 비용을 줄일 수 있게 한다.
도시되지 아니하였으나, 버킷 구조 600에서 제2 의심 버킷 640의 QoS보다 낮은 QoS에 대응하는 의심 버킷(예: 제3 의심 버킷)이 정의된 경우, 처리 장치 210은 제2 의심 버킷 640에 포함된 플로우에서 네트워크 공격의 후보를 검출하는 것에 대응하여, 제2 의심 버킷 640에서 제3 의심 버킷으로 플로우에 대한 음성 버킷 이동을 수행할 수 있다. 또한, 처리 장치 210이 제2 의심 버킷 640에 포함된 플로우에서 네트워크 공격의 후보를 검출하지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮은 것으로 결정할 경우, 처리 장치 210은 제2 의심 버킷 640에서 제1 의심 버킷 630으로 플로우에 대한 양성 버킷 이동을 수행할 수 있다.
본 개시의 다양한 실시 예들에 다르면, 순(net) 음성 버킷 이동 횟수가 정의될 수 있다. 순 음성 버킷 이동 횟수는 플로우에 대해 음성 버킷 이동이 수행된 총 횟수에서 양성 버킷 이동이 수행된 총 횟수를 감산한 값을 의미한다. 순 음성 버킷 이동 횟수의 최대 값은 버킷 구조(예: 버킷 구조 600)에 포함된 의심 버킷들의 수에 기반하여 결정될 수 있다. 예를 들어, 버킷 구조에 포함된 의심 버킷들의 수가 두 개인 경우, 순 음성 버킷 이동 횟수는 2회를 초과할 수 없으므로, 순 음성 버킷 이동 횟수의 최대값은 2로 결정될 수 있다. 다시 말해서, 순 음성 버킷 이동 횟수의 최대 값은 버킷 구조에 포함된 의심 버킷들의 수와 동일할 수 있다. 또한, 순 음성 버킷 이동 횟수의 최대 값은 버킷 구조에서 음성 버킷 이동이 연속적으로 수행될 수 있는 최대 횟수를 의미할 수 있고, 플로우에 대한 QoS를 연속적으로 감소시킬 수 있는 최대 횟수를 의미할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 순 음성 버킷 이동 횟수의 최대 값, 버킷 구조에 포함된 의심 버킷들의 수, 버킷 구조에서 음성 버킷 이동이 연속적으로 수행될 수 있는 최대 횟수, 및 플로우에 대한 QoS를 연속적으로 감소시킬 수 있는 최대 횟수는 입력부 310을 통한 입력에 의해 설정될 수 있다.
본 개시의 다양한 실시 예들에 따르면, 버킷 구조에 포함된 각 버킷에 버킷 값이 할당될 수 있다. 이 경우, 버킷 이동은 플로우에 대한 버킷 값의 변경으로 이해될 수 있다. 예를 들어, 버킷 구조에서 활성 버킷의 버킷 값은 0이고, 의심 버킷들의 버킷 값은 QoS가 감소함에 따라 1씩 증가하도록 설정될 수 있다. 따라서, 최대 버킷 값은 버킷 구조에서 의심 버킷들의 수와 동일할 수 있다. 예를 들어, 버킷 구조 600에서, 활성 버킷 610의 버킷 값은 0이고, 제1 의심 버킷 630의 버킷 값은 1이고, 제2 의심 버킷 640의 버킷 값은 2로 설정될 수 있다. 버킷 구조 600이 제1 의심 버킷 630 및 제2 의심 버킷 640(즉, 두 개의 의심 버킷들) 이외에 다른 의심 버킷을 포함하지 않는 경우, 버킷 구조 600에서 최대 버킷 값은 2일 수 있다. 플로우에 대한 버킷 값은 그 버킷 값의 버킷에 플로우가 포함되어 있음을 의미할 수 있다. 예를 들어, 플로우가 활성 버킷 610에 포함된 경우, 플로우에 대한 버킷 값은 0이고, 플로우가 제1 의심 버킷 630에 포함된 경우, 플로우에 대한 버킷 값은 1이고, 플로우가 제2 의심 버킷 640에 포함된 경우, 플로우에 대한 버킷 값은 2일 수 있다.
플로우에 대한 음성 버킷 이동이 수행될 경우, 플로우에 대한 버킷 값은 감소하고, 플로우에 대한 양성 버킷 이동이 수행될 경우, 플로우에 대한 버킷 값은 증가한다. 만약, 플로우에 대한 버킷 값이 버킷 구조에서 정의된 최대 버킷 값보다 클 경우, 처리 장치 210은 플로우를 차단한다. 다시 말해서, 처리 장치 210이 플로우에 대한 음성 버킷 이동을 더 이상 수행할 수 없는 경우, 처리 장치 210은 플로우에서 네트워크 공격이 발생하는 것으로 확정적으로 결정하고, 플로우를 차단한다. 이와 달리, 플로우에 대한 버킷 값이 0보다 작을 경우, 처리 장치 210은 플로우에 대한 버킷 값을 0으로 재설정한다. 다시 말해서, 처리 장치 210은 플로우에 대한 양성 버킷 이동을 더 이상 수행할 수 없는 경우, 플로우에 대한 버킷 이동을 수행하지 않는다.
상술한 것과 같은 버킷 이동 알고리즘은 하기의 <표 2>과 같이 설명될 수 있다.
Figure 112017078998801-pat00004
여기에서, Current_bucket은 현재 시간 구간에서 플로우에 대한 버킷 값을 의미한다. 플로우에 대한 버킷 값의 초기 값은 0으로 설정될 수 있다. 다시 말해서, 버킷 이동이 수행되기 전, 모든 플로우들은 활성 버킷에 포함된다. Total_bucket은 버킷 구조에서 정의된 최대 버킷 값으로, 버킷 구조에 포함된 의심 버킷들의 수와 동일하다. ISSUE_Block_RULE()은 플로우를 차단하는 명령을 의미하고, MOVE는 버킷 이동을 지시하는 명령을 의미한다. DO_NOTHING()은 버킷 이동을 수행하지 않음을 지시하는 명령을 의미한다.
도 7은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치에서 수행되는 공격 탐지 동작의 흐름도를 도시한다. 도 7은 처리 장치 210의 동작 방법을 예시한다.
도 7을 참고하면, 701 단계에서, 처리 장치 210은 복수의 플로우들에 대한 통계 정보를 수신한다. 통계 정보는 각각의 복수의 플로우들과 관련된 파라미터들에 대한 파라미터 값들을 포함할 수 있다.
703 단계에서, 처리 장치 210은 통계 정보에 기반하여, 복수의 플로우들에 대한 네트워크 특성을 결정한다. 처리 장치 210은 각 플로우와 관련된 파라미터들에 대한 파라미터 값들 및/또는 파라미터 값들로부터 파생된 값들 중 적어도 하나에 기반하여 복수의 플로우들에 대한 네트워크 특성을 결정할 수 있다. 예를 들어, 처리 장치 210은 복수의 플로우들에 대한 네트워크 특성을 결정하기 위해, 각 플로우와 관련된 파라미터들에 대한 파라미터 값들을 식별하고, 파라미터 값들로부터 파생된 값들을 식별할 수 있다.
705 단계에서, 처리 장치 210은 네트워크 특성에 기반하여, 네트워크 공격을 검출하기 위한 탐지 모델을 생성한다. 예를 들어, 처리 장치 210이 복수의 플로우들에 대한 네트워크 특성에 기반하여 기계 학습 알고리즘을 수행하는 경우, 탐지 모델이 생성될 수 있다.
707 단계에서, 처리 장치 210은 플로우에 탐지 모델을 적용하여, 플로우에서 네트워크 공격의 후보를 검출한다. 예를 들어, 처리 장치 210은 플로우에 탐지 모델을 적용하여, 단위 시간 동안 플로우에서 발생한 경고들의 수가 기준 수와 같거나 기준 수를 초과함을 결정하고, 플로우에서 네트워크 공격의 후보를 검출할 수 있다.
본 개시의 다양한 실시 예들에 따라, 각각의 복수의 플로우들과 관련된 파라미터들, 파라미터들로부터 파생된 파라미터(이하, 파생 파라미터로 지칭된다)들 및 기계 학습 알고리즘의 예는 하기의 <표 3>과 같다.
Figure 112017078998801-pat00005
여기에서, duration_sec은 플로우 규칙이 설정된 후부터 경과한 초 단위의 시간, duration_n_sec은 플로우 규칙이 설정된 후부터 경과한 나노 초 단위의 시간, idle_timeout은 플로우 규칙에 대한 매칭(matching)이 발생하지 않을 경우 그 플로우 규칙을 삭제하기 위한 시간(즉, idle_timeout동안 플로우 규칙에 대한 매칭이 발생하지 않을 경우 그 플로우 규칙은 삭제된다), hard_timeout은 플로우 규칙에 대한 매칭의 발생과 관계 없이 플로우 규칙을 삭제하기 위한 시간(즉, 플로우 규칙이 설정된 후부터 hard_timeout이 경과한 경우 플로우 규칙은 삭제된다), byte_count는 플로우 규칙에 매칭된 패킷의 바이트 단위의 크기, packet_count는 플로우 규칙에 매칭된 패킷들의 수를 의미한다. pair_flow는 플로우가 양방향 플로우인지 여부를 나타내고, 참(true) 또는 거짓(false)의 값일 수 있다. total_pair_flow는 양방향 플로우들의 수, total_flows는 전체 플로우들의 수, pair_flow ratio는 전체 플로우들 중 양방향 플로우들의 비율을 의미한다. 기계 학습 알고리즘은 K-평균법(K-means)과, 선형 회귀법(linear regression) 중 적어도 하나를 포함한다.
본 개시의 다양한 실시 예들에 따르면, 네트워크 특성을 결정하기 위한 적어도 하나의 파라미터 및/또는 적어도 하나의 파생 파라미터는 입력부 310을 통한 입력에 의해 선택될 수 있다. 처리 장치 210은 선택된 적어도 하나의 파라미터 및/또는 적어도 하나의 파생 파라미터에 대한 값들을 식별하고, 식별된 값들에 기반하여 네트워크 특성을 결정할 수 있다.
도 8은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 장치의 각 요소(element)에서 수행되는 동작의 흐름을 도시한다. 보다 상세하게, 도 8은 처리 장치 210에 포함된 버킷 생성기 212, 탐지 모델 생성기 213, 제어 룰 생성기 214, 버킷 제어기 215, 행위 분석기 216, 통계 정보 관리기 217 및 통계 정보 수집기 221에서 수행되는 동작의 흐름을 도시한다.
통계 정보 수집기 221은 플로우들에 대한 플로우 통계를 수집한다. 통계 정보 수집기 221은 복수의 스위치들에 각각의 복수의 스위치들과 관련된 플로우들에 대한 플로우 통계를 주기적으로 요청하고, 복수의 스위치들로부터 플로우 통계에 관한 정보를 수신할 수 있다. 플로우들에 대한 플로우 통계는 각각의 플로우들에 대한 통계 정보를 포함할 수 있다.
통계 정보 관리기 217은 플로우들에 대한 플로우 통계에 기반하여 네트워크 특성을 결정하고, 결정된 네트워크 특성을 저장한다. 통계 정보 관리기 217은 데이터 저장 장치 260에 플로우들에 대한 네트워크 특성을 저장할 수 있다.
탐지 모델 생성기 213은 네트워크 특성에 기반하여 네트워크 공격을 검출하기 위한 탐지 모델을 생성한다. 본 개시의 다양한 실시 예들에 따르면, 탐지 모델은 데이터 처리 장치 250에서 생성될 수 있다. 데이터 저장 장치 260은 네트워크 특성에 관한 정보를 데이터 처리 장치 250에 제공하고, 데이터 처리 장치 250은 네트워크 특성에 기반하여 탐지 모델을 생성할 수 있다. 데이터 처리 장치 250이 탐지 모델을 생성한 경우, 데이터 처리 장치 250은 생성된 탐지 모델을 탐지 모델 생성기 213에 제공할 수 있다.
버킷 생성기 212는 버킷 알고리즘을 생성한다. 버킷 생성기 212는 버킷 구조를 결정하고, 버킷 알고리즘에서 사용될 파라미터들을 결정한다. 예를 들어, 버킷 생성기 212는 버킷 알고리즘에서 사용될 총 버킷들의 수, 총 의심 버킷들의 수(또는, 순 음성 버킷 이동 횟수의 최대 값, 버킷 구조에 포함된 의심 버킷들의 수, 버킷 구조에서 음성 버킷 이동이 연속적으로 수행될 수 있는 최대 횟수, 플로우에 대한 QoS를 연속적으로 감소시킬 수 있는 최대 횟수), 각 버킷에 대응하는 QoS의 수준 또는 범위, 네트워크 공격의 후보가 발생하였다고 결정하기 위해 플로우에서 발생하여야 하는 경고들의 수에 대한 임계 값(즉, 기준 수), 스위치가 처리할 수 있는 총 대역폭, 활성 버킷에 대응하는 대역 폭, 총 의심 버킷들에 대응하는 대역 폭, 각 의심 버킷에 대응하는 대역 폭, 버킷 이동의 트리거링(triggering) 조건, 버킷 유지(즉, 버킷 이동을 수행하지 않음)의 트리거링 조건, 플로우 차단의 트리거링 조건 중 적어도 하나를 결정할 수 있다. 버킷 생성기 212는 버킷 알고리즘에 사용될 파라미터들을 데이터 저장 장치 260에 저장할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 버킷 알고리즘에 사용될 파라미터들은 입력부 310을 통한 입력에 의해 결정될 수 있다.
행위 분석기 216은 각 플로우에 대한 분석을 수행한다. 예를 들어, 행위 분석기 216은 각 플로우에서 단위 시간 동안 발생한 경고들의 수를 카운트하고, 플로우에서 네트워크 공격의 후보가 검출되는지 여부를 결정할 수 있다.
버킷 제어기 215는 버킷 알고리즘에 기반하여 네트워크 공격을 검출한다. 예를 들어, 버킷 제어기 215는 플로우들에 대한 복수의 버킷 이동을 수행하여, 네트워크 공격이 발생하는 플로우를 결정할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 버킷 제어기 215에서 수행되는 버킷 알고리즘은 데이터 처리 장치 250에서 수행될 수 있다. 다시 말해서, 버킷 제어기 215는 버킷 알고리즘을 수행하는데 필요한 정보를 데이터 처리 장치 250에 제공하여, 데이터 처리 장치 250이 버킷 알고리즘을 수행하도록 할 수 있다.
제어 룰 생성기 214는 검출된 네트워크 공격을 처리하기 위한 제어 룰 또는 대응 룰을 생성한다. 제어 룰 또는 대응 룰은 네트워크 공격을 초래하는 것으로 결정된 플로우를 차단하기 위한 명령을 포함할 수 있다. 제어 룰 생성기 214는 생성된 제어 룰 또는 대응 룰을 네트워크 공격을 초래하는 것으로 결정된 플로우와 관련된 스위치에 송신하여, 스위치가 플로우와 관련된 포트를 차단하거나, 플로우와 관련된 패킷을 드랍 하도록 할 수 있다.
도 9는 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 처리하기 위한 동작의 흐름도를 도시한다. 도 9는 처리 장치 210의 동작 방법을 예시한다.
도 9를 참고하면, 901 단계에서, 처리 장치 210은 파라미터에 관한 입력을 검출한다. 파라미터는 네트워크 특성을 결정하기 위해 사용될 파라미터와, 버킷 알고리즘에서 사용될 파라미터를 포함한다. 네트워크 특성을 결정하기 위해 사용될 파라미터는 <표 3>의 파라미터들 및 파생 파라미터들 중 적어도 하나를 포함할 수 있다. 버킷 알고리즘에서 사용될 파라미터는 버킷 알고리즘에서 사용될 총 버킷들의 수, 총 의심 버킷들의 수(또는, 순 음성 버킷 이동 횟수의 최대 값, 버킷 구조에 포함된 의심 버킷들의 수, 버킷 구조에서 음성 버킷 이동이 연속적으로 수행될 수 있는 최대 횟수, 플로우에 대한 QoS를 연속적으로 감소시킬 수 있는 최대 횟수, 버킷 구조에서 정의될 수 있는 최대 버킷 값), 각 버킷에 대응하는 QoS의 수준 또는 범위, 네트워크 공격의 후보가 발생하였다고 결정하기 위해 플로우에서 발생하여야 하는 경고들의 수에 대한 임계 값(즉, 기준 수), 스위치가 처리할 수 있는 총 대역폭, 활성 버킷에 대응하는 대역 폭, 총 의심 버킷들에 대응하는 대역 폭, 각 의심 버킷에 대응하는 대역 폭, 버킷 이동의 트리거링 조건, 버킷 유지의 트리거링 조건, 플로우 차단의 트리거링 조건 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 네트워크 특성을 결정하기 위해 사용될 파라미터와, 버킷 알고리즘에서 사용될 파라미터는 입력 없이 미리 결정될 수 있다. 이 경우, 901 단계는 생략될 수 있다.
903 단계에서, 처리 장치 210은 플로우 통계를 수신한다. 플로우 통계는 플로우들에 대한 통계 정보를 포함하고, 통계 정보는 플로우들과 관련된 파라미터들(예: <표 3>의 파라미터들)에 대한 파라미터 값들을 포함할 수 있다.
905 단계에서, 처리 장치 210은 플로우들에 대한 네트워크 특성을 결정하고, 결정된 네트워크 특성을 저장한다. 처리 장치 210은 통계 정보에 기반하여 네트워크 특성을 결정할 수 있다. 예를 들어, 처리 장치 210이 각 플로우에 대한 통계 정보에서 미리 결정된 적어도 하나의 파라미터 또는 901 단계에서 입력된 적어도 하나의 파라미터에 대한 파라미터 값을 식별하고, 식별된 파라미터 값들을 조합하여 미리 결정된 적어도 하나의 파생 파라미터 또는 901 단계에서 입력된 적어도 하나의 파생 파라미터에 대한 파라미터 값을 식별할 경우, 네트워크 특성이 결정될 수 있다.
907 단계에서, 처리 장치 210은 탐지 모델이 존재하는지 여부를 결정한다. 다시 말해서, 처리 장치 210은 시스템에서 이미 생성된 탐지 모델이 존재하는지 여부를 결정한다.
탐지 모델이 존재하지 않는 경우, 909 단계에서, 처리 장치 210은 탐지 모델을 생성한다. 처리 장치 210은 네트워크 특성에 기반하여, 네트워크 공격을 검출하기 위한 탐지 모델을 생성할 수 있다. 처리 장치 210이 플로우들에 대한 네트워크 특성에 기반하여 기계 학습 알고리즘을 수행하는 경우, 탐지 모델이 생성될 수 있다.
탐지 모델이 존재하는 경우, 911 단계에서, 처리 장치 210은 탐지 모델에 기반하여 플로우에 대한 분석을 수행한다. 예를 들어, 처리 장치 210은 탐지 모델에 기반하여 각 플로우에서 단위 시간 동안 발생한 경고들의 수를 카운트하고, 카운트된 경고들의 수를 기준 수와 비교할 수 있다.
913 단계에서, 처리 장치 210은 네트워크 공격의 후보가 검출되는지를 결정한다. 예를 들어, 플로우에서 단위 시간 동안 발생한 경고들의 수가 기준 수와 같거나 기준 수를 초과하는 경우, 처리 장치 210은 플로우에서 네트워크 공격의 후보가 검출되는 것으로 결정할 수 있다. 다른 예로, 단위 시간 동안 발생한 경고들의 수가 기준 수 미만일 경우, 처리 장치 210은 플로우에서 네트워크 공격의 후보가 검출되지 않거나, 플로우에서 네트워크 공격이 발생할 가능성이 낮다고 결정할 수 있다.
네트워크 공격의 후보가 검출된 경우, 915단계에서, 처리 장치 210은 네트워크 공격의 후보를 처리한다. 처리 장치 210은 단계별 대응 프로세스 또는 버킷 알고리즘에 따라 네트워크 공격의 후보가 검출된 플로우를 처리할 수 있다. 예를 들어, 처리 장치 210은 버킷 알고리즘에 따라 네트워크 공격의 후보가 검출된 플로우에 대한 음성 버킷 이동을 수행하거나, 네트워크 공격의 후보가 검출된 플로우에 대한 QoS를 감소시킬 수 있다. 네트워크 공격의 후보가 검출된 플로우에 대해 더 이상 음성 버킷 이동이 수행될 수 없거나, QoS를 감소시킬 수 없는 경우, 처리 장치 210은 해당 플로우에서 네트워크 공격이 발생하는 것으로 확정적으로 결정하고, 해당 플로우를 차단할 수 있다.
네트워크 공격의 후보가 검출되지 아니한 경우, 917 단계에서, 처리 장치 210은 남은 플로우가 존재하는지 여부를 결정한다. 여기에서, 남은 플로우는 플로우들 중에서 단위 시간 구간 동안 탐지 모델이 적용되지 아니한 플로우를 의미한다.
도시되지 아니하였으나, 처리 장치 210은 플로우에서 네트워크 공격의 후보가 검출되지 않은 경우, 플로우에 대해 양성 버킷 이동을 수행하거나, 플로우에 대한 QoS를 증가시킬 수 있다. 플로우가 이미 활성 버킷에 있거나 시스템에서 정의된 가장 높은 수준 또는 범위의 QoS를 제공받고 있는 경우, 처리 장치 210은 플로우에 대한 버킷 이동을 수행하지 않고, 플로우에 대한 QoS를 유지할 수 있다.
남은 플로우가 존재하는 경우, 913 단계로 되돌아가, 처리 장치 210은 적어도 하나의 남은 플로우에서 네트워크 공격의 후보가 검출되는지를 결정한다.
남은 플로우가 존재하지 않는 경우, 처리 장치 210은 본 알고리즘을 종료한다. 또는, 네트워크 공격이 발생한 플로우를 차단할 때까지 다음 시간 구간 동안 단계 911 내지 917의 동작들을 반복할 수 있다.
도 10은 본 개시의 다양한 실시 예들에 따른 SDN에서 네트워크 공격을 단계적이고 점진적으로 차단하기 위한 동작의 흐름도를 도시한다. 도 10은 처리 장치 210의 동작 방법을 예시한다.
도 10을 참고하면, 1001 단계에서, 처리 장치 210은 파라미터에 관한 입력을 검출한다. 파라미터는 버킷 알고리즘에서 사용될 파라미터를 포함할 수 있다. 버킷 알고리즘에서 사용될 파라미터는 버킷 알고리즘에서 사용될 총 버킷들의 수, 총 의심 버킷들의 수(또는, 순 음성 버킷 이동 횟수의 최대 값, 버킷 구조에 포함된 의심 버킷들의 수, 버킷 구조에서 음성 버킷 이동이 연속적으로 수행될 수 있는 최대 횟수, 플로우에 대한 QoS를 연속적으로 감소시킬 수 있는 최대 횟수, 버킷 구조에서 정의될 수 있는 최대 버킷 값), 각 버킷에 대응하는 QoS의 수준 또는 범위, 네트워크 공격의 후보가 발생하였다고 결정하기 위해 플로우에서 발생하여야 하는 경고들의 수에 대한 임계 값(즉, 기준 수), 스위치가 처리할 수 있는 총 대역폭, 활성 버킷에 대응하는 대역 폭, 총 의심 버킷들에 대응하는 대역 폭, 각 의심 버킷에 대응하는 대역 폭, 버킷 이동의 트리거링 조건, 버킷 유지의 트리거링 조건, 플로우 차단의 트리거링 조건 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 버킷 알고리즘에서 사용될 파라미터는 입력 없이 미리 결정될 수 있다. 이 경우, 1001 단계는 생략될 수 있다.
1003 단계에서, 처리 장치 210은 버킷 알고리즘이 존재하는지 여부를 결정한다. 다시 말해서, 처리 장치 210은 시스템에서 이미 생성된 버킷 알고리즘이 존재하는지 여부를 결정한다.
버킷 알고리즘이 존재하는 경우, 1005 단계에서, 처리 장치 210은 플로우에 대한 버킷 값을 계산한다. 처리 장치 210은 단위 시간 구간 동안 플로우에서 네트워크 공격의 후보를 검출할 경우, 플로우에 대한 버킷 값을 증가시킬 수 있고, 그렇지 않은 경우, 플로우에 대한 버킷 값을 감소시킬 수 있다.
버킷 알고리즘이 존재하지 않는 경우, 1007 단계에서, 처리 장치 210은 버킷 알고리즘을 생성한다. 다시 말해서, 처리 장치 210은 버킷 구조를 결정하고, 901 단계의 파라미터들을 이용하여 버킷 알고리즘을 생성할 수 있다. 그 후, 처리 장치 210은 1005 단계로 이동하여 버킷 알고리즘에 따라 플로우에 대한 버킷 값을 계산한다.
1009 단계에서, 처리 장치 210은 플로우에 대한 버킷 값이 최대 버킷 값을 초과하는지 여부를 결정한다.
플로우에 대한 버킷 값이 최대 버킷 값을 초과하는 경우, 1011 단계에서, 처리 장치 210은 플로우를 차단한다. 다시 말해서, 처리 장치 210이 플로우에 대한 음성 버킷 이동을 더 이상 수행할 수 없는 경우, 처리 장치 210은 플로우에서 네트워크 공격이 발생하는 것으로 확정적으로 결정하고, 플로우를 차단한다. 이후, 처리 장치 210은 본 알고리즘을 종료한다. 또는, 처리 장치 210은 다른 플로우에 대해 단계 1005, 1009, 1011 및 1013의 동작들을 반복적으로 수행할 수 있다.
플로우에 대한 버킷 값이 최대 버킷 값을 초과하지 않는 경우, 1013 단계에서, 처리 장치 210은 플로우에 대한 버킷 이동을 수행한다. 처리 장치 210은 계산된 버킷 값에 대응하는 버킷으로 플로우에 대한 버킷 이동을 수행한다. 도시되지 않았으나, 계산된 버킷 값이 0보다 작을 경우, 처리 장치 210은 플로우에 대한 버킷 값을 0으로 재설정한다. 다시 말해서, 처리 장치 210은 플로우에 대한 양성 버킷 이동을 더 이상 수행할 수 없는 경우, 플로우에 대한 버킷 이동을 수행하지 않는다. 이후, 처리 장치 210은 본 알고리즘을 종료한다. 또는, 처리 장치 210은 다른 플로우에 대해 단계 1005, 1009, 1011 및 1013의 동작들을 반복적으로 수행할 수 있다.
도 11은 본 개시의 다양한 실시 예들에 따른 SDN에서 SDN 관리 장치(orchestrator) 1110을 포함하는 시스템 200을 도시한다.
도 11을 참고하면, 시스템 200은 SDN 관리 장치 1110을 더 포함할 수 있다. SDN 관리 장치 1110은 처리 장치 210 및 SDN 제어기 220의 상위 노드로서 기능하고, 처리 장치 210 및 제어기 220을 포함하여 시스템 200에서 네트워크 객체들의 설정/기능들을 제어하기 위한 기능들을 제공한다. 예를 들어, SDN 관리 장치 1110은 네트워크 객체들의 제어 및 관리를 위한 인터페이스를 제공할 수 있고, 인터페이스를 통해 제어 및 관리를 위한 입력을 수신하거나, 제어 및 관리 결과를 출력(예: 디스플레이)할 수 있다. SDN 관리 장치 1110은 시스템 200의 네트워크 객체들을 제어 및 관리하기 위한 요청을 처리 장치 210 및/또는 SDN 제어기 220에 송신할 수 있고, 요청에 대응하는 응답을 처리 장치 210 및/또는 SDN 제어기 220으로부터 수신할 수 있다.
본 개시의 다양한 실시 예들에 따르면, SDN 관리 장치 1110은 네트워크 공격에 대한 처리를 제어 및 관리할 수 있다. 예를 들어, SDN 관리 장치 1110은 처리 장치 210에 대해 네트워크 공격과 관련된 모니터링을 수행할 수 있고, 모니터링에 기반하여 정책 기반 대응 룰(policy based action rule)을 적용할 수 있다. 모니터링에 따라, SDN 관리 장치 1110은 처리 장치 210으로부터 네트워크 공격이 발생하였음을 알리는 보고를 수신하고, 정책(policy)에 기반하여 네트워크 공격에 대한 대응 룰을 결정할 수 있다. 예를 들어, SDN 관리 장치 1110은 정책에 기반하여 네트워크 공격을 초래하는 플로우를 차단하거나, 차단하지 않을 것을 지시하는 정책 기반 대응 룰을 결정할 수 있다. SDN 관리 장치 1110은 정책 기반 대응 룰을 처리 장치 210에 송신할 수 있고, 처리 장치 210은 수신된 정책 기반 대응 룰에 따라 SDN 제어기 220에 대응 룰을 적용할 수 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리(handle)하기 위한 방법에 있어서,
    제1 시간 구간 동안 플로우(flow)에서 상기 플로우를 포함하는 복수의 플로우들에 대한 통계 정보를 기반으로 네트워크 공격의 제1 후보를 검출하는 과정과,
    상기 제1 후보의 검출에 대응하여, 상기 플로우에 대한 서비스 품질(quality of service, QoS)을 제1 QoS에서 제2 QoS로 변경하는 과정과,
    상기 제1 시간 구간 다음의 제2 시간 구간 동안, 상기 제2 QoS의 상기 플로우에서 네트워크 공격의 제2 후보를 검출하는 과정과,
    상기 제2 후보의 검출에 대응하여, 상기 플로우를 차단하는 과정을 포함하고,
    상기 통계 정보는, 플로우 규칙이 설정된 후부터 경과한 시간, 플로우 규칙에 대한 매칭이 발생하지 않을 경우 플로우 규칙을 삭제하기 위한 시간, 플로우 규칙에 대한 매칭과 관계없이 플로우 규칙을 삭제하기 위한 시간, 플로우 규칙이 매칭된 패킷의 크기, 또는 플로우 규칙에 매칭된 패킷들의 수 중 적어도 하나를 포함하는 방법.
  2. 청구항 1에 있어서, 상기 제1 후보를 검출하는 과정은,
    상기 플로우를 포함하는 상기 복수의 플로우들에 대한 통계 정보를 수신하는 과정과,
    상기 통계 정보에 기반하여, 상기 복수의 플로우들에 대한 네트워크 특성(feature)을 결정하는 과정과,
    상기 네트워크 특성에 기반하여, 네트워크 공격을 검출하기 위한 탐지 모델을 생성하는 과정과,
    상기 플로우에 상기 탐지 모델을 적용하여, 상기 제1 후보를 검출하는 과정을 포함하는 방법.
  3. 삭제
  4. 청구항 2에 있어서, 파라미터들 중 적어도 하나의 파라미터를 선택하기 위한 입력을 사용자 인터페이스(user interface, UI)를 통해 검출하는 과정을 더 포함하고,
    상기 네트워크 특성을 결정하는 과정은, 상기 적어도 하나의 파라미터에 대한 파라미터 값을 식별하는 과정을 포함하는 방법.
  5. 청구항 1에 있어서, 상기 제1 후보를 검출하는 과정은,
    상기 제1 시간 구간 동안 상기 플로우에서 발생한 복수의 경고(alert)들을 검출하는 과정과,
    상기 복수의 경고들의 수가 기준 수와 같거나 상기 기준 수를 초과할 경우, 상기 제1 후보가 검출되었음을 결정하는 과정을 포함하는 방법.
  6. 청구항 5에 있어서, 상기 제1 시간 구간의 길이, 상기 제2 시간 구간의 길이 및 상기 기준 수 중 적어도 하나에 대한 설정은, 사용자 인터페이스(user interface, UI)를 통해 입력된 방법.
  7. 청구항 1에 있어서, 상기 제2 QoS는, 상기 제1 QoS보다 낮은 방법.
  8. 청구항 1에 있어서, 각각의 적어도 하나의 시간 구간 동안 상기 플로우에서 네트워크 공격의 후보가 검출되는지 여부를 결정하는 과정과,
    상기 결정에 대응하여, 상기 플로우에 대한 QoS를 변경하는 과정을 더 포함하고,
    상기 적어도 하나의 시간 구간은, 상기 제1 시간 구간 이전인 방법.
  9. 청구항 8에 있어서, 상기 플로우에 대한 QoS를 변경하는 과정은,
    상기 후보가 검출되지 않은 경우, 상기 플로우에 대한 QoS를 증가시키는 과정을 포함하는 방법.
  10. 청구항 1에 있어서, 상기 플로우에 대한 QoS가 변경된 횟수는 임계 횟수를 초과하고,
    상기 임계 횟수에 관한 설정은, 사용자 인터페이스(user interface, UI)를 통해 입력된 방법.
  11. 소프트웨어 정의 네트워크(software defined network, SDN)에서 네트워크 공격을 처리(handle)하기 위한 장치에 있어서,
    제1 시간 구간 동안 플로우(flow)에서 상기 플로우를 포함하는 복수의 플로우들에 대한 통계 정보를 기반으로 네트워크 공격의 제1 후보를 검출하고, 상기 제1 후보의 검출에 대응하여, 상기 플로우에 대한 서비스 품질(quality of service, QoS)을 제1 QoS에서 제2 QoS로 변경하고, 상기 제1 시간 구간 다음의 제2 시간 구간 동안, 상기 제2 QoS의 상기 플로우에서 네트워크 공격의 제2 후보를 검출하고, 상기 제2 후보의 검출에 대응하여, 상기 플로우를 차단하는 제어부를 포함하고, 상기 통계 정보는, 플로우 규칙이 설정된 후부터 경과한 시간, 플로우 규칙에 대한 매칭이 발생하지 않을 경우 플로우 규칙을 삭제하기 위한 시간, 플로우 규칙에 대한 매칭과 관계없이 플로우 규칙을 삭제하기 위한 시간, 플로우 규칙이 매칭된 패킷의 크기, 또는 플로우 규칙에 매칭된 패킷들의 수 중 적어도 하나를 포함하는 장치.
  12. 청구항 11에 있어서, 상기 제어부는,
    상기 플로우를 포함하는 상기 복수의 플로우들에 대한 통계 정보를 수신하고, 상기 통계 정보에 기반하여, 상기 복수의 플로우들에 대한 네트워크 특성(feature)을 결정하고, 상기 네트워크 특성에 기반하여, 네트워크 공격을 검출하기 위한 탐지 모델을 생성하고, 상기 플로우에 상기 탐지 모델을 적용하여, 상기 제1 후보를 검출하는 장치.
  13. 삭제
  14. 청구항 12에 있어서, 파라미터들 중 적어도 하나의 파라미터를 선택하기 위한 입력을 사용자 인터페이스(user interface, UI)를 통해 검출하는 입력부를 더 포함하고,
    상기 제어부는, 상기 네트워크 특성을 결정하기 위해, 상기 적어도 하나의 파라미터에 대한 파라미터 값을 식별하는 장치.
  15. 청구항 11에 있어서, 상기 제어부는,
    상기 제1 시간 구간 동안 상기 플로우에서 발생한 복수의 경고(alert)들을 검출하고, 상기 복수의 경고들의 수가 기준 수와 같거나 상기 기준 수를 초과할 경우, 상기 제1 후보가 검출되었음을 결정하는 장치.
  16. 청구항 15에 있어서, 상기 제1 시간 구간의 길이, 상기 제2 시간 구간의 길이 및 상기 기준 수 중 적어도 하나에 대한 설정은, 사용자 인터페이스(user interface, UI)를 통해 입력된 장치.
  17. 청구항 11에 있어서, 상기 제2 QoS는, 상기 제1 QoS보다 낮은 장치.
  18. 청구항 11에 있어서, 상기 제어부는, 각각의 적어도 하나의 시간 구간 동안 상기 플로우에서 네트워크 공격의 후보가 검출되는지 여부를 결정하고, 상기 결정에 대응하여, 상기 플로우에 대한 QoS를 변경하고,
    상기 적어도 하나의 시간 구간은, 상기 제1 시간 구간 이전인 장치.
  19. 청구항 18에 있어서, 상기 제어부는,
    상기 후보가 검출되지 않은 경우, 상기 플로우에 대한 QoS를 증가시키는 장치.
  20. 청구항 11에 있어서, 상기 플로우에 대한 QoS가 변경된 횟수는 임계 횟수를 초과하고,
    상기 임계 횟수에 관한 설정은, 사용자 인터페이스(user interface, UI)를 통해 입력된 장치.
KR1020170103737A 2017-08-16 2017-08-16 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법 KR102373874B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170103737A KR102373874B1 (ko) 2017-08-16 2017-08-16 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법
PCT/KR2018/009327 WO2019035634A1 (ko) 2017-08-16 2018-08-14 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법
US16/639,502 US11196764B2 (en) 2017-08-16 2018-08-14 Device and method for handling network attacks in software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103737A KR102373874B1 (ko) 2017-08-16 2017-08-16 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190018947A KR20190018947A (ko) 2019-02-26
KR102373874B1 true KR102373874B1 (ko) 2022-03-14

Family

ID=65362265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103737A KR102373874B1 (ko) 2017-08-16 2017-08-16 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US11196764B2 (ko)
KR (1) KR102373874B1 (ko)
WO (1) WO2019035634A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298381B (zh) * 2019-05-24 2022-09-20 中山大学 一种云安全服务功能树网络入侵检测系统
CN111585965B (zh) * 2020-04-10 2021-05-14 华南理工大学 一种防御软件定义网络中lldp中继攻击的方法
CN114844679A (zh) * 2022-04-08 2022-08-02 西北大学 一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017511072A (ja) * 2014-04-11 2017-04-13 レベル スリー コミュニケーションズ,エルエルシー ヒューリスティック及びビジネスポリシーに基づく、ネットワークトラフィックフローに対するリソースのインクリメンタルアプリケーション
KR101741357B1 (ko) * 2016-02-15 2017-05-30 이화여자대학교 산학협력단 Sdn에서 비정상 트래픽을 검출하는 방법 및 비정상 트래픽을 검출하는 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725587B1 (en) * 2000-08-24 2010-05-25 Aol Llc Deep packet scan hacker identification
KR20110071774A (ko) * 2009-12-21 2011-06-29 한국전자통신연구원 스마트 경계 라우터 및 이를 이용한 플로우 정보 전송 방법
US9210180B2 (en) 2012-04-18 2015-12-08 Radware Ltd. Techniques for separating the processing of clients' traffic to different zones in software defined networks
US9450981B2 (en) 2013-03-14 2016-09-20 Radware, Ltd. System and method thereof for mitigating denial of service attacks in virtual networks
WO2015017541A1 (en) * 2013-07-30 2015-02-05 Robert Bosch Gmbh Adaptive methods for wireless camera communication
JP6324026B2 (ja) * 2013-11-07 2018-05-16 三菱電機株式会社 通信装置、制御装置、ネットワークシステムおよびネットワーク監視制御方法
KR101665848B1 (ko) * 2015-01-29 2016-10-14 한국과학기술원 내부망에서 효율적인 침입탐지 방법 및 장치
EP3318008B1 (en) * 2015-06-30 2022-09-07 British Telecommunications public limited company Negotiating quality of service for data flows
KR20170004052A (ko) * 2015-07-01 2017-01-11 주식회사 케이티 네트워크 트래픽 상태에 기반한 대역폭 관리 방법 및 시스템
KR101844136B1 (ko) 2016-04-27 2018-05-14 한국과학기술원 분산 소프트웨어 정의 네트워킹 환경에서 네트워크 이상을 감지하는 방법, 장치 및 컴퓨터 프로그램

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017511072A (ja) * 2014-04-11 2017-04-13 レベル スリー コミュニケーションズ,エルエルシー ヒューリスティック及びビジネスポリシーに基づく、ネットワークトラフィックフローに対するリソースのインクリメンタルアプリケーション
KR101741357B1 (ko) * 2016-02-15 2017-05-30 이화여자대학교 산학협력단 Sdn에서 비정상 트래픽을 검출하는 방법 및 비정상 트래픽을 검출하는 장치

Also Published As

Publication number Publication date
WO2019035634A1 (ko) 2019-02-21
US20210029158A1 (en) 2021-01-28
KR20190018947A (ko) 2019-02-26
US11196764B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
Bhunia et al. Dynamic attack detection and mitigation in IoT using SDN
Da Silva et al. ATLANTIC: A framework for anomaly traffic detection, classification, and mitigation in SDN
US9860154B2 (en) Streaming method and system for processing network metadata
Imran et al. Toward an optimal solution against denial of service attacks in software defined networks
EP3223458B1 (en) Mechanisms to prevent anomaly detectors from learning anomalous patterns
US10581901B2 (en) Increased granularity and anomaly correlation using multi-layer distributed analytics in the network
US10616251B2 (en) Anomaly selection using distance metric-based diversity and relevance
US20170279685A1 (en) Adjusting anomaly detection operations based on network resources
US9219691B2 (en) Source-driven switch probing with feedback request
KR102373874B1 (ko) 소프트웨어 정의 네트워크에서 네트워크 공격을 처리하기 위한 장치 및 방법
KR20180041952A (ko) DDoS 공격이 탐지가 가능한 소프트웨어 정의 네트워크 및 이에 포함되는 스위치
CN105683918B (zh) 分布式系统中的集中式联网配置
KR20150105436A (ko) 향상된 스트리밍 방법과 네트워크 메타데이터를 처리하기 위한 시스템
EP3907617B1 (en) Container management based on application performance indicators
KR101980901B1 (ko) SVM-SOM 결합 기반 DDoS 탐지 시스템 및 방법
Chaudhary et al. LOADS: Load optimization and anomaly detection scheme for software-defined networks
CN113748660A (zh) 用于处理指示在经由网络传输的流量中检测到异常的警报消息的方法和装置
Nagarathna et al. SLAMHHA: A supervised learning approach to mitigate host location hijacking attack on SDN controllers
US9246751B2 (en) Ethernet ring protection switching method, network device and system
US11930040B2 (en) Security techniques for 5G and next generation radio access networks
EP3565184B1 (en) Data monitoring for network switch resource
Gupta et al. Security Issues in Software-Defined Networks.
Zolotukhin et al. Intelligent IDS chaining for network attack mitigation in SDN
KR20200014139A (ko) 이종 사물인터넷(H-IoT) 네트워크 상에서 분산 서비스 거부 공격으로부터의 방어방법 및 그 시스템
El-Shamy et al. Detection optimization of rare attacks in software-defined network using ensemble learning

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant