KR101982308B1 - 프로토콜 모델 생성 장치 및 모델링 방법 - Google Patents

프로토콜 모델 생성 장치 및 모델링 방법 Download PDF

Info

Publication number
KR101982308B1
KR101982308B1 KR1020170053102A KR20170053102A KR101982308B1 KR 101982308 B1 KR101982308 B1 KR 101982308B1 KR 1020170053102 A KR1020170053102 A KR 1020170053102A KR 20170053102 A KR20170053102 A KR 20170053102A KR 101982308 B1 KR101982308 B1 KR 101982308B1
Authority
KR
South Korea
Prior art keywords
message
node
protocol
model
generated
Prior art date
Application number
KR1020170053102A
Other languages
English (en)
Other versions
KR20180119392A (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 KR1020170053102A priority Critical patent/KR101982308B1/ko
Priority to US15/955,104 priority patent/US10778811B2/en
Publication of KR20180119392A publication Critical patent/KR20180119392A/ko
Application granted granted Critical
Publication of KR101982308B1 publication Critical patent/KR101982308B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/08Protocols for interworking; Protocol conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • 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/02Protocol performance
    • 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/03Protocol definition or specification 
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Communication Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

본 발명은 프로토콜 모델 생성 장치는 프로토콜 모델 생성 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라 프로토콜에 대응하는 바이너리로부터 복수의 문자열을 추출하고, 추출된 복수의 문자열에 기초하여 바이너리에 대응하는 프로토콜에서 사용될 수 있는 복수의 후보 메시지를 포함하는 메시지 풀을 생성하고, 메시지 풀에 포함된 각 후보 메시지에 대응하는 노드가 포함되도록 프로토콜에 대응하는 프로토콜 모델을 생성한다. 그리고 후보 메시지는 문자열에 기초하여 생성된 메시지 및 메시지에 대응하는 생성된 응답 메시지를 포함하고, 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된다.

Description

프로토콜 모델 생성 장치 및 모델링 방법{APPARATUS AND METHOD FOR PROTOCOL MODELING}
본 발명은 프로토콜 모델 생성 장치 및 모델링 방법에 관한 것이다.
프로토콜 모델은 서버 또는 클라이언트를 통하여 입력되는 메시지 및 메시지 간의 전이 정보에 기초하여 생성된다. 또한, 프로토콜 모델은 네트워크 프로토콜의 성능 및 취약점을 분석하기 위하여 사용될 수 있다.
종래의 프로토콜 모델 생성 방법은 프로토콜을 테스트하기 위한 샘플 입력 값이나 흔적(trace)등을 분석하여 프로토콜 모델을 생성한다. 이러한 종래의 방법은 해당 프로토콜에 대한 전문가들이 필요하다. 또한, 이러한 종래의 방법은 샘플 입력 값을 생성하거나, 흔적을 생성하기 위하여 수동적인 작업이 필요하다.
한국공개특허 제 10-2008-0058609호 (발명의 명칭: 통합형 무선 랜 프로토콜 분석 장비와 이를 이용한 분석방법 및 교육실습방법)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 바이너리로부터 추출되는 메시지에 기반하여 프로토콜 모델을 자동 생성할 수 있는 프로토콜 모델 생성 장치 및 모델링 방법을 제공한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 프로토콜 모델 생성 장치는 프로토콜 모델 생성 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라 프로토콜에 대응하는 바이너리로부터 복수의 문자열을 추출하고, 추출된 복수의 문자열에 기초하여 바이너리에 대응하는 프로토콜에서 사용될 수 있는 복수의 후보 메시지를 포함하는 메시지 풀을 생성하고, 메시지 풀에 포함된 각 후보 메시지에 대응하는 노드가 포함되도록 프로토콜에 대응하는 프로토콜 모델을 생성한다. 그리고 후보 메시지는 문자열에 기초하여 생성된 메시지 및 메시지에 대응하는 생성된 응답 메시지를 포함하고, 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된다.
또한, 본 발명의 제 2 측면에 따른 프로토콜 모델 생성 장치의 모델링 방법은 프로토콜에 대응하는 바이너리로부터 프로토콜에서 사용될 수 있는 복수의 문자열을 추출하는 단계; 추출된 복수의 문자열에 기초하여 복수의 후보 메시지를 포함하는 메시지 풀을 생성하는 단계; 및 메시지 풀에 포함된 각 후보 메시지에 대응하는 노드가 포함되도록 프로토콜에 대응하는 프로토콜 모델을 생성하는 단계를 포함한다. 이때, 후보 메시지는 문자열에 기초하여 생성된 메시지 및 메시지에 대응하는 생성된 응답 메시지를 포함하고, 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된다.
본 발명은 프로토콜에 대한 사전 지식, 프로토콜에 대한 정보 분석 또는 샘플을 통한 테스트가 없이 프로토콜에 대응하는 바이너리를 통하여 프로토콜 모델을 자동 생성할 수 있다. 또한, 본 발명은 다양한 프로토콜 상태를 추론할 수 있으므로 효과적인 테스팅 기반을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 전처리 모듈의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 모델링 모듈의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 프로토콜 모델 최적화 과정을 설명하기 위한 예시도이다.
도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 프로토콜 모델의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치에서의 모델링 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
다음은 도 1 내지 도 5c를 참조하여, 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치(100)를 설명한다.
도 1은 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치(100)의 블록도이다.
프로토콜 모델 생성 장치(100)는 바이너리로부터 수집된 메시지에 기초하여 특정 프로토콜의 취약점 테스팅에 활용할 수 있는 프로토콜 모델을 자동 생성할 수 있다. 이때, 메시지는 서버(server; 320) 및 클라이언트(client; 310) 간에 교환되는 요청 메시지(request message) 및 응답 메시지(response message)를 포함하는 것일 수 있다.
서버(320) 및 클라이언트(310)는 메시지의 특성에 기초하여 편의상 구분한 것이다. 예를 들어, 서버(320)는 서비스나 정보를 제공하는 컴퓨팅 장치(100)를 의미하며, 클라이언트(310)는 서버(320)로부터 서비스나 정보를 제공받는 컴퓨팅 장치(100)를 의미한다.
또한, 서버(320) 또는 클라이언트(310)는 프로토콜 모델 생성 장치(100) 또는 별도의 컴퓨팅 장치(100)에 소프트웨어로 설치된 가상 머신(virtual machine)일 수 있으나, 이에 한정된 것은 아니다.
추가 실시예로, 프로토콜 모델 생성 장치(100)는 서버(320)에 포함된 것일 수 있다. 예를 들어, 프로토콜 모델 생성 장치(100)는 서버(320)에 가상 머신 형태로 설치되거나, 응용 프로그램 형태로 설치될 수 있으나, 이에 한정된 것은 아니다.
다시 도 1을 참조하면, 프로토콜 모델 생성 장치(100)는 통신 모듈(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다.
통신 모듈(110)은 서버(320) 및 클라이언트(310) 간의 메시지를 수신할 수 있다.
메모리(120)는 프로토콜 모델 생성 프로그램이 저장된다. 프로토콜 모델 생성 프로그램은 전처리 모듈 및 모델링 모듈을 포함할 수 있다.
프로세서(130)는 프로토콜 모델 생성 프로그램에 포함된 전처리 모듈(230)을 통하여 메시지 풀을 생성할 수 있다. 그리고 프로세서(130)는 메시지 풀 및 모델링 모듈을 통하여 프로토콜 모델을 생성할 수 있다. 이하에서는 도 2를 참조하여 메시지 풀의 생성 과정을 상세히 설명하고, 도 3을 참조하여 또한, 프로토콜 모델의 모델링 과정을 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 전처리 모듈(230)의 블록도이다.
프로토콜 모델 생성 프로그램에 포함된 전처리 모듈(230)은 문자열 추출 모듈(231), 명령어 추출 모듈(232), 인자 추출 모듈(233) 및 후보 메시지 생성 모듈(234)을 포함할 수 있다.
프로세서(130)는 문자열 추출 모듈(231)을 통하여 복수의 바이너리(binary; 200)로부터 문자열(string)을 추출할 수 있다. 이때, 바이너리(200)는 네트워크와 관계되는 시스템 프로그램, 응용 프로그램 또는 파일 등이 될 수 있으나, 이에 한정된 것은 아니다. 예를 들어, 바이너리(200)는 FTP(file transfer protocol)를 실행하는 실행 파일 또는 TCP(transmission control protocol)에 대응하는 파일 등이 될 수 있다.
이때, 프로세서(130)는 역공학(reverse engineering)에 기초하여 바이너리(200)로부터 문자열을 추출할 수 있다. 그리고 프로세서(130)는 추출한 문자열에서 명령어 또는 인자와 대응될 수 있는 문자열을 필터링할 수 있다.
프로세서(130)는 명령어 추출 모듈(232)을 통하여 추출된 문자열로부터 명령어를 추출할 수 있다. 이때, 프로세서(130)는 명령어 데이터베이스(210)에 포함된 하나 이상의 명령어와 매칭되는 문자열을 명령어로 추출할 수 있다.
그리고 프로세서(130)는 인자 추출 모듈(233)을 통하여 추출된 문자열과 인자 데이터베이스(220)에 포함된 하나 이상 인자를 매칭하여, 문자열 중 복수의 인자를 추출할 수 있다.
이와 같이, 프로세서(130)는 바이너리(200)로부터 추출된 복수의 문자열로부터 복수의 명령어 및 복수의 인자를 추출할 수 있다. 그리고 프로세서(130)는 후보 메시지 생성 모듈(234)을 통하여 복수의 명령어 및 복수의 인자의 조합을 통하여 해당 바이너리(200)에 대응하는 프로토콜에서 사용될 수 있는 후보 메시지(240)를 생성할 수 있다.
도 3은 본 발명의 일 실시예에 따른 모델링 모듈(330)의 블록도이다.
이때, 모델링 모듈(330)은 상태 수집 모듈(331) 및 프로토콜 모델 생성 모듈(332)을 포함할 수 있다. 그리고 프로토콜 모델 생성 모듈(332)은 프로토콜 모델 확장 모듈(333) 및 프로토콜 모델 축소 모듈(334)을 포함할 수 있다. 또한, 모델링 모듈(330)은 메시지 교환 모듈(300)을 더 포함할 수 있다.
프로세서(130)는 전처리 모듈(230)을 통하여 복수의 후보 메시지를 포함하는 메시지 풀을 생성한 이후, 메시지 교환 모듈(300)을 통하여 생성된 후보 메시지를 이용하여 서버(320) 및 클라이언트(310)간 통신을 수행한다. 그리고 프로세서(130)는 후보 메시지에 대응하는 응답 메시지를 수신하고, 메시지 쌍을 생성할 수 있다.
이때, 메시지 풀에 포함된 각 메시지는 상태 및 상태에 대한 전이 정보에 대응되도록 생성된 것일 수 있다.
상태는 해당 프로토콜을 사용하는 서버(320) 및 클라이언트(310) 간의 통신을 수행하는 과정에서 발생하는 것으로 "시작", "대기", "처리" 및 "완료" 등을 포함할 수 있다. 또한, 전이 정보는 각 상태로 변경되기 위하여 필요한 정보이다.
예를 들어, 프로토콜이 TCP인 경우, "3-handshake" 과정은 "SYN" 메시지, "SYNACK" 메시지 및 "ACK" 메시지 순으로 서버(320) 및 클라이언트(310) 간의 메시지를 전달하게 된다. 즉, "SYN" 메시지를 전달한 장치에서는 "SYN" 메시지를 전달하였다는 전이 정보에 기초하여, "SYN 전달"로 상태가 변경될 수 있다. 그리고 해당 장치는 "SYNACK" 메시지를 수신하기 위하여 대기하게 된다. 또한, 해당 장치는 "SYNACK" 메시지를 수신한 이후, "ACK" 메시지를 전달하면, "HANDSHAKE 완료" 상태로 변경될 수 있다. 이때, 전이 정보는 "SYNACK" 메시지 수신 및 "ACK" 메시지 전달이 될 수 있다.
메시지 쌍은 "(메시지, 응답메시지)"형태로 표현될 수 있다. 또한, 메시지 쌍은 특정 상태에서 다른 상태로 전이하는 전이 정보가 될 수 있다. 이때, 수집되는 메시지 쌍은 레벨(level)과 매칭될 수 있다. 이때, 레벨은 각 상태의 계층 구조에 기초하여 설정되는 것일 수 있다. 또한, 레벨은 해당 상태의 깊이(depth)에 역이 될 수 있다.
예를 들어, 초기 상태에서 최초로 전달되는 제 1 메시지에 대응하는 상태는 제 1 레벨이 되며, 제 1 메시지 다음으로 전송되는 제 2 메시지에 대응하는 상태는 제 2 레벨이 될 수 있다.
구체적으로 프로세서(130)는 서버(320)가 제 1 메시지를 클라이언트(310)로 전달하도록 할 수 있다. 서버(320)는 클라이언트(310)로 제 1 메시지를 전달할 수 있다. 서버(320)로부터 제 1 메시지를 수신한 클라이언트(310)는 제 1 메시지에 대응하는 제 1 응답 메시지를 생성할 수 있다. 그리고 클라이언트(310)는 제 1 응답 메시지를 서버(320)로 전달할 수 있다. 프로세서(130)는 클라이언트(310)로부터 제 1 응답 메시지를 수집하고, 제 1 메시지 및 제 1 응답 메시지를 매칭하여 메시지 쌍인 "(제 1 메시지, 제 1 응답 메시지)"를 생성할 수 있다.
또는, 프로세서(130)는 클라이언트(310)가 제 2 메시지를 서버(320)로 전달하도록 할 수 있다. 클라이언트(310)는 서버(320)로 제 2 메시지를 전달할 수 있다. 클라이언트(310)로부터 제 2 메시지를 수신한 서버(320)는 제 2 메시지에 대응하는 제 2 응답 메시지를 생성할 수 있다. 그리고 서버(320)는 제 2 응답 메시지를 클라이언트(310)로 전달할 수 있다. 프로세서(130)는 서버(320)로부터 제 2 응답 메시지를 수집하고, 제 2 메시지 및 제 2 응답 메시지를 매칭하여 메시지 쌍인 "(제 2 메시지, 제 2 응답 메시지)"를 생성할 수 있다.
메시지 쌍이 생성되면, 프로세서(130)는 모델링 모듈(330)을 통해 해당 메시지 쌍을 프로토콜 모델에 추가하여 프로토콜 모델링을 수행할 수 있다.
이때, 프로토콜 모델은 트리(tree) 자료 구조 또는 재귀 참조가 가능한 노드가 포함하는 변형된 트리 자료 구조에 기초한 것일 수 있다. 또한, 프로토콜 모델은 상태에 대응하는 노드(node) 및 상태 간의 전이 정보에 기초하여 생성된 링크(link)를 포함할 수 있다.
예를 들어, 프로토콜 모델에 포함된 특정 노드는 해당 프로토콜 내의 특정 상태를 표현하며, 링크는 해당 상태에서 다른 상태로 전이되는 전이 정보에 대응되는 것일 수 있다.
구체적으로 프로세서(130)는 초기 상태 노드로 포함하는 프로토콜 모델을 생성할 수 있다. 그리고 프로세서는 제 1 레벨의 메시지로 제 1 메시지를 선택할 수 있다.
프로세서(130)는 서버(320) 및 클라이언트(310)로부터 제 1 메시지에 대응하는 제 1 응답 메시지를 수신하여 제 1 메시지 쌍을 생성한다. 그리고 프로세서(130)는 생성된 제 1 메시지 쌍을 프로토콜 모델에 추가할 수 있다. 이때, 프로세서(130)는 프로토콜 모델에 초기 상태만이 포함되어 있으므로 제 1 메시지 쌍에 대응하는 상태가 포함되도록 제 1 노드를 생성하여 프로토콜 모델의 초기 상태 노드의 다음 레벨로 추가하거나, 초기 상태 노드를 대체하여 추가할 수 있다.
프로세서(130)는 제 1 응답 메시지에 기초하여, 다음 레벨인 제 2 레벨에 대응하는 메시지로 제 2 메시지를 선택할 수 있다. 그리고 프로세서(130)는 서버(320) 및 클라이언트(310)로부터 제 2 메시지에 대응하는 제 2 응답 메시지를 수신하여 제 2 메시지 쌍을 생성할 수 있다. 프로세서(130)는 프로토콜 모델에 포함된 제 1 노드와 제 2 메시지 쌍을 비교할 수 있다. 이때, 제 1 노드 및 제 2 메시지 쌍이 매칭되지 않을 경우, 프로세서(130)는 제 2 메시지 쌍에 대응하는 제 2 노드를 생성하여 제 1 노드의 자식 노드로 추가할 수 있다.
또한, 제 2 레벨의 메시지로 제 3 메시지가 존재하는 경우, 프로세서(130)는 제 3 메시지를 서버(320) 및 클라이언트(310)가 교환하도록 전달할 수 있다. 그리고 프로세서(130)는 제 3 메시지에 대응하는 제 3 응답 메시지를 수신하여 제 3 메시지 쌍을 생성할 수 있다. 프로세서(130)는 프로토콜 모델에 포함된 제 1 노드와 제 3 메시지 쌍을 비교할 수 있다. 또한, 프로세서(130)는 제 2 노드와 제 3 메시지 쌍을 비교할 수 있다.
이때, 제 3 메시지 쌍과 매칭되는 노드가 있는 경우, 프로세서(130)는 제 3 메시지 쌍에 대한 노드를 추가하지 않을 수 있다. 또는, 제 1 노드 또는 제 2 노드와 제 3 메시지 쌍이 매칭되지 않을 경우, 프로세서(130)는 제 3 메시지 쌍에 대응하는 제 3 노드를 생성하여 제 1 노드의 자식 노드로 추가할 수 있다. 즉, 제 3 노드는 제 2 노드의 형제 노드로 추가될 수 있다.
이러한 방법을 통하여, 프로세서(130)는 해당 프로토콜에 대응하는 후보 메시지를 레벨 별로 프로토콜 모델에 추가할 수 있다.
모든 후보 메시지에 대한 프로토콜 모델이 생성되면, 프로세서(130)는 생성된 프로토콜 모델을 최적화 할 수 있다. 구체적으로 프로세서(130)는 프로토콜 모델에 포함된 각 노드에 대한 비교를 통하여 동일한 노드를 검색할 수 있다. 이때, 동일한 노드는 동일한 상태의 자식 노드를 포함하는 노드가 될 수 있다. 그리고 프로세서(130)는 동일한 노드를 병합하여 유니크(unique)한 노드만이 포함되도록 프로토콜 모델을 최적화할 수 있다.
추가 실시예로, 프로세서(130)는 특정 노드와 해당 노드의 하위 레벨의 노드를 비교하여, 해당 노드의 하위 노드 중 해당 노드와 동일한 노드를 검색할 수 있다.
도 4는 본 발명의 일 실시예에 따른 프로토콜 모델 최적화 과정을 설명하기 위한 예시도이다.
도 4의 (a)를 참조하면, 프로세서(130)는 프로토콜 모델에 포함된 제 1 노드에 대응하는 세부 모델(400) 및 제 2 노드에 대응하는 세부 모델(410)을 비교할 수 있다. 이때, 제 1 노드에 대응하는 세부 모델(400)은 제 1 노드를 루트(root) 노드로 포함할 수 있다. 그리고 제 1 노드에 대응하는 세부 모델(400)은 제 1 노드의 자식 노드인 제 2 노드, 제 3 노드 및 제 4 노드를 자식 노드로 포함할 수 있다. 그리고 제 1 노드는 제 2 노드로 전이되기 위하여 "A" 메시지를 전달하고, "B" 메시지를 수신한다. 또한, 제 1 노드는 제 3 노드로 전이되기 위하여 "B" 메시지를 전달하고, "F" 메시지를 수신하며, 제 4 노드로 전이되기 위하여 "C" 메시지를 전달하고, "G"메시지를 수신한다.
이와 유사하게, 제 2 노드에 대응하는 세부 모델(410)은 제 2 노드를 루트 노드로 포함하고, 제 2 노드의 자식 노드인 제 5 노드, 제 6 노드 및 제 7 노드를 자식 노드로 포함할 수 있다. 그리고 제 2 노드는 제 5 노드로 전이되기 위하여 "A" 메시지를 전달하고, "B" 메시지를 수신한다. 또한, 제 2 노드는 제 6 노드로 전이되기 위하여 "B" 메시지를 전달하고, "F" 메시지를 수신하며, 제 7 노드로 전이되기 위하여 "C" 메시지를 전달하고, "G"메시지를 수신한다.
이와 같이, 프로세서(130)는 제 1 노드에 대응하는 세부 모델(400) 및 제 2 노드에 대응하는 세부 모델(400)에 대응하는 상태 및 전이 정보에 기초하여, 두 세부 모델이 동일하다고 판단할 수 있다.
도 4의 (c)를 참조하면, 프로세서(130)는 제 1 노드에 대응하는 세부 모델(400) 및 제 2 노드에 대응하는 세부 모델(410)을 병합할 수 있다. 그리고 프로세서(130)는 제 1 노드에서 제 2 노드로 전이되는 상태를 고려하여, 제 1 노드를 재귀 참조가 가능한 노드로 변환할 수 있다.
또한, 프로세서(130)는 제 3 노드에 대하여 타 노드와의 비교를 수행할 수 있다. 이때, 제 3 노드와 매칭되는 타 노드가 존재하지 않으므로 프로세서(130)는 다음 노드인 제 4 노드에 대하여 타 노드와의 비교를 수행할 수 있다.
이때, 제 1 노드의 세부 모델(420) 및 제 4 노드의 세부 모델(430)이 매칭되므로, 프로세서(130)는 제 1 노드의 세부 모델(420) 및 제 4 노드의 세부 모델(430)을 병합하고, 제 1 노드에 전이 정보를 추가할 수 있다.
이러한 과정을 통하여, 도 4의 (f)와 같이, 프로세서(130)는 해당 노드 및 하위 노드간의 전이 정보에 기초하여, 프로토콜 모델을 최적화할 수 있다. 다시 도 4의 (f)를 참조하면, 프로토콜 모델은 상태 및 전이 정보가 유니크한 노드 만이 포함되도록 최적화 될 수 있다.
도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 프로토콜 모델의 예시도이다.
도 5a를 참조하면, 프로세서(130)는 임의의 프로토콜에 대하여, 제 1 레벨 및 제 2 레벨이 포함되도록 프로토콜 모델을 생성할 수 있다. 그리고 프로세서(130)는 제 3 레벨에 대응하는 후보 메시지 및 제 4 레벨에 대응하는 후보 메시지를 통하여, 도 5b 및 도 5c와 같이, 프로토콜 모델을 확장할 수 있다.
다음은 도 6을 참조하여 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치(100)에서의 모델링 방법을 설명한다.
도 6은 본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치(100)에서의 모델링 방법의 순서도이다.
프로토콜 모델 생성 장치(100)는 프로토콜에 대응하는 바이너리로부터 복수의 문자열을 추출한다(S600).
구체적으로 프로토콜 모델 생성 장치(100)는 복수의 문자열로부터 복수의 명령어를 추출할 수 있다. 그리고 프로토콜 모델 생성 장치(100)는 복수의 문자열로부터 복수의 인자를 추출할 수 있다. 프로토콜 모델 생성 장치(100)는 복수의 명령어 및 복수의 인자에 기초하여 복수의 후보 메시지를 생성할 수 있다.
프로토콜 모델 생성 장치(100)는 추출된 복수의 문자열에 기초하여 복수의 후보 메시지를 포함하는 메시지 풀을 생성한다(S610). 이때, 후보 메시지는 문자열에 기초하여 생성된 메시지 및 메시지에 대응하는 생성된 응답 메시지를 포함한다.
프로토콜 모델 생성 장치(100)는 메시지 풀에 포함된 각 후보 메시지에 대응하는 노드가 포함되도록 프로토콜에 대응하는 프로토콜 모델을 생성한다(S620). 이때, 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된다.
구체적으로 프로토콜 모델 생성 장치(100)는 프로토콜 모델에 포함된 각 노드 및 각 후보 메시지에 대한 비교를 수행할 수 있다. 그리고 프로토콜 모델 생성 장치(100)는 비교 결과에 기초하여 각 후보 메시지에 대응하는 노드를 생성할 수 있다. 프로토콜 모델 생성 장치(100)는 생성된 노드를 프로토콜 모델에 추가할 수 있다.
그리고 프로토콜 모델 생성 장치(100)는 프로토콜 모델에 포함된 복수의 노드 중 어느 하나의 노드에 대응하는 세부 모델을 생성할 수 있다. 그리고 모델 생성 장치(100)는 세부 모델과 매칭되는 타 세부 모델을 선택하여 병합할 수 있다. 이때, 세부 모델은 어느 하나의 노드를 루트 노드로 포함하며, 어느 하나의 노드에 대한 하위 노드 및 전이 상태가 포함되도록 생성된 것이다.
한편, 프로토콜 모델 생성 장치(100)는 메시지 풀을 생성하기 위하여, 각 후보 메시지에 대한 서버(320) 및 클라이언트(310) 간의 메시지 교환에 기초하여 각 후보 메시지에 대응하는 메시지 쌍을 생성할 수 있다. 이때, 메시지 쌍은 후보 메시지 및 후보 메시지에 대응하는 응답 메시지를 포함할 수 있다. 그리고 프로토콜 모델 생성 장치(100)는 메시지 쌍에 대응하는 노드를 생성하여, 프로토콜 모델을 생성할 수 있다.
본 발명의 일 실시예에 따른 프로토콜 모델 생성 장치(100) 및 모델링 방법은 프로토콜에 대한 사전 지식, 프로토콜에 대한 정보 분석 또는 샘플을 통한 테스트가 없이 프로토콜에 대응하는 바이너리를 통하여 프로토콜 모델을 자동 생성할 수 있다. 프로토콜 모델 생성 장치(100) 및 모델링 방법은 다양한 프로토콜 상태를 추론할 수 있으므로 효과적인 테스팅 기반을 제공할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 프로토콜 모델 생성 장치
110: 통신 모듈
120: 메모리
130: 프로세서

Claims (13)

  1. 프로토콜 모델 생성 장치에 있어서,
    프로토콜 모델 생성 프로그램이 저장된 메모리 및
    상기 프로그램을 실행하는 프로세서를 포함하되,
    상기 프로세서는 상기 프로그램의 실행에 따라 프로토콜에 대응하는 바이너리로부터 복수의 문자열을 추출하고, 상기 복수의 문자열로부터 복수의 명령어를 추출하고, 상기 복수의 문자열로부터 복수의 인자를 추출하고, 상기 복수의 명령어 및 상기 복수의 인자에 기초하여 상기 복수의 후보 메시지를 생성하며,
    상기 바이너리에 대응하는 프로토콜에서 사용될 수 있는 상기 복수의 후보 메시지를 포함하는 메시지 풀을 생성하고,
    상기 메시지 풀에 포함된 각 후보 메시지에 대한 서버 및 클라이언트 간의 메시지 교환에 기초하여 상기 각 후보 메시지에 대응하는 메시지 쌍을 생성하고, 상기 메시지 쌍에 대응하는 노드를 생성하여 해당 노드가 포함되도록 상기 프로토콜에 대응하는 프로토콜 모델을 생성하되,
    상기 후보 메시지는 상기 문자열에 기초하여 생성된 메시지 및 상기 메시지에 대응하여 생성된 응답 메시지를 포함하고,
    상기 메시지 쌍은 상기 후보 메시지 및 상기 후보 메시지에 대응하는 응답 메시지를 포함하며,
    상기 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된 것인, 프로토콜 모델 생성 장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 프로세서는 상기 프로토콜 모델에 포함된 각 노드 및 각 후보 메시지에 대한 비교를 수행하고, 상기 비교 결과에 기초하여 상기 각 후보 메시지에 대응하는 노드를 생성하고, 상기 생성된 노드를 상기 프로토콜 모델에 추가하여, 상기 프로토콜 모델을 확장하는 것인, 프로토콜 모델 생성 장치.
  5. 제 4 항에 있어서,
    상기 프로세서는 상기 하나 이상의 노드 중 및 제 1 후보 메시지와 매칭되는 노드가 존재하지 않는 경우, 상기 제 1 후보 메시지에 대응하는 노드를 생성하여, 상기 프로토콜 모델에 추가하는 것인, 프로토콜 모델 생성 장치.
  6. 제 1 항에 있어서,
    상기 프로세서는 상기 프로토콜 모델이 생성된 이후, 상기 프로토콜 모델에 포함된 복수의 노드 중 어느 하나의 노드에 대응하는 세부 모델을 생성하고, 상기 세부 모델과 매칭되는 타 세부 모델을 선택하고, 상기 세부 모델 및 상기 매칭되는 타 세부 모델을 병합하여 상기 프로토콜 모델에 대한 최적화를 수행하되,
    상기 세부 모델은 상기 어느 하나의 노드를 루트 노드로 포함하며, 상기 어느 하나의 노드에 대한 하위 노드 및 전이 상태가 포함되도록 생성된 것인, 프로토콜 모델 생성 장치.
  7. 제 6 항에 있어서,
    상기 프로세서는 상기 세부 모델에 포함된 하위 노드로의 전이 정보에 기초하여 상기 매칭되는 타 세부 모델을 선택하는 것인, 프로토콜 모델 생성 장치.
  8. 프로토콜 모델 생성 장치의 모델링 방법에 있어서,
    프로토콜에 대응하는 바이너리로부터 상기 프로토콜에서 사용될 수 있는 복수의 문자열을 추출하는 단계;
    상기 복수의 문자열로부터 복수의 명령어를 추출하고, 상기 복수의 문자열로부터 복수의 인자를 추출하고, 상기 복수의 명령어 및 상기 복수의 인자에 기초하여 생성된 복수의 후보 메시지를 포함하는 메시지 풀을 생성하는 단계; 및
    상기 메시지 풀에 포함된 각 후보 메시지에 대한 서버 및 클라이언트 간의 메시지 교환에 기초하여 상기 각 후보 메시지에 대응하는 메시지 쌍을 생성하고, 상기 메시지 쌍에 대응하는 노드를 생성하여 해당 노드가 포함되도록 상기 프로토콜에 대응하는 프로토콜 모델을 생성하는 단계를 포함하되,
    상기 후보 메시지는 상기 문자열에 기초하여 생성된 메시지 및 상기 메시지에 대응하는 생성된 응답 메시지를 포함하고,
    상기 메시지 쌍은 상기 후보 메시지 및 상기 후보 메시지에 대응하는 응답 메시지를 포함하며,
    상기 프로토콜 모델은 하나 이상의 노드 및 각 노드 간의 전이 정보가 포함되도록 생성된 것인, 모델링 방법.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서,
    상기 프로토콜 모델을 생성하는 단계는,
    상기 프로토콜 모델에 포함된 각 노드 및 각 후보 메시지에 대한 비교를 수행하는 단계;
    상기 비교 결과에 기초하여 상기 각 후보 메시지에 대응하는 노드를 생성하는 단계; 및
    상기 생성된 노드를 상기 프로토콜 모델에 추가하여 상기 프로토콜 모델을 확장 하는 단계를 포함하는, 모델링 방법.
  12. 제 8 항에 있어서,
    상기 프로토콜 모델을 생성하는 단계 이후에,
    상기 프로토콜 모델에 포함된 복수의 노드 중 어느 하나의 노드에 대응하는 세부 모델을 생성하는 단계; 및
    상기 세부 모델 및 매칭되는 타 세부 모델을 병합하여 상기 프로토콜 모델에 대한 최적화를 수행하는 단계를 포함하되,
    상기 세부 모델은 상기 어느 하나의 노드를 루트 노드로 포함하며, 상기 어느 하나의 노드에 대한 하위 노드 및 전이 상태가 포함되도록 생성된 것인, 모델링 방법.
  13. 제 8 항, 제 11 항 내지 제 12 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020170053102A 2017-04-25 2017-04-25 프로토콜 모델 생성 장치 및 모델링 방법 KR101982308B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170053102A KR101982308B1 (ko) 2017-04-25 2017-04-25 프로토콜 모델 생성 장치 및 모델링 방법
US15/955,104 US10778811B2 (en) 2017-04-25 2018-04-17 Protocol model generator and modeling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170053102A KR101982308B1 (ko) 2017-04-25 2017-04-25 프로토콜 모델 생성 장치 및 모델링 방법

Publications (2)

Publication Number Publication Date
KR20180119392A KR20180119392A (ko) 2018-11-02
KR101982308B1 true KR101982308B1 (ko) 2019-08-28

Family

ID=63854765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170053102A KR101982308B1 (ko) 2017-04-25 2017-04-25 프로토콜 모델 생성 장치 및 모델링 방법

Country Status (2)

Country Link
US (1) US10778811B2 (ko)
KR (1) KR101982308B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102580364B1 (ko) * 2020-11-24 2023-09-20 한국전자통신연구원 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법
CN113381999B (zh) * 2021-06-08 2023-04-28 杭州昊美科技有限公司 通信方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011683A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd システム分析プログラム、システム分析方法及びシステム分析装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847979B2 (en) * 2000-02-25 2005-01-25 Synquiry Technologies, Ltd Conceptual factoring and unification of graphs representing semantic models
KR20080058609A (ko) 2006-12-22 2008-06-26 시앤시인스트루먼트주식회사 통합형 무선 랜 프로토콜 분석 장비와 이를 이용한분석방법 및 교육실습방법
US20090199204A1 (en) * 2008-02-05 2009-08-06 International Business Machines Corporation Systems and methods for constructing protocol state machines to determine the validity of an implementation of a service interface
JP5169614B2 (ja) * 2008-08-19 2013-03-27 富士通株式会社 システム分析プログラム、システム分析装置、システム分析方法
KR101060733B1 (ko) * 2008-12-22 2011-08-31 한국전자통신연구원 어플리케이션 프로토콜인식을 이용한 네트워크 침입탐지 방법 및 장치
CA2892471C (en) * 2013-01-11 2023-02-21 Db Networks, Inc. Systems and methods for detecting and mitigating threats to a structured data storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011683A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd システム分析プログラム、システム分析方法及びシステム分析装置

Also Published As

Publication number Publication date
US20180309854A1 (en) 2018-10-25
US10778811B2 (en) 2020-09-15
KR20180119392A (ko) 2018-11-02

Similar Documents

Publication Publication Date Title
CN104580519B (zh) 一种快速部署openstack云计算平台的方法
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
JP2016524765A (ja) カスタマイズされたソフトウェア開発キット(sdk)生成のための方法および装置
CN112153030B (zh) 一种基于形式化验证的物联网协议安全性自动分析方法与系统
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
US20080208552A1 (en) Method and apparatus for generating alternative representation of optimization models
CN106776983B (zh) 搜索引擎优化装置和方法
JP2015007968A (ja) 地理情報システム(gis)ネットワークモデルの同期システム及び方法
CN111211934B (zh) 集群远程通信测试方法以及系统
KR101982308B1 (ko) 프로토콜 모델 생성 장치 및 모델링 방법
US8086997B2 (en) Detecting aspectual behavior in unified modeling language artifacts
WO2022000888A1 (zh) 执行定制化人工智能生产线的装置和方法、设备和介质
KR20190061616A (ko) 컴포넌트 기반 동적 모델 재구성을 활용한 시뮬레이션 모델 최적화 방법 및 장치
Benjamin et al. Some modeling challenges when testing rich internet applications for security
CN112015382B (zh) 一种处理器构架解析方法、装置、设备及储存介质
CN113641742A (zh) 一种数据抽取方法、装置、设备和存储介质
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN109446146B (zh) 一种应用层通信协议的状态转换序列生成方法
CN105847039A (zh) 一种基于动态可执行脚本的网络监控方法以及网络监控系统
Munea et al. Design and implementation of fuzzing framework based on IoT applications
CN110414021B (zh) 工业物联网的边缘设备事件规则产生系统、装置和方法
CN111813648A (zh) 一种应用于App的自动化测试方法、装置、存储介质及电子设备
US20190286453A1 (en) System construction assisting apparatus, method, and program
CN104391782A (zh) 基于xml脚本的网络设备管理软件客户端模拟方法
CN110019090A (zh) 基于众包思想的社交网络大数据采集系统

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