KR20130093800A - 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법 - Google Patents

통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20130093800A
KR20130093800A KR1020120000932A KR20120000932A KR20130093800A KR 20130093800 A KR20130093800 A KR 20130093800A KR 1020120000932 A KR1020120000932 A KR 1020120000932A KR 20120000932 A KR20120000932 A KR 20120000932A KR 20130093800 A KR20130093800 A KR 20130093800A
Authority
KR
South Korea
Prior art keywords
packet
packets
mask
application
characteristic information
Prior art date
Application number
KR1020120000932A
Other languages
English (en)
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 KR1020120000932A priority Critical patent/KR20130093800A/ko
Priority to US13/734,044 priority patent/US20130170377A1/en
Publication of KR20130093800A publication Critical patent/KR20130093800A/ko

Links

Images

Classifications

    • 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
    • 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/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 통신 시스템에서 패킷 플로우가 속한 어플리케이션을 식별하기 위한 것으로, 식별 방법은, 제1어플리케이션의 특성 정보를 선택하는 과정과, 상기 패킷 플로우를 통해 전달되는 패킷들에서, 상기 특성 정보에 포함된 마스크(mask)에 의해 지정되는 위치의 비트열들을 검사하는 과정과, 입력된 전체 패킷 개수 대비 일치의 검사 결과 수의 비율을 산출하는 과정과, 상기 비율이 상기 특성 정보에 포함된 제1임계치를 초과하는 경우, 상기 패킷 플로우가 상기 제1어플리케이션에 속함을 판단하는 과정을 포함한다.

Description

통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법{APPARATUS AND METHOD FOR IDENTIFYING APPLICATION USING PACKET IN COMMUNICATION SYSTEM}
본 발명은 통신 시스템에 관한 것이다.
최근 스마트폰(smart phone)의 이용이 급격하게 늘어남에 따라, 이동 통신망에도 기존의 유선 IP(Internet Protocol) 망과 같은 성격의 트래픽이 급증하고 있다. 오디오/비디오 스트리밍(Streaming) 트래픽(traffic) 제어 등을 통한 효율적인 망 자원 운용을 위해, 또한, 기존의 유선 통신망을 대체하는 VoIP(Voice over IP) 서비스 및 메세징 서비스의 견제를 위해, 패킷의 내용을 분석하여 어떠한 서비스를 제공하는지를 분석하는 기법이 대한 요구가 증가하고 있다.
서비스를 분석하는 기술은 포트(port) 번호와 같은 TCP/UDP(Transmission Control Protocol/User Datagram Protocol)의 헤더(header) 정보 및 데이터에 포함된 특정 문자열 패턴의 존재 여부를 확인하거나, 또는, 특정 패킷의 길이나 개수 등을 이용한다. 또는, 기타 프로토콜 동작 방식 및 통계 정보 등이 활용될 수 있다. 어플리케이션(application)이 항상 일정한 포트번호를 사용하거나, 패킷 데이터에서 특정한 문자열 패턴(string pattern)이 사용된다면, 상술한 방식이 쉽게 적용될 수 있다. 하지만, 최근의 어플리케이션들은 데이터의 내용을 보호하기 위해 암호화를 하거나, 특정 번호의 포트가 차단됨으로 인해 서비스 불가 상태가 되는 상황을 피하기 위해 가변적인 포트 번호를 사용하는 등의 정책을 채용하고 있다.
데이터가 암호화되거나, 가변 포트 변호를 사용하는 경우, 상술한 서비스 분석 기술은 적절한 분석 결과를 보장할 수 없다. 따라서, 암호화된 데이터를 사용하는 어플리케이션을 식별하기 위한 새로운 대안이 제시되어야 한다.
따라서, 본 발명의 목적은 통신 시스템에서 어플리케이션을 식별하기 위한 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 통신 시스템에서 암호화된 패킷을 분석하여 어플리케이션을 식별하기 위한 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 통신 시스템에서 패킷 내 특정 비트의 동일성 여부를 통해 어플리케이션을 식별하기 위한 장치 및 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 제1견지에 따르면, 패킷 플로우가 속한 어플리케이션을 식별하는 방법은, 제1어플리케이션의 특성 정보를 선택하는 과정과, 상기 패킷 플로우를 통해 전달되는 패킷들에서, 상기 특성 정보에 포함된 마스크(mask)에 의해 지정되는 위치의 비트열들을 검사하는 과정과, 입력된 전체 패킷 개수 대비 일치의 검사 결과 수의 비율을 산출하는 과정과, 상기 비율이 상기 특성 정보에 포함된 제1임계치를 초과하는 경우, 상기 패킷 플로우가 상기 제1어플리케이션에 속함을 판단하는 과정을 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제2견지에 따르면, 패킷 플로우가 속한 어플리케이션을 식별하는 장치는, 적어도 하나의 어플리케이션에 대응되는 특성 정보를 저장하는 저장부와, 제1어플리케이션의 특성 정보를 선택하고, 상기 패킷 플로우를 통해 전달되는 패킷들에서, 상기 특성 정보에 포함된 마스크(mask)에 의해 지정되는 위치의 비트열들을 검사하고, 입력된 전체 패킷 개수 대비 일치의 검사 결과 수의 비율을 산출하고, 상기 비율이 상기 특성 정보에 포함된 제1임계치를 초과하는 경우, 상기 패킷 플로우가 상기 제1어플리케이션에 속함을 판단하는 제어부를 포함하는 것을 특징으로 한다.
통신 시스템에서 특정 클라이언트의 통신 행위를 패킷 단위로 표준화된 데이터 구조에 업데이트하여 실시간으로 수집하고 분석함으로써, 데이터가 암호화된 경우이더라도 어플리케이션 검출이 가능하다.
도 1은 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 검출 엔진의 논리적 구조를 도시하는 도면,
도 2는 본 발명의 실시 예에 따른 통신 시스템에서 패킷 마스킹의 예를 도시하는 도면,
도 3은 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 식별 절차를 도시하는 도면,
도 4는 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 식별 장치의 블록 구성을 도시하는 도면.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다.
이하 본 발명은 통신 시스템에서 패킷을 분석하여 어플리케이션(application)을 식별하기 위한 기술에 대해 설명한다. 본 발명은 암호화된 데이터를 사용하는 애플리케이션의 패킷 데이터 위치에 따른 데이터의 동일 여부를 확인하는 것으로서, 응용 서비스의 검출도를 높이는 비트 마스크(bit-mask) 기반 어플리케이션 검출 엔진(MDE: Mask-based Detection Engine)을 제안하는 것이다.
본 발명에서 기술하는 마스크(mask) 기반 어플리케이션 검출 엔진은 이하 도 1과 같이 구성될 수 있다. 도 1은 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 검출 엔진의 논리적 구조를 도시하고 있다. 상기 도 1을 참고하면, 어플리케이션 검출 엔진은 검출 조건을 정의하는 적어도 하나의 마스크 시그니처를 저장하는 마스크 시그니처 DB(mask signature database)(110), 상기 마스크 시그니처를 이용한 패킷들의 비교 결과를 저장하고, 특정 어플리케이션으로 예상되는 클라이언트 IP(Internet Protocol) 주소와 해당 어플리케이션 결정 조건을 저장 및 관리하는 매칭 후보 테이블(matching candidates table)(120), 상기 마스크 시그니처를 이용하여 패킷들을 비교 및 분석하는 검출 엔진(detection engine)(130)을 포함한다.
상기 마스크 시그니처 DB(110)는 마스크 시그니처를 포함한다. 상기 마스크 시그니처는 어플리케이션 검출에 사용되는 변수들을 정의하는 특성 정보이다. 구체적으로, 상기 특성 정보는 비트 패턴(bit pattern) 정보이다. 예를 들어, 상기 변수들은 패킷 플로우(flow) 내에서 각각의 패킷들에 대해 패킷 데이터의 특정 위치에 있는 값들이 비트(Bit) 단위로 동일한 보여야 하는 위치를 나타내는 비트 마스크(Bit-Mask), 전체 패킷 개수 중에 앞에 정의한 마스크에 부합하는 패킷의 개수의 비율인 검출 성공 확률 등을 포함할 수 있다. 또한, 상기 마스크 시그니처는 그 외 비교에 사용되는 다양한 값들을 더 정의할 수 있다. 상기 마스크 시그니처는 검출하고자하는 어플리케이션 별로 정의된다. 하기 <표 1>은 마스크 시그니처의 일 예를 나타낸다.
mde { mask: <32byte mask hex value>;
pattern_hit_rate: <hit rate>;
min_count:<value>;
max_count:<value>;
skip_packet_number:<value>;
increase:<start_offset, size, number>;
size_check; }
상기 <표 1>을 참고하면, 'mask'는 패킷들 간 비교될 비트의 위치를 지정하며, 상기 'pattern_hit_rate'는 해당 어플리케이션으로 판단되기 위해 비교 결과가 일치해야 하는 비율을 의미한다. 상기 'min_count'는 비율 계산을 시작하게 하는 입력된 패킷 개수, 상기 'max_count'는 비율 계산을 중단케 하는 입력된 패킷 개수를 의미한다. 'skip_packet_number'는 비교 연산을 시작하게 하는 패킷 입력 개수로서, 'skip_packet_number'에서 정한 개수만큼의 초기 입력 패킷들에 대하여는 비교 연산이 수행되지 아니한다. 'increase'는 다수의 패킷들에서 상기 'mask'에서 지정한 위치의 비트열들의 전체 또는 일부 값이 일정한 패턴으로 변화할 때 사용될 수 있으며, 'start_offset', 'size', 'number'를 포함한다. 상기 'start_offset'은 증가 또는 감소하는 값을 가지는 부분의 위치, 상기 'size'는 증가 또는 감소하는 부분의 길이, 상기 'number'는 변화량을 지정한다. 상기 'number'는 양수 또는 음수일 수 있으며, 양수인 경우 값의 증가를, 음수인 경우 값의 감소를 의미한다. 'size_check'는 패킷 크기가 일정한 경우에 사용될 수 있으며, 해당 일정한 크기를 지정한다.
즉, 상기 <표 1>과 같은 마스크 시그니처가 사용되는 경우, 특정 패킷 플로우의 전체 패킷 대비 마스크를 적용할 데이터가 모두 동일한 값을 가지는 패킷 개수의 비율은 일정 값 이상, 다시 말해, 'pattern_hit_rate'에서 설정한 값 이상이 되어야 한다. 이때, 비율 비교는 누적된 패킷 개수가 'min_count' 일 때 시작하며, 'max_count'를 초과할 때까지 검출 조건이 족하지 않으면, 검출 절차는 중단된다. 만일, 패킷 플로우 초반에 마스크와 부합하지 않는 패킷이 존재하는 경우, 시그니처 설계자는 'skip_packet_number'에 값을 설정함으로써, 패킷 마스크 비교가 해당 설정 값 이후에 진행되도록 할 수 있다. 만일, 패킷에서 특정 위치의 부분이 일정한 패턴으로 변화하는 경우, 시그니처 설계자는 'increase'를 설정하여 변화하는 패턴을 보이는 부분의 위치를 'start_offset'과 'size'로 지정하고, 변화량이 일정하다면 'number'에 상기 변화 값을 설정할 수 있다. 'size_check'는 특정 플로우의 패킷 데이터가 항상 일정해야 하는 조건을 추가할 때 사용될 수 있다.
마스크 시그니처를 생성하는 경우, 'mask' 및 'pattern_hit_rate'는 필수적으로 정의되어야 하며, 나머지 변수들은 선택적이다. 단, 일부 변수에 대하여 기본값(default)이 정의될 수 있다. 예를 들어, 'min_count' 값이 설정되지 아니한 경우, 32번째 패킷 비교부터 비율이 계산될 수 있다. 또한, 'max_count'가 설정되지 아니한 경우, 48번째 패킷에서 비교가 종료될 수 있다. 'skip_packet_number'가 설정되지 아니한 경우, 3번째 패킷부터 비교가 시작될 수 있다.
상기 매칭 후보 테이블(120)은 모니터링(monitoring) 대상이 되는 플로우의 최근 N개 패킷들의 M 바이트(byte)를 추출 및 저장한다. 예를 들어, 상기 N은 3, 상기 M은 32일 수 있다. 또한, 추출 위치는 패킷의 전단일 수 있다. 그리고, 상기 매칭 후보 테이블(120)은 상기 검출 엔진(130)에 의한 비교 결과를 저장한다.
상기 검출 엔진(130)은 마스크 값을 이용한 비교를 통해 플로우에서 어플리케이션을 식별한다. 모든 패킷들은 식별되기 전까지 상기 검출 엔진(130)을 경유하게 되며, 상기 검출 엔진(130)은 마스크 패턴이 지정하는 위치의 비트열들의 일치 여부를 비교한 후, 비교 결과를 해당 패킷이 속한 플로우의 매칭 후보 테이블(120)에 저장한다. 만일, 마스크 패턴이 일치해서 검출이 된 경우, 상기 검출 엔진(130)은 해당 플로우와 쌍(pair)을 이루는 플로우도 검출된 어플리케이션을 사용한다고 판단할 수 있다. 쌍을 이루는 플로우는 상향링크 및 하향링크 쌍(pair)를 의미한다. 마스크 패턴을 이용한 패킷들의 비교는 이하 도 2에 도시된 바와 같다. 도 2는 본 발명의 실시 예에 따른 통신 시스템에서 패킷 마스킹의 예를 도시하고 있다. 설명의 편의를 위해, 상기 도 2는 32 바이트가 아닌 4 바이트가 추출된 경우를 예로 든다. 상기 도 2를 참고하면, 마스크(210)는 '0xFFFF0000'으로 정의된다. 즉, 상기 마스크(210)는 플로우 내의 패킷들에서 추출된 4 바이트 중의 앞 2 바이트가 동일하여야 함을 정의한다. 만일, 패킷1(221), 패킷2(222), 패킷3(223)이 검출 엔진에 입력되는 경우, 상기 패킷1(221), 상기 패킷2(222), 상기 패킷3(223)의 앞 2 바이트는 모두 '1234'로서 동일하므로, 비교 결과는 '일치'가 된다.
상기 도 2와 같이, 상기 검출 엔진(130)는 마스크가 지정한 위치의 비트열들을 비교하여 일치 여부를 판단한다. 그리고, 상기 검출 엔진(130)은 상기 마스크 시그니처 DB(110)에 저장된 마스크 시그니처에 의해 정의되는 조건에 따라 어플리케이션을 식별한다.
상술한 바와 같이 어플리케이션을 식별하는 장치는 검사에 사용되는 패킷이 속한 계층을 처리하는 객체(entity)에 포함될 수 있다. 예를 들어, IP 패킷을 이용하여 어플리케이션이 식별되는 경우, 상기 장치는 IP 계층의 동작을 수행하는 노드라면 어디든지 포함될 수 있다. 예를 들어, 상기 장치는, 단말에 포함될 수 있고, 또는, 네트워크(network) 상에서 IP 패킷을 처리하는 특정 노드에 포함될 수 있다.
이하 본 발명은 상술한 바와 같이 패킷을 분석함으로써 어플리케이션을 식별하는 장치의 동작 및 구성을 도면을 참고하여 상세히 설명한다.
도 3은 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 식별 절차를 도시하고 있다. 이하 설명의 편의를 위해, 본 발명은 상기 어플리케이션을 식별하는 주체를 '검출자'라 지칭한다.
상기 도 3을 참고하면, 상기 검출자는 301단계에서 패킷이 입력되는지 판단한다. 상기 패킷은 상기 검출자를 포함하는 장치에 설정된 특정 송신 플로우에 속하는 패킷 또는 특정 수신 플로우에 속하는 패킷일 수 있다. 즉, 상기 어플리케이션의 식별은 특정 플로우에 대하여 수행되므로, 상기 검출자는 특정 송신 또는 수신 플로우를 통해 전달되는 패킷들을 입력받는다. 상기 도 3에 도시되지 아니하였으나, 상기 301단계에 앞서, 상기 검출자는 미리 정의된 다수의 특성 정보들, 즉, 다수의 마스크 시그니처들 중 하나의 어플리케이션에 대응되는 특성 정보, 즉, 마스크 시그니처를 선택한다.
상기 패킷이 입력되면, 상기 검출자는 303단계로 진행하여 입력된 패킷의 일부를 추출하고, 저장한다. 추출되는 상기 패킷의 일부의 위치 및 크기는 미리 정의된 바에 따른다. 예를 들어, 상기 패킷의 일부는 전단의 M개 바이트일 수 있다. 예를 들어, 상기 M은 32일 수 있다. 본 발명의 다른 실시 예에 따라, 패킷 전체가 저장될 수 있다. 만일, 상기 검출자가 제한된 개수의 패킷만을 저장하는 경우, 가장 오래된 패킷을 폐기하고, 상기 301단계에서 입력된 패킷을 저장한다.
이어, 상기 검출자는 305단계로 진행하여 비교 가능한 개수의 패킷들이 누적되었는지 판단한다. 즉, 상기 검출자는 미리 정의된 개수의 패킷들을 비교한다. 예를 들어, 상기 검출자는 3개의 패킷들을 비교할 수 있다. 이 경우, 3개의 패킷들로부터 하나의 검사 결과가 도출된다. 본 발명의 다른 실시 예에 따라, 상기 검출자는 2개 또는 4개 이상의 패킷들을 비교할 수 있다.
상기 비교 가능한 개수의 패킷들이 누적되었으면, 상기 검출자는 307단계로 진행하여 입력된 패킷 개수가 제1임계치를 초과하는지 판단한다. 여기서, 상기 제1임계치는 플로우가 시작된 후 일정 개수의 패킷들에 대하여 검사를 스킵(skip)하기 위해 정의되는 변수이다. 예를 들어, 상기 제1임계치는 상기 <표 1>의 'skip_packet_number'와 동일하다. 예를 들어, 플로우의 시작 직후 전달되는 일정 개수의 패킷들이 공통된 패턴에서 벗어나는 경우, 상기 제1임계치가 사용될 수 있다. 상기 제1임계치가 '0'인 경우, 상기 307단계는 생략된 것과 같다. 즉, 상기 제1임계치 만큼의 패킷들이 입력되기 전까지, 상기 검출자는 저장만을 수행하고, 이후에 입력되는 패킷에 대하여 검사를 수행한다.
상기 입력된 패킷 개수가 상기 제1임계치를 초과하면, 상기 검출자는 309단계로 진행하여 입력된 패킷 개수가 제2임계치를 초과하는지 판단한다. 상기 제2임계치는 본 절차가 지속되기 위한 패킷의 한계치를 정의한다. 예를 들어, 상기 제2임계치는 상기 <표 1>의 'max_count'와 동일하다. 즉, 어플리케이션의 식별 조건이 만족되지 아니함으로 인해 검사를 무한 반복적으로 수행하는 것은 바람직하지 아니하므로, 상기 제2임계치는 무한 반복적인 연산을 방지한다. 상기 제2임계치는 통계에 의해 정의됨이 바람직하다. 만일, 상기 입력된 패킷 개수가 제2임계치를 초과하면, 상기 검출자는 본 절차를 종료한다. 상기 도 3에 도시되지 아니하였으나, 이후, 상기 검출자는 현재 사용중인 마스크 시그니처를 후보에서 제외하고, 다른 어플리케이션에 대응되는 특성 정보, 즉, 마스크 시그니처를 이용하여 본 절차를 다시 수행할 수 있다.
반면, 상기 입력된 패킷 개수가 제2임계치를 초과하지 아니하면, 상기 검출자는 311단계로 진행하여 마스크, 변화 패턴, 패킷 크기에 따라 패킷을 검사하고, 검사 결과를 저장한다. 상기 검사를 위해, 상기 301단계에서 입력된 패킷 및 이미 저장된 적어도 하나의 패킷이 사용된다. 여기서, 상기 변화 패턴 및 상기 패킷 크기는 정의되지 아니할 수 있다. 상기 마스크만이 정의된 경우, 상기 검출자는 다수의 패킷들 간 상기 마스크에 의해 지정된 비트열들의 일치 여부를 판단한다. 예를 들어, 3개의 패킷들이 검사에 사용되는 경우, 상기 비트열들의 일치를 판단하는 논리는 하기 <수학식 1>과 같이 정의될 수 있다.
Figure pat00001
Figure pat00002
상기 <수학식 1>에서, 상기 NEGATE는 '0'을 '1'로, '1'을 '0'으로 변경하는 연산자로서, 예를 들어, 'NEGATE(1100)'는 '0011'이다. 상기 pn은 n번째 패킷을 의미한다. 상기 mask는 마스크 시그니처에 의해 정의되는 마스크를 의미한다. 상기 <수학식 1>의 두 번째 행이 참(true)인 경우, 일치를 의미한다.
상기 변화 패턴이 더 정의된 경우, 상기 검출자는 다수의 패킷들 간 상기 마스크에 의해 지정된 비트열들의 일부 또는 전체의 값이 정해진 변화량으로 증가 또는 감소하는지 여부를 판단한다. 상기 패킷 크기가 더 정의된 경우, 상기 검출자는 상기 다수의 패킷들 각각의 크기가 상기 패킷 크기와 일치하는지 판단한다. 예를 들어, 상기 마스크, 상기 변화 패턴, 상기 패킷 크기는 상기 <표 1>의 'mask', 'increase', 'size_check'과 동일하다. 그리고, 상기 검출자는 상기 검사 결과, 즉, 일치 및 불일치를 저장한다.
이후, 상기 검출자는 313단계로 진행하여 입력된 패킷 개수가 제3임계치를 초과하는지 판단한다. 상기 제3임계치는 비교 연산을 시작하게 하는 최소 패킷 개수를 정의한다. 예를 들어, 상기 제3임계치는 상기 <표 1>의 'min_count'와 동일하다. 즉, 누적된 검사 결과의 개수가 부족한 경우, 비율이 정확한 식별 결과를 반영하지 못한다. 따라서, 상기 검출자는, 일정 개수의 패킷들이 누적되고, 이에 따라, 일정 개수의 검사 결과가 누적된 때에 한하여, 비율을 계산한다.
상기 입력된 패킷 개수가 제3임계치를 초과하면, 상기 검출자는 315단계로 진행하여 일치 비율을 산출한다. 즉, 상기 311단계에서 저장됨 검사 결과 및 이미 저장된 적어도 하나의 검사 결과를 이용하여, 상기 검출자는 전체 검사 결과 수 대비 일치의 수의 비율을 산출한다.
이어, 상기 검출자는 317단계로 진행하여 상기 일치 비율이 제4임계치를 초과하는지 판단한다. 상기 제4임계치는 해당 어플리케이션으로 판단되기 위해 비교 결과가 일치해야 하는 비율을 의미한다. 예를 들어, 상기 제4임계치는 상기 <표 1>의 'pattern_hit_rate'와 동일하다. 만일, 상기 일치 비율이 상기 제4임계치 이하이면, 상기 검출자는 상기 301단계로 되돌아가 다음 패킷의 입력을 대기한다.
반면, 상기 일치 비율이 상기 제4임계치를 초과하면, 상기 검출자는 319단계로 진행하여 현재 검사중인 패킷 플로우가 해당 어플리케이션에 속함을 판단한다. 여기서, 상기 해당 어플리케이션은 본 절차에 사용된 마스크 시그니처에 대응되는 어플리케이션을 의미한다.
상기 도 3을 참고하여 설명한 절차에 더하여, 보다 정확한 어플리케이션 식별을 위해, 불일치의 검사 결과가 발생한 경우, 전체 패킷 개수를 조절하는 절차가 더 추가될 수 있다. 상술한 절차를 참고하면, 연속하여 입력된 다수의 패킷들로부터 하나의 검사 결과가 도출된다. 따라서, 하나의 패킷만이 불일치하더라도, 1회의 검사에 사용되는 패킷 개수만큼의 불일치가 발생하게 된다.
예를 들어, 3개의 패킷들을 비교하는 경우를 가정한다. 패킷A, 패킷B, 패킷C, 패킷D, 패킷E, 패킷F가 순차적으로 입력되고, 패킷D만이 불일치하는 경우, 패킷A-B-C의 검사 결과는 일치, 이어서 수행되는 패킷B-C-D의 검사 결과는 불일치이고, 이어서 수행되는 패킷C-D-E의 검사 결과 및 패킷D-E-F의 검사 결과도 불일치이다. 즉, 패턴을 벗어난 하나의 패킷에 의해, 3번의 불일치가 발생한다. 이로 인해, 불일치의 검사 결과가 실제 불일치하는 패킷의 수보다 많게 산출될 수 있다.
따라서, 불일치의 검사 결과가 부당하게 많게 산출되는 현상을 방지하기 위해, 본 발명은 변수 'no_count'를 사용할 수 있다. 상기 'no_count'는 최초 불일치 검사 결과가 발생하는 때 '1회의 검사에 사용되는 패킷 수-1' 만큼 증가(예 : 3개의 패킷들이 사용되는 경우 2만큼 증가)한다. 그리고, 전체 패킷 개수를 계산하는 경우, 상기 검출자는 실제 입력된 패킷 개수에서 상기 'no_count'만큼 감산한다. 즉, 상기 315단계에서 일치 비율을 산출할 때, 상기 검출자는 '실제 입력된 패킷 개수- no _ count'를 전제 패킷 개수로 사용한다. 또한, 상기 313단계에서 입력된 패킷 개수를 계산할 때, 상기 검출자는 '실제 입력된 패킷 개수- no _ count'를 입력된 패킷 개수로 사용한다.
본 발명의 다른 실시 예에 따라, 상기 도 3에 도시된 실시 예의 절차 중 일부 단계는 생략될 수 있다. 예를 들어, 상기 307단계, 상기 309단계, 상기 313단계 중 적어도 하나가 생략될 수 있다. 상기 307단계가 생략되는 경우, 상기 검출자는 최초 플로우가 시작된 후 일정 개수의 패킷들에 대하여 스킵(skip)함 없이 검사를 수행한다, 상기 309단계가 생략되는 경우, 상기 검출자는 어플리케이션이 식별될 때까지 검사를 반복하거나, 또는, 별도의 조건을 이용하여 무한 반복 연산을 회피할 수 있다. 상기 313단계가 생략되는 경우, 상기 검출자는 검사에 사용되는 최소 개수의 패킷이 저장된 때부터 비율을 계산한다. 본 발명의 또 다른 실시 예에 따라, 상기 도 3에 도시된 절차 중 상기 307단계, 상기 309단계, 상기 313단계 외 다른 단계가 생략될 수 있다.
도 4는 본 발명의 실시 예에 따른 통신 시스템에서 어플리케이션 식별 장치의 블록 구성을 도시하고 있다.
상기 도 4를 참고하면, 상기 어플리케이션 식별 장치는 제어부(410), 저장부(420)를 포함하여 구성된다. 상기 제어부(410)는 상기 어플리케이션을 식별하기 위해 필요한 연산을 수행한다. 예를 들어, 상기 제어부(410)는 상기 도 1의 검출 엔진의 기능을 수행한다. 상기 저장부(420)는 상기 어플리케이션을 식별하기 위해 필요한 정보, 일시적으로 발생하는 데이터 등을 저장한다. 예를 들어, 상기 저장부(420)는 마스크 시그니처 DB, 매칭 후보 테이블, 검사 결과 등을 저장한다. 그리고, 상기 저장부(420)는 상기 제어부(410)의 요청에 따라 저장된 데이터를 제공한다. 특히, 본 발명에 따라, 상기 제어부(410)는 상기 도 3에 도시된 바와 같은 절차를 수행한다.
상기 제어부(410)의 동작을 구체적으로 설명하면 다음과 같다. 상기 패킷이 입력되면, 상기 제어부(410)는 입력된 패킷의 일부를 추출하고, 상기 저장부(420)에 저장한다. 본 발명의 다른 실시 예에 따라, 패킷 전체가 저장될 수 있다. 이어, 상기 제어부(410)는 비교 가능한 개수의 패킷들이 누적되었는지, 그리고, 입력된 패킷 개수가 제1임계치를 초과하는지 판단한다. 여기서, 상기 제1임계치는 플로우가 시작된 후 일정 개수의 패킷들에 대하여 검사를 스킵(skip)하기 위해 정의되는 변수이다.
비교 가능한 개수의 패킷들이 누적되고, 상기 입력된 패킷 개수가 상기 제1임계치를 초과하면, 상기 제어부(410)는 입력된 패킷 개수가 제2임계치를 초과하는지 판단한다. 상기 제2임계치는 본 절차가 지속되기 위한 패킷의 한계치를 정의한다. 만일, 상기 입력된 패킷 개수가 제2임계치를 초과하면, 상기 제어부(410)는 현재 사용중인 마스크 시그니처를 후보에서 제외하고, 다른 어플리케이션에 대응되는 마스크 시그니처를 이용하여 본 절차를 다시 수행한다. 반면, 상기 입력된 패킷 개수가 제2임계치를 초과하지 아니하면, 상기 제어부(410)는 마스크, 변화 패턴, 패킷 크기에 따라 패킷들을 검사하고, 검사 결과를 저장한다.
이후, 상기 제어부(410)는 입력된 패킷 개수가 제3임계치를 초과하는지 판단한다. 상기 제3임계치는 비교 연산을 시작하게 하는 최소 패킷 개수를 정의한다. 상기 입력된 패킷 개수가 제3임계치를 초과하면, 상기 제어부(410)는 일치 비율을 산출한다. 상기 일치 비율이 제4임계치를 초과하면, 상기 제어부(410)는 319단계로 진행하여 현재 검사중인 패킷 플로우가 해당 어플리케이션에 속함을 판단한다. 상기 제4임계치는 해당 어플리케이션으로 판단되기 위해 비교 결과가 일치해야 하는 비율을 의미한다.
이에 더하여, 상기 제어부(410)는 변수 'no_count'를 사용할 수 있다. 이 경우, 전체 패킷 개수를 계산하는 경우, 상기 제어부(410)는 실제 입력된 패킷 개수에서 상기 'no_count'만큼 감산한다. 즉, 상기 일치 비율을 산출할 때, 상기 제어부(410)는 '실제 입력된 패킷 개수- no _ count'를 전제 패킷 개수로 사용한다. 또한, 입력된 패킷 개수를 계산할 때, 상기 제어부(410)는 '실제 입력된 패킷 개수-no_count'를 입력된 패킷 개수로 사용한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (24)

  1. 패킷 플로우가 속한 어플리케이션을 식별하는 방법에 있어서,
    제1어플리케이션의 특성 정보를 선택하는 과정과,
    상기 패킷 플로우를 통해 전달되는 패킷들에서, 상기 특성 정보에 포함된 마스크(mask)에 의해 지정되는 위치의 비트열들을 검사하는 과정과,
    입력된 전체 패킷 개수 대비 일치의 검사 결과 수의 비율을 산출하는 과정과,
    상기 비율이 상기 특성 정보에 포함된 제1임계치를 초과하는 경우, 상기 패킷 플로우가 상기 제1어플리케이션에 속함을 판단하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 과정은,
    상기 패킷들 각각에서 상기 마스크에 의해 지정되는 위치의 비트열들이 동일한지 여부를 판단하는 과정과,
    상기 비트열들이 동일하면, 검사 결과를 일치로 판단하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 과정은,
    상기 패킷들 각각에서 상기 마스크에 의해 지정되는 위치의 비트열들 중 일부 또는 전체가 일정 크기로 증가하는지 여부를 판단하는 과정과,
    상기 비트열들 중 일부 또는 전체가 일정 크기로 증가하면, 검사 결과를 일치로 판단하는 과정을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 과정은,
    상기 패킷들의 크기가 상기 특성 정보에 의해 정의되는 크기와 동일한지 여부를 판단하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 과정은,
    입력된 패킷 개수가 상기 특성 정보에 포함된 제2임계치를 초과한 후, 상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 과정을 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    입력된 패킷 개수가 상기 특성 정보에 포함된 제3임계치를 초과하면, 상기 패킷 플로우가 상기 제1어플리케이션에 속하지 아니함을 판단하는 과정과,
    제2어플리케이션의 특성 정보를 선택하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 비율을 산출하는 과정은,
    입력된 패킷 개수가 상기 특성 정보에 포함된 제4임계치를 초과한 후, 상기 비율을 산출하는 과정을 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    불일치의 검사 결과가 발생하면, 상기 입력된 전체 패킷 개수를 n 만큼 감소시키는 과정을 더 포함하며,
    상기 n은, 1회의 검사에 사용되는 패킷 개수에서 1을 감산한 값인 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 패킷 플로우를 통해 전달되는 패킷들의 일부를 추출하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 특성 정보는, 패킷들 간 비교될 비트의 위치를 지정하는 상기 마스크, 해당 어플리케이션으로 판단되기 위한 최소 비율을 나타내는 상기 제1임계치, 검사를 시작하게 하는 패킷 입력 개수인 제2임계치, 검사를 종료하게 하는 패킷 입력 개수인 제3임계치, 비율 산출을 시작하게 하는 패킷 입력 개수인 제4임계치, 상기 마스크에 의해 지정되는 비트열 중 다수의 패킷들에서 값이 일정하게 변화하는 패턴을 보이는 부분의 위치 및 길이를 지정하는 정보 및 변화량, 상기 패킷 플로우를 통해 전달되는 패킷의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 패킷의 크기는, 해당 어플리케이션의 패킷들의 크기가 일정한 경우에 포함되는 것을 특징으로 하는 방법.
  12. 제10항에 있어서,
    상기 변화하는 패턴을 보이는 부분의 위치 및 길이를 지정하는 정보 및 상기 변화량은, 상기 마스크에 의해 지정되는 비트열의 전체 또는 일부가 다수의 패킷들에서 값이 일정하게 변화하는 패턴을 보이는 경우에 포함되는 것을 특징으로 하는 방법.
  13. 패킷 플로우가 속한 어플리케이션을 식별하는 장치에 있어서,
    적어도 하나의 어플리케이션에 대응되는 특성 정보를 저장하는 저장부와,
    제1어플리케이션의 특성 정보를 선택하고, 상기 패킷 플로우를 통해 전달되는 패킷들에서, 상기 특성 정보에 포함된 마스크(mask)에 의해 지정되는 위치의 비트열들을 검사하고, 입력된 전체 패킷 개수 대비 일치의 검사 결과 수의 비율을 산출하고, 상기 비율이 상기 특성 정보에 포함된 제1임계치를 초과하는 경우, 상기 패킷 플로우가 상기 제1어플리케이션에 속함을 판단하는 제어부를 포함하는 것을 특징으로 하는 장치.
  14. 제13항에 있어서,
    상기 제어부는, 상기 패킷들 각각에서 상기 마스크에 의해 지정되는 위치의 비트열들이 동일한지 여부를 판단하고, 상기 비트열들이 동일하면, 검사 결과를 일치로 판단하는 것을 특징으로 하는 장치.
  15. 제13항에 있어서,
    상기 제어부는, 상기 패킷들 각각에서 상기 마스크에 의해 지정되는 위치의 비트열들 중 일부 또는 전체가 일정 크기로 증가하는지 여부를 판단하고, 상기 비트열들 중 일부 또는 전체가 일정 크기로 증가하면, 검사 결과를 일치로 판단하는 것을 특징으로 하는 장치.
  16. 제13항에 있어서,
    상기 제어부는, 상기 패킷들의 크기가 상기 특성 정보에 의해 정의되는 크기와 동일한지 여부를 판단하는 것을 특징으로 하는 장치.
  17. 제13항에 있어서,
    상기 제어부는, 입력된 패킷 개수가 상기 특성 정보에 포함된 제2임계치를 초과한 후, 상기 마스크에 의해 지정되는 위치의 비트열들을 검사하는 것을 특징으로 하는 장치.
  18. 제13항에 있어서,
    상기 제어부는, 입력된 패킷 개수가 상기 특성 정보에 포함된 제3임계치를 초과하면, 상기 패킷 플로우가 상기 제1어플리케이션에 속하지 아니함을 판단하고, 제2어플리케이션의 특성 정보를 선택하는 것을 특징으로 하는 장치.
  19. 제13항에 있어서,
    상기 제어부는, 입력된 패킷 개수가 상기 특성 정보에 포함된 제4임계치를 초과한 후, 상기 비율을 산출하는 것을 특징으로 하는 장치.
  20. 제13항에 있어서,
    상기 제어부는, 불일치의 검사 결과가 발생하면, 상기 입력된 전체 패킷 개수를 n 만큼 감소시키며,
    상기 n은, 1회의 검사에 사용되는 패킷 개수에서 1을 감산한 값인 것을 특징으로 하는 장치.
  21. 제13항에 있어서,
    상기 제어부는, 상기 패킷 플로우를 통해 전달되는 패킷들의 일부를 추출하는 것을 특징으로 하는 장치.
  22. 제13항에 있어서,
    상기 특성 정보는, 패킷들 간 비교될 비트의 위치를 지정하는 상기 마스크, 해당 어플리케이션으로 판단되기 위한 최소 비율을 나타내는 상기 제1임계치, 검사를 시작하게 하는 패킷 입력 개수인 제2임계치, 검사를 종료하게 하는 패킷 입력 개수인 제3임계치, 비율 산출을 시작하게 하는 패킷 입력 개수인 제4임계치, 상기 마스크에 의해 지정되는 비트열 중 다수의 패킷들에서 값이 일정하게 변화하는 패턴을 보이는 부분의 위치 및 길이를 지정하는 정보 및 변화량, 상기 패킷 플로우를 통해 전달되는 패킷의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  23. 제22항에 있어서,
    상기 패킷의 크기는, 해당 어플리케이션의 패킷들의 크기가 일정한 경우에 포함되는 것을 특징으로 하는 장치.
  24. 제22항에 있어서,
    상기 변화하는 패턴을 보이는 부분의 위치 및 길이를 지정하는 정보 및 상기 변화량은, 상기 마스크에 의해 지정되는 비트열의 전체 또는 일부가 다수의 패킷들에서 값이 일정하게 변화하는 패턴을 보이는 경우에 포함되는 것을 특징으로 하는 장치.
KR1020120000932A 2012-01-04 2012-01-04 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법 KR20130093800A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120000932A KR20130093800A (ko) 2012-01-04 2012-01-04 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법
US13/734,044 US20130170377A1 (en) 2012-01-04 2013-01-04 Apparatus and method for identifying application using packet in communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120000932A KR20130093800A (ko) 2012-01-04 2012-01-04 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20130093800A true KR20130093800A (ko) 2013-08-23

Family

ID=48694719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120000932A KR20130093800A (ko) 2012-01-04 2012-01-04 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US20130170377A1 (ko)
KR (1) KR20130093800A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2508174B (en) * 2012-11-22 2015-04-08 F Secure Corp Detecting application behavior
US10986001B2 (en) * 2018-01-25 2021-04-20 Nokia Solutions And Networks Oy System and method for quality of service detection of encrypted packet flows
CN109327516A (zh) * 2018-10-08 2019-02-12 马鞍山沐及信息科技有限公司 一种基于大数据的能效分析系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4734223B2 (ja) * 2006-11-29 2011-07-27 アラクサラネットワークス株式会社 トラヒック分析装置および分析方法
JP5322620B2 (ja) * 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US8484568B2 (en) * 2010-08-25 2013-07-09 Verizon Patent And Licensing Inc. Data usage monitoring per application
US8711860B2 (en) * 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks

Also Published As

Publication number Publication date
US20130170377A1 (en) 2013-07-04

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
CN108737333B (zh) 一种数据检测方法以及装置
US8111629B2 (en) Media session identification method for IP networks
US8767551B2 (en) System and method for flow table management
Da Silva et al. Identification and selection of flow features for accurate traffic classification in SDN
CN105591973B (zh) 应用识别方法及装置
CN104243237B (zh) P2p流检测方法和设备
CN108234345B (zh) 一种终端网络应用的流量特征识别方法、装置和系统
JP2006148686A (ja) 通信監視システム
KR20130093800A (ko) 통신 시스템에서 패킷을 이용하여 어플리케이션을 식별하기 위한 장치 및 방법
CN108512816B (zh) 一种流量劫持的检测方法及装置
CN107707549B (zh) 一种自动提取应用特征的装置及方法
US9807204B2 (en) Optimized message processing
CN114070800B (zh) 一种结合深度包检测和深度流检测的secs2流量快速识别方法
CN112291213A (zh) 一种基于智能终端的异常流量分析方法及装置
CN108347359B (zh) 一种大型网络地址转换出口判断方法及装置
CN107360062B (zh) Dpi设备识别结果的验证方法、系统及dpi设备
CN111953552B (zh) 数据流的分类方法和报文转发设备
KR20130126830A (ko) 실시간 응용 시그니쳐 생성 장치 및 방법
KR102119636B1 (ko) 수동 핑거프린팅을 이용한 익명 네트워크 분석 시스템 및 방법
CN105827627A (zh) 一种信息获取方法和装置
CN109309679A (zh) 一种基于tcp流状态的网络扫描检测方法及检测系统
CN113271263B (zh) 一种数据处理方法及其设备
KR101467942B1 (ko) 고속 어플리케이션 인지 시스템 및 처리 방법
CN108933683B (zh) 网络加速感知方法、装置和系统

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid