KR101560820B1 - 시그니처 기반 어플리케이션 식별 장치 및 방법 - Google Patents

시그니처 기반 어플리케이션 식별 장치 및 방법 Download PDF

Info

Publication number
KR101560820B1
KR101560820B1 KR1020130147640A KR20130147640A KR101560820B1 KR 101560820 B1 KR101560820 B1 KR 101560820B1 KR 1020130147640 A KR1020130147640 A KR 1020130147640A KR 20130147640 A KR20130147640 A KR 20130147640A KR 101560820 B1 KR101560820 B1 KR 101560820B1
Authority
KR
South Korea
Prior art keywords
application
signature
signatures
applications
matching
Prior art date
Application number
KR1020130147640A
Other languages
English (en)
Other versions
KR20150062704A (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 KR1020130147640A priority Critical patent/KR101560820B1/ko
Publication of KR20150062704A publication Critical patent/KR20150062704A/ko
Application granted granted Critical
Publication of KR101560820B1 publication Critical patent/KR101560820B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis

Abstract

본 발명은 시그니처 기반 어플리케이션 식별 방법으로, 미지의 플로우에 포함된 하나 이상의 시그니처를 추출하는 단계와, 상기 추출된 하나 이상의 시그니처에 매칭되는 어플리케이션이 둘 이상일 경우, 상기 둘 이상의 어플리케이션들 중에서 하나를 선택하는 단계와, 상기 선택된 어플리케이션을 상기 미지의 플로우에 매칭되는 어플리케이션으로 결정하는 단계를 포함한다.

Description

시그니처 기반 어플리케이션 식별 장치 및 방법{Appratus and Method for Signature-Based Application Identification}
본 발명은 네트워크 트래픽 분류 기술에 관한 것으로, 특히 네트워크 트래픽에 해당하는 어플리케이션 서비스를 식별하는 장치 및 방법에 관한 것이다.
최근 스마트폰 보급이 급속히 증가함에 따라, 빠른 속도로 새로운 어플리케이션이 생겨나고 있을 뿐만 아니라, 기존의 어플리케이션들도 매우 신속하게 업버전되고 있다. 이는 WWW, FTP, 이메일 등의 전통적인 인터넷 어플리케이션 프로그램들뿐만 아니라, 음성 망의 통합, 새로운 스트리밍(streaming), P2P(peer-to-peer) 파일 공유, 게임 등 많은 서비스와 어플리케이션 프로그램들이 인터넷 기반으로 운용되고 있기 때문이다. 이에 따라 네트워크 트래픽을 분석하여 어플리케이션 서비스별로 분류하는 것은 네트워크 관리, 리소스(resource) 제공 및 어플리케이션 개발을 위해 매우 중요한 이슈가 되고 있다.
이러한 트래픽 분석 및 분류 방식으로 포트 넘버(port number)를 이용하는 방식이 널리 이용되고 있다. 포트 넘버를 이용하는 방식은 수신 패킷에서 트랜스포트 계층(transport layer)의 포트 넘버만을 검사하여 트래픽 정체를 파악하는 것이다. 일 예로, 인터넷 홈페이지에 접속할 때는 포트 넘버가 80번, FTP를 이용해서 파일을 받아올 때는 20, 21번, 영화 패킷 데이터를 수신할 때는 포트 넘버 554번, 1755번 등으로, 대부분의 패킷(packet)들은 미리 설정된 포트를 통해서 패킷 송/수신이 이루어지고 있어 트랜스포트 계층의 포트 넘버를 파악하여 패킷의 어플리케이션을 알아낸다. 그런데, P2P 어플리케이션 서비스는 자신의 트래픽을 숨기기 위해서 임의의 랜덤 포트 넘버를 사용하거나, 혹은 다른 어플리케이션 서비스의 포트 넘버를 이용하여 P2P 어플리케이션 서비스를 제공하고 있기 때문에, 포트 넘버로 패킷의 어플리케이션들을 식별하는 것을 어렵게 만든다.
이러한 포트 넘버 기반 방식의 한계를 극복하기 위해, 패킷 콘텐츠를 검사하고, 특정 어플리케이션에 포함된 패킷들에 반복적으로 나타나는 시그니처라는 공통 패턴들을 탐색하는 새로운 트래픽 분류 방법이 개발되었다.
예컨대, 스트링 '0x13BitTorrent protocol'은 BitTorrent에 대한 공통 패턴으로, 이와 같은 공통 패턴으로 생성된 시그니처 집합은 차후에 입력 트래픽과 연관된 어플리케이션을 식별하기 위해 사용될 수 있다. 이러한 시그니처 기반 식별 방법은 패킷 헤더 정보 및 입력 스트립의 통계적 방법에 비해 정확도가 높아서, DPI(deep packet inspection)에 따른 계산 복잡성에도 불구하고 선호되고 있다.
그런데, 이러한 시그니처 기반 어플리케이션 식별 방법은 데이터 스트림이 하나 이상의 어플리케이션들에 의해 발생된 것으로 식별될 수 있다는 문제가 있다.예컨대, 데이터 스트림이 어플리케이션 X에 대한 시그니처 뿐만 아니라 어플리케이션 Y에 대한 시그니처 또한 포함할 경우, 데이터 스트림이 어플리케이션 X와 어플리케이션 Y 중에서 어떤 어플리케이션으로부터 발생된 것인지를 알아내는 것은 용이하지 않다. 이를 멀티 매치 케이스라고 일컫는데, 이러한 경우 기존의 시그니처 기반 어플리케이션 식별 방법만으로는 데이터 스트림에 상응하는 어플리케이션을 완전히 식별해낼 수가 없다.
본 발명은 데이터 스트림에 둘 이상의 어플리케이션에 상응하는 시그니처가 포함되어 있는 멀티 매치 케이스일 경우, 둘 이상의 어플리케이션들 중에서 하나를 선택하기 위한 장치 및 방법을 제공한다.
본 발명은 시그니처 기반 어플리케이션 식별 방법으로, 미지의 플로우에 포함된 하나 이상의 시그니처를 추출하는 단계와, 상기 추출된 하나 이상의 시그니처에 매칭되는 어플리케이션이 둘 이상일 경우, 상기 둘 이상의 어플리케이션들 중에서 하나를 선택하는 단계와, 상기 선택된 어플리케이션을 상기 미지의 플로우에 매칭되는 어플리케이션으로 결정하는 단계를 포함한다.
본 발명은 시그니처 기반 어플리케이션 식별 장치로, 미지의 플로우에 포함된 하나 이상의 시그니처를 추출하는 시그니처 추출부와, 상기 추출된 하나 이상의 시그니처에 매칭되는 어플리케이션이 둘 이상일 경우, 상기 둘 이상의 어플리케이션들 중에서 하나를 선택하는 휴리스틱 선택부와, 상기 선택된 어플리케이션을 상기 미지의 플로우에 매칭되는 어플리케이션으로 결정하는 식별부를 포함한다.
본 발명은 어플리케이션 분류 정확성이 향상되면서도, 스토리지를 적게 요구하고 그 프로세싱 과정의 복잡성이 줄어든다는 이점이 있다.
도 1은 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 장치를 포함하는 시스템 구성도이다.
도 2는 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 장치의 상세 구성도이다.
도 3은 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 방법을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 장치를 포함하는 시스템 구성도이다.
도 1을 참조하면, 시그니처 기반 어플리케이션 식별 장치(이하 '장치'로 기재함)(100)는 라우터를 통해 인터넷에 접속되고, 유무선 이더넷을 통해 PC, 랩탑, 스마트 폰을 포함하는 사용자 단말(1)에 접속 가능하여, 사용자 단말(1)에 의해 요청 및 송수신되는 어플리케이션 서비스에 따른 패킷을 캡쳐한다. 또한, 이동 단말(2)은 3G, LTE에 접속하여 패킷 스니핑 어플리케이션(sniffing application)을 사용하여 어플리케이션에 대한 트래픽을 캡쳐하고, 이와 같이 생성된 데이터가 장치(100)로 복사될 수도 있다.
장치(100)는 네트워크의 특정 지점을 경유하여 송수신되고 있는 트래픽을 분석하여 시그니처를 찾아내고, 찾아낸 시그니처에 매칭되는 시그니처를 가진 어플리케이션 프로그램을 알아낼 수 있다. 본 발명의 실시 예에 따라, 장치(100)는 트래픽을 분석한 결과, 다수의 시그니처들이 발견되어 매칭 가능한 어플리케이션들이 둘 이상일 경우, 둘 이상의 어플리케이션들 중 하나를 선택하여 플로우가 어떤 어플리케이션으로부터 발생된 것인지를 식별하게 된다.
도 2는 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 장치의 상세 구성도이다.
도 2를 참조하면, 장치(100)는 시그니처 후보 생성부(110), 시그니처 후보 테이블(120), 시그니처 추출부(130), 휴리스틱 선택부(140) 및 플로우 식별부(150)를 포함한다.
시그니처 후보 생성부(110)는 훈련 데이터 플로우로부터 하나 이상의 어플리케이션 각각에 매칭되는 시그니처 후보들(signature candidates)을 생성한다. 여기서, 시그니처 후보 생성부(110)는 미리 설정되는 검사 바이트 수(Number of bytes examined : B), 최소 임계치 요소(Minimal length threshold factor ;T) 및 커버리지 임계치 요소(Coverage threshold factor : F)를 포함하는 파라미터를 고려하여 시그니처 후보들을 생성하게 된다.
검사 바이트 수(Number of bytes examined : B)는 검사에 사용되는 플로우 데이터의 사이즈를 제한하기 위한 것으로, 프로토콜 스펙이 주로 플로우의 초기 부분에 위치하므로, 검사를 위한 바이트들의 수를 제한하는 것은 자원 세이빙 및 신속한 어플리케이션 식별을 위해 바람직하다. 즉, 시그니처 후보 생성부(110)는 검사 바이트 수(Number of bytes examined : B) 이하의 크기를 가지는 시그니처들을 후보로 생성하게 된다.
최소 길이 임계치 요소(Minimal length threshold factor ;T)는 시그니처가 최소 소정 바이트 이상을 갖도록 하기 위한 것이다. 즉, T를 이용하여 각 어플리케이션에 따른 시그니처의 최소 길이 임계치가 B*T로 정해질 수 있다. 예컨대, B=64 및 T=0.1일때, 시그니처에 대한 최소 길이 임계치는 6 bytes일 수 있다. 따라서, 시그니처 후보 생성부(110)는 6바이트 이상 64 바이트 이하의 길이를 갖는 시그니처 후보들을 생성하게 된다.
커버리지 임계치 요소(Coverage threshold factor : F)는 어플리케이션 상에서 시그니처의 발현 빈도를 추적하기 위한 것으로, 각 어플리케이션의 전체 플로우에서 발견되는 시그니처들로 즉, 훈련 데이터 집합에 해당 어플리케이션에 대한 전체 플로우들의 수에 의해 플로우의 수를 프랙션이 F 이상이면, 이 시그니처는 후보 시그니처로 고려된다.
시그니처 후보 생성부(110)는 전술한 바와 같이 시그니처 후보 생성부(110)는 미리 설정되는 검사 바이트 수(Number of bytes examined : B), 최소 임계치 요소(Minimal length threshold factor ;T) 및 커버리지 임계치 요소(Coverage threshold factor : F)를 고려하여, 각 어플리이션에 대한 시그니처 후보들을 테이블로 생성할 수 있다.
어플리케이션에 대한 시그니처 후보를 생성하기 위한 의사 코드(pseudo code)의 일 예는 다음의 <표 1>과 같다.
<표 1>
Figure 112013109597740-pat00001
<표 1>을 참조하면, function은 시그니처를 탐색하기 위한 훈련 플로우 집합을 취하여, 시그니처 후보 테이블을 생성한다. <표 1>의 5-17 라인을 참조하면, 시그니처의 사이즈가 최소 길이 제한에 부합하면, 비트맵은 발견된 모든 시그니처들에 대해 생성된다. 19-23줄을 참조하면, 비트맵은 출력 테이블에서 시그니처의 커버리지를 계산하기 위해 사용된다. 그리고, 계산된 커버리지 프랙션을 사용함으로써, 각각의 커버리지 제한에 부합하는지를 알아보기 위해 프랙션이 체크된다. 일단 모든 시그니처 후보들이 수집되면, 이는 미지의 입력 플로우를 식별하기 위한 파라미터로 사용된다.
시그니처 후보 테이블(120)은 시그니처 후보 생성부(110)에 의해 생성된 하나 이상의 어플리케이션 각각에 매칭되는 시그니처 후보들을 저장한다.
시그니처 추출부(130)는 특정 통신 어플리케이션의 사용에 따라 발생되는 TCP 또는 UDP 패킷이 캡쳐되어 생성된 플로우에서 시그니처 후보 테이블(120)에 포함된 시그니처 후보들을 참조하여, 입력되는 미지의 플로우에 포함된 하나 이상의 시그니처를 추출한다. 여기서, 도면에는 도시되어 있지 않지만, 각각의 플로우는 고유한 5투플(tuple), 즉 송신자 IP(source IP), 수신자 IP(Destination IP), 송신자 포트(Source Port), 수신자 포트(Destination Port), 프로토콜(Protocol)의 결합으로 구별이 가능하다. 또한, 미지의 플로우로부터 시그니처 추출을 위해서 LCS, LASER 및 AutoSig를 포함하는 알고리즘이 사용될 수 있다.
그런데, 이때 시그니처들이 둘 이상이 추출될 수 있는데, 하나의 어플리케이션에 매칭되는 시그니처가 플로우를 식별할 때에는 싱글 매치라고 명명하고, 둘 이상의 어플리케이션들에 매칭되는 시그니처들이 플로우를 식별할 때에는 다중 매치라고 한다. 싱글 매치일 경우에는 추출된 하나의 시그니처에 매칭되는 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 결정하면 된다. 그러나, 다중 매치일 경우에는 어떤 어플리케이션이 미지의 플로우를 발생시킨 것인지를 알 수가 없다.
따라서, 휴리스틱(heuristic) 선택부(140)는 추출된 둘 이상의 시그니처에 매칭되는 어플리케이션이 둘 이상일 경우, 둘 이상의 어플리케이션들 중에서 하나를 선택하는데, 그 방식에 있어서 세 가지 실시 예가 가능하다.
제 1 실시 예는 최대 매치 수(Greatest number of matches : GREATEST)를 고려하여 선택하는 방식으로, 추출된 시그니처의 수를 둘 이상의 어플리케이션들별로 카운트하고, 카운트된 시그니처의 수가 최대인 어플리케이션을 선택한다.
즉, 어플리케이션들의 집합을
Figure 112013109597740-pat00002
이라 하고, 각 어플리케이션에 대해 미지의 플로우에서 발견된 시그니처의 수의 집합이
Figure 112013109597740-pat00003
이라 할 때, 휴리스틱 선택부(140)는 하기의 <수학식 1>에 따라 시그니처의 수가 최대인 어플리케이션을 선택한다.
<수학식 1>
Figure 112013109597740-pat00004
예컨대, 미지의 플로우로부터 발견되는 어플리케이션 X에 대한 시그니처의 수가 5개이고, 어플리케이션 Y에 대한 시그니처의 수가 3개일 경우, 어플리케이션 X에 대한 시그니처의 수가 더 많으므로, 어플리케이션 X가 선택될 수 있다.
그런데, 제 1 실시 예는 직관적으로 이해하기 용이하나, 각각의 어플리케이션이 가진 시그니처 후보들의 수에 따른 차이에 대해서는 고려되고 있지 않다. 즉, 어플리케이션 X에 대한 시그니처 후보들의 수가 어플리케이션 Y에 대한 시그니처 후보들의 수보다 더 크다면, 미지의 플로우에서 어플리케이션 X의 시그니처가 어플리케이션 Y의 시그니처보다 발견될 확률이 더 높을 수 있다. 실제로 미지의 플로우가 어플리케이션 Y에 의해 발생된 플로우일지라도, 어플리케이션 X의 시그니처가 더 많이 발견된다는 이유로 오류 식별될 수 있다는 가능성이 있다.
이를 극복하기 위해, 본 발명에서는 제 2 실시 예로 프랙션 기반 선택(Fraction-based selection :FRAC) 방식을 제안하는데, 이는 생성된 시그니처 후보들의 수를 어플리케이션들별로 카운트하고, 추출된 시그니처의 수를 어플리케이션들별로 카운트하고, 어플리케이션들별로 추출된 시그니처의 수를 생성된 시그니처 후보들의 수로 나눈 프랙션값을 계산하고, 프랙션값이 최대인 어플리케이션을 선택한다.
즉, 어플리케이션별 시그니처 후보들의 수를
Figure 112013109597740-pat00005
로 정의할 경우, 휴리스틱 선택부(140)는 하기의 <수학식 2>에 따라 미지의 플로우로부터 추출된 시그니처의 수와 시그니처 후보들의 수의 프랙션값에 따라 어플리케이션을 선택한다.
<수학식 2>
Figure 112013109597740-pat00006
예컨대, 어플리케이션 X에 대한 시그니처 후보의 수가 15개이고, 미지의 플로우로부터 어플리케이션 X에 대한 시그니처가 5개 발견되었다면, 어플리케이션 X에 대한 프랙션은 0.33이다. 그런데, 어플리케이션 Y에 대한 시그니처 후보의 수가 6개이고, 미지의 플로우로부터 어플리케이션 Y에 대한 시그니처가 3개 발견되었다면 어플리케이션 Y에 대한 프랙션은 0.5이다. 즉, 어플리케이션 Y에 대한 시그니처의 수가 어플리케이션 X의 시그니처의 수보다 작지만, 프랙션 값이 더 크므로 어플리케이션 Y가 선택될 수 있다.
제 3 실시 예는 확률적 선택(Probabilistic selection : PROB) 방식으로, 추출된 시그니처들 각각이 매칭되는 어플리케이션 상에서 발현될 확률을 계산하고, 시그니처들의 발현될 확률을 이용하여 어플리케이션들 각각의 신뢰도값을 계산하고, 신뢰도값이 최대인 어플리케이션을 선택한다.
즉, 미지의 플로우에서 발견되는 어플리케이션 X에 대한 시그니처들의 집합을
Figure 112013109597740-pat00007
라 하고,
Figure 112013109597740-pat00008
를 어플리케이션 X에서 시그니처
Figure 112013109597740-pat00009
가 발현될 확률이라 정의하면,
Figure 112013109597740-pat00010
라 정의될 수 있고, 입력 플로우가 어플리케이션 X일 확률, 어플리케이션 X에 대한 신뢰도(Confidence)
Figure 112013109597740-pat00011
는 하기의 <수학식 3>으로 산출될 수 있다.
<수학식 3>
Figure 112013109597740-pat00012
플로우 선택부(140)는 미지의 플로우에 대한 어플리케이션들 각각에 대한 신뢰도
Figure 112013109597740-pat00013
를 산출하고, 하기의 <수학식 4>에서와 같이 Px의 값이 가장 큰 어플리케이션을 선택한다.
<수학식 4>
Figure 112013109597740-pat00014
플로우 식별부(150)는 시그니처 추출부(130)에 의해 하나의 어플리케이션에 대한 시그니처만이 추출될 경우, 즉 싱글 매치 케이스의 경우에는 해당 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 식별하여 결과값을 출력하고, 멀티 매치 케이스의 경우에는 휴리스틱 선택부(140)에 의해 선택된 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 식별하여 결과값을 출력한다.
도 3은 본 발명의 일 실시 예에 따른 시그니처 기반 어플리케이션 식별 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, S310에서 장치(100)는 훈련 데이터 플로우로부터 전술한 검사 바이트 수(Number of bytes examined : B), 최소 임계치 요소(Minimal length threshold factor ;T) 및 커버리지 임계치 요소(Coverage threshold factor : F) 중 적어도 하나 이상을 고려하여, 하나 이상의 어플리케이션 각각에 매칭되는 시그니처 후보들을 생성한다.
장치(100)는 S320에서 미지의 플로우를 수신함에 따라, S330에서 미지의 플로우에 포함된 하나 이상의 시그니처를 추출한다. 즉, 특정 통신 어플리케이션의 사용에 따라 발생되는 TCP 또는 UDP 패킷이 캡쳐되어 생성된 플로우에서 시그니처 후보 테이블(120)에 포함된 시그니처 후보들을 참조하여, 입력되는 미지의 플로우에 포함된 하나 이상의 시그니처를 추출한다. 여기서, 도면에는 도시되어 있지 않지만, 각각의 플로우는 고유한 5투플(tuple), 즉 송신자 IP(source IP), 수신자 IP(Destination IP), 송신자 포트(Source Port), 수신자 포트(Destination Port), 프로토콜(Protocol)의 결합으로 구별이 가능하다. 또한, 플로우로부터 시그니처 추출을 위해서 LCS, LASER 및 AutoSig를 포함하는 알고리즘이 사용될 수 있다.
그런데, 이때 시그니처들이 둘 이상이 추출될 수 있는데, 하나의 시그니처가 플로우를 식별할 때에는 싱글 매치라고 명명하고, 둘 이상의 시그니처들이 플로우를 식별할 때에는 다중 매치라고 한다.
장치(100)는 S340에서 싱글 매치인지 다중 매치인지를 판단한다.
S340의 판단 결과 싱글 매치일 경우에, 장치(100)는 S350 단계로 진행하여 추출된 하나의 시그니처에 매칭되는 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 결정하면 된다.
그러나, S340의 판단 결과 다중 매치 경우, 장치(100)는 어떤 어플리케이션이 미지의 플로우를 발생시킨 것인지를 알 수가 없으므로, S350에서 둘 이상의 어플리케이션들 중에서 하나를 선택하는데, 그 방식에 있어서 세 가지 실시 예가 가능하다.
본 발명의 제 1 실시 예에 따라 최대 매치 수(Greatest number of matches : GREATEST)를 고려하여 선택하는 방식으로, 선택하는 단계는 추출된 시그니처의 수를 둘 이상의 어플리케이션들별로 카운트하는 단계와, 카운트된 시그니처의 수가 최대인 어플리케이션을 선택하는 단계를 포함할 수 있다.
그런데, 제 1 실시 예는 직관적으로 이해하기 용이하나, 각각의 어플리케이션이 가진 시그니처 후보들의 수에 따른 차이에 대해서는 고려되고 있지 않다. 즉, 어플리케이션 X에 대한 시그니처 후보들의 수가 어플리케이션 Y에 대한 시그니처 후보들의 수보다 더 크다면, 미지의 플로우에서 어플리케이션 X의 시그니처가 어플리케이션 Y의 시그니처보다 발견될 확률이 더 높을 수 있다. 실제로 미지의 플로우가 어플리케이션 Y에 의해 발생된 플로우일지라도, 어플리케이션 X의 시그니처가 더 많이 발견된다는 이유로 오류 식별될 수 있다는 가능성이 있다.
이를 극복하기 위해, 본 발명에서는 제 2 실시 예로 프랙션 기반 선택(Fraction-based selection :FRAC) 방식을 제안하는데, 이는 생성된 시그니처 후보들의 수를 어플리케이션들별로 카운트하는 단계와, 추출된 시그니처의 수를 어플리케이션들별로 카운트하는 단계와, 어플리케이션들별로 추출된 시그니처의 수를 상기 생성된 시그니처 후보들의 수로 나눈 프랙션값을 계산하는 단계와, 프랙션값이 최대인 어플리케이션을 선택하는 단계를 포함할 수 있다.
예컨대, 어플리케이션 X에 대한 시그니처 후보의 수가 15개이고, 미지의 플로우로부터 어플리케이션 X에 대한 시그니처가 5개 발견되었다면, 어플리케이션 X에 대한 프랙션은 0.33이다. 그런데, 어플리케이션 Y에 대한 시그니처 후보의 수가 6개이고, 미지의 플로우로부터 어플리케이션 Y에 대한 시그니처가 3개 발견되었다면 어플리케이션 Y에 대한 프랙션은 0.5이다. 즉, 어플리케이션 Y에 대한 시그니처의 수가 어플리케이션 X의 시그니처의 수보다 작지만, 프랙션 값이 더 크므로 어플리케이션 Y가 선택될 수 있다.
본 발명의 제 3 실시 예는 확률적 선택(Probabilistic selection : PROB) 방식으로, 추출된 시그니처들 각각이 매칭되는 어플리케이션 상에서 발현될 확률을 계산하는 단계와, 시그니처들의 발현될 확률을 이용하여 어플리케이션들 각각의 신뢰도값을 계산하는 단계와, 신뢰도값이 최대인 어플리케이션을 선택하는 단계를 포함할 수 있다.
S360에서 장치(100)는 선택된 어플리케이션을 미지의 플로우에 매칭되는 어플리케이션으로 결정한다. S330에서 하나의 어플리케이션에 대한 시그니처만이 추출될 경우, 즉 싱글 매치 케이스의 경우에는 해당 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 식별하여 결과값을 출력하고, 멀티 매치 케이스의 경우S350에서 선택된 어플리케이션을 미지의 플로우를 발생시킨 어플리케이션으로 식별하여 결과값을 출력한다.

Claims (10)

  1. 별도의 훈련 데이터 플로우로부터 둘 이상의 어플리케이션들 각각에 매칭되는 시그니처 후보들을 생성하는 단계와,
    상기 훈련 데이터 플로우와는 상이한 미지의 플로우를 분석하여, 상기 시그니처 후보들과 일치하는 시그니처들을 모두 추출하는 단계와,
    상기 추출된 시그니처들에 매칭되는 어플리케이션이 둘 이상일 경우, 상기 둘 이상의 어플리케이션들 중에서 하나를 선택하는 단계와,
    상기 선택된 어플리케이션을 상기 미지의 플로우에 매칭되는 어플리케이션으로 결정하는 단계를 포함함을 특징으로 하는 시그니처 기반 어플리케이션 식별 방법.
  2. 제 1항에 있어서, 상기 선택하는 단계는
    상기 추출된 시그니처의 수를 둘 이상의 어플리케이션들별로 카운트하는 단계와,
    상기 카운트된 시그니처의 수가 최대인 어플리케이션을 선택하는 단계를 포함함을 특징으로 하는 시그니처 기반 어플리케이션 식별 방법.
  3. 제 1항에 있어서, 상기 시그니처 후보들을 생성하는 단계는
    훈련 데이터 플로우로부터 검사 바이트 수(Number of bytes examined : B), 최소 임계치 요소(Minimal length threshold factor ;T) 및 커버리지 임계치 요소(Coverage threshold factor : F) 중 적어도 하나 이상을 고려하여, 하나 이상의 어플리케이션 각각에 매칭되는 시그니처 후보들을 생성함을 특징으로 하는 시그니처 기반 어플리케이션 식별 방법.
  4. 제 3항에 있어서, 상기 선택하는 단계는
    상기 생성된 시그니처 후보들의 수를 어플리케이션들별로 카운트하는 단계와,
    상기 추출된 시그니처의 수를 어플리케이션들별로 카운트하는 단계와,
    상기 어플리케이션들별로 상기 추출된 시그니처의 수를 상기 생성된 시그니처 후보들의 수로 나눈 프랙션값을 계산하는 단계와,
    상기 프랙션값이 최대인 어플리케이션을 선택하는 단계를 포함함을 특징으로 하는 시그니처 기반 어플리케이션 식별 방법.
  5. 제 1항에 있어서, 상기 선택하는 단계는
    상기 추출된 시그니처들 각각이 매칭되는 어플리케이션 상에서 발현될 확률을 계산하는 단계와,
    상기 시그니처들의 발현될 확률을 이용하여 어플리케이션들 각각의 신뢰도값을 계산하는 단계와,
    상기 신뢰도값이 최대인 어플리케이션을 선택하는 단계를 포함함을 특징으로 하는 시그니처 기반 어플리케이션 식별 방법.
  6. 별도의 훈련 데이터 플로우로부터 둘 이상의 어플리케이션들 각각에 매칭되는 시그니처 후보들을 생성하는 시그니처 후보 생성부와,
    상기 훈련 데이터 플로우와는 상이한 미지의 플로우로부터 상기 시그니처 후보들과 일치하는 시그니처들을 모두 추출하는 시그니처 추출부와,
    상기 추출된 하나 이상의 시그니처에 매칭되는 어플리케이션이 둘 이상일 경우, 상기 둘 이상의 어플리케이션들 중에서 하나를 선택하는 휴리스틱 선택부와,
    상기 선택된 어플리케이션을 상기 미지의 플로우에 매칭되는 어플리케이션으로 결정하는 식별부를 포함함을 특징으로 하는 시그니처 기반 어플리케이션 식별 장치.
  7. 제 6항에 있어서, 상기 휴리스틱 선택부는
    상기 추출된 시그니처의 수를 둘 이상의 어플리케이션들별로 카운트하고, 상기 카운트된 시그니처의 수가 최대인 어플리케이션을 선택함을 특징으로 하는 시그니처 기반 어플리케이션 식별 장치.
  8. 제 6항에 있어서, 상기 시그니처 후보 생성부는
    훈련 데이터 플로우로부터 검사 바이트 수(Number of bytes examined : B), 최소 임계치 요소(Minimal length threshold factor ;T) 및 커버리지 임계치 요소(Coverage threshold factor : F) 중 적어도 하나 이상을 고려하여, 하나 이상의 어플리케이션 각각에 매칭되는 시그니처 후보들을 생성함을 특징으로 하는 시그니처 기반 어플리케이션 식별 장치.
  9. 제 8항에 있어서, 상기 휴리스틱 선택부는
    상기 생성된 시그니처 후보들의 수를 어플리케이션들별로 카운트하고, 상기 추출된 시그니처의 수를 어플리케이션들별로 카운트하고, 상기 어플리케이션들별로 상기 추출된 시그니처의 수를 상기 생성된 시그니처 후보들의 수로 나눈 프랙션값을 계산하고, 상기 프랙션값이 최대인 어플리케이션을 선택함을 특징으로 하는 시그니처 기반 어플리케이션 식별 장치.
  10. 제 6항에 있어서, 상기 휴리스틱 선택부는
    상기 추출된 시그니처들 각각이 매칭되는 어플리케이션 상에서 발현될 확률을 계산하고, 상기 시그니처들의 발현될 확률을 이용하여 어플리케이션들 각각의 신뢰도값을 계산하고, 상기 신뢰도값이 최대인 어플리케이션을 선택함을을 특징으로 하는 시그니처 기반 어플리케이션 식별 장치.
KR1020130147640A 2013-11-29 2013-11-29 시그니처 기반 어플리케이션 식별 장치 및 방법 KR101560820B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130147640A KR101560820B1 (ko) 2013-11-29 2013-11-29 시그니처 기반 어플리케이션 식별 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130147640A KR101560820B1 (ko) 2013-11-29 2013-11-29 시그니처 기반 어플리케이션 식별 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150062704A KR20150062704A (ko) 2015-06-08
KR101560820B1 true KR101560820B1 (ko) 2015-10-15

Family

ID=53500664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130147640A KR101560820B1 (ko) 2013-11-29 2013-11-29 시그니처 기반 어플리케이션 식별 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101560820B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062126A (ko) * 2016-11-30 2018-06-08 고려대학교 세종산학협력단 응용 트래픽 분류에 정교한 페이로드 시그니쳐 생성 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101005856B1 (ko) 2008-11-17 2011-01-05 한국과학기술원 전송 계층에서 트래픽을 분류하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101005856B1 (ko) 2008-11-17 2011-01-05 한국과학기술원 전송 계층에서 트래픽을 분류하는 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062126A (ko) * 2016-11-30 2018-06-08 고려대학교 세종산학협력단 응용 트래픽 분류에 정교한 페이로드 시그니쳐 생성 방법 및 시스템
KR101886526B1 (ko) * 2016-11-30 2018-08-07 고려대학교 세종산학협력단 응용 트래픽 분류에 정교한 페이로드 시그니쳐 생성 방법 및 시스템

Also Published As

Publication number Publication date
KR20150062704A (ko) 2015-06-08

Similar Documents

Publication Publication Date Title
US10104124B2 (en) Analysis rule adjustment device, analysis rule adjustment system, analysis rule adjustment method, and analysis rule adjustment program
Meidan et al. ProfilIoT: A machine learning approach for IoT device identification based on network traffic analysis
CN102307123B (zh) 基于传输层流量特征的nat流量识别方法
KR101295708B1 (ko) 트래픽 수집장치, 트래픽 분석장치, 시스템 및 그 분석방법
KR20170060280A (ko) 탐지 규칙 자동 생성 장치 및 방법
RU2015156608A (ru) Сетевое устройство и способ управления процессом службы
US11888874B2 (en) Label guided unsupervised learning based network-level application signature generation
WO2020228527A1 (zh) 数据流的分类方法和报文转发设备
Aksoy et al. Operating system classification performance of tcp/ip protocol headers
CN107070851B (zh) 基于网络流的连接指纹生成和垫脚石追溯的系统和方法
WO2016201876A1 (zh) 一种加密流量的业务识别方法、装置和计算机存储介质
CN107360062B (zh) Dpi设备识别结果的验证方法、系统及dpi设备
Sheffey et al. Improving meek with adversarial techniques
CN110830416A (zh) 网络入侵检测方法和装置
KR101560820B1 (ko) 시그니처 기반 어플리케이션 식별 장치 및 방법
KR20130126830A (ko) 실시간 응용 시그니쳐 생성 장치 및 방법
EP3790260B1 (en) Device and method for identifying network devices in a nat based communication network
KR20040083682A (ko) 멀티미디어 서비스 트래픽 모니터링 시스템 및 방법
US20140298457A1 (en) Method and apparatus for collecting harmful information using big data analysis
JP2010239392A (ja) サービス不能攻撃制御システム、装置、および、プログラム
US20140331321A1 (en) Building filter through utilization of automated generation of regular expression
Su et al. Mobile traffic identification based on application's network signature
Park et al. A lightweight software model for signature-based application-level traffic classification system
CN109995731A (zh) 提高缓存吐出流量的方法、装置、计算设备及存储介质
Liu et al. Analysis of P2P Traffic Identification Methods

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: 20181008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191008

Year of fee payment: 5