KR20150134171A - 악성코드 탐지 장치 및 방법 - Google Patents

악성코드 탐지 장치 및 방법 Download PDF

Info

Publication number
KR20150134171A
KR20150134171A KR1020140061174A KR20140061174A KR20150134171A KR 20150134171 A KR20150134171 A KR 20150134171A KR 1020140061174 A KR1020140061174 A KR 1020140061174A KR 20140061174 A KR20140061174 A KR 20140061174A KR 20150134171 A KR20150134171 A KR 20150134171A
Authority
KR
South Korea
Prior art keywords
malicious code
operating system
detection
virtual machine
version
Prior art date
Application number
KR1020140061174A
Other languages
English (en)
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 KR1020140061174A priority Critical patent/KR20150134171A/ko
Publication of KR20150134171A publication Critical patent/KR20150134171A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

악성코드를 탐지하기 위한 장치, 방법 및 컴퓨터 판독 가능 저장 매체가 개시된다. 예시적인 실시예에 따른 악성코드 탐지 장치는, 가상 머신과 하드웨어 간 인터페이스를 제공하도록 상기 하드웨어와 직접적으로 통신하는 하이퍼바이저; 및 상기 가상 머신 상에서 운영체제가 실행되는 동안 악성코드를 탐지하는 악성코드 탐지기를 포함한다.

Description

악성코드 탐지 장치 및 방법{APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE}
개시되는 실시예들은 악성코드 탐지 기술에 관한 것으로서, 더욱 상세하게는 소정의 타입의 하이퍼바이저에 기반한 가상화 환경에서 악성코드를 탐지하기 위한 기법과 관련된다.
현재, 가상 머신이 실행되는 컴퓨팅 장치 상에서 웹사이트 내의 악성코드를 동적으로 탐지/분석하는 기법이 널리 활용되고 있다. 일반적으로, 이러한 악성코드 탐지/분석 기법은 가상화 환경을 구현하기 위해 컴퓨팅 장치의 호스트 운영체제(host operating system) 위에 자리하는 가상 머신 모니터(virtual machine monitor) 내지 하이퍼바이저(hypervisor)를 이용하는데, 그 위에는 그 하이퍼바이저가 관리하는 게스트 운영체제(guest operating system)로서 악성코드의 탐지/분석에서 사용되는 운영체제(Operating System: OS)(이하, "탐지 OS"라고도 지칭됨)가 실행될 수 있다. 이러한 타입의 하이퍼바이저(이하, "호스트형 하이퍼바이저"라고도 지칭됨)가 포함된 시스템 아키텍처는 악성코드에 감염되지 않은 운영체제(이하, "클린 OS"라고도 지칭됨)의 스냅샷(snapshot)을 필요에 따라 복구할 수 있는데, 이로써 탐지 OS를 클린 OS로 용이하게 전환시킬 수 있다.
유감스럽게도, 위와 같은 악성코드 탐지 시스템을 무력화하는 악성코드가 최근 발견되고 있다. 이러한 악성코드는 호스트형 하이퍼바이저를 이용한 가상화 구조(예컨대, 특정 호스트 운영체제에 수반될 파일이나 디렉토리)를 인지하고 호스트형 하이퍼바이저 상에서 악성 행위를 하지 않도록 설계되었다. 따라서, 종래의 악성코드 탐지 시스템을 우회하도록 지능화된 신종 악성코드를 탐지할 수 있는 향상된 기법이 필요하다.
대한민국 공개특허공보 제10-2011-0087826호 (2011. 08. 03.)
개시되는 실시예들은 가상화 환경에서 악성코드를 탐지하기 위한 장치 및 방법을 제공한다.
예시적인 실시예에 따르면, 가상 머신과 하드웨어 간 인터페이스를 제공하도록 상기 하드웨어와 직접적으로 통신하는 하이퍼바이저; 및 상기 가상 머신 상에서 운영체제(operating system)가 실행되는 동안 악성코드를 탐지하는 악성코드 탐지기를 포함하는 악성코드 탐지 장치가 제공된다.
상기 탐지는 네트워크를 통해 액세스 가능한 전자 문서 내에 상기 악성코드가 포함되어 있는지에 대한 판정을 포함할 수 있다.
상기 악성코드 탐지 장치는 상기 가상 머신 상에서 실행되는 상기 운영체제를 후속 악성코드 탐지를 위해 상기 운영체제의 무손상 버전(undamaged version)으로 전환하는 운영체제 관리기를 더 포함할 수 있다.
상기 운영체제 관리기는 상기 가상 머신 상에서 실행 중인 상기 운영체제를 종료시키고 상기 가상 머신 상에 상기 무손상 버전이 실행되도록 함으로써 상기 운영체제를 상기 무손상 버전으로 전환할 수 있다.
상기 무손상 버전은 상기 악성코드에 대한 취약점(vulnerability)을 방지하기 위하여 상기 운영체제에 대한 업데이트를 포함할 수 있다.
상기 악성코드 탐지기는 상기 탐지를 위해 웹 페이지를 액세스하여 악성코드 분석 결과를 생성할 수 있고, 상기 운영체제 관리기는 상기 악성코드 분석 결과가 상기 웹 페이지 내에 상기 악성코드가 포함되어 있음을 가리키는 경우 상기 운영체제를 상기 무손상 버전으로 전환할 수 있다.
예시적인 실시예에 따르면, 가상 머신과 하드웨어 간 인터페이스를 제공하도록 상기 하드웨어와 직접적으로 통신하는 하이퍼바이저를 구동하는 단계; 및 상기 가상 머신 상에서 운영체제가 실행되는 동안 악성코드를 탐지하는 단계를 포함하는 악성코드 탐지 방법이 제공된다.
상기 탐지하는 단계는 네트워크를 통해 액세스 가능한 전자 문서 내에 상기 악성코드가 포함되어 있는지 판정하는 단계를 포함할 수 있다.
상기 악성코드 탐지 방법은 상기 가상 머신 상에서 실행되는 상기 운영체제를 후속 악성코드 탐지를 위해 상기 운영체제의 무손상 버전으로 전환하는 단계를 더 포함할 수 있다.
상기 전환하는 단계는 상기 가상 머신 상에서 실행 중인 상기 운영체제를 종료시키는 단계 및 상기 가상 머신 상에 상기 무손상 버전이 실행되도록 하는 단계를 포함할 수 있다.
상기 무손상 버전은 상기 악성코드에 대한 취약점을 방지하기 위하여 상기 운영체제에 대한 업데이트를 포함할 수 있다.
상기 탐지하는 단계는 웹 페이지를 액세스하여 악성코드 분석 결과를 생성하는 단계를 포함할 수 있고, 상기 전환하는 단계는 상기 악성코드 분석 결과가 상기 웹 페이지 내에 상기 악성코드가 포함되어 있음을 가리키는 경우 상기 운영체제를 상기 무손상 버전으로 전환하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 방법들 중 임의의 하나를 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체가 제공된다.
소정의 실시예들은 가상화 환경을 인지하는 지능형 악성코드의 전파 방식을 근본적으로 무력화시키는바, 이러한 지능형 악성코드의 탐지/분석을 가능하게 한다.
소정의 실시예들에 따르면, 가상 머신 상에서 실행되는 운영체제의 클린 버전(clean version)이 효율적으로 관리될 수 있고, 운영체제나 애플리케이션의 취약점 패치가 신속하게 제공될 수 있다.
도 1은 예시적인 실시예에 따른 네트워크 환경을 도시한 도면,
도 2는 예시적인 실시예에 따라 악성코드를 탐지하기 위한 가상화 환경을 제공하는 컴퓨팅 장치를 도시한 도면,
도 3은 예시적인 실시예에 따른 악성코드 탐지 시스템 및 패치 관리 시스템을 설명하기 위한 도면,
도 4는 예시적인 실시예에 따른 악성코드 탐지 과정을 도시한 도면,
도 5는 예시적인 실시예에 따른 패치 관리 과정을 도시한 도면.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 예시적인 실시예에 따른 네트워크 환경을 도시한다.
도 1에 도시된 바와 같이, 예시적인 네트워크 환경(100)은 하나 이상의 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 및 패치 관리 시스템(120)을 포함한다. 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 각각은 하드웨어와 직접 통신하는 하이퍼바이저에 의해 제공되는 가상화 환경에서 게스트 운영체제가 실행되는 동안 악성코드를 탐지하도록 구성된다. 예컨대, 각 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)은 네트워크를 통해 액세스 가능한 전자 문서(예컨대, 웹서버가 제공하는 웹사이트의 웹페이지) 내의 악성코드를 탐지할 수 있다. 패치 관리 시스템(120)은 악성코드에 감염되지 않은 게스트 운영체제(즉, 클린 OS) 및/또는 애플리케이션의 최신 패치 내지 그러한 패치로 업그레이드된 최신 버전을 제공하도록 구성된다. 이에 따라, 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 각각은 게스트 운영체제 및/또는 애플리케이션을 악성코드의 공격(예컨대, 제로데이(zero-day) 공격)으로부터 온전하게 유지하면서 악성코드 탐지를 수행할 수 있다.
악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 및 패치 관리 시스템(120)은 로컬 영역 네트워크(Local Area Network: LAN), 광역 네트워크(Wide Area Network: WAN), 셀룰라 네트워크 또는 인터넷과 같은 네트워크(130)를 통해 통신 가능하게 연결된다. 예컨대, 패치 관리 시스템(120)에 의해 생성된 패치가 네트워크(130)를 통해 각 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)에 전달될 수 있다. 다른 예로서, 패치 관리 시스템(120)이 최신 버전의 클린 OS를 생성하고 있는 중이라는 통지 및 그러한 생성이 완료되었다는 통지가 패치 관리 시스템(120)으로부터 네트워크(130)를 통해 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 각각에 전달될 수 있다. 또 다른 예로서, 각 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)의 클린 OS가 최신 패치로 업그레이드되어 있는지를 판정하는 데 이용 가능한 신호(예컨대, 클린 OS의 버전 번호를 나타내는 신호)가 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)로부터 네트워크(130)를 통해 패치 관리 시스템(120)에 전달될 수 있다.
각각의 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n) 및 패치 관리 시스템(120)은 컴퓨팅 장치 내에 구현되거나 포함될 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨터 판독 가능 저장 매체에는 컴퓨터 실행 가능 명령어가 저장되어 있을 수 있다. 프로세서는 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행할 수 있고, 그러한 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 소정의 실시예에 따른 동작을 수행하게 하도록 구성될 수 있다.
특히, 각각의 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)은 CPU나 메모리 등과 같은 기반 시스템 하드웨어가 추상화된 가상화 환경을 제공하는 컴퓨팅 장치(예컨대, 이하에서 설명될 예시적인 컴퓨팅 장치(200)) 내에 구현되거나 포함될 수 있다.
도 2는 예시적인 실시예에 따라 악성코드를 탐지하기 위한 가상화 환경을 제공하는 컴퓨팅 장치를 도시한다. 도 2의 예시적인 컴퓨팅 장치(200)는 서버 컴퓨터, 네트워크 컴퓨터, 범용 또는 특정 용도의 물리적 머신, 또는 다른 적합한 형태를 가질 수 있다.
컴퓨팅 장치(200)는 물리적인 하드웨어(210)를 포함한다. 하드웨어(210)는 적어도 하나의 프로세서(212) 및 컴퓨터 판독 가능 저장 매체(214)를 포함한다. 프로세서(212)는 컴퓨터 판독 가능 저장 매체(214)를 포함하여 컴퓨팅 장치(200)의 다른 다양한 하드웨어 리소스들과 연결된다. 컴퓨터 판독 가능 저장 매체(214)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 도 2에 도시된 메모리(216) 및 저장 디바이스(218)는 컴퓨터 판독 가능 저장 매체(214)의 예이다. 메모리(216)에는 프로세서(212)에 의해 실행될 수 있는 컴퓨터 실행 가능 명령어가 로딩될 수 있다. 또한, 메모리(216)에는 프로그램 데이터가 저장될 수 있다. 예컨대, 이러한 메모리(216)는 랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적합한 조합일 수 있다. 다른 예로서, 저장 디바이스(218)는 정보의 저장을 위한 하나 이상의 착탈 가능하거나 착탈 불가능한 컴포넌트를 포함할 수 있다. 예컨대, 저장 디바이스(218)는 하드 디스크, 플래시 메모리, 자기 디스크, 광 디스크, 컴퓨팅 장치(200)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
컴퓨팅 장치(200)의 하드웨어(210)는 다른 하드웨어 리소스를 더 포함할 수 있다. 예를 들어, 하드웨어(210)는 입출력 인터페이스(220) 및 네트워크 인터페이스(230)를 더 포함할 수 있다. 입출력 인터페이스(220)는 하나 이상의 입출력 디바이스(예컨대, 마우스와 같은 포인팅 디바이스, 키보드, 터치 입력 디바이스 및 음성 입력 디바이스와 같은 입력 디바이스 및/또는 디스플레이 디바이스, 프린터 및 스피커와 같은 출력 디바이스)를 위한 인터페이스를 제공할 수 있다. 네트워크 인터페이스(230)는 LAN, WAN, 셀룰라 네트워크 또는 인터넷과 같은 네트워크를 통한 다른 컴퓨팅 장치와의 통신을 가능하게 할 수 있다.
컴퓨팅 장치(200)는 하이퍼바이저(240)를 더 포함한다. 하이퍼바이저(240)는 하드웨어(210)를 추상화하여 가상화 환경을 제공하기 위한 소프트웨어, 펌웨어, 하드웨어 또는 이들의 적절한 조합으로서, 하드웨어(210)의 자원들이 할당된 가상의 실행 환경인 가상 머신(예컨대, 적어도 하나의 가상 머신(250-1, 250-2, ..., 250-n))을 생성하고 구동하도록 구성될 수 있다. 특히, 하이퍼바이저(240)는 하드웨어(210) 상에 직접적으로 설치/구현될 수 있다. 이러한 하이퍼바이저(240)는 하드웨어(210)와 하이퍼바이저(240) 간의 호스트 운영체제에 의존할 필요 없이 직접적으로 하드웨어(210)와 통신할 수 있다. 이와 같이 하이퍼바이저(240)가 논리적으로 하드웨어(210) 바로 위에서 하드웨어(210)와 가상 머신(예컨대, 가상 머신(250-1, 250-2, ..., 250-n)) 간의 인터페이스를 제공하는 경우, 이 하이퍼바이저(240)는 베어 메탈(bare-metal) 타입의 하이퍼바이저라고 지칭될 수 있다.
하이퍼바이저(240)에 의해 제공되는 가상화된 플랫폼 상에서 게스트 운영체제가 구동될 수 있다. 예를 들어, 각각의 가상 머신(250-1, 250-2, ..., 250-n) 상에서 게스트 운영체제(252-1, 252-2, ..., 252-n)가 실행될 수 있다. 하이퍼바이저(240)는 게스트 운영체제(252-1, 252-2, ..., 252-n) 각각의 실행을 관리할 수 있고, 이에 따라 여러 게스트 운영체제(252-1, 252-2, ..., 252-n)는 가상화된 하드웨어 리소스들을 공유할 수 있다. 또한, 실행 중인 각 게스트 운영체제(252-1, 252-2, ..., 252-n) 상에서 다양한 타입의 애플리케이션(254-1, 254-2, ..., 254-n)이 실행될 수 있다. 이러한 애플리케이션(254-1, 254-2, ..., 254-n)은 게스트 운영체제(252-1, 252-2, ..., 252-n)를 통해 적어도 부분적으로는 간접적으로 실행되고 있더라도 마치 실제 컴퓨팅 장치 상에서 실행되는 경우처럼 동작할 수 있다.
몇몇 실시예들에 따르면, 게스트 운영체제(252-1, 252-2, ..., 252-n)는 가상화되지 않은 컴퓨팅 장치에서 나타날 컴포넌트만을 포함할 수 있고, 가상화 환경에서의 사용을 지원하기 위한 별도의 컴포넌트를 포함하지 않을 수 있다. 대안적으로, 몇몇 다른 실시예들에서, 게스트 운영체제(252-1, 252-2, ..., 252-n)는 컴퓨팅 장치(200)에서의 가상화 환경의 구현을 위한 몇몇 특징을 포함할 수 있다. 가령, 게스트 운영체제(252-1, 252-2, ..., 252-n)는 하이퍼바이저(240)를 명시적으로 호출하기 위한 하이퍼콜(hypercall)을 지원할 수 있다.
도 3은 예시적인 실시예에 따른 악성코드 탐지 시스템 및 패치 관리 시스템을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 악성코드 탐지 시스템(110-1)은 하이퍼바이저(311), 악성코드 탐지기(313) 및 운영체제 관리기(315)를 포함한다.
하이퍼바이저(311) 상에는 적어도 하나의 가상 머신이 실행될 수 있다. 하이퍼바이저(311)는 악성코드 탐지 시스템(110-1)의 기반 하드웨어와 가상 머신 간 인터페이스를 제공한다. 하이퍼바이저(311)는 그러한 시스템 하드웨어 바로 위에 구현되어 시스템 하드웨어와 직접적으로 상호작용 내지 통신하도록 구성된다. 예컨대, 하이퍼바이저(311)는 도 2의 하이퍼바이저(240)를 포함할 수 있다.
하이퍼바이저(311) 상에서 구동 중인 가상 머신(이하, "활성 가상 머신"이라고도 지칭됨) 상에는 게스트 운영체제(317)가 실행되는데, 이는 악성코드의 탐지/분석에 사용된다는 점에서 탐지 OS라고 할 수 있다. 악성코드 탐지기(313)는 활성 가상 머신 상에서 탐지 OS(317)가 실행되는 동안 악성코드를 탐지하도록 구성된다. 악성코드 탐지기(313)는 악성코드 탐지를 위해 소정의 전자 문서에 액세스할 수 있다. 만일 액세스된 전자 문서 내에 악성코드가 포함된 경우, 그 악성코드는 탐지 OS(317) 및/또는 탐지 OS(317) 상에서 실행되는 애플리케이션의 보안 취약점을 통해 전파되어 탐지 OS(317) 및/또는 그 애플리케이션을 공격할 수 있다. 예를 들어, 네트워크(360)를 통해 액세스 가능한 웹 페이지(가령, 네트워크(360)를 통해 웹 서버(380)에 의해 제공되는 웹 사이트(381)의 웹 페이지(383))를 악성코드 탐지기(313)가 방문하는 경우, 그 웹 페이지 내의 악성코드는 활성 가상 머신 상에서 실행 중인 탐지 OS(317)를 감염시킬 수 있다. 몇몇 실시예들에서, 악성코드 탐지기(313)는 탐지 OS(317)에 의해 지원되는 파일 시스템 내 파일의 생성, 삭제, 판독 및/또는 수정과 같은 변화, 탐지 OS(317) 상의 프로세스의 생성, 소멸, 액세스 및/또는 수정과 같은 변화 및 탐지 OS(317)의 레지스트리의 생성, 삭제, 판독 및/또는 수정과 같은 변화 중 적어도 하나를 감지하는 동적 분석 기법 및/또는 그 밖의 다른 기법을 이용하여, 악성코드 탐지기(313)는 웹 페이지(383) 내에 악성코드가 포함되었는지 여부를 판정할 수 있다. 또한, 웹 페이지(383) 내에 악성코드가 포함되었다고 판정되는 경우, 악성코드 탐지기(131)는 악성코드 내지 악성코드 내 공격 스크립트를 추출할 수 있다. 나아가, 악성코드 탐지기(313)는 웹 페이지(383)의 URL(Uniform Resource Locator) 및/또는 악성코드가 유래하는 서버의 IP 주소 등과 같은 악성 코드 정보를 획득할 수 있다.
운영체제 관리기(315)는 (예컨대, 다른 웹 페이지에 대한) 후속 악성코드 탐지를 위해 탐지 OS(317)를 악성코드에 감염되지 않은 다른 게스트 운영체제(예컨대, 클린 OS(319))로 전환하도록 구성된다. 몇몇 실시예들에서, 운영체제 관리기(315)는 탐지 OS(317)를 종료시키고 클린 OS(319)가 활성 가상 머신 상에서 실행되도록 악성코드 탐지 시스템(110-1)을 재부팅함으로써 OS 전환을 수행할 수 있다. 이와 같이 활성 가상 머신 상에서 클린 OS(319)가 실행되면, 악성코드 탐지기(313)는 클린 OS(319)의 실행 중에 후속적인 악성코드 탐지를 수행할 수 있다. 특히, 운영체제 관리기(315)는 이전의 악성코드 탐지가 완료된 후 이러한 OS 전환을 수행할 수 있고, 이로써 악성코드가 탐지된 경우 탐지 OS(317)가 그 악성코드에 감염된 채 실행되는 것, 나아가 감염된 탐지 OS(317) 상에서 후속 악성코드 탐지를 수행하는 것을 방지할 수 있다. 감염된 탐지 OS(317)를 대신할 클린 OS(319)는 탐지 OS(317)의 무손상 버전(undamaged version)(즉, 악성코드에 의해 손상되지 않은 클린 카피(clean copy))일 수 있다. 운영체제 관리기(315)는 패치 관리 시스템(120)으로부터 탐지 OS(317)를 클린 OS(319)로 수정하는 데 필요한 패치를 수신하고 수신된 패치로써 탐지 OS(317)를 클린 OS(319)로 업데이트하거나, 패치 관리 시스템(120)으로부터 클린 OS(319)의 이미지를 수신할 수 있다. 나아가, 패치 관리 시스템(120)이 탐지된 악성코드에 대한 취약점을 방지하기 위하여 탐지 OS(317)를 업데이트한 경우, 패치 관리 시스템(120)은 그러한 업데이트를 포함하는 패치 또는 탐지 OS(317)의 패치된 버전을 클린 OS(319)로서 운영체제 관리기(315)에 제공할 수 있다.
몇몇 실시예들에 따르면, 웹 페이지 내의 악성코드의 탐지를 위해 악성코드 탐지기(313)와 운영체제 관리기(315)는 다음과 같이 동작할 수 있다. 운영체제 관리기(315)는 점검되어야 할 타겟 웹 페이지를 선택하고 타겟 웹 페이지로의 액세스에 대한 요청을 악성코드 탐지기(313)에 전달할 수 있다. 이러한 액세스 요청은 타겟 웹 페이지의 URL을 포함할 수 있다. 악성코드 탐지기(313)는 액세스 요청에 응답하여 타겟 웹 페이지를 액세스하여 악성코드 분석 결과를 생성할 수 있다. 악성코드 분석 결과는 악성코드 탐지기(313)의 악성코드 탐지의 결과, 예컨대 타겟 웹 페이지 내에 악성코드가 포함되어 있는지 여부를 나타내는 정보를 포함할 수 있다. 또한, 악성코드 분석 결과는 다양한 종류의 다른 악성코드 정보를 포함할 수도 있다. 이어서, 악성코드 탐지기(313)는 생성된 악성코드 분석 결과를 운영체제 관리기(315)에 전달할 수 있다. 또한, 타겟 웹 페이지 내의 악성코드가 탐지된 경우, 악성코드 탐지기(313)는 탐지된 악성코드를 다운로드하고 그 악성코드에 관한 정보를 소정의 데이터베이스에 저장할 수 있다. 나아가, 악성코드 탐지기(313)는 악성코드의 다운로드 및 악성코드 정보의 저장이 완료되었음을 운영체제 관리기(315)에 통지할 수 있다. 악성코드 분석 결과가 타겟 웹 페이지 내에 악성코드가 포함되어 있음을 가리키는 경우, 운영체제 관리기(315)는 악성코드 탐지 중에 악성코드에 감염되었을 탐지 OS(317)를 클린 OS(319)로 전환할 수 있다. 악성코드 탐지 시스템(110-1) 또는 활성 가상 머신이 재부팅된 후 악성코드 탐지기(313)는 탐지 OS(317) 대신 클린 OS(319)가 실행되는 동안 후속 악성코드 탐지를 수행할 수 있다.
한편, 도 3에 도시된 바와 같이, 패치 관리 시스템(120)은 패치 관리기(321), 패치 제공기(323) 및 패치 데이터베이스(327)를 포함한다.
패치 관리기(321)는 악성코드 탐지 시스템(110-1)의 하이퍼바이저(311)에 의해 제공되는 가상화 환경에서 실행 가능한 게스트 운영체제 및/또는 그 게스트 운영체제에 대한 패치를 저장하도록 구성된다. 일 예로서, 패치 관리기(321)는 그러한 게스트 운영체제의 적어도 하나의 버전 및/또는 그 버전으로 업그레이드하는 데 사용되는 패치를 패치 데이터베이스(327)에 저장할 수 있다. 그러한 버전은 악성코드에 감염되지 않은 클린(즉, 무손상) 버전일 수 있다. 특히, 패치 관리기(321)는 게스트 운영체제를 최신 패치로 업그레이드할 수 있다. 업그레이드된 최신 버전의 게스트 운영체제는 악성코드에 대한 취약점을 제거 내지 감쇠시키는 업데이트를 포함할 수 있다. 패치 관리기(321)는 위 최신 버전 및/또는 최신 패치를 패치 데이터베이스(327)에 저장할 수 있다.
예컨대, 패치 관리기(321)는 게스트 운영체제의 최신 패치 및/또는 최신 버전이 패치 데이터베이스(327))에 저장되어 있는지 판정하고, 그렇지 않은 경우에 최신 패치로 게스트 운영체제를 업데이트할 수 있다. 또한, 패치 관리기(321)는 게스트 운영체제의 업그레이드에 관한 히스토리를 저장할 수 있다.
패치 제공기(323)는 악성코드 탐지 시스템(110-1)의 가상화 환경에서 실행 가능한 게스트 운영체제가 최신 버전으로 유지되도록 하기 위해 게스트 운영체제의 최신 패치 및/또는 그러한 최신 패치로 업그레이드된 게스트 운영체제의 최신 버전을 악성코드 탐지 시스템(110-1)(의 운영체제 관리기(315))에 제공하도록 구성된다. 예컨대, 패치 제공기(323)는 악성코드 탐지 시스템(110-1)으로부터 수신되는 소정의 신호(예컨대, 게스트 운영체제의 버전 번호를 나타내는 신호)에 기반하여 악성코드 탐지 시스템(110-1)의 게스트 운영체제가 최신 버전으로 업그레이드되어 있는지 판정하고, 그렇지 않은 경우(예컨대, 게스트 운영체제의 버전 번호가 최신 버전의 번호보다 작은 경우)에 게스트 운영체제의 최신 패치 및/또는 최신 버전을 운영체제 관리기(315)에 전달할 수 있다.
패치 관리기(321), 패치 제공기(323) 및 패치 데이터베이스(327)는 게스트 운영체제뿐만 아니라 그 게스트 운영체제에서 실행 가능한 애플리케이션에 대하여도 유사한 방식으로 동작할 수 있다. 또한, 도 3을 참조하여 기술된 설명은 어디까지나 예시적이며, 악성코드 탐지 시스템(110-1)과 관련하여 위에서 설명된 동작들(예컨대, 악성코드 탐지 시스템(110-1)에서 수행되는 동작들과 패치 관리 시스템(120)에서 수행되는 동작들)은 도 1의 다른 악성코드 탐지 시스템(110-2, ..., 110-n)에 대하여도 마찬가지 방식으로 적용될 수 있다.
도 4는 예시적인 실시예에 따른 악성코드 탐지 과정을 도시한다. 예를 들어, 예시적인 과정(400)에 포함된 동작들은 악성코드 탐지 시스템(110-1, 110-2, ..., 110-n)과 같은 컴퓨터 시스템에 의해 수행될 수 있다.
기반 하드웨어 리소스와 직접적으로 통신하는 하이퍼바이저의 구동, 가상 머신의 생성 및 구동, 가상 머신 상의 게스트 운영체제(예컨대, 하이퍼바이저에 의해 제공되는 가상화 환경에서 실행되는 탐지 OS(319))의 실행과 같은 일련의 작업들을 포함하는 시작 동작 후, 과정(400)은 동작(S410)으로 진행된다.
동작(S410)에서, 악성코드가 포함되어 있는지 점검될 웹 페이지가 선택된다. 이어서, 선택된 웹 페이지가 액세스된다(S420).
동작(S430)에서, 액세스된 웹 페이지에 악성코드가 포함되어 있는지 여부가 판정된다. 이러한 판정은 게스트 운영체제를 기반으로 수행된다. 전술한 바와 같이, 게스트 운영체제에서의 파일, 프로세스 및/또는 레지스트리의 생성이나 다른 변화 등을 감지함으로써 악성코드가 탐지될 수 있다. 판정 결과 액세스된 웹 페이지에 악성코드가 포함되어 있지 않은 경우, 과정(400)은 동작(S410)으로 이어진다.
액세스된 웹 페이지에 악성코드가 포함되어 있다고 판정되는 경우, 악성코드가 다운로드되고 악성코드에 관한 정보(예컨대, 웹 페이지의 URL 및 해커 서버의 IP 주소 등)이 데이터베이스에 저장된다(S440).
악성코드 정보의 저장이 완료된 후, 후속 악성코드 탐지를 위해 변경될 게스트 운영체제가 현재 업그레이드 중인지 판정된다(S450). 예를 들어, 패치 관리 시스템(120)과 같은 외부 시스템으로부터 악성 코드에 면역성 있게 게스트 운영체제를 수정하기 위한 최신 클린 버전의 생성이 진행 중이라는 통지가 수신되는 경우, 과정(400)은 계속해서 대기한다. 외부 시스템으로부터 그러한 통지가 처음부터 수신되지 않거나, 그러한 통지에 이어서 외부 시스템으로부터 게스트 운영체제의 최신 클린 버전의 생성이 완료되었다는 통지가 수신되는 경우, 과정(400)은 동작(S460)으로 이어진다.
동작(S460)에서, 실행 중인 게스트 운영체제가 종료된다.
동작(S470)에서, 악성코드에 감염되지 않은 게스트 운영체제의 클린 버전이 외부 시스템으로부터 임포트(import)된다.
동작(S480)에서, 클린 버전의 게스트 운영체제를 가상화 환경에서 실행시키기 위해 재부팅(예컨대, 과정(400)이 수행되는 컴퓨터 시스템의 재부팅)이 수행된다. 이어서, 후속 악성코드 탐지를 위해 과정(400)은 동작(S410)으로 이어진다.
도 5는 예시적인 실시예에 따른 패치 관리 과정을 도시한다. 예를 들어, 예시적인 과정(500)의 동작들은 패치 관리 시스템(120)과 같은 컴퓨터 시스템에 의해 수행될 수 있다.
시작 동작 후, 과정(500)은 동작(S510)으로 진행된다. 동작(S510)에서, 관리되는 운영체제 및 애플리케이션이 각각 최신 패치로 업데이트되었는지 판정된다. 업데이트가 되어 있는 경우, 과정(500)은 동작(S510)으로 복귀된다.
운영체제 및 애플리케이션이 업데이트되어 있지 않다고 판정된 경우, 운영체제 및 애플리케이션 각각이 최신 패치로 업데이트된다(S520).
동작(S530)에서, 각 최신 패치가 데이터베이스에 저장되고, 패치와 관련된 히스토리가 기록된다.
동작(S540)에서, 악성코드 탐지 시스템(예컨대, 악성코드 탐지 시스템(110-1))이 가상 머신 상에서 실행할 운영체제 및 애플리케이션이 최신 버전으로 유지되어 있는지 판정된다.
운영체제 및 애플리케이션이 최신 버전으로 업그레이드되어 있지 않다고 판정된 경우, 그러한 업그레이드를 위해 운영체제 및 애플리케이션 각각의 최신 패치가 악성코드 탐지 시스템에 전달된다(S550).
한편, 소정의 실시예는 본 명세서에서 기술한 과정을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 이러한 컴퓨터 판독 가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 그 컴퓨터 판독 가능 저장 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110-1, 110-2, ..., 110-n: 악성코드 탐지 시스템
120: 패치 관리 시스템
311: 하이퍼바이저
313: 악성코드 탐지기
315: 운영체제 관리기
317: 탐지 OS
319: 클린 OS

Claims (9)

  1. 가상 머신과 하드웨어 간 인터페이스를 제공하도록 상기 하드웨어와 직접적으로 통신하는 하이퍼바이저; 및
    상기 가상 머신 상에서 운영체제(operating system)가 실행되는 동안 악성코드를 탐지하는 악성코드 탐지기를 포함하는
    악성코드 탐지 장치.
  2. 제1항에 있어서,
    상기 탐지는 네트워크를 통해 액세스 가능한 전자 문서 내에 상기 악성코드가 포함되어 있는지에 대한 판정을 포함하는, 악성코드 탐지 장치.
  3. 제1항에 있어서,
    상기 가상 머신 상에서 실행되는 상기 운영체제를 후속 악성코드 탐지를 위해 상기 운영체제의 무손상 버전(undamaged version)으로 전환하는 운영체제 관리기를 더 포함하는, 악성코드 탐지 장치.
  4. 제3항에 있어서,
    상기 악성코드 탐지기는 상기 탐지를 위해 웹 페이지를 액세스하여 악성코드 분석 결과를 생성하고, 상기 운영체제 관리기는 상기 악성코드 분석 결과가 상기 웹 페이지 내에 상기 악성코드가 포함되어 있음을 가리키는 경우 상기 운영체제를 상기 무손상 버전으로 전환하는, 악성코드 탐지 장치.
  5. 가상 머신과 하드웨어 간 인터페이스를 제공하도록 상기 하드웨어와 직접적으로 통신하는 하이퍼바이저를 구동하는 단계; 및
    상기 가상 머신 상에서 운영체제가 실행되는 동안 악성코드를 탐지하는 단계를 포함하는
    악성코드 탐지 방법.
  6. 제5항에 있어서,
    상기 탐지하는 단계는 네트워크를 통해 액세스 가능한 전자 문서 내에 상기 악성코드가 포함되어 있는지 판정하는 단계를 포함하는, 악성코드 탐지 방법.
  7. 제5항에 있어서,
    상기 가상 머신 상에서 실행되는 상기 운영체제를 후속 악성코드 탐지를 위해 상기 운영체제의 무손상 버전으로 전환하는 단계를 더 포함하는, 악성코드 탐지 방법.
  8. 제7항에 있어서,
    상기 탐지하는 단계는 웹 페이지를 액세스하여 악성코드 분석 결과를 생성하는 단계를 포함하고, 상기 전환하는 단계는 상기 악성코드 분석 결과가 상기 웹 페이지 내에 상기 악성코드가 포함되어 있음을 가리키는 경우 상기 운영체제를 상기 무손상 버전으로 전환하는 단계를 포함하는, 악성코드 탐지 방법.
  9. 제5항 내지 제8항 중 어느 한 항에 기재된 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체.
KR1020140061174A 2014-05-21 2014-05-21 악성코드 탐지 장치 및 방법 KR20150134171A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140061174A KR20150134171A (ko) 2014-05-21 2014-05-21 악성코드 탐지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140061174A KR20150134171A (ko) 2014-05-21 2014-05-21 악성코드 탐지 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150134171A true KR20150134171A (ko) 2015-12-01

Family

ID=54882653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140061174A KR20150134171A (ko) 2014-05-21 2014-05-21 악성코드 탐지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20150134171A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021256634A1 (ko) * 2020-06-19 2021-12-23 숭실대학교 산학협력단 하드웨어 추상화 계층을 이용하는 자원 모니터링 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021256634A1 (ko) * 2020-06-19 2021-12-23 숭실대학교 산학협력단 하드웨어 추상화 계층을 이용하는 자원 모니터링 장치 및 방법

Similar Documents

Publication Publication Date Title
US10528735B2 (en) Malicious code protection for computer systems based on process modification
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
US9563460B2 (en) Enforcement of compliance policies in managed virtual systems
RU2468418C2 (ru) Агенты защиты и привилегированные режимы
JP6455738B2 (ja) パッチファイル分析システム
US9208328B2 (en) Security system and method for operating systems
US8234641B2 (en) Compliance-based adaptations in managed virtual systems
RU2462747C2 (ru) Защита ресурсов операционной системы
EP2530591B1 (en) Control and management of virtual systems
US8707417B1 (en) Driver domain as security monitor in virtualization environment
US9804869B1 (en) Evaluating malware in a virtual machine using dynamic patching
US8910155B1 (en) Methods and systems for injecting endpoint management agents into virtual machines
US10678918B1 (en) Evaluating malware in a virtual machine using copy-on-write
JP2016085663A (ja) 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US20080134178A1 (en) Control and management of virtual systems
JP6791134B2 (ja) 分析システム、分析方法、分析装置及び、コンピュータ・プログラム
CN109074450B (zh) 威胁防御技术
WO2009070661A1 (en) Automatic optimization for virtual systems
WO2009070668A1 (en) Registering and accessing virtual systems for use in a managed system
WO2008054996A2 (en) Compliance-based adaptations in managed virtual systems
WO2008049008A2 (en) Registering and accessing virtual systems for use in a managed system
US9558023B2 (en) Live application mobility from one operating system level to an updated operating system level and applying overlay files to the updated operating system
Uroz et al. Characteristics and detectability of Windows auto-start extensibility points in memory forensics
KR20150134171A (ko) 악성코드 탐지 장치 및 방법
US9342694B2 (en) Security method and apparatus

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
E902 Notification of reason for refusal
X601 Decision of rejection after re-examination