30.11.2014 Views

패킷의 페이로드 크기와 방향을 이용한 트래픽 분류 - NM Lab at ...

패킷의 페이로드 크기와 방향을 이용한 트래픽 분류 - NM Lab at ...

패킷의 페이로드 크기와 방향을 이용한 트래픽 분류 - NM Lab at ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>패킷의</strong> <strong>페이로드</strong> <strong>크기와</strong> <strong>방향을</strong> <strong>이용한</strong> <strong>트래픽</strong> <strong>분류</strong><br />

박진완 O , 윤성호, 박준상, 김명섭<br />

고려대학교 컴퓨터정보학과<br />

Traffic Classific<strong>at</strong>ion using Payload size and Direction of Packet<br />

Jin-Wan Park O , Sung-Ho Yoon, Jun-Sang Park, Myung-Sup Kim<br />

Department of Computer and Inform<strong>at</strong>ion Science, Korea University<br />

{jinwan_park O , sungho_yoon, junsang_park, tmskim}@korea.ac.kr<br />

요<br />

약<br />

<strong>트래픽</strong>의 응용 별 <strong>분류</strong>는 <strong>트래픽</strong> 분석에 있어서 필수적인 요소이다. 응용 <strong>트래픽</strong> <strong>분류</strong>를 위해<br />

기존에 다양한 방법들이 연구되어 왔다. 포트 기반 <strong>분류</strong>는 인터넷 초기에는 유용한 방법론이었<br />

으나, 응용의 동적 포트 할당으로 인해 유효성이 감소했으며, <strong>페이로드</strong> 시그니쳐 기반의 <strong>분류</strong><br />

방법은 높은 정확도를 보이나, 높은 계산 복잡도, <strong>트래픽</strong>의 암호화, 사생활 보호 등의 문제점들<br />

을 가지고 있다. 따라서, 최근에는 <strong>트래픽</strong>이 나타내는 통계적인 특징을 이용하여 <strong>트래픽</strong>을 분<br />

류하고자 하는 연구가 많이 진행되고 있다. 본 논문에서는 통계적인 특징 중 플로우의 초기 몇<br />

개의 <strong>페이로드</strong> <strong>패킷의</strong> <strong>페이로드</strong> 크기 및 <strong>방향을</strong> <strong>이용한</strong> 방법의 <strong>분류</strong> 가능성과 한계점을 분석<br />

한다. 학내 망의 여러 호스트에서 수집한 ground-truth 를 통해 분석하였으며, 한계점을 극복할<br />

수 있는 방법을 제시한다.<br />

1. 서론<br />

<strong>트래픽</strong>의 응용 별 <strong>분류</strong>는 <strong>트래픽</strong> 분석에 있어서<br />

필수적인 요소이다. 네트워크 관리자는 네트워크 자<br />

원의 효율적인 운용 및 관리를 위해 QoS, SLA 등<br />

다양한 정책을 적용하고자 한다. 이러한 정책들을<br />

적용하기 위해서는 해당 <strong>트래픽</strong>을 발생시킨 응용을<br />

정확하게 알아야 한다. 반면에, 최근의 응용들은 이<br />

와 같은 정책들을 회피하기 위해 동적 포트 할당,<br />

<strong>트래픽</strong> 암호화 등 여러 가지 기술들을 적용하고 있<br />

어, <strong>트래픽</strong> <strong>분류</strong>에 어려움이 따르고 있다.<br />

<strong>트래픽</strong>을 응용 별로 <strong>분류</strong>하기 위해 다양한 방법<br />

론들이 개발되어 왔다. 인터넷 초기에는 <strong>트래픽</strong> 분<br />

류를 위해 포트 기반의 <strong>분류</strong> 방법을 사용하였다. 하<br />

지만 응용들이 동적 포트 할당을 사용하여 이를 회<br />

피하였다. 최근 <strong>트래픽</strong> <strong>분류</strong>에는 <strong>페이로드</strong> 시그니쳐<br />

기반의 <strong>트래픽</strong> <strong>분류</strong> 방법을 많이 사용한다. 이는 높<br />

은 정확성을 나타내지만, 높은 계산 복잡도, 암호화<br />

된 <strong>트래픽</strong>에 대한 <strong>분류</strong>의 어려움, 사생활 보호 문제<br />

등의 문제점들을 가지고 있다. 따라서, 최근에는 응<br />

용들이 사용하는 <strong>트래픽</strong>의 여러 통계적인 특징을<br />

이용하여 <strong>트래픽</strong>을 <strong>분류</strong>하는 방법에 대해 많이 연<br />

구되고 있다.<br />

본 논문에서는 여러 통계적인 특징 중 플로우의<br />

초기 몇 개의 <strong>페이로드</strong> 패킷에 대한 <strong>페이로드</strong> 크기<br />

와 <strong>방향을</strong> <strong>이용한</strong> <strong>분류</strong> 방법의 <strong>분류</strong> 가능성과 한계<br />

점을 분석하고, 한계점을 극복하기 위한 방안을 제<br />

시한다.<br />

본 논문은 다음과 같은 순서로 구성된다. 2 장에서<br />

는 <strong>트래픽</strong> <strong>분류</strong>에 관련된 기존 연구들을 살펴보고,<br />

3 장에서는 <strong>페이로드</strong> 크기 및 <strong>방향을</strong> 통한 <strong>분류</strong> 방<br />

법의 가능성과 한계점을 살펴본다. 4 장에서는 페이<br />

로드 크기 및 방향 기반 <strong>분류</strong> 방법의 한계점을 극<br />

복할 수 있는 방법을 제시하고, 마지막으로 5 장에<br />

서는 결론을 맺고 향후 연구를 제시한다.<br />

2. 관련 연구<br />

응용 별 <strong>트래픽</strong> <strong>분류</strong>는 다양한 응용들이 존재하<br />

는 오늘날의 인터넷 환경에서는 분명히 쉬운 일은<br />

아니다. 과거의 인터넷에서는 포트 번호 1024 이하<br />

를 사용하는 HTTP, telnet, e-mail, FTP, SMTP 의 응용<br />

들이 대부분의 인터넷 <strong>트래픽</strong>을 차지하고 있었기<br />

때문에 IANA 에 정의된 포트 정보 기반의 분석으로<br />

신뢰성과 정확성이 높은 분석 결과를 도출할 수 있<br />

었다. 그 후 응용의 포트가 동적으로 생성됨에 따라<br />

포트 기반의 분석은 더 이상 높은 신뢰성과 분석률


을 제공할 수 없게 되었다.<br />

시그니쳐 기반 분석 방법은 특정 응용 프로그램<br />

에서 발생시킨 <strong>트래픽</strong>을 분석하여 다른 응용 프로<br />

그램과 구분 지을 수 있는 시그니쳐라고 하는 특정<br />

응용만의 특징을 추출하고 이를 통해 <strong>트래픽</strong>을 분<br />

류하는 방법이다. 이 방법은 시그니쳐를 추출한 응<br />

용에 대해서는 높은 정확도를 보이지만, 시그니쳐를<br />

확인하기 힘든 응용 프로그램들은 <strong>분류</strong>를 하지 못<br />

한다. 예를 들어, <strong>패킷의</strong> <strong>페이로드</strong> 분석을 통해 다<br />

른 응용과 구분 지을 수 있는 substring 으로 <strong>트래픽</strong><br />

을 <strong>분류</strong>하는 <strong>페이로드</strong> 시그니쳐 기반 분석은 암호<br />

화된 패킷에 대해서는 <strong>트래픽</strong>을 <strong>분류</strong>할 수 없다.<br />

<strong>트래픽</strong> 상관관계 기반 분석 방법은 주소체계(IP<br />

주소, 포트 번호, 프로토콜), <strong>트래픽</strong>의 발생 시점, 발<br />

생 형태 등의 특성을 바탕으로 <strong>트래픽</strong> 플로우들 사<br />

이에 연관성을 가중치로 표현하고 가중치의 임계값<br />

을 적용하여 <strong>트래픽</strong>을 <strong>분류</strong>하는 방법이다. 이 방법<br />

의 장점은 <strong>트래픽</strong>의 <strong>분류</strong>에 있어 응용들이 가지는<br />

특징을 분석에 활용하여 분석률을 높일 수 있다는<br />

것이다. 그러나 응용 별 특징의 활용에 대한 명확한<br />

알고리즘이 없이 시행착오를 통해 최적의 분석률을<br />

보이는 임계값을 찾기 때문에 실제 인터넷 <strong>트래픽</strong><br />

에 적용하였을 경우 분석 결과에 대한 신뢰성을 보<br />

장하기 어렵다.<br />

머신러닝 기반의 분석 방법은 응용 별 인터넷 트<br />

래픽의 특징이 될 수 있는 항목(port number, flow<br />

dur<strong>at</strong>ion, inter-arrival time, packet size)들을 머신러닝의<br />

classific<strong>at</strong>ion, clustering 기법을 이용하여 <strong>트래픽</strong>을 분<br />

류하는 방법이다. 이 방법의 장점은 머신러닝의 고<br />

급 알고리즘을 이용함으로써 <strong>트래픽</strong>을 응용 별로<br />

<strong>분류</strong>함에 있어 다른 방법에 비해 보다 높은 분석률<br />

을 제공한다는 것이다. 그러나 제한된 범위의 응용<br />

<strong>트래픽</strong>에 대하여 <strong>트래픽</strong> 데이터를 수집하고 분석하<br />

였다는 점이 모든 인터넷 <strong>트래픽</strong>에 적용하였을 경<br />

우 분석의 정확성이 떨어질 수밖에 없는 단점을 갖<br />

고 있다. 또한, 분석률이 높은 classific<strong>at</strong>ion 기법의<br />

경우 모든 <strong>트래픽</strong>이 훈련된 응용들로만 구분이 되<br />

기 때문에 새로운 응용이 나올 경우 유연하게 대처<br />

하지 못하는 단점을 가지고 있다.<br />

3. <strong>페이로드</strong> 크기 분포<br />

본 논문에서는 <strong>트래픽</strong>을 <strong>분류</strong>하기 위해 플로우의<br />

초기 몇 개의 <strong>페이로드</strong> 패킷에 대한 <strong>페이로드</strong> 크기<br />

와 <strong>방향을</strong> <strong>이용한</strong>다.<br />

3.1 <strong>페이로드</strong> <strong>크기와</strong> 방향의 표현<br />

<strong>페이로드</strong> 패킷이란 <strong>페이로드</strong>를 포함하는 패킷을<br />

의미하며, <strong>페이로드</strong> 크기는 특정 <strong>패킷의</strong> <strong>페이로드</strong>의<br />

바이트 양을 의미한다. 그리고 <strong>페이로드</strong>의 방향은<br />

양수와 음수로 표현되며, TCP 의 경우 양수는 클라<br />

이언트에서 서버로 향하는 패킷, 음수는 서버에서<br />

클라이언트로 향하는 패킷을 의미한다. UDP 는 서버<br />

/클라이언트의 구분이 명확하기 않기 때문에, 양수/<br />

음수의 의미는 단지 방향이 서로 반대라는 것만 표<br />

현할 수 있다. 따라서, UDP 의 경우에는 첫 패킷을<br />

양수로 표현하고 뒤에 이어지는 패킷은 첫 패킷을<br />

기준으로 방향이 같으면 양수, 다르면 음수로 표현<br />

한다.<br />

3.2 <strong>분류</strong> 가능성<br />

일반적으로 플로우의 초기 몇 개의 패킷은 응용<br />

프로그램에 의해 미리 정해진 정보를 전달하는 용<br />

도로 사용된다. 그러므로 플로우의 첫 N 개의 패킷<br />

에 해당하는 <strong>페이로드</strong> 크기는 응용 프로그램마다<br />

다를 가능성이 크다[1, 2]. 그림 1 은 플로우의 첫 2<br />

개의 <strong>페이로드</strong> 패킷에 대한 <strong>페이로드</strong> <strong>크기와</strong> 방향<br />

에 대한 충돌 분포를 나타낸다.<br />

그림 1. <strong>페이로드</strong> 크기 및 방향에 대한 충돌 분포<br />

(입력: 446 개 프로세스의 3,313,303 개 플로우)<br />

그래프의 x 축과 y 축은 각각 플로우의 1 번째, 2<br />

번째 <strong>패킷의</strong> <strong>페이로드</strong> <strong>크기와</strong> <strong>방향을</strong> 나타낸다. TCP<br />

의 경우 -1460 에서 1460 까지, UDP 의 경우 -1472 에<br />

서 1472 까지 값을 가진다. 그래프의 점은 플로우가<br />

가질 수 있는 <strong>페이로드</strong> 크기 및 방향의 패턴을 나<br />

타낸다. 2 개의 패킷에 대한 분포를 나타내므로, TCP<br />

의 경우 8,526,400(=(1460×2) 2 )개의 패턴, UDP 의 경<br />

우 8,667,136(=(1472×2) 2 )개의 패턴을 가질 수 있다.<br />

„+‟는 충돌이 발생하지 않은 패턴, „-„는 충돌이 발생<br />

한 패턴을 나타낸다. 충돌이란 하나의 패턴을 여러<br />

프로세스가 사용하는 것을 의미한다.<br />

표 1. 충돌 패턴의 <strong>트래픽</strong> 양<br />

Total Non-Conflict Conflict<br />

P<strong>at</strong>tern 247,236 (100%) 192,965 (78.0%) 54,271 (22.0%)<br />

Flow 3,236 K (100%) 1,412 K (43.6%) 1,824 K (56.4%)<br />

Packet 674 M (100%) 389 M (57.7%) 285 M (42.3%)<br />

Byte 504 G (100%) 236 G (46.9%) 268 G (53.1%)


표 1 은 충돌 패턴을 <strong>트래픽</strong>의 양으로 나타낸 것<br />

이다. 전체 패턴 중에서 충돌이 발생하지 않는 패턴<br />

이 많이 나타나지만, <strong>트래픽</strong> 양으로 보았을 때 충돌<br />

이 발생하는 비율과 발생하지 않는 비율이 비슷하<br />

다. 이는 충돌이 발생한 패턴을 가지는 플로우들은<br />

많은 데이터를 전송하는 경우가 많다는 것을 뜻한<br />

다. 충돌이 발생하지 않는 패턴을 나타내는 플로우<br />

들은 <strong>페이로드</strong> 크기 및 방향 만으로도 <strong>트래픽</strong>을 정<br />

확하게 <strong>분류</strong>할 수 있지만, 충돌로 인해 <strong>페이로드</strong> 크<br />

기 및 방향 만으로만 <strong>분류</strong>하지 못하는 경우가 있기<br />

때문에, 많은 양의 <strong>트래픽</strong>을 <strong>분류</strong>하기 위해서는 충<br />

돌이 나는 패턴의 플로우들을 <strong>분류</strong>하기 위해 추가<br />

적인 <strong>트래픽</strong> 특징이 필요하다.<br />

3.3 패턴 당 충돌 프로세스의 수<br />

<strong>페이로드</strong> 크기 및 방향의 분포가 충돌이 난 패턴<br />

의 경우 여러 개의 프로세스들에 의해서 충돌이 발<br />

생할 수 있다. 충돌이 난 패턴의 <strong>트래픽</strong>을 <strong>분류</strong>하<br />

기 위해서는 추가적인 특징을 이용하여야 하는데,<br />

이 때 충돌을 발생시킨 프로세스들 중 하나로 결정<br />

하는 방법을 택할 수 있다. 그림 2 는 충돌이 발생<br />

하는 패턴 중에서 충돌이 난 프로세스의 개수 별<br />

패턴의 수를 나타내고 있다.<br />

방법의 정확성이 많이 낮아졌지만, 여전히 고정된<br />

포트를 사용하는 응용들이 존재한다. 그러므로 포트<br />

의 추가적인 사용은 여러 방법론이 좀 더 높은 정<br />

확성을 가질 수 있게 해준다. 본 연구에서는 두 호<br />

스트 간의 통신에서 서버 포트를 사용한다. 서버의<br />

기준은 3.1 에서 설명하였다.<br />

4.2 시간 연관관계를 <strong>이용한</strong> 방법<br />

그림 3. 시간 연관관계<br />

그림 3 은 플로우의 시간 연관관계를 나타낸 그림<br />

이다. 플로우의 생성시간이 비슷한 플로우 그룹 A,<br />

B, C 가 존재하고, 이들의 응용을 모르는 상황일 때,<br />

A 그룹에 속하는 하나의 플로우의 응용을 알아낸다<br />

면 해당 그룹 A 의 모든 플로우의 응용의 정체를<br />

정할 수 있다. 이는 하나의 호스트에서 비슷한 시간<br />

에 발생한 <strong>트래픽</strong>은 같은 응용에서 발생할 가능성<br />

이 크기 때문이다.<br />

5. 결론<br />

그림 2. 패턴 당 충돌 프로세스의 수(CPDF)<br />

그래프에서 보는 바와 같이 충돌 프로세스의 개<br />

수가 적은 패턴이 대부분을 차지하고 있다. 결국<br />

<strong>페이로드</strong> 크기 및 방향만으로 <strong>분류</strong>를 하지 못하더<br />

라도 다른 특징을 이용해서 충돌이 난 프로세스 중<br />

하나를 선택하면 되므로 <strong>분류</strong>의 정확성은 높아진다.<br />

4. 추가적인 <strong>분류</strong> 방법<br />

충돌이 난 플로우를 <strong>분류</strong>하기 위해 여러 가지 특<br />

징을 이용할 수 있지만, 본 논문에서는 포트를 이용<br />

하는 방법과 시간 연관관계를 <strong>이용한</strong> 방법을 소개<br />

하고자 한다.<br />

4.1 포트를 <strong>이용한</strong> <strong>분류</strong> 방법<br />

동적 포트 할당 등으로 인해 포트 기반의 <strong>분류</strong><br />

본 논문에서는 플로우의 초기 <strong>페이로드</strong> <strong>패킷의</strong><br />

<strong>페이로드</strong> 크기 및 <strong>방향을</strong> <strong>이용한</strong> <strong>분류</strong>가 가능한지<br />

분석하였으며, 또한 한계점을 발견하고 한계점을 극<br />

복하기 위해 추가적인 <strong>분류</strong> 방법을 제시하였다.<br />

향후 연구에서는 충돌이 난 패턴에 대한 프로세<br />

스의 결정을 좀 더 정확하게 할 수 있는 다른 특징<br />

들에 대한 연구를 진행할 계획이다.<br />

6. 참고 문헌<br />

[1] L.Bernaille, R. Teixeira, I. Akodkenou, A.Soule, and<br />

K.Salam<strong>at</strong>ian. “Traffic classific<strong>at</strong>ion on the fly”.<br />

SIGCOMM Comput.Commun. Rev., 2006.<br />

[2] Bernaille, L., Teixeira, R., Salam<strong>at</strong>ian, K.: Early<br />

applic<strong>at</strong>ion identific<strong>at</strong>ion. In: CoNext 2006. Conference<br />

on Future Networking Technologies., 2006.<br />

[3] 노현구, 윤성호, 오영석, 김명섭, "플로우 생성시<br />

간 기반의 포트 그룹핑을 <strong>이용한</strong> 인터넷 응용<br />

<strong>트래픽</strong> <strong>분류</strong>", 통신학회 추계종합학술발표회, 연<br />

세대학교, 서울, Nov. 15, 2008, pp. 147.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!