KR20210060180A - 네트워크의 이상 감지 방법 및 장치 - Google Patents

네트워크의 이상 감지 방법 및 장치 Download PDF

Info

Publication number
KR20210060180A
KR20210060180A KR1020190147898A KR20190147898A KR20210060180A KR 20210060180 A KR20210060180 A KR 20210060180A KR 1020190147898 A KR1020190147898 A KR 1020190147898A KR 20190147898 A KR20190147898 A KR 20190147898A KR 20210060180 A KR20210060180 A KR 20210060180A
Authority
KR
South Korea
Prior art keywords
flow
switch
feature vector
network
data packets
Prior art date
Application number
KR1020190147898A
Other languages
English (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 KR1020190147898A priority Critical patent/KR20210060180A/ko
Publication of KR20210060180A publication Critical patent/KR20210060180A/ko

Links

Images

Classifications

    • 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
    • H04L43/0823Errors, e.g. transmission errors
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크의 이상 감지 방법 및 장치가 개시된다. 본 발명에 따른 네트워크의 이상감지 방법은, 출발지와 목적지가 동일한 복수의 데이터 패킷들을 포함하는 플로우를 수신하는 단계, 상기 플로우의 이상 감지를 위해 필요한 감지 요소들을 결정하는 단계, 상기 감지 요소들에 대한 벡터인 피쳐 벡터를 획득하는데 필요한 정보를 획득하는 단계, 상기 획득한 정보를 기초로 상기 피쳐 벡터를 획득하는 단계, 상기 획득한 피쳐 벡터를 기초로 상기 플로우의 이상 여부를 감지하는 단계 및 상기 플로우의 이상 여부 감지 결과를 기초로 상기 플로우를 처리하는 단계를 포함할 수 있다.

Description

네트워크의 이상 감지 방법 및 장치{METHOD FOR DETECTING ANOMALY OF NETWORK AND APPARATUS THEREFOR}
본 발명은, 네트워크의 이상 감지 방법 및 장치에 관한 것으로, 더욱 상세하게는 소프트웨어 정의 네트워크의 이상 감지 방법 및 장치에 관한 것이다.
최근 각광받고 있는 소프트웨어 정의 네트워크(SDN, Software Defined Network)는 네트워크 장치의 제어 평면(Control Plane)과 데이터 평면(Data Plane)을 분리하고, 이들 간에 개방형 인터페이스를 정의하는 기술이다. 이에 따라, 소프트웨어 정의 네트워크(SDN)에서는 데이터 평면(Data Plane) 내에서 패킷 전달을 위한 터널 등을 생성함으로써 이기종 장치 간의 상호 연동을 제공하고 있다.
다시 말하면, 소프트웨어 정의 네트워크는 개방형 인터페이스 및 표준 프로토콜에 따라 별도의 장치에서 이원화된 복수의 네트워크 장치들을 중앙 집중식으로 제어할 수 있다. 이에 따라, 소프트웨어 정의 네트워크는 데이터 센터(Data center), 클라우드(Cloud)를 비롯한 다양한 환경에서 활발히 적용될 수 있다.
한편, 소프트웨어 정의 네트워크는 NIDS(Network Intrusion Detection System)을 사용하여, 네트워크 상의 유해한 공격을 탐지 및 대응할 수 있다. NIDS는 시그니처에 기반하여 동작할 수 있다. 이 경우, NIDS는 입력 데이터를 공격 데이터 셋의 시그니처와 비교하여 네트워크 상의 데이터 패킷의 이상 여부를 감지하고 대응할 수 있다. 또한, NIDS는 이상 상태에 기반하여 동작할 수 있다. 이 경우 NIDS는 수신한 데이터 패킷의 정보와 정상 상태의 데이터 패킷의 차이를 획득하고, 획득한 차이를 기초로 네트워크 상의 데이터 패킷의 이상 여부를 감지하고 대응할 수 있다.
다만, NIDS가 시그니처에 기반하여 동작하는 경우, 새로운 형태의 공격이나 암호화된 데이터 패킷에 의한 공격을 탐지할 수 없는 문제가 발생할 수 있고, NIDS가 이상 상태에 기반하여 동작하는 경우, 정상 상태의 트래픽 데이터 셋과 차이가 크지 않은 데이터 패킷의 이상 여부를 탐지할 수 없는 문제가 발생할 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, INT(In-band Network Telemetry)를 이용하여 네트워크의 이상 여부를 감지하는 방법 및 장치를 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 인공 신경망을 이용하여, 실시간으로 네트워크의 이상 여부를 감지하는 방법 및 장치를 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 네트워크의 이상 감지 방법은 출발지와 목적지가 동일한 복수의 데이터 패킷들을 포함하는 플로우를 수신하는 단계, 상기 플로우의 이상 감지를 위해 필요한 감지 요소들을 결정하는 단계, 상기 감지 요소들에 대한 벡터인 피쳐 벡터를 획득하는 데 필요한 정보를 획득하는 단계, 상기 획득한 정보를 기초로 상기 피쳐 벡터를 획득하는 단계, 상기 획득한 피쳐 벡터를 기초로 상기 플로우의 이상 여부를 감지하는 단계 및 상기 플로우의 이상 여부 감지 결과를 기초로 상기 플로우를 처리하는 단계를 포함할 수 있다.
여기서, 상기 피쳐 벡터의 성분은, 전송 계층 프로토콜, 출발 포트, 도착 포트, TCP 플래그, 플로우 지속 시간, 상기 플로우의 총 지속 시간, 스위치 홉 지연 시간, 상기 플로우가 스위치 인출 포트에 머문 시간, 상기 플로우의 종단 지연 시간, 상기 플로우가 스위치 인입 포트에 머문 시간의 평균, 상기 플로우의 경로 상의 평균 포트 사용량 및 상기 경로 상의 대기열의 평균 사용량 중 하나 이상을 기초로 획득될 수 있다.
여기서, 상기 피쳐 벡터를 획득하는 단계는, 상기 피쳐 벡터 성분들 중 일부는 전송 정보로부터 획득하고, 나머지는 INT(IN-BAND NETWORK TELEMETRY) 정보로부터 획득할 수 있다.
여기서, 상기 플로우의 이상 여부를 감지하는 단계는, 미리 학습된 인공 신경망을 통해 수행될 수 있다.
여기서, 상기 플로우의 이상 여부를 감지하는 단계는, 상기 인공 신경망이 상기 피쳐 벡터를 기초로 상기 플로우에 대한 점수를 산정하는 단계 및 상기 점수를 제1 설정 값 및 제2 설정 값과 비교하는 단계를 포함할 수 있다.
여기서, 청구항 5에 있어서, 상기 점수를 제1 설정 값 및 제2 설정 값과 비교하는 단계는 상기 점수가 상기 제1 설정 값 미만이면 상기 플로우를 위험 상태로 판단하고, 상기 점수가 상기 제1 설정 값 이상이고 상기 제2 설정 값 이하인 경우 상기 플로우를 경고 상태로 판단하는 단계를 포함할 수 있다.
여기서, 상기 플로우를 처리하는 단계는, 상기 플로우가 위험 상태인 경우, 상기 플로우에 해당하는 데이터 패킷들을 차단하는 단계 및 상기 플로우가 경고 상태인 경우 상기 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 네트워크의 이상 감지 장치는 프로세서(processor) 복수의 뉴런들을 포함하는 인공 신경망 및 상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함할 수 있고, 상기 하나 이상의 명령들은, 스위치부로부터 INT 정보(In-band Network Telemetry)에 대한 벡터인 피쳐 벡터가 포함된 피쳐 데이터 패킷을 수신하고, 상기 피쳐 벡터를 기초로 플로우의 이상 여부를 감지하고 그리고, 상기 이상 여부 감지 결과를 기초로 상기 플로우의 처리 방법을 결정하도록 수행 될 수 있다.
여기서, 상기 피쳐 벡터의 성분은, 전송 계층 프로토콜, 출발 포트, 도착 포트, TCP 플래그, 플로우 지속 시간, 상기 플로우의 총 지속 시간, 스위치 홉 지연 시간, 상기 플로우가 스위치 인출 포트에 머문 시간, 상기 플로우의 종단 지연 시간, 상기 플로우가 스위치 인입 포트에 머문 시간의 평균, 상기 플로우의 경로 상의 평균 포트 사용량 및 상기 경로 상의 대기열의 평균 사용량 중 하나 이상을 기초로 획득될 수 있다.
여기서, 상기 인공 신경망은 미리 학습될 수 있다.
여기서, 상기 인공 신경망은 순환 신경망(Recurrent Neural Network)일 수 있다.
여기서, 상기 플로우의 이상 여부를 감지하는 경우, 상기 하나 이상의 명령들은, 상기 인공 신경망이 상기 피쳐 벡터를 기초로 상기 플로우에 대한 점수를 산정하고 그리고, 상기 점수를 제1 설정 값 및 제2 설정 값과 비교하도록 수행될 수 있다.
여기서, 상기 하나 이상의 명령들은, 상기 점수가 상기 제1 설정 값 미만이면, 상기 플로우를 위험 상태로 판단하고 그리고, 상기 점수가 상기 제1 설정 값 이상이고, 상기 제2 설정 값 이하인 경우, 상기 플로우를 경고 상태로 판단하도록 수행될 수 있다.
여기서, 상기 플로우의 처리 방법을 결정하는 경우, 상기 하나 이상의 명령들은, 상기 플로우가 위험 상태인 경우, 상기 플로우에 해당하는 데이터 패킷들을 차단하고 그리고, 상기 플로우가 경고 상태인 경우, 상기 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하도록 수행될 수 있다.
본 발명에 의하면, INT(In-band Network Telemetry)를 사용하여 플로우의 이상 상태를 감지하는 바, 데이터 트래픽에 영향을 주지 않고, 플로우의 이상 상태 감지를 위해 필요한 감지 요소들을 획득할 수 있다.
또한 본 발명에 의하면, 인공 신경망을 이용하여, 플로우의 이상 상태를 감지하는 바, 실시간으로 플로우의 이상 상태 감지 및 대응을 수행할 수 있다.
더 나아가 본 발명에 의하면, 기존의 이상 상태 탐지 기술들 보다 더 많은 감지 요소들을 기초로, 플로우의 이상 상태의 감지를 수행하는 바, 이상 상태 감지의 정확도가 향상될 수 있다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크를 도시한 개념도이다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 인공 신경망의 학습 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 이상 감지 방법을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크를 도시한 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 SDN 기반의 네트워크는 SDN 컨트롤러(software define network controller), 복수의 스위치들(120), 서버(130)를 포함할 수 있다. SDN 컨트롤러(110)는 제어부(111) 및 관리부(112)를 포함할 수 있다. 제어부(111)는 제어 평면(control plane)의 기능을 수행할 수 있고, 관리부(112)는 관리 평면(management plane)의 기능을 수행할 수 있다.
복수의 스위치들(120)은 제1 스위치(121), 제2 스위치(122) 및 제3 스위치(123)를 포함할 수 있다. 제1 스위치(121), 제2 스위치(122) 및 제3 스위치(123)는 프로그래머블 스위치(Programmable Switch)일 수 있다. 프로그래머블 스위치는 스위치가 데이터 패킷을 처리하는 방식을 프로그래밍할 수 있는 스위치를 의미할 수 있다. 프로그래밍 스위치는 상위 수준 언어(DSL, Domain-Specific Language)를 이용하여 스위치가 데이터 패킷을 처리하는 방식을 프로그래밍할 수 있다. 예를 들어, 상위 수준 언어는 P4(Programming Protocol-independent Packet Processors)일 수 있다. 한편, 도면에는 3개의 스위치들(제1 스위치(121), 제2 스위치(122), 제3 스위치(123))만을 도시하였으나 이는 일 예시이며, 이에 한정되지 아니한다. 또한, 복수의 스위치들(120)은 데이터 평면(data plane)의 기능을 수행할 수 있다.
서버(130)는 인공 신경망을 포함할 수 있다. 인공 신경망은 순환 신경망(RNN, Recurrent Neural Network)일 수 있다. 또한 서버(130)는 지식 평면(knowledge plane)의 기능을 수행할 수 있다. SDN 컨트롤러(110), 스위치들(120) 및 서버(130)는 다음과 같이 구성될 수 있다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 통신 노드(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(230)를 포함할 수 있다. 또한, 통신 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 통신 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다. 다만, 통신 노드(200)에 포함된 각각의 구성요소들은 공통 버스(270)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(210)는 메모리(220), 송수신 장치(230), 입력 인터페이스 장치(240), 출력 인터페이스 장치(250) 및 저장 장치(260) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
다시 도 1을 참조하면, 제어부(111)는 스위치부(120)에 포함된 스위치들(121 내지 123)의 역할 및 INT 프로그램을 결정할 수 있다. INT 프로그램은 스위치들(121 내지 123)이 사용하는 프로그램일 수 있다.
예를 들어, 제어부(111)는 제1 스위치(121)를 소스(source) 스위치로, 제2 스위치(122)를 트랜짓(transit) 스위치로, 제3 스위치(123)를 싱크(sink) 스위치로 동작하도록 결정할 수 있다. 또한 제어부(111)는 스위치들(121 내지 123)이 P4에 기반한 INT 프로그램을 사용하도록 결정할 수 있다.
제어부(111)는 스위치들(121 내지 123)의 역할 및 INT 프로그램에 대한 정보를 포함하는 스위치 제어 정보를 생성할 수 있다. 제어부(111)는 스위치 제어 정보가 포함된 스위치 메시지를 생성할 수 있다. 제어부(111)는 스위치 메시지를 제1 스위치(121), 제2 스위치(122) 및 제3 스위치(123) 각각에 전송할 수 있다.
제1 스위치(121)는 스위치 메시지를 제어부(111)로부터 수신할 수 있다. 제1 스위치(121)는 스위치 메시지로부터 스위치 제어 정보를 획득할 수 있다. 제1 스위치(121)는 스위치 제어 정보를 기초로 제1 스위치(121)의 역할과 INT 프로그램을 설정할 수 있다. 예를 들어, 제1 스위치(121)는 P4에 기반한 프로그램을 사용하는 소스 스위치로 제1 스위치(121)를 설정할 수 있다.
또한, 제1 스위치(121)는 데이터 패킷들을 복수의 출발지들(예를 들어, 단말 등)로부터 수신할 수 있다. 데이터 패킷들은 각각 전송 계층 헤더 및 페이로드를 포함할 수 있다. 전송 계층 헤더는 데이터 패킷들 각각의 전송 정보를 포함할 수 있다. 전송 정보는 전송 계층 프로토콜, 출발 포트, 도착 포트 및 TCP 플래그(TCP flags)를 포함할 수 있다. 페이로드는 각각의 데이터 패킷들을 통해 전송하고자 하는 데이터들을 포함할 수 있다.
제1 스위치(121)는 데이터 패킷들을 기초로 감지 요소들을 선택할 수 있다. 감지 요소는 플로우 이상 여부 감지를 위해 필요한 요소들일 수 있다. 여기에서 플로우는 미리 설정한 시간 내에 같은 출발지와 목적지를 갖는 데이터 패킷들의 집합을 의미할 수 있다. 플로우에 포함된 데이터 패킷들은 동일한 경로를 통해 목적지로 전송될 수 있다.
제1 스위치(121)는 감지 요소들을 획득하기 위한 INT 정보를 결정할 수 있다. INT 정보는 타임 스탬프(time stamp), 홉 지연 시간(Hop latency), 플로우가 스위치 인출 포트에 머문 시간, 패킷 종단 지연시간(Flow latency), 스위치 인입 포트에 머문 시간, 플로우의 경로 상에 있던 포트들의 평균 사용률 및 플로우의 경로 상에 있던 스위치들 각각의 대기열의 사용률일 수 있다. 제1 스위치(121)는 INT 정보의 종류를 지시하는 지시자를 생성할 수 있다.
제1 스위치(121)는 지시자를 포함하는 INT 헤더를 생성할 수 있다. 제1 스위치(121)는 데이터 패킷들 각각에 INT 헤더를 삽입할 수 있다. 제1 스위치(121)는 INT 헤더가 삽입된 데이터 패킷들을 제2 스위치(122)에 전송할 수 있다.
제2 스위치(122)는 INT 헤더가 삽입된 데이터 패킷들을 제1 스위치(121)로부터 수신할 수 있다. 제2 스위치(122)는 데이터 패킷들 각각에 INT 헤더가 삽입되어 있는지 확인할 수 있다. 데이터 패킷들 각각에 INT 헤더가 삽입되어 있는 경우, 제2 스위치(122)는 INT 헤더로부터 INT 정보의 종류를 지시하는 지시자를 획득할 수 있다. 제2 스위치(122)는 지시자가 지시하는 INT 정보를 획득할 수 있다. 제2 스위치(122)는 획득한 INT 정보를 데이터 패킷들 각각의 INT 헤더에 삽입할 수 있다. 제2 스위치(122)는 INT 정보를 포함하는 데이터 패킷들을 제3 스위치(123)에 전송할 수 있다.
제3 스위치(123)는 INT 정보를 포함하는 데이터 패킷들을 제2 스위치(122)로부터 수신할 수 있다. 제3 스위치(123)는 데이터 패킷들 각각으로부터 INT 헤더를 추출할 수 있다. 제3 스위치(123)는 INT 헤더로부터 INT 정보를 획득할 수 있다. 여기에서, INT 정보는 INT 헤더를 포함하는 데이터 패킷에 대한 INT 정보일 수 있다. 한편, 데이터 패킷들 각각의 INT 헤더는 제거될 수 있다.
또한, 제3 스위치(123)는 데이터 패킷들 각각에 포함된 전송 계층 헤더로부터 전송 계층 정보를 획득할 수 있다. 제3 스위치(123)는 전송 계층 정보 및 INT 정보를 포함하는 네트워크 상태 메시지를 생성할 수 있다. 제3 스위치(123)는 각각의 데이터 패킷들마다 네트워크 상태 메시지를 생성할 수 있다. 제3 스위치(123)는 네트워크 상태 메시지들을 관리부(112)에 전송할 수 있다.
관리부(112)는 네트워크 상태 메시지들을 제3 스위치(123)로부터 수신할 수 있다. 관리부(112)는 네트워크 상태 메시지들 각각으로부터 데이터 패킷들 각각의 전송 계층 정보 및 INT 정보를 획득할 수 있다.
관리부(112)는 INT 정보를 기초로 플로우에 대한 정보를 획득할 수 있다. 예를 들어, 관리부는 INT 정보에 포함된 타임 스탬프로부터 제1 스위치가 각각의 데이터 패킷들을 수신한 시간을 획득할 수 있다. 관리부(112)는 데이터 패킷들을 수신한 시간을 기초로 플로우를 획득할 수 있다. 관리부(112)는 데이터 패킷들을 수신한 시간을 미리 설정한 시간 단위에 따라 분류하여 플로우를 획득할 수 있다.
관리부(112)는 플로우에 포함된 데이터 패킷들의 전송 계층 정보 및 INT 정보의 평균을 연산하는 방식으로 피쳐 벡터의 성분들을 획득할 수 있다. 관리부(112)는 피쳐 벡터 들의 성분들을 기초로 피쳐 벡터를 생성할 수 있다. 관리부(112)는 피쳐 벡터가 포함된 피쳐 벡터 메시지을 생성할 수 있다. 관리부(112)는 피쳐 벡터 메시지를 서버(130)에 전송할 수 있다.
서버(130)는 플로우의 이상 여부를 감지하기 위한 인공 신경망을 포함할 수 있다. 여기에서 인공 신경망은 순환 신경망(RNN, Recurrent Neural Network)일 수 있다. 순환 신경망은 복수의 뉴런들을 포함할 수 있고, 복수의 뉴런들의 활성 함수는 ReLu일 수 있다. 서버(130)는 플로우의 이상 여부 감지를 위하여 인공 신경망을 미리 학습할 수 있다. 인공 신경망에 포함된 인공 뉴런 수, 에폭(Epoch), 배치 크기(Batch size), 학습률(Learning rate) 등의 요소는 임의의 값일 수 있다. 서버(130)는 다음과 같은 방법으로 인공 신경망을 학습할 수 있다.
도 3은 본 발명의 일 실시예에 따른 인공 신경망의 학습 방법을 설명하기 위한 개념도이다.
도 3을 참조하면, 인공신경망은 정상 플로우 및 비정상 플로우를 기초로 학습 데이터를 생성할 수 있다. 정상 플로우는 트래픽 상태가 정상인 플로우일 수 있고, 비정상 플로우는 트래픽 상태가 비정상인 플로우일 수 있다. 비정상 플로우는 네트워크에 대한 악의적인 공격이 있는 경우 수집한 플로우일 수 있다.
인공 신경망은 정상 플로우에 대한 점수는 1점으로 비정상 플로우에 대한 점수는 0점으로 학습할 수 있고, 점수들을 저장할 수 있다.
인공 신경망은 가중치 벡터
Figure pat00001
Figure pat00002
를 결정하기 위하여 학습을 수행할 수 있다. 여기에서
Figure pat00003
Figure pat00004
일 수 있고,
Figure pat00005
Figure pat00006
행렬일 수 있다,
Figure pat00007
은 입력 특성 수 일 수 있고,
Figure pat00008
는 뉴런들의 개수일 수 있다.
인공 신경망에는 각각의 감지 요소들에 대한 샘플에 대한 미니 배치가 단계별로 입력될 수 있다. 여기에서 감지 요소들에 대한 샘플에 대한 미니 배치는
Figure pat00009
행렬 형태일 수 있다. m은 미니 배치 크기일 수 있다.
먼저 인공 신경망에는
Figure pat00010
이 입력될 수 있다.
Figure pat00011
은 감지 요소들의 샘플에 대한 1 단계 미니 배치일 수 있다. 인공 신경망은
Figure pat00012
및 1 단계 가중치 벡터
Figure pat00013
을 기초로 1 단계 출력
Figure pat00014
을 연산할 수 있다. 인공 신경망에는
Figure pat00015
가 입력될 수 있다.
Figure pat00016
는 감지 요소들의 샘플에 대한 2 단계 미니 배치일 수 있다. 인공 신경망은 1 단계 출력
Figure pat00017
및 2 단계 가중치 벡터
Figure pat00018
를 기초로 2 단계 출력
Figure pat00019
를 연산할 수 있다. 인공 신경망의 연산을 수학식으로 나타내면 다음 수학식 1과 같을 수 있다.
Figure pat00020
수학식 1에서
Figure pat00021
는 t 단계에서 순환 신경망의 출력일 수 있다 수학식 1에서
Figure pat00022
는 t 단계에서 순환 신경망의 출력일 수 있다.
Figure pat00023
Figure pat00024
의 크기에 관한 벡터일 수 있다.
Figure pat00025
Figure pat00026
행렬 형태일 수 있다.
Figure pat00027
의 값은 0 내지 1 사이일 수 있다.
Figure pat00028
는 t 단계에서 순환 신경망의 입력일 수 있다.
Figure pat00029
는 t 단계 입력인
Figure pat00030
에 대한 가중치 행렬일 수 있다.
Figure pat00031
는 t-1 단계의 출력인
Figure pat00032
의 가중치 행렬일 수 있다. B는
Figure pat00033
의 뉴런들의 편항에 대한 정보를 나타낸 행렬일 수 있다.
Figure pat00034
는 인공 신경망의 학습률일 수 있다.
인공 신경망은 수학식 1에 따라 연산을 반복 수행하여 가중치 행렬
Figure pat00035
Figure pat00036
를 결정할 수 있다. 즉, 인공 신경망은
Figure pat00037
가 학습 데이터에 저장 되어 있는 이상 상태 점수(정상 플로우인 경우 1점, 비정상 플로우인 경우 0 점)와 오차를 줄이는 방식으로 학습을 수행할 수 있다. 즉, 인공 신경망은
Figure pat00038
의 벡터 성분 가운데
Figure pat00039
번째 성분과 이상 상태 점수와의 차이를 줄이는 방식으로 학습을 수행할 수 있다.
다시 도 1을 참조하면, 서버(130)는 피쳐 벡터 메시지를 관리부(112)로부터 수신할 수 있다. 서버(130)는 피쳐 벡터 메시지로부터 피쳐 벡터를 획득할 수 잇다.
서버(130)는 피쳐 벡터를 기초로 플로우의 이상 여부를 감지할 수 있다. 서버(130)는 인공 신경망에 피쳐 벡터를 입력하여 플로우의 이상 상태 점수를 산출할 수 있다. 서버(130)는 결정된 이상 상태 점수와 미리 설정한 임계값을 비교하여, 플로우의 이상 여부를 감지할 수 있다.
서버(130)는 플로우의 이상 여부를 기초로 플로우의 처리 방법을 결정할 수 있다. 플로우가 이상 상태인 것으로 감지된 경우, 서버(130)는 제1 스위치(121) 내지 제3 스위치(123)가 해당 플로우에 포함된 데이터 패킷들을 차단할 것을 결정하거나, 제1 스위치(121) 내지 제3 스위치(123)가 해당 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기할 것을 결정할 수 있다. 플로우가 정상 상태인 것으로 감지된 경우, 서버(130)는 제1 스위치(121) 내지 제3 스위치(123)가 플로우에 해당하는 데이터 패킷들을 수신할 것을 결정할 수 있다.
서버(130)는 플로우의 처리 방법에 대한 정보가 포함된 제어 메시지를 생성할 수 있다. 서버(130)는 제어 메시지를 제어부(111)에 전송할 수 있다. 제어부(111)는 제어 메시지를 서버(130)로부터 수신할 수 있다. 제어부(111)는 제어 메시지로부터 제1 스위치 내지 제3 스위치의 제1 스위치(111) 내지 제3 스위치(113)의 플로우 처리 방법에 대한 정보를 획득할 수 있다.
제어부(111)는 제1 스위치(121) 내지 제3 스위치(123)의 플로우 처리 방법에 따라, 제1 스위치(121) 내지 제3 스위치(123)의 동작 방법을 결정할 수 있다. 제어부(111)는 제1 스위치(121) 내지 제3 스위치(123)의 동작 방법에 관한 정보를 포함하는 설정 메시지를 생성할 수 있다. 제어부(111)는 설정 메시지를 제1 스위치(121) 내지 제3 스위치(123)에 전송할 수 있다.
제1 스위치(121) 내지 제3 스위치(123)는 각각 설정 메시지를 제어부(111)로부터 수신할 수 있다. 제1 스위치(121) 내지 제3 스위치(123)는 설정 메시지를 통해 명령들을 획득할 수 있다. 제1 스위치(121) 내지 제3 스위치(123)는 명령들을 기초로 플로우의 제어를 수행할 수 있다.
예를 들어 제1 스위치(121) 내지 제3 스위치(123)는 제어부(111)의 명령에 따라 플로우에 해당하는 데이터 패킷들을 차단하거나 데이터 패킷들 가운데 일부를 폐기할 수 있고, 플로우에 해당하는 데이터 패킷들을 수신할 수 있다.
도 4는 본 발명의 일 실시예에 따른 이상 감지 방법을 도시한 순서도이다. 도 4는 도 4a 및 도 4b를 포함할 수 있다. 도 4를 참조하면, SDN 컨트롤러, 제1 스위치, 제2 스위치, 제3 스위치 및 서버는 도 1의 SDN 컨트롤러(110), 제1 스위치(121), 제2 스위치(122), 제3 스위치(123) 및 서버(130)와 동일하거나 유사하게 구성될 수 있다.
도 4를 참조하면 제어부는 스위치 메시지를 생성할 수 있다(S405). 제어부는 제1 스위치 내지 제3 스위치의 역할을 결정할 수 있고, 제1 스위치 내지 제3 스위치가 사용할 INT 프로그램을 결정할 수 있다. 제어부는 1 스위치를 소스 스위치로, 제2 스위치를 트랜짓 스위치로, 제3 스위치를 싱크 스위치로 동작하도록 결정할 수 있다. 또한 제어부는 스위치들이 P4에 기반한 INT 프로그램을 사용하도록 결정할 수 있다.
제어부는 제1 스위치 내지 제3 스위치의 역할에 대한 정보 및 INT 프로그램에 대한 정보를 생성할 수 있다. 제어부는 제1 스위치 내지 제3 스위치의 역할에 대한 정보 및 INT 프로그램에 대한 정보가 포함된 스위치 메시지를 생성할 수 있다. 제어부는 스위치 메시지를 제1 스위치 내지 제3 스위치 각각에 전송할 수 있다(S410).
제1 스위치 내지 제3 스위치 각각은 제어부로부터 스위치 메시지를 수신할 수 있다(S410). 제1 스위치 내지 제3 스위치 각각은 스위치 메시지로부터 스위치들 각각의 역할 및 INT 프로그램을 획득할 수 있다. 제1 스위치 내지 제3 스위치는 스위치들 각각의 역할 및 INT 프로그램을 기초로 제1 스위치 내지 제3 스위치를 설정할 수 있다.
제1 스위치는 P4에 기반한 프로그램을 사용하는 소스 스위치로 제1 스위치를 설정할 수 있고, 제2 스위치는 P4에 기반한 프로그램을 사용하는 트랜짓 스위치로 제2 스위치를 설정할 수 있으며, 제3 스위치는 P4에 기반한 프로그램을 사용하는 싱크 스위치로 설정할 수 있다.
제1 스위치는 복수의 출발지들로부터 데이터 패킷들을 수신할 수 있다(S420). 데이터 패킷들은 전송 계층 헤더 및 페이로드를 포함할 수 있다. 제1 스위치는 데이터 패킷들 각각에 INT 헤더를 삽입할 수 있다(S425). 제1 스위치는 데이터 패킷들을 기초로 감지 요소들을 선택할 수 있다. 제1 스위치는 감지 요소들을 획득하기 위한 INT 정보를 결정할 수 있다. 제1 스위치는 INT 정보의 종류를 지시하는 지시자를 생성할 수 있다. 제1 스위치는 INT 정보의 종류를 지시하는 지시자를 포함하는 INT 헤더를 생성할 수 있다. 제1 스위치는 INT 헤더를 각각의 데이터 패킷들에 삽입할 수 있다. 제1 스위치는 INT 헤더가 삽입된 데이터 패킷들을 제2 스위치에 전송할 수 있다(S430).
제2 스위치는 INT 헤더가 삽입된 데이터 패킷들을 제1 스위치로부터 수신할 수 있다(S430). 제2 스위치는 데이터 패킷들에 INT 헤더가 삽입되어 있는지 확인할 수 있다. 데이터 패킷들에 INT 헤더가 삽입되어 있는 경우, 제2 스위치는 INT 정보를 데이터 패킷들에 삽입할 수 있다(S435).
제2 스위치는 INT 헤더로부터 INT 정보의 종류를 지시하는 지시자를 획득할 수 있다. 제2 스위치는 지시자가 지시하는 INT 정보를 획득할 수 있다. 제2 스위치는 INT 정보를 각각의 데이터 패킷들의 INT 헤더에 삽입할 수 있다. 제2 스위치는 INT 정보를 포함하는 데이터 패킷들을 제3 스위치에 전송할 수 있다(S440).
제3 스위치는 INT 정보를 포함하는 데이터 패킷들을 제2 스위치로부터 수신할 수 있다(S440). 제3 스위치는 네트워크 상태 메시지들을 생성할 수 있다(S445). 제3 스위치는 데이터 패킷들에 포함된 INT 헤더를 추출할 수 있다. 제3 스위치는 INT 헤더로부터 INT 정보를 획득할 수 있다. 제3 스위치는 데이터 패킷들에 포함된 전송 계층 헤더로부터 전송 정보를 획득할 수 있다. 제3 스위치는 INT 정보 및 전송 계층 정보를 포함하는 네트워크 상태 메시지를 생성할 수 있다. 제3 스위치는 각각의 데이터 패킷들마다 네트워크 상태 메시지를 생성할 수 있다. 제3 스위치는 네트워크 상태 메시지들을 관리부에 전송할 수 있다(S450).
관리부는 네트워크 상태 메시지들을 제3 스위치로부터 수신할 수 있다(S455). 관리부는 네트워크 상태 메시지들을 기초로 피쳐 벡터 메시지를 생성할 수 있다(S460). 관리부는 네트워크 상태 메시지들 각각으로부터 INT 정보 및 전송 계층 정보를 획득할 수 있다. 관리부는 INT 정보 및 계층 정보를 기초로 피쳐 벡터를 생성할 수 있다. 관리부는 플로우별 INT 정보 및 전송 계층 정보를 평균의 연산을 수행하여, 피쳐 벡터의 성분들을 획득할 수 있다. 피쳐 벡터는 11개의 성분들을 포함할 수 있다. 이 경우, 피쳐 벡터는 1Х11 행렬일 수 있다. 관리부가 획득한 피쳐 벡터 성분들을 하나의 표로 나타내면 다음과 같을 수 있다.
Figure pat00040
표 1에서, 인덱스는 피쳐 벡터 성분의 순서를 나타낼 수 있고, 피쳐는 피쳐 벡터 성분을 생성하기 위한 정보를 나타낼 수 있다. 소스는 각각의 피쳐 벡터 성분을 생성하기 위한 정보를 포함하는 헤더를 나타낼 수 있다. 관리부는 전송 계층 헤더에 포함된 전송 정보로부터 4개의 피쳐 벡터 성분을 획득할 수 있고, INT 정보로부터 7개의 피쳐 벡터 성분을 획득할 수 있다.
관리부는 전송 정보로부터 제1 감지 요소 성분 내지 제4 피쳐 벡터 성분을 획득할 수 있다. 제1 피쳐 벡터 성분은 전송 계층 프로토콜에 관한 성분일 수 있다. 전송 계층 프로토콜이 TCP이면 1, UDP 이면 2를 제1 피쳐 벡터 성분으로 획득할 수 있다.
제2 피쳐 벡터 성분 및 제3 피쳐 벡터 성분은 각각 출발 포트와 도착 포트에 대한 성분일 수 있다. 제4 피쳐 벡터 성분은 TCP 플래그에 관한 성분일 수 있다. 전송 정보가 TCP 플래그에 대한 정보를 포함하는 경우, TCP 플래그를 10진수로 변환 시키는 방식으로 제4 피쳐 벡터 성분을 획득할 수 있다. 예를 들어, 데이터 패킷이 ACK 플래그와 SYN 플래그를 포함하는 경우, 전송 정보는 TCP 플래그로 010010를 포함할 수 있다. 관리부는 010010를 십진수인 18로 변환할 수 있고, 제4 피쳐 벡터 성분으로 18을 획득할 수 있다.
관리부는 INT 정보로부터 제5 피쳐 벡터 성분 내지 제11 피쳐 벡터 성분을 획득할 수 있다. 제5 피쳐 벡터 성분은 플로우의 총 지속 시간에 대한 성분일 수 있다. 예를 들어, 관리부는 플로우에 포함된 마지막 데이터 패킷의 총 전송 시간(출발지로부터 목적지까지 소요된 시간)으로부터 첫번째 데이터 패킷의 총 전송 시간을 빼는 방식으로 제5 피쳐 벡터 성분을 획득할 수 있다.
제6 피쳐 벡터 성분은 스위치 홉 지연 시간에 대한 성분일 수 있다. 예를 들어, 관리부는 데이터 패킷들의 홉 지연 시간(출발지와 목적지 사이에 포함된 홉에서 데이터 패킷이 지연된 시간의 총합)을 평균 내어 저장하는 방식으로 제6 피쳐 벡터 성분을 획득할 수 있다.
제7 피쳐 벡터 성분은 플로우에 포함된 데이터 패킷들이 스위치 인출 포트에 머문 시간에 대한 성분일 수 있다. 예를 들어, 관리부는 데이터 패킷들 각각의 인출 포트에 머문 시간을 평균 내어 저장하는 방식으로 제7 피쳐 벡터 성분을 획득할 수 있다.
제8 피쳐 벡터 성분은 패킷 종단 지연 시간에 대한 성분일 수 있다. 예를 들어, 관리부는 각각의 데이터 패킷들이 출발지로부터 출발한 후 목적지에 도착할 때까지의 시간을 측정하여 평균 내는 방식으로 제 8 피쳐 벡터 성분을 획득할 수 있다.
제9 피쳐 벡터 성분은 플로우에 포함된 데이터 패킷들이 스위치 인입 포트에 머문 시간에 대한 성분일 수 있다. 관리부는 데이터 패킷들이 스위치 인입 포트에 머문 시간을 평균 내어 저장하는 방식으로 제9 피쳐 벡터 성분을 획득할 수 있다.
제10 피쳐 벡터 성분은 플로우에 포함된 데이터 패킷들의 경로 상에 있던 포트들의 평균 사용률일 수 있다. 관리부는 데이터 패킷들의 경로 상에 있던 포트들의 사용률을 평균 내어 저장하는 방식으로 제10 피쳐 벡터 성분을 획득할 수 있다.
제11 피쳐 벡터 성분은 플로우에 포함된 데이터 패킷들의 경로 상에 있던 스위치의 각각의 대기열들의 사용률일 수 있다. 관리부는 각각의 대기열들의 사용률을 획득하는 방식으로 제11 피쳐 벡터 성분을 획득할 수 있다.
관리부는 피쳐 벡터를 포함하는 피쳐 벡터 메시지를 생성할 수 있다. 관리부는 피쳐 벡터 메시지를 서버에 전송할 수 있다(S460). 서버는 피쳐 벡터 메시지를 수신할 수 있다(S465). 서버는 피쳐 벡터 메시지를 통해 피쳐 벡터를 획득할 수 있다. 서버는 피쳐 벡터를 기초로 제어 메시지를 생성할 수 있다(S465).
서버는 피쳐 벡터를 기초로 플로우의 이상 여부를 감지할 수 있고, 감지한 결과를 기초로 플로우 처리 방법을 결정할 수 있다. 서버는 플로우 처리 방법을 포함하는 플로우 처리 정보를 생성할 수 있다.
서버는 미리 학습된 인공 신경망을 사용하여 플로우의 이상 여부를 감지할 수 있다. 서버는 피쳐 벡터에 포함된 각각의 피쳐 벡터 성분들을 인공 신경망에 입력할 수 있고, 각각의 피쳐 벡터 성분들의 점수를 획득할 수 있다. 서버는 획득한 점수와 미리 설정된 임계값들을 비교하여 플로우의 이상 여부를 감지할 수 있다. 서버는 플로우를 정상 상태, 경고 상태 및 위험 상태 가운데 어느 하나로 판단하는 방식으로 플로우의 이상 여부를 감지할 수 있다.
예를 들어, 서버는 인공 신경망에 각각의 피쳐 벡터 성분을 입력하여, 0 내지 1 값에 해당하는 각각의 피쳐 벡터 성분 점수를 획득할 수 있다. 서버는 각각의 피쳐 벡터 성분 점수가 제1 임계 값을 초과하면 플로우가 정상 상태인 것으로 판단할 수 있고, 제2 임계 값 이상이며, 제1 임계 값 이하인 경우에는 경고 상태로 판단될 수 있고, 제2 임계 값 미만인 경우에는 위험 상태로 판단할 수 있다. 제1 설정 값은 0.9일 수 있고, 제2 설정 값은 0.8일 수 있다.
서버는 플로우의 이상 여부에 따라, 제1 스위치 내지 제3 스위치의 플로우 처리 방법을 결정할 수 있다. 서버는 플로우가 정상 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치가 플로우에 해당하는 데이터 패킷들을 수신할 것을 결정할 수 있다. 서버는 플로우가 경고 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치가 제어부가 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하거나, 플로우에 해당하는 데이터 패킷들을 차단하도록 결정할 수 있다. 또한, 서버는 플로우가 위험 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치가 플로우에 해당하는 데이터 패킷들을 차단하도록 결정할 수 있다. 서버는 플로우의 처리 방법에 대한 정보를 포함하는 제어 메시지를 생성할 수 있다. 서버는 제어 메시지를 제어부에 전송할 수 있다(S470).
제어부는 제어 메시지를 서버로부터 수신할 수 있다(S470). 제어부는 제어 메시지로부터 제1 스위치 내지 제3 스위치의 플로우 처리 방법에 대한 정보를 획득할 수 있다. 제어부는 제1 스위치 내지 제3 스위치의 플로우 처리 방법을 기초로 설정 메시지를 생성할 수 있다(S475).
즉, 제어부는 서버가 결정한 플로우 처리 방법에 따라, 제1 스위치 내지 제3 스위치의 동작 방법을 결정할 수 있다. 제어부는 제1 스위치 내지 제3 스위치의 동작 방법에 대한 정보를 포함하는 설정 메시지를 생성할 수 있다. 제어부는 설정 메시지를 제1 스위치 내지 제3 스위치에 전송할 수 있다(S480).
제1 스위치 내지 제3 스위치는 제어부로부터 설정 메시지를 수신할 수 있다(S485). 제1 스위치 내지 제3 스위치는 설정 메시지를 기초로 각각의 스위치들의 동작 방법에 대한 정보를 획득할 수 있다. 제1 스위치 내지 제3 스위치는 각각의 동작 방법에 따라, 플로우의 제어를 수행할 수 있다(S485).
예를 들어, 서버가 플로우를 위험 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치는 해당 플로우에 포함되는 데이터 패킷을 수신할 수 있다. 서버가 플로우를 경고 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치는 제어부가 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하거나, 플로우에 해당하는 데이터 패킷들을 차단할 수 있다. 서버가 플로우를 위험 상태인 것으로 판단한 경우, 제1 스위치 내지 제3 스위치는 해당 플로우에 포함되는 데이터 패킷을 차단할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.

Claims (14)

  1. 출발지와 목적지가 동일한 복수의 데이터 패킷들을 포함하는 플로우를 수신하는 단계;
    상기 플로우의 이상 감지를 위해 필요한 감지 요소들을 결정하는 단계;
    상기 감지 요소들에 대한 벡터인 피쳐 벡터를 획득하는 데 필요한 정보를 획득하는 단계;
    상기 획득한 정보를 기초로 상기 피쳐 벡터를 획득하는 단계;
    상기 획득한 피쳐 벡터를 기초로 상기 플로우의 이상 여부를 감지하는 단계; 및
    상기 플로우의 이상 여부 감지 결과를 기초로 상기 플로우를 처리하는 단계를 포함하는 네트워크의 이상 감지 방법.
  2. 청구항 1에 있어서,
    상기 피쳐 벡터의 성분은,
    전송 계층 프로토콜, 출발 포트, 도착 포트, TCP 플래그, 플로우 지속 시간, 상기 플로우의 총 지속 시간, 스위치 홉 지연 시간, 상기 플로우가 스위치 인출 포트에 머문 시간, 상기 플로우의 종단 지연 시간, 상기 플로우가 스위치 인입 포트에 머문 시간의 평균, 상기 플로우의 경로 상의 평균 포트 사용량 및 상기 경로 상의 대기열의 평균 사용량 중 하나 이상을 기초로 획득되는, 네트워크의 이상 감지 방법.
  3. 청구항 1에 있어서,
    상기 피쳐 벡터를 획득하는 단계는,
    상기 피쳐 벡터 성분들 중 일부는 전송 정보로부터 획득하고, 나머지는 INT(IN-BAND NETWORK TELEMETRY) 정보로부터 획득하는 네트워크의 이상 감지 방법.
  4. 청구항 1에 있어서,
    상기 플로우의 이상 여부를 감지하는 단계는,
    미리 학습된 인공 신경망을 통해 수행되는, 네트워크의 이상 감지 방법.
  5. 청구항 4에 있어서,
    상기 플로우의 이상 여부를 감지하는 단계는,
    상기 인공 신경망이 상기 피쳐 벡터를 기초로 상기 플로우에 대한 점수를 산정하는 단계; 및
    상기 점수를 제1 설정 값 및 제2 설정 값과 비교하는 단계를 포함하는 네트워크의 이상 감지 방법.
  6. 청구항 5에 있어서,
    상기 점수를 제1 설정 값 및 제2 설정 값과 비교하는 단계는;
    상기 점수가 상기 제1 설정 값 미만이면 상기 플로우를 위험 상태로 판단하고, 상기 점수가 상기 제1 설정 값 이상이고 상기 제2 설정 값 이하인 경우 상기 플로우를 경고 상태로 판단하는 단계를 포함하는 네트워크의 이상 감지 방법.
  7. 청구항 6에 있어서,
    상기 플로우를 처리하는 단계는,
    상기 플로우가 위험 상태인 경우, 상기 플로우에 해당하는 데이터 패킷들을 차단하는 단계; 및
    상기 플로우가 경고 상태인 경우 상기 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하는 단계를 포함하는 네트워크의 이상 감지 방법.
  8. 프로세서(processor);
    복수의 뉴런들을 포함하는 인공 신경망; 및
    상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함하며,
    상기 하나 이상의 명령들은,
    스위치부로부터 INT 정보(In-band Network Telemetry)에 대한 벡터인 피쳐 벡터가 포함된 피쳐 데이터 패킷을 수신하고;
    상기 피쳐 벡터를 기초로 플로우의 이상 여부를 감지하고; 그리고
    상기 이상 여부 감지 결과를 기초로 상기 플로우의 처리 방법을 결정하도록 수행 되는 네트워크의 이상 감지 장치.
  9. 청구항 8에 있어서,
    상기 피쳐 벡터의 성분은,
    전송 계층 프로토콜, 출발 포트, 도착 포트, TCP 플래그, 플로우 지속 시간, 상기 플로우의 총 지속 시간, 스위치 홉 지연 시간, 상기 플로우가 스위치 인출 포트에 머문 시간, 상기 플로우의 종단 지연 시간, 상기 플로우가 스위치 인입 포트에 머문 시간의 평균, 상기 플로우의 경로 상의 평균 포트 사용량 및 상기 경로 상의 대기열의 평균 사용량 중 하나 이상을 기초로 획득되는, 네트워크의 이상 감지 장치.
  10. 청구항 8에 있어서,
    상기 인공 신경망은 미리 학습된 네트워크의 이상 감지 장치.
  11. 청구항 8에 있어서,
    상기 인공 신경망은 순환 신경망(Recurrent Neural Network)인 네트워크의 이상 감지 장치.
  12. 청구항 8에 있어서,
    상기 플로우의 이상 여부를 감지하는 경우,
    상기 하나 이상의 명령들은,
    상기 인공 신경망이 상기 피쳐 벡터를 기초로 상기 플로우에 대한 점수를 산정하고; 그리고,
    상기 점수를 제1 설정 값 및 제2 설정 값과 비교하도록 수행되는, 네트워크의 이상 감지 장치.
  13. 청구항 12에 있어서,
    상기 하나 이상의 명령들은,
    상기 점수가 상기 제1 설정 값 미만이면, 상기 플로우를 위험 상태로 판단하고; 그리고,
    상기 점수가 상기 제1 설정 값 이상이고, 상기 제2 설정 값 이하인 경우, 상기 플로우를 경고 상태로 판단하도록 수행되는, 네트워크의 이상 감지 장치.
  14. 청구항 13에 있어서,
    상기 플로우의 처리 방법을 결정하는 경우,
    상기 하나 이상의 명령들은
    상기 플로우가 위험 상태인 경우, 상기 플로우에 해당하는 데이터 패킷들을 차단하고; 그리고,
    상기 플로우가 경고 상태인 경우, 상기 플로우에 포함된 데이터 패킷들 가운데 일부를 폐기하도록 수행되는, 네트워크의 이상 감지 장치.
KR1020190147898A 2019-11-18 2019-11-18 네트워크의 이상 감지 방법 및 장치 KR20210060180A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190147898A KR20210060180A (ko) 2019-11-18 2019-11-18 네트워크의 이상 감지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190147898A KR20210060180A (ko) 2019-11-18 2019-11-18 네트워크의 이상 감지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210060180A true KR20210060180A (ko) 2021-05-26

Family

ID=76137857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147898A KR20210060180A (ko) 2019-11-18 2019-11-18 네트워크의 이상 감지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210060180A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422213A (zh) * 2021-12-31 2022-04-29 南京邮电大学 基于int的异常流量检测方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422213A (zh) * 2021-12-31 2022-04-29 南京邮电大学 基于int的异常流量检测方法和装置
CN114422213B (zh) * 2021-12-31 2023-07-25 南京邮电大学 基于int的异常流量检测方法和装置

Similar Documents

Publication Publication Date Title
CN109617931B (zh) 一种SDN控制器的DDoS攻击防御方法及防御系统
US20080104702A1 (en) Network-based internet worm detection apparatus and method using vulnerability analysis and attack modeling
US9729442B1 (en) Method of detecting large flows within a switch fabric of an SDN switch
EP4024791A1 (en) Data stream type identification method and related devices
US9888033B1 (en) Methods and apparatus for detecting and/or dealing with denial of service attacks
US20220368606A1 (en) Fault Detection Model Training Method, Apparatus, and System
CN112565229A (zh) 隐蔽通道检测方法及装置
US9503372B1 (en) SDN protocol message handling within a modular and partitioned SDN switch
CN105897609B (zh) 一种监管数据流传输的方法和装置
CN109981596B (zh) 一种主机外联检测方法及装置
KR20210060180A (ko) 네트워크의 이상 감지 방법 및 장치
CN109450941B (zh) 一种抗DDoS的SDN控制器消息调度方法
US9998374B1 (en) Method of handling SDN protocol messages in a modular and partitioned SDN switch
US7843829B1 (en) Detection and recovery from control plane congestion and faults
CN113556364B (zh) 一种基于DPDK的DDoS实时防御系统
US11902310B2 (en) Detection device and detection method
KR20200014139A (ko) 이종 사물인터넷(H-IoT) 네트워크 상에서 분산 서비스 거부 공격으로부터의 방어방법 및 그 시스템
CN113179171B (zh) 故障检测方法、装置及系统
CN116743406A (zh) 一种网络安全预警方法、装置、存储介质和计算机设备
KR20210060187A (ko) 네트워크 제어 방법 및 장치
WO2014006920A1 (en) Communication system, control apparatus, communication method, and program
JP6866271B2 (ja) 異常検知装置、異常検知方法、及びプログラム
Chonka et al. Multi-core defense system (MSDS) for protecting computer infrastructure against DDoS attacks
JP7273942B1 (ja) ネットワーク行為特徴を学習するネットワーク機器、処理システムおよび方法
US11637764B2 (en) Abnormality detection method and a non-transitory computer-readable storage medium for storing abnormality detection program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application