KR20140065235A - 트래픽 분류 장치 및 방법 - Google Patents

트래픽 분류 장치 및 방법 Download PDF

Info

Publication number
KR20140065235A
KR20140065235A KR1020120132510A KR20120132510A KR20140065235A KR 20140065235 A KR20140065235 A KR 20140065235A KR 1020120132510 A KR1020120132510 A KR 1020120132510A KR 20120132510 A KR20120132510 A KR 20120132510A KR 20140065235 A KR20140065235 A KR 20140065235A
Authority
KR
South Korea
Prior art keywords
topic
flow
word
words
traffic
Prior art date
Application number
KR1020120132510A
Other languages
English (en)
Other versions
KR101448550B1 (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 KR1020120132510A priority Critical patent/KR101448550B1/ko
Publication of KR20140065235A publication Critical patent/KR20140065235A/ko
Application granted granted Critical
Publication of KR101448550B1 publication Critical patent/KR101448550B1/ko

Links

Images

Classifications

    • 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]

Abstract

본 발명은 트래픽 분류 장치 및 방법에 대하여 개시한다. 본 발명의 일면에 따른 트래픽 분류 장치는, 각 플로우의 소정 패킷의 초기 P바이트를 기설정된 워드 단위로 구분하고, 기설정된 횟수 이상 반복되는 워드를 입력 데이터로 선별하는 전처리부; 상기 입력 데이터를 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 상기 각 플로우의 토픽-여기서, 상기 토픽은 응용프로그램임-을 추출하는 토픽 모델링부; 상기 입력 데이터에서 추출된 상기 토픽별 워드 분포가 높은 L개의 워드를 추출하는 선별부; 및 추출된 상기 L개의 워드를 상기 각 플로우의 페이로드와 직접 매칭하여 상기 각 플로우의 상기 토픽을 할당하는 매칭부를 포함하는 것을 특징으로 한다.

Description

트래픽 분류 장치 및 방법{Apparatus and Method for Traffic Classificaiton}
본 발명은 트래픽 분류 기술에 관한 것으로서, 더 구체적으로는 트래픽에 대해 응용프로그램의 시그니처를 분류할 수 있는 트래픽 분류 장치 및 방법에 관한 것이다.
최근, 인터넷 발전과 함께 다양한 응용프로그램이 사용되고 있으며, 인기 있는 응용프로그램도 유행처럼 시간에 따라 변화하고 있다.
가령, 1990년대에는 웹(Web)이 주를 차지했다면, 2005년도에는 P2P 파일공유가 유행하였으며, 최근에는 유트브(Utube)와 같은 비디오 기반의 서비스가 유행하여 인터넷 트래픽의 주를 차지하고 있다.
그에 따라, 인터넷 트래픽도 급증하고 있어, 다량 트래픽을 정확히 파악하여 네트워크를 효율적으로 관리하는 기술의 중요성이 높아지고 있다.
네트워크 운영자는 네트워크의 트래픽을 파악하여 바람직하지않는 호스트들의 행동(attack)을 차단하거나, 서비스 차별화 같은 작업을 각 네트워크의 추세(Trend)에 맞게 준비하는 것이 필요하다.
이를 위해서, 네트워크 운영자는 지속적으로 새로운 응용프로그램의 특징과 통신 패턴을 파악해야 하는데, 그와 관련된 핵심 기술이 트래픽 분류기법이다. 즉, 인터넷 트래픽 분류란 분석 대상 네트워크의 트래픽을 수집하고, 응용 프로그램별로 분류하여 수량적으로 측정하는 것을 의미한다.
인터넷 트래픽 분석 기술은 가장 단순한 포트 기반 방법부터 플로우 정보를 이용한 기법, 호스트의 행동을 분석한 기법 혹은 이들을 결합하여 이용하는 방법 등 다양하고 활발하게 연구되고 있다. 그 중에서도, 미리 알고 있는 시그니처를 이용하여 트래픽을 분류하는 페이로드 기반 분석 방법은 여전히 확실하고, 정확한 네트워크 트래픽 분류 방법으로 평가되고 있다. 이러한 종래의 페이로드 기반 분석 방법은 정확한 시그니처 셋을 미리 알고 있어야 하는데, 시그니처 추출을 위해서는 사전 전문 지식이 필요하고, 시간 복잡도가 높은 단점이 있었다.
본 발명은 전술한 바와 같은 기술적 배경에서 안출된 것으로서, 토픽 모델링 기법을 이용하여 트래픽의 응용프로그램 시그니처를 분석할 수 있는 트래픽 분류 장치 및 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일면에 따른 트래픽 분류 장치는, 각 플로우의 소정 패킷의 초기 P바이트를 기설정된 워드(Word) 단위로 구분하고, 기설정된 횟수 이상 반복되는 워드를 선별하는 전처리부; 선별된 워드를 이용하여 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 상기 각 플로우의 토픽-여기서, 상기 토픽은 응용프로그램임-을 추출하는 토픽 모델링부; 상기 선별된 워드로부터 추출된 상기 토픽별 워드 분포가 높은 L개의 워드를 추출하는 선별부; 및 추출된 상기 L개의 워드를 상기 각 플로우의 페이로드와 직접 매칭하여 상기 각 플로우의 상기 토픽을 할당하는 매칭부를 포함하는 것을 특징으로 한다.
본 발명의 다른 면에 따른 트래픽 분류 장치에 의한 트래픽 분류 방법은, 각 플로우의 소정 패킷의 페이로드에서 초기 P바이트를 기설정된 워드 길이 W 단위로 분할하는 단계; 분할된 상기 복수의 워드에서 기설정된 임계치 이상 반복되는 적어도 하나의 워드를 선별하는 단계; 선별된 상기 적어도 하나의 워드를 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 상기 각 플로우의 토픽을 추출하는 단계; 상기 선별된 적어도 하나의 워드에서 추출된 상기 토픽별 워드 분포가 높은 L개의 워드를 추출하는 단계; 및 추출된 상기 L개의 워드를 상기 각 플로우의 페이로드에 직접 매칭(Direct Matching)시켜, 상기 각 플로우의 응용프로그램을 구분하는 단계를 포함하는 것을 특징으로 한다.
이때, 분류하는 단계에서, 상기 각 플로우 중에서 상기 응용프로그램별로 분류되지 않은 플로우의 L개의 워드에 대해, 상기 토픽을 추출하는 단계, 상기 워드를 추출하는 단계 및 상기 시그니처를 선별하는 단계를 수행하는 단계를 더 포함한다.
한편, 분할하는 단계 이전에, 기설정된 표준 포트를 이용하는 패킷들은 미리 분류하여 필터링하는 단계; 및 상기 필터링하는 단계에서 분류되지 않은 비표준 포트를 이용하여 패킷에 대해서 상기 각 플로우를 확인하는 단계를 더 포함하며, 상기 각 플로우는, 상기 비표준 포트를 이용하는 패킷을 포함할 수 있다.
본 발명에 따르면, 표준 포트를 사용하는 응용프로그램들뿐만 아니라, 그외 응용프로그램도 빠르고 정확하게 분류할 수 있다.
도 1은 LDA 그래픽 모델을 도시한 도면.
도 2는 LDA 토픽 모델을 도시한 도면.
도 3은 표 1의 각 데이터 집합에 대한 각 응용프로그램 플로우의 구성 비율을 도시한 그래프.
도 4는 워드 길이 설정에 따른 전체 정확도 및 거짓 양성을 도시한 그래프.
도 5는 임계횟수 설정에 따른 전체 정확도 및 입력 변환 시간을 도시한 그래프.
도 6은 토픽의 개수 설정에 따른 전체 정확도 및 LDA 토픽 모델링 소요 시간을 도시한 그래프.
도 7은 페이로드 반영 부분 설정에 따른 전체 정확도와 거짓 양성을 도시한 그래프.
도 8은 토픽당 추출할 워드 수 설정에 따른 전체 정확도와 거짓 양성을 도시한 그래프.
도 9는 본 발명의 실시예에 따른 트래픽 분류 기법(LDA)과 머신 러닝 알고리즘 기반의 트래픽 분류 기법의 성능을 비교하여 도시한 그래프.
도 10은 본 발명의 실시예에 따른 트래픽 분류 장치를 도시한 구성도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 구체 구성에 대해서 설명하기에 앞서 인터넷 트래픽 분류 기법(Port-based approach, Payload-based approach, Host-behavior-based approach 및 Flow features-based approach)의 예에 대해서 설명한다.
Port - based approach . 포트 기반 분류(Port-based Approach)는 인터넷 트래픽을 분류하는 가장 빠르고 단순한 방법이다. 하지만, 최근 새로 등장한 응용 프로그램(application)은 단순히 고정된 포트 번호만 이용하는 포트 기반 분류 기법만으로 분류되기 어렵다. 가령, P2P 응용 프로그램의 경우, 방화벽을 우회하기 위해 임의의 포트 번호를 이용하는 전략을 사용하며, 트로이 목마에 감염된 응용 프로그램들도 악의적으로 포트 번호를 숨기거나 임의의 포트를 사용하는 전략을 취한다. 여러 연구들은 최근의 트래픽을 포트 정보만으로 분류하는 경우, 정확도가 70%에도 미치지 못함을 말하고 있다.
Payload - based approach . 페이로드 기반 분류 방법은 패킷의 콘텐츠를 보고 응용프로그램을 식별하는 방법(Deep Packet Inspection)이다. 페이로드 기반 분류 방법은 각 응용프로그램에 대해 유일한 페이로드 시그니처를 얻어내면, 매우 정확한 결과를 얻을 수 있다. 그러나, 통상의 페이로드 기반 분류 방법은 모두 분류하려는 응용 프로그램들 즉, 대상을 알고 있다는 것을 전제로 한다. 즉, 통상의 페이로드 기반 분류 방법은 이미 알고 있는 응용 프로그램에 대해 시그니처 집합(set)을 추출하거나, 분류기(classifier)를 얻는 방법이므로, 알지 못하는 응용프로그램에 대해서는 정확한 분류가 어렵다는 한계가 있다.
Host - behavior - based approach . 호스트 행동 기반 분석 기법은 각 패킷이 주고받는 소스 호스트와 목적 호스트 간의 소셜 인터랙션(Interaction)을 관찰하여 트래픽을 구분하는 방법이다. 호스트 행동 기반 분석 기법의 대표적인 연구로 BLINC(T. Karagiannis, K. Papagiannaki, and M. Faloutsos. Blinc: Multilevel traffic classification in the dark. In ACM SIGCOMM, August 2005)가 있다. 호스트 행동 기반 분석 기법은 호스트의 프로파일 정보를 얻기 위해 그 호스트와 통신하는 목적지와 포트 관련 정보들을 모아서 이용한다. 실제로 분류하려는 트래픽의 프로파일과 규칙성을 발견해 두었던 응용프로그램 트래픽의 프로파일(시그니처라고 할 수 있다)을 비교하면서, 트래픽을 해당 호스트가 실행시킨 응용프로그램별로 분류한다. 이 방법은 비정상(Abnormal) 형식이나 웜(Worm) 형식의 P2P 트래픽을 감지하는데 효과적이며, 암호화된 페이로드의 분류에도 이용가능하다. 그러나, 세밀한 파라미터 설정을 필요로 하며, 때때로 정확도도 의심스럽고, 매우 많은 볼륨의 트래픽을 다루는 경우 등과 같이 모호한 행동 패턴이 나타나는 경우, 시간 복잡도가 높아지는 문제가 있다. 뿐만 아니라, 세부적인(Fine grained) 트래픽 분류가 어렵다는 단점이 있다.
Flow features - based approach . 플로우 정보 기반 방법은 패킷을 구성하는 플로우들의 통계적 정보들을 이용하는 방법이다. 이는 정보를 빠르고 효율적인 머신 러닝 알고리즘에 적용하는 기법으로 많은 연구가 이루어지고 있다. 머신 러닝 기법은 크게 지도학습(Supervised learning)과 자율학습(Unsupervised learning) 기법으로 나뉜다. 주로 지도학습(Supervised Mode) 기반의 연구들이 우수한 성능을 입증했다. 지도학습 기반 방법은 미리 사전 분류(Pre-classification)를 수행해 얻은 소규모의 예제를 이용해 트레이닝하여 분류 모델(Classifier)을 얻는 방법들을 소개한다. 이 방법은 라벨링한 트레이닝을 기반으로 미묘한 데이터 간의 차이를 구별하여 튜닝할 수 있으므로, 더 정확한 모델을 얻을 수 있다는 장점이 있다. 그러나, 정확한 트레이닝을 위해 일정량 이상의 트레이닝 예제가 필요하다는 한계가 있다. 이 같은 맥락에서 세미 지도학습(Semi-supervised) 머신 러닝을 이용한 방법도 제안된 바 있다. 반면, 자율학습(unsupervised Mode)은 데이터 간의 유사도를 자동으로 분석하여 클러스터링하는 기법으로 트레이닝 과정이 필요 없다는 장점이 있으며, 새로운 응용프로그램을 탐지할 수 있다는 특징이 있다. 또한, 자율학습 알고리즘 기반의 트래픽 분류 방법은 지도학습(Supervised) 기법에 비해, 느리고 상대적으로 정확도가 낮은 단점이 있다.
Hybrid clustering . 전술한 두 가지 기법을 혼용한 기법에 의해 트래픽을 분류할 수도 있다. 예를 들어, 페이로드 시그니처 기반 방법과 포트 기반 방법은 혼용하면, 정확도 및 속도를 향상시킬 수 있으며, 페이로드 정보 및 플로우 수치적 정보 기반의 방법을 혼용할 수도 있다.
이하, 본 발명의 실시예에 따른 LDA 토픽 모델링 기반의 트래픽 분석 방법에 대해서 설명한다.
<< 토픽 모델 기반 분류( TOPIC MODEL BASED CLASSIFICATION )>>
LDA(Latent Dirichlet Allocation) 알고리즘은 토픽 모델링 기법의 하나로서, 문서군(Corpus)에서 잠재 토픽을 추출할 수 있다. 본 발명의 실시예는 LDA 알고리즘을 이용하여 트래픽으로부터 그에 대응하는 응용프로그램의 프로토콜을 추출할 수 있다.
그런데, 트래픽(Hexadecimal)은 문서(Human Readable)와는 특징 및 형태가 달라, 트래픽에 LDA 알고리즘을 단순히 적용해서는 정확한 결과를 얻기가 어렵다.
따라서, 본 발명의 실시예에서는 트래픽을 문서군(Corpus)처럼 변환할 수 있는는 매칭 방법을 사용하는데, 여기서 하나의 문서는 하나의 트래픽 플로우와 매칭된다. 이때, 플로우는 5개의 튜플(Source IP, Destination IP, Source Port, Destination Port, Protocol ID)이 같은 패킷들의 묶음으로서, 통상 트래픽을 파악하는 기본 단위로 여겨진다.
본 발명의 실시예에서는 토픽 모델링을 통해 인터넷 트래픽들이 순수 응용프로그램의 플로우로 구성되도록 분류(Clustering)할 수 있다. 이하에서는, LDA 알고리즘에 대해서 간단히 소개한 후, 이를 트래픽 분류에 적용하기 위한 매칭 방법에 대해서 설명한다.
LDA 알고리즘
토픽 모델링이란 문서 모델링 기법의 하나로서, 자연어 처리(Natural Language Prossessing) 분야에서 많이 사용되며, 다양한 문서 컬렉션에서 추상적인 개념의 주제 즉, 토픽(Topic)을 찾아낼 수 있는 통계적 모델링 방법이다. 토픽 모델링은 많은 양의 텍스트 데이터(어떤 주제를 다루고 있는지 모르는 문서들)를 그 자체만 가지고 분석할 수 있는 가장 단순하고 효과적인 방법으로 평가받고 있다.
LDA 알고리즘은 대표적인 토픽 모델링 기법으로, 각 문서가 여러 토픽의 혼합으로 구성된다고 가정한다. 각 문서에서 관찰 가능한 요소는 각 문서 내의 관측 단어(Observed word; Wd,n)들이다. 각 문서가 도 1의 LDA 그래픽 모델에 따라 만들어진다고 가정하면 문서군의 생성확률은 하기의 수학식 1과 같다.
Figure pat00001
LDA 알고리즘은 주어진 문서데이터(Observable element)를 이용하여 숨겨진 요소(Letent variable zθ,ß)를 추론(Infer)한다. 상기 수학식 1을 최적화 문제로 바꾸어, 사후 확률(Posterior Probility)을 산출하면, 숨겨진 구조들을 얻을 수 있다. 즉, 이 과정을 통해서 문서들의 토픽 분포 θ와 토픽당 워드 분포 ß를 산출할 수 있다.
맵핑 이론
LDA 알고리즘으로 문서 모델링을 수행하면, 하나의 문서를 여러 토픽(Topic)들의 분포로 나타낼 수 있다. 본 명세서에서는 하나의 문서가 하나의 토픽에 특성화되어 있는 경우를 예로 들어 설명한다. 하나의 트래픽 플로우는 하나의 인터넷 응용프로그램에 의해 생성되고, 트래픽의 페이로드는 응용프로그램의 정보를 나타내는 유일한(Unique) 시그니처(Application Specific String)를 포함한다. 본 발명에서는 이러한 특징을 이용하여 각 플로우가 문서처럼 하나의 토픽(응용프로그램)을 다룬다고 가정한다. 즉, LDA 알고리즘이 문서군으로부터 토픽을 추론하는 것처럼, 플로우로 구성된 트래픽에서 응용프로그램을 찾아낼 수 있도록, 본 발명에서는 문서=플로우, 단어=시그니처, 및 토픽=응용프로그램으로 매핑시킨다.
예를 들면, 도 2와 같이, 각 플로우의 페이로드를 문서로 간주하여 LDA 토픽 모델에 입력한다. LDA 토픽 모델은 설정된 토픽 개수 K 만큼 입력 데이터로부터 토픽을 추출한다. 여기서, K 값의 설정에 대해서는 이후 파라미터 설정 과정과 함께 자세히 설명한다.
또한, 토픽 모델 정보는 문서에 대한 토픽 분포 θ(flow-topic multinomials)와 토픽당 워드 분포 ß(topic-word multinomials)를 포함한다.
본 발명의 실시예에서는 토픽 모델 정보를 이용해 네트워크 플로우들을 토픽(application)별로 클러스터링할 수 있다. 여기서, 토픽당 워드 분포 ß를 통해 토픽당 많이 등장하는 워드 리스트를 뽑을 수 있는데, 이것이 바로 토픽에 대한 시그니처라고도 볼 수 있다.
본 발명에서는 LDA 토픽 모델의 입력 데이터로 트래픽의 페이로드 정보를 이용한다. 이때, 플로우는 여러 패킷으로 구성되는데, 그 중 시그널 패킷의 초기 몇 바이트에 응용프로그램을 효과적으로 나타내는 시그니처가 포함된다. 관련 연구들에서, 시그니처가 나타나는 패킷들은 플로우의 처음에 나오는 패킷 1~2개(즉, 시그널 패킷)이고, 해당 패킷의 페이로드에 초기 16 바이트 내로 대부분의 시그니처가 등장하고 있음을 알 수 있다.
즉, 플로우가 어떤 응용프로그램으로부터 생성됐는지는 시그널 패킷의 페이로드 중 처음 일부만 보고 알 수 있다.
예를 들면, 플로우의 페이로드 중 시그널 패킷은 UDP 프로토콜의 경우 맨 첫 번째 패킷일 수 있고, TCP 프로토콜인 경우, 세방향(Threeway) 핸드셰이킹 이후 첫 번째로 페이로드가 존재하는 패킷일 수 있다.
한편, 본 발명에서는 효율적인 성능을 위해 그 밖에도 트래픽 페이로드에 하기와 같은 작업 A, B를 수행한다.
A. 페이로드를 소정 워드 단위로 구분. 통상, LDA 토픽 모델링을 위한 입력 데이터는 문서를 구성하는 워드와 워드 횟수를 나타내는 벡터로 표현된다. 그런데, 문서는 워드(Word)라는 개념이 확실히 있는 반면, 패킷은 워드라는 개념이 없다. 왜냐하면, 단어는 공백이나, '.', '?'와 같은 몇 가지의 구분자에 의해 하나의 단위로 식별 가능하지만, 트래픽 패킷들은 정해진 구분자(delimiter)가 없는 연속 16진수 코드(hexadecimal)로 구성되기 때문이다. 그러므로, 트래픽 플로우를 입력 데이터로 하여 LDA 토픽 모델링하기 위해서는 인위적으로 워드를 결정해야 하며, 워드 결정 방법은 성능에 큰 영향을 미친다. 따라서, 본 발명에서는 하기와 같은 방법으로 입력 데이터를 워드로 구분하였다.
본 발명에서는 W-bytes(W는 상수) 길이의 슬라이딩 윈도우(sliding window)를 워드로 규정하고, 페이로드 데이터에서 ibyte씩 슬라이딩하며 워드를 추출한다. 예컨대, W바이트는 2바이트일 수 있으며, 최적의 W 값에 대해서는 이후 파라미터 설정 과정과 함께 상세히 설명한다.
B. 페이로드에서 노이즈를 제거. 플로우에서 LDA 토픽 모델링에 이용될 부분은 페이로드 중 응용프로그램에 대한 특정 프로토콜(signature)이 포함된 부분이다. 따라서, 페이로드에서 응용프로그램 시그니처를 확실히 나타내는 부분 이외의 임의의 데이터 부분은 노이즈가라고 볼 수 있다. 그런데, 임의의 데이터 부분은 같은 응용프로그램에서 나온 패킷이더라도, 사용자에 따라 달리 생성되는 데이터 영역이므로 랜덤한 스트링일 수 있다. 그러므로, 임의의 데이터 부분을 포함한 패킷 페이로드의 전체 영역을 이용하여 LDA 토픽 모델링하면, 그 결과가 정확하지 않을 것이다. 따라서, 본 발명에서는 B-1, B-2 과정을 통해 페이로드에서 노이즈를 제거한다.
B-1. 페이로드의 초기 일부만 이용. 즉, 본 발명의 실시예에 따른 토픽 모델링은 입력 데이터로 시그니처가 포함된 범위를 이용한다. 그런데, 시그니처가 나타나는 부분은 플로우의 시그널 패킷의 초기 몇 개의 바이트이므로, 해당 부분만을 이용함에 따라 페이로드에서 노이즈를 제거할 수 있다.
B-2. 자주 등장하지 않는 워드를 제거. 핵심적인 페이로드의 시그니처 부분은 전체 트레이스(Trace)에 걸쳐 자주 등장할 것이다. 따라서, 입력될 전체 워드를 W(예컨대, 2 바이트) 워드 단위로 추출한 후, 임계횟수(threshold) 미만 반복되는 자주 등장하지 않는 불필요한 워드를 제거하여 입력 데이터를 구성함으로써, 패킷 페이로드에서 시그니처 이외의 부분을 제거할 수 있다.
실제로, 플로우의 소정 패킷의 페이로드를 2 바이트 워드로 추출하면, 상당히 많은 워드 리스트가 생성되며, 이중 상당 부분이 노이즈 영역(즉, 시그니처 이외의 영역)에서 추출된 워드이다. 그러나, 본 발명의 실시예는 입력 데이터에 대한 전처리 과정을 통해서 모델링 성능에 영향을 주지 않는 선에서 페이로드를 LDA 토픽 모델의 입력 벡터(input vector)로 표현하는데 소요되는 시간을 감소시킬 수 있다. 입력 변환 시간을 줄일 수 있는 임계횟수를 설정하는 과정에 대해서는 파라미터 설정 과정과 함께 후술한다.
전술한 바와 같이, 본 발명의 실시예에 따른 매핑 방식을 이용하면, LDA 알고리즘을 통해 플로우들을 모델링할 수 있다. 확률 모델 θ은 각 플로우의 토픽에 대한 확률 분포 p(z|d)들을 표현하므로, 확률 분포를 이용하여 플로우를 유력한 토픽별로 클러스터링하면, 간단히 모델링 가능하다. 그러나, 확률 분포만을 이용하는 경우, 높은 순도(Purity)를 가진 클러스터를 얻을 수 없다. 왜냐하면, 확률 분포는 LDA 알고리즘에 의해 발견된 토픽들에만 국한되어있기 때문이다.
실제로 LDA 토픽 모델은 문서군(Corpus) 내의 유력한 토픽들을 찾아내지만, 경우에 따라서는 적은 분포를 차지하는 토픽을 탐지하지 못할 수도 있다. 그러므로, 확률 모델 θ를 그대로 클러스터링에 이용하면, 추출된 토픽에 해당하지 않는 응용프로그램 플로우들은 잘못된 클러스터에 할당될 것이다.
이러한 문제를 방지하고자, 본 발명에서는 추출된 토픽에 해당하지 않는 플로우는 추출된 토픽 중 하나에 할당하지 않고 남겨둔다. 그리고, 남겨둔 플로우들은 다음 단계의 LDA 입력 데이터가 된다.
이를 위해, 본 발명에서는 β를 구성하는 각 토픽당 워드 분포 p(w|z)를 이용한다. 즉, LDA 토픽 모델은 p(w|z)모델을 이용해 각 토픽 워드 분포가 높은 순으로 L개의 워드(the most probable words)를 추출하여 각 플로우의 페이로드와 직접 매칭시키고 직접 매칭의 결과를 이용하여 각 플로우를 각 토픽에 할당하고, 어느 것과도 매칭되지 않는 플로우의 경우, 미분류(Unclassified)로 남겨둔다. 이때, 토픽 z에 대한 L개의 단어는 하기의 수학식 2와 같이 추출된다.
Figure pat00002
상기 수학식 2에서, βz(ω)는 토픽 z에 대한 워드들의 확률 분포 p(w|z)이며, 최적의 L값 설정에 대해서는 파라미터 설정 과정과 함께 후술한다. 이때, L개의 워드 목록은 해당 토픽(application)에 대한 시그니처와 유사한 의미가 된다. 전술한 방법을 통해 L개의 워드를 각 플로우에 직접 매칭시켜, 순수한 클러스터를 얻을 수 있었다.
그런데, LDA 토픽 모델링을 1회만 하고 직접 매칭으로 트래픽을 클러스터링하는 경우, 순수한 토픽으로 구성된 클러스터를 얻을 수는 있으나, 미분류 플로우(Unclassified flow)가 남는 단점이 있다. 여기서, 미분류 플로우는 LDA 토픽 모델이 미처 탐지하지 못한 응용프로그램에 대한 플로우일 것이다.
더욱이, 실제 트래픽은 응용프로그램의 트래픽들이 균일한 양으로 구성된 이상적인 데이터가 아니므로(imbalanced data set), LDA 알고리즘은 소수의 플로우로 구성된 응용프로그램에 대한 탐지를 놓칠 수 있다. 다시 말해, 데이터(Corpus) 내에서 각 토픽 분포는 완전히 균일하지는 않으므로, LDA 알고리즘을 통해 그 중 아주 명확한 패턴이나, 많은 볼륨으로 구성된 응용프로그램에 관련된 토픽들이 우선적으로 추출될 수 있다. 따라서, 트래픽을 구성하는 가능한 모든 응용프로그램을 탐지하기 위해 LDA 알고리즘을 멀티 단계(multi-step)에 걸쳐 실행하는 것이 좋다. 즉, 매 단계마다 토픽 모델을 얻은 후 직접 매칭하면서 순수한 클러스터를 얻고, 클러스터에 속하지 못한 플로우들(unclassified flows)을 또다시 다음 단계의 입력 데이터로 구성한다. 본 발명에서는 더 이상의 클러스터링이 불가능할 때까지(예컨대, 최대 10번까지) 클러스터링을 수행해 가능한 많은 클러스터를 얻어, 최대한 많은 응용프로그램을 탐지할 수 있다. 예를 들어, 직접 매칭 결과, 생성되는 클러스터가 없으면, 더 이상의 클러스터링이 불가능하다고 판단할 수 있다.
<< 실험 과정 >>
이하에서는 본 발명의 실시예에 따른 트래픽 분류 기법에서 단일 단계-직접 매핑 기법과 멀티 단계-직접 매칭 기법을 각기 수행할 경우의 실험 과정에 대해서 설명하겠다. 이를 위해서, 5개의 파라미터 설정이 필요한데, 이하에서는 각 파라미터의 값을 달리 설정해가며, 분류의 정확도를 관찰 후 최적의 파라미터를 설정할 수 있는 방법을 살펴보았다.
그 정확도 분석 방법은 (1)토픽 모델링을 통해 얻은 클러스터들을 각기 대응하는 응용프로그램으로 라벨링(Labeling)한 후, (2)각 토픽의 클러스터에서 대부분을 차지하는 응용프로그램 이름으로 라벨링(Labeling)하여 매핑(map)하고, (3)정확도 측정용 데이터(Ground Truth)로는 페이로드 시그니처 기반의 CRL_PAY 툴을 이용해 미리 응용 프로그램들에 대한 시그니처로 답을 준 후 트래픽 분류한 결과를 이용했다. 이때, 본 실험에서는 Blei. 오픈 소스 기반으로 구현된 LDA 알고리즘과, C++과 python 언어가 사용되었다. 또한, Weka(웨카) 머신 러닝 툴(Tool)과 NetraMark를 이용하여 성능 비교하였다.
본 실험에서는 2가지 측면에서 트래픽 분류 기법의 성능을 평가하기 위해 3개의 매트릭 전체 정확도(overall accuracy), 정밀성(precision) 및 recall을 이용하였다.
Overall Accuracy는 데이터 집합 내 전체 플로우의 수 중에서 각 클래스의 라벨과 맞게 분류된 플로우의 비율이다.
Precision은 각 클래스의 참 양성(true positives)과 거짓 양성(false positives)의 합에 대비한 참 양성(true positives)의 비율이다.
Recall은 각 클래스의 참 양성 및 거짓 양성에 대한 참 양성의 수이다.
본 실험에서는 분류기(Classifier)의 종합적 성능을 평가하기 위해 Overall Accuracy를 이용하였으며, 응용프로그램별로 분류 품질(Classification Quality)을 측정하기 위해 Precision과 Recall을 이용하였다.
본 실험에서는 5개의 데이터 집합(set)을 이용하였으며, 각 데이터 집합의 정보는 하기의 표 1과 같다.
Figure pat00003
표 1에서 5개의 데이터 집합을 구성하는 응용 프로그램의 정보는 CRL_PAY 분석에 의해 산출되었다. CRL_PAY 분석 툴에는 페이로드 기반 방법으로 미리 알려진 응용프로그램에 대한 시그니처 리스트 라이브러리가 구축되어 있어, CRL_PAY 분석은 구축된 라이브러리를 바탕으로 응용 프로그램을 분류한다. 표 1의 각 데이터 집합에 대한 각 응용프로그램 플로우의 구성 비율은 도 3과 같다. CRL_PAY 분석을 통해 구분된 표 1의 데이터의 응용프로그램 카테고리는 표 2와 같다. 본 발명의 실시예에서는 페이로드 기반 방법을 제안하므로, 데이터에서 페이로드가 없는 플로우는 제외하여 실험하였다.
Figure pat00004
이하에서는 본 발명의 실시예에 따른 토픽 모델링 기반의 트래픽 분류에서 최적의 성능을 얻기 위한 5개의 파라미터 설정 과정에 대해서 설명한다.
5개의 파라미터는 토픽의 개수 K, 페이로드 반영 부분 P, 워드 길이 W, 워드를 필터링할 임계횟수 T 및 토픽당 추출할 워드의 수 L이다.
본 과정에서는 서로 다른 5개의 데이터에 걸쳐, 성능 및 시간의 영향에 대해 실험하고, 각 파라메터의 경향성을 분석한 결과를 바탕으로 전반적으로 좋은 성능을 제공하는 일반적인 파라미터를 설정하였다. 실제 분류(Real classification)에서는 트래픽의 특성에 따라 각 파라미터의 영향들이 다를 수 있다. 본 과정에서는 트레이스 하나하나에 편중된 파라미터보다는 표 1에 제시된 여러 트레이스에 걸쳐 전반적으로 좋은 성능을 얻을 수 있는 일반적인 파라미터 설정을 찾는 것을 목표로 했다.
각 파라미터의 영향과 성능에 대한 일반적인 경향성을 파악하기 위해서 표 1의 각 트레이스에서 클래스 불균형 문제를 제거해야 한다. 왜냐하면, 로우 데이터(Raw data)는 응용 프로그램 트래픽 간의 불균등 분배(unequal distribution)로 인해, 각기 다른 응용프로그램에 대한 파라미터들의 균등 실험(equal testing)이 불가능하기 때문이다. 본 과정에서는 클래스 불균형 문제를 제거하기 위해서, 5개의 트레이스(데이터 집합)마다 응용프로그램 플로우의 개수를 1000개로 균형을 맞춰 랜덤 샘플링하여 합성 데이터를 만들었다. 또한, 파라미터 설정 결과의 신뢰성을 향상시키기 위해 각 트레이스마다 랜덤 샘플링을 통해 서로 다른 합성 데이터를 5개씩 생성하여 실험한 후 그 평균값을 각 파라미터에 따른 실험 결과로 사용했다. 또한, 파라미터마다 5개의 트레이스에 대해 평균적으로 가장 좋은 결과를 갖는 값을 선택함으로써, 다양한 데이터에 걸쳐 일반적인 파라미터 설정(general parameter settings)을 찾을 수 있었다.
Word 의 길이 W. 본 과정에서는 워드의 길이를 1 바이트부터 시작해서 1 바이트씩 변경해가며, 전체 페이로드를 설정된 워드 길이 단위로 구분하고, 각 워드 길이에 대한 전체 정확도(Overall Accuracy)과 거짓 양성(False Negative) 개수를 측정하였다. 성능과 효율성을 고려하여 나머지 초기 설정은 여러 측정을 참고하여 하기와 같이 설정했다. 이때, 페이로드 반영 길이는 핵심적인 시그니처가 대부분 페이로드의 초기 부분에 등장하고 그 길이가 길지 않음을 감안하여 노이즈를 최대한 제외하고 빠른 경향을 얻기 위해 5 바이트로 설정하였고, 필요 없는 워드를 필터링하기 위한 임계횟수 T는 100으로 설정하였다. 토픽의 개수 K는 모델링 소요 시간을 고려하여 10으로 설정하였고, 토픽당 워드 개수 L은 4로 설정했다.
이 같이, 페이로드 반영 길이 P=5byte, 토픽의 개수 K= 10, 토픽당 추출한 워드의 수 L=4, 필요 없는 워드를 제거하기 위한 임계횟수 T=100으로 설정하여 워드 길이에 따른 전체 정확도와 거짓 양성을 확인한 결과는 도 4와 같다. 여기서, 도 4(a)는 전체 정확도이며, 도 4(b)는 거짓 양성의 부분을 도시한 그래프이다.
도 4(a)에서 워드 길이가 2 바이트일 때 전체 정확도가 가장 높은 것을 알 수 있으며, 도 4(b)에서 거짓 양성의 비율이 워드 길이 2 바이트일 때 가장 작고, 그 이후로 점점 증가하는 것을 볼 수 있다.
그 이유는 워드 길이가 길수록 유일한 단어가 길어지므로, 시그니처 부분에서 추출된 단어임에도 불구하고, 등장 횟수가 적어져 T(임계횟수)에 의해 제거될 수 있기 때문이다.
뿐만 아니라, 워드 길이가 실제 시그니처의 길이보다 지나치게 짧을 경우에도 시그니처 범위에서 추출된 단어임에도 노이즈 영역에서 많이 등장하게 된다. 이 경우, 플로우 토픽의 내용을 유일하게 표현할 수 없어, 전체 정확도가 감소한다.
이 같이, 도 4에서 워드 길이 W가 2일 때 토픽 모델링이 가장 좋은 성능을 얻을 수 있다는 것을 알 수 있었다. 물론, 이는 다른 파라미터 설정에 따라 달라질 수 있으므로, 이에 한정되지 않는다.
임계횟수( Threshold ) T. 이하, 임계횟수 변화에 따른 토픽 모델링의 성능 경향성에 대해서 살펴본다. 워드 길이를 2 바이트로 설정했을 때, 보통 741656개의 플로우에서 초기 5 바이트 페이로드 범위에서 워드를 추출하면, 대략 62599개의 워드를 얻을 수 있다.
구체적으로 설명하면, 하나의 플로우의 페이로드에서 5byte 워드를 추출하면, 각 플로우에서 4개가 추출되며(2byte길이로 1byte씩 슬라이딩하며 추출하므로), 분류할 플로우가 741656개 있다면 741656*4개가 추출되어야 하지만, 중복된 워드들은 빼고 유일한 워드만을 고르면, 약 62599개가 추출될 수 있다.
예를 들면, 하나의 플로우의 초기 5byte는 [  24 07 A2 53 64  ] (16진수 두 개로 하나의 바이트가 구성됨)와 같은 형식인데, 이로부터 워드를 추출하면, 24 07 / 07 A2 / A2 53 / 53 64로 4개가 추출된다. 이런 식으로 741656개의 플로우에서 추출한 워드는 모두 유일하지는 않고, 많이 나와봤자 결국 "__ __"로 표현할 수 있는 모든 조합(4개의 자릿수에 나타날 수 있는 16진수의 조합)이 나올 수 있는 것이므로 16*16*16*16 = 65536개 정도의 워드 리스트를 얻을 수 있다. 그런데, 네트워크 트래픽 트레이스마다 페이로드 내용이 다양하므로, 65536개의 문자열이 다 나올 수 있고, 흔히 사용되지 않는 것은 안 나올 수도 있다. 그런데, 741656개의 플로우를 갖는 일 트레이스로 실제 실험한 결과, 62599개 정도의 워드 리스트가 추출되었다.
LDA 토픽 모델은 입력 데이터를 각 플로우의 페이로드를 횟수 기반으로 표현하여 이용하는데, 이때 추출된 워드를 모두 이용하면, 처리 시간이 오래 걸려 비효율적이다. 따라서, 본 발명에서는 워드 리스트에서 노이즈 워드를 제거해 필요한 부분만 이용하고 처리 속도를 빠르게 하기 위해, 추출된 워드를 임계횟수로 필터링한후 이용한다. 가령, 임계횟수가 2라면, 전체적으로 2번 이상 등장하는 워드 이외의 나머지 워드를 필터링을 통해 제거한다.
본 명세서에서는 임계횟수를 1부터 하나씩 증가시키며, 토픽 모델링의 전체 정확도 및 플로우 페이로드를 워드:주파수(Word:Frequency) 벡터로 표현하기 위한 시간(즉, 입력 변환 시간)을 분석하였다. 여기서, 나머지 파라미터 값은 K=10, L=4, P=5byte, W=2byte를 이용하였고, 그 실험 결과는 도 5와 같다.
도 5(a)에서, 임계횟수가 커질수록 전체 정확도가 감소하는 것을 확인할 수 있다. 그 이유는 임계횟수가 커지면, 본 발명의 토픽 모델링에 필요한 페이로드 부분도 임계횟수 기반으로 제거될 수 있기 때문이다. 실제로 임계횟수가 너무 높을 때는 토픽 모델링에 필요한 워드들도 제거되기 때문에, 거짓 양성(False Negative)도 증가하였다.
그러나, 도 5(b)에서, 임계횟수가 1일 때(즉, 추출된 워드 리스트를 모두 이용하여 토픽 모델링하는 경우)는 알고리즘 속도 효율이 낮으며, 임계횟수를 증가시킬수록 입력 변환 시간(Input conversion time)이 줄어드는 경향을 발견했다.
이러한 경향을 고려하여, 본 과정에서는 정확도를 어느 정도 유지하면서, 워드 리스트를 모두 이용할 때보다는 입력 변환 시간이 빠르도록 최적의 임계횟수 값을 2로 설정하였다.
토픽의 개수 K의 영향. 모델링할 토픽의 개수 K는 LDA 알고리즘의 중요한 파라미터이다. 플로우가 어떤 응용프로그램으로 구성되느냐에 따라서, 적절한 K값은 달라질 수 있다. 가령, HTTP와 같은 응용 프로그램의 경우에는 트래픽 타입이 스트리밍(Streaming), 브라우징(browsing) 및 벌크 다운로드(bulk download) 등으로 구성되어 다양성(diversity)이 크므로, K값을 충분히 크게 지정하는 것이 좋다.
본 과정에서는 K값을 10부터 10씩 변화시키며, 토픽 모델링의 성능 경향성을 측정하였다. 그 결과, 도 6과 같이, K가 변할 때 가장 많이 영향을 받는 두 가지 측면인 전체 정확도와 LDA 토픽 모델링 소요 시간을 그래프로 표현하였다.
도 6(a)에서, K가 증가할수록 전체 트레이스에 걸쳐 전체 정확도가 증가하는 경향을 확인할 수 있다. 이는 전술한 바와 같이, 응용프로그램마다 다양한 프로토콜이 나타날 수 있으므로, 충분한 K값을 설정했을 경우, LDA 알고리즘에 의해 각 응용프로그램의 프로토콜별로 순수한 클러스터를 추출할 수 있기 때문이다.
반면, 도 6(b)에서, K가 매우 크게 설정되면, 토픽 모델링 속도가 현저히 느려짐을 알 수 있다. 이 같이, K는 모델링 소요 시간에 매우 민감하게 영향을 미친다. 그러나, 더 큰 용량의 데이터에 대해서도 본 발명의 실시예에 따른 토픽 모델을 적용할 수 있어야 하므로(Scalability), K는 토픽 모델링 속도를 고려하여 설정되는 것이 좋다. 뿐만 아니라, 최적의 K값은 데이터의 크기 및 응용프로그램의 개수에 따라서도 달라지므로, K값을 지정하는 것은 중요하면서도 어려운 일이다.
본 과정에서는 전체 정확도와 모델링 소요 시간을 고려하여 최적의 K값을 100으로 설정한다. 물론, 이는 항상 최적의 값은 아니지만, 다양한 트레이스에 걸쳐 실험했을 때 전반적으로 높은 전체 정확도를 제공하는 값이었다. 한편, K를 100으로 설정한 상태에서, 로우 트레이스(Raw Trace)을 이용하여 본 발명의 성능을 실험하여도 보통의 처리시간(moderate processing time) 및 높은 정확도(high accuracy)를 얻을 수 있었다.
페이로드 반영 부분 P. 이하, LDA 토픽 모델링할 때 플로우의 페이로드를 얼마나 반영할지에 대한 파라미터 설정에 대해서 설명한다.
본 과정에서는 페이로드의 반영 길이 P를 초기 5byte에서 10byte, 15byte 및 20byte로 변경해가며 토픽 모델링의 성능 경향성을 측정했다. 그외 나머지 파라미터는 W=2byte, L=4, K=100 및 T=2로 고정하여, 도 7과 같이, P 값의 변화에 따른 전체 정확도와 거짓 양성을 측정하였다.
도 7(a)에서 P를 10byte로 설정했을 때 5개의 트레이스 모두에 대해 가장 좋은 전체 정확도를 얻을 수 있음을 알 수 있다. 또한, 도 7(b)에서도 P가 10byte일 때 거짓 양성의 개수가 5개의 트레이스에 대해 가장 낮은 것을 알 수 있다. 본 과정에서는 LDA 토픽 모델링할 때 플로우 시그널 패킷에서 최적의 페이로드 반영 부분을 초기 10byte로 설정하였다. 물론, 이는 나머지 파라미터 설정 및 데이터에 따라 달라질 수 있으므로 이에 한정되지 않는다.
토픽당 워드 수 L. 본 발명의 실시예에서는 토픽을 추출한 후 토픽당 분포 빈도가 높은 L개의 워드를 추출하여 플로우와 직접 매칭해 순수 클러스터를 얻는데, 이하 토픽당 추출 워드 수 L에 따른 성능 경향성에 대해서 설명한다.
이를 위하여, 본 과정에서는 L의 값을 1부터 하나씩 증가시키며, 표 1의 5개의 데이터 집합에 대해 LDA 알고리즘을 수행하였다. 나머지 파라미터 값은 K=100, P=10(byte), T=2 및 W=2(byte)로 고정하였다. 본 과정에서는 L 값이 순수 클러스터를 만드는데, 끼치는 영향을 파악하기 위해 멀티 단계(Multi-Step)가 아닌 단일 단계(one-step) 결과를 이용하여 토픽 모델링의 성능 경향성을 분석하여, 도 8과 같이 전체 정확도와 거짓 양성을 도시하였다.
도 8(a)에서, L 값이 5가 될 때까지는 L이 증가할수록 전체 정확도가 증가함을 알 수 있고, 도 8(b)에서도 L이 5까지는 L이 증가할수록 거짓 양성의 수가 급격히 줄어드는 것을 알 수 있다. 그러나, L의 값이 6 이상부터 전체 정확도가 미세하게 감소하고, 거짓 양성도 거의 개선되지 않으며, 어떤 트레이스는 오히려 악화 되었다. 이 이유는 L의 값을 너무 크게 했을 경우, 해당 토픽에 관련 없는 낮은 확률 값의 워드도 추출되기 때문이다. 따라서, 본 과정에서는 전체 정확도를 고려하여 최적의 토픽당 워드 수 L을 5로 설정하였다.
<< 실험 결과 >>
성능 비교. 이하, 실제 트레이스를 이용하여 LDA 토픽 모델 기반 트래픽 분류 기법을 적용한 실험 결과에 대해서 기술한다. 구체적으로, 본 발명의 실시예에 따른 토픽 모델링 기법과 종래의 트래픽 분류 기법(affic Classification approach)의 성능을 비교하여 설명하겠다. 이때, 각 트래픽 분류 기법 간의 동등한 비교를 위해 실험에는 1000개씩 응용 프로그램 볼륨을 맞춘 합성 데이터를 이용했다. 또한, CRL_PAY 툴을 이용한 페이로드 시그니처 기반(Payload Signature based) 기법을 정확도 측정용 데이터(Ground Truth)로 얻어, 본 발명과 종래의 기법(Scheme)들과 비교하였다.
먼저, 합성 데이터를 이용한 본 발명의 실시예에 따른 트래픽 분류 기법(LDA)과 머신 러닝 알고리즘 기반의 트래픽 분류 기법의 성능을 비교한다.
본 실험에서는 WEKA 기계 학습 소프트웨어 슈트(Suite)("http://www.cs.waikato.ac.nz/ml/weka/" 참조)를 이용했고, 키 플로우 정보(key flow feature)를 이용하여 실험적 설정을 하였다.
전술한 바와 같이, 본 실험에서는 각 트래픽 분류 기법에 대한 동등 비교를 위해 5개의 트레이스에 대한 합성 데이터를 이용해 실험하였고, 크로스 확인(Cross-validation)을 이용해 비교 기법의 성능을 측정하였다. 전반적인 실험 결과는 도 9의 그래프와 같다.
도 9에 도시된 바와 같이, 머신 러닝 알고리즘 기반의 트래픽 분류 기법 중 베이지안 네트워크(Bayesian Network), C4.5 결정 트리 및 K-NN(K-Nearest Neighbor) 기법들의 전체 정확도가 약 90% ~ 98%로, 우수하였다. 그러나, 해당 기법은 트레이닝(즉, 분류하려는 응용프로그램에 대한 정보)이 필요한 단점이 있다.
반면, 본 발명의 실시예에 따른 LDA 토픽 모델링 기법(도 9의 LDA)은 분류하려는 트래픽에 대한 정보 없이, 클러스터링을 수행하였음에도 불구하고, 90% 이상의 우수한 정확도를 나타내며, 종래의 우수한 기법들과 비교할 때 동등 수준의 결과를 얻을 수 있음을 보였다. 전술한 바와 같이, 균형 잡힌 데이터로 실험했을 때 본 발명의 실시예에 따른 LDA 토픽 모델링 기반 방법이 93~99% 정도의 전체 정확도를 얻을 수 있었다.
다음으로, 클래스 간 불균형 문제를 제거하지 않은(즉, 각 응용 프로그램 트래픽의 양을 균형화시키지 않은) 표 1의 로우 트래픽 트레이스(Raw traffic trace)에 대한 토픽 모델 기반 분류(topic model based classification)의 성능에 대해서는 설명한다. 실제 네트워크 트래픽은 각 응용프로그램에 대한 플로우 볼륨이 균일하지 않으므로, 로우 트래픽 트레이스에 대한 실험을 통해 실제 트래픽에 대한 분류 성능을 파악할 수 있다.
본 실험에서는 전체 정확도뿐만 아니라, 각 응용프로그램당 분류 품질(Classification Quality)을 파악하기 위해 정밀도(Precision)과 리콜(Recall)도 측정했다.
또한, 실험 속도 개선 및 새로운 응용프로그램(New application)의 탐지와 분류 능력을 집중적으로 알아보기 위해 각 트레이스에서 포트 분류 기법으로 쉽게 분류할 수 있는 표준 포트를 이용하는 전형적인 응용프로그램들을 제외하여 실험하였다.
본 실험에서는 전술한 최적의 파라미터 설정 과정을 통해서 기결정된 일반적인 파라미터 설정을 이용하였는데, 각 5개의 로우 트레이스에 대한 전체 정확도와 분류 품질은 하기의 표 3과 같다.
Figure pat00005
표 3은 표 1의 5개의 데이터 집합에 대해 응용프로그램 플로우들의 구성 비율(flows), LDA 기반 트래픽 분류 결과를 나타내는 전체 정확도, 정밀도(Precision) 및 리콜(Recall)을 나타낸다.
구체적으로, 표 3의 (a)는 Keio-1과 Keio-2 데이터 집합에 대한 토픽 모델링 결과를 나타내며, 그 전체 정확도는 각각 97.95%, 96.13%로 우수한 성능을 보인다. 특히, keio-1 데이터 중에서 차지하는 비율이 0.5%인 응용프로그램 GoToMyPC에 대해서도 정밀도(Precision)과 리콜(Recall)이 각각 96.08%, 94.23%으로 본 발명의 실시예에 따른 기법이 우수한 분류 품질을 갖는 것을 알 수 있다.
마찬가지로, 표 3의 (b)의 WIDE과 KAIST 데이터 집합에 대한 모델링 결과에서도 클래스(App)마다 우수한 분류 품질을 가지며, 전체 정확도도 약 96%~98%로 높은 것을 확인할 수 있다.
이와 같이, 본 발명에 따르면, 분류하려고 하는 대상 응용프로그램 정보나, 해당 응용 프로그램에 대한 플로우 예(Flow examples)와 같은 사전 지식이나 자료(추가적인 데이터)를 이용하지 않고, 대량의 네트워크 트래픽의 로우 데이터(Raw Data) 자체만으로, 네트워크 트래픽을 빠르고 정확하게 분류할 수 있다. 따라서, 본 발명의 실시예는 추가적인 데이터로 인한 메모리 자원 및 속도 낭비를 개선할 수 있다.
또한, 본 발명에서는 각 토픽별로 L개의 워드 리스트를 추출해 직접 매칭을 수행함에 따라 순수한 응용프로그램 플로우로 구성된 클러스터를 얻을 수 있다. 이때, 토픽에 대한 L개의 워드 리스트는 마치 응용 프로그램 시그니처를 찾아내는 개념과도 유사하므로, 페이로드 스트링으로부터 나온 L개의 워드를 잘 정제할 수 있다면, 응용프로그램의 완전한 시그니처 집합을 얻을 수도 있다.
뿐만 아니라, 본 발명의 실시예에 따르면, LDA 토픽 모델링을 바탕으로 토픽 모델링을 트래픽 분류에 적용시켜, 효과적인 문서군과 트래픽 간의 매칭 방법 및 고순도 클러스터(High Purity Cluster) 기법을 제공할 수 있다.
더욱이, 본 발명의 실시예는 전술한 로우 트레이스에 대한 실험 결과와 같이, 상대적으로 적은 양(0.2%~0.5%)을 차지하는 응용프로그램의 트래픽도 검출할 수 있으며, 트래픽 클러스터링과 동시에 각 토픽에 대한 토픽당 워드 리스트 집합을 얻을 수도 있어, 이로부터 응용프로그램이 발생시키는 페이로드의 공통된 패턴을 파악할 수 있고, 그 라벨링을 용이하게 수행할 수 있다.
더 나아가, 본 발명의 실시예는 파라미터의 설정에 따라 종래의 우수한 기법의 알고리즘과도 동등 또는 유사 수준의 성능을 얻을 수 있으며, 95%~98% 정도의 체 정확도를 얻을 수 있고, 분류 품질을 높일 수 있다.
이하, 도 10을 참조하여 본 발명의 실시예에 따른 장치에 대해서 설명하기로 한다. 도 10은 본 발명의 실시예에 따른 트래픽 분류 장치를 도시한 구성도이다.
도 10에 도시된 바와 같이, 본 발명의 실시예에 따른 트래픽 분류 장치(10)는 전처리부(110), 토픽 모델링부(120), 선별부(130) 및 매칭부(140)를 포함한다.
전처리부(110)는 각 플로우의 소정 패킷의 초기 P바이트를 기설정된 워드 단위로 구분하고, 기설정된 임계횟수 T 이상 반복되는 워드를 선별한다.
여기서, 각 플로우의 소정 패킷은 플로우의 페이로드 중에서 시그널 패킷일 수 있다. 예를 들어, UDP 프로토콜의 경우 맨 첫 번째 패킷이며, TCP 프로토콜인 경우 세방향(Threeway) 핸드셰이킹 이후 첫 번째로 페이로드가 존재하는 패킷일 수 있다.
또한, 페이로드 반영 부분 P 및 임계횟수 T의 설정 과정에 대해서는 전술하였으므로, 그에 대한 상세한 설명은 생략한다.
토픽 모델링부(120)는 선별된 워드를 이용하여 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 각 플로우의 토픽을 추출한다.
여기서, 토픽은 응용프로그램이며, 토픽 모델링부(120)는 전술한 파라미터 설정 과정을 통해 기설정된 토픽 개수 K 개의 플로우의 응용프로그램을 추출할 수 있다.
이때, LDA 토픽 모델링은 문서를 구성하는 워드와 워드 횟수를 나타내는 벡터를 입력 데이터로 하므로, 토픽 모델링(120)부는 선별된 워드를 이용하여 <임계횟수 이상 반복되는 워드를 표현하는 인덱스: 이 워드의 반복 횟수>와 같은 입력 데이터를 구성하여 LDA 토픽 모델링을 수행한다.
선별부(130)는 선별된 워드 중에서 추출된 토픽별 워드 분포가 높은 L개의 워드를 추출한다. 즉, 선별부(130)는 각 플로우에 대해 선별된 워드 중에서 추출된 각 플로우의 토픽별로 각 플로우에서 상대적으로 많이 사용되는 순서로 L개의 워드를 추출한다.
매칭부(140)는 추출된 L개의 워드를 각 플로우의 페이로드와 직접 매칭하여 각 플로우를 토픽에 할당한다.
매칭부(140)는 직접 매칭 결과, 각 플로우 중에서 토픽에 할당되지 않은(Unclassfied) 플로우의 입력 데이터에 대해서는 복수 단계의 토픽 할당을 실행한다. 여기서, 매칭부(140)는 복수 단계의 토픽 할당을 위해서 어느 토픽에도 할당되지 않은 선별된 워드를 토픽 모델링부(120)에 재입력시켜 토픽 모델링을 다시 수행한다. 이때, 매칭부(140)는 더 이상 클러스터링이 불가능할 때까지 복수 단계의 토픽 할당을 수행할 수 있다. 예를 들어, 매칭부(140)는 직접 매칭 결과 토픽에 할당된 플로우가 하나도 없으면, 더 이상의 클러스터링이 불가능하다고 판단할 수 있다.
한편, 본 발명의 실시예에 따른 트래픽 분류 장치(10)는 표준 포트 기법에 의해 패킷을 분류하는 필터(미도시)를 더 포함할 수 있다. 이때, 필터(미도시)는 인터넷 패킷 중에서 기설정된 표준 포트를 이용하는 패킷들을 미리 분류하여 필터링한다. 이 경우, 전처리부(110)는 필터(미도시)에 의해 분류되지 않은 비표준 포트를 이용하는 패킷을 포함하는 플로우를 입력받는다. 이때, 필터(미도시)는 트래픽 분류 장치(10)의 외부에 포함될 수도 있음은 물론이다.
이와 같이, 본 발명의 실시예에 따른 트래픽 분류 장치(10)는 순서 매칭의 소요 시간과 LDA 알고리즘 실행 시간 등의 문제로 인해 실시간으로 대량 트래픽을 송수신하는 네트워크 라우터의 트래픽 분류에 적용하면 복잡도 및 속도 문제가 생길 수 있다. 그러나, 이러한 문제는 전술한 바와 같이, 본 발명의 실시예에 따른 토픽 분류 기법과 포트 기반 분류 기법을 함께 사용하면 완화될 수 있다.
예를 들어, 표준 포트를 이용하는 패킷들을 미리 분류하여 필터링시킨 후 남아있는 비표준 포트를 이용하는 패킷을 대상으로 본 발명의 실시예에 따른 LDA 알고리즘을 적용하면, 남아있는 플로우(Unknown Flows)에 대한 분류는 물론이고, 각 응용프로그램이 어떠한 응용프로그램 프로토콜(Signature)을 이용하는가를 신속하고 정확하게 파악할 수 있다.
이러한 방식으로, 본 발명의 실시예는 표준 포트를 사용하는 응용프로그램들뿐만 아니라, 그렇지 않은 P2P나 게임, 스트리밍 관련 응용프로그램도 분류할 수 있다.
무엇보다도, 본 발명의 실시예는 분류하려고 하는 대상 응용프로그램 정보나, 해당 응용 프로그램에 대한 플로우 정보(Flow examples)와 같은 사전 지식이나 자료를 구비하지 않고, 대량 네트워크 트래픽의 로우 데이터(Raw Data) 자체만 가지고도, 토픽 모델링을 통해 빠르고 정확하게 트래픽을 분석할 수 있다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.

Claims (8)

  1. 각 플로우의 소정 패킷의 초기 P바이트를 기설정된 워드(Word) 단위로 구분하고, 기설정된 횟수 이상 반복되는 워드를 선별하는 전처리부;
    선별된 워드를 이용하여 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 상기 각 플로우의 토픽-여기서, 상기 토픽은 응용프로그램임-을 추출하는 토픽 모델링부;
    상기 선별된 워드로부터 추출된 상기 토픽별 워드 분포가 높은 L개의 워드를 추출하는 선별부; 및
    추출된 상기 L개의 워드를 상기 각 플로우의 페이로드와 직접 매칭하여 상기 각 플로우의 상기 토픽을 할당하는 매칭부
    를 포함하는 트래픽 분류 장치.
  2. 제1항에 있어서, 상기 매칭부는,
    상기 직접 매칭 결과, 상기 각 플로우 중에서, 상기 토픽에 할당되지 않은 플로우의 추출된 L개의 워드를 상기 토픽 모델링부에 재입력시켜, 복수 단계의 토픽 할당을 수행하는 것인 트래픽 분류 장치.
  3. 제2항에 있어서, 상기 매칭부는,
    상기 직접 매칭을 통해 상기 토픽에 할당되는 플로우가 하나도 없으면, 상기 복수 단계의 토픽 할당을 수행하지 않는 것인 트래픽 분류 장치.
  4. 제1항에 있어서, 상기 전처리부는,
    기설정된 표준 포트를 이용하는 패킷들은 분류 및 필터링하는 필터에 의해 분류되지 않은 비표준 포트를 이용하여 패킷을 포함하는 상기 각 플로우를 입력받는 것인 트래픽 분류 방법.
  5. 제1항에 있어서, 상기 플로우의 소정 패킷은,
    페이로드를 포함하는 것인 트래픽 분류 방법.
  6. 트래픽 분류 장치에 의한 트래픽 분류 방법으로서,
    각 플로우의 소정 패킷의 페이로드에서 초기 P바이트를 기설정된 워드 길이 W 단위로 분할하는 단계;
    분할된 상기 복수의 워드에서 기설정된 임계치 이상 반복되는 적어도 하나의 워드를 선별하는 단계;
    선별된 상기 적어도 하나의 워드를 LDA(Latent Dirichlet Allocation) 토픽 모델링하여 상기 각 플로우의 토픽을 추출하는 단계;
    상기 선별된 적어도 하나의 워드에서 추출된 상기 토픽별 워드 분포가 높은 L개의 워드를 추출하는 단계; 및
    추출된 상기 L개의 워드를 상기 각 플로우의 페이로드에 직접 매칭(Direct Matching)시켜, 상기 각 플로우의 응용프로그램을 구분하는 단계
    를 포함하는 트래픽 분류 방법.
  7. 제6항에 있어서,
    상기 분류하는 단계에서, 상기 각 플로우 중에서 상기 응용프로그램별로 분류되지 않은 플로우의 L개의 워드에 대해, 상기 토픽을 추출하는 단계, 상기 워드를 추출하는 단계 및 상기 시그니처를 선별하는 단계를 수행하는 단계
    를 더 포함하는 트래픽 분류 방법.
  8. 제6항에 있어서, 상기 분할하는 단계 이전에,
    기설정된 표준 포트를 이용하는 패킷들은 미리 분류하여 필터링하는 단계; 및
    상기 필터링하는 단계에서 분류되지 않은 비표준 포트를 이용하여 패킷에 대해서 상기 각 플로우를 확인하는 단계를 더 포함하며,
    상기 각 플로우는, 상기 비표준 포트를 이용하는 패킷을 포함하는 것인 트래픽 분류 방법.
KR1020120132510A 2012-11-21 2012-11-21 트래픽 분류 장치 및 방법 KR101448550B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120132510A KR101448550B1 (ko) 2012-11-21 2012-11-21 트래픽 분류 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120132510A KR101448550B1 (ko) 2012-11-21 2012-11-21 트래픽 분류 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140065235A true KR20140065235A (ko) 2014-05-29
KR101448550B1 KR101448550B1 (ko) 2014-10-13

Family

ID=50892209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120132510A KR101448550B1 (ko) 2012-11-21 2012-11-21 트래픽 분류 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101448550B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104574965A (zh) * 2015-01-11 2015-04-29 杭州电子科技大学 一种基于海量交通流数据的城市交通热点区域划分方法
KR101631242B1 (ko) * 2015-01-27 2016-06-16 한국전자통신연구원 잠재 디리클레 할당을 이용한 악성 트래픽의 시그니처의 자동화된 식별 방법 및 장치
CN106326495A (zh) * 2016-09-27 2017-01-11 浪潮软件集团有限公司 一种基于话题模型的中文文本自动分类方法
EP3174264A1 (en) * 2015-11-24 2017-05-31 Electronics and Telecommunications Research Institute Apparatus and method for automatically generating detection rule
CN106844424A (zh) * 2016-12-09 2017-06-13 宁波大学 一种基于lda的文本分类方法
CN116303893A (zh) * 2023-02-23 2023-06-23 哈尔滨工业大学 基于lda主题模型的主播形象分类与关键特质分析方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101816868B1 (ko) * 2015-11-24 2018-01-09 한국전자통신연구원 탐지 규칙 검증 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL9000533A (nl) * 1990-03-07 1991-10-01 Philips Nv Werkwijze voor de overdracht van radio-data-systeemsignalen met verkeersprogramma-identificatie en ontvanger voor dergelijke radio-data-systeemsignalen.
IL146539A0 (en) 1999-05-18 2002-07-25 Solidum Systems Corp Packet classification state machine
RU2372647C2 (ru) * 2003-10-24 2009-11-10 Майкрософт Корпорейшн Внедрение сообщения описания сеанса в сообщение протокола управления передачей в реальном масштабе времени (rtcp)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104574965A (zh) * 2015-01-11 2015-04-29 杭州电子科技大学 一种基于海量交通流数据的城市交通热点区域划分方法
KR101631242B1 (ko) * 2015-01-27 2016-06-16 한국전자통신연구원 잠재 디리클레 할당을 이용한 악성 트래픽의 시그니처의 자동화된 식별 방법 및 장치
US20160219068A1 (en) * 2015-01-27 2016-07-28 Electronics And Telecommunications Research Institute Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
EP3051767A1 (en) * 2015-01-27 2016-08-03 Electronics and Telecommunications Research Institute Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
EP3174264A1 (en) * 2015-11-24 2017-05-31 Electronics and Telecommunications Research Institute Apparatus and method for automatically generating detection rule
CN106326495A (zh) * 2016-09-27 2017-01-11 浪潮软件集团有限公司 一种基于话题模型的中文文本自动分类方法
CN106844424A (zh) * 2016-12-09 2017-06-13 宁波大学 一种基于lda的文本分类方法
CN116303893A (zh) * 2023-02-23 2023-06-23 哈尔滨工业大学 基于lda主题模型的主播形象分类与关键特质分析方法
CN116303893B (zh) * 2023-02-23 2024-01-30 哈尔滨工业大学 基于lda主题模型的主播形象分类与关键特质分析方法

Also Published As

Publication number Publication date
KR101448550B1 (ko) 2014-10-13

Similar Documents

Publication Publication Date Title
KR101448550B1 (ko) 트래픽 분류 장치 및 방법
Li et al. Nearest neighbors based density peaks approach to intrusion detection
CN105577679B (zh) 一种基于特征选择与密度峰值聚类的异常流量检测方法
CN110311829B (zh) 一种基于机器学习加速的网络流量分类方法
Fontugne et al. Mawilab: combining diverse anomaly detectors for automated anomaly labeling and performance benchmarking
CN1881950B (zh) 使用频谱分析的分组分类加速
CN110796196B (zh) 一种基于深度判别特征的网络流量分类系统及方法
JP7135980B2 (ja) 登録システム、登録方法及び登録プログラム
CN105871619B (zh) 一种基于n-gram多特征的流量载荷类型检测方法
CN104468262B (zh) 一种基于语义敏感的网络协议识别方法及系统
CN108965347A (zh) 一种分布式拒绝服务攻击检测方法、装置及服务器
US11888874B2 (en) Label guided unsupervised learning based network-level application signature generation
US9647947B2 (en) Block mask register key processing by compiling data structures to traverse rules and creating a new rule set
Liu et al. A distance-based method for building an encrypted malware traffic identification framework
CN113645232A (zh) 一种面向工业互联网的智能化流量监测方法、系统及存储介质
CN112667750A (zh) 一种报文类别的确定、识别方法及装置
CN109660656A (zh) 一种智能终端应用程序识别方法
Tang et al. HSLF: HTTP header sequence based LSH fingerprints for application traffic classification
Min et al. Online Internet traffic identification algorithm based on multistage classifier
Chung et al. An effective similarity metric for application traffic classification
CN112235242A (zh) 一种c&amp;c信道检测方法及系统
CN110061869B (zh) 一种基于关键词的网络轨迹分类方法及装置
Kong et al. A method of detecting the abnormal encrypted traffic based on machine learning and Behavior characteristics
CN115297189B (zh) 一种人机协作的快速工控协议逆向分析方法及系统
Tao et al. Profiling and identifying users' activities with network traffic analysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 5