KR20100066908A - 윈도우 실행파일 추출방법, 및 장치 - Google Patents

윈도우 실행파일 추출방법, 및 장치 Download PDF

Info

Publication number
KR20100066908A
KR20100066908A KR1020080125415A KR20080125415A KR20100066908A KR 20100066908 A KR20100066908 A KR 20100066908A KR 1020080125415 A KR1020080125415 A KR 1020080125415A KR 20080125415 A KR20080125415 A KR 20080125415A KR 20100066908 A KR20100066908 A KR 20100066908A
Authority
KR
South Korea
Prior art keywords
packet
session
pattern
file
matching
Prior art date
Application number
KR1020080125415A
Other languages
English (en)
Other versions
KR101404108B1 (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 KR1020080125415A priority Critical patent/KR101404108B1/ko
Priority to US12/503,288 priority patent/US8230503B2/en
Publication of KR20100066908A publication Critical patent/KR20100066908A/ko
Application granted granted Critical
Publication of KR101404108B1 publication Critical patent/KR101404108B1/ko

Links

Images

Classifications

    • 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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5093Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to messaging or chat services
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 하드웨어 기반의 세션 추적 및 패턴 매칭 기술을 이용하여 다량의 네트워크 패킷들 중 윈도우 실행파일과 관련된 패턴을 검색, 해당 세션에 속한 모든 패킷들을 추출하는 윈도우 실행파일 추출방법, 및 장치에 관한 것이다. 본 발명은 MZ 패턴을 구비하는 기준패킷의 세션에 따라 페이로드를 갖는 입력 패킷을 수집하는 단계, 수집된 입력 패킷에 대한 PE 패턴 매칭을 수행하는 단계, 및 PE 패턴 매칭을 만족하는 적어도 하나의 입력 패킷을 토대로 PE 파일을 형성하는 단계를 포함한다.
MZ 패턴, PE 패턴, PE 파일, 세션

Description

윈도우 실행파일 추출방법, 및 장치{Windows Executable File Extraction Method by using Hardware based Session Matching and Pattern Matching and apparatus using the same}
본 발명은 고속의 대용량 네트워크 환경에서 완전한 형태의 윈도우 실행파일들을 추출하는 방법 및 장치에 관한 것으로, 더욱 상세하게는, 하드웨어 기반의 세션 추적 및 패턴 매칭 기술을 이용하여 다량의 네트워크 패킷들 중 윈도우 실행파일과 관련된 패턴을 검색, 해당 세션에 속한 모든 패킷들을 추출하는 윈도우 실행파일 추출방법, 및 장치에 관한 것이다.
본 발명은 지식경재부, 및 정보통신 연구진흥원의 IT성장동력기술개발 사업의 일환으로 수행한 연구로부터 도출된 것이다[과제 관리번호 2006-S-042-03, 과제명 : Network 위협의 Zero-Day Attack 대응을 위한 실시간 공격 Signature 생성 및 관리 기술개발].
컴퓨터 바이러스는 파일 감염을 목적으로 하는 바이러스로부터 네트워크를 통한 급속 확산을 시도하는 웜, 그리고 데이터 유출을 위한 트로이 목마에 이르기까지 다양한 모습으로 발전하였다. 바이러스, 및 악성코드가 네트워크에 가하는 위협은 해가 갈수록 증가하고 있으며, 바이러스, 및 악성코드의 감염, 및 해킹기법은 날로 발전하고 있다. 따라서, 네트워크 보안에 대한 바이러스, 및 악성코드의 위협으로부터 컴퓨터 시스템을 보호하기 위해 다양한 대응 방안들이 활발하게 연구되고 있다.
현재까지 알려진 안티 바이러스 소프트웨어의 대부분은 파일 기반의 진단법을 사용한다.
파일 기반의 진단법은, 특정한 형식의 시그니처를 사용하여 바이러스나 악성코드를 진단하는 방식으로 시그니처 기반 또는 스트링 검사 방식이라 불린다.
시그니처 기반의 진단법은 악성코드로 분류된 파일의 특정 부분 또는 고유한 부분만을 검사 대상으로 삼기 때문에, 오탐지 및 미탐지를 최소화할 수 있다. 또한, 안티 바이러스 소프트웨어가 파일을 검사할 때, 검사 대상 파일들의 특정 부분들만을 시그너처와 비교함으로써 빠른 스캐닝이 가능하다. 그러나, 시그너처 기반의 진단법은 기존에 알려진 악성코드에 대해서만 대응을 할 수 있으므로, 새로운 형태의 알려지지 않은 악성코드에 대해서는 대응할 수 없다는 단점을 갖는다.
시그니처 기반의 진단법이 갖는 한계를 극복하고자 개발된 탐지 기법 중 하나는 휴리스틱(Heuristics) 탐지 기법이다.
휴리스틱 탐지 기법은 악성코드나 바이러스의 행동 패턴을 이용하여 파일을 진단한다.
예컨대, 어떤 파일이 특정 폴더에 데이터를 기록하거나 특정한 레지스트리를 변경할 때, 또는 악성코드나 바이러스가 자주 사용하는 명령어(instruction)를 이 용할 때, 휴리스틱 탐지 기법은 상기 파일을 악성코드나 바이러스로 진단한다.
따라서, 휴리스틱 탐지 기법은, 특정 폴더에 데이터를 기록하거나, 특정한 레지스트리를 변경하거나, 또는 특정한 명령어를 사용하는 행위를 시그너처로 지정하고 시그너처를 검사 대상 파일의 명령어들과 비교한다.
휴리스틱 탐지 기법은 가상 운영체제에서 파일을 실행하는 방식과 파일을 실행하지 않고 파일 자체를 스캐닝하여 비교하는 방식으로 구분된다.
이외에도, 휴리스틱 탐지 기법은 악성코드 파일들의 공통된 코드 영역(Code Section)에 대한 OPcode(Operation Code) 명령어를 시그너처로 하여 파일의 Opcode를 비교하여 악성코드나 바이러스를 탐지할 수도 있다.
상기와 같이, 실행파일에 대한 분석은 다양한 악성코드에 대한 효율적인 탐지를 수행하면서 신속한 대응을 수행하도록 하는데 꼭 필요한 요소임을 알 수 있다. 그러나, 다양한 파일 분석 기법을 이용한 악성 코드(또는 바이러스, 이하 생략하도록 한다) 탐지 기법들은 대부분 완전한 형태의 실행파일을 필요로 하며, 통상 호스트 기반에서 수행된다.
즉, 각 호스트 내에서 실행되는 파일에 대해 분석을 수행하는 구조를 갖는다. 따라서, 대용량의 고속 네트워크 환경 상에서 전달되는 실행 파일들을 조기에 분석하고 대응하는데 한계가 있다.
본 발명의 목적은 하드웨어 기반의 장치를 통해 수행되며, 윈도우 기반의 운영체제에서 실행되는 PE 파일의 특징을 참조하여 고속의 네트워크 환경에서 수신 패킷을 조합하여 PE 파일을 형성할 수 있는 기반을 제공하는 윈도우 실행파일 추출방법, 및 장치를 제공함에 있다.
또한, 본 발명은 하드웨어 기반의 고속 패턴 매칭 기술 및 해쉬 기반의 세션 매칭 기술을 사용하므로, 타 운영체제의 실행파일에 대해서도 같은 방식을 적용 가능하다.
상기한 목적은 본 발명에 따라, MZ 패턴을 구비하는 기준패킷의 세션에 따라 페이로드를 갖는 입력 패킷을 수집하는 단계, 상기 수집된 입력 패킷에 대한 PE 패턴 매칭을 수행하는 단계, 및 상기 PE 패턴 매칭을 만족하는 적어도 하나의 상기 입력 패킷을 토대로 PE 파일을 형성하는 단계에 의해 달성된다.
상기한 목적은 본 발명에 따라, MZ 패턴을 구비하는 기준 패킷의 세션을 기준으로 상기 기준 패킷의 세션과 동일 세션의 입력 패킷을 수집하는 세션 매칭모듈, 상기 수집된 입력 패킷에 대한 PE 패턴 매칭을 수행하는 패턴 매칭모듈, 및 상기 PE 패턴 매칭을 만족하는 적어도 하나의 입력 패킷을 조합하여 PE 파일을 형성하는 PE 처리모듈에 의해 달성된다.
본 발명은 호스트로 패킷이 유입되기 전, 패킷에서 윈도우 실행파일을 추출함으로써 호스트보다 먼저 실행파일을 분석할 수 있도록 하므로 추출된 실행 파일에 대해 다양한 파일 분석 기법을 미리 적용하여 바이러스, 웜, 및 트로이 목마를 조기에 추출할 수 있도록 한다.
본 발명은 고속의 대용량 네트워크 환경에서 윈도우 실행파일들을 추출한다.
본 발명은 다량의 네트워크 패킷들 중에서 윈도우 실행파일과 관련된 패킷만을 선별하여 윈도우 실행파일을 추출한다.
본 발명은 고속의 네트워크 장비나 호스트의 성능에 거의 영향을 미치지 않고도 호스트로 전송되는 패킷에서 윈도우 실행파일을 추출할 수 있다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다.
도 1은 윈도우 실행파일의 구조에 대한 개념도를 나타낸다.
본 발명에서 언급하는 윈도우 실행파일(이하, PE(Portable Executable) 파일이라 한다)은 DOS 헤더 측 2 바이트 문자열인 MZ(0X4D5A)로부터 시작한다. 그리고, PE 파일 offset이 60인 지점부터 4 바이트는 PE 파일의 PE 헤더 시작점에 대한 offset 값을 갖는다. 즉, 도에서와 같이 해당 offset 값이 X라면, PE 파일의 offset이 X인 지점부터 PE 헤더가 시작되며, 그 첫 4 바이트는 PE00(0x50450000)인 문자열로부터 시작한다. 이와 같은 PE 파일 구조의 특성은 실행 가능한 윈도우 파일이라면 모두 동일하다.
도 2 ∼ 도 5는 패킷의 유형에 따라 PE 파일을 추출하는 방식을 설명하기 위 해 참조되는 도면이다.
먼저, 도 2는 하나의 패킷 페이로드 내에 모든 PE 파일의 특성이 나타나는 경우를 나타낸다.
type1, type2, type3, type4에 해당하는 패킷은 모두 패킷에서 MZ 문자열이 나타난 후, PE 파일의 offset이 X인 지점에 PE00 문자열이 나타나는 경우를 나타낸다. 여기서, type1에 해당하는 패킷은 PE00 문자열을 모두 포함하는 경우를 나타내고, type2는 패킷 페이로드의 마지막 바이트가 P인 경우(이하, Last P)를 나타내고, type3은 마지막 2 바이트가 PE인 경우(이하, Last PE)를 나타내며, type4는 마지막 3 바이트가 PE0인 경우(이하, Last PE0)를 나타낸다. type1 ∼ type4를 통해 도시된 패킷의 유형에서 하나의 패킷 페이로드 내에 모든 PE 파일의 특성이 나타나는 경우(이하, MZ-PE00 패턴)는 해당 세션의 모든 패킷들을 수집함으로써 PE 파일을 추출한다.
다음으로, 도 3과 도 4는 두 개의 패킷에 걸쳐서 PE 파일의 특성이 패킷 페이로드 내에 나타나는 경우를 도시한다.
먼저, 도 3은 첫 번째 패킷(유입 페이로드 패킷1)의 페이로드 내에 MZ 문자열이 나타나고, 두 번째 패킷(유입 페이로드 패킷2)의 페이로드 내에 PE00 문자열이 나타나는 경우를 나타낸다. 여기서, 두 번째 패킷의 페이로드 내에서 PE00 문자열이 나타나는 패킷의 형태는, 도 2의 type1과 같이 PE00 문자열이 모두 포함된 경우와 각각 type2, type3, type4에 해당하는 Last P, Last PE, 및 Last PE0의 형태로 나타날 수 있다(이하, Last P, Last PE, 및 Last PE0의 형태를 PE00 패턴이라 한다).
도 4는 첫 번째 패킷(유입 페이로드 패킷1)의 페이로드에서 마지막 바이트가 M(이하, Last M)이고, 두 번째 패킷(유입 페이로드 패킷2)의 페이로드에서 Z 문자와 PE00 패턴이 나타나는 경우를 나타낸다.
도 4에 도시된 MZ 문자열은 도 3을 통해 설명된 PE00 문자열과 마찬가지로, 여러 패킷에 나뉘어 배치될 수 있다. 만일 두 개의 패킷(유입 페이로드 패킷1, 유입 페이로드 패킷2)에 MZ 문자열이 나뉘어 배치될 경우, 나눠지는 지점에 따라 MZ 문자열이 모두 포함된 경우와 Last M의 형태로 나타날 수 있다. PE 패킷을 조합할 때, 패킷의 조합 순서는 MZ 문자열이 어느 패킷에서 어떤 순서로 배치되는가에 따라 결정된다. 어떤 네트워크 장치(또는 호스트)가 패킷에서 MZ 문자열을 찾기 위해서는 네트워크 장치 스스로가 MZ 문자열을 갖고있어야 하며, 본 발명에서는 이를 MZ 패턴이라 한다.
만일, 첫 번째 패킷에서 MZ 패턴이 나타나고, 두 번째 패킷에서 PE00 패턴이 나타날 경우, 첫 번째 패킷의 세션에 해당하며, 첫 번째 패킷 이후로 유입되는 패킷을 수집함으로써 PE 파일을 추출할 수 있다.
도 5는 여러 패킷에 걸쳐서 PE 파일의 특성이 패킷 페이로드 내에 나타나는 경우를 나타낸다. 도 5는 첫 번째 패킷의 페이로드 내에 MZ 패턴이 나타나고, 이후 여러 패킷이 유입된 이후에 PE00 패턴을 가진 패킷이 유입되는 경우를 나타낸다. 이와 같은 경우에는 MZ 패턴이 나타난 이후 PE00 패턴이 나타날 때까지의 페이로드 크기가 1000이 넘지 않는 경우, 해당 세션의 모든 패킷들을 수집함으로써 PE 파일을 추출할 수 있다.
이는 대부분 PE 파일들의 PE 헤더를 가리키는 옵셋이 1000을 넘지 않는데 기인한다. 또한, 옵셋이 1000을 넘지 않는 특징을 이용하면, 불필요한 패킷 수집을 최대한 줄일 수 있다. 도 5에서 CPS(Captured Packet Size) 값 X는 MZ 패턴이 나타난 패킷의 MZ 패턴 이후의 페이로드 크기를 나타내며, CPS 값 Y는 MZ 패턴이 나타난 이후에 유입된 패킷들의 페이로드 크기를 나타낸다. 즉, PE00 패턴이 나타나는 패킷이 유입되기 이전의 페이로드 크기들을 합산 후 합산된 페이로드 크기가 해당 CPS 임계치(예컨대 1000)를 넘지 않는다면, 이전의 패킷들은 PE 파일이 속한 세션의 패킷으로 판단할 수 있다.
도 6은 네트워크로부터 유입되는 패킷에서 PE 파일들을 추출하기 위한 윈도우 실행파일 추출장치의 블록개념도를 나타낸다.
도시된 윈도우 실행파일 추출장치는 세션 매칭모듈(50), 패턴 매칭모듈(60), 및 PE 처리모듈(70)을 구비한다.
세션 매칭모듈(50)은 MZ 패턴을 구비하는 패킷을 기준패킷으로 설정하고, 기준패킷의 세션에 따라 페이로드를 갖는 입력 패킷을 수집한다. 세션 매칭모듈(50)은 기준패킷의 5-tuple 정보를 토대로 세션 매칭을 수행한다. 5-tuple 정보는 세션 매칭모듈(50)로 유입되는 패킷의 근원지 주소, 목적지 주소, 근원지 포트, 목적지 포트, 및 프로토콜에 대한 정보를 의미한다. 만일, 기준 패킷과 동일한 5-tuple 정보를 구비하지 않는 패킷이 유입될 경우, 세션 매칭모듈(50)은 해당 패킷을 패턴 매칭모듈(60)로 전달한다.
패턴 매칭모듈(60)은 세션 매칭모듈(50)에서 제공되는 패킷에 대해 PE 파일 특성인 MZ 패턴과 PE00 패턴, 및 MZ-PE00 패턴을 검색, 및 비교한다.
상기한 패턴이 검색된 패킷의 5-tuple 정보는 세션 테이블에 등록되며, 세션 테이블에 등록된 패킷은 PE 처리모듈(70)로 전달된다. 여기서, 세션 테이블에 등록되는 세션 정보는 1차 해쉬 값에 따라서 저장될 메모리 주소(X)가 결정되며, 해당 세션 테이블에는 등록된 패킷의 세션 정보에 대한 2차 해쉬 값, 및 MZ 세션의 존재 여부, 및 CPS 정보 값이 저장된다. 여기서, 1차 해쉬 값, 및 2차 해쉬 값은 해쉬 충돌이 적은 적절한 해쉬 함수에 의해 해쉬값이 정해지며, 2차 해쉬 값은 1차 해쉬 값과 충돌이 발생할 경우, 2차 해쉬 값에 대해 복사된 세션 테이블을 이용하여 해쉬 충돌을 최소화한다. 해쉬 값을 이용한 세션 매칭은 고속의 세션 매칭을 가능케 하는 장점을 갖는다. 여기서, 도 6에 도시된 비트(M_bit)는 MZ 세션 존재 여부를 나타내는 비트로서, 유입되는 패킷에서 MZ 패턴이 나타난 후, PE00 패턴이 나타나지 않는 경우를 나타내는 정보 비트에 해당한다.
도 7은 세션 매칭모듈을 통해 패킷을 수집하는 방법에 대한 흐름도를 나타낸다.
먼저, 세션 매칭모듈(50)은 유입된 패킷이 페이로드를 갖는 패킷인지를 판단한다(S101). 판단결과 유입된 패킷이 페이로드를 갖지 않는 패킷일 경우 세션 매칭모듈(50)은 유입된 패킷을 그대로 통과시키고(S102), 반대의 경우 세션 매칭을 수행한다. 다음으로 세션 매칭모듈(50)은 페이로드를 갖는 패킷이 세션 테이블에 등록된 세션에 해당하는 패킷인지를 판단한다(S103). 세션 매칭모듈(50)은 유입된 패킷의 5-tuple 정보를 세션 테이블에 등록된 5-tuple 정보와 비교하여 동일 여부를 판단한다.
다음으로, 세션 매칭모듈(50)은 유입된 패킷의 5-tuple 정보가 세션 테이블에 등록된 세션 정보(등록된 패킷의 5-tuple 정보)와 매칭되지 않을 때, 유입된 패킷이 MZ 세션(MZ 패턴 매칭에 의해서 등록된 세션으로써, MZ 정보 비트가 1인 경우의 세션)에 해당하는지를 판단한다(S104). 유입된 패킷의 세션이 MZ 세션도 아닐 경우(MZ 패턴 매칭 후, PE00 패턴이 나타난 세션 또는 MZ-PE00 패턴에 의해서 생성된 세션으로써, MZ 정보 비트가 0인 경우의 세션. 이하, 완성 세션이라 한다.) 세션 매칭모듈(50)은 해당 패킷을 PE 파일 조합을 위해서 PE 처리모듈(70)로 전달하며, 유입된 패킷이 MZ 세션에 해당할 경우 해당 패킷을 패턴 매칭모듈(60)로 전달한다.
다음으로, 패턴 매칭모듈(60)은 세션 테이블에 미 등록된 세션의 패킷, 또는 MZ 세션에 해당하지 않는 패킷에 대해 패턴 매칭을 수행한다(S107). 패턴 매칭 결과, 유입된 패킷이 속한 기존 MZ 세션이 PE 파일의 조합과 연관성이 있는가에 따라 해당 MZ 세션을 삭제할 것인지를 판단한다(S108). 만일, PE 파일 조합에 대해 기존의 MZ 세션이 무의미할 경우, 세션 매칭모듈(50)은 기존의 MZ 세션을 삭제한다(S109). 세션 매칭모듈(50)은 PE 파일 조합과 연관성이 없는 기존의 MZ 세션을 삭제 후, PE 처리모듈(70)로 삭제 여부를 통보한다(S117). 세션 매칭모듈(50)은 PE 파일 조합과 연관성이 없는 MZ 세션 정보를 삭제함으로써 불필요한 세션 조합을 회피할 수 있다.
만일 MZ 세션에 대한 삭제가 불필요하고, 유입된 패킷이 세션 테이블의 MZ-PE00 패턴과 매칭 되었다면(S110), 세션 매칭모듈(50)은 매칭된 패킷의 세션 정보에 대해 완성 세션(MZ 정보 비트 및 CPS 정보 값이 0인 세션)을 추가한다(S113). 만약, 매칭된 패킷이 속한 기존의 MZ 세션이 존재한다면, 완성 세션 형태로 해당 세션 정보를 갱신한다(S111).
유입된 패킷의 패턴이 매칭되지 않고, MZ 패턴이 매칭 되었다면(S112), 세션 매칭모듈(50)은 해당 패킷의 세션 정보에 대한 MZ 세션(MZ 정보 비트 값이 1이고, MZ 패턴 이후의 페이로드 크기로 CPS 정보 값이 설정된 세션)을 추가하며, 만일 해당 패킷이 속한 기존의 MZ 세션이 존재한다면, 새로운 MZ 세션이 시작되는 것으로 판단하기 때문에 CPS 정보 값을 새로이 갱신한다(S113).
다음으로, 상기의 패턴들이 매칭되지 않고, PE00 패턴이 매칭 되었다면(S114), 세션 매칭모듈(50)은 해당 패킷이 속한 기존의 MZ 세션을 완성 세션 형태로 갱신한다(S115). 만약, 상기의 모든 패턴들에 매칭되지 않고, 해당 패킷이 속한 기존의 MZ 세션이 존재한다면(S118), 세션 매칭모듈(50)은 해당 MZ 세션의 CPS 값과 해당 패킷의 페이로드 크기를 합한 새로운 CPS 값을 최대 허용 CPS 값(1000)과 비교하고(S120), 이에 대한 비교 결과가 새로운 CPS 값을 허용한다면, 기존 MZ 세션의 CPS 값을 새로운 CPS 값으로 갱신 후(S106), 해당 패킷을 PE 처리모듈(70)로 전달한다. 이와 달리, 새로운 CPS 값이 허용되지 않는다면, 해당 MZ 세션을 삭제하고, 세션 테이블에서의 삭제 정보를 PE 처리모듈(70)로 전달한다. 반대로, 모든 패턴들에 매칭되지 않고, 해당 패킷이 속한 기존의 MZ 세션이 존재하지 않을 경우, 해당 패킷은 통과된다(S119).
도 8은 도 6의 패턴 매칭모듈(60)의 동작 흐름도를 나타낸다.
먼저, 패턴 매칭모듈(60)은 세션 매칭모듈(50)으로부터 제공되는 유입 패킷의 페이로드 내에 MZ-PE00 패턴이 검출될 경우(S201), 해당 패킷을 PE 처리모듈(70)로 전달하고(S202), 이에 대한 매칭 정보(완전 세션 등록을 위한 정보)를 세션 매칭모듈(50)으로 제공한다. 그렇지 않고, Last M이 매칭된 경우(S203)에도 해당 패킷은 PE 처리모듈(70)로 전달하고, 매칭 정보(MZ 세션 등록을 위한 정보)를 세션 매칭모듈(50)로 전달한다.
세션 매칭모듈(50)로부터 제공된 패킷이 MZ-PE00 패턴이나 Last M에 매칭되지 않고, MZ에 매칭된 경우(S204)에는 해당 페이로드 내에 PE 파일의 PE 헤더 offset 값(PE 파일의 시작점에서 60 ∼ 63바이트 값)이 1000 이하인지를 판단하고(S205) 판단결과 PE 헤더의 offset값이 1000 이상이면 MZ 세션 매칭 패킷인지를 판단하고(S209), PE 헤더의 offset값이 1000 이하이면, MZ 매칭 이후의 페이로드 크기인 CPS 값이 모두 허용 임계치(1000) 이하인지를 판단한다(S206). 판단결과 CPS 허용값이 허용 임계치(1000) 이하인 경우, 세션 매칭모듈(50)로부터 제공된 패킷을 PE 처리모듈(70)로 전달하고(S207), 패킷에 대한 매칭 정보(MZ 세션 등록을 위한 정보)를 세션 매칭모듈(50)으로 되돌려 준다. 여기서, PE 파일의 PE 헤더 offset 값에 대한 비교는 해당 값이 MZ 매칭 이후의 페이로드 내에 존재할 경우에만 적용한다. 만약, 둘 중의 하나라도 허용치를 넘고, 해당 패킷에 대한 세션 매칭 결과가 MZ 세션에 매칭된 경우의 패킷이라면, 해당 패킷이 속한 기존 MZ 세션에 대한 삭제 요청을 세션 매칭모듈(50)으로 전달한다(S208).
한편, S204 단계에서, 세션 매칭모듈(50)에서 전달된 패킷이 MZ-PE00 패턴 및 MZ 패턴에 모두 매칭되지 않고, 세션 매칭 결과가 MZ 세션에 속한 패킷이라면(S211), 이에 대한 PE00 패턴 매칭 여부를 검사한다. 이때, 패킷이 MZ 세션에도 속하지 않는다면, 패턴 매칭모듈(60)은 해당 패킷을 통과시킨다(S212).
먼저, 패턴 매칭모듈(60)은 PE00 패턴 매칭은 LAST P에 대한 매칭을 수행하여고, 패킷이 LAST P 매칭에 해당하는지를 판단하고(S214), LASP P에 해당하지 않을 경우, LAST PE에 해당하는지를 판단하며(S215) LAST PE에도 해당하지 않을 경우, LAST PE0에 해당하는지를 판단한다(S216). 판단결과, 패킷이 PE00 패턴 중 하나라도 매칭이 된다면 해당 패킷은 PE 처리모듈(70)로 전달되고(S217), 이에 대한 매칭 정보(기존 MZ 세션을 완전 세션으로 갱신하기 위한 정보)를 세션 매칭모듈(50)로 제공한다. 그렇지 않다면, 해당 패킷의 매칭 정보(기존 MZ 세션 갱신을 위한 정보)로써 CPS 값을 측정하여 세션 매칭모듈(50)로 제공한다.
도 7, 및 도 8과 같은 하드웨어 기반의 세션 매칭모듈(50) 및 패턴 매칭모듈(60)의 유기적인 동작을 통해, 고속의 대용량 네트워크 환경에서 여러 패킷들로 나뉘어 전달되는 PE 파일들을 추출할 수 있다.
도 9, 도 10, 도 11은 전술한 동작 원리에 따라, PE 파일이 실제 네트워크 의 패킷들로 유입될 때의 세션 매칭 및 패턴 매칭이 수행되는 방식을 실제 예시로 나타낸다. 여기서, 각 예시의 시작은 현재 등록된 세션이 없는 상태에서의 패킷 유입을 기본으로 하며, A는 현재 유입되는 패킷의 세션 정보, A'은 해당 세션 정보 의 1차 해쉬 값, A''은 해당 세션의 2차 해쉬 값을 나타낸다. 즉, A'은 해당 세션 정보가 저장되어 있는 세션 테이블의 메모리 주소를 나타낸다.
우선, 도 9는 MZ-PE00 패턴을 갖는 패킷(이하, 패킷 1)이 유입된 후, 해당 패킷이 속한 세션 상으로 PE 파일의 특성과 관련 없는 또 다른 패킷(이하, 패킷 2)이 유입되는 경우를 나타낸다. 먼저, 패킷 1의 경우에는 세션 매칭이 발생하지 않고, 패턴 매칭 결과에서 MZ-PE00 패턴이 검색되므로, 패킷 1의 세션 정보는 MZ 정보 비트가 0인 완성 세션으로 세션 테이블에 등록된다. 그리고, 패킷 1은 PE 처리모듈(70)로 전달된다. 다음으로, 패킷 2가 유입되면, 패킷 2의 세션 정보는 패킷 1에 의해서 등록된 세션 테이블의 완성 세션에 매칭된다. 여기에서, 해당 세션의 MZ 정보 비트가 0이므로, 패턴 매칭은 더 이상 필요치 않고, 패킷 2도 PE 처리모듈(70)로 전달된다. 즉, 패턴 매칭을 통해서, 세션 테이블에 완성 세션이 등록되면, 해당 세션에 속한 패킷은 모두 PE 처리모듈(70)로 전달된다. 이와 같은 완성 세션의 삭제는 PE 처리모듈(70)에 의해서, PE 파일 조합이 완성되거나 해당 패킷들의 조합 결과 PE 파일이 아닌 것으로 판정되는 경우에 삭제된다.
다음으로, 도 10과 도 11은 MZ 패턴을 갖는 패킷(이하, 패킷 3)이 유입된 후, 해당 패킷이 속한 세션 상으로 PE00 패턴을 갖는 패킷(이하, 패킷 4)이 유입되는 경우를 나타낸다. 먼저, 패킷 3의 경우에는 세션 매칭이 발생하지 않고, 패턴 매칭 결과에서 MZ 패턴이 검색되므로, 패킷 3의 세션 정보는 MZ 정보 비트가 1이고, CPS 값이 X(X<1000)인 MZ 세션으로 세션 테이블에 등록된다(여기에서, MZ 패턴 매칭 결과가 Last M 매칭이나, 마지막 2바이트의 MZ 매칭에 의해서 세션이 등록된 것이라면, X는 0이 된다). 그리고, 패킷 3은 PE 처리모듈(70)로 전달된다. 다음으로, 패킷 4가 유입되면, 패킷 4의 세션 정보는 패킷 3에 의해서 등록된 세션 테이블의 MZ 세션에 매칭된다. 이와 같은 MZ 세션 매칭은 패킷 4에 대한 패턴 매칭을 요구하며, 패턴 매칭 결과로써 PE00 패턴이 검색된다. 이에 따라 세션 테이블에 등록되어 있는 기존의 MZ 세션 정보는 MZ 정보 비트가 0인 완성 세션으로 갱신되며, 패킷 4도 PE 처리모듈(70)로 전달된다. 이와 같은 방식으로 세션 테이블에 완성 세션이 등록되는 경우에도, 이후, 해당 세션에 속한 패킷은 모두 PE 처리모듈(70)로 전달된다.
마지막으로, 도 12와 도 13은 MZ 패턴을 갖는 패킷(이하, 패킷 5)이 유입된 후, 해당 패킷이 속한 세션 상으로 PE 파일의 특성과 관련 없는 또 다른 패킷(이하, 패킷 6)이 유입되는 경우를 나타낸다. 먼저, 패킷 5의 경우에는 도 10의 패킷 3과 동일한 방식으로 수행된다. 다음으로 패킷 6이 유입되면, 패킷 6의 세션 정보는 패킷 5에 의해서 등록된 세션 테이블의 MZ 세션에 매칭된다. 이와 같은 MZ 세션 매칭은 패킷 6에 대한 패턴 매칭을 요구하며, 패턴 매칭 결과로써 PE 파일 특성을 갖는 패턴이 검색되지 않기 때문에, 패킷 6의 페이로드 크기인 CPS 값 Y가 생성된다. 여기에서, 생성된 CPS 값 Y와 기존의 MZ 세션 정보에 속한 CPS 값 X와의 합 Z가 허용치인 1000이하라면, 세션 테이블에 등록되어 있는 기존의 MZ 세션 정보의 CPS 값이 Z로 갱신되며, 패킷 6도 PE 처리모듈(70)로 전달된다. 만약, CPS 값의 합인 Z가 1000보다 크다면, 세션 테이블에 등록되어 있는 기존의 MZ 세션 정보는 모두 0으로 초기화 되고, PE 처리모듈(70)로 삭제된 세션 정보를 전달된다. 이와 같 은 방식은 하드웨어 자체 동작으로 PE 파일 여부를 판단하고 처리함으로써, PE 파일을 조합하는 소프트웨어로의 부하를 최소화할 수 있다.
도 1은 윈도우 실행파일의 구조에 대한 개념도를 나타낸다.
도 2 ∼ 도 5는 패킷의 유형에 따라 PE 파일을 추출하는 방식을 설명하기 위해 참조되는 도면이다.
도 6은 네트워크로부터 유입되는 패킷에서 PE 파일들을 추출하기 위한 윈도우 실행파일 추출장치의 블록개념도
도 7은 세션 매칭모듈을 통해 패킷을 수집하는 방법에 대한 흐름도를 나타낸다.
도 8은 도 6의 패턴 매칭모듈의 동작 흐름도를 나타낸다.
도 9는 MZ-PE00 패턴을 갖는 패킷이 유입된 후, 해당 패킷이 속한 세션 상으로 PE 파일의 특성과 관련 없는 또 다른 패킷이 유입되는 경우를 설명하는 도면,
도 10과 도 11은 MZ 패턴을 갖는 패킷이 유입된 후, 해당 패킷이 속한 세션 상으로 PE00 패턴을 갖는 패킷이 유입되는 경우를 나타내는 도면, 그리고
도 12와 도 13은 MZ 패턴을 갖는 패킷이 유입된 후, 해당 패킷이 속한 세션 상으로 PE 파일의 특성과 관련 없는 또 다른 패킷이 유입되는 경우를 설명하기 위한 도면을 나타낸다.

Claims (10)

  1. MZ 패턴을 구비하는 기준패킷의 세션에 따라 페이로드를 갖는 입력 패킷을 수집하는 단계;
    상기 수집된 입력 패킷에 대한 PE 패턴 매칭을 수행하는 단계; 및
    상기 PE 패턴 매칭을 만족하는 적어도 하나의 상기 입력 패킷을 토대로 PE 파일을 형성하는 단계;를 포함하는 윈도우 실행파일 추출방법.
  2. 제1항에 있어서,
    상기 기준 패킷은,
    적어도 하나의 이웃하는 패킷을 조합하여 형성되는 것을 특징으로 하는 윈도우 실행파일 추출방법.
  3. 제1항에 있어서,
    상기 PE 파일을 형성하는 단계는,
    상기 MZ 패턴과 상기 PE 패턴 사이의 페이로드가 미리 설정한 기준치 이내일 때, 상기 페이로드 내에 포함되는 입력 패킷을 조합하여 상기 PE 파일을 형성하는 것을 특징으로 하는 윈도우 실행파일 추출방법.
  4. 제1항에 있어서,
    상기 입력 패킷을 수집하는 단계는,
    상기 기준패킷의 5-tuple 정보와 상기 적어도 하나의 입력 패킷의 5-tuple 정보를 비교하여 적어도 하나의 매칭 되는 입력 패킷을 수집하는 단계인 것을 특징으로 하는 윈도우 실행파일 추출방법.
  5. 제4항에 있어서,
    상기 입력 패킷을 수집하는 단계는,
    상기 기준 패킷의 5-tuple 정보와 매칭하지 않는 입력 패킷의 페이로드가 존재하지 않을 경우, 상기 페이로드가 존재하지 않는 입력 패킷을 삭제하는 것을 특징을 하는 윈도우 실행파일 추출방법.
  6. MZ 패턴을 구비하는 기준 패킷의 세션을 기준으로 상기 기준 패킷의 세션과 동일 세션의 입력 패킷을 수집하는 세션 매칭모듈;
    상기 수집된 입력 패킷에 대한 PE 패턴 매칭을 수행하는 패턴 매칭모듈; 및
    상기 PE 패턴 매칭을 만족하는 적어도 하나의 입력 패킷을 조합하여 PE 파일을 형성하는 PE 처리모듈;을 포함하는 것을 특징으로 하는 윈도우 실행파일 추출장치.
  7. 제6항에 있어서,
    상기 기준 패킷은,
    적어도 하나의 이웃하는 패킷을 조합하여 형성되는 것을 특징으로 하는 윈도우 실행파일 추출장치.
  8. 제6항에 있어서,
    상기 PE 처리모듈은,
    상기 MZ 패턴과 상기 PE 패턴 사이의 페이로드가 미리 설정한 기준치 이내일 때, 상기 페이로드 내에 포함되는 입력 패킷을 조합하여 상기 PE 파일을 형성하는 것을 특징으로 하는 윈도우 실행파일 추출장치.
  9. 제6항에 있어서,
    상기 세션 매칭모듈은,
    상기 기준패킷의 5-tuple 정보와 상기 적어도 하나의 입력 패킷의 5-tuple 정보를 비교하여 적어도 하나의 매칭 되는 입력 패킷을 수집하는 것을 특징으로 하는 윈도우 실행파일 추출장치.
  10. 제9항에 있어서,
    상기 세션 매칭모듈은,
    상기 기준 패킷의 5-tuple 정보와 매칭하지 않는 입력 패킷의 페이로드가 존재하지 않을 경우, 상기 페이로드가 존재하지 않는 입력 패킷을 삭제하는 것을 특징을 하는 윈도우 실행파일 추출장치.
KR1020080125415A 2008-12-10 2008-12-10 윈도우 실행파일 추출방법, 및 장치 KR101404108B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080125415A KR101404108B1 (ko) 2008-12-10 2008-12-10 윈도우 실행파일 추출방법, 및 장치
US12/503,288 US8230503B2 (en) 2008-12-10 2009-08-17 Method of extracting windows executable file using hardware based on session matching and pattern matching and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080125415A KR101404108B1 (ko) 2008-12-10 2008-12-10 윈도우 실행파일 추출방법, 및 장치

Publications (2)

Publication Number Publication Date
KR20100066908A true KR20100066908A (ko) 2010-06-18
KR101404108B1 KR101404108B1 (ko) 2014-06-10

Family

ID=42232587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080125415A KR101404108B1 (ko) 2008-12-10 2008-12-10 윈도우 실행파일 추출방법, 및 장치

Country Status (2)

Country Link
US (1) US8230503B2 (ko)
KR (1) KR101404108B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130039175A (ko) * 2011-10-11 2013-04-19 한국전자통신연구원 내부자 위협 탐지 장치 및 방법
US8839374B1 (en) * 2011-12-15 2014-09-16 Symantec Corporation Systems and methods for identifying security risks in downloads
CN102855119B (zh) * 2012-07-26 2014-10-22 北京奇虎科技有限公司 一种可执行文件处理方法和装置
US9497281B2 (en) * 2013-04-06 2016-11-15 Citrix Systems, Inc. Systems and methods to cache packet steering decisions for a cluster of load balancers
KR102059688B1 (ko) * 2015-01-13 2019-12-27 한국전자통신연구원 사이버 블랙박스 시스템 및 그 방법
CN104700000B (zh) * 2015-03-05 2017-12-08 中国科学技术大学苏州研究院 一种基于pe文件的隐蔽信道的检测和限制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100620313B1 (ko) 2005-06-15 2006-09-06 (주)이월리서치 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법
US20090013405A1 (en) * 2007-07-06 2009-01-08 Messagelabs Limited Heuristic detection of malicious code
US8856926B2 (en) * 2008-06-27 2014-10-07 Juniper Networks, Inc. Dynamic policy provisioning within network security devices

Also Published As

Publication number Publication date
KR101404108B1 (ko) 2014-06-10
US8230503B2 (en) 2012-07-24
US20100146621A1 (en) 2010-06-10

Similar Documents

Publication Publication Date Title
RU2488880C1 (ru) Система и способ адаптивной оптимизации проверки потока данных, передающихся по сети, на наличие угроз
US7873998B1 (en) Rapidly propagating threat detection
RU2680736C1 (ru) Сервер и способ для определения вредоносных файлов в сетевом трафике
US11290484B2 (en) Bot characteristic detection method and apparatus
RU2606564C1 (ru) Система и способ блокировки выполнения сценариев
Shabtai et al. F-sign: Automatic, function-based signature generation for malware
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
Kaur et al. Automatic attack signature generation systems: A review
CA2545916A1 (en) Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data
Aoki et al. Controlling malware http communications in dynamic analysis system using search engine
KR101404108B1 (ko) 윈도우 실행파일 추출방법, 및 장치
US20140344931A1 (en) Systems and methods for extracting cryptographic keys from malware
CN110493253B (zh) 一种基于树莓派设计的家用路由器的僵尸网络分析方法
Boulaiche et al. An auto-learning approach for network intrusion detection
US20050086512A1 (en) Worm blocking system and method using hardware-based pattern matching
Osorio et al. Segmented sandboxing-a novel approach to malware polymorphism detection
JP6592196B2 (ja) 悪性イベント検出装置、悪性イベント検出方法および悪性イベント検出プログラム
KR20070077517A (ko) 프로파일 기반 웹 애플리케이션 침입탐지시스템 및 그 방법
Lu et al. A comprehensive detection approach of wannacry: principles, rules and experiments
Chiba et al. Botprofiler: Profiling variability of substrings in http requests to detect malware-infected hosts
Paul et al. Survey of polymorphic worm signatures
Sun et al. Rscam: Cloud-based anti-malware via reversible sketch
Nagai et al. A malicious web site identification technique using web structure clustering
Hsu et al. Scalable network-based buffer overflow attack detection
Yan CAS: A framework of online detecting advance malware families for cloud-based security

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190529

Year of fee payment: 6