KR102204290B1 - 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법 - Google Patents

통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법 Download PDF

Info

Publication number
KR102204290B1
KR102204290B1 KR1020190103548A KR20190103548A KR102204290B1 KR 102204290 B1 KR102204290 B1 KR 102204290B1 KR 1020190103548 A KR1020190103548 A KR 1020190103548A KR 20190103548 A KR20190103548 A KR 20190103548A KR 102204290 B1 KR102204290 B1 KR 102204290B1
Authority
KR
South Korea
Prior art keywords
static field
protocol
message
extracting
network protocol
Prior art date
Application number
KR1020190103548A
Other languages
English (en)
Other versions
KR102204290B9 (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 KR1020190103548A priority Critical patent/KR102204290B1/ko
Application granted granted Critical
Publication of KR102204290B1 publication Critical patent/KR102204290B1/ko
Publication of KR102204290B9 publication Critical patent/KR102204290B9/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법이 개시된다. 일 실시예에 따른 프로토콜 사양 추출 시스템은, 네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 단계; 상기 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사하는 단계; 상기 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출하는 단계; 및 상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출하는 단계를 포함할 수 있다.

Description

통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법{IDENTIFICATION OF DELIMITER AND STATIC FIELD IN PROTOCOL REVERSE ENGINEERING USING STATISTIC ANALYSIS}
아래의 설명은 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출 기술에 관한 것이다.
최근 네트워크 환경은 고속화 및 대용량화가 이루어 지면서 매우 다양하고 복잡한 통신들이 이루어지고 있다. 이런 환경에서 발생하는 통신들 중, 특정 통신들은 비공개 프로토콜을 사용한다. 비공개 프로토콜은 사양이 알려져 있지 않기 때문에 이러한 프로토콜을 사용하는 악성행위들에 대한 탐지나 대처가 어렵다. 이에 따라, 효율적인 네트워크 관리 및 보안을 위해서는 비공개 프로토콜의 사양을 파악하는 것이 필수적이다.
예컨대 한국등록특허 제10-1545255호("이종 통신 프로토콜 통합 기반의 모니터링 시스템 및 모니터링 방법")에 따르면, 프로토콜 데이터에서 검색문자를 확인해서 일치하는 경우 구분자를 찾아서 파싱하는 기술이 개시되어 있다.
통계적 분석 방법을 기반으로 네트워크 프로토콜의 정적필드와 구분자를 추출하는 방법 및 시스템을 제공할 수 있다.
프로토콜의 세부적인 사양을 추출하기 앞서, 프로토콜 구조의 토대가 되는 정적필드를 구분하기 위한 구분자를 추출하고, 추출된 구분자를 통해 정적필드를 명확하게 추출하는 방법 및 시스템을 제공할 수 있다.
프로토콜 사양 추출 시스템은, 네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 단계; 상기 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사하는 단계; 상기 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출하는 단계; 및 상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출하는 단계를 포함할 수 있다.
상기 재조립하는 단계는, 상기 네트워크 프로토콜 데이터를 플로우 형태로 읽어들인 후, 상기 네트워크 프로토콜 데이터가 TCP 프로토콜일 경우, 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜일 경우, 하나의 패킷을 메시지로 정의하는 단계를 포함할 수 있다.
상기 검사하는 단계는, 상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜인지 바이너리 기반의 네트워크 프로토콜 인지 여부를 검사하고, 상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜일 경우, 구분자가 존재하는지 검사하는 단계를 포함할 수 있다.
상기 정적필드 후보로 추출하는 단계는, 통계적 분석 방법을 기반으로 상기 검사된 네트워크 프로토콜 데이터 내에서 기 설정된 기준 이상으로 발생하는 문자열들을 정적필드 후보로 추출하는 단계를 포함할 수 있다.
상기 정적필드 후보로 추출하는 단계는, 길이가 k-1 아이템으로부터 길이가 k인 아이템 후보를 생성하고, 상기 생성된 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 상기 계산된 서포트가 특정 임계값을 만족하면 상기 길이가 k인 아이템으로 확정하는 Apriori 알고리즘에 기반하여 정적필드 후보를 추출하는 단계를 포함하고, 상기 서포트는, 정적필드 후보가 특정 데이터의 집합 내에서 얼마나 많이 발생하는지 판단하는 척도를 의미할 수 있다.
상기 최종 정적필드로 추출하는 단계는, 상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 상기 메시지 단위 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출하는 단계를 포함할 수 있다.
상기 최종 정적필드로 추출하는 단계는, 상기 추출된 정적필드 후보에서 스타트 오프셋(start offset)들에 대한 분산 값과 엔드 오프셋(end offset)들에 대한 분산 값을 도출하고, 상기 도출된 분산값들 중 최소값이 특정 임계값을 만족하면 최종 정적필드로 추출하는 단계를 포함하고, 상기 스타트 오프셋은, 메시지의 시작 부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합이고, 상기 엔드 오프셋은, 메시지의 끝부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미할 수 있다.
프로토콜 사양 추출 시스템은, 네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 메시지 어셈블부; 상기 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사하는 구분자 추출부; 상기 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출하는 통계 필터부; 및 상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출하는 위치값 필터부를 포함할 수 있다.
상기 메시지 어셈블부는, 상기 네트워크 프로토콜 데이터를 플로우 형태로 읽어들인 후, 네트워크 프로토콜이 TCP 프로토콜일 경우, 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜일 경우, 하나의 패킷을 메시지로 정의할 수 있다.
상기 구분자 추출부는, 상기 입력된 네트워크 프로토콜이 텍스트 기반의 네트워크 프로토콜인지 바이너리 기반의 네트워크 프로토콜 인지 여부를 검사하고, 상기 네트워크 프로토콜이 텍스트 기반의 네트워크 프로토콜일 경우, 구분자가 존재하는지 검사할 수 있다.
상기 통계 필터부는, 통계적 분석 방법을 기반으로 상기 검사된 네트워크 프로토콜 데이터 내에서 기 설정된 기준 이상으로 발생하는 문자열들을 정적필드 후보로 추출할 수 있다.
상기 통계 필터부는, 길이가 k-1 아이템으로부터 길이가 k인 아이템 후보를 생성하고, 상기 생성된 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 상기 계산된 서포트가 특정 임계값을 만족하면 상기 길이가 k인 아이템으로 확정하는 Apriori 알고리즘에 기반하여 정적필드 후보를 추출하는 것을 포함하고, 상기 서포트는, 정적필드 후보가 특정 데이터의 집합 내에서 얼마나 많이 발생하는지 판단하는 척도를 의미할 수 있다.
상기 위치값 필터부는, 상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 메시지 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출할 수 있다.
상기 위치값 필터부는, 상기 추출된 정적필드 후보에서 스타트 오프셋(start offset)들에 대한 분산 값과 엔드 오프셋(end offset)들에 대한 분산 값을 도출하고, 상기 도출된 분산값들 중 최소값이 특정 임계값을 만족하면 최종 정적필드로 추출하는 것을 포함하고, 상기 스타트 오프셋은, 메시지의 시작 부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합이고, 상기 엔드 오프셋은, 메시지의 끝부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미할 수 있다.
모든 종류의 프로토콜에 적용이 가능하다. 구분자가 존재하지 않는 텍스트 기반의 프로토콜이거나 바이너리 기반의 프로토콜인 경우에도, 통계적 분석방법을 통해 프로토콜의 정적필드를 추출할 수 있다.
비공개 프로토콜의 사양을 추출할 수 있다. 통계적 분석 기반으로 해당 프로토콜의 정적필드와 구분자 필드를 명확하게 추출함으로써 프로토콜의 메시지 유형이나 플로우 유형을 추출하기 위한 토대가 될 수 있다.
비공개 프로토콜을 사용하는 이상행위의 탐지 및 대처가 가능하다. 비공개 프로토콜의 정적필드를 추출함으로써 해당 프로토콜의 사양을 파악하여 해당 프로토콜을 사용하는 이상 행위에 대한 탐지 및 대처가 가능하다.
효율적인 네트워크 관리가 가능하다. 비공개 프로토콜을 사용하는 행위를 판단하고 탐지하여 대역폭 조절 같은 효율적인 네트워크 관리가 가능하다.
도 1은 일 실시예에 따른 프로토콜 사양 추출 시스템의 구성을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 프로토콜 사양 추출 시스템에서 구분자 및 정적필드를 추출하는 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 프로토콜 사양 추출 시스템에서 네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 프로토콜 사양 추출 시스템에서 정적필드 후보를 추출하는 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 프로토콜 사양 추출 시스템에서 최종 정적필드를 추출하는 동작을 설명하기 위한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른 프로토콜 사양 추출 시스템의 구성을 설명하기 위한 도면이다.
프로토콜 사양 추출 시스템은(100)은 구분자 및 정적필드를 추출하기 위한 것으로, 메시지 어셈블부(110), 구분자 추출부(120), 통계 필터부(130) 및 위치값 필터(140)부를 포함할 수 있다.
프로토콜 사양 추출 시스템(100)은 네트워크 프로토콜 데이터가 입력됨을 수신할 수 있다.
메시지 어셈블부(110)는 입력된 네트워크 프로토콜 데이터(프로토콜 트래픽)를 메시지 단위로 재조립할 수 있다. 메시지 어셈블부(110)는 네트워크 프로토콜 데이터를 플로우 형태로 읽어들인 후, 네트워크 프로토콜이 TCP 프로토콜일 경우, 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜일 경우, 하나의 패킷을 메시지로 정의할 수 있다.
구분자 추출부(120)는 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사할 수 있다. 구분자 추출부(120)는 입력된 네트워크 프로토콜이 텍스트 기반의 네트워크 프로토콜인지 바이너리 기반의 네트워크 프로토콜 인지 여부를 검사하고, 네트워크 프로토콜이 텍스트 기반의 네트워크 프로토콜일 경우, 구분자가 존재하는지 검사할 수 있다. 구분자 추출부(120)는 네트워크 프로토콜 데이터가 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사함에 따라 구분자 필드를 추출할 수 있다.
통계 필터부(130)는 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출할 수 있다. 통계 필터부(130)는 통계적 분석 방법을 기반으로 검사된 네트워크 프로토콜 데이터 내에서 기 설정된 기준 이상으로 발생하는 문자열들을 정적필드 후보로 추출할 수 있다. 통계 필터부(130)는 길이가 k-1 아이템으로부터 길이가 k인 아이템 후보를 생성하고, 상기 생성된 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 계산된 서포트가 특정 임계값을 만족하면 길이가 k인 아이템으로 확정하는 Apriori 알고리즘에 기반하여 정적필드 후보를 추출할 수 있다.
위치값 필터부(140)는 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출할 수 있다. 위치값 필터부(140)는 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 메시지 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출할 수 있다.
프로토콜 사양 추출 시스템은 네트워크 프로토콜 데이터로부터 정적필드와 구분자 필드를 추출할 수 있다.
도 2는 일 실시예에 따른 프로토콜 사양 추출 시스템에서 구분자 및 정적필드를 추출하는 방법을 설명하기 위한 흐름도이다.
프로토콜 사양 추출 시스템은 네트워크 트래픽(네트워크 프로토콜 데이터)이 입력됨을 수신할 수 있다. 프로토콜 사양 추출 시스템은 입력된 네트워크 트래픽을 메시지 단위로 재조립할 수 있다(210). 프로토콜 사양 추출 시스템은 네트워크 트래픽이 플로우 형태로 로드되고, 각 플로우들을 L4 프로토콜에 따라 각기 다른 메시지 형태로 분할할 수 있다. 이때, 임의의 두 노드가 통신할 때 데이터는 패킷 단위로 송수신되기 때문에 응용 계층 수준 데이터 단위인 메시지 단위로 재조립될 수 있다. 도 3을 참고하면, 네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 동작을 설명하기 위한 것이다. 프로토콜 사양 추출 시스템은 비공개 프로토콜 트래픽 파일을 플로우 형태로 읽어들인 후, TCP 프로토콜이 연결지향 프로토콜이므로 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜이 연결지향 프로토콜이 아니기 때문에 하나의 패킷을 메시지로 정의할 수 있다. 프로토콜 사양 추출 시스템은 플로우 형태의 트래픽 파일을 메시지들로 재조립할 수 있다.
프로토콜 사양 추출 시스템은 입력된 네트워크 트래픽이 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 체크할 수 있다(220). 프로토콜 사양 추출 시스템은 텍스트 기반의 프로토콜일 경우, 구분자가 존재하는지 검사하고, 바이너리 기반의 프로토콜일 경우, 구분자를 추출하는 동작을 수행하지 않는다. 다시 말해서, 프로토콜 사양 추출 시스템은 바이너리 기반의 프로토콜일 경우, 정적필드 후보를 추출할 수 있다(250). 또한, 프로토콜 사양 추출 시스템은 네트워크 트래픽이 텍스트 기반의 프로토콜일 경우, 구분자 필드를 추출하기 위하여 구분자를 체크할 수 있다(230). 구체적으로, 프로토콜 사양 추출 시스템은 구분자 필드에 대한 두 가지 속성을 기반으로 구분자 필드를 추출할 수 있다. 이때, 구분자 필드는 특정 프로토콜이 비슷한 유형의 메시지로 구성되어 있기 때문에 프로토콜을 구성하는 모든 메시지에서 비슷한 횟수로 발생한다는 속성과 구분자 필드는 메시지 내에서 고르게 분포한다는 속성이다.
프로토콜 사양 추출 시스템은 구분자 필드의 속성을 기반으로 구분자 필드를 추출할 수 있다(240). 이때, 프로토콜 사양 추출 시스템은 상용되는 프로토콜들에서 사용되는 기 설정된 개수의 구분자 필드 후보를 미리 정의할 수 있다. 예를 들면, ":", ";", "space", "|0d||0a|", "="을 포함하는 5가지 구분자 필드 후보가 정의될 수 있다. 프로토콜 사양 추출 시스템은 구분자 필드 후보마다 입력된 프로토콜의 메시지에서 두 가지 속성을 만족하는 후보를 구분자 필드로 추출할 수 있다.
프로토콜 사양 추출 시스템은 통계적 분석 방법을 기반으로 입력된 네트워크 트래픽 내에서 빈번하게 발생하는 문자열들을 정적필드 후보로 추출할 수 있다(250). 프로토콜 사양 추출 시스템은 순차 패턴 마이닝 기법 중 하나인 Apriori 알고리즘을 변형하여 정적필드 후보를 추출하기 위한 동작에 적용시킬 수 있다. Apriori 알고리즘은 특정 시퀀스가 빈번하다면 그 서브 시퀀스들도 역시 빈번하고, 특정 시퀀스가 빈번하지 않다면, 그 시퀀스를 포함하는 모든 시퀀스도 역시 빈번하지 않다는 속성에 기반을 둔다. 상세하게는, Apriori 알고리즘이란 길이(length) k-1 아이템으로부터 길이(length) k 아이템 후보를 생성하고 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 계산된 서포트가 특정 임계값을 만족하면 길이 k 아이템으로 확정할 수 있다. 이때, 아이템 후보가 빈번하게 나타나지 않는다면, 이러한 아이템으로부터 파생되는 시퀀스 역시 빈번하지 않을 것이므로, 후보에서 삭제하고 만들어진 길이 k 아이템을 다시 길이 k-1 아이템으로 적용하여 길이 k 아이템 후보가 존재하지 않을 때까지 반복적으로 수행될 수 있다. 또한, 서포트란 해당 정적필드 후보가 특정 데이터 집합 내에서 얼마나 많이 발생하는지 판단하는 척도를 의미한다. 도 4를 참고하면, 실시예에서는 3가지 집합 내에서 빈번하게 발생하는 문자열이 정적필드 후보로 추출될 수 있다. 프로토콜 사양 추출 시스템은 Apriori 알고리즘에 서포트를 적용하는 방법을 개선하여 빈번하게 나타나는 문자열들을 추출함과 동시에 플로우에서 한번만 발생하는 필드들을 추출할 수 있다. 도 4에서 플로우 서포트(Flow support)는 정적필드 후보가 플로우에서 발생하는 빈도를 의미한다. 메시지 서포트는 정적필드 후보가 메시지에서 발생하는 빈도를 의미한다. 서버 서포트는 정적필드 후보가 서버_셋(server_set)에서 발생하는 빈도를 의미한다. 이때, 서버 셋은 AutoReEngine에서 사용하는 Site_Specific Session set과 같은 개념이다. 예를 들면, 프로토콜 사양 추출 시스템은 서버 서포트가 50%미만인 문자열을 정적필드 후보에서 삭제할 수 있다. 프로토콜 사양 추출 시스템은 플로우 서포트와 메시지 서포트를 동시에 적용할 수 있다. 프로토콜 사양 추출 시스템은 우선 플로우에서 한번만 나타나지만 꼭 정적필드로 추출되어야 하는 필드를 추출하기 위해서 플로우 서포트가 98% 이상 나타나는 정적필드 후보를 탐색할 수 있다. 프로토콜 사양 추출 시스템은 탐색된 정적필드 후보의 메시지 서포트가 플로우 개수만큼 나타나는지를 검사할 수 있다. 이때, 플로우에서 한번씩만 나타나는 필드라면 플로우개수만큼 발생할 것이고 메시지 서포트가 플로우 개수와 동일하므로 플로우에서 한번 나타나는 필드를 추출할 수 있다. 프로토콜 사양 추출 시스템은 플로우 서포트와 메시지 서포트를 동시에 만족하는 문자열을 정적필드 후보로 추출할 수 있다.
프로토콜 사양 추출 시스템은 정적필드 후보들에 대하여 위치 정보를 기반으로 최종 정적필드를 추출할 수 있다(260). 도 5를 참고하면, 프로토콜 사양 추출 시스템은 정적필드 후보들에 대하여 위치 정보를 기반으로 메시지 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출할 수 있다. 도 5에서 스타트 오프셋(start offset)은 메시지의 시작 부분을 기준으로 필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미하고, 엔드 오프셋(end offset)은 메시지의 끝부분을 기준으로 필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미한다. 예를 들면, 모든 k길이의 필드 후보 ik에 대하여 메시지마다 스타트 오프셋과 엔드 오프셋을 구성할 수 있다. 프로토콜 사양 추출 시스템은 특정 필드후보가 나타나는 모든 메시지에 대하여 스타트 오프셋들의 분산 값(Sov)과 엔드 오프셋들의 분산 값(Eov)을 도출한 후, 스타트 오프셋에 대한 분산값과 엔드 오프셋에 대한 분산값 중 최소값(Pv)이 특정 임계값을 만족(예를 들면, 최소값이 특정 임계값 미만인 값을 가질 경우)하면 메시지 내에서 비교적 고정적으로 필드 후보가 발생한다는 것을 의미하므로 최종 정적필드로 추출할 수 있다. 이때, 스타트 오프셋에 대한 분산값은 정적필드 후보가 메시지 시작부분을 기준으로 얼마나 고정적인 위치에 발생하는지 나타내며, 엔드 오프셋에 대한 분산값은 정적필드 후보가 메시지 끝부분을 기준으로 얼마나 고정적인 위치에 발생하는지 나타낸다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (14)

  1. 프로토콜 사양 추출 방법에 있어서,
    네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 단계;
    상기 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사하는 단계;
    상기 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출하는 단계; 및
    상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출하는 단계
    를 포함하는 프로토콜 사양 추출 방법.
  2. 제1항에 있어서,
    상기 재조립하는 단계는,
    상기 네트워크 프로토콜 데이터를 플로우 형태로 읽어들인 후, 상기 네트워크 프로토콜 데이터가 TCP 프로토콜일 경우, 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜일 경우, 하나의 패킷을 메시지로 정의하는 단계
    를 포함하는 프로토콜 사양 추출 방법.
  3. 제1항에 있어서,
    상기 검사하는 단계는,
    상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜인지 바이너리 기반의 네트워크 프로토콜 인지 여부를 검사하고, 상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜일 경우, 구분자가 존재하는지 검사하는 단계
    를 포함하는 프로토콜 사양 추출 방법.
  4. 제1항에 있어서,
    상기 정적필드 후보로 추출하는 단계는,
    통계적 분석 방법을 기반으로 상기 검사된 네트워크 프로토콜 데이터 내에서 기 설정된 기준 이상으로 발생하는 문자열들을 정적필드 후보로 추출하는 단계
    를 포함하는 프로토콜 사양 추출 방법.
  5. 제4항에 있어서,
    상기 정적필드 후보로 추출하는 단계는,
    길이가 k-1 아이템으로부터 길이가 k인 아이템 후보를 생성하고, 상기 생성된 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 상기 계산된 서포트가 특정 임계값을 만족하면 상기 길이가 k인 아이템으로 확정하는 Apriori 알고리즘에 기반하여 정적필드 후보를 추출하는 단계
    를 포함하고,
    상기 서포트는, 정적필드 후보가 특정 데이터의 집합 내에서 얼마나 많이 발생하는지 판단하는 척도를 의미하는
    프로토콜 사양 추출 방법.
  6. 제1항에 있어서,
    상기 최종 정적필드로 추출하는 단계는,
    상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 상기 메시지 단위 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출하는 단계
    를 포함하는 프로토콜 사양 추출 방법.
  7. 제6항에 있어서,
    상기 최종 정적필드로 추출하는 단계는,
    상기 추출된 정적필드 후보에서 스타트 오프셋(start offset)들에 대한 분산 값과 엔드 오프셋(end offset)들에 대한 분산 값을 도출하고, 상기 도출된 분산값들 중 최소값이 특정 임계값을 만족하면 최종 정적필드로 추출하는 단계
    를 포함하고,
    상기 스타트 오프셋은, 메시지의 시작 부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합이고,
    상기 엔드 오프셋은, 메시지의 끝부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미하는
    프로토콜 사양 추출 방법.
  8. 프로토콜 사양 추출 시스템에 있어서,
    네트워크 프로토콜 데이터를 메시지 단위로 재조립하는 메시지 어셈블부;
    상기 재조립된 네트워크 프로토콜 데이터를 텍스트 기반의 프로토콜 또는 바이너리 기반의 프로토콜인지 여부를 검사하는 구분자 추출부;
    상기 검사된 네트워크 프로토콜 데이터에서 기 설정된 기준 이상으로 발생하는 문자열을 정적필드 후보로 추출하는 통계 필터부; 및
    상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 필드 후보를 최종 정적필드로 추출하는 위치값 필터부
    를 포함하는 프로토콜 사양 추출 시스템.
  9. 제8항에 있어서,
    상기 메시지 어셈블부는,
    상기 네트워크 프로토콜 데이터를 플로우 형태로 읽어들인 후, 네트워크 프로토콜이 TCP 프로토콜일 경우, 동일한 방향의 연속적으로 접해있는 패킷들의 집합을 메시지로 정의하고, UDP 프로토콜일 경우, 하나의 패킷을 메시지로 정의하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
  10. 제8항에 있어서,
    상기 구분자 추출부는,
    상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜인지 바이너리 기반의 네트워크 프로토콜 인지 여부를 검사하고, 상기 네트워크 프로토콜 데이터가 텍스트 기반의 네트워크 프로토콜일 경우, 구분자가 존재하는지 검사하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
  11. 제9항에 있어서,
    상기 통계 필터부는,
    통계적 분석 방법을 기반으로 상기 검사된 네트워크 프로토콜 데이터 내에서 기 설정된 기준 이상으로 발생하는 문자열들을 정적필드 후보로 추출하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
  12. 제11항에 있어서,
    상기 통계 필터부는,
    길이가 k-1 아이템으로부터 길이가 k인 아이템 후보를 생성하고, 상기 생성된 아이템이 존재하는 데이터 내에서 서포트(support)를 계산하고, 상기 계산된 서포트가 특정 임계값을 만족하면 상기 길이가 k인 아이템으로 확정하는 Apriori 알고리즘에 기반하여 정적필드 후보를 추출하는 것을 포함하고,
    상기 서포트는, 정적필드 후보가 특정 데이터의 집합 내에서 얼마나 많이 발생하는지 판단하는 척도를 의미하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
  13. 제8항에 있어서,
    상기 위치값 필터부는,
    상기 추출된 정적필드 후보에 대하여 위치 정보를 기반으로 메시지 내에서 고정적인 위치에 발생하는 필드 후보를 최종 정적필드로 추출하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
  14. 제13항에 있어서,
    상기 위치값 필터부는,
    상기 추출된 정적필드 후보에서 스타트 오프셋(start offset)들에 대한 분산 값과 엔드 오프셋(end offset)들에 대한 분산 값을 도출하고, 상기 도출된 분산값들 중 최소값이 특정 임계값을 만족하면 최종 정적필드로 추출하는 것을 포함하고,
    상기 스타트 오프셋은, 메시지의 시작 부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합이고,
    상기 엔드 오프셋은, 메시지의 끝부분을 기준으로 정적필드 후보가 나타나는 메시지 내의 오프셋 집합을 의미하는
    것을 특징으로 하는 프로토콜 사양 추출 시스템.
KR1020190103548A 2019-08-23 2019-08-23 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법 KR102204290B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190103548A KR102204290B1 (ko) 2019-08-23 2019-08-23 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190103548A KR102204290B1 (ko) 2019-08-23 2019-08-23 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법

Publications (2)

Publication Number Publication Date
KR102204290B1 true KR102204290B1 (ko) 2021-01-18
KR102204290B9 KR102204290B9 (ko) 2021-07-26

Family

ID=74236986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190103548A KR102204290B1 (ko) 2019-08-23 2019-08-23 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법

Country Status (1)

Country Link
KR (1) KR102204290B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779932A (zh) * 2021-08-24 2021-12-10 深圳市明源云科技有限公司 数字格式化方法、装置、终端设备及存储介质
CN114039776A (zh) * 2021-11-09 2022-02-11 北京天融信网络安全技术有限公司 流量检测规则的生成方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020163909A1 (en) * 2001-05-04 2002-11-07 Terago Communications, Inc. Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
KR20060028292A (ko) * 2004-09-24 2006-03-29 주식회사 파이오링크 전자 메일 필터링 방법
JP2014522167A (ja) * 2011-07-26 2014-08-28 セキュリティー マターズ ベスローテン フェンノートシャップ データ通信ネットワークにおいてプロトコルメッセージを分類するための方法およびシステム
KR101564518B1 (ko) * 2014-12-22 2015-10-29 고려대학교 산학협력단 네트워크 트래픽 탐지를 위한 규칙 자동 생성 방법 및 장치
US20170237777A1 (en) * 2016-02-15 2017-08-17 Netscout Systems Texas, Llc System and method to estimate quality of experience for consumption of encrypted media network traffic
KR20180090037A (ko) * 2017-02-02 2018-08-10 아주대학교산학협력단 비정상행위를 탐지하는 프로토콜 변환 방법 및 장치
KR101891981B1 (ko) * 2011-10-07 2018-10-04 한국전자통신연구원 온라인 게임 패킷 분석 시스템 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020163909A1 (en) * 2001-05-04 2002-11-07 Terago Communications, Inc. Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
KR20060028292A (ko) * 2004-09-24 2006-03-29 주식회사 파이오링크 전자 메일 필터링 방법
JP2014522167A (ja) * 2011-07-26 2014-08-28 セキュリティー マターズ ベスローテン フェンノートシャップ データ通信ネットワークにおいてプロトコルメッセージを分類するための方法およびシステム
KR101891981B1 (ko) * 2011-10-07 2018-10-04 한국전자통신연구원 온라인 게임 패킷 분석 시스템 및 방법
KR101564518B1 (ko) * 2014-12-22 2015-10-29 고려대학교 산학협력단 네트워크 트래픽 탐지를 위한 규칙 자동 생성 방법 및 장치
US20170237777A1 (en) * 2016-02-15 2017-08-17 Netscout Systems Texas, Llc System and method to estimate quality of experience for consumption of encrypted media network traffic
KR20180090037A (ko) * 2017-02-02 2018-08-10 아주대학교산학협력단 비정상행위를 탐지하는 프로토콜 변환 방법 및 장치

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
구영훈 외, "명확한 프로토콜 사양 추출을 위한 프로토콜 리버스 엔지니어링 방법", KNOM Review 제20권, 제2호, pp.11-23(2017.12.) *
이민섭 외, "Apriori 알고리즘을 이용한 비공개 프로토콜 구조분석 연구", 2018년도 한국통신학회 하계종합학술발표회, pp.748-749(2018.06.20.) *
이민섭 외, "Protocol Reverse Engineering에서의 정교한 정적 필드를 추출하는 방안에 대한 연구", KNOM Review 제21권, 제1호, pp.10-17(2018.08.)* *
이민섭 외, "통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출 방법", 한국통신학회논문지 제44권, 제5호, pp.904-913(2019.05.)* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779932A (zh) * 2021-08-24 2021-12-10 深圳市明源云科技有限公司 数字格式化方法、装置、终端设备及存储介质
CN114039776A (zh) * 2021-11-09 2022-02-11 北京天融信网络安全技术有限公司 流量检测规则的生成方法、装置、电子设备及存储介质
CN114039776B (zh) * 2021-11-09 2024-03-15 北京天融信网络安全技术有限公司 流量检测规则的生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR102204290B9 (ko) 2021-07-26

Similar Documents

Publication Publication Date Title
CN107408181B (zh) 恶意软件感染终端的检测装置、恶意软件感染终端的检测系统、恶意软件感染终端的检测方法以及记录介质
Bossert et al. Towards automated protocol reverse engineering using semantic information
US7685637B2 (en) System security approaches using sub-expression automata
US9256831B2 (en) Match engine for detection of multi-pattern rules
KR101966514B1 (ko) 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램
WO2018159362A1 (ja) ログ分析装置、ログ分析方法およびログ分析プログラム
CN107864676A (zh) 用于检测计算过程中未知漏洞的系统和方法
JP6491356B2 (ja) 分類方法、分類装置および分類プログラム
KR102204290B1 (ko) 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법
US10176187B2 (en) Method and apparatus for generating a plurality of indexed data fields
JP6181884B2 (ja) マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
WO2019193958A1 (ja) 情報処理装置及び情報処理方法
US7216364B2 (en) System security approaches using state tables
EP1744235A1 (en) Method and system for virus detection based on finite automata
KR102359597B1 (ko) 패킷 데이터에 대한 사이버 공격을 방어하기 위한 공격 방어 방법 및 이를 수행하는 장치들
CN113987492A (zh) 一种告警事件的确定方法及装置
Hei et al. Feature extraction optimization for bitstream communication protocol format reverse analysis
JP7019533B2 (ja) 攻撃検知装置、攻撃検知システム、攻撃検知方法および攻撃検知プログラム
Sija et al. Survey on network protocol reverse engineering approaches, methods and tools
WO2018131200A1 (ja) 解析装置、解析方法及び解析プログラム
KR102280774B1 (ko) 프로파일링 로그 분석을 통한 자동화된 웹 방화벽 정책 수립 장치 및 방법
KR102128581B1 (ko) 다중 문자열 패턴 탐색 방법 및 장치
KR101548378B1 (ko) 행위 시그니쳐 생성 시스템 및 그 방법, 그리고 상기 시스템을 포함하는 네트워크 트래픽 분석 시스템 및 그 방법
Qin et al. LMHADC: Lightweight method for host based anomaly detection in cloud using mobile agents
WO2023067667A1 (ja) 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction