KR100945247B1 - 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치 - Google Patents

가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치 Download PDF

Info

Publication number
KR100945247B1
KR100945247B1 KR1020070100009A KR20070100009A KR100945247B1 KR 100945247 B1 KR100945247 B1 KR 100945247B1 KR 1020070100009 A KR1020070100009 A KR 1020070100009A KR 20070100009 A KR20070100009 A KR 20070100009A KR 100945247 B1 KR100945247 B1 KR 100945247B1
Authority
KR
South Korea
Prior art keywords
register value
target program
malicious code
log information
analyzing
Prior art date
Application number
KR1020070100009A
Other languages
English (en)
Other versions
KR20090034648A (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 KR1020070100009A priority Critical patent/KR100945247B1/ko
Priority to US12/056,434 priority patent/US20090094585A1/en
Priority to JP2008133364A priority patent/JP4732484B2/ja
Publication of KR20090034648A publication Critical patent/KR20090034648A/ko
Application granted granted Critical
Publication of KR100945247B1 publication Critical patent/KR100945247B1/ko

Links

Images

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 악성 코드 분석 방법 및 장치에 관한 것으로, 특히 가상 환경에서 취약점이 내포된 대상 프로그램을 이용하여 비실행 파일에 포함된 악성 코드를 안전하게 분석하기 위한 방법 및 장치를 제공한다.
이를 위하여 본 발명의 일실시 예에 따른 악성 코드 분석 방법은, 가상 환경에서 실행되며 취약점이 내포된 대상 프로그램에 의해 악성 코드의 분석을 원하는 비실행 파일을 로드(load)하는 단계; 상기 대상 프로그램의 레지스터(register) 값을 분석하고, 상기 레지스터 값이 노멀 코드(normal code) 영역 내를 가리키는지 판단하는 단계; 상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그(log) 정보를 저장하는 단계; 및 상기 저장된 로그 정보를 기반으로 상기 비실행 파일에 포함된 악성 코드를 추출 및 분석하는 단계를 포함함으로써, 가상 환경에서 악성 코드를 분석하여 악성 코드의 실행으로 인하여 발생할 피해를 방지할 수 있는 이점이 있다.
가상 환경, 악성 코드, 비실행 파일, 로그

Description

가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법 및 장치{THE METHOD AND APPARATUS FOR ANALYZING EXPLOIT CODE IN NON-EXECUTABLE FILE USING VIRTUAL ENVIRONMENT}
본 발명은 악성 코드 분석 방법 및 장치에 관한 것으로, 특히 가상 환경을 이용하여 악성 코드를 분석하기 위한 방법 및 장치에 관한 것이다.
최근 정보 보호의 위협은 악성 코드(exploit code, malicious code)에 집중되고 있으며, 이러한 악성 코드는 비밀성, 무결성, 가용성 등으로 집약되는 정보 보호의 목적에 반하여 전반적인 문제를 일으키고 있다.
악성 코드의 이론적 정의는 다른 컴퓨터에 피해를 주기 위하여 제작된 모든 프로그램 및 실행 가능한 부분이며, 실질적 정의는 다른 사람에게 심리적, 실질적으로 피해를 주기 위하여 제작된 프로그램 및 실행 가능한 부분을 말한다.
이러한 악성 코드를 분석하기 위한 방법으로 크게 알려진 악성 코드에 대한 분석 방법과 알려지지 않은 악성 코드에 대한 분석 방법이 있다.
알려진 악성 코드 분석 방법에는, 지문(signature) 검사법, CRC(Cyclic Redundancy Check) 검사법 및 경험적(heuristic) 검사법이 있다.
지문 검사법은, 사람을 구별할 때 지문을 보듯이 백신 프로그램이 바이러스를 진단하는 방법 중의 한 가지로 악성 코드가 가지고 있는 독특한 문자열을 통하여 악성 코드를 분석하는 방법이다. 이러한 지문 검사법에는 순차적 문자열 검사법과 특정 문자열 검사법이 있는데, 순차적 문자열 검사법은 속도는 빠르지만 악성 코드 탐지율이 떨어지는 단점이 있고, 특정 문자열 검사법은 악성 코드 탐지율은 높으나 속도가 느리다는 단점이 있다.
CRC 검사법은, 시리얼 전송에서 데이터의 신뢰성을 검증하기 위한 에러 검출 방법의 일종으로 오진율이 낮다는 장점이 있으나, 데이터가 1 바이트라도 변형되면 악성 코드를 진단할 수 없는 단점이 있다.
경험적 기법은, 지문 검사법을 보완한 것으로 보통의 프로그램에서 발견할 수 없는 특별한 명령이나 동작 상태를 찾는 방법이다. 이러한 경험적 기법은 시스템의 구현이 매우 어려운 단점이 있다.
한편, 알려지지 않은 악성 코드 분석 방법에는 행위 탐지 방법론과 면역 시스템이 있다.
행위 탐지 방법론은, 어떠한 실행 프로그램이 실제 실행될 때 해당 프로그램이 사용하는 시스템 호출을 후킹(hooking)하여 자체 탐지 엔진이 보유하고 있는 시스템 호출 데이터 베이스와 비교한 뒤 후킹 금지된 룰(rule)을 어기고 시스템 호출을 사용한다면 해당 프로그램을 악성 코드로 판단하는 것이다. 이러한 접근 방법은 정책 설정의 오류로 인하여 특정 시스템 호출에 대한 오탐지가 발생하여 정상 실행 코드를 악성 코드로 판단하는 문제가 발생할 염려가 있다.
면역 시스템은, 자연 면역 체계와 마찬가지로 컴퓨터 시스템을 보호하는 문제를 '자기 자신이 아닌 것'과 '자신인 것'을 구별하는 방법으로 해결하려는 방법이다. 그러나 이러한 면역 시스템은 오탐지 발생률이 높아 아직 상용화되지 못하고 있다.
따라서, 상기에서 설명한 바와 같은 종래 악성 코드 분석 방법의 단점을 극복하여, 안전하고 정확하게 악성 코드를 추출할 수 있는 방법이 요구된다.
따라서, 본 발명의 목적은, 가상 환경에서 취약점이 내포된 대상 프로그램을 이용하여 비실행 파일에 포함된 악성 코드를 안전하게 분석하기 위한 방법 및 장치를 제공하는 데 있다.
또한, 본 발명의 다른 목적은, 대상 프로그램을 지속적으로 모니터링하여 악성 코드가 수행되는 시점의 정보를 로그로 저장한 후 이를 분석함으로써 악성 코드를 분석하기 위한 장치 및 방법을 제공하는 데 있다.
또한, 본 발명의 다른 목적은, 하기의 설명 및 본 발명의 일실시 예에 의하여 파악될 수 있다.
이를 위하여 본 발명의 일실시 예에 따른 악성 코드 분석 방법은, (a) 가상 환경에서 실행되며 취약점이 내포된 대상 프로그램에 악성 코드의 분석을 원하는 비실행 파일을 로드(load)하는 단계; (b) 상기 대상 프로그램의 레지스터(register) 값을 분석하고, 상기 레지스터 값이 노멀 코드(normal code) 영역 내를 가리키는지 판단하는 단계; (c) 상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그(log) 정보를 저장하는 단계; 및 (d) 상기 저장된 로그 정보를 기반으로 상기 비실행 파일에 포함된 악성 코드를 추출 및 분석하는 단계를 포함한다.
또한, 이를 위하여 본 발명의 일실시 예에 따른 악성 코드 분석 장치는, 가상 환경에서 실행되는 취약점이 내포된 대상 프로그램에 악성 코드의 분석을 원하는 비실행 파일을 로드(load)한 후, 상기 대상 프로그램의 레지스터(register) 값을 지속적으로 외부로 출력하는 프로그램 실행부; 상기 프로그램 실행부로부터 출력되는 레지스터 값을 분석하여 상기 레지스터 값이 노멀 코드(normal code) 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그(log) 정보를 로그 정보 데이터 베이스에 저장하는 프로그램 실행 분석부; 및 상기 저장된 로그 정보를 기반으로 상기 비실행 파일에 포함된 악성 코드를 추출 및 분석하는 악성 코드 분석부를 포함한다.
상술한 바와 같이 본 발명은, 가상 환경에서 악성 코드를 분석함으로써 악성 코드의 실행으로 인하여 발생할 피해를 방지할 수 있는 이점이 있다.
또한, 본 발명은, 알려진 악성 코드뿐만 아니라 알려지지 않은 악성 코드를 추출 및 분석할 수 있는 이점이 있다.
이하, 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 또한, 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명을 생략한다.
도 1은 본 발명의 일실시 예에 따른 악성 코드 분석 장치의 블록 구성도이다. 이하, 도 1을 참조하여 본 발명의 일실시 예에 따른 악성 코드 분석 장치의 구성 및 동작에 대하여 상세히 설명한다.
도 1을 참조하면, 본 발명의 일실시 예에 따른 악성 코드 분석 장치는, 가상 환경에서, 악성 코드가 포함된 비실행 파일을 취약점이 내포된 대상 프로그램상에 로드(load)하고 상기 대상 프로그램을 실행시키기 위한 타겟 머신(target machine)(110)과 상기 타겟 머신으로부터 출력되는 정보를 이용하여 악성 코드를 추출 및 분석하기 위한 호스트 머신(host machine)(120)을 포함한다.
비실행 파일이란 자체적으로 실행되지 않는 데이터 파일을 의미하며, 악성 코드를 내포한 비실행 파일을 취약점이 내포된 프로그램에 로드시키면 상기 프로그램이 정상 흐름에서 벗어나는 경우 악성 코드가 실행된다.
악성 코드는 상기 프로그램의 취약점에 의하여 프로그램이 정상 흐름에서 벗어날 때 수행되며, 수행할 악의적인 역할이 많은 경우에는 비실행 파일에 미리 포함된 악성 코드 이미지를 실행시키게 된다. 악성 코드 이미지는 실행 파일이며, 악성 코드에 따라 삽입되거나 삽입되지 않을 수 있다.
본 발명의 일실시 예에 따른 타겟 머신(110)은, 대상 프로그램 데이터 베이스(112) 및 프로그램 실행부(114)를 포함한다.
본 발명의 일실시 예에 따른 대상 프로그램 데이터 베이스(112)는, 악성 코드 검사를 위하여 입력되는 비실행 파일을 실행시키기 위한 다양한 형식의 취약점 이 내포된 프로그램을 저장한다.
본 발명의 일실시 예에 따른 프로그램 실행부(114)는, 가상 환경에서 실행되는 취약점이 내포된 대상 프로그램에 외부로부터 입력되는 비실행 파일을 로드한다. 이 때, 프로그램 실행부(114)는, 대상 프로그램 데이터 베이스(112)를 검색하여 상기 비실행 파일의 형식을 기반으로 상기 비실행 파일을 실행시킬 수 있는 대상 프로그램을 선택할 수 있다.
또한, 본 발명의 일실시 예에 따른 프로그램 실행부(114)는, 상기 비실행 파일이 로드되어 실행되는 대상 프로그램의 레지스터 값을 프로그램 실행 분석부(122)로 출력한다.
본 발명의 일실시 예에 따른 호스트 머신(120)은, 프로그램 실행 분석부(122), 로그 정보 데이터 베이스(124) 및 악성 코드 분석부(126)를 포함한다.
본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 프로그램 실행부(114)로부터 출력되는 레지스터 값을 분석하여 상기 레지스터 값이 가상 메모리의 노멀 코드(normal code) 영역 이외의 영역을 가리키는지 판단한다. 상기 판단 결과 상기 레지스터 값이 노멀 코드 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그 정보를 로그 정보 데이터 베이스(124)에 저장한다. 예를 들어, x86 CPU의 경우 EIP(Extended Instruction Pointer)레지스터 값이 노멀 코드 영역 밖을 가리키는 순간에 상기 대상 프로그램의 동작에 관한 로그 정보를 저장한다. 상기 로그 정보를 위한 대상 프로그램의 동작 정보는 타겟 머신(110)의 O/S(Operating System)로부터 얻을 수도 있다.
즉, 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 대상 프로그램을 지속적으로 모니터링하여 대상 프로그램의 레지스터 값을 분석함으로써 비실행 파일에 포함된 악성 코드가 수행되는 시점을 로그 정보로 저장한다. 따라서, 본원 발명은, 상기와 같이 악성 코드가 수행되는 시점을 로그 정보로 저장함으로써, 알려진 악성 코드뿐만 아니라 알려지지 않은 악성 코드를 추출 및 분석할 수 있는 이점이 있다.
노멀 코드는 파일을 로드시키는 프로그램이 정상적으로 접근을 하는 코드 메모리 영역을 말한다. 한편, 상기 로그 정보는, 대상 프로그램의 레지스터 값 및 가상 메모리에 로드된 상기 비실행 파일의 내용을 포함한다.
이 때, 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 프로그램 실행부(114)로부터 지속적으로 출력되는 레지스터 값을 분석하여 레지스터 값이 노멀 코드 영역 이외의 영역을 가리키기 시작한 시점에 로그 정보를 저장하기 시작하고, 레지스터 값이 노멀 코드 영역 내를 가리키기 시작한 시점에 로그 정보의 저장을 종료할 수 있다.
본 발명의 일실시 예에 따른 로그 정보 데이터 베이스(124)는, 프로그램 실행 분석부(122)로부터 출력되는 로그 정보를 저장한다.
본 발명의 일실시 예에 따른 악성 코드 분석부(126)는, 로그 정보 데이터 베이스(124)에 저장된 로그 정보를 기반으로 비실행 파일에 포함된 악성 코드를 추출 및 분석한다. 이 때, 악성 코드 분석부(126)는, 추출된 악성 코드를 디스어셈블(disassemble)하여 악성 코드의 동작 메커니즘(mechanism)을 분석할 수 있다.
도 2는 본 발명의 일실시 예에 따른 악성 코드 분석 방법을 나타내는 흐름도이다. 이하, 도 2를 참조하여 본 발명의 일실시 예에 따른 악성 코드 분석 방법을 설명하되, 도 1을 참조하여 설명한 본 발명의 일실시 예에 따른 악성 코드 분석 장치의 설명과 중복되는 내용은 생략한다.
단계(201)에서 악성 코드 추출을 위한 비실행 파일이 입력되면 본 발명의 일실시 예에 따른 프로그램 실행부(114)는, 가상 환경에서 실행되는 대상 프로그램에 상기 비실행 파일을 로드한다. 이 때, 본 발명의 일실시 예에 따른 프로그램 실행부(114)는, 대상 프로그램 데이터 베이스(112)를 검색하여 상기 비실행 파일의 형식을 기반으로 상기 비실행 파일을 실행시킬 수 있는 대상 프로그램을 선택할 수 있다. 상기 대상 프로그램은 상기 비실행 파일을 파싱(parsing)하여 가상 메모리에 로드한다.
삭제
단계(203)에서 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 프로그램 실행부(114)로부터 대상 프로그램의 실행에 의해 지속적으로 출력되는 대상 프로그램의 레지스터 값을 분석한다.
단계(205)에서 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 대상 프로그램의 레지스터 값이 가상 메모리의 노멀 코드 영역 이외의 영역을 가리키는지 판단한다. 상기 판단 결과, 상기 대상 프로그램의 레지스터 값이 가상 메모리의 노멀 코드 이외의 영역을 가리키는 경우, 즉 상기 비실행 파일 내에 포함된 악성 코드의 동작이 탐지된 경우 단계(207)로 진행한다.
악성 코드는 취약점을 내포한 프로그램의 실행 흐름에서 수행되기 때문에 상기 악성 코드가 수행되는 시점을 분석하기에 어려움이 있었으나, 본 발명은 상기한 바와 같이 악성 코드가 포함된 비실행 파일이 로드된 프로그램의 레지스터 값을 분석함으로써 악성 코드가 수행되는 시점을 쉽게 판단할 수 있다.
단계(207)에서 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 상기 대상 프로그램의 동작에 관한 로그 정보를 로그 정보 데이터 베이스(124)에 저장하기 시작한 후, 단계(209)로 진행한다.
단계(209)에서 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 상기 대상 프로그램의 레지스터 값이 노멀 코드 영역 내를 가리키는지 판단하고, 상기 판단 결과 상기 레지스터 값이 노멀 코드 영역 내를 가리키는 경우, 즉 상기 비실행 파일 내에 포함된 악성 코드의 동작이 멈춘 경우 단계(211)로 진행하여 로그 정보의 저장을 종료한다.
단계(213)에서 본 발명의 일실시 예에 따른 프로그램 실행 분석부(122)는, 상기 대상 프로그램의 종료 여부를 판단하고, 상기 판단 결과 상기 대상 프로그램이 종료된 경우 단계(215)로 진행하고, 그렇지 않으면 단계(205)로 진행하여 상기 대상 프로그램의 레지스터 값의 분석을 계속 수행한다.
단계(215)에서 본 발명의 일실시 예에 따른 악성 코드 분석부(126)는, 로그 정보 데이터 베이스(124)에 저장된 로그 정보를 이용하여 상기 비실행 파일 내에 포함된 악성 코드을 추출 및 분석한 후, 상기 가상 환경을 상기 대상 프로그램이 동작하기 전의 상태로 전환하고 종료한다.
도 3은 본 발명의 일실시 예에 따른 악성 코드 분석 방법의 예를 보여주는 도면이다. 이하, 도 3을 참조하여 본 발명의 일실시 예에 따른 악성 코드 분석 방법을 살펴보기로 한다.
취약점이 내포된 대상 프로그램이 실행되는 경우, 상기 대상 프로그램은 시작 시부터 종료 시까지 정상적인 흐름(310)으로 실행될 수 있으나, 내포된 취약점으로 인하여 비정상적인 흐름(320)으로 실행될 수도 있다.
상기 대상 프로그램에 비실행 파일이 로드되면 프로그램 실행 분석부(122)는 상기 대상 프로그램의 레지스터 값을 분석하기 시작한다. 구간(301)은 대상 프로그램에 의해 비실행 파일이 로드된 시점부터 악성 코드가 실행되기 전까지 구간을 나타내며, 이 때, 상기 대상 프로그램의 레지스터 값은 데이터 코드(332)가 가상 메모리의 노멀 코드 영역(334)을 가리키는 정상적인 모습을 보인다.
상기 대상 프로그램이 취약점으로 인하여 정상 흐름에서 벗어나는 경우(312) 상기 대상 프로그램에 로드된 비실행 파일에 포함된 악성 코드가 실행될 수 있다. 이 때, 악성 코드의 종류에 따라 악성 코드 이미지가 실행(314)될 수 있다.
이처럼 악성 코드가 실행되는 구간(303)에서는 악성 코드(342)의 실행으로 인하여 대상 프로그램의 레지스터 값이 가상 메모리의 노멀 코드 영역 이외의 영역(344)을 가리키게 된다. 이러한 경우, 프로그램 실행 분석부(122)는 로그 정보를 저장하기 시작한다.
이 후, 대상 프로그램이 비정상적인 흐름(320)에서 벗어남으로써(313, 315) 악성 코드가 실행되지 않는 구간(305)에서는 대상 프로그램의 레지스터 값은 다시 정상적으로 데이터 코드(332)가 가상 메모리의 노멀 코드 영역(334)을 가리키는 모습을 보이게 된다. 이 때, 프로그램 실행 분석부(122)는 로그의 저장을 마치게 되며, 악성 코드 분석부(126)는 저장된 로그를 기반으로 악성 코드를 추출 및 분석하게 된다.
상술한 본 발명의 설명에서는 구체적인 일실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서, 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해져야 한다.
도 1은 본 발명의 일실시 예에 따른 악성 코드 분석 장치의 블록 구성도,
도 2는 본 발명의 일실시 예에 따른 악성 코드 분석 방법을 나타내는 흐름도,
도 3은 본 발명의 일실시 예에 따른 악성 코드 분석 방법의 예를 보여주는 도면.

Claims (9)

  1. 가상 환경에서 실행되며 취약점이 내포된 대상 프로그램에 악성 코드의 분석을 원하는 비실행 파일을 로드(load)하는 단계;
    상기 대상 프로그램의 레지스터(register) 값을 분석하고, 상기 레지스터 값이 노멀 코드(normal code) 영역 내를 가리키는지 판단하는 단계;
    상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그(log) 정보를 저장하는 단계; 및
    상기 저장된 로그 정보를 기반으로 상기 비실행 파일에 포함된 악성 코드를 추출 및 분석하는 단계
    를 포함하는 악성 코드 분석 방법.
  2. 제 1항에 있어서, 상기 대상 프로그램의 동작에 관한 로그 정보를 저장하는 상기 단계는,
    상기 레지스터 값을 지속적으로 분석하여 상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키기 시작한 시점에 상기 로그 정보를 저장하기 시작하고, 상기 레지스터 값이 상기 노멀 코드 영역 내를 가리키기 시작한 시점에 상기 로그 정보의 저장을 종료하는 단계
    를 포함하는 악성 코드 분석 방법.
  3. 제 2항에 있어서, 상기 대상 프로그램이 종료될 때까지, 상기 대상 프로그램의 레지스터 값을 분석하고 상기 레지스터 값이 노멀 코드영역 내를 가리키는지 판단하는 단계 및 상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그 정보를 저장하는 단계를 반복 수행하는 악성 코드 분석 방법.
  4. 제 1항에 있어서, 상기 악성 코드의 추출 및 분석 후 상기 가상 환경을 상기 대상 프로그램 실행 이전의 상태로 전환하는 단계
    를 더 포함하는 악성 코드 분석 방법.
  5. 제 1항에 있어서, 상기 로그 정보는,
    상기 대상 프로그램의 레지스터 값 및 가상 메모리에 로드된 상기 비실행 파일의 내용을 포함하는
    악성 코드 분석 방법.
  6. 가상 환경에서 실행되는 취약점이 내포된 대상 프로그램에 악성 코드의 분석을 원하는 비실행 파일을 로드(load)한 후, 상기 대상 프로그램의 레지스터(register) 값을 지속적으로 외부로 출력하는 프로그램 실행부;
    상기 프로그램 실행부로부터 출력되는 레지스터 값을 분석하여 상기 레지스터 값이 노멀 코드(normal code) 영역 이외의 영역을 가리키는 경우 상기 대상 프로그램의 동작에 관한 로그(log) 정보를 로그 정보 데이터 베이스에 저장하는 프로그램 실행 분석부; 및
    상기 저장된 로그 정보를 기반으로 상기 비실행 파일에 포함된 악성 코드를 추출 및 분석하는 악성 코드 분석부
    를 포함하는 악성 코드 분석 장치.
  7. 제 6항에 있어서, 상기 프로그램 실행 분석부는,
    상기 프로그램 실행부로부터 지속적으로 출력되는 상기 레지스터 값을 분석하여 상기 레지스터 값이 상기 노멀 코드 영역 이외의 영역을 가리키기 시작한 시점에 상기 로그 정보를 저장하기 시작하고, 상기 레지스터 값이 상기 노멀 코드 영역 내를 가리키기 시작한 시점에 상기 로그 정보의 저장을 종료하는
    악성 코드 분석 장치.
  8. 제 6항에 있어서, 상기 악성 코드 분석부는,
    상기 악성 코드의 분석 후 상기 가상 환경을 상기 대상 프로그램 실행 이전의 상태로 전환하는
    악성 코드 분석 장치.
  9. 제 6항에 있어서, 상기 로그 정보는,
    상기 대상 프로그램의 레지스터 값 및 가상 메모리에 로드된 상기 비실행 파일의 내용을 포함하는
    악성 코드 분석 장치.
KR1020070100009A 2007-10-04 2007-10-04 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치 KR100945247B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070100009A KR100945247B1 (ko) 2007-10-04 2007-10-04 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치
US12/056,434 US20090094585A1 (en) 2007-10-04 2008-03-27 Method and apparatus for analyzing exploit code in nonexecutable file using virtual environment
JP2008133364A JP4732484B2 (ja) 2007-10-04 2008-05-21 仮想環境を利用した非実行ファイル内のエクスプロイトコード分析方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070100009A KR100945247B1 (ko) 2007-10-04 2007-10-04 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치

Publications (2)

Publication Number Publication Date
KR20090034648A KR20090034648A (ko) 2009-04-08
KR100945247B1 true KR100945247B1 (ko) 2010-03-03

Family

ID=40524404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100009A KR100945247B1 (ko) 2007-10-04 2007-10-04 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치

Country Status (3)

Country Link
US (1) US20090094585A1 (ko)
JP (1) JP4732484B2 (ko)
KR (1) KR100945247B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091488A1 (en) * 2010-12-31 2012-07-05 Ahnlab., Inc. System and method for detecting malicious content in non-pe file
KR101244731B1 (ko) * 2012-09-11 2013-03-18 주식회사 안랩 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
WO2013168913A1 (ko) * 2012-05-11 2013-11-14 주식회사 안랩 비실행 파일 검사 장치 및 방법
WO2013168951A1 (ko) * 2012-05-11 2013-11-14 주식회사 안랩 악성 파일 검사 장치 및 방법
KR101416762B1 (ko) 2013-02-14 2014-07-08 주식회사 엔씨소프트 온라인 게임의 봇 탐지 시스템 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595689B2 (en) 2008-12-24 2013-11-26 Flir Systems Ab Executable code in digital image files
KR101044274B1 (ko) 2009-11-03 2011-06-28 주식회사 안철수연구소 악성 사이트 검출 장치, 방법 및 컴퓨터 프로그램이 기록된 기록매체
US8516467B2 (en) * 2010-01-29 2013-08-20 Nintendo Co., Ltd. Method and apparatus for enhancing comprehension of code time complexity and flow
US8646088B2 (en) 2011-01-03 2014-02-04 International Business Machines Corporation Runtime enforcement of security checks
KR101382549B1 (ko) * 2012-09-18 2014-04-08 순천향대학교 산학협력단 모바일 환경에서 sns 콘텐츠의 사전 검증 방법
KR101710918B1 (ko) * 2015-11-30 2017-02-28 (주)이스트소프트 사용자파일을 암호화하는 악성코드의 모니터링 장치 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치
US10546120B2 (en) * 2017-09-25 2020-01-28 AO Kaspersky Lab System and method of forming a log in a virtual machine for conducting an antivirus scan of a file
KR102472523B1 (ko) * 2022-05-26 2022-11-30 시큐레터 주식회사 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501354A (ja) * 1994-06-01 1998-02-03 クワンタム・リープ・イノヴェーションズ・インコーポレーテッド コンピュータ・ウィルス・トラップ装置
JP2004038273A (ja) 2002-06-28 2004-02-05 Kddi Corp コンピュータウィルス検査装置及び方法、コンピュータプログラム、メールゲートウェイシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US6802028B1 (en) * 1996-11-11 2004-10-05 Powerquest Corporation Computer virus detection and removal
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US7266844B2 (en) * 2001-09-27 2007-09-04 Mcafee, Inc. Heuristic detection of polymorphic computer viruses based on redundancy in viral code
US7409717B1 (en) * 2002-05-23 2008-08-05 Symantec Corporation Metamorphic computer virus detection
WO2004077294A1 (ja) * 2003-02-26 2004-09-10 Secure Ware Inc. 不正処理判定方法、データ処理装置、コンピュータプログラム、及び記録媒体
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4728619B2 (ja) * 2004-10-01 2011-07-20 富士通株式会社 ソフトウェアの改竄検出装置、改竄防止装置、改竄検出方法及び改竄防止方法
TWI252976B (en) * 2004-12-27 2006-04-11 Ind Tech Res Inst Detecting method and architecture thereof for malicious codes
KR100800999B1 (ko) * 2006-02-17 2008-02-11 삼성전자주식회사 프로그램의 실행흐름을 검사하는 방법 및 장치
US20080022378A1 (en) * 2006-06-21 2008-01-24 Rolf Repasi Restricting malicious libraries
JP2008140300A (ja) * 2006-12-05 2008-06-19 Hitachi Ltd ストレージシステム及びウィルス感染拡散防止方法並びにウィルス除去支援方法
US20080271142A1 (en) * 2007-04-30 2008-10-30 Texas Instruments Incorporated Protection against buffer overflow attacks
US8141163B2 (en) * 2007-07-31 2012-03-20 Vmware, Inc. Malicious code detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501354A (ja) * 1994-06-01 1998-02-03 クワンタム・リープ・イノヴェーションズ・インコーポレーテッド コンピュータ・ウィルス・トラップ装置
JP2004038273A (ja) 2002-06-28 2004-02-05 Kddi Corp コンピュータウィルス検査装置及び方法、コンピュータプログラム、メールゲートウェイシステム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091488A1 (en) * 2010-12-31 2012-07-05 Ahnlab., Inc. System and method for detecting malicious content in non-pe file
WO2013168913A1 (ko) * 2012-05-11 2013-11-14 주식회사 안랩 비실행 파일 검사 장치 및 방법
WO2013168951A1 (ko) * 2012-05-11 2013-11-14 주식회사 안랩 악성 파일 검사 장치 및 방법
US8763128B2 (en) 2012-05-11 2014-06-24 Ahnlab, Inc. Apparatus and method for detecting malicious files
KR101244731B1 (ko) * 2012-09-11 2013-03-18 주식회사 안랩 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
US8646076B1 (en) 2012-09-11 2014-02-04 Ahnlab, Inc. Method and apparatus for detecting malicious shell codes using debugging events
WO2014042344A1 (ko) * 2012-09-11 2014-03-20 주식회사 안랩 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
KR101416762B1 (ko) 2013-02-14 2014-07-08 주식회사 엔씨소프트 온라인 게임의 봇 탐지 시스템 및 방법

Also Published As

Publication number Publication date
KR20090034648A (ko) 2009-04-08
US20090094585A1 (en) 2009-04-09
JP2009093615A (ja) 2009-04-30
JP4732484B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
KR100945247B1 (ko) 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치
US8763128B2 (en) Apparatus and method for detecting malicious files
US8627478B2 (en) Method and apparatus for inspecting non-portable executable files
Pappas et al. Transparent {ROP} exploit mitigation using indirect branch tracing
Guo et al. A study of the packer problem and its solutions
US10229268B2 (en) System and method for emulation-based detection of malicious code with unmet operating system or architecture dependencies
US10055585B2 (en) Hardware and software execution profiling
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
Kawakoya et al. Memory behavior-based automatic malware unpacking in stealth debugging environment
RU2526716C2 (ru) Эвристический способ анализа кода
KR101174751B1 (ko) 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
US8117660B2 (en) Secure control flows by monitoring control transfers
Cui et al. Tracking rootkit footprints with a practical memory analysis system
US20100011441A1 (en) System for malware normalization and detection
US20180020013A1 (en) Program, information processing device, and information processing method
US20160196425A1 (en) System and Method for Detection of Malicious Code by Iterative Emulation of Microcode
KR101646096B1 (ko) 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치
US8646076B1 (en) Method and apparatus for detecting malicious shell codes using debugging events
KR101064164B1 (ko) 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
WO2018063756A1 (en) System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
KR101161008B1 (ko) 악성코드 탐지시스템 및 방법
CN111027072A (zh) Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置
KR20160081584A (ko) 익스플로잇 탐지 방법 및 장치
Durães et al. A methodology for the automated identification of buffer overflow vulnerabilities in executable software without source-code
CN117909956B (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
FPAY Annual fee payment

Payment date: 20130207

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 11