KR102580364B1 - 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법 - Google Patents

스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법 Download PDF

Info

Publication number
KR102580364B1
KR102580364B1 KR1020200159321A KR20200159321A KR102580364B1 KR 102580364 B1 KR102580364 B1 KR 102580364B1 KR 1020200159321 A KR1020200159321 A KR 1020200159321A KR 20200159321 A KR20200159321 A KR 20200159321A KR 102580364 B1 KR102580364 B1 KR 102580364B1
Authority
KR
South Korea
Prior art keywords
field
fuzzing
message
protocol
value
Prior art date
Application number
KR1020200159321A
Other languages
English (en)
Other versions
KR20220071788A (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 KR1020200159321A priority Critical patent/KR102580364B1/ko
Priority to US17/135,505 priority patent/US20220166702A1/en
Publication of KR20220071788A publication Critical patent/KR20220071788A/ko
Application granted granted Critical
Publication of KR102580364B1 publication Critical patent/KR102580364B1/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법은, 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계, 수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계, 아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계, 퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계 및 퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계를 포함할 수 있다.

Description

스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법{Apparatus and Method for Fuzzing Preprocessing for Automating Smart Network Fuzzing}
기재된 실시예는 컴퓨터 네트워크 소프트웨어의 보안취약점을 테스트하는 퍼징(fuzzing) 기술에 속하며, 세부적으로는 스마트 네트워크 퍼징을 제공하기 위해 퍼징 대상 프로토콜 데이터 모델을 자동으로 생성하는 퍼징 전처리 방법 및 장치에 대한 것이다.
네트워크 퍼징(Network Fuzzing)은 네트워크 소프트웨어를 대상으로 조작된 통신 메시지를 전송하면서 그 소프트웨어의 오류 또는 결함을 찾는 기술이다.
네트워크 퍼징 기술은 퍼징 대상 소프트웨어가 사용하는 네트워크 프로토콜에 대한 이해 유무에 따라 크게 단순(Dumb) 퍼징과 스마트(smart) 퍼징으로 분류된다.
단순 퍼징은 먼저 퍼징 대상 소프트웨어로부터 정상적인 프로토콜 메시지 샘플을 수집한 후, 그 샘플을 단순히 변형시키면서 퍼징을 수행하는 방법이다. 이 방법은 네트워크 퍼징 기능을 쉽게 구현할 수 있다는 장점은 있지만, 퍼징 대상 네트워크 프로토콜에 대한 지식이 없기 때문에 프로토콜 메시지에 대한 코드 커버리지(code coverage)가 크지 못할 뿐만 아니라 모든 가능한 입력 값을 사용하여 시험하기 때문에 수행 시간이 오래 걸린다는 단점이 있다.
스마트 퍼징은 먼저 퍼징 대상 소프트웨어의 통신 메시지를 분석하여 퍼징 대상 프로토콜 데이터 모델을 생성한 후, 그 데이터 모델을 기반으로 하여 퍼징에 사용할 퍼징 메시지를 변형하면서 퍼징을 수행하는 방법이다. 이 방법은 퍼징 대상 프로토콜의 포맷에 맞춰 퍼징 데이터를 생성하므로 매우 효율적이지만, 퍼징 대상 프로토콜을 분석하는데 인적 및 시간적 자원 소모가 크다는 문제가 있다.
전술한 바와 같이 스마트 퍼징을 수행하는 데 있어 최대 난제는 바로 퍼징 메시지를 생성할 수 있는 퍼징 프로토콜 데이터 모델의 구축을 자동화하는 것이다.
문서화되지 않은 네트워크 프로토콜을 사용하는 퍼징 대상 시스템에 대해 퍼징 대상 통신 메시지 분석을 통해 퍼징 프로토콜 데이터 모델이 생성될 수 있도록 개발된 종래의 기술로서 Netzob(https://blog.amossys.fr/How_to_reverse_unknown_protocols_using_Netzob.html) 이 있다. Netzob은 네트워크 패킷에 대해 단어적 추론과 문법적 추론기능을 제공하여 사용자가 퍼징 프로토콜 데이터 모델을 생성하는데 도움을 제공한다.
Netzob은 네트워크 프로토콜을 분석할 때 유용한 요소 기능은 제공하지만, 퍼징 프로토콜 데이터 모델을 생성하기 위해서는 사용자가 퍼징 대상 네트워크 프로토콜을 직접 분석하면서 프로그래밍을 해야 하는 한계가 있다. 즉, 요소 기능들 중에서 어떤 것을 선택할지 그리고 그 요소기능을 어떻게 수행시킬지에 대해서는 사용자가 일일이 분석하여 제시해야 하기 때문에 퍼징 프로토콜 데이터 모델 생성의 자동화는 제공하지 못하고 있는 상태이다.
종래의 기술은 퍼징 대상 시스템의 네트워크 프로토콜을 분석할 때 필요한 요소 기능은 제공하고 있지만, 스마트 네트워크 퍼징을 제공하는데 필요한 퍼징 프로토콜 데이터 모델을 자동으로 생성할 수 있는 방법은 제공하지 못하고 있다.
따라서 스마트 네트워크 퍼징의 자동화를 위해 필요한 퍼징 대상 프로토콜 데이터 모델을 자동으로 생성시킬 수 있는 효과적인 방법이 요구되고 있다.
미국등록특허 654490호
기재된 실시예는 컴퓨터 네트워크 소프트웨어의 보안취약점을 찾기 위해 스마트 네트워크 퍼저에서 필요한 퍼징 통신 메시지를 효과적으로 생성할 수 있도록 퍼징 프로토콜 데이터 모델을 자동으로 생성하는데 그 목적이 있다.
실시예에 따른 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법은 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계, 수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계, 아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계, 퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계 및 퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계를 포함할 수 있다.
이때, 통신 메시지 샘플들을 수집하는 단계는, 퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계, 퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계 및 퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함할 수 있다.
이때, 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는, 제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이할 경우, 모든 프로토콜 필드의 크기는 가변으로 결정한 후 필드 크기를 측정하고, 제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 동일할 경우, 프로토콜 필드의 유형이 결정된 후에 필드 크기를 측정할 수 있다.
이때, 프로토콜 필드의 유형은, 고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드를 포함할 수 있다.
이때, 프로토콜 필드를 식별하는 단계는, 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일한 필드는 상수 필드로 결정하고, 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 상이한 필드는 제어 필드로 결정하되, 제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 동일할 경우, 제어필드를 카운터 필드 필드로 결정하고, 제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 상이할 경우, 제어필드를 체크섬 필드 필드로 결정할 수 있다.
이때, 프로토콜 필드를 식별하는 단계는, 제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견될 경우, 해당 필드를 순차 번호 필드로 결정하고, 제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견되지 않을 경우, 제1 샘플 메시지 및 제3 샘플 메시지에서 사용자가 입력한 값을 검색하여, 사용자가 입력한 값이 포함된 필드가 발견될 경우, 해당 필드를 사용자 필드로 결정할 수 있다.
이때, 프로토콜 필드 값 속성은, 텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류될 수 있다.
이때, 사용자 필드의 유효 범위를 결정하는 단계는, 사용자 필드의 값을 증가시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계, 퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최대값을 결정하는 단계, 사용자 필드의 값을 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계 및 퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최소값을 결정하는 단계를 포함할 수 있다.
실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법은 생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 더 포함할 수 있다.
실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계, 수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계, 아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계, 퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계 및 퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계를 수행할 수 있다.
이때, 통신 메시지 샘플들을 수집하는 단계는, 퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계, 퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계 및 퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함할 수 있다.
이때, 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는, 제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이할 경우, 모든 프로토콜 필드의 크기는 가변으로 결정한 후 필드 크기를 측정하고, 제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 동일할 경우, 프로토콜 필드의 유형이 결정된 후에 필드 크기를 측정할 수 있다.
이때, 프로토콜 필드의 유형은, 고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드를 포함할 수 있다.
이때, 프로토콜 필드를 식별하는 단계는, 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일한 필드는 상수 필드로 결정하고, 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 상이한 필드는 제어 필드로 결정하되, 제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 동일할 경우, 제어필드를 카운터 필드 필드로 결정하고, 제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 상이할 경우, 제어필드를 체크섬 필드 필드로 결정할 수 있다.
이때, 프로토콜 필드를 식별하는 단계는, 제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견될 경우, 해당 필드를 순차 번호 필드로 결정하고, 제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견되지 않을 경우, 제1 샘플 메시지 및 제3 샘플 메시지에서 사용자가 입력한 값을 검색하여, 사용자가 입력한 값이 포함된 필드가 발견될 경우, 해당 필드를 사용자 필드로 결정할 수 있다.
이때, 프로토콜 필드 값 속성은, 텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류될 수 있다,
이때, 사용자 필드의 유효 범위를 결정하는 단계는, 사용자 필드의 값을 증가시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계, 퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최대값을 결정하는 단계, 사용자 필드의 값을 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계 및 퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최소값을 결정하는 단계를 포함할 수 있다.
이때, 프로그램은, 생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 더 수행할 수 있다.
실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법은, 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계, 수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계, 아스키코드를 참조하여 텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류되는 프로토콜 필드 값의 속성을 결정하는 단계, 퍼징 대상 시스템에 사용자 필드의 값을 증가 또는 감소시키면서 생성한 테스트 통신 메시지를 전송한 후, 퍼징 대상 시스템으로부터의 응답 메시지의 에러 여부를 기반으로 사용자 필드의 유효 범위를 결정하는 단계, 퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계 및 생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 포함할 수 있다.
이때, 통신 메시지 샘플을 수집하는 단계는, 퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계, 퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계 및 퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함하고, 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는, 제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이한지의 여부에 따라 필드 크기 측정 시점을 결정하고, 제1 샘플 메시지 내지 제3 샘플 메시지를 비교 분석한 결과를 기반으로 프로토콜 필드의 유형을 고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드로 식별할 수 있다.
실시예에 따라, 퍼징 프로토콜 데이터 모델을 자동으로 생성할 수 있기 때문에 퍼징 대상 네트워크 프로토콜을 수동적으로 분석하는 수고없이 코드 커버리지(code coverage)가 크고 수행속도가 빠른 스마트 네트워크 퍼징을 자동으로 제공할 수 있는 효과가 있다.
도 1은 일반적인 네트워크 퍼징 개념도이다.
도 2는 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치의 개략적인 블록 구성도이다.
도 3은 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법을 설명하기 위한 순서도이다.
도 4는 실시예에 따라 특정 퍼징 대상 통신 메시지 샘플을 수집하는 단계를 설명하기 위한 순서도이다.
도 5는 <표 2>의 퍼징 프로토콜 데이터 모델의 일 예를 사용하여 생성된 퍼징 통신 메시지의 일 예이다.
도 6 내지 도 8은 실시예에 따라 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계를 설명하기 위한 순서도이다.
도 9는 실시예에 따른 테스트 통신 메시지를 통해 사용자 필드 값의 유효 범위를 결정하는 단계를 설명하기 위한 순서도이다.
도 10은 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는, 도 1 내지 도 10을 참조하여 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법이 상세히 설명된다.
도 1은 일반적인 네트워크 퍼징 개념도이다.
도 1을 참조하면, 네트워크 퍼저(Network Fuzzer)(10)는 퍼징 대상 시스템인 네트워크 응용 서버(20)에게 조작된 퍼징 메시지를 전송하고, 그 퍼징 메시지를 수신한 퍼징 대상 시스템(20)에 오류 또는 결함으로 인한 충돌(crash)이 발생하는지를 모니터링한다.
전술한 바와 같이 문서화되지 않은 네트워크 프로토콜을 분석하여 퍼징을 수행하는데 필요한 퍼징 프로토콜 데이터 모델을 생성하는 종래의 기술로서 Netzob이 있다. Netzob은 퍼징 대상 시스템의 네트워크 프로토콜을 분석하는데 유용한 요소 기능(예, 필드 내용이 유사/동일한 네트워크 메시지들끼리 그룹핑해서 보여주는 기능 등)은 제공하고 있지만, 그 요소 기능들 중에서 어떤 것을 선택하고 그것을 어떻게 수행시킬지에 대해서는 사용자가 일일이 분석하여 프로그래밍해야 하기 때문에 자동이 아닌 전문가의 직접적인 수고에 의해서 퍼징 프로토콜 데이터 모델이 생성되고 있는 상태이다.
따라서, 기재된 실시예는 컴퓨터 네트워크 소프트웨어의 보안취약점을 찾기 위해 스마트 네트워크 퍼저에서 필요한 퍼징 통신 메시지를 효과적으로 생성할 수 있도록 퍼징 프로토콜 데이터 모델을 자동으로 생성하는 기술을 제안한다.
도 2는 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치를 포함하는 시스템의 블록 구성도이다.
도 2를 참조하면, 네트워크 퍼저(Network Fuzzer)(10)가 퍼징 대상 시스템(20)에 조작된 퍼징 메시지를 전송함에 있어, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치(100)에 의해 퍼징 프로토콜 데이터 모델을 기반으로 생성된 퍼징 통신 메시지를 전송한다.
이를 위해 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치(100)는 통신 메시지 샘플 수집부(110), 프로토콜 필드 식별부(120), 프로토콜 필드값 속성 결정부(130), 테스트 통신 메시지 생성부(140), 프로토콜 필드 유효범위 결정부(150), 퍼징 프로토콜 데이터 모델 저장부(160) 및 퍼징 통신 메시지 생성부(170)를 포함한다.
통신 메시지 샘플 수집부(110)는 퍼징 대상 클라이언트(30)가 퍼징 대상 시스템(20)에게 사전에 정의된 특정 값으로 구성된 통신 메시지를 전송하도록 한 후 그 통신 메시지 샘플을 수집한다.
프로토콜 필드 식별부(120)는 특정 통신 샘플 수집부(110)에서 수집된 특정통신 메시지 샘플들을 서로 비교하여 퍼징 대상 프로토콜 필드의 크기와 유형을 식별한다.
이때, 프로토콜 필드 유형은, 고정된 값이 설정되는 상수(Constant) 필드, 가변적인 값이 설정되는 사용자(User) 필드, 메시지의 순차번호가 설정되는 순차번호(sequence number) 필드, 필드들의 길이가 설정되는 카운터(counter) 필드, 그리고 필드들의 체크섬 데이터가 설정되는 체크섬(checksum) 필드 등으로 구분될 수 있다.
프로토콜 필드값 속성 결정부(130)는 아스키코드(ASCII Code)를 참조하여 프로토콜 필드 값의 속성을 결정한다.
이때, 프로토콜 필드값 속성은, 텍스트(Text), 바이너리(Binary), 정수(Int), 실수(Float) 등으로 구분될 수 있다.
테스트 통신 메시지 생성부(140)는 사용자(User) 필드의 값을 증가 또는 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템(20)에게 전송한다.
프로토콜 필드 유효 범위 결정부(150)는 퍼징 대상 시스템(20)에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자(User) 필드의 최소값과 최대값을 결정한다.
퍼징 프로토콜 데이터 모델 저장부(160)는 필드 번호, 필드 유형, 필드 크기, 필드값 속성, 필드 값 등의 요소들로 구성된 퍼징 프로토콜 데이터 모델을 저장한다.
이때, 필드 유형은 고정된 값이 설정되는 상수(Constant) 필드, 가변적인 값이 설정되는 사용자(User) 필드, 메시지의 순차번호가 설정되는 순차번호(sequence number) 필드, 필드들의 길이가 설정되는 카운터(counter) 필드, 그리고 필드들의 체크섬 데이터가 설정되는 체크섬(checksum) 필드 등으로 구분된다.
이때, 필드값 속성은 텍스트(Text), 바이너리(Binary), 정수(Int), 실수(Float) 등으로 구분된다.
이때, 필드 값은 필드의 유형에 따라서 특정 값, 값의 범위(예, 최소값, 최대값), 또는 필드 번호 등이 설정된다.
퍼징 통신 메시지 생성부(170)는 퍼징 프로토콜 데이터 모델을 사용하여 임의의 퍼징 통신 메시지를 생성한다.
도 3은 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법은 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계(S210), 수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계(S220), 아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계(S230), 퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계(S250~S260), 퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계(S260) 및 생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계(S270)를 포함할 수 있다. 즉, S270에서 생성된 퍼징 통신 메시지는 네트워크 퍼저(10)가 퍼징 대상 시스템(20)을 모니터링하기 위한 메시지로 사용된다.
이때, 특정 퍼징 대상 통신 메시지 샘플을 수집하는 단계(S210)는 퍼징 대상 클라이언트가 퍼징 대상 시스템에게 사전에 정의된 특정 값으로 구성된 통신 메시지를 전송하도록 한 후 그 통신 메시지 샘플을 수집한다.
도 4는 실시예에 따라 특정 퍼징 대상 통신 메시지 샘플을 수집하는 단계를 설명하기 위한 순서도이다.
도 4를 참조하면, 실시예에서는 퍼징 대상 프로토콜 유형별로 단지 세 개의 통신 메시지 샘플만 수집한다.
구체적으로, 통신 메시지 샘플 수집부(110)는, 퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집한다(S310).
그리고, 통신 메시지 샘플 수집부(110)는, 퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집한다(S320).
마지막으로, 통신 메시지 샘플 수집부(110)는, 퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집한다(S330).
다시 도 3을 참조하면, 특정 메시지 샘플간 비교를 통해 프로토콜 필드를 식별하는 단계(S220)는 수집된 특정 메시지 샘플을 서로 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별한다. 이때, 프로토콜 필드 유형은 고정된 값이 설정되는 상수(Constant) 필드, 가변적인 값이 설정되는 사용자(User) 필드, 메시지의 순차번호가 설정되는 순차번호(sequence number) 필드, 필드들의 길이가 설정되는 카운터(counter) 필드, 그리고 필드들의 체크섬 데이터가 설정되는 체크섬(checksum) 필드 등으로 구분된다.
이때, 전술한 바와 같이 제1 샘플 메시지 내지 제3 샘플 메시지를 비교 분석하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는데, 이에 대한 상세한 설명은 도 6 내지 도 8을 참조하여 후술하기로 한다.
아스키 코드(ASCII Code)를 참조하여 프로토콜 필드값 속성을 결정하는 단계(S230)에서 결정되는 프로토콜 필드값 속성은 텍스트(Text), 바이너리(Binary), 정수(Int), 실수(Float) 등으로 구분될 수 있다.
퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계(S250~S260)는, 사용자(User) 필드의 값을 증가 또는 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계(S240) 및 퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자(User) 필드의 유효 범위로 최대값 및 최소값을 결정하는 단계(S250)를 포함할 수 있다. 이에 대한 상세한 설명은 도 9를 참조하여 후술하기로 한다.
퍼징 프로토콜 데이터 모델을 저장하는 단계는 필드 번호, 필드 유형, 필드 크기, 필드값 속성, 필드 값 등의 요소들로 구성된 퍼징 프로토콜 데이터 모델을 저장하는 단계이다.
<표 1>은 실시예에 따른 퍼징 프로토콜 데이터 모델의 구조도이다.
구성요소 명 구성요소 유형 구성요소의 유효 값
필드 번호
(Field ID)
정수형(Int) 1~
필드 유형
(Field Type)
열거형(Enum) Constant(상수필드), User(사용자필드)
Counter(카운터필드),
SequenceNumber(순차번호필드)
CheckSum(체크섬필드)
필드 크기
(Field Size)
정수형(Int) 1~
필드값 속성
(Value Property
열거형(Enum) Text, Binary, Int, Float
필드 값
(Field Value)
리스트형(list) 필드 유형에 따라 필드값, 필드값 범위, 필드번호가 저장됨
<표 1>에서 필드 유형은 고정된 값이 설정되는 상수(Constant) 필드, 가변적인 값이 설정되는 사용자(User) 필드, 메시지의 순차번호가 설정되는 순차번호(sequence number) 필드, 필드들의 길이가 설정되는 카운터(counter) 필드, 그리고 필드들의 체크섬 데이터가 설정되는 체크섬(checksum) 필드 등으로 구분된다.
필드값 속성은 텍스트(Text), 바이너리(Binary), 정수(Int), 실수(Float) 등으로 구분된다.
필드 값은 필드의 유형에 따라서 특정 값, 값의 범위(예, 최소값, 최대값), 또는 필드 번호 등이 설정된다.
<표 2>는 퍼징 프로토콜 데이터 모델의 일 예이다.
Field ID Field Type Field Size Value Type Field Value
1 Constant 4 - [1]
2 SeqNo 4 Inr [24,100000,1]
3 Constant 8 - ['req\0\0\0\0']
4 Constant 4 Int [0, 1, 2, 3]
5 User 4 Int [0, 100]
6 Counter 4 Int [7, 7]
7 User 0 Text [1, 10240]
<표 2>에서 2번 순차번호 필드의 필드 값은 시작 값이 24이고, 마지막 값은 100000이고, 1씩 증가시키면서 설정된다는 의미이다. 4번 상수 필드의 필드 값은 설정될 수 있는 값이 0, 1, 2, 3 중에서 하나라는 의미이다. 5번 사용자 필드의 필드 값은 0에서 100사이의 값이 설정되어야 한다는 의미이다. 6번 카운터 필드의 필드 값은 필드번호 7번부터 7번까지의 필드 길이가 설정되어야 한다는 의미이다.
도 5는 <표 2>의 퍼징 프로토콜 데이터 모델의 일 예를 사용하여 생성된 퍼징 통신 메시지의 일 예이다.
즉, 도 5를 참조하면, <표 2>의 퍼징 프로토콜 데이터 모델을 기반으로 첫 번째 필드는 상수 필드(Constant)로 그 값이 '1'이고, 두 번째 필드는 순차번호(SeqNo) 필드로 그 값이 '24'이고, 세 번째 필드는 상수(Constant) 필드로 그 값이 'req\0\0\0\0'이고, 네 번째 필드는 상수(Constant) 필드로 그 값이 '2'이고, 다섯 번째 필드는 사용자(User) 필드로 그 값이'50'이고, 여섯 번째 필드는 카운터(Counter)로 일곱번째 필드에 기록되는 텍스트 길이인'20'이고, 일곱 번째 필드는 사용자(User) 필드로 그 값이 텍스트인 'This is sample data'이다.
도 6 내지 도 8은 실시예에 따라 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계를 설명하기 위한 순서도이다.
도 6은 실시예에 따른 프로토콜 메시지 길이 특성 식별 단계를 설명하기 위한 순서도이다.
도 6을 참조하면, 프로토콜 필드 식별부(120)는 제1 샘플 메시지 및 제3 샘플 메시지의 전체 메시지 길이를 비교한다(S410).
이는 제1 샘플 메시지에 상응하는 요청 메시지와 제3 샘플 메시지에 상응하는 요청 메시지에 포함된 사용자 데이터가 상이하면 그 크기도 다르다는 가정을 기반으로 하는 것이다.
즉, S420의 판단 결과 제1 샘플 메시지 및 제3 샘플 메시지의 전체 길이가 상이할 경우, 프로토콜 필드 식별부(120)는 구분자를 사용하여 필드를 식별하고 모든 프로토콜 필드의 크기는 가변이라고 결정(S430)하고, 필드 크기를 측정한다(S440).
반면, S420의 판단 결과 제1 샘플 메시지 및 제3 샘플 메시지의 전체 길이가 동일할 경우, 프로토콜 필드 식별부(120)는 필드 크기를 필드 유형이 결정되는 시점에 측정한다(S450). 즉, 후술되는 도 7 및 도 8에서와 같이 필드 유형이 결정된 이후에 필드 크기가 결정된다.
도 7은 실시예에 따른 상수 필드, 카운터 필드, 체크섬 필드 식별 단계를 설명하기 위한 위한 순서도이다.
도 7을 참조하면, 프로토콜 필드 식별부(120)는 제1 샘플 메시지 및 제3 샘플 메시지의 내용을 비교(S510)하여, 동일 여부를 판단한다(S520). 이는 제1 샘플 메시지 및 제3 샘플 메시지에 포함된 사용자 데이터의 내용이 서로 다르다는 가정을 기반으로 한다.
프로토콜 필드 식별부(120)는 S520의 판단 결과 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일한 필드는 상수 필드(Constant Field)로 결정한다(S530).
반면, 프로토콜 필드 식별부(120)는 S520의 판단 결과 제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일하지 않은 필드는 제어 필드로 결정한다(S540).
프로토콜 필드 식별부(120)는 제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 동일한지를 판단한다(S550~S560).
S560의 판단 결과 동일할 경우, 프로토콜 필드 식별부(120)는 제어필드를 카운터(Counter) 필드로 결정한다(S570).
반면, S560의 판단 결과 동일하지 않을 경우, 프로토콜 필드 식별부(120)는 제어필드를 체크섬(Checksum) 필드로 결정한다(S575).
그런 후, 전술한 바와 같이 프로토콜 필드 식별부(120)는 필드 크기가 가변이 아닐 경우, 상수필드, 카운터 필드 및 체크섬 필드의 필드 크기를 측정한다(S580~S590).
도 8은 실시예에 따른 순차번호 필드 및 사용자 필드 식별 단계를 설명하기 위한 위한 순서도이다.
도 8을 참조하면, 프로토콜 필드 식별부(120)는 제1 샘플 메시지 및 제2 샘플 메시지의 내용을 비교(S610)하여, 내용이 서로 상이한 필드가 발견되는지를 확인한다(S620). 이는 제1 샘플 메시지와 제2 샘플 메시지에 포함된 사용자 데이터의 내용이 서로 같다는 가정을 기반으로 한다.
S620의 확인 결과 내용이 서로 상이한 필드가 발견될 경우, 프로토콜 필드 식별부(120)는 해당 필드를 순차 번호 필드로 결정한다(S630).
반면, S620의 확인 결과 내용이 서로 상이한 필드가 발견되지 않을 경우, 프로토콜 필드 식별부(120)는 샘플 메시지들에서 사용자가 입력한 값을 검색(S640)하여, 사용자가 입력한 값이 포함된 필드가 발견되는지를 확인한다(S650). 즉, 제1 샘플 메시지와 제2 샘플 메시지를 수집할 때 입력했던 사용자 데이터를 제1 샘플 메시지와 제2 샘플 메시지에서 검색하여 발견되는 필드는 사용자(User) 필드로 결정한다.
S650의 확인 결과 사용자가 입력한 값이 포함된 필드가 발견될 경우, 프로토콜 필드 식별부(120)는 해당 필드를 사용자 필드로 결정한다(S660).
그런 후, 전술한 바와 같이 프로토콜 필드 식별부(120)는 필드 크기가 가변이 아닐 경우, 순차 번호 필드 및 사용자 필드의 필드 크기를 측정한다(S670~S680).
도 9는 실시예에 따른 테스트 통신 메시지를 통해 사용자 필드 값의 유효 범위를 결정하는 단계를 설명하기 위한 순서도이다.
도 9에는 크게 테스트 통신 메시지를 통해 사용자 필드 값의 최대값을 결정하는 단계(S710~S750) 및 테스트 통신 메시지를 통해 사용자 필드 값의 최소값을 결정하는 단계(S760~S800)가 도시되어 있다.
우선, 테스트 통신 메시지 생성부(140)는 테스트 통신 메시지의 사용자 필드의 초기값으로 제1 샘플 메시지의 사용자 데이터 값으로 설정한다(S710). 이는 제1 샘플 메시지에 포함된 사용자 데이터가 정상적인 값이라는 가정을 근거로 한다.
테스트 통신 메시지 생성부(140)는 생성된 테스트 메시지를 퍼징 대상 시스템에게 전송(S720)한 후, 퍼징 대상 시스템으로부터 정상적인 응답 메시지가 수신되는지를 모니터링한다(S730).
S730의 모니터링 결과 정상적인 응답 메시지가 수신될 경우, 테스트 통신 메시지 생성부(140)는 증가된 사용자 필드 값으로 설정된 테스트 통신 메시지를 생성한다(S740). 그런 후, S720 내지 S740을 반복 수행한다.
반면, S730의 모니터링 결과 에러 메시지가 수신될 경우, 테스트 통신 메시지 생성부(140)는 S720 내지 S740을 반복 수행을 중단하고, 프로토콜 유효 범위 결정부(150)는 테스트 통신 메시지 생성부(140)가 바로 이전에 전송한 테스트 통신 메시지의 사용자 필드 값을 사용자(User) 필드의 최대값으로 결정한다(S750).
다시, 테스트 통신 메시지 생성부(140)는 테스트 통신 메시지의 사용자 필드의 초기값으로 제1 샘플 메시지의 사용자 데이터 값으로 설정한다(S760).
테스트 통신 메시지 생성부(140)는 생성된 테스트 메시지를 퍼징 대상 시스템에게 전송(S770)한 후, 퍼징 대상 시스템으로부터 정상적인 응답 메시지가 수신되는지를 모니터링한다(S780).
S780의 모니터링 결과 정상적인 응답 메시지가 수신될 경우, 테스트 통신 메시지 생성부(140)는 감소된 사용자 필드 값으로 설정된 테스트 통신 메시지를 생성한다(S790). 그런 후, S770 내지 S790을 반복 수행한다.
반면, S780의 모니터링 결과 에러 메시지가 수신될 경우, 테스트 통신 메시지 생성부(140)는 S770 내지 S790의 반복 수행을 중단하고, 프로토콜 유효 범위 결정부(150)는 테스트 통신 메시지 생성부(140)가 바로 이전에 전송한 테스트 통신 메시지의 사용자 필드 값을 사용자(User) 필드의 최소값으로 결정한다(S795).
도 10은 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
실시예에 따른 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치(100)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
110 : 통신 메시지 샘플 수집부 120 : 프로토콜 필드 식별부
130 : 프로토콜 필드값 속성 결정부 140 : 테스트 통신 메시지 생성부
150 : 프로토콜 유효범위 결정부
160 : 퍼징 프로토콜 데이터 모델 저장부
170 : 퍼징 통신 메시지 생성부

Claims (20)

  1. 삭제
  2. 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계;
    수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계;
    아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계;
    퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계; 및
    퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계를 포함하되,
    통신 메시지 샘플들을 수집하는 단계는,
    퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계;
    퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계; 및
    퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  3. 제2 항에 있어서, 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는,
    제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이할 경우, 모든 프로토콜 필드의 크기는 가변으로 결정한 후 필드 크기를 측정하고,
    제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 동일할 경우, 프로토콜 필드의 유형이 결정된 후에 필드 크기를 측정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  4. 제2 항에 있어서, 프로토콜 필드의 유형은,
    고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  5. 제4 항에 있어서, 프로토콜 필드를 식별하는 단계는,
    제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일한 필드는 상수 필드로 결정하고,
    제1 샘플 메시지 및 제3 샘플 메시지의 내용이 상이한 필드는 제어 필드로 결정하되,
    제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 동일할 경우, 제어필드를 카운터 필드 필드로 결정하고,
    제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 상이할 경우, 제어필드를 체크섬 필드 필드로 결정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  6. 제4 항에 있어서, 프로토콜 필드를 식별하는 단계는,
    제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견될 경우, 해당 필드를 순차 번호 필드로 결정하고,
    제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견되지 않을 경우, 제1 샘플 메시지 및 제3 샘플 메시지에서 사용자가 입력한 값을 검색하여, 사용자가 입력한 값이 포함된 필드가 발견될 경우, 해당 필드를 사용자 필드로 결정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  7. 제2 항에 있어서, 프로토콜 필드 값 속성은,
    텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류되는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  8. 제4 항에 있어서, 사용자 필드의 유효 범위를 결정하는 단계는,
    사용자 필드의 값을 증가시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계;
    퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최대값을 결정하는 단계;
    사용자 필드의 값을 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계; 및
    퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최소값을 결정하는 단계를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  9. 제4 항에 있어서,
    생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 더 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  10. 삭제
  11. 적어도 하나의 프로그램이 기록된 메모리; 및
    프로그램을 실행하는 프로세서를 포함하며,
    프로그램은,
    퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계;
    수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계;
    아스키코드를 참조하여 프로토콜 필드 값의 속성을 결정하는 단계;
    퍼징 대상 시스템에 전송한 테스트 통신 메시지에 대한 응답 메시지를 기반으로 사용자 필드의 유효 범위를 결정하는 단계; 및
    퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계를 수행하되,
    통신 메시지 샘플들을 수집하는 단계는,
    퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계;
    퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계; 및
    퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  12. 제11 항에 있어서, 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는,
    제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이할 경우, 모든 프로토콜 필드의 크기는 가변으로 결정한 후 필드 크기를 측정하고,
    제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 동일할 경우, 프로토콜 필드의 유형이 결정된 후에 필드 크기를 측정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  13. 제11 항에 있어서, 프로토콜 필드의 유형은,
    고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  14. 제13 항에 있어서, 프로토콜 필드를 식별하는 단계는,
    제1 샘플 메시지 및 제3 샘플 메시지의 내용이 동일한 필드는 상수 필드로 결정하고,
    제1 샘플 메시지 및 제3 샘플 메시지의 내용이 상이한 필드는 제어 필드로 결정하되,
    제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 동일할 경우, 제어필드를 카운터 필드 필드로 결정하고,
    제1 샘플 메시지, 제2 샘플 메시지 및 제3 샘플 메시지의 요청 메시지에서 제어필드에 위치하는 필드의 값이 제어필드 다음에 위치하는 필드들의 길이와 상이할 경우, 제어필드를 체크섬 필드 필드로 결정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  15. 제13 항에 있어서, 프로토콜 필드를 식별하는 단계는,
    제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견될 경우, 해당 필드를 순차 번호 필드로 결정하고,
    제1 샘플 메시지 및 제2 샘플 메시지의 내용이 상이한 필드가 발견되지 않을 경우, 제1 샘플 메시지 및 제3 샘플 메시지에서 사용자가 입력한 값을 검색하여, 사용자가 입력한 값이 포함된 필드가 발견될 경우, 해당 필드를 사용자 필드로 결정하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  16. 제11 항에 있어서, 프로토콜 필드 값 속성은,
    텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류되는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  17. 제13 항에 있어서, 사용자 필드의 유효 범위를 결정하는 단계는,
    사용자 필드의 값을 증가시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계;
    퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최대값을 결정하는 단계;
    사용자 필드의 값을 감소시키면서 테스트 통신 메시지를 생성하여 퍼징 대상 시스템에게 전송하는 단계; 및
    퍼징 대상 시스템에게 전송한 테스트 통신 메시지에 대한 응답 메시지의 에러 유무를 통해 사용자 필드의 최소값을 결정하는 단계를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  18. 제13 항에 있어서, 프로그램은,
    생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 더 수행하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치.
  19. 퍼징 대상 클라이언트가 퍼징 대상 시스템에 전송한 통신 메시지 샘플을 수집하는 단계;
    수집된 통신 메시지 샘플을 비교하여 퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계;
    아스키코드를 참조하여 텍스트(Text), 바이너리(Binary), 정수(Int) 및 실수(Float) 중 하나로 분류되는 프로토콜 필드 값의 속성을 결정하는 단계;
    퍼징 대상 시스템에 사용자 필드의 값을 증가 또는 감소시키면서 생성한 테스트 통신 메시지를 전송한 후, 퍼징 대상 시스템으로부터의 응답 메시지의 에러 여부를 기반으로 사용자 필드의 유효 범위를 결정하는 단계;
    퍼징 대상 프로토콜의 필드 번호, 필드 유형, 필드 크기, 필드값 속성 및 필드 값을 구성 요소로 하는 퍼징 프로토콜 데이터 모델을 저장하는 단계; 및
    생성된 프로토콜 데이터 모델을 기반으로 퍼징 대상 시스템에 전송될 퍼징 통신 메시지를 생성하는 단계를 포함하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
  20. 제19 항에 있어서, 통신 메시지 샘플을 수집하는 단계는,
    퍼징 대상 클라이언트에 특정 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제1 샘플 메시지를 수집하는 단계;
    퍼징 대상 클라이언트에 특정 사용자 데이터와 동일한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제2 샘플 메시지를 수집하는 단계; 및
    퍼징 대상 클라이언트에 특정 사용자 데이터와 상이한 사용자 데이터를 포함하는 통신 메시지를 퍼징 대상 시스템에 전송하도록 요청한 후, 제3 샘플 메시지를 수집하는 단계를 포함하고,
    퍼징 대상 프로토콜의 필드의 크기와 유형을 식별하는 단계는,
    제1 샘플 메시지 및 제3 샘플 메시지 간의 메시지 길이가 상이한지의 여부에 따라 필드 크기 측정 시점을 결정하고,
    제1 샘플 메시지 내지 제3 샘플 메시지를 비교 분석한 결과를 기반으로 프로토콜 필드의 유형을 고정된 값이 설정되는 상수 필드, 가변적인 값이 설정되는 사용자 필드, 메시지의 순차번호가 설정되는 순차번호 필드, 필드들의 길이가 설정되는 카운터 필드 및 필드들의 체크섬 데이터가 설정되는 체크섬 필드로 식별하는, 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 방법.
KR1020200159321A 2020-11-24 2020-11-24 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법 KR102580364B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200159321A KR102580364B1 (ko) 2020-11-24 2020-11-24 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법
US17/135,505 US20220166702A1 (en) 2020-11-24 2020-12-28 Fuzzing preprocessing apparatus and method for automating smart network fuzzing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200159321A KR102580364B1 (ko) 2020-11-24 2020-11-24 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220071788A KR20220071788A (ko) 2022-05-31
KR102580364B1 true KR102580364B1 (ko) 2023-09-20

Family

ID=81658697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200159321A KR102580364B1 (ko) 2020-11-24 2020-11-24 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20220166702A1 (ko)
KR (1) KR102580364B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11757904B2 (en) * 2021-01-15 2023-09-12 Bank Of America Corporation Artificial intelligence reverse vendor collation
US20230394139A1 (en) * 2022-06-06 2023-12-07 Nxp B.V. Method for defending against fuzzing analysis of a device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301647A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Delivering Malformed Data for Fuzz Testing to Software Applications
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100654490B1 (ko) 2005-04-01 2006-12-05 (주)인트로모바일 이동통신 단말기의 대기화면 템플릿에 콘텐츠를 표시하는방법, 이를 실행하기 위한 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체 및 그 기능을 갖는 이동통신단말기.
US8817780B2 (en) * 2007-08-08 2014-08-26 Maxlinear, Inc. TS packet grooming
WO2010062114A2 (ko) * 2008-11-25 2010-06-03 Sung Jong-Woo 메타데이터에 기반한 센서노드 관리장치 및 방법
US8634297B2 (en) * 2010-11-01 2014-01-21 Cisco Technology, Inc. Probing specific customer flow in layer-2 multipath networks
CN102891852B (zh) * 2012-10-11 2015-07-01 中国人民解放军理工大学 基于报文分析的协议格式自动推断方法
KR101525398B1 (ko) * 2014-05-30 2015-06-09 한국전자통신연구원 네트워크 응용 프로그램 퍼징 시스템 및 방법
US10909105B2 (en) * 2016-11-28 2021-02-02 Sap Se Logical logging for in-memory metadata store
KR101982308B1 (ko) * 2017-04-25 2019-08-28 고려대학교 산학협력단 프로토콜 모델 생성 장치 및 모델링 방법
KR101981138B1 (ko) * 2018-03-22 2019-08-30 아주대학교산학협력단 Can 트레이스의 필드 경계 구분 장치 및 방법
US11375032B2 (en) * 2018-12-20 2022-06-28 Ebay Inc. Traffic mirroring

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301647A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Delivering Malformed Data for Fuzz Testing to Software Applications
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置

Also Published As

Publication number Publication date
US20220166702A1 (en) 2022-05-26
KR20220071788A (ko) 2022-05-31

Similar Documents

Publication Publication Date Title
KR102580364B1 (ko) 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법
CN110287109B (zh) 协议接口的测试方法、装置、计算机设备及其存储介质
EP2088713A1 (en) A polling method and a polling server
CN111866016B (zh) 日志的分析方法及系统
US8631124B2 (en) Network analysis system and method utilizing collected metadata
CN111026653B (zh) 异常程序行为检测方法、装置、电子设备和存储介质
CN111666193B (zh) 基于实时日志解析的终端功能监控与测试的方法与系统
CN108763916B (zh) 业务接口安全评估方法及装置
EP1710718B1 (en) Systems and methods for performing streaming checks on data format for UDTs
CN111726260B (zh) 一种网络请求回复信息格式转换的测试方法、装置和系统
WO2023045365A1 (zh) 视频质量评估方法、装置、电子设备及存储介质
CN114385436A (zh) 服务器分组方法、装置、电子设备和存储介质
KR20220060429A (ko) 원격지의 네트워크 스위치에 대한 로그 수집 시스템 및 이의 빅데이터 구축 방법
KR102470364B1 (ko) 보안 이벤트 학습데이터 생성 방법 및 보안 이벤트 학습데이터 생성 장치
CN116033048B (zh) 物联网的多协议解析方法、电子设备和存储介质
CN109325166B (zh) 爬虫系统中解析规则配置方法及装置
CN114302425B (zh) 设备配网方法、装置、存储介质及电子设备
CN111506605B (zh) 数据的分析方法、装置、设备及计算机可读存储介质
WO2021218531A1 (zh) 一种数据处理方法和数据处理装置
CN117714317A (zh) 数据采集方法、装置、设备及存储介质
CN111930772A (zh) 数据的导出方法、装置、系统及计算机可读存储介质
CN114625714A (zh) 日志处理方法及装置
CN117472996A (zh) 数据库探测方法、装置、电子设备及存储介质
CN116170299A (zh) 数据采集方法、系统及装置
CN116049291A (zh) 一种数据存储方法、系统、设备及可读存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right