12.07.2015 Views

플로우 생성시간 기반의 포트 그룹핑을 이용한 인터넷 응용 트래픽 분류

플로우 생성시간 기반의 포트 그룹핑을 이용한 인터넷 응용 트래픽 분류

플로우 생성시간 기반의 포트 그룹핑을 이용한 인터넷 응용 트래픽 분류

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.

2008 년 한국통신학회 추계학술발표대회<strong>플로우</strong> <strong>생성시간</strong> <strong>기반의</strong> <strong>포트</strong> <strong>그룹핑을</strong> <strong>이용한</strong><strong>인터넷</strong> <strong>응용</strong> <strong>트래픽</strong> <strong>분류</strong> ** 노현구, 윤성호, 오영석, 김명섭* 고려대학교 컴퓨터정보학과{navvy84, hiption, 840105, tmskim}@korea.ac.krInternet Application Traffic Classification usingPort Grouping based on Created-time of Flow* Hyun-Gu Roh, Sung-Ho Yoon, Young-Seok Oh, Myung-Sup Kim* Dept of Computer Information Science, Korea University요약네트워크를 사용하는 <strong>응용</strong>프로그램의 종류가 다양해지면서 네트워크 <strong>트래픽</strong>의 <strong>응용</strong>별 <strong>분류</strong>는효율적인 네트워크 관리에 있어 그 중요성이 커지고 있다. 하지만 많은 <strong>응용</strong>프로그램들은 유동적인<strong>포트</strong>번호 사용하며 암호화 하여 패킷을 보내는 등 <strong>트래픽</strong>의 <strong>응용</strong>별 <strong>분류</strong>를 더욱 어렵게 하고 있다.본 논문에서는 네트워크의 대부분을 차지하는 Short-term <strong>플로우</strong>의 <strong>트래픽</strong> <strong>분류</strong>를 위해 <strong>플로우</strong>가발생된 시간정보와 <strong>포트</strong>정보를 이용하여 그룹지어 <strong>응용</strong>프로그램을 <strong>분류</strong>하는 새로운 방법론을제시한다. 제안된 방법론은 학내 네트워크에서 발생하는 <strong>트래픽</strong>을 수집하고 실험함으로써 타당성을검증하였다.1. 서론 *네트워크를 사용하는 <strong>응용</strong>프로그램의 종류가다양해지면서 네트워크 <strong>트래픽</strong>의 <strong>응용</strong>별 <strong>분류</strong>는효율적인 네트워크 관리에 있어 그 중요성이 커지고있다. 기존의 Well-known <strong>포트</strong><strong>기반의</strong> <strong>응용</strong> <strong>트래픽</strong><strong>분류</strong>방법의 단점을 극복하기 위하여 머신러닝알고리즘[1]과 Signature[2]기반 방법들이 연구되고있지만 그들이 주장하는 높은 분석률에 비하여 실제네트워크 <strong>트래픽</strong>에 적용하기에는 여러가지로 부족하다.특히 기존의 방법론이 유동적인 <strong>포트</strong>번호를 사용하는<strong>응용</strong>프로그램에 적용하기 어려운 이유 중 하나는 잠깐나타났다 사라지는 Short-term <strong>플로우</strong>[3] 때문이다.(그림 1) <strong>플로우</strong> 지속시간의 누적비율(그림 1)은 2008 년 9 월 한 달간 교내에서 발생된<strong>인터넷</strong> <strong>트래픽</strong>의 지속시간을 그래프로 나타낸 것이다.가로축은 <strong>플로우</strong>의 지속시간을 나타낸 것이며, 세로 축은<strong>플로우</strong> 지속시간의 누적비율이다. 그래프에서 알 수있듯이 1 초안에 생성되었다가 사라지는 Short-term* 이 논문은 2007 년 정부(교육인적자원부)의 재원으로 한국학술진흥재단의 지원을 받아 수행된 연구임.(KRF-2007-331-D00387)<strong>플로우</strong>가 70%이상 임을 알 수 있다. 이러한 Short-term<strong>플로우</strong>는 순식간에 생성된 후 정보를 주고 받고사라지며, 패킷의 페이로드에도 많은 정보가 담겨있지않다. 또한 유동적인 <strong>포트</strong>를 사용하기 때문에 <strong>트래픽</strong><strong>분류</strong>에 있어 신뢰도와 분석률을 떨어뜨리는 주범이 된다.본 논문에서는 Short-term <strong>플로우</strong>의 <strong>트래픽</strong> <strong>분류</strong>를위해 <strong>플로우</strong>가 발생된 시간정보와 <strong>포트</strong>정보를 이용하여그것들을 그룹지어 <strong>분류</strong>하는 방법을 제안한다. 제안된방법론은 <strong>플로우</strong>를 발생시킨 <strong>응용</strong>프로그램을 판별할수는 없지만 그룹핑 후 그룹에 속한 최소한 한 개의<strong>플로우</strong> 정보를 이용하여 그룹의 <strong>응용</strong>프로그램을 결정할수 있다는 장점이 있다. 이러한 <strong>플로우</strong>의 유사성을이용하여 잠깐 나타났다 사라지는 Short-term <strong>플로우</strong>를다른 <strong>플로우</strong>와 그룹하여 탐지할 수 있다. 이러한방법론을 통해 <strong>응용</strong>프로그램을 <strong>분류</strong>하는 다른 방법론의성능 향상에 도움을 줄 수 있음에 초점을 맞추었다. 대학캠퍼스 내부의 일부 종단 호스트에 설치된 TMA[4]의정보를 사용하여 제안된 방법론의 타당성과 신뢰성을검증하였다.본 논문의 구성은 다음과 같다. 2 장에서는그룹<strong>분류</strong>의 기준과 대상, 그리고 Time-based PortGrouping 알고리즘을 제시한다. 3 장에서는 제안된알고리즘의 신뢰도 측정을 위해 사용되는 TMA 에 대해알아보고 결과 및 성능평가를 기술하며, 마지막으로4 장에서는 결론 및 향후 연구를 제시한다.2. Time-based Port Grouping 알고리즘이 장에서는 운영체제의 임시<strong>포트</strong>할당과 그룹<strong>분류</strong>의기준에 대한 설명 그리고 <strong>플로우</strong>와 <strong>응용</strong>프로그램 그룹의상관관계를 소개한다. 이어서 알고리즘의 적용대상과<strong>응용</strong>프로그램 그룹<strong>분류</strong> 방법 및 Time-based Port


2008 년 한국통신학회 추계학술발표대회Grouping(이하 TPG) 알고리즘을 제시한다. 본 논문에서사용하는 <strong>플로우</strong>는 NG-MON[5]에서 정의한 5-tuple정보(source IP, source port, destination IP, destination port,protocol)가 같은 패킷들의 모임으로 정의한다.2.1 Windows 운영체제의 임시<strong>포트</strong>할당Short-term <strong>플로우</strong>는 기본적으로 임시<strong>포트</strong>번호를사용하며 Windows 운영체제는 임시<strong>포트</strong>번호 (기본적으로1024 번~5000 번[6])를 배정한다. 임시<strong>포트</strong>번호는 1024 번부터5000 번까지 순차적으로 배정하며 5000 번까지 모두사용했을 경우 1024 번 부터 다시 할당한다.(그림 2)는 특정 시간대의 임시<strong>포트</strong> 분포도를 도식화한 것 이다. 가로축은 시간(초)을 세로축은 로컬 <strong>포트</strong>를나타낸다. 그림에서 시간의 연속선상에 있으면서 비슷한<strong>포트</strong>를 가지는 <strong>플로우</strong>의 분포가 부분적으로 뭉쳐있음을알 수 있다. 본 논문에서는 이러한 <strong>포트</strong>의 지역성을이용하여 <strong>플로우</strong>를 그룹하고 <strong>트래픽</strong>을 <strong>분류</strong>한다.(그림 4) TPG 알고리즘의 <strong>분류</strong>대상2.4 그룹<strong>분류</strong> 방법TPG 알고리즘을 <strong>이용한</strong> 그룹<strong>분류</strong>는 (그림 5)와 같은순서로 진행된다(그림 5) 그룹<strong>분류</strong>의 순서도(그림 2) 임시<strong>포트</strong>의 분포도2.2 <strong>플로우</strong>와 <strong>응용</strong>프로그램 그룹의 관계TPG 알고리즘은 <strong>플로우</strong>의 유사성을 이용하여 그룹시키고, 그룹 중에 단 하나의 <strong>플로우</strong>라도 정확한 <strong>응용</strong>프로그램 정보를 알 수 있다면 그룹 전체의 <strong>응용</strong>프로그램을 결정(그림 3)지을 수 있다. 예를 들어 잠깐 나타났다가 사라지는 Short-term <strong>플로우</strong> 같은 경우에는 <strong>응용</strong>프로그램을 결정하기 매우 어렵지만 시간정보와 <strong>포트</strong>정보를이용하여 다른 <strong>플로우</strong>와 <strong>그룹핑을</strong> 하여 <strong>분류</strong>할 경우 탐지할 수 있는 확률이 늘어난다.(그림 3) <strong>플로우</strong>와 <strong>응용</strong>프로그램 그룹의 관계2.3 <strong>분류</strong> 대상TPG 알고리즘의 적용대상은 Short-term <strong>플로우</strong>에 국한되어 있는 것이 아니다. 다른 <strong>플로우</strong>들과 같이 분석을하되 순간 나타나는 Short-term <strong>플로우</strong>를 그룹핑하여 탐지할 수 있는 것이다. 알고리즘의 <strong>분류</strong>대상은 Windows 운영체제에서 동적으로 할당하는 <strong>포트</strong>, 특히 TCP 클라이언트 <strong>포트</strong>이다. UDP, TCP 서버 <strong>포트</strong>를 제외한 이유는 <strong>포트</strong>하나에 여러개의 <strong>플로우</strong>들이 들어오며 장시간 지속되며시간이 지남에 따라 열려있는 Local <strong>포트</strong>를 자연스럽게그룹을 지을 수 있기 때문에 알고리즘에 적용시키지 않아도 그룹<strong>분류</strong>를 할 수 있다.실제 네트워크에 적용하기 위해 TPG 알고리즘은 네트워크에서 발생하는 <strong>플로우</strong> 정보 전체를 대상으로 한다.<strong>플로우</strong> 정보 중에서 TPG 알고리즘은 Out bound <strong>플로우</strong>만을 확인한다. Out bound 만 해도 문제가 되지 않는 이유는<strong>분류</strong>대상이 TCP 이기 때문에 In bound 와 Out bound 가서로 한 쌍이 되어 한 쪽만 분석을 하더라도 충분히 <strong>트래픽</strong> <strong>분류</strong>를 할 수 있다. <strong>플로우</strong> 정보는 여러 호스트들의정보를 담고 있으며, 호스트들은 각자의 운영체제에서 동적으로 <strong>포트</strong>를 할당하여 입력된 <strong>플로우</strong> 정보를 한꺼번에<strong>분류</strong>할 수 없기 때문에 <strong>플로우</strong> 정보를 호스트별로 분리한다. 그리고 <strong>플로우</strong>의 정보 중 TCP 클라이언트 <strong>포트</strong>만을 <strong>분류</strong>한 후 <strong>플로우</strong> <strong>생성시간</strong>을 기준으로 오름차순으로정렬을 하고 마지막으로 TPG 알고리즘의 Step1, Step2를 적용시키면 <strong>응용</strong>프로그램 그룹<strong>분류</strong>가 완료된다.2.5 Time-based Port Grouping 알고리즘TPG 알고리즘은 Step1, Step2 로 나뉜다. 이렇게 두단계로 나눈 이유는 이전의 TPG 알고리즘의 신뢰도를 높이기 위함이다. Step1 에서는 그룹을 <strong>분류</strong>하고, Step2 에서는 <strong>분류</strong>된 Step 1 에서 <strong>분류</strong>된 그룹의 불순물을 제거하기위한 장치이다. 예를 들어 TPG 알고리즘은 그룹의 첫번째 <strong>플로우</strong>의 <strong>응용</strong>프로그램이 그룹의 <strong>응용</strong>프로그램으로결정되는데 이 첫번째 <strong>플로우</strong>를 잘못 결정할 경우 그룹전체를 잘못 <strong>분류</strong>할 수 있는 경우가 생기기 때문에 신중해야하며, 잘못 <strong>분류</strong>된 <strong>플로우</strong>을 제거해야한다. 그룹 TPG알고리즘에 사용되는 수식은 (표 1)과 같다f(t)f(p)FG<strong>플로우</strong>의 <strong>생성시간</strong><strong>플로우</strong>의 Local <strong>포트</strong>번호호스트의 모든 <strong>플로우</strong> 집합집합 F의 모든 원소를 결정짓는 G k 의 집합


2008 년 한국통신학회 추계학술발표대회G kG (k,i)f그룹 G 의 부분집합그룹 G k 의 부분집합그룹 G (k,i) 의 원소, f ∈ G (k,i) ∈ G k ∈ GG′ 임시그룹G′ N 미결정그룹d k (t) <strong>플로우</strong>의 시간 distance, | f k t − f k−1 t |d k (p) <strong>플로우</strong>의 <strong>포트</strong> distance, | f k p − f k−1 p |ε(t) 시간 Thresholdε(p) <strong>포트</strong> Thresholdε(g) 재그룹 Threshold, α·n(G k ), 0


2008 년 한국통신학회 추계학술발표대회fGf df nG rG e<strong>플로우</strong>G k 를 원소로 가지는 집합정확하게 그룹핑된 <strong>플로우</strong>부정확하게 그룹핑된 <strong>플로우</strong>그룹내에 f n 이 존재하지 않는 그룹그룹내에 f n 이 존재하는 그룹(표 2) 실험에 사용되는 수식본 논문에서 제안된 알고리즘의 최종목표는minimize f n 과 minimize G 의 만족함에 있다. 그 이유는 부정확하게 <strong>분류</strong>된 <strong>플로우</strong>가 적을수록 알고리즘의 신뢰도가 향상되며, 그룹의 수가 적을수록 그룹과 <strong>응용</strong>프로그램을 매칭시키는 수고를 덜어줄 수 있다.G의 수가 증가하면 f n 이 감소하는 반면 G의 수가 감소하면 f n 이 증가하는 tradeoff 관계를 가지고 있다. (그림 7)는 임계상수 α 의 변화에 따른 f n 과 G의결과를 그래프화 하였다.(그림 7) α 에 따른 f n 과G의 변화추이(그림 7)의 좌측 y 축은 f n 의 개수를 우측 y 축은G의 개수를 의미하며 x축은 Step 2 에서 사용되는 임계상수 α 를 의미한다. 위 그림의 f n 과 G의 교점은 0.12이지만 제안된 알고리즘의 신뢰도 향상을 위해 교점보다적은 f n 값을 가지는 0.1 을 α 로 결정하였다.3.3 실험결과ε(p)=20, ε(t)=1000, α=0.1Step 1 Step 2f d 6161 6272f n 185 74G r 1202 1231G e 72 91(표 3) 실험 결과(표 3)은 ε(p)=20, ε(t)=1000, α=0.10 기준으로 2 장에서 제안한 알고리즘을 적용하였을 때의 실험결과를 나타낸다. 실험에 사용된 <strong>응용</strong>프로그램의 수는 21 개이며,가장 많은 <strong>플로우</strong>를 가지는 그룹의 원소개수는 38 개이다.Reliable Flow Rate(RFR) 는 전체 <strong>플로우</strong> 중에 정확한그룹<strong>분류</strong>가 된 <strong>플로우</strong>로 정의하며 다음과 같이 도출된다.step 1. RFR =step 2. RFR =f df = 97.08%f df = 98.83%제안된 알고리즘은 <strong>분류</strong>된 그룹의 첫 번째 <strong>플로우</strong>의<strong>응용</strong>프로그램을 그룹의 <strong>응용</strong>프로그램으로 가정한다. 위식의 f d 는 집합 G의 원소 G k 가 가진 첫 번째 <strong>플로우</strong> f 0 와동일한 <strong>응용</strong>프로그램을 가지는 원소개수의 총 합계를 의미한다. 따라서 RFR 은 제안된 알고리즘이 <strong>분류</strong>한 <strong>응용</strong>프로그램의 신뢰도를 의미한다.Step1 에서 Step2 를 거침에 따라서 신뢰도는 1.75%증가하였지만 그룹의 개수는 43 개 더 늘어났다. 이는Step 2 에서 ε g 미만의 <strong>플로우</strong>를 뽑아 재그룹 할 때, 기존의 그룹이 계속 존재한 상태에서 몇몇의 <strong>플로우</strong>들을재그룹하여 원 소속그룹에 포함시키기 때문에 그룹의 수가 증가하였다.본 실험 결과에서의 오류발생 이유는 프로세스는 틀리지만 서비스가 같은 <strong>응용</strong>프로그램을 잘못 <strong>분류</strong>하기 때문이다. 예를 들어 Estsoft 사에서 제공하는 <strong>응용</strong>프로그램중 altoolbar 와 alsong 이 같은 <strong>응용</strong>프로그램으로 <strong>분류</strong>되었다.4. 결론 및 향후 연구본 연구에서는 <strong>플로우</strong> <strong>생성시간</strong> <strong>기반의</strong> <strong>포트</strong> <strong>그룹핑을</strong> <strong>이용한</strong> <strong>플로우</strong> <strong>분류</strong> 결과를 소개하였다. 실제 학교 캠퍼스 네트워크의 임의의 호스트에 적용시켰을 때 98.83%의 신뢰도를 가지는 <strong>응용</strong>프로그램 그룹을 얻을 수 있었다. 다른 분석방법론과는 달리 TPG 알고리즘을 단독으로사용하기에는 부족하지만 다른 분석방법론과 함께 사용될 경우에 높은 신뢰성 바탕으로 분석률을 올릴 수 있다.앞으로 TPG 알고리즘과 다른 연구방법론과 결합하여 학교 캠퍼스 네트워크 전체 <strong>플로우</strong>에 적용시켜 볼 필요가 있다. 또한 <strong>응용</strong>프로그램 분석률과 분석된 결과의신뢰도를 높이기 위해서는 <strong>플로우</strong>가 제공하는 <strong>플로우</strong>Duration, 패킷 개수, 바이트 등의 정보를 알고리즘에 적용시켜야 하며, 또한 Step 2 에서 그룹의 수가 늘어나는것을 방지하기 위해 유사한 정보를 갖는 그룹을 묶는 추가적인 알고리즘의 연구가 필요하다.참 고 문 헌[1] 정광본, 최미정, 김명섭, 원영준, 홍원기, "ML 알고리즘을 적용한 <strong>인터넷</strong> 애플리케이션 <strong>트래픽</strong> <strong>분류</strong>," TheCommittee on Korean Network Operations and Management(KNOM), Vol. 10, No. 2, Dec. 2007, .[2] 박병철, 원영준, 김명섭, 홍원기, "자동화된 애플리케이션 레벨의 Signature 생성", Proc. of the Korean NetworkOperations and Management (KNOM) 2007, 제주대학교, Jeju,Korea, Apr. 26-27, 2007, pp.110-119.[3] http://nmlab.korea.ac.kr/sys/traffic_graph/[4] 윤성호, 노현구, 김명섭, “ TMA(Traffic MeasurementAgent)를 <strong>이용한</strong> <strong>인터넷</strong> <strong>응용</strong> <strong>트래픽</strong> <strong>분류</strong>”, 제 29 회 한국정보처리학회 춘계학술발표대회(KIPS) 2008, 경일대학교,Gyeongbuk, Korea, May. 16-17, 2008 pp. 946-949[5] Se-Hee Han, Myung-Sup Kim, Hong-Taek Ju, and J. Won-KiHong, "The Arcitecture of NG-MON: A Passive NetworkMonitoring System," Proc. of the IFIP/IEEE Distributed Systems:Operations and Management (DSOM) 2002, Montreal, Canada,Oct. 21-23, 2002, pp. 16-27.[6] http://support.microsoft.com/kb/908472/ko[7] 노현구, 윤성호, 박상훈, 김명섭, “ Time-based PortGrouping 을 <strong>이용한</strong> <strong>인터넷</strong> <strong>응용</strong> <strong>트래픽</strong> <strong>분류</strong>”, 통신학회하계종합학술발표회, 라마다플라자호텔, 제주, Jul. 2-4,2008, pp.621.

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

Saved successfully!

Ooh no, something went wrong!