KR101729680B1 - 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치 - Google Patents

경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치 Download PDF

Info

Publication number
KR101729680B1
KR101729680B1 KR1020150170172A KR20150170172A KR101729680B1 KR 101729680 B1 KR101729680 B1 KR 101729680B1 KR 1020150170172 A KR1020150170172 A KR 1020150170172A KR 20150170172 A KR20150170172 A KR 20150170172A KR 101729680 B1 KR101729680 B1 KR 101729680B1
Authority
KR
South Korea
Prior art keywords
operating system
virtualized
electronic device
hypervisor
virtualized operating
Prior art date
Application number
KR1020150170172A
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 KR1020150170172A priority Critical patent/KR101729680B1/ko
Priority to US15/138,542 priority patent/US10365939B2/en
Application granted granted Critical
Publication of KR101729680B1 publication Critical patent/KR101729680B1/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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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
    • 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/45537Provision of facilities of other operating environments, e.g. WINE
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

경량 하이퍼바이저에 기반하는 운영체제를 제공하는 방법 및 장치가 제공된다. 전자 장치는 하이퍼바이저, 운영체제 감시자 및 가상회된 운영체제를 포함한다. 하이퍼바이저는 가상화된 운영체제가 물리 머신과 물리 머신의 자원을 공유하게 한다. 운영체제 감시자는 가상화된 운영체제가 자원에 접근하면, 자원에 대한 접근을 허용할지 여부를 결정한다. 또한, 운영체제 감시자는 가상화된 운영체제의 무결성을 검증하고, 가상회된 운영체제에 위협이 가해졌는가를 판단한다.

Description

경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING OPERATING SYSTEM BASED ON LIGHTWEIGHT HYPERVISOR}
아래의 실시예들은 가상화된 운영체제에 대한 것으로, 보다 상세하게는 경량 하이퍼바이저에 기반하는 운영체제를 제공하는 방법 및 장치에 관한 것이다.
가상화 기술(virtualization technology)은 물리 머신(physical machine) 상에 위에 다수의 논리적인 머신(Logical Machine)들을 생성하고, 생성된 논리적인 머신들을 독립적으로 운용하는 기술이다. 가상화 기술은 클라우드 컴퓨팅 환경에서의 핵심적인 기술 중 하나이다.
가상화 기술은 호스트 머신(host machine), 게스트 머신(guest machine) 및 하이퍼바이저(hypervisor)로 구성된다. 호스트 머신은 물리 머신이다. 게스트 머신은 논리적 머신, 말하자면 가상 머신이다. 하이퍼바이저는 호스트 머신 상에서 동작하며, 게스트 머신을 관리한다.
하이퍼바이저는 게스트 머신의 정보 및 행위를 통제한다. 또한, 하이퍼바이저는 가상 머신을 제어하며, 다수의 가상 머신들 간의 물리 자원의 공유를 제어한다.
가상 머신에게는 물리 머신에 대해 독립된 공간이 부여된다. 또한, 가상 머신은 하이퍼바이저에 의해 통제된다. 따라서, 가상 머신이 악성 소프트웨어에 감염되더라도, 물리 머신은 감염에 의한 영향을 받지 않는다. 이러한 장점 때문에, 가상화 기술은 악성 소프트웨어 분석을 위한 상용 솔루션 및 공개 솔루션에서 핵심적인 역할을 한다.
최근에는, 가상화 기술이 대중화됨에 따라 개인용 컴퓨터에 가상화 기술을 도입함으로써 보안을 향상시키는 연구가 진행되고 있다. 이러한 연구로서, 큐브스(Qubes) 운영체제(Operating System; OS) 및 버틱스(Virtics) 등이 있다. 이러한 연구에 따라, 가상화 기술이 향후 개인용 컴퓨터의 보안을 향상시킴에 있어서 중요한 역할을 할 것으로 기대된다.
그러나, 타입 I 하이퍼바이저 및 타입 II 하이퍼바이저와 같은 기존의 가상화 솔루션은 가상 머신 운영을 위해 자원을 할당해야 한다는 오버헤드(overhead)를 발생시킨다. 이러한 오버헤드 때문에, 기존의 가상화 솔루션을 개인용 컴퓨터에 적용하는 것은 비효율적이다.
기존의 가상화 솔루션은 물리 머신 및 가상 머신의 각각을 위한 개별적인 독립된 운영체제를 필요로 한다. 또한, 기존의 가상화 솔루션에서는 가상 머신이 실행되기 위해서 물리 머신의 자원의 일부가 가상 머신에 독립적으로 할당되어야 한다.
서버의 환경에 비해, 개인용 컴퓨터의 환경에서는 자원이 더 제한된다. 여기에서, 자원은 프로세서, 메모리 및 디스크를 포함할 수 있다. 따라서, 기존의 가상화 솔루션에 있어서, 전술된 요구사항들은 개인용 컴퓨터의 가용한 자원을 더 제한할 수 있다. 또한, 자원에 대한 제한은 개인용 컴퓨터의 성능 저하를 초래할 수 있다.
따라서, 가상화 기술을 이용한 보안 솔루션을 개인용 컴퓨터에 성공적으로 도입시키기 위해서는, 가상화로 인한 오버헤드 및 성능 저하를 최소화하면서도 보안을 향상시킬 수 있는 새로운 기술이 요구된다.
운영체제의 보안과 관련하여 미국 등록 특허 제8,578,483호 및 한국 특허 출원 제1020137025864호 등이 제시된 바 있다.
일 실시예는 악성 소프트웨어의 공격에서 운영체제를 보호하기 위해 경량 하이퍼바이저를 도입함으로써 가상화 기술의 이용을 위해 요구되는 오버헤드를 감소시키는 방법 및 장치를 제공한다.
일 실시예는 가상화 기술의 이용을 위해 요구되는 오버헤드를 감소시키면서 운영체제의 무결성을 검사하고, 운영체제에 대한 위협을 탐지하는 방법 및 장치를 제공할 수 있다.
일 실시예는 가상화에 있어서 다수의 프로세싱 유닛들을 포함하는 프로세서를 효율적으로 활용하는 방법 및 장치를 제공한다.
일 실시예는 물리 머신의 자원 정보를 자동으로 파악하는 방법 및 장치를 제공한다. 따라서, 일 실시예는 개인용 컴퓨터뿐만 아니라 고성능이 요구되는 서버에도 적용될 수 있으며, 더 나아가 가상화 기술이 제공되는 환경을 갖는 시스템에 적용될 수 있다.
또한, 본 발명이 해결하려는 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
일 측에 있어서, 전자 장치에 있어서, 적어도 하나의 프로그램을 저장하는 메모리; 상기 적어도 하나의 프로그램을 실행하는 프로세서를 포함하고, 상기 적어도 하나의 프로그램은, 가상화된 운영체제의 코드; 및 하이퍼바이저의 코드를 포함하고, 상기 가상화된 운영체제는 가상 머신 상에서 실행되고, 상기 가상화된 운영체제는 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유하고, 상기 하이퍼바이저는 상기 가상화된 운영체제의 상기 공유되는 자원으로의 접근을 제어하는 전자 장치가 제공된다.
다른 일 측에 있어서, 전자 장치에 의해 수행되는, 하이퍼바이저를 생성하는 단계; 및 가상화된 운영체제를 생성하는 단계를 포함하고, 상기 가상화된 운영체제는 가상 머신 상에서 실행되고, 상기 가상화된 운영체제는 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유하고, 상기 하이퍼바이저는 상기 가상화된 운영체제의 상기 자원으로의 접근을 제어하는 전자 장치의 운영 방법이 제공된다.
상기 전자 장치의 프로세서는 복수의 프로세싱 유닛들을 포함할 수 있다.
상기 복수의 프로세싱 유닛들은 각각 상기 하이퍼바이저를 각각 실행할 수 있다.
상기 하이퍼바이저 및 상기 가상화된 운영체제는 상기 전자 장치의 운영체제의 내부에 생성될 수 있다.
상기 가상화된 운영체제는 상기 자원의 공유를 통해 가상화된 운영체제의 내부에서 수행되고 있는 응용 프로그램에게 가상화 이전의 환경과 동일한 환경을 제공할 수 있다.
상기 가상화된 운영체제를 생성함에 있어서, 상기 전자 장치에서의 실행 흐름은 상기 전자 장치의 운영체제로부터 상기 가상화된 운영체제의 내부로 중단 없이 연결될 수 있다.
상기 전자 장치의 운영 방법은 상기 가상화된 운영체제에 대한 감시를 수행하는 운영체제 감시자를 실행하는 단계를 더 포함할 수 있다.
상기 운영체제 감시자는 상기 운영체제의 스케줄러에 독립적인 실행 흐름을 사용하여 실행될 수 있다.
상기 운영체제 감시자는 상기 가상화된 운영체제와 관련된 소정의 정보를 감시함으로써 상기 가상화된 운영체제의 무결성을 검사할 수 있다.
상기 소정의 정보는 프로세서의 레지스터의 상태, 메모리의 상태 및 프로세스의 상태 중 적어도 하나를 포함할 수 있다.
상기 운영체제 감시자는 상기 가상화된 운영체제의 상기 무결성에 문제가 있는 경우 상기 가상화된 운영체제에 대한 위협이 존재하는지 여부를 판단할 수 있다.
상기 운영체제 감시자는 상기 가상화된 운영체제의 행위 정보에 기반하여 상기 위협이 존재하는지 여부를 판단할 수 있다.
상기 전자 장치의 운영 방법은, 상기 가상화된 운영체제의 상기 전자 장치의 소정의 자원으로의 접근을 인식하는 단계; 상기 접근을 허용할 것인가의 여부에 대한 판단을 수행하는 단계; 및 상기 판단의 결과에 기반하여 상기 접근에 대한 제어를 수행하는 단계를 더 포함할 수 있다.
상기 소정의 자원은 커널 레벨 코드, 커널 레벨 독출 가능 데이터, 커널 레벨 기입 가능 데이터, 커널 레벨 읽기 전용 데이터, 커널 레벨 테이블 및 커널 레벨 레지스터 중 적어도 하나를 포함할 수 있다.
상기 접근을 허용할 것인지의 여부는 메모리 영역 화이트 리스트, 프로세스 화이트 리스트 및 프로세스 상태에 관련된 정보 중 적어도 하나에 기반하여 판단될 수 있다.
상기 접근은 상기 자원에 대한 메모리 보호 기능 또는 레지스터 보호 기능에 의해 인식될 수 있다.
상기 접근이 비정상적인 접근으로 판단된 경우, 상기 가상화된 운영체제에는 이벤트가 삽입될 수 있다.
상기 이벤트는 예외, 인터럽트, 코드 실행 주소 이동, 메모리 정보 수정 및 레지스터 자원 수정 중 적어도 하나를 포함할 수 있다.
상기 가상화된 운영체제는 가상 머신 상에서 동작하고, 상기 가상 머신은 상기 전자 장치의 물리 머신과 동일한 환경을 가질 수 있다.
또 다른 일 측에 있어서, 가상화된 운영체제의 코드; 및 하이퍼바이저의 코드를 포함하고, 상기 가상화된 운영체제는 가상 머신 상에서 실행되고, 상기 가상화된 운영체제는 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유하고, 상기 하이퍼바이저는 상기 가상화된 운영체제의 상기 자원으로의 접근을 제어하는 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체가 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
운영체제의 무결성을 검증하고, 운영체제에 대한 위협을 탐지함으로써 운영체제를 악성 소프트웨어로부터 보호하고 악성 소프트웨어의 공격을 탐지하는 방법 및 장치가 제공된다.
경량 하이퍼바이저를 이용함으로써, 가상화 기술 사용에 따른 오버헤드를 감소시키는 방법 및 장치가 제공된다.
경량 하이퍼바이저를 이용함으로써, 가상화된 운영체제의 성능 저하를 감소시키는 방법 및 장치가 제공된다.
운영체제 감시자를 이용함으로써, 악성 소프트웨어가 운영체제를 변조하는 방법과 변조의 특성을 파악하는 방법 및 장치가 제공된다.
복수의 프로세싱 유닛들을 포함하는 프로세서가 탑재된 물리 머신의 성능을 최대한 활용함으로써, 물리 머신의 성능에 대비된 가상 머신의 성능의 저하를 감소시키는 방법 및 장치가 제공된다.
도 1은 일 예에 따른 하이퍼바이저가 활성화되기 전의 운영체제의 구조를 나타낸다.
도 2는 일 실시예에 따른 하이퍼바이저 등이 활성화된 운영체제의 구조를 나타낸다.
도 3은 일 실시예에 운영체제 보안 시스템을 구현하는 전자 장치의 구성을 나타낸다.
도 4는 일 실시예에 따른 전자 장치의 운영 방법의 흐름도이다.
도 5는 일 예에 따른 하이퍼바이저가 활성화된 상태에서의 물리 머신 및 가상 머신 간의 관계를 설명한다.
도 6은 일 예에 따른 하이퍼바이저 및 운영체제 감시자의 역할을 설명한다.
도 7은 일 예에 따른 운영체제 보안 방법의 흐름도이다.
도 8은 일 예에 따른 자원으로의 접근에 대한 통제 방법의 흐름도이다.
도 9는 일 예에 따른 가상화된 운영체제의 무결성을 검증하는 방법의 흐름도이다.
도 10은 일 예에 따른 복수의 프로세싱 유닛들에 의한 하이퍼바이저의 실행 방법의 흐름도이다.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다.
실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 일 예에 따른 하이퍼바이저가 활성화되기 전의 운영체제의 구조를 나타낸다.
도 1에서 도시된 것과 같이, 컴퓨터 시스템은 운영체제를 실행할 수 있다. 운영체제는 유저 영역(user space) 및 커널 영역(kernel space)으로 구분될 수 있다.
운영체제가 실행된 후, 도 2를 참조하여 후술될 것과 같이, 실시예에 따른 하이퍼바이저 등이 실행될 수 있다.
도 2는 일 실시예에 따른 하이퍼바이저 등이 활성화된 운영체제의 구조를 나타낸다.
도 2에서 도시된 것과 같이, 가상화를 통해 하이퍼바이저 등이 활성화될 수 있다.
도 2에서, 운영체제 보안 시스템(200)은 하이퍼바이저(210), 운영체제 감시자(220) 및 가상화된 운영체제(230)를 포함할 수 있다. 또한, 운영체제 보안 시스템(200)은 컴퓨터 시스템의 운영체제(240)를 포함할 수 있다. 하이퍼바이저(210), 가상화된 운영체제(230) 및 운영체제 감시자(220)는 운영체제 보안 기능을 수행할 수 있다.
하이퍼바이저(210) 등이 활성화된 후, 운영체제(240)는 유저 영역, 가상화된 운영체제(230) 및 커널 영역을 포함할 수 있다. 커널 영역은 하이퍼바이저(210) 및 운영체제 감시자(220)를 포함할 수 있다.
하이퍼바이저(210), 운영체제 감시자(220) 및 가상화된 운영체제(230)의 각각은 후술될 전자 장치(300)의 운영체제(240)의 내부에 생성될 수 있다.
가상화된 운영체제(230)는 물리 머신과 물리 머신의 자원을 공유할 수 있다. 또는, 가상화된 운영체제(230)는 전자 장치(300)의 운영체제(240)와 전자 장치(300)의 운영체제(240)의 자원을 공유할 수 있다. 하이퍼바이저(210)는 가상화된 운영체제(230)의 공유되는 자원으로의 접근을 제어할 수 있다.
말하자면, 하이퍼바이저(210)는 기존의 하이퍼바이저들 또는 기존의 가상화에 기반한 보안 시스템들과는 달리 가상 머신을 위한 별도의 운영체제 및 자원을 요구하지 않을 수 있다. 또는, 가상화된 운영체제(230)는 기존의 하이퍼바이저들 또는 기존의 가상화에 기반한 보안 시스템들과는 달리 가상 머신을 위한 별도의 운영체제에 대한 부담을 감소시킬 수 있으며, 감소된 자원만을 요구할 수 있다. 따라서, 하이퍼바이저(210)는 기존의 하이퍼바이저들에 비해 경량(lightweight)일 수 있다. 실시예들에서, 용어 "하이퍼바이저(210)" 및 용어 "경량 하이퍼바이저"는 동일한 의미로 사용될 수 있고, 서로 간에 대체될 수 있다.
하이퍼바이저(210)는 가상 머신을 위한 별도의 운영체제 및 자원을 요구하지 않기 때문에, 자원의 할당에 있어서 적은 오버헤드만을 발생시키며, 자원의 할당으로 인한 성능의 저하를 감소시킬 수 있다.
하이퍼바이저(210)는 가상화된 운영체제(230)의 동작을 감시할 수 있고, 가상화된 운영체제(230)의 동작을 통제할 수 있다.
운영체제 감시자(220)는 하이퍼바이저(210)에 기반하여 동작할 수 있다. 운영체제 감시자(220)는 하이퍼바이저(210)로부터 제공된 정보를 사용하여 가상화된 운영체제(230)의 동작에 대한 판단을 할 수 있고, 가상화된 운영체제(230)의 동작을 제어할 수 있다.
또한, 운영체제 감시자(220)는 하이퍼바이저(210)와 연동되는 다수의 추가적인 시스템들을 포함할 수 있다.
가상화된 운영체제(230)는 가상 머신 상에서 실행되는 운영체제일 수 있다.
하이퍼바이저(210), 운영체제 감시자(220), 가상화된 운영체제(230) 및 운영체제(240)의 기능 및/또는 동작에 대해서 아래에서 실시예들을 참조하여 상세하게 설명된다.
도 3은 일 실시예에 운영체제 보안 시스템을 구현하는 전자 장치의 구성을 나타낸다.
도 3은 일 실시예에 따른 운영체제 보안 시스템(200)을 구현하는 전자 장치를 도시한다.
운영체제 보안 시스템(200)은 도 3에서 도시된 전자 장치(300)로서 구현될 수 있다. 전자 장치(300)는 운영체제 보안 시스템(200)의 기능을 제공하는 범용의 컴퓨터 시스템일 수 있다.
도 3에서 도시된 바와 같이, 전자 장치(300)는 버스(322)를 통하여 서로 통신하는 프로세서(310), 메모리(320), 사용자 인터페이스(User Interface; UI) 입력 디바이스(326), UI 출력 디바이스(327) 및 저장소(328)를 포함할 수 있다.
또한, 전자 장치(300)는 네트워크(331)에 연결되는 통신부(330)를 더 포함할 수 있다.
프로세서(310)는 전자 장치(300)의 동작을 위해 요구되는 작업을 처리할 수 있다. 프로세서(310)는 중앙 처리 장치(Central Processing Unit; CPU), 메모리(320) 또는 저장소(328)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다.
통신부(330)는 전자 장치(300)의 통신과 관련된 기능을 수행할 수 있다. 통신부(330)는 전자 장치(300)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 전자 장치(300)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(330)는 네트워크(331) 내의 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(330)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(320) 및 저장소(328)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 롬(ROM)(324) 및 램(RAM)(325) 중 적어도 하나를 포함할 수 있다. 또한, 메모리는 플래시 메모리 및 탈착가능한 저장 매체 중 적어도 하나를 포함할 수 있다.
운영체제 보안 시스템(200)은 컴퓨터에 의해 독출(read)될 수 있는 기록 매체를 포함하는 컴퓨터 시스템에서 구현될 수 있다. 기록 매체는 전자 장치(300)가 운영체제 보안 시스템(200)으로서 동작하기 위해 요구되는 적어도 하나의 프로그램을 저장할 수 있다. 메모리(320)는 적어도 하나의 프로그램을 저장할 수 있다. 프로세서(310)는 적어도 하나의 프로그램을 실행할 수 있다.
적어도 하나의 프로그램은 하이퍼바이저(210)의 코드, 가상화된 운영체제(230)의 코드 및 운영체제 감시자(220)의 코드를 포함할 수 있다. 또한, 적어도 하나의 프로그램은 전자 장치(300)의 운영체제(240)의 코드를 포함할 수 있다. 하이퍼바이저(210), 가상화된 운영체제(230), 운영체제 감시자(220) 및 운영체제(240)의 각각은 프로그램일 수 있다. 코드는 적어도 하나의 명령어일 수 있다.
각 프로그램은 운영체제, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 전자 장치(300)에 포함될 수 있다. 각 프로그램은 일 실시예에 따른 기능 또는 동작을 수행하거나, 일 실시예에 따른 추상 데이터 유형을 구현하는 루틴(routine), 서브루틴(subroutine), 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포함할 수 있다.
프로그램은 시스템 프로그램, 응용 프로그램 및 기타 프로그램의 형태로 메모리(320)에 저장될 수 있다. 또한, 적어도 하나의 프로그램 중 적어도 일부는 전자 장치(300)와 통신 가능한 원격 기억 장치에 저장될 수도 있다.
도 4는 일 실시예에 따른 전자 장치의 운영 방법의 흐름도이다.
단계(410)에서, 하이퍼바이저가 생성될 수 있다. 하이퍼바이저는 전자 장치(300)의 운영체제(240) 등에 의해 생성될 수 있다.
단계(415)에서, 운영체제 감시자(220)가 생성될 수 있다. 운영체제 감시자(220)는 가상화된 운영체제(230)에 대한 감시를 수행할 수 있다.
전자 장치(300)의 운영체제(240) 또는 하이퍼바이저(210)는 가상화 기술을 사용하여 운영체제(240)의 스케줄러에 독립적인 스케줄러독립 실행 흐름을 생성할 수 있다. 스케줄러독립 실행 흐름을 생성함에 있어서, 하이퍼바이저(210)는 가상화 기술의 선점 타이머(preemption timer)를 사용할 수 있다.
하이퍼바이저(210)는 스케줄러독립 실행 흐름을 운영체제 감시자(220)에게 제공할 수 있다. 예를 들면, 하이퍼바이저(210)는 스케줄러독립 실행 흐름을 사용하여 운영체제 감시자(220)를 실행할 수 있다.
단계(420)에서, 가상화 기술에 의해 가상 머신 및 가상화된 운영체제(210)가 생성될 수 있다.
전자 장치(300)의 운영체제(240) 또는 하이퍼바이저(210)는 가상 머신 및 가상화된 운영체제(230)를 생성할 수 있다.
가상화된 운영체제(230)는 가상 머신에 대한 운영체제일 수 있다.
하이퍼바이저(210)에 의해 생성된 가상 머신은 전자 장치(300)의 물리 머신과 동일한 환경을 가질 수 있다. 하이퍼바이저(210)는 가상화 기술을 사용하여 전자 장치(300)의 물리 머신과 동일한 환경을 갖는 가상 머신을 생성할 수 있다.
가상화된 운영체제(230)는 가상화된 운영체제(230)의 내부에서 수행되고 있는 응용 프로그램에게 가상화 이전의 환경과 동일한 환경을 제공할 수 있다. 가상화된 운영체제(230)는 자원의 공유를 통해 가상화된 운영체제(230)의 내부에서 수행되고 있는 응용 프로그램에게 가상화 이전의 환경과 동일한 환경을 제공할 수 있다.
가상 머신의 환경 및 물리 머신의 환경이 동일하기 때문에, 하이퍼바이저(210)는 물리 머신의 자원에 기반하여 가상 머신의 상태를 용이하게 파악할 수 있다. 하이퍼바이저(210)가 가상 머신의 상태를 용이하게 파악함에 따라, 물리 머신 및 가상 머신의 시맨틱 갭(semantic gap)(말하자면, 물리 머신 및 가상 머신 간의 정보 차이)이 감소할 수 있다. 물리 머신 및 가상 머신의 시맨틱 갭이 감소함에 따라, 하이퍼바이저(210)는 가상화된 운영체제(230)의 상태를 신속하고 정확하게 파악할 수 있다.
또한, 하이퍼바이저(210)가 가상 머신의 상태를 용이하게 파악함에 따라 가상화된 운영체제(230) 및 하이퍼바이저(210)의 시맨틱 갭 또한 감소할 수 있다.
가상화된 운영체제(230)는 전자 장치(300)의 물리 머신과 커널 영역 및 유저 영역을 공유할 수 있다.
가상화된 운영체제(230)를 생성함에 있어서, 전자 장치(300)에서의 실행 흐름은 전자 장치(300)의 운영체제(240)로부터 가상화된 운영체제(230)의 내부로 중단 없이(seamless) 연결될 수 있다. 예를 들면, 하이퍼바이저(210)는 가상 머신을 생성하면서, 가상화된 운영체제(230)의 코드 실행 위치를 하이퍼바이저(210)가 실행된 위치의 직후의 위치로 설정할 수 있다. 가상화된 운영체제(230)의 코드 실행 위치를 하이퍼바이저(210)가 실행된 위치의 직후의 위치로 설정함에 따라, 물리 머신의 운영체제(240) 및 가상화된 운영체제(230) 사이에서 실행 흐름이 이어질 수 있다. 물리 머신의 운영체제(240) 및 가상화된 운영체제(230) 사이에서 실행 흐름이 이어짐에 따라, 가상화된 운영체제(230)에서 동작하는 응용 프로그램은 응용 프로그램의 환경이 물리 머신의 운영체제(240)의 환경으로부터 가상화된 운영체제(230)의 환경으로 전환된 것을 인지하지 못할 수 있다. 말하자면, 물리 머신의 운영체제(240) 및 가상화된 운영체제(230) 사이에서 실행 흐름이 이어짐에 따라, 물리 머신의 운영체제(240)의 환경으로부터 가상화된 운영체제(230)의 환경으로의 전환은 가상화된 운영체제(230)에서 동작하는 응용 프로그램에 대해 투명하게 이루어질 수 있다.
도 5는 일 예에 따른 하이퍼바이저가 활성화된 상태에서의 물리 머신 및 가상 머신 간의 관계를 설명한다.
도 5를 참조하면, 하이퍼바이저(210)가 실행된 후, 운영체제(240)의 동작 환경은 물리 머신 및 가상 머신으로 분리될 수 있다.
가상 머신이 실행되는 중, 가상화된 운영체제(230)는 보호되는 자원에 접근하는 경우가 발생할 수 있다. 여기서, 보호되는 자원은 전자 장치(300)의 운영체제(240) 및 가상화된 운영체제(230)가 공유하는 자원 중 소정의 자원일 수 있다.
가상화된 운영체제(230)는 보호되는 자원에 바로 접근할 수 없으며, 가상화된 운영체제(230)의 보호되는 자원으로의 접근은 하이퍼바이저(210) 및 운영체제 감시자(220)에 의해 통제될 수 있다.
가상화된 운영체제(230)가 보호되는 자원에 접근하면, 가상 머신의 실행이 일시적으로 중지될 수 있다. 가상 머신의 실행이 일시적으로 중지되면서 전자 장치(300)의 프로세서(310)에 의해 실행되는 대상이 물리 머신으로 전환될 수 있다. 실행되는 대상이 물리 머신으로 완전히 전환되면, 커널 영역의 내부에 존재하는 하이퍼바이저(210) 및 운영체제 감시자(220)는 보호되는 자원으로의 접근의 허용의 여부를 결정할 수 있다. 접근이 허용될 경우, 자원으로의 접근의 처리가 이루어질 수 있다. 또한, 접근이 허용되지 않는 경우, 자원으로의 접근에 대한 금지의 처리가 이루어질 수 있다.
물리 머신의 내부에서는 물리 머신을 위한 운영체제(240)가 동작할 수 있다. 운영체제(240)는 유저 영역 및 커널 영역을 포함할 수 있다. 유저 영역은 응용 프로그램이 동작하는 영역일 수 있다. 커널 영역은 운영체제의 핵심적인 기능을 수행하는 영역일 수 있다.
물리 머신의 커널 영역의 내부에는 하이퍼바이저(210) 및 운영체제 감시자(220)가 존재할 수 있다. 하이퍼바이저(210) 및 운영체제 감시자(220)는 물리 머신의 커널 영역의 내부에서 동작할 수 있다. 물리 머신의 커널은 하이퍼바이저(210) 및 운영체제 감시자(220)에 접근할 수 있다.
가상 머신의 내부에는 가상화된 운영체제(230)가 존재할 수 있다. 가상화된 운영체제(230)는 가상 머신의 내부에서 동작할 수 있다. 가상화된 운영체제(230)는 물리 머신 또는 물리 머신의 운영체제(240)와 유저 영역 및 커널 영역을 공유하도록 생성될 수 있다. 또한, 가상 머신의 상태의 변화는 물리 머신 또는 물리 머신의 운영체제(240)에서도 동일하게 반영될 수 있다.
가상 머신에서 하이퍼바이저(210) 및/또는 운영체제 감시자(220)가 변조되면, 하이퍼바이저(210) 및 운영체제 감시자(230)에 의한 운영체제 보안의 기능이 무력화될 수 있다. 따라서, 하이퍼바이저(210) 및 운영체제 감시자(220)는 가상화된 운영체제(230)에서는 제외될 수 있다. 말하자면, 하이퍼바이저(210) 및 운영체제 감시자(220)는 가상화된 운영체제(230)에서는 공유되지 않을 수 있다.
가상화된 운영체제(230)는 가상화된 상태를 스스로는 인지하지 못할 수 있다. 또한, 가상화된 운영체제(230)는 가상화된 상태를 인지하지 못하기 때문에 하이퍼바이저(210) 및 운영체제 감시자(220)의 존재를 인지하지 못할 수 있다. 만일, 가상화된 운영체제(230)에서 하이퍼바이저(210) 및/또는 운영체제 감시자(220)로의 접근이 발생한다면, 상기의 접근은 비정상적인 행위로 간주될 수 있고, 허용되지 않는 접근으로서 처리될 수 있다.
전술된 것과 같이, 물리 머신 및 가상 머신 간의 차이는 하이퍼바이저(210)에 의해 소정의 자원이 보호되는 것에 한정될 수 있다. 또는, 가상화된 운영체제(230) 및 물리 머신의 운영체제(240) 간의 차이는 하이퍼바이저(210)에 의해 소정의 자원이 보호되는 것에 한정될 수 있다.
도 6은 일 예에 따른 하이퍼바이저 및 운영체제 감시자의 역할을 설명한다.
도 6에서 도시된 것처럼, 하이퍼바이저(210) 및 운영체제 감시자(220)는 서로 간에 통신할 수 있다. 하이퍼바이저(210) 및 운영체제 감시자(220)는 서로 간의 통신을 통해 가상화된 운영체제(230)에 대한 감시 및 통제를 수행할 수 있다.
하이퍼바이저(210)는 보호되는 자원을 지정하는 기능 및 가상화된 운영체제(230)를 모니터링하는 기능을 운영체제 감시자(220)에게 제공할 수 있다. 운영체제 감시자(220)는 가상화된 운영체제(230)로부터 보호되는 자원을 지정할 수 있고, 보호되는 자원으로의 접근에 대한 허용 여부를 판단할 수 있다.
보호되는 자원은 운영체제의 동작과 관련된 중요한 자원일 수 있다. 보호되는 자원은 운영체제의 동작에 핵심적인 역할을 하는 자원일 수 있다. 예를 들면, 보호되는 자원은 악성 소프트웨어 등에 의해 변조될 경우, 운영체제의 보호 매커니즘이 무력화되는 자원을 수 있다. 또는, 보호되는 자원은 악성 소프트웨어 등에 의해 변조될 경우, 운영체제가 전복될 수 있는 자원일 수 있다.
운영체제의 보호 매커니즘은 커널 레벨 및 유저 레벨을 분리함으로써 레벨에 따른 권한을 차등화하는 기법을 포함할 수 있다. 또한, 운영체제의 보호 매커니즘은 자체적인 감사를 통해 운영체제의 무결성을 검사하는 기법을 포함할 수 있다. 악성 소프트웨어를 방어하는 백신 소프트웨어의 동작은 운영체제의 보호 매커니즘에 기반할 수 있기 때문에, 이러한 자원을 악성 소프트웨어로부터 보호하는 것이 요구될 수 있다.
예를 들면, 보호되는 자원은 커널 레벨 코드 영역의 자원, 커널 레벨 독출 전용 데이터 영역의 자원, 커널 레벨 레지스터의 자원 및 커널 레벨 테이블의 자원 등 중 적어도 하나를 포함할 수 있다. 또는, 보호되는 자원으로의 접근은, 커널 레벨 코드 영역, 커널 레벨 독출 전용 데이터 영역, 커널 레벨 레지스터 또는 커널 레벨 테이블에 기입하는 동작을 포함할 수 있다.
예를 들면, 보호되는 자원은 커널 레벨 코드, 커널 레벨 독출 가능 데이터, 커널 레벨 기입 가능 데이터, 커널 레벨 읽기 전용 데이터, 커널 레벨 테이블 및 커널 레벨 레지스터 중 적어도 하나를 포함할 수 있다.
하이퍼바이저(210)는 가상화된 운영체제(230)가 보호되는 자원으로 접근할 때, 상기의 접근을 검출할 수 있다. 접근이 검출되면, 하이퍼바이저(210)는 가상화된 운영체제(230)를 일시적으로 정지시킬 수 있다. 또한, 접근이 검출되면, 하이퍼바이저(210)는 하이퍼바이저(210)는 운영체제의 상태의 정보를 수집할 수 있다. 여기에서, 운영체제의 상태에 대한 정보는 가상화된 운영체제(230)의 상태의 정보 및 물리 머신의 운영체제(240)의 상태의 정보를 포함할 수 있다.
하이퍼바이저(210)는 가상화된 운영체제(230)가 보호되는 자원으로 접근한다는 것을 운영체제 감시자(220)에게 알릴 수 있다. 예를 들면, 하이퍼바이저(210)는 보호되는 자원으로의 접근에 대한 정보 및 운영체제의 상태에 대한 정보를 운영체제 감시자(220)에게 제공할 수 있다.
하이퍼바이저(210)는 물리 머신의 운영체제(240)의 스케줄러에 독립적인 스케줄러독립(schedulerindependent) 실행 흐름을 생성할 수 있고, 생성된 스케줄러독립 실행 흐름을 운영체제 감시자(220)에게 제공할 수 있다.
운영체제 감시자(220)는 물리 머신 및 가상화된 운영체제(230)에 의해 공유되는 자원 중 보호가 되어야 할 자원을 판별할 수 있다. 운영체제 감시자(220)는 판별된 자원을 보호되는 자원으로 설정할 수 있다. 보호되는 자원을 설정함에 있어서, 운영체제 감시자(220)는 하이퍼바이저(210)가 제공하는 기능을 사용할 수 있다.
전술된 것과 같이, 하이퍼바이저(210)는 자원으로의 접근을 허용할지 여부를 판단하기 위해 사용되는 정보를 운영체제 감시자(220)에게 제공할 수 있다.
운영체제 감시자(220)는 가상화된 운영체제(230)가 보호되는 자원으로 접근하는 것을 허용할지 여부를 판단할 수 있다. 예를 들면, 운영체제 감시자(220)는 하이퍼바이저(210)로부터 제공된 정보를 사용하여 가상화된 운영체제(230)의 보호되는 자원으로의 접근을 허용할지 여부를 판단할 수 있다.
운영체제 감시자(220)는 접근을 허용할지 여부를 판단한 결과를 하이퍼바이저(210)로 전송할 수 있다. 하이퍼바이저(210)는 운영체제 감시자(220)의 판단에 따른 처리를 수행할 수 있다.
운영체제 감시자(220) 하이퍼바이저(210)에 의해 제공된 스케줄러독립 실행 흐름을 사용하여 주기적으로 가상화된 운영체제(230)의 무결성을 검사할 수 있다.
운영체제 감시자(220)는 프로세스의 리스트, 메모리의 상태 및 프로세스의 상태 중 적어도 하나를 사용하여 가상화된 운영체제(230)의 무결성을 검사할 수 있다. 여기에서, 프로세스는 가상화된 운영체제(230)에서 실행되는 프로세스일 수 있다. 또는, 프로세스는 물리 머신의 운영체제(240)에서 실행되는 프로세스일 수도 있다.
도 7은 일 예에 따른 운영체제 보안 방법의 흐름도이다.
단계(710)에서, 하이퍼바이저(210)는 물리 머신의 정보 및 물리 머신에서 동작하고 있는 운영체제(240)의 정보를 수집할 수 있다.
단계(720)에서, 하이퍼바이저(210)는 수집된 정보에 기반하여 전자 장치(300)의 물리 머신과 동일한 환경을 갖는 가상 머신을 생성할 수 있다.
단계(730)에서, 하이퍼바이저(210)는 운영체제 감시자(220)의 요청에 따라 가상화된 운영체제(230)(즉, 가상 머신)에서 보호되는 자원을 지정할 수 있다.
보호되는 자원이 지정되면, 단계(740)에서, 하이퍼바이저(210)는 물리 머신과 자원을 공유하는 가상화된 운영체제(230)를 가상 머신 상에서 실행할 수 있다.
또한, 하이퍼바이저(210)는 가상화된 운영체제(230)에 대한 통제를 시작할 수 있다.
가상화된 운영체제(230)에 대한 통제와 관련하여 아래에서 도 8 및 도 9를 참조하여 상세하게 설명된다.
도 4를 참조하여 전술된 단계(420)는 단계들(710, 720 및 730)을 포함할 수 있다. 단계(420)는 단계(740)를 포함할 수 있다. 또는, 단계(740)는 단계(420)의 이후에 수행될 수 있다.
도 8은 일 예에 따른 자원으로의 접근에 대한 통제 방법의 흐름도이다.
가상화된 운영체제(230)가 자원으로 접근할 경우, 아래의 단계들(810, 820, 830 및 840)이 수행될 수 있다. 아래의 단계들(810, 820, 830 및 840)은 다른 실시예를 참조하여 전술된 단계들과 결합하여 수행될 수 있다. 예를 들면, 아래의 단계들(810, 820, 830 및 840)은 도 4를 참조하여 전술된 단계(420) 또는 도 7을 참조하여 전술된 단계(740)의 이후에 수행될 수 있다.
단계(810)에서, 하이퍼바이저(210)는 가상화된 운영체제(230)가 자원으로 접근하는 것을 인식할 수 있다.
자원으로의 접근은 자원에 대한 메모리 보호 기능 또는 레지스터 보호 기능에 의해 인식될 수 있다.
단계(820)에서, 하이퍼바이저(210)는 가상화된 운영체제(230)가 접근하는 자원이 접근 통제의 대상인 소정의 자원인지 여부를 판단할 수 있다.
단계(810) 및 단계(820)에서, 하이퍼바이저(210)는 가상화된 운영체제(230)가 전자 장치(300)의 소정의 자원으로 접근한다는 것을 인식할 수 있다.
소정의 자원은 전술된 보호되는 자원일 수 있다.
접근되는 자원이 소정의 자원인 경우, 단계(830)가 수행될 수 있다. 접근되는 자원이 소정의 자원이 아닌 경우, 단계(841)가 수행될 수 있다.
예를 들면, 소정의 자원은 커널 레벨 코드, 커널 레벨 독출 가능 데이터, 커널 레벨 기입 가능 데이터, 커널 레벨 읽기 전용 데이터, 커널 레벨 테이블 및 커널 레벨 레지스터 중 적어도 하나를 포함할 수 있다.
단계(830)에서, 운영체제 감시자(220)는 소정의 자원으로의 접근을 허용할 것인가의 여부를 판단할 수 있다.
하이퍼바이저(210)는 소정의 자원으로의 접근을 허용할지 여부를 판단하기 위해 사용되는 정보를 운영체제 감시자(220)에게 제공할 수 있다. 운영체제 감시자(220)는 하이퍼바이저(210)로부터 제공된 정보를 사용하여 소정의 자원으로의 접근을 허용할지 여부를 판단할 수 있다.
운영체제 감시자(220)는 가상화된 운영체제(230)의 상태의 정보 등에 기반하여 소정의 자원으로의 접근을 허용할 것인가의 여부에 대한 판단을 수행할 수 있다.
예를 들면, 운영체제 감시자(220)는 메모리 영역 화이트 리스트, 프로세스 화이트 리스트 및 프로세스 상태에 관련된 정보 중 적어도 하나에 기반하여 소정의 자원으로의 접근을 허용할 것인가의 여부를 판단할 수 있다.
운영체제 감시자(220)는 판단의 결과를 하이퍼바이저(210)에게 제공할 수 있다.
단계(840)에서, 하이퍼바이저(210)는 단계(830)에서의 판단의 결과에 기반하여 가상화된 운영체제(230)의 소정의 자원으로의 접근에 대한 제어를 수행할 수 있다. 또한, 운영체제 감시자(220)의 판단에 따라서, 하이퍼바이저(810)는 중단되었던 가상화된 운영체제(230)의 동작을 재개할 수 있다.
단계(840)는 단계(841) 및 단계(842)를 포함할 수 있다.
단계(830)에서의 판단의 결과에 따라 소정의 자원으로의 접근이 허용될 경우, 단계(841)가 수행될 수 있다. 예를 들면, 단계(830)에서, 운영체제 감시자(220)가 소정의 자원으로의 접근을 정상적인 접근으로 판단한 경우, 단계(841)가 수행될 수 있다.
단계(830)에서의 판단의 결과에 따라 소정의 자원으로의 접근이 허용되지 않을 경우, 단계(842)가 수행될 수 있다. 예를 들면, 단계(830)에서, 운영체제 감시자(220)가 소정의 자원으로의 접근을 비정상적인 접근으로 판단한 경우, 단계(842)가 수행될 수 있다.
단계(841)에서, 하이퍼바이저(210)는 소정의 자원으로의 접근을 정상으로 판단한 경우, 가상화된 운영체제(230)의 소정의 자원으로의 접근을 허용할 수 있다.
예를 들면, 운영체제 감시자(220)에 의해 소정의 자원으로의 접근이 정상으로 판단된 경우, 하이퍼바이저(210)는 접근을 허용하기 위해 중단되었던 가상화된 운영체제(230)의 동작을 재개(resume)할 수 있다. 동작이 재개되면, 가상화된 운영체제(230)는 소정의 자원에 접근할 수 있다.
단계(842)에서, 하이퍼바이저(210)는 소정의 자원으로의 접근이 비정상으로 판단된 경우, 가상화된 운영체제(230)의 소정의 자원으로의 접근을 허용하지 않을 수 있다.
예를 들면, 운영체제 감시자(220)가 소정의 자원으로의 접근을 비정상적인 접근으로 판단한 경우, 하이퍼바이저(210)는 가상화된 운영체제(230)의 동작을 중단시킬 수 있다.
예를 들면, 운영체제 감시자(220)가 소정의 자원으로의 접근을 비정상적인 접근으로 판단한 경우, 하이퍼바이저(210)는 가상화된 운영체제(230)에 이벤트를 삽입할 수 있다. 이벤트가 삽입된 후, 하이퍼바이저(210)는 가상화된 운영체제(230)의 동작을 재개할 수 있다. 동작이 재개되면, 가상화된 운영체제(230)는 소정의 자원에 접근하는 대신 삽입된 이벤트를 처리할 수 있다. 가상화된 운영체제(230)는 삽입된 이벤트를 통해 소정의 자원으로의 접근이 허용되지 않음을 인식할 수 있다. 이벤트는 예외(exception), 인터럽트(interrupt), 코드 실행 주소 이동(movement of code execution address), 메모리 정보 수정(memory information modification) 및 레지스터 자원 수정(register resource modification) 중 적어도 하나를 포함할 수 있다.
도 9는 일 예에 따른 가상화된 운영체제의 무결성을 검증하는 방법의 흐름도이다.
하이퍼바이저(210)는 가상화 기술을 사용하여 운영체제(240)의 스케줄러에 독립적인 스케줄러독립 실행 흐름을 생성할 수 있고, 스케줄러독립 실행 흐름을 사용하여 운영체제 감시자(220)를 실행할 수 있다.
아래의 단계들(910, 920, 930 및 940)에서, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성을 주기적으로 검사할 수 있다. 아래의 단계들(910, 920, 930 및 940)은 다른 실시예를 참조하여 전술된 단계들과 결합되어 수행될 수 있다. 예를 들면, 아래의 단계들(910, 920, 930 및 940)은 도 4를 참조하여 전술된 단계(420), 도 7을 참조하여 전술된 단계(740) 또는 도 8을 참조하여 전술된 단계(840)의 이후에 수행될 수 있다.
단계(910)에서, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성을 검사할지 여부를 결정할 수 있다.
예를 들면, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성을 주기적으로 검사할 수 있다. 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성을 검사한 후 기정의된 시간이 경과하면 다시 가상화된 운영체제(230)의 무결성을 검사할 수 있다.
가상화된 운영체제(230)의 무결성을 검사하는 것이 결정되면, 단계(920)가 수행될 수 있다. 가상화된 운영체제(230)의 무결성을 검사하지 않는 것이 결정되면, 절차가 종료할 수 있다.
단계(920)에서, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성의 검사를 수행할 수 있다.
운영체제 감시자(220)는 가상화된 운영체제(230)와 관련된 소정의 정보를 감시함으로써 가상화된 운영체제(230)의 무결성을 감시할 수 있다. 예를 들면, 소정의 정보는 프로세서의 레지스터의 상태, 메모리의 상태 및 프로세스의 상태 중 적어도 하나를 포함할 수 있다.
단계(930)에서, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성에 문제가 없는지 여부를 판단할 수 있다. 무결성에 문제가 없는 경우, 절차가 종료할 수 있다. 무결성에 문제가 있는 경우, 단계(940)가 수행될 수 있다.
단계(940)에서, 가상화된 운영체제(230)의 무결성에 문제가 있는 것으로 판단된 경우, 운영체제 감시자(220)는 가상화된 운영체제(230), 물리 머신의 운영체제(240) 또는 전자 장치(300)에 대한 위협이 있다고 간주할 수 있고, 상기의 위협에 대한 대응을 수행할 수 있다. 예를 들면, 운영체제 감시자(220)는 가상화된 운영체제(230)의 무결성에 문제가 있는 것으로 판단된 경우, 하이퍼바이저(210)를 통해 가상화된 운영체제(230)의 실행을 중단시킬 수 있다.
또는, 단계(940)에서, 가상화된 운영체제(230)의 무결성에 문제가 있는 경우 운영체제 감시자(220)는 가상화된 운영체제(230), 물리 머신의 운영체제(240) 또는 전자 장치(300)에 대한 위협이 존재하는지 여부를 판단할 수 있다.
운영체제 감시자(220)는 가상화된 운영체제(230)의 행위 정보에 기반하여 위협이 존재하는지 여부를 판단할 수 있다. 행위 정보는 프로세서의 생성, 프로세스의 종료, 자원 접근, 커널 모듈의 실행, 커널 모듈의 종료, 유저 라이브러리(user library)의 실행 및 유저 라이브러리의 종료 중 적어도 하나에 대한 이력 정보를 포함할 수 있다. 운영체제 감시자(220)는 가상화된 운영체제(230)에 대한 위협이 존재하는 것으로 판단한 경우, 하이퍼바이저(210)를 통해 가상화된 운영체제(230)의 실행을 중단시킬 수 있다.
도 10은 일 예에 따른 복수의 프로세싱 유닛들에 의한 하이퍼바이저의 실행 방법의 흐름도이다.
도 7을 참조하여 전술된 단계(740)는 후술될 단계들(1010, 1020, 1030, 1040, 1050, 1060, 1070 및 1080)을 포함할 수 있다. 또한, 후술될 단계들(1010, 1020, 1030, 1040, 1050, 1060, 1070 및 1080)의 적어도 일부는 전자 장치(300)의 운영체제(240) 또는 전자 장치(300)의 프로세서(310)에 의해서도 수행될 수 있다.
전자 장치(300)의 프로세서(310)는 복수의 프로세싱 유닛들을 포함할 수 있다. 복수의 프로세싱 유닛들은 각각 하이퍼바이저(210)를 실행할 수 있다. 아래의 단계들(1010, 1020, 1030, 1040, 1050, 1060, 1070 및 1080)은 복수의 프로세싱 유닛들의 각각 하이퍼바이저(210)를 실행하는 방법을 설명한다.
단계(1010)에서, 하이퍼바이저(210)는 물리 머신에 대하여 수집된 정보를 사용하여 프로세서(310) 내의 프로세싱 유닛(processing unit)의 개수를 확인할 수 있다.
물리 머신에 대하여 수집된 정보는 도 7을 참조하여 전술된 단계(710)에서 수집된 정보일 수 있다. 물리 머신에 대하여 수집된 정보는 프로세싱 유닛의 개수를 포함할 수 있다.
프로세싱 유닛이 복수인 경우, 복수의 프로세싱 유닛들에 대하여 단계들(1020, 1030, 1040, 1050, 1060, 1070 및 1080)이 수행될 수 있다.
단계(1020)에서, 하이퍼바이저(210)는 프로세싱 유닛 별로 하이퍼바이저(210)를 생성 및 실행할 수 있다. 프로세싱 유닛 별로 하이퍼바이저(210)가 할당될 수 있다. 단계(1020)에서, 프로세싱 유닛들의 하이퍼바이저들이 생성될 수 있고, 생성된 하이퍼바이저들이 실행될 수 있다. 단계(1020)에 의해 하이퍼바이저(210)의 실행이 프로세싱 유닛 별로 분리될 수 있다.
단계(1030)에서, 프로세싱 유닛들의 하이퍼바이저들은 공통 실행 루틴(routine)을 수행할 수 있다.
단계(1040)에서, 프로세싱 유닛의 하이퍼바이저(210)는 프로세싱 유닛 별로 특수한 실행 루틴이 존재하는지 여부를 판단할 수 있다.
단계(1050)에서, 프로세싱 유닛의 특수한 실행 루틴이 존재하는 경우, 프로세싱 유닛은 개별적으로 특수한 실행 루틴을 수행할 수 있다.
단계(1060)에서, 하이퍼바이저(210)는 프로세싱 유닛 별로 하이퍼바이저(210)가 실행되었는지 여부를 확인할 수 있다.
단계(1070)에서, 하이퍼바이저(210)는 모든 프로세싱 유닛들에서 하이퍼바이저들이 동작 중인지 여부를 검사할 수 있다. 모든 프로세싱 유닛들에서 하이퍼바이저들이 동작 중이면 단계(1080)가 수행될 수 있다. 하이퍼바이저(210)가 동작하지 않는 프로세싱 유닛이 존재하면 단계(1060)가 반복될 수 있다.
예를 들면, 반복된 단계(1060)에서, 프로세싱 유닛 별로 하이퍼바이저(210)가 재실행될 수 있다. 또는, 모든 프로세싱 유닛들에서 하이퍼바이저들이 동작하는 것을 대기하기 위해, 반복된 단계(1060)에서 기정의된 시간 동안 동작 중인 하이퍼바이저들은 대기(wait)할 수 있다.
단계(1080)에서, 단계(1080)에서, 프로세싱 유닛들의 하이퍼바이저들은 하이퍼바이저 별로 가상화된 운영체제(230)를 실행할 수 있고, 가상화된 운영체제(230)에 대한 통제를 시작할 수 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CDROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기광 매체(magnetooptical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
200: 운영체제 보안 시스템
210: 하이퍼바이저
220: 운영체제 감시자
230: 가상화된 운영체제
300: 전자 장치

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 프로그램을 저장하는 메모리;
    상기 적어도 하나의 프로그램을 실행하는 프로세서
    를 포함하고,
    상기 적어도 하나의 프로그램은,
    가상화된 운영체제의 코드; 및
    하이퍼바이저의 코드
    를 포함하고,
    상기 가상화된 운영체제는 상기 전자 장치의 운영체제의 내부에서 생성되고, 가상 머신 상에서 실행되고,
    상기 가상화된 운영체제는 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유하고,
    상기 가상화된 운영체제가 상기 전자 장치의 운영체제의 내부에서 생성되고, 상기 가상화된 운영체제가 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유함에 따라 상기 가상 머신을 위한 별도의 운영체제 및 자원이 요구되지 않고,
    상기 하이퍼바이저는 상기 가상화된 운영체제의 상기 공유되는 자원으로의 접근을 제어하는 전자 장치.
  2. 전자 장치에 의해 수행되는,
    하이퍼바이저를 생성하는 단계; 및
    가상화된 운영체제를 생성하는 단계
    를 포함하고,
    상기 가상화된 운영체제는 상기 전자 장치의 운영체제의 내부에서 생성되고, 가상 머신 상에서 실행되고,
    상기 가상화된 운영체제는 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유하고,
    상기 가상화된 운영체제가 상기 전자 장치의 운영체제의 내부에서 생성되고, 상기 가상화된 운영체제가 상기 전자 장치의 운영체제와 상기 전자 장치의 운영체제의 자원을 공유함에 따라 상기 가상 머신을 위한 별도의 운영체제 및 자원이 요구되지 않고,
    상기 하이퍼바이저는 상기 가상화된 운영체제의 상기 자원으로의 접근을 제어하는 전자 장치의 운영 방법.
  3. 제2항에 있어서,
    상기 전자 장치의 프로세서는 복수의 프로세싱 유닛들을 포함하고,
    상기 복수의 프로세싱 유닛들은 각각 상기 하이퍼바이저를 각각 실행하는 전자 장치의 운영 방법.
  4. 제2항에 있어서,
    상기 하이퍼바이저 및 상기 가상화된 운영체제는 상기 전자 장치의 운영체제의 내부에 생성되는 전자 장치의 운영 방법.
  5. 제2항에 있어서,
    상기 가상화된 운영체제는 상기 자원의 공유를 통해 가상화된 운영체제의 내부에서 수행되고 있는 응용 프로그램에게 가상화 이전의 환경과 동일한 환경을 제공하는 전자 장치의 운영 방법.
  6. 제2항에 있어서,
    상기 가상화된 운영체제를 생성함에 있어서, 상기 전자 장치에서의 실행 흐름은 상기 전자 장치의 운영체제로부터 상기 가상화된 운영체제의 내부로 중단 없이 연결되는 전자 장치의 운영 방법.
  7. 제2항에 있어서,
    상기 가상화된 운영체제에 대한 감시를 수행하는 운영체제 감시자를 실행하는 단계
    를 더 포함하고,
    상기 운영체제 감시자를 실행하는 단계는 상기 하이퍼바이저를 생성하는 단계의 이전에 수행되거나, 상기 하이퍼바이저를 생성하는 단계 및 상기 가상화된 운영체제를 생성하는 단계의 사이에서 수행되거나, 상기 가상화된 운영체제를 생성하는 단계의 이후에 수행되는 전자 장치의 운영 방법.
  8. 제7항에 있어서,
    상기 운영체제 감시자는 가상화 기술의 선점 타이머(preemption timer)에 의해 생성됨에 따라 상기 운영체제의 스케줄러에 독립적인 실행 흐름으로 실행되는 전자 장치의 운영 방법.
  9. 제7항에 있어서,
    상기 운영체제 감시자는 상기 가상화된 운영체제와 관련된 소정의 정보를 감시함으로써 상기 가상화된 운영체제의 무결성을 검사하는 전자 장치의 운영 방법.
  10. 제9항에 있어서,
    상기 소정의 정보는 프로세서의 레지스터의 상태, 메모리의 상태 및 프로세스의 상태 중 적어도 하나를 포함하는 전자 장치의 운영 방법.
  11. 제9항에 있어서,
    상기 운영체제 감시자는 상기 가상화된 운영체제의 상기 무결성에 문제가 있는 경우 상기 가상화된 운영체제에 대한 위협이 존재하는지 여부를 판단하는 전자 장치의 운영 방법.
  12. 제11항에 있어서,
    상기 운영체제 감시자는 상기 가상화된 운영체제의 행위 정보에 기반하여 상기 위협이 존재하는지 여부를 판단하는 전자 장치의 운영 방법.
  13. 제2항에 있어서,
    상기 가상화된 운영체제를 생성하는 단계의 이후에 수행되는,
    상기 가상화된 운영체제의 상기 전자 장치의 소정의 자원으로의 접근을 인식하는 단계;
    상기 접근을 허용할 것인가의 여부에 대한 판단을 수행하는 단계; 및
    상기 판단의 결과에 기반하여 상기 접근에 대한 제어를 수행하는 단계
    를 더 포함하는 전자 장치의 운영 방법.
  14. 제13항에 있어서,
    상기 소정의 자원은 커널 레벨 코드, 커널 레벨 독출 가능 데이터, 커널 레벨 기입 가능 데이터, 커널 레벨 읽기 전용 데이터, 커널 레벨 테이블 및 커널 레벨 레지스터 중 적어도 하나를 포함하는 전자 장치의 운영 방법.
  15. 제13항에 있어서,
    상기 접근을 허용할 것인지의 여부는 프로세스 상태에 관련된 정보에 기반하여 판단되는 전자 장치의 운영 방법.
  16. 제13항에 있어서,
    상기 접근은 상기 자원에 대한 레지스터 보호 기능에 의해 인식되는 전자 장치의 운영 방법.
  17. 제13항에 있어서,
    상기 접근이 비정상적인 접근으로 판단된 경우, 상기 가상화된 운영체제에는 이벤트가 삽입되는 전자 장치의 운영 방법.
  18. 제17항에 있어서,
    상기 이벤트는 예외, 메모리 정보 수정 및 레지스터 자원 수정 중 적어도 하나를 포함하는 전자 장치의 운영 방법.
  19. 제2항에 있어서,
    상기 가상화된 운영체제는 가상 머신 상에서 동작하고, 상기 가상 머신은 상기 전자 장치의 물리 머신과 동일한 환경을 갖는 전자 장치의 운영 방법.
  20. 제2항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020150170172A 2015-12-01 2015-12-01 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치 KR101729680B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150170172A KR101729680B1 (ko) 2015-12-01 2015-12-01 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치
US15/138,542 US10365939B2 (en) 2015-12-01 2016-04-26 Method and apparatus for providing operating system based on lightweight hypervisor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150170172A KR101729680B1 (ko) 2015-12-01 2015-12-01 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101729680B1 true KR101729680B1 (ko) 2017-04-25

Family

ID=58703586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150170172A KR101729680B1 (ko) 2015-12-01 2015-12-01 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치

Country Status (2)

Country Link
US (1) US10365939B2 (ko)
KR (1) KR101729680B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052440A (ko) * 2017-11-08 2019-05-16 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
CN113448682A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器加载方法、装置及电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3948531A4 (en) * 2019-03-28 2022-10-26 INTEL Corporation DIRECT MEMORY ACCESS TRACKING FOR PASS-THROUGH DEVICES IN VIRTUAL ENVIRONMENTS
KR102526681B1 (ko) * 2021-07-13 2023-05-02 한국전자통신연구원 가상 머신 보안 위협 방지 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512939A (ja) * 2005-10-21 2009-03-26 ヴァー2アス インコーポレイテッド 複数のオペレーティングシステムのインスタンスが単一のマシン資源を安全に共有することを可能とする、オペレーティングシステムの仮想化、を有するコンピュータセキュリティ方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US20080127348A1 (en) 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8856782B2 (en) * 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US8719936B2 (en) * 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US8578483B2 (en) 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US9098698B2 (en) * 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
KR100985074B1 (ko) 2009-02-05 2010-10-04 주식회사 안철수연구소 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR101213572B1 (ko) 2010-12-03 2012-12-18 한국과학기술원 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법
WO2012135192A2 (en) 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
KR101467877B1 (ko) 2012-11-28 2014-12-11 주식회사 잉카인터넷 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
US10127379B2 (en) * 2013-03-13 2018-11-13 Mcafee, Llc Profiling code execution
US10725823B2 (en) * 2014-10-22 2020-07-28 Telefonaktiebolaget Lm Ericsson (Publ) Coordinated scheduling between real-time processes
US9286105B1 (en) * 2015-03-16 2016-03-15 AO Kaspersky Lab System and method for facilitating joint operation of multiple hypervisors in a computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512939A (ja) * 2005-10-21 2009-03-26 ヴァー2アス インコーポレイテッド 複数のオペレーティングシステムのインスタンスが単一のマシン資源を安全に共有することを可能とする、オペレーティングシステムの仮想化、を有するコンピュータセキュリティ方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052440A (ko) * 2017-11-08 2019-05-16 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
KR102505996B1 (ko) * 2017-11-08 2023-03-08 한국전자통신연구원 가상 머신 프로세서의 원격 처리 장치 및 방법
CN113448682A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器加载方法、装置及电子设备
CN113448682B (zh) * 2020-03-27 2024-04-19 支付宝(杭州)信息技术有限公司 一种虚拟机监控器加载方法、装置及电子设备

Also Published As

Publication number Publication date
US10365939B2 (en) 2019-07-30
US20170153908A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
US9443083B2 (en) Systems, methods and apparatuses for protection of antivirus software
US9117081B2 (en) Strongly isolated malware scanning using secure virtual containers
US8612633B2 (en) Virtual machine fast emulation assist
EP2864876B1 (en) Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
KR100984203B1 (ko) 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법
US10095538B2 (en) Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
EP3022648B1 (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory
US8490086B1 (en) Filtering I/O communication of guest OS by inserting filter layer between hypervisor and VM and between hypervisor and devices
WO2015176048A1 (en) Aspects of hardware virtualization, hypervisors, code detection
EP3048551B1 (en) Systems and methods for active operating system kernel protection
US20160162685A1 (en) Monitoring application execution in a clone of a virtual computing instance for application whitelisting
US10210326B2 (en) USB stack isolation for enhanced security
EP3991073B1 (en) Behavior-based vm resource capture for forensics
KR101729680B1 (ko) 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치
US10191858B2 (en) Virtual machine memory lock-down
EP3274896B1 (en) Configuration of a memory controller for copy-on-write with a resource controller
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
TW201606499A (zh) 於能夠在複數個特權層級執行指令的資料處理裝置中的效能監控
US9886387B2 (en) Method and system for performing on-demand data write through based on virtual machine types
US9575658B2 (en) Collaborative release of a virtual disk

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant