KR102525593B1 - 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법 - Google Patents

네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법 Download PDF

Info

Publication number
KR102525593B1
KR102525593B1 KR1020210057656A KR20210057656A KR102525593B1 KR 102525593 B1 KR102525593 B1 KR 102525593B1 KR 1020210057656 A KR1020210057656 A KR 1020210057656A KR 20210057656 A KR20210057656 A KR 20210057656A KR 102525593 B1 KR102525593 B1 KR 102525593B1
Authority
KR
South Korea
Prior art keywords
packet flow
embedding
packet
unit
model
Prior art date
Application number
KR1020210057656A
Other languages
English (en)
Other versions
KR20220150545A (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 KR1020210057656A priority Critical patent/KR102525593B1/ko
Publication of KR20220150545A publication Critical patent/KR20220150545A/ko
Application granted granted Critical
Publication of KR102525593B1 publication Critical patent/KR102525593B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법이 개시될 수 있다. 일 실시예에 따른 네트워크 공격 탐지 시스템은 네트워크 장비를 통해 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하고 패킷 플로우에 대해 전처리를 수행하는 패킷 처리부; 패킷 처리부에 연결되고, 패킷 처리부에 의해 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 기계학습 모델부; 및 기계학습 모델부에 연결되고, 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 군집화 모델부를 포함할 수 있다.

Description

네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법{NETWORK ATTACK DETECTION SYSTEM AND NETWORK ATTACK DETECTION METHOD}
본 발명은 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법에 관한 것이다.
패킷 플로우를 기반으로 한 공격 원천 탐지 기술은 패킷 플로우를 통해 해당 플로우가 어떤 사용자 그룹에 속하는지를 판별한다. 이러한 공격 탐지 기술은 효과적인 판별을 위해 패킷 플로우의 특징을 잘 표현할 수 있는 임베딩을 찾는 기술과 찾은 임베딩을 군집화하는 기술이 필요하다.
종래에는 단순 패킷에 대해 단어 유사도 기반 임베딩 모델인 word2vec 또는 차원 축소 기법 중 하나인 주성분 분석(principal component analysis, PCA) 등을 적용하여 임베딩을 생성하고 이를 네트워크 공격 탐지에 사용하고 있다.
예를 들면, 종래에는 심층 신경망의 한 종류인 순환 신경망을 활용하여 패킷의 임베딩을 학습하고, 학습된 임베딩을 활용하여 다음 패킷의 특성을 예측하며, 예측된 패킷의 특성과 제2 입력 패킷의 특성 간의 유사도에 기초하여 위험 여부를 판단하는 제1 위험요소 결정부와 가상머신으로 실제 패킷의 위험 여부를 판단하는 제2 위험요소 결정부로 구성된 패킷 위험 요소 분석 장치와 방법을 제안하고 있다(특허문헌 1).
한편, 종래에는 주성분 분석을 기반으로 하여 패킷에서 대표 특징 필드들을 결정하고, 이에 기초하여 복수의 패킷에 대해 DBSCAN 군집화 알고리즘을 수행하여 네트워크 공격을 탐지하는 방법을 제안하고 있다(특허문헌 2).
그러나, 종래에는 임베딩 생성을 위한 학습과 생성 과정이 오래 소요되거나, 패킷 플로우에 대한 임베딩 대신 개별 패킷에 대한 임베딩만을 생성하는 문제점이 있다. 또한, 종래에는 원천 탐지를 위한 군집화 방법이 없을 뿐만 아니라, 단순히 패킷들을 합쳐 임베딩하거나 개별 패킷 임베딩만을 사용하기 때문에 패킷 플로우 군집화에 적합한 임베딩을 찾을 수 없는 문제점이 있다. 이로 인해, 단일 패킷에 대한 임베딩은 공격의 흐름에 대한 정보를 포함하고 있지 않기 때문에 패킷 플로우 자체에 대한 임베딩을 생성하는 방법에 비해 성능이 떨어지는 문제점이 있다.
한국공개특허 제10-2018-0042019호 한국공개특허 제10-2020-0068608호
본 발명은 합성곱 신경망과 순환 신경망을 결합한 모델을 기반으로 하는 임베딩 생성 기법과 유사도 기반 군집화 기술을 결합한 패킷 플로우 기반 공격 원천 탐지 기술을 제공할 수 있는 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법을 제공할 수 있다.
본 발명의 일 실시예에 따르면, 네트워크 공격 탐지 시스템이 개시될 수 있다. 일 실시예에 따른 네트워크 공격 탐지 시스템은 네트워크 장비를 통해 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하고 상기 패킷 플로우에 대해 전처리를 수행하는 패킷 처리부; 상기 패킷 처리부에 연결되고, 상기 패킷 처리부에 의해 전처리된 상기 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 기계학습 모델부; 및 상기 기계학습 모델부에 연결되고, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 군집화 모델부를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 처리부는 상기 네트워크 장비에 연결되고 상기 네트워크 장비를 통해 송수신되는 상기 패킷을 수집하는 패킷 수집부; 상기 패킷 수집부에 연결되고, 상기 패킷 수집부에 의해 수집된 상기 패킷의 헤더 필드 정보에 기초하여 상기 패킷을 1차적으로 분류하는 패킷 분류부; 상기 패킷 분류부에 연결되고, 상기 패킷 분류부에 의해 상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 패킷 플로우 분류부; 및 상기 패킷 플로우 분류부에 연결되고, 상기 패킷 플로우 분류부에 의해 상기 2차적으로 분류된 패킷 플로우에 대해 전처리를 수행하는 패킷 전처리부를 포함할 수 있다.
일 실시예에 있어서, 상기 헤더 필드 정보는 소스 아이피 주소(source IP address), 목적지 아이피 주소(destination IP address), 소스 포트 번호(source port number) 및 목적지 포트 번호(destination port number)를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 분류부는 상기 헤더 필드 정보에 기초하여 TCP(transmission control protocol) 패킷 및 UDP(user datagram protocol) 패킷을 1차적으로 분류할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우 분류부는 상기 1차적으로 분류된 패킷에 대해 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷의 송수신을 나타내는 상기 패킷 플로우별로 2차원적으로 분류할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우는 10개의 패킷으로 구성되고, 상기 패킷은 160 바이트의 길이를 가질 수 있다.
일 실시예에 있어서, 상기 패킷 플로우는 10×160의 행렬 형태를 가질 수 있다.
일 실시예에 있어서, 상기 패킷 전처리부는 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인지 여부를 판단하고, 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인 것으로 판단되면, 상기 패킷 플로우의 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하고, 상기 랜덤화 처리된 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경할 수 있다.
일 실시예에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 전처리부는 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인지 여부를 판단하고, 상기 패킷 플로우에 대해 상기 기계학습 모델을 사용하는 단계인 것으로 판단되면, 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경할 수 있다.
일 실시예에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
일 실시예에 있어서, 상기 기계학습 모델부는 상기 패킷의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 상기 기계학습 모델을 사용할 수 있다.
일 실시예에 있어서, 상기 기계학습 모델부는 상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 패킷 플로우 임베딩 모델 학습부; 및 상기 패킷 플로우 임베딩 모델 학습부에 연결되고, 상기 패킷 플로우 임베딩 모델 학습부에 의해 학습된 상기 임베딩 모델을 사용하여 새로운 패킷 플로우에 대해 임베딩 처리를 수행하여 패킷 플로우 임베딩을 생성하는 패킷 플로우 임베딩 생성부를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우 임베딩 모델 학습부는 상기 패킷 플로우와 상기 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 상기 임베딩 모델을 학습할 수 있다.
일 실시예에 있어서, 상기 임베딩 모델은 상기 패킷 플로우에 대해 공간적 정보를 추출하고, 상기 공간적 정보를 포함하는 임베딩을 도출하는 합성곱 신경망부; 상기 합성곱 신경망부에 연결되고, 상기 순환 신경망을 사용하여 상기 임베딩에 대해 시간적 정보를 추출하고, 상기 공간적 정보 및 상기 시간적 정보를 포함하는 상기 임베딩을 도출하는 순환 신경망부; 및 상기 순환 신경망부에 연결되고, 상기 임베딩에 대해 차원 축소 처리를 수행하는 차원 축소부를 포함할 수 있다.
일 실시예에 있어서, 상기 순환 신경망은 LSTM(long short-term memory) 신경망을 포함할 수 있다.
일 실시예에 있어서, 상기 차원 축소부는 주성분 분석 알고리즘을 이용하여 상기 차원 축소 처리를 수행할 수 있다.
일 실시예에 있어서, 상기 군집화 모델부는 상기 패킷 플로우 임베딩 생성부에 의해 생성된 상기 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습하는 군집화 모델 학습부; 및 상기 군집화 모델 학습부에 연결되고, 상기 군집화 모델 학습부에 의해 학습된 상기 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 군집 분석부를 포함할 수 있다.
일 실시예에 있어서, 상기 군집화 모델 학습부는 k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행할 수 있다.
일 실시예에 있어서, 상기 군집화 모델 학습부는 사전 설정된 개수의 군집 중심점을 설정하고, 상기 패킷 플로우 임베딩을 가장 유사한 군집 중심점으로 할당하고, 상기 패킷 플로우 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수의 클러스터를 각각 이동시키는 학습 과정을 수행하여 상기 군집화 모델을 학습할 수 있다.
일 실시예에 있어서, 상기 군집 분석부는 상기 군집화 모델을 사용하여 상기 새로운 패킷 플로우에 대해 유사한 패킷 플로우 임베딩으로 이루어진 군집을 검출하고, 상기 새로운 패킷 플로우를 상기 검출된 군집과 유사한 원천으로 분류할 수 있다.
본 발명의 일 실시예에 따르면, 네트워크 공격 탐지 시스템에서의 네트워크 공격 탐지 방법이 개시될 수 있다. 일 실시예에 따른 네트워크 공격 탐지 방법은 상기 네트워크 공격 탐지 시스템의 패킷 처리부에서, 네트워크 장비를 통해 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하여 전처리를 수행하는 단계; 상기 네트워크 공격 탐지 시스템의 기계학습 모델부에서, 상기 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 단계; 및 상기 네트워크 공격 탐지 시스템의 군집화 모델부에서, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우를 생성하는 단계는 상기 네트워크 장비를 통해 송수신되는 상기 패킷을 수집하는 단계; 상기 패킷의 헤더 필드 정보에 기초하여 상기 패킷을 1차적으로 분류하는 단계; 상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 단계; 및 상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 헤더 필드 정보는 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷을 1차적으로 분류하는 단계는 상기 헤더 필드 정보에 기초하여 TCP 패킷 및 UDP 패킷을 1차적으로 분류하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 단계는 상기 1차적으로 분류된 패킷에 대해 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷의 송수신을 나타내는 상기 패킷 플로우별로 2차적으로 분류하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우는 10개의 패킷으로 구성되고, 상기 패킷은 160 바이트의 길이를 가질 수 있다.
일 실시예에 있어서, 상기 패킷 플로우는 10×160의 행렬 형태를 가질 수 있다.
일 실시예에 있어서, 상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계는 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인지 여부를 판단하는 단계; 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인 것으로 판단되면, 상기 패킷 플로우의 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하는 단계; 및 상기 랜덤화 처리된 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
일 실시예에 있어서, 상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계는 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인지 여부를 판단하는 단계; 및 상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인 것으로 판단되면, 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
일 실시예에 있어서, 상기 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 단계는 상기 패킷의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 상기 기계학습 모델을 사용하여 상기 패킷 플로우 임베딩을 도출하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우 임베딩을 도출하는 단계는 상기 전처리된 패킷 플로우를 사용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계; 및 상기 학습된 임베딩 모델을 사용하여 새로운 패킷 플로우에 대해 임베딩 처리를 수행하여 상기 패킷 플로우 임베딩을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계는 상기 패킷 플로우와 상기 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 상기 임베딩 모델을 학습하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계는 상기 패킷 플로우에 대해 공간적 정보를 추출하여 상기 공간적 정보를 포함하는 임베딩을 도출하는 단계; 상기 순환 신경망을 사용하여 상기 임베딩에 대해 시간적 정보를 추출하여 상기 공간적 정보 및 상기 시간적 정보를 포함하는 상기 임베딩을 도출하는 단계; 및 상기 임베딩에 대해 차원 축소 처리를 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 순환 신경망은 LSTM 신경망을 포함할 수 있다.
일 실시예에 있어서, 상기 임베딩에 대해 차원 축소 처리를 수행하는 단계는 주성분 분석 알고리즘을 이용하여 상기 차원 축소 처리를 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 단계는 상기 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습하는 단계; 및 상기 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 군집화 모델을 학습하는 단계는 k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 군집화 모델을 학습하는 단계는 사전 설정된 개수의 군집 중심점을 설정하는 단계; 상기 패킷 플로우 임베딩을 가장 유사한 군집 중심점으로 할당하는 단계; 및 상기 패킷 플로우 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수의 클러스터를 각각 이동시키는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 단계는 상기 학습된 군집화 모델을 사용하여 상기 새로운 패킷 플로우에 대해 유사한 패킷 플로우 임베딩으로 이루어진 군집을 검출하는 단계; 및 상기 새로운 패킷 플로우를 상기 검출된 군집과 유사한 원천으로 분류하는 단계를 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 패킷 플로우 임베딩 기술로 생성된 임베딩을 통해 하나의 패킷에 대한 정보뿐만 아니라, 패킷들의 흐름에 대한 정보, 즉 공격에 대한 문맥 정보도 포함하고 있기 때문에, 종래보다 유의미한 공격 원천 탐지를 위한 유사도 군집 분석이 가능하다.
예를 들면, 문맥 정보의 중요성은 분산 서비스 거부 공격(distributed denial-of-service attack, DDoS), 지능적 지속 위협 공격(advanced persistent threat attack, APT) 등과 같은 경우, 패킷들의 흐름에서 공격에 대한 패턴이 나타난다. 종래에는 단일 패킷에 대한 임베딩을 찾기 때문에, DDoS, APT와 같은 공격을 탐지하기 어렵다. 이에 반해, 본 발명의 다양한 실시예에 따르면, 패킷의 흐름에서 발생하는 공격 패턴에 대한 정보를 포함하고 있으므로, DDoS, APT와 같은 공격을 탐지할 수 있다.
또한, 패킷 플로우 임베딩을 통해 유의미한 공격 원천 탐지를 위한 유사도 군집 분석이 가능하고, 종래의 기계학습 기반 네트워크 악성 행위 탐지 기술에 접목 가능하며, 그 성능을 향상시킬 수 있다.
더욱이, 본 발명의 다양한 실시예에 따르면, 악성 패킷 플로우 탐지, 악성 패킷 플로우 분석 등 패킷 플로우 임베딩 및 군집화 기술이 필요한 기술의 기반 기술로써 활용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 공격 탐지 시스템을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 패킷 처리부의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 패킷 플로우 이미지를 나타낸 예시도이다.
도 4는 본 발명의 일 실시예에 따른 임베딩 모델을 개략적으로 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 군집화 모델부의 구성을 개략적으로 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 군집화 분석을 수행한 결과를 나타낸 예시도이다.
도 7은 본 발명의 일 실시예에 따라 네트워크 공격을 탐지하는 방법을 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하여 전처리를 수행하는 방법을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따라 전처리된 패킷 플로우에 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 방법을 나타낸 흐름도이다.
도 10은 본 발명의 일 실시예에 따라 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 방법을 나타낸 흐름도이다.
본 발명의 실시예들은 본 발명의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 발명에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다.
본 발명에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 발명에 사용되는 모든 용어들은 본 발명을 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 발명에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.
본 발명에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.
본 발명에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.
본 발명에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다.
본 발명에서 사용되는 용어 "부"는, 소프트웨어, 또는 FPGA(field-programmable gate array), ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미한다. 그러나, "부"는 하드웨어 및 소프트웨어에 한정되는 것은 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스, 함수, 속성, 프로시저, 서브루틴, 프로그램 코드의 세그먼트, 드라이버, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조, 테이블, 어레이 및 변수를 포함한다. 구성요소와 "부" 내에서 제공되는 기능은 더 작은 수의 구성요소 및 "부"로 결합되거나 추가적인 구성요소와 "부"로 분리될 수 있다.
본 발명에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.
본 발명에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 어떤 구성요소가 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 네트워크 공격 탐지 시스템을 개략적으로 나타낸 블록도이다. 도 1을 참조하면, 네트워크 공격 탐지 시스템(100)은 패킷 처리부(110), 기계학습 모델부(120) 및 군집화 모델부(130)를 포함할 수 있다.
패킷 처리부(110)는 네트워크 장비(도시하지 않음)를 통해 패킷들을 수집하고, 수집된 패킷들에 전처리를 수행할 수 있다. 일 실시예에 있어서, 패킷 처리부(110)는 수집된 패킷들을 플로우 단위로 분류하여 패킷 플로우를 생성하고, 패킷 플로우를 기계학습 모델에 적합하도록 전처리할 수 있다.
기계학습 모델부(120)는 패킷 처리부(110)에 연결될 수 있다. 기계학습 모델부(120)는 패킷 처리부(110)에 의해 전처리된 패킷 플로우에 대해 패킷 플로우 임베딩을 도출할 수 있다. 일 실시예에 있어서, 기계학습 모델부(120)는 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출할 수 있다. 일 실시예에 있어서, 기계학습 모델은 데이터의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 모델이 사용될 수 있다.
일 실시예에 있어서, 기계학습 모델부(120)는 도 1에 도시된 바와 같이, 패킷 플로우 임베딩 모델 학습부(121) 및 패킷 플로우 임베딩 생성부(122)를 포함할 수 있다.
패킷 플로우 임베딩 모델 학습부(121)는 전처리된 패킷 플로우를 이용하여 기계학습 모델을 학습할 수 있다. 일 실시예에 있어서, 패킷 플로우 임베딩 모델 학습부(121)는 전처리된 패킷 플로우를 저차원의 연속형 벡터로 변환하는 기능을 수행하는 기계학습 모델을 학습할 수 있다. 일 실시예에 있어서, 패킷 플로우 임베딩 모델 학습부(121)는 패킷 플로우와 해당하는 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 기계학습 모델을 학습할 수 있다. 예를 들면, 패킷 플로우와 해당하는 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍의 형식으로 구성되어 있는 공개 데이터셋은 ISCXIDS2012, CIC-IDS2017 등을 포함할 수 있다.
일 실시예에 있어서, 기계학습 모델은 임베딩 모델을 포함할 수 있다. 임베딩 모델은 패킷 플로우가 입력되었을 때 해당하는 라벨 정보가 출력되도록 학습이 진행될 수 있다. 여기서, 학습은 임베딩 모델이 패킷 플로우의 특징을 파악하여 학습에 포함되지 않은 미지의 패킷 플로우가 입력되어도 해당하는 라벨 정보를 예측할 수 있도록 하는 과정을 의미한다.
패킷 플로우 임베딩 생성부(122)는 패킷 플로우 임베딩 모델 학습부(121)에 연결될 수 있다. 패킷 플로우 임베딩 생성부(122)는 패킷 플로우 임베딩 모델 학습부(121)에 의해 학습된 임베딩 모델을 사용하여 새로운 패킷 플로우(예를 들어, 미지의 패킷 플로우)에 대해 임베딩 처리를 수행할 수 있다. 일 실시예에 있어서, 패킷 플로우 임베딩 생성부(122)는 임베딩 네트워크의 마지막 레이어 입력 값을 유사도 군집화를 위한 임베딩으로 사용할 수 있다.
군집화 모델부(130)는 기계학습 모델부(120)에 연결될 수 있다. 군집화 모델부(130)는 기계학습 모델부(120)에 의해 생성된 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행할 수 있다. 일 실시예에 있어서, 군집화 분석을 위한 군집화 알고리즘은 k-평균 알고리즘(k-means clustering)이 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 패킷 처리부(110)의 구성을 개략적으로 나타낸 블록도이다. 도 2를 참조하면, 패킷 처리부(110)는 패킷 수집부(210), 패킷 분류부(220), 패킷 플로우 분류부(230) 및 패킷 전처리부(240)를 포함할 수 있다.
패킷 수집부(210)는 네트워크 장비에 연결되고, 네트워크 장비를 통해 송수신되는 패킷들을 수집할 수 있다. 일 실시예에 있어서, 네트워크 장비는 라우터를 포함할 수 있다. 예를 들면, 패킷 수집부(210)는 라우터에 연결되고, 라우터를 통해 송수신되는 패킷들을 수집할 수 있다.
패킷 분류부(220)는 패킷 수집부(210)에 연결될 수 있다. 패킷 분류부(220)는 패킷 수집부(210)에 의해 수집된 패킷의 헤더 필드 정보에 기초하여 동일한 플로우에 해당하는 패킷을 분류하여 저장할 수 있다.
일 실시예에 있어서, 패킷의 헤더 필드 정보는 소스 아이피 주소(source IP address), 목적지 아이피 주소(destination IP address), 소스 포트 번호(source port number) 및 목적지 포트 번호(destination port number)를 포함할 수 있다.
일 실시예에 있어서, 패킷 분류부(220)는 패킷의 벡터화를 진행하기 전에 패킷에 대해 1차적으로 분류하여 저장할 수 있다. 예를 들면, 패킷 분류부(220)는 수집된 패킷의 헤더 필드 정보를 확인하여 1차적으로 분류할 수 있다. 여기서, 1차적 분류는 추후에 수행되는 플로우 단위 패킷을 분리하는데 도움을 주기 위해 수행될 수 있다. 예를 들면, 패킷 분류부(220)는 TCP(transmission control protocol) 패킷 및 UDP(user datagram protocol) 패킷을 1차적으로 분류할 수 있다.
일 실시예에 있어서, 패킷 분류부(220)는 제1 데이터베이스(도시하지 않음)를 포함할 수 있다. 패킷 분류부(220)는 1차적으로 분류된 패킷을 제1 데이터베이스에 저장할 수 있다.
패킷 플로우 분류부(230)는 패킷 분류부(220)에 연결될 수 있다. 패킷 플로우 분류부(230)는 패킷 분류부(220)에 의해 1차적으로 분류된 패킷에 대해 플로우별로 2차적으로 분류할 수 있다. 일 실시예에 있어서, 패킷 플로우 분류부(230)는 1차적으로 분류된 패킷에 대해 임베딩 모델에 맞은 입력 값으로 가공하기 위해 플로우별로 2차적으로 분류할 수 있다. 여기서, 플로우는 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷들의 송수신을 의미한다.
일 실시예에 있어서, 패킷 플로우 분류부(230)는 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 동일한 패킷을 송신자와 수신자가 동일한 패킷으로 간주하고, 동일한 플로우에 해당하는 패킷으로 분류할 수 있다.
일 실시예에 있어서, 1개의 플로우는 10개의 패킷으로 구성되고, 1개의 패킷은 160 바이트(bytes)의 길이를 가질 수 있다. 이와 같이, 플로우의 크기를 동일하게 맞추는 것은 고정된 크기의 입력 값이 기계학습 기반 임베딩 모델에 입력되기 때문이다. 따라서, 1개의 플로우는 10×160의 행렬 형태로 구성될 수 있다.
일 실시예에 있어서, 패킷 플로우 분류부(230)는 제3 데이터베이스(도시하지 않음)를 포함할 수 있다. 패킷 플로우 분류부(230)는 2차적으로 분류된 패킷 플로우를 제2 데이터베이스에 저장할 수 있다.
이와 같이, 본 실시예에서는 플로우 단위로 패킷을 분류하여 저장함으로써, 패킷 단위 임베딩이 아닌 플로우 단위 임베딩을 수행할 수 있다. 여기서, 임베딩은 범주형 또는 수치형 데이터를 잘 표현할 수 있는 저차원의 연속형 벡터(특징)를 나타낸다.
패킷 전처리부(240)는 패킷 플로우 분류부(230)에 연결될 수 있다. 패킷 전처리부(240)는 패킷 플로우 분류부(230)에 의해 2차적으로 분류된 패킷 플로우에 대해 전처리를 수행할 수 있다.
일 실시예에 있어서, 패킷 전처리부(240)는 2차적으로 분류된 패킷 플로우를 임베딩 모델의 입력 값으로 입력하기 위한 전처리를 수행할 수 있다. 예를 들면, 임베딩 모델은 임베딩을 찾기 위한 기계학습 모델을 포함할 수 있다. 예를 들면, 패킷 전처리부(240)는 10×160의 행렬 형태로 구성된 패킷 플로우를 40×40의 행렬 형태로 변경하는 전처리를 패킷 플로우에 대해 수행할 수 있다. 패킷 플로우의 행렬 형태를 "10×160"에서 "40×40"으로 변경하는 것은 기계학습 모델부(120)에 사용하는 합성곱 신경망의 입력 값으로 입력하기 위해서이다.
일 실시예에 있어서, 패킷 전처리부(240)는 패킷 플로우에 대해 임베딩 모델을 학습하는 단계인지 또는 임베딩 모델을 사용하는 단계인지를 판단할 수 있다. 예를 들면, 패킷 전처리부(240)는 사전 설정된 정보에 기초하여 임베딩 모델을 학습하는 단계인지 또는 임베딩 모델을 사용하는 단계인지를 판단할 수 있다. 여기서, 사전 설정된 정보는 사용자에 의해 설정된 정보일 수 있다.
일 실시예에 있어서, 패킷 전처리부(240)는 패킷 플로우에 대해 임베딩 모델을 학습하는 단계인 것으로 판단되면, 맥 주소(MAC address), 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하고, 랜덤화 처리된 패킷 플로우(즉, "10×160"의 행렬 형태를 갖는 패킷 플로우)에 대해 도 3에 도시된 바와 같이 "40×40"의 행렬 형태를 갖는 패킷 플로우로 변경하는 전처리를 수행할 수 있다. 이와 같이, 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행함으로써, 임베딩 모델의 과적합을 방지할 수 있다. 여기서, 과적합은 인공지능 모델이 학습 데이터를 과하게 잘 학습하여 실제 데이터에 대해 성능이 떨어지는 것을 의미한다.
일 실시예에 있어서, 패킷 전처리부(240)는 패킷 플로우에 대해 임베딩 모델을 사용하는 단계인 것으로 판단되면, 전술한 랜덤화 처리를 수행하지 않고, "10×160"의 행렬 형태를 갖는 패킷 플로우)에 대해 도 3에 도시된 바와 같이 "40×40"의 행렬 형태를 갖는 패킷 플로우로 변경하는 전처리를 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 임베딩 모델을 개략적으로 나타낸 도면이다. 도 4를 참조하면, 임베딩 모델(400)은 합성곱 신경망부(410), 순환 신경망부(420) 및 차원 축소부(430)를 포함할 수 있다.
합성곱 신경망부(410)는 패킷 플로우에 대해 공간적 특징을 추출할 수 있다. 일 실시예에 있어서, 합성곱 신경망부(410)는 패킷 처리부(110)에 의해 전처리된 40×40의 행렬 형태를 갖는 패킷 플로우(예를 들어, 2차원 이미지)를 수신하고, 40×40의 행렬 형태를 갖는 패킷 플로우에 대해 합성곱 신경망을 거쳐 40×40의 행렬 형태의 공간적 정보(예를 들어, 공간적 특징)를 추출하고, 추출된 공간적 정보를 포함하는 임베딩을 도출할 수 있다.
일 실시예에 있어서, 합성곱 신경망부(410)는 합성곱 층(411), 최대 풀링(max pooling) 층(412), 합성곱 층(413), 최대 풀링 층(414) 및 전결합 층(415)으로 이루어질 수 있다.
순환 신경망부(420)는 합성곱 신경망부(410)에 연결될 수 있다. 순환 신경망부(420)는 합성곱 신경망부(410)에 의해 공간적 정보를 포함하는 임베딩을 입력받고, 순환 신경망을 사용하여 입력된 임베딩에 대해 시간적 정보를 추출할 수 있다. 즉, 순환 신경망부(420)는 공간적 정보와 함께 시간적 정보를 포함하는 임베딩을 도출할 수 있다. 일 실시예에 있어서, 순환 신경망은 LSTM(long short-term memory) 신경망을 포함할 수 있다. 그러나, 순환 신경망은 반드시 이에 한정되는 것은 아니다.
이와 같이, 순환 신경망부(420)로부터 출력되는 임베딩은 공간적 정보뿐만 아니라 시간적 정보를 포함할 수 있다. 이는 임베딩이 공격 패킷에 대한 정보와 더불어 공격의 흐름에 대한 문맥적 정보를 담고 있다는 것을 의미할 수 있다.
차원 축소부(430)는 순환 신경망부(420)에 연결될 수 있다. 차원 축소부(430)는 순환 신경망부(420)로부터 출력되는 임베딩에 대해 차원 축소 처리를 수행할 수 있다. 일 실시예에 있어서, 차원 축소부(430)는 시각화를 통한 군집 분석이 가능하도록 하기 위해 임베딩에 대해 차원 축소 처리를 수행할 수 있다. 예를 들면, 차원 축소 처리는 주성분 분석 알고리즘을 이용하여 수행될 수 있다. 이때, 주성분은 데이터들의 분산을 가장 잘 설명해 주는 방향 벡터를 의미한다.
도 5는 본 발명의 일 실시예에 따른 군집화 모델부의 구성을 개략적으로 나타낸 블록도이다. 도 5를 참조하면, 군집화 모델부(130)는 군집화 모델 학습부(510) 및 군집 분석부(520)를 포함할 수 있다.
군집화 모델 학습부(510)는 패킷 플로우 임베딩 생성부(122)에 의해 생성된 원천 정보에 기초하여 군집화 모델을 학습할 수 있다. 여기서, 원천 정보는 분석하고자 하는 공격 대상에 대해 사전에 습득된 패킷 플로우와 해당 패킷 플로우의 그룹 정보를 의미한다. 또한, 그룹 정보는 비슷한 공격 성향을 띄는 그룹(예를 들어, 특정 단체, 특정 국가 등)을 의미하며, 군집화는 데이터를 유사한 특징을 가진 집단으로 묶는 방법을 의미한다.
일 실시예에 있어서, 군집화 모델 학습부(510)는 패킷 플로우 임베딩 생성부(122)에 의해 생성된 복수의 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습할 수 있다. 예를 들면, 군집화 모델 학습부(510)는 k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행할 수 있다.
일 실시예에 있어서, k-평균 유사도 군집 분석은 복수의 입력 임베딩간의 유사도를 측정하여 유사한 임베딩들을 하나의 그룹으로 묶는 역할을 수행한다. 여기서, 입력 임베딩은 임베딩 모델을 통해 출력되는 패킷 플로우 임베딩을 의미하고, k-평균 유사도 군집 알고리즘에서 유사도는 임베딩간의 유클리디안 거리를 의미하며, 유사하다는 것은 입력 임베딩 간의 유클리디안 거리가 가깝다는 것을 의미한다. 따라서, k-평균 유사도 군집 분석에 의해 생성된 군집은 비슷한 공격 특성, 흐름을 갖는 복수의 패킷 플로우로 구성되게 된다.
일 실시예에 있어서, 군집화 모델 학습부(510)는 사전에 일고 있는 원천 정보 중 패킷 플로우를 이용하여 군집화 모델을 학습할 수 있다. 예를 들면, 군집화 모델 학습부(510)는 (1) 사전 설정된 개수(예를 들어, k개)의 군집 중심점을 설정하고, (2) 복수의 임베딩을 가장 유사한 군집 중심점으로 할당하며, (3) 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수(예를 들어, k개)의 클러스터를 각각 이동시키는 학습 과정을 수행할 수 있다. 여기서, (2)번 과정과 (3)번 과정을 반복하게 되면 유사한 특성을 갖는 사전 설정된 개수(예를 들어, k)개의 군집화된 임베딩 분포가 생성될 수 있다.
군집 분석부(520)는 군집화 모델 학습부(510)에 연결될 수 있다. 군집 분석부(510)는 군집화 모델 학습부(510)에 의해 원천 정보로 학습된 군집화 모델을 이용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행할 수 있다. 일 실시예에 있어서, 군집 분석부(520)는 새로운 패킷 플로우(예를 들어, 미지의 패킷 플로우)가 입력되면, 원천 정보에 의해 학습된 군집화 모델을 사용하여, 도 6에 도시된 바와 같이, 새로운 패킷 플로우가 속하는 군집을 예측하여 원천 탐지를 수행할 수 있다. 예를 들면, 군집 분석부(520)는 미지의 패킷 플로우가 제1 군집(예를 들어, "군집 A")와 유사한 것으로 판단되면, 해당 패킷 플로우를 "군집 A"와 같은 원천으로 분류할 수 있다.
일 실시예에 있어서, 군집 분석부(520)는 사전 원천 정보의 k-평균 유사도 군집 분석을 통해 생성된 군집들을 이용하여 미지의 패킷 플로우가 어떤 원천 정보를 가지고 있는지 분석하는 기능을 수행할 수 있다. 이때, 분석은 생성된 군집의 중심점과 패킷 플로우의 임베딩 사이의 유사도(유클리디안 거리)를 계산하여 유사도가 가장 큰(유클리디안 거리가 가까운) 군집으로 할당하는 과정을 의미한다. 이를 통해, 군집 분석부(520)는 유사한 임베딩들로 이루어진 그룹을 찾고, 찾아진 그룹과 해당 패킷 플로우를 같은 원천 정보에 대응하는 것으로 판단할 수 있다.
본 발명에 도시된 흐름도에서 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 설명되었지만, 그러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 작동되도록 구성될 수 있다. 다시 말하면, 본 발명의 다양한 실시예들에서 설명되는 프로세스들, 방법들 및 알고리즘들의 단계들이 본 발명에서 기술된 순서로 수행될 필요는 없다. 또한, 일부 단계들이 비동시적으로 수행되는 것으로서 설명되더라도, 다른 실시예에서는 이러한 일부 단계들이 동시에 수행될 수 있다. 또한, 도면에서의 묘사에 의한 프로세스의 예시는 예시된 프로세스가 그에 대한 다른 변화들 및 수정들을 제외하는 것을 의미하지 않으며, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 발명의 다양한 실시예들 중 하나 이상에 필수적임을 의미하지 않으며, 예시된 프로세스가 바람직하다는 것을 의미하지 않는다.
도 7은 본 발명의 일 실시예에 따라 네트워크 공격을 탐지하는 방법을 나타낸 흐름도이다. 도 7을 참조하면, 단계 S702에서, 네트워크 공격 탐지 시스템(100)은 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하여 전처리를 수행할 수 있다. 일 실시예에 있어서, 네트워크 공격 탐지 시스템(100)의 패킷 처리부(110)는 패킷들을 수집하고, 수집된 패킷들에 기초하여 패킷 플로우를 생성하며, 생성된 패킷 프로우에 전처리를 수행할 수 있다.
단계 S704에서, 네트워크 공격 탐지 시스템(100)은 전처리된 패킷 플로우에 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출할 수 있다. 일 실시예에 있어서, 네트워크 공격 탐지 시스템(100)의 기계학습 모델부(120)는 패킷의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 기계학습 모델을 사용하여 패킷 플로우 임베딩을 도출할 수 있다.
단계 S706에서, 네트워크 공격 탐지 시스템(100)은 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행할 수 있다. 일 실시예에 있어서, 네트워크 공격 탐지 시스템(100)의 군집화 모델부(130)는 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 모델을 학습하고, 학습된 군집화 모델에 기초하여 군집화 분석을 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따라 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하여 전처리를 수행하는 방법을 나타낸 흐름도이다. 도 8을 참조하면, 단계 S802에서, 패킷 처리부(110)는 네트워크 장비를 통해 송수신되는 패킷을 수집할 수 있다. 일 실시예에 있어서, 패킷 처리부(110)의 패킷 수집부(210)는 라우터를 통해 송수신되는 패킷들을 수집할 수 있다.
단계 S804에서, 패킷 처리부(110)는 패킷의 헤더 필드 정보에 기초하여 패킷을 1차적으로 분류할 수 있다. 일 실시예에 있어서, 패킷 처리부(110)의 패킷 분류부(220)는 수집된 패킷의 헤더 필드 정보를 확인하여 1차적으로 분류할 수 있다. 여기서, 1차적 분류는 추후에 수행되는 플로우 단위 패킷을 분리하는데 도움을 주기 위해 수행될 수 있다. 예를 들면, 패킷 분류부(220)는 TCP 패킷 및 UDP 패킷을 1차적으로 분류할 수 있다.
단계 S806에서, 패킷 처리부(110)는 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류할 수 있다. 일 실시예에 있어서, 패킷 처리부(110)의 패킷 플로우 분류부(230)는 1차적으로 분류된 패킷에 대해 임베딩 모델에 맞는 입력 값으로 가공하기 위해 플로우별로 2차적으로 분류할 수 있다. 예를 들면, 패킷 플로우 분류부(230)는 1차적으로 분류된 패킷에 대해 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷의 송수신을 나타내는 패킷 플로우별로 2차적으로 분류할 수 있다. 예를 들면, 패킷 플로우는 10개의 패킷으로 구성되고, 패킷은 160 바이트의 길이를 가질 수 있다. 또한, 패킷 플로우는 10×160의 행렬 형태를 가질 수 있다.
단계 S808에서, 패킷 처리부(110)는 2차적으로 분류된 패킷 플로우에 대해 전처리를 수행할 수 있다. 일 실시예에 있어서, 패킷 처리부(110)의 패킷 전처리부(240)는 2차적으로 분류된 패킷 플로우를 임베딩 모델의 입력 값으로 입력하기 위한 전처리를 수행할 수 있다.
일 실시예에 있어서, 패킷 전처리부(240)는 패킷 플로우에 대해 임베딩을 찾기 위한 기계학습 모델(즉, 임베딩 모델)을 학습하는 단계인지 여부를 판단할 수 있다. 패킷 전처리부(240)는 패킷 플로우에 대해 기계학습 모델을 학습하는 단계인 것으로 판단되면, 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하고, 랜덤화 처리된 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경할 수 있다. 예를 들면, 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
일 실시예에 있어서, 패킷 전처리부(240)는 패킷 플로우에 대해 임베딩을 찾기 위한 기계학습 모델(즉, 임베딩 모델)을 사용하는 단계인지 여부를 판단할 수 있다. 패킷 전처리부(240)는 패킷 플로우에 대해 기계학습 모델을 사용하는 단계인 것으로 판단되면, 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경할 수 있다. 예를 들면, 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따라 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 방법을 나타낸 흐름도이다. 도 9를 참조하면, 단계 S902에서, 기계학습 모델부(120)는 전처리된 패킷 플로우를 이용하여 기계학습 모델에 해당하는 임베딩 모델을 학습할 수 있다. 일 실시예에 있어서, 기계학습 모델부(120)의 패킷 플로우 임베딩 모델 학습부(121)는 패킷 플로우와 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 임베딩 모델을 학습할 수 있다.
예를 들면, 패킷 플로우 임베딩 모델 학습부(121)의 합성곱 신경망부(410)는 패킷 플로우에 대해 공간적 정보를 추출하고, 공간적 정보를 포함하는 임베딩을 도출할 수 있다. 패킷 플로우 임베딩 모델 학습부(121)의 순환 신경망부(420)는 순환 신경망을 사용하여 임베딩에 대해 시간적 정보를 추출하고, 공간적 정보 및 시간적 정보를 포함하는 임베딩을 도출할 수 있다. 여기서, 순환 신경망은 LSTM 신경망을 포함할 수 있다. 패킷 플로우 임베딩 모델 학습부(121)의 차원 축소부(430)는 임베딩에 대해 차원 축소 처리를 수행할 수 있다. 여기서, 차원 축소부(430)는 주성분 분석 알고리즘을 이용하여 차원 축소 처리를 수행할 수 있다.
단계 S904에서, 기계학습 모델부(120)는 학습된 임베딩 모델을 사용하여 새로운 패킷 플로우에 대해 임베딩 처리를 수행하여 패킷 플로우 임베딩을 생성할 수 있다. 일 실시예에 있어서, 기계학습 모델부(120)의 패킷 플로우 임베딩 생성부(122)는 패킷 플로우 임베딩 모델 학습부(121)에 의해 학습된 임베딩 모델을 사용하여 새로운 패킷 플로우(예를 들어, 미지의 패킷 플로우)에 대해 임베딩 처리를 수행할 수 있다.
도 10은 본 발명의 일 실시예에 따라 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 방법을 나타낸 흐름도이다. 도 10을 참조하면, 단계 S1002에서, 군집화 모델부(130)는 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습할 수 있다. 예를 들면, 군집화 모델부(130)는 k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행할 수 있다.
일 실시예에 있어서, 군집화 모델부(130)의 군집화 모델 학습부(510)는 사전 설정된 개수의 군집 중심점을 설정하고, 패킷 플로우 임베딩을 가장 유사한 군집 중심점으로 할당하며, 패킷 플로우 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수의 클러스터를 각각 이동시키는 학습 과정을 수행하여 군집화 모델을 학습할 수 있다.
단계 S1004에서, 군집화 모델부(130)는 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행할 수 있다. 일 실시예에 있어서, 군집화 모델부(130)의 군집 분석부(520)는 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 유사한 패킷 플로우 임베딩으로 이루어진 군집을 검출하고, 새로운 패킷 플로우를 검출된 군집과 유사한 원천으로 분류할 수 있다.
위 방법은 특정 실시예들을 통하여 설명되었지만, 위 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 위 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 발명의 기술적 사상이 설명되었지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.
100: 네트워크 공격 탐지 시스템, 110: 패킷 처리부, 120: 기계학습 모델부, 121: 패킷 플로우 임베딩 모델 학습부, 122: 패킷 플로우 임베딩 생성부, 130: 군집화 모델부, 210: 패킷 수집부, 220: 패킷 분류부, 230: 패킷 플로우 분류부, 240: 패킷 전처리부, 400: 임베딩 모델, 410: 합성곱 신경망부, 420: 순환 신경망부, 430: 차원 축소부, 510: 군집화 모델 학습부, 520: 군집 분석부

Claims (42)

  1. 네트워크 공격 탐지 시스템으로서,
    네트워크 장비를 통해 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하고 상기 패킷 플로우에 대해 전처리를 수행하는 패킷 처리부;
    상기 패킷 처리부에 연결되고, 상기 패킷 처리부에 의해 전처리된 상기 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 기계학습 모델부; 및
    상기 기계학습 모델부에 연결되고, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 군집화 모델부를 포함하고,
    상기 기계학습 모델부는 상기 패킷의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 상기 기계학습 모델을 사용하고,
    상기 기계학습 모델부는
    상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 패킷 플로우 임베딩 모델 학습부; 및
    상기 패킷 플로우 임베딩 모델 학습부에 연결되고, 상기 패킷 플로우 임베딩 모델 학습부에 의해 학습된 상기 임베딩 모델을 사용하여 새로운 패킷 플로우에 대해 임베딩 처리를 수행하여 패킷 플로우 임베딩을 생성하는 패킷 플로우 임베딩 생성부
    를 포함하는 네트워크 공격 탐지 시스템.
  2. 제1항에 있어서, 상기 패킷 처리부는
    상기 네트워크 장비에 연결되고 상기 네트워크 장비를 통해 송수신되는 상기 패킷을 수집하는 패킷 수집부;
    상기 패킷 수집부에 연결되고, 상기 패킷 수집부에 의해 수집된 상기 패킷의 헤더 필드 정보에 기초하여 상기 패킷을 1차적으로 분류하는 패킷 분류부;
    상기 패킷 분류부에 연결되고, 상기 패킷 분류부에 의해 상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 패킷 플로우 분류부; 및
    상기 패킷 플로우 분류부에 연결되고, 상기 패킷 플로우 분류부에 의해 상기 2차적으로 분류된 패킷 플로우에 대해 전처리를 수행하는 패킷 전처리부
    를 포함하는 네트워크 공격 탐지 시스템.
  3. 제2항에 있어서, 상기 헤더 필드 정보는 소스 아이피 주소(source IP address), 목적지 아이피 주소(destination IP address), 소스 포트 번호(source port number) 및 목적지 포트 번호(destination port number)를 포함하는 네트워크 공격 탐지 시스템.
  4. 제2항에 있어서, 상기 패킷 분류부는 상기 헤더 필드 정보에 기초하여 TCP(transmission control protocol) 패킷 및 UDP(user datagram protocol) 패킷을 1차적으로 분류하는 네트워크 공격 탐지 시스템.
  5. 제2항에 있어서, 상기 패킷 플로우 분류부는 상기 1차적으로 분류된 패킷에 대해 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷의 송수신을 나타내는 상기 패킷 플로우별로 2차원적으로 분류하는 네트워크 공격 탐지 시스템.
  6. 제2항에 있어서, 상기 패킷 플로우는 10개의 패킷으로 구성되고, 상기 패킷은 160 바이트의 길이를 갖는 네트워크 공격 탐지 시스템.
  7. 제6항에 있어서, 상기 패킷 플로우는 10×160의 행렬 형태를 갖는 네트워크 공격 탐지 시스템.
  8. 제7항에 있어서, 상기 패킷 전처리부는
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인지 여부를 판단하고,
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인 것으로 판단되면, 상기 패킷 플로우의 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하고,
    상기 랜덤화 처리된 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 네트워크 공격 탐지 시스템.
  9. 제8항에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함하는 네트워크 공격 탐지 시스템.
  10. 제7항에 있어서, 상기 패킷 전처리부는
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인지 여부를 판단하고,
    상기 패킷 플로우에 대해 상기 기계학습 모델을 사용하는 단계인 것으로 판단되면, 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 네트워크 공격 탐지 시스템.
  11. 제10항에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함하는 네트워크 공격 탐지 시스템.
  12. 삭제
  13. 삭제
  14. 제1항에 있어서, 상기 패킷 플로우 임베딩 모델 학습부는 상기 패킷 플로우와 상기 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 상기 임베딩 모델을 학습하는 네트워크 공격 탐지 시스템.
  15. 제1항에 있어서, 상기 임베딩 모델은
    상기 패킷 플로우에 대해 공간적 정보를 추출하고, 상기 공간적 정보를 포함하는 임베딩을 도출하는 합성곱 신경망부;
    상기 합성곱 신경망부에 연결되고, 상기 순환 신경망을 사용하여 상기 임베딩에 대해 시간적 정보를 추출하고, 상기 공간적 정보 및 상기 시간적 정보를 포함하는 상기 임베딩을 도출하는 순환 신경망부; 및
    상기 순환 신경망부에 연결되고, 상기 임베딩에 대해 차원 축소 처리를 수행하는 차원 축소부
    를 포함하는 네트워크 공격 탐지 시스템.
  16. 제15항에 있어서, 상기 순환 신경망은 LSTM(long short-term memory) 신경망을 포함하는 네트워크 공격 탐지 시스템.
  17. 제15항에 있어서, 상기 차원 축소부는 주성분 분석 알고리즘을 이용하여 상기 차원 축소 처리를 수행하는 네트워크 공격 탐지 시스템.
  18. 제1항에 있어서, 상기 군집화 모델부는
    상기 패킷 플로우 임베딩 생성부에 의해 생성된 상기 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습하는 군집화 모델 학습부; 및
    상기 군집화 모델 학습부에 연결되고, 상기 군집화 모델 학습부에 의해 학습된 상기 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 군집 분석부
    를 포함하는 네트워크 공격 탐지 시스템.
  19. 제18항에 있어서, 상기 군집화 모델 학습부는 k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행하는 네트워크 공격 탐지 시스템.
  20. 제18항에 있어서, 상기 군집화 모델 학습부는 사전 설정된 개수의 군집 중심점을 설정하고, 상기 패킷 플로우 임베딩을 가장 유사한 군집 중심점으로 할당하고, 상기 패킷 플로우 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수의 클러스터를 각각 이동시키는 학습 과정을 수행하여 상기 군집화 모델을 학습하는 네트워크 공격 탐지 시스템.
  21. 제18항에 있어서, 상기 군집 분석부는 상기 군집화 모델을 사용하여 상기 새로운 패킷 플로우에 대해 유사한 패킷 플로우 임베딩으로 이루어진 군집을 검출하고, 상기 새로운 패킷 플로우를 상기 검출된 군집과 유사한 원천으로 분류하는 네트워크 공격 탐지 시스템.
  22. 네트워크 공격 탐지 시스템에서의 네트워크 공격 탐지 방법으로서,
    상기 네트워크 공격 탐지 시스템의 패킷 처리부에서, 네트워크 장비를 통해 수집되는 패킷에 기초하여 플로우 단위의 패킷 플로우를 생성하여 전처리를 수행하는 단계;
    상기 네트워크 공격 탐지 시스템의 기계학습 모델부에서, 상기 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 단계; 및
    상기 네트워크 공격 탐지 시스템의 군집화 모델부에서, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 단계를 포함하고,
    상기 전처리된 패킷 플로우에 대해 기계학습 모델을 기반으로 패킷 플로우 임베딩을 도출하는 단계는
    상기 패킷의 공간적 특징을 추출할 수 있는 합성곱 신경망 및 시간적 특징을 추출할 수 있는 순환 신경망을 결합한 상기 기계학습 모델을 사용하여 상기 패킷 플로우 임베딩을 도출하는 단계를 포함하고,
    상기 패킷 플로우 임베딩을 도출하는 단계는
    상기 전처리된 패킷 플로우를 사용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계; 및
    상기 학습된 임베딩 모델을 사용하여 새로운 패킷 플로우에 대해 임베딩 처리를 수행하여 상기 패킷 플로우 임베딩을 생성하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  23. 제22항에 있어서, 상기 패킷 플로우를 생성하는 단계는
    상기 네트워크 장비를 통해 송수신되는 상기 패킷을 수집하는 단계;
    상기 패킷의 헤더 필드 정보에 기초하여 상기 패킷을 1차적으로 분류하는 단계;
    상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 단계; 및
    상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  24. 제23항에 있어서, 상기 헤더 필드 정보는 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호를 포함하는 네트워크 공격 탐지 방법.
  25. 제23항에 있어서, 상기 패킷을 1차적으로 분류하는 단계는
    상기 헤더 필드 정보에 기초하여 TCP 패킷 및 UDP 패킷을 1차적으로 분류하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  26. 제23항에 있어서, 상기 1차적으로 분류된 패킷에 대해 패킷 플로우별로 2차적으로 분류하는 단계는
    상기 1차적으로 분류된 패킷에 대해 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호가 공통된 패킷의 송수신을 나타내는 상기 패킷 플로우별로 2차적으로 분류하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  27. 제23항에 있어서, 상기 패킷 플로우는 10개의 패킷으로 구성되고, 상기 패킷은 160 바이트의 길이를 갖는 네트워크 공격 탐지 방법.
  28. 제27항에 있어서, 상기 패킷 플로우는 10×160의 행렬 형태를 갖는 네트워크 공격 탐지 방법.
  29. 제28항에 있어서, 상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계는
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인지 여부를 판단하는 단계;
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 학습하는 단계인 것으로 판단되면, 상기 패킷 플로우의 맥 주소, 소스 아이피 주소, 목적지 아이피 주소, 소스 포트 번호 및 목적지 포트 번호에 대해 임의의 값으로 변환하는 랜덤화 처리를 수행하는 단계; 및
    상기 랜덤화 처리된 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  30. 제29항에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함하는 네트워크 공격 탐지 방법.
  31. 제28항에 있어서, 상기 2차적으로 분류된 상기 패킷 플로우에 대해 전처리를 수행하는 단계는
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인지 여부를 판단하는 단계; 및
    상기 패킷 플로우에 대해 임베딩을 찾기 위한 상기 기계학습 모델을 사용하는 단계인 것으로 판단되면, 상기 패킷 플로우에 대해 사전 설정된 크기의 행렬 형태로 변경하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  32. 제31항에 있어서, 상기 사전 설정된 크기의 행렬 형태는 40×40의 행렬 형태를 포함하는 네트워크 공격 탐지 방법.
  33. 삭제
  34. 삭제
  35. 제22항에 있어서, 상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계는
    상기 패킷 플로우와 상기 패킷 플로우의 공격 성향 여부 또는 공격 방식 라벨 쌍을 사용하여 상기 임베딩 모델을 학습하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  36. 제22항에 있어서, 상기 전처리된 패킷 플로우를 이용하여 상기 기계학습 모델에 해당하는 임베딩 모델을 학습하는 단계는
    상기 패킷 플로우에 대해 공간적 정보를 추출하여 상기 공간적 정보를 포함하는 임베딩을 도출하는 단계;
    상기 순환 신경망을 사용하여 상기 임베딩에 대해 시간적 정보를 추출하여 상기 공간적 정보 및 상기 시간적 정보를 포함하는 상기 임베딩을 도출하는 단계; 및
    상기 임베딩에 대해 차원 축소 처리를 수행하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  37. 제36항에 있어서, 상기 순환 신경망은 LSTM 신경망을 포함하는 네트워크 공격 탐지 방법.
  38. 제36항에 있어서, 상기 임베딩에 대해 차원 축소 처리를 수행하는 단계는
    주성분 분석 알고리즘을 이용하여 상기 차원 축소 처리를 수행하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  39. 제22항에 있어서, 상기 패킷 플로우 임베딩에 기초하여 원천 탐지를 위한 군집화 분석을 수행하는 단계는
    상기 패킷 플로우 임베딩을 원천 정보로서 사용하여 군집화 모델을 학습하는 단계; 및
    상기 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  40. 제39항에 있어서, 상기 군집화 모델을 학습하는 단계는
    k-평균 알고리즘을 사용하여 벡터 거리 기반 유사도로 군집화를 수행하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  41. 제39항에 있어서, 상기 군집화 모델을 학습하는 단계는
    사전 설정된 개수의 군집 중심점을 설정하는 단계;
    상기 패킷 플로우 임베딩을 가장 유사한 군집 중심점으로 할당하는 단계; 및
    상기 패킷 플로우 임베딩과 중심점 간의 거리 차이가 최소화되도록 사전 설정된 개수의 클러스터를 각각 이동시키는 단계
    를 포함하는 네트워크 공격 탐지 방법.
  42. 제39항에 있어서, 상기 학습된 군집화 모델을 사용하여 새로운 패킷 플로우에 대해 원천 탐지를 수행하는 단계는
    상기 학습된 군집화 모델을 사용하여 상기 새로운 패킷 플로우에 대해 유사한 패킷 플로우 임베딩으로 이루어진 군집을 검출하는 단계; 및
    상기 새로운 패킷 플로우를 상기 검출된 군집과 유사한 원천으로 분류하는 단계
    를 포함하는 네트워크 공격 탐지 방법.
KR1020210057656A 2021-05-04 2021-05-04 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법 KR102525593B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210057656A KR102525593B1 (ko) 2021-05-04 2021-05-04 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210057656A KR102525593B1 (ko) 2021-05-04 2021-05-04 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법

Publications (2)

Publication Number Publication Date
KR20220150545A KR20220150545A (ko) 2022-11-11
KR102525593B1 true KR102525593B1 (ko) 2023-04-25

Family

ID=84042736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210057656A KR102525593B1 (ko) 2021-05-04 2021-05-04 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법

Country Status (1)

Country Link
KR (1) KR102525593B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117692254A (zh) * 2024-02-01 2024-03-12 国网湖北省电力有限公司电力科学研究院 一种虚拟电厂多阶段apt攻击检测方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101280910B1 (ko) * 2011-12-15 2013-07-02 한국전자통신연구원 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
KR101927100B1 (ko) 2016-10-17 2018-12-10 국민대학교산학협력단 순환 신경망 기반 네트워크 패킷의 위험요소 분석 방법, 이를 수행하는 순환 신경망 기반 네트워크 패킷의 위험요소 분석 장치
KR102359597B1 (ko) 2018-12-05 2022-02-08 건국대학교 산학협력단 패킷 데이터에 대한 사이버 공격을 방어하기 위한 공격 방어 방법 및 이를 수행하는 장치들

Also Published As

Publication number Publication date
KR20220150545A (ko) 2022-11-11

Similar Documents

Publication Publication Date Title
CN112953924B (zh) 网络异常流量检测方法、系统、存储介质、终端及应用
Bendiab et al. IoT malware network traffic classification using visual representation and deep learning
US9923912B2 (en) Learning detector of malicious network traffic from weak labels
CN110808971B (zh) 一种基于深度嵌入的未知恶意流量主动检测系统及方法
CN109067586B (zh) DDoS攻击检测方法及装置
CN113806746B (zh) 基于改进cnn网络的恶意代码检测方法
CN107483451B (zh) 基于串并行结构网络安全数据处理方法及系统、社交网络
CN114553545A (zh) 一种入侵流量检测识别方法及系统
CN112491796A (zh) 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法
CN111460441A (zh) 一种基于批归一化卷积神经网络的网络入侵检测方法
CN114172688B (zh) 基于gcn-dl的加密流量网络威胁关键节点自动提取方法
CN115277189B (zh) 基于生成式对抗网络的无监督式入侵流量检测识别方法
CN115811440B (zh) 一种基于网络态势感知的实时流量检测方法
Saha et al. Genetic algorithm combined with support vector machine for building an intrusion detection system
Wang et al. Video object matching across multiple non-overlapping camera views based on multi-feature fusion and incremental learning
KR102525593B1 (ko) 네트워크 공격 탐지 시스템 및 네트워크 공격 탐지 방법
Bartos et al. Robust representation for domain adaptation in network security
CN116633601A (zh) 一种基于网络流量态势感知的检测方法
CN113705604A (zh) 僵尸网络流量分类检测方法、装置、电子设备及存储介质
KR102526935B1 (ko) 네트워크 침입 탐지 시스템 및 네트워크 침입 탐지 방법
Leevy et al. Feature evaluation for IoT botnet traffic classification
Kim et al. Malicious-traffic classification using deep learning with packet bytes and arrival time
CN110061869B (zh) 一种基于关键词的网络轨迹分类方法及装置
Khan et al. Anomaly Detection in IoT Using Machine Learning
Juvonen et al. Anomaly detection framework using rule extraction for efficient intrusion detection

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