KR102526681B1 - 가상 머신 보안 위협 방지 장치 및 방법 - Google Patents

가상 머신 보안 위협 방지 장치 및 방법 Download PDF

Info

Publication number
KR102526681B1
KR102526681B1 KR1020210091593A KR20210091593A KR102526681B1 KR 102526681 B1 KR102526681 B1 KR 102526681B1 KR 1020210091593 A KR1020210091593 A KR 1020210091593A KR 20210091593 A KR20210091593 A KR 20210091593A KR 102526681 B1 KR102526681 B1 KR 102526681B1
Authority
KR
South Korea
Prior art keywords
hypervisor
monitoring
virtual machine
thread
virtualization
Prior art date
Application number
KR1020210091593A
Other languages
English (en)
Other versions
KR20230011534A (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 KR1020210091593A priority Critical patent/KR102526681B1/ko
Priority to US17/489,032 priority patent/US11893107B2/en
Publication of KR20230011534A publication Critical patent/KR20230011534A/ko
Application granted granted Critical
Publication of KR102526681B1 publication Critical patent/KR102526681B1/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/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/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/54Monitoring 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 adding security routines or objects to programs
    • 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
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

가상 머신 보안 위협 방지 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치는 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 호스트 커널의 가상화용 하이퍼 바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 실행하고, 감시용 하이퍼 바이저가, 상기 가상화용 하이퍼 바이저의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하고, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 상기 가상화용 하이퍼 바이저와 분리된 영역에 위치한다.

Description

가상 머신 보안 위협 방지 장치 및 방법 {APPARATUS AND METHOD FOR PREVENTING SECURITY THREAT TO VIRTUAL MACHINES}
본 발명은 가상 머신(Virtual Machine, VM) 기술에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 서비스에 있어서 가상 머신에 대한 공격을 탐지 및 방어하여 시스템의 보안성을 보장하기 위한 기술에 관한 것이다.
가상 머신(Virtual Machine, VM) 기술은 물리 머신(physical machine)의 자원을 논리적으로 분리하여, 다수의 가상 머신(VM)을 생성 및 운영하는 기술이다. 이러한 가상 머신 기술은 클라우드 컴퓨팅 기술의 핵심을 담당하고 있다. 클라우드 서비스 사업자는 1대의 물리 머신에 다수의 가상 머신을 구동함으로써 물리 머신의 자원을 효율적으로 활용할 수 있으며, 가상 머신을 복제, 백업, 또는 다른 물리 머신으로 이관함으로써 물리 머신의 장애에 효과적으로 대처할 수 있다. 사용자의 PC에 가상 머신을 구동하여 논리적 망 분리를 구현하는 CBC(Client-Based Computing) 솔루션 역시 앞서 설명한 가상 머신 기술의 장점을 적극 활용하고 있다.
이러한 가상 머신 기술의 핵심에는 가상 머신을 관리하고 통제하는 하이퍼바이저(hypervisor)가 있다. 하이퍼바이저는 가상 머신과 물리 머신을 게스트 머신(guest machine)과 호스트 머신(host machine)으로 분리하여 게스트 머신을 호스트 머신으로부터 격리(isolation)한다. 이처럼 가상 머신, 즉 게스트 머신은 하이퍼바이저에 의해 격리 및 통제 되므로, 가상 머신이 악의적인 사용자에게 점거당해도 피해가 다른 가상 머신이나 호스트 머신에 쉽게 전이되지 않는다. 이러한 특징 때문에 클라우드 서비스 사업자는 서로 다른 사용자의 가상 머신을 하나의 물리 머신에서 구동할 수 있다.
그러나, 하이퍼바이저 또는 가상 머신을 구동하는 하드웨어 에뮬레이션(hardware emulation) 기능에 오류가 있는 경우, 이를 이용하여 가상 머신을 탈출(escape)하고 호스트 머신이나 다른 게스트 머신에 악의적인 영향을 미치는 것이 가능하다. 하이퍼바이저는 특성상 호스트 머신과 게스트 머신을 격리해야 하므로, 소프트웨어를 이용하여 획득할 수 있는 가장 높은 권한에서 동작한다. 하이퍼바이저의 오류가 악의적인 사용자에게 노출되면, 이를 통해 게스트 머신에서 탈출하여 호스트 머신과 게스트 머신을 점거할 수 있다. 만일 가상 머신을 구성하는 하드웨어 에뮬레이션 기능에 오류가 있다면, 악의적인 사용자는 이를 통해 가상 머신을 탈출하고 하드웨어 에뮬레이션 기능이 동작하는 권한을 획득할 수 있다. 그 후 다른 가상 머신이 하드웨어 에뮬레이션 기능을 수행할 때 악성 행위(malicious behavior)를 수행하는 것이 가능하다.
이러한 기존 기술의 한계를 극복하고 가상 머신 탈출을 방어할 수 있는 새로운 형태의 기술이 필요하다. 가상 머신 탈출을 탐지 및 방어하여 시스템의 보안성을 보장하는 신규 기술은, 가상화용 하이퍼바이저(hypervisor for virtualization)를 감시하기 위해 감시용 하이퍼바이저(hypervisor for monitoring)를 생성하고, 가상화용 하이퍼바이저 및 호스트 머신의 악성 행위 탐지를 위해 감시용 샌드박스(sandbox for monitoring)를 생성해야 한다. 또한, 필요 이상으로 높은 권한에서 동작하는 가상화용 하이퍼바이저의 권한을 낮추어 감시용 샌드박스 내부에서 동작시키고 감시해야 하며, 가상화용 하이퍼바이저가 수행하는 가상화 관련 명령어를 감시용 하이퍼바이저가 대신 수행해야 한다. 끝으로, 감시용 샌드박스에서 가상 머신의 하드웨어 에뮬레이션 기능이나 호스트 머신의 행위를 감시해야 한다. 감시한 결과, 가상 머신 탈출이라고 판단되면 이를 통제하는 것이 필요하다.
한편, 한국공개특허 제 10-2018-0116971 호“하이퍼바이저 기반의 가상 머신 격리 장치 및 방법”는 가상화 시스템에서 가상 머신을 격리하여, 부채널(은닉 채널) 공격을 방지하는 장치 및 방법에 관하여 개시하고 있다.
본 발명은 클라우드 컴퓨팅 환경에서 가상 머신의 보안 위협으로부터 시스템을 안전하게 보호하는 것을 목적으로 한다.
또한, 본 발명은 가상 머신 사용자의 주요 정보를 보호하고 시스템 인프라를 안전하게 운영하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치는 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 호스트 커널의 가상화용 하이퍼 바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 실행하고, 감시용 하이퍼 바이저가, 상기 가상화용 하이퍼 바이저의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하고, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 상기 가상화용 하이퍼 바이저와 분리된 영역에 위치한다.
이 때, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 최상위 권한이 설정되고, 상기 가상 머신과 상기 가상화용 하이퍼 바이저에 의한 접근이 차단될 수 있다.
이 때, 상기 보안 위협 이벤트는 상기 감시 영역에 기설정된 중단 포인트에 대한 액세스에 의해 발생될 수 있다.
이 때, 상기 중단 포인트는 페이지 테이블 권한 설정, 브레이크포인트 설정 및 CPU 가상화의 레지스터 감시 설정 중 적어도 하나에 의해 상기 감시 영역에 설정될 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 방법은 가상 머신 보안 위협 방지 장치의 가상 머신 보안 위협 방지 방법에 있어서, 호스트 커널의 가상화용 하이퍼 바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 실행하는 단계 및 감시용 하이퍼 바이저가, 상기 가상화용 하이퍼 바이저의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하는 단계를 포함하고, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 상기 가상화용 하이퍼 바이저와 분리된 영역에 위치한다.
이 때, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 최상위 권한이 설정되고, 상기 가상 머신과 상기 가상화용 하이퍼 바이저에 의한 접근이 차단될 수 있다.
이 때, 상기 보안 위협 이벤트는 상기 감시 영역에 기설정된 중단 포인트에 대한 액세스에 의해 발생될 수 있다.
이 때, 상기 중단 포인트는 페이지 테이블 권한 설정, 브레이크포인트 설정 및 CPU 가상화의 레지스터 감시 설정 중 적어도 하나에 의해 상기 감시 영역에 설정될 수 있다.
이 때, 상기 통제하는 단계는 상기 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 통제하는 단계는 상기 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 통제하는 단계는 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 통제하는 단계는 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 통제하는 단계는 상기 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
본 발명은 클라우드 컴퓨팅 환경에서 가상 머신의 보안 위협으로부터 시스템을 안전하게 보호할 수 있다.
또한, 본 발명은 가상 머신 사용자의 주요 정보를 보호하고 시스템 인프라를 안전하게 운영할 수 있다.
도 1은 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 가상 머신 보안 위협을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 과정을 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 방법을 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 변조 이벤트 탐지 과정을 나타낸 동작흐름도이다.
도 6은 본 발명의 일실시예에 따른 비인가 프로세스와 스레드 생성 탐지 과정을 나타낸 동작흐름도이다.
도 7은 본 발명의 일실시예에 따른 비인가 프로세스 및 스레드의 권한 상승 탐지 과정을 나타낸 동작흐름도이다.
도 8은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치는 하드웨어(110), 호스트 커널(120) 및 호스트 애플리케이션(130)을 포함한다,
가상 머신 보안 위협 방지 장치는 하드웨어(110) 위에 호스트 커널(120)의 가상화용 하이퍼 바이저가 구동되고 그 위에 호스트 애플리케이션(130)에서 다수의 가상 머신을 구동시킬 수 있다.
가상화용 하이퍼바이저는 가상 머신 간의 격리와 하드웨어 자원의 배분을 담당하며, 특권 가상 머신(privileged virtual machine)을 구동하여 주변장치 입출력(I/O)에 활용될 수 있다.
가상 머신은 별도의 운영체제(operating system, OS)가 구동되며 게스트 머신에서 구동되는 게스트 커널, 게스트 머신에서 구동되는 응용프로그램인 게스트 애플리케이션을 포함할 수 있다.
호스트 커널(120)의 가상화용 하이퍼바이저는 하드웨어(110) 위에 물리 머신(physical machine)용 운영체제 인 호스트(host)용 운영체제를 구동하고, 그 위에 가상화용 하이퍼바이저를 구동시킬 수 있다.
따라서, 가상화용 하이퍼 바이저는 호스트 커널의 일부로 구성되며, 가상화용 하이퍼바이저는 가상 머신을 호스트 애플리케이션 형태로 구동하나, 내부에는 게스트 커널과 게스트 애플리케이션이 구동될 수 있다.
일반적인 가상화용 하이퍼 바이저는 가상화와 관련된 기능을 수행해야 하므로 실질적인 권한은 호스트 커널 권한(Ring 0)보다 더 높은 하이퍼 바이저 권한(Ring -1)으로 동작할 수 있다.
이 때, 가상 머신 보안 위협 방지 장치는 가상 머신 탈출과 같은 공격 및 보안 위협을 탐지 및 방어하기 위해 가상화용 하이퍼바이저(Ring -1)를 감시용 샌드박스(sandbox for monitoring)(20)에 위치시켜 호스트 커널의 권한(Ring 0)으로 낮추어 설정할 수 있다.
이 때, 가상 머신 보안 위협 방지 장치는 가상화용 하이퍼 바이저를 감시하기 위한 감시용 하이퍼바이저(10)는 호스트 커널(120)에서 가상화용 하이퍼 바이저와 분리된 영역에 생성하고, 호스트 커널(120)내에서 최상위 권한(Ring -1)으로 설정할 수 있다.
이 때, 감시용 하이퍼 바이저(hypervisor for monitoring)(10)는 감시용 샌드박스를 통제할 수 있다.
이 때, 감시용 하이퍼 바이저(10)는 호스트 커널(120)에서 별도의 메모리 영역에서 구동되며, 가상화용 하이퍼 바이저와 호스트 커널(120) 영역에서 임의로 감시용 하이퍼 바이저(20)로 접근할 수 없다.
감시용 샌드박스(20)의 내부에 위치한 가상화용 하이퍼바이저는 감시용 샌드박스(20)와 감시용 하이퍼 바이저(10)를 인식하지 못한다.
이로 인해, 외부 공격자가 가상 머신을 관리하려 시도하면, 권한 하락으로 인해 가상 머신 관리와 관련된 가상화 명령어들은 모두 중단될 수 있다.
이 때, 감시용 하이퍼 바이저(10)는 중단된 가상화 명령어를 검증한 후에, 가상화용 하이퍼 바이저 대신 실행할 수 있다.
감시용 샌드박스(20)는 내부에 가상화용 하이퍼바이저뿐 만 아니라 통제가 필요한 호스트 커널의 코드 영역 및 데이터 영역도 포함할 수 있다.
또한, 감시용 샌드박스(20)는 필요에 따라, 호스트 커널 전체 영역을 모두 감시용 샌드박스에 포함하는 것도 가능하며, 이와 같은 경우 호스트 애플리케이션(130)이 요청하는 모든 호스트 커널 관련 기능은 감시용 하이퍼바이저(10) 및 감시용 샌드박스(20)의 통제를 받을 수 있다.
도 2는 본 발명의 일실시예에 따른 가상 머신 보안 위협을 나타낸 도면이다.
도 2를 참조하면, 클라우드 서비스 사업자가 다수의 가상 머신을 불특정 다수의 사용자에게 임대한 상황에서, 악의적인 사용자가 종래 가상화 시스템의 가상 머신에 대한 가상 머신 탈출(Virtual Machine Escape)을 시도하는 보안 위협을 나타낸 것을 알 수 있다.
이 때, 특정 가상 머신이 악의적인 사용자에게 탈취 당하거나 혹은 사용자가 악의적인 목적으로 가상 머신을 임대한 경우, 악의적인 사용자는 다른 가상 머신 내부의 주요 정보를 획득하기 위해 가상 머신 탈출을 시도할 수 있다.
먼저, 악의적인 사용자는 가상 머신의 게스트 애플리케이션과 게스트 커널을 변조하여 가상 머신을 탈취할 수 있다.
그 후, 악의적인 사용자는 가상화용 하이퍼 바이저의 취약점을 이용하여 하이퍼바이저를 공격하고 점거할 수 있다.
이 때, 악의적인 사용자는 가상화용 하이퍼 바이저의 권한(RING -1)이 호스트 커널(120)의 권한(RING 0)보다 높게 설정되어 있기 때문에 호스트 커널 역시 점거가 가능하며, 악성 코드(malware)를 침투시켜 악성 행위(malicious behavior)를 수행할 수 있다.
이 때, 악의적인 사용자는 점거한 호스트 커널(120)과 가상화용 하이퍼 바이저를 이용하면, 다른 사용자의 가상 머신 및 호스트 애플리케이션 영역에 악성 코드를 침투시킬 수 있으며 주요 정보를 유출하거나 추가적인 악성 행위를 수행할 수 있다.
도 3은 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 과정을 나타낸 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치는 도 2에서 설명한 악의적인 사용자에 대한 가상 머신 탈출과 같은 보안 위협을 방지할 수 있다.
가상 머신 보안 위협 방지 과정은 하이퍼 바이저 서비스가 처리되는 과정(H-1 내지 H-6)과 시스템 서비스가 처리되는 과정(S-1 내지 S-4)을 나타낸 것을 알 수 있다.
먼저 하이퍼 바이저 서비스 처리 과정은 가상화용 하이퍼 바이저에 의해 생성된 가상 머신은 구동 중에 가상 머신(30)으로부터 다양한 하이퍼 바이저 서비스를 요청할 수 있다(H-1).
이 때, 가상 머신(30)은 필요한 하이퍼 바이저 서비스를 하이퍼콜(hypercall)의 형태로 요청할 수 있다.
감시용 하이퍼 바이저(10)는 하이퍼콜을 수신하고, 구동되고 있는 감시용 샌드박스(20)에 진입하여 가상화용 하이퍼바이저 내부의 서비스를 실행할 수 있다(H-2).
가상화용 하이퍼 바이저는 감시용 샌드박스 및 감시용 하이퍼바이저의 존재를 인식하지 못하고 가상화 명령어를 실행하며, 실행되는 가상화 명령어는 모두 중단되고 감시용 하이퍼 바이저(10)가 대신 처리할 수 있다.
가상화용 하이퍼 바이저는 하이퍼 바이저 서비스를 실행하던 중 하드웨어 에뮬레이션(hardware emulation)이 필요한 경우, 가상 머신 내부의 하드웨어 에뮬레이션 영역을 실행하고(H-3), 가상 머신(30)으로부터 실행 결과를 반환 받을 수 있다(H-4).
가상화용 하이퍼 바이저는 하이퍼 바이저 서비스를 감시용 하이퍼바이저(10)의 감시를 받아 실행한 결과를 감시용 하이퍼 바이저(10)에게 전달할 수 있다(H-5).
이 때, 감시용 하이퍼바이저(10)는 서비스를 실행한 결과를 다시 가상 머신(30)으로 전달할 수 있다(H-6).
이 때, 감시용 하이퍼바이저(10)는 서비스를 실행한 결과를 전달하는 작업에 상응하는 가상화 명령어를 중단시킨 뒤 대신 처리하고, 가상 머신(30)으로 서비스를 실행한 결과를 전달할 수 있다. 이와 같이 하이퍼바이저 서비스와 관련된 작업이 감시용 하이퍼바이저의 통제 하에 감시용 샌드박스 내부에서 실행되므로, 호스트 커널의 주요 영역이 변조되거나 가상화용 하이퍼바이저가 변조되는 것을 탐지 및 방어하여 가상 머신 탈출을 막을 수 있다.
다음으로 시스템 서비스 호출 과정은 먼저 가상 머신 또는 호스트 애플리케이션은 구동 중에 다양한 시스템 서비스를 호스트 커널(120)에 요청할 수 있다(S-1).
이 때, 가상 머신 또는 호스트 애플리케이션은 필요한 시스템 서비스를 시스템콜(systemcall)의 형태로 요청하며, 시스템콜은 상기에서 설명한 하이퍼콜과 동일하게 감시용 하이퍼 바이저에 먼저 수신될 수 있다.
감시용 하이퍼 바이저(10)는 구동되고 있는 감시용 샌드박스(20)에 진입하여 시스템콜 서비스 영역을 실행할 수 있다(S-2).
시스템콜 서비스 영역에는 가상 머신 탈출을 탐지하기 위한 중단 포인트가 설정되어 있으며, 이러한 영역에 접근하면 이벤트가 발생하고 감시용 하이퍼바이저가 가상 머신 탈출 여부를 판단하고 통제할 수 있다.
감시용 하이퍼 바이저(10)는 시스템콜 서비스 수행이 완료되면, 시스템콜 서비스 영역으로부터 서비스 실행 결과를 수신할 수 있다(S-3)
감시용 하이퍼 바이저(10)는 시스템 서비스를 요청한 가상 머신에게 실행 결과를 전달할 수 있다(S-4).
이 때, 감시용 하이퍼 바이저(10)는 시스템 서비스의 실행 결과를 검증할 필요가 없는 경우, 시스템콜 서비스 영역에서 가상 머신(30)으로 서비스의 실행 결과를 직접 반환 할 수도 있다.
이와 같이 시스템콜 서비스와 관련된 핵심 작업이 감시용 하이퍼 바이저(10)의 통제 하에 감시용 샌드박스(20) 내부에서 가상 머신(30)이 요청한 서비스를 실행하기 때문에, 가상 머신 탈출 및 비인가 운영체제 권한 상승을 탐지 및 방어할 수 있다.
도 4는 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 방법을 나타낸 동작흐름도이다.
도 4를 참조하면, 먼저 감시용 하이퍼 바이저는 호스트 커널의 코드 및 데이터 영역 식별 후 정보를 추출할 수 있다(S210).
또한, 감시용 하이퍼 바이저는 식별된 커널 코드 및 데이터 영역을 활용하여 자신을 별도의 영역으로 분리하는 페이지 테이블을 생성 및 설정할 수 있다(S220).
또한, 감시용 하이퍼 바이저는 앞서 식별된 커널 코드 및 데이터 영역을 활용하여 감시용 샌드박스를 생성하며, CPU의 메모리 가상화 기능인 확장 페이지 테이블(Extended Page Table, EPT) 또는 중첩 페이지 테이블(Nested Page Table, NPT)을 생성 및 설정할 수 있다(S230).
이 때, 감시용 하이퍼 바이저는 식별된 코드 및 데이터 영역에서 불변인 영역을 추출하여 가상화용 하이퍼 바이저 및 호스트 커널이 임의로 변조하지 못하도록 설정할 수 있다.
이 때, 감시용 하이퍼바이저 영역은 전체 영역을 가상화용 하이퍼바이저 및 호스트 커널이 접근할 수 없도록 설정할 수 있다.
또한, 감시용 하이퍼 바이저는 감시용 샌드박스 구동에 필요한 CPU의 주요 레지스터와 감시 영역을 식별하며(S240), 내부에서 구동될 가상화용 하이퍼바이저와 호스트 내 시스템콜 감시를 위한 주요 레지스터 및 감시 영역도 식별할 수 있다(S250).
또한, 감시용 하이퍼 바이저는 중단 포인트와 이벤트 발생을 설정할 수 있다(S260).
이 때, 감시용 하이퍼 바이저는 감시 영역이 모두 식별되면 해당 영역에 페이지 테이블 권한 설정, 하드웨어 또는 소프트웨어 브레이크포인트(hardware or software breakpoint) 설정, CPU 가상화의 레지스터 감시 설정 등을 통해 중단 포인트(interrupt point)를 설정하고, 중단 포인트에 접근 시 강제로 이벤트(Event)가 발생하도록 설정할 수 있다.
이 때, 감시용 하이퍼 바이저는 감시용 샌드박스 내에서 발생된 이벤트를 처리할 수 있다.
또한, 감시용 하이퍼 바이저는 호스트 커널의 프로세스 및 스레드 정보와 운영체제 내 권한 정보를 저장할 수 있다(S270).
또한, 감시용 하이퍼 바이저는 감시용 샌드박스를 구동하여 시스템 전체를 감시할 수 있다(S280).
이 때, 가상화용 하이퍼 바이저는 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 실행할 수 있다.
또한, 감시용 하이퍼 바이저는 감시용 샌드박스에서 중단 포인트로 인한 이벤트가 발생되면, 감시용 하이퍼바이저는 이를 수신하여 가상 머신 탈출인지 여부를 판단하고 통제할 수 있다(S290).
이 때, 감시용 하이퍼 바이저는 가상화용 하이퍼 바이저의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제할 수 있다.
도 5는 본 발명의 일실시예에 따른 변조 이벤트 탐지 과정을 나타낸 동작흐름도이다.
도 5를 참조하면, 도 4에서 설명한 단계(S290)에서 보안 위협 이벤트가 발생한 일 예를 세부적으로 나타낸 것을 알 수 있다.
먼저, 감시용 하이퍼 바이저는 가상 머신으로부터 하이퍼콜 요청 또는 시스템콜 요청을 수신할 수 있다(S310).
감시용 하이퍼 바이저는 하이퍼콜 요청 또는 시스템콜 요청을 수신하면, 감시용 샌드박스 내부에서 하이퍼 바이저 서비스 또는 시스템 서비스를 실행할 수 있다(S320).
이 때, 감시용 하이퍼 바이저는 감시중인 호스트 커널 영역 또는 하이퍼바이저 영역에 변조가 발생하거나 식별한 주요 레지스터에 변조 이벤트가 발생되었는지 확인할 수 있다(S330).
또한, 단계(S330)는 감시중인 영역에서 변조 이벤트가 발생하지 않았거나, 변경될 메모리 및 레지스터가 가상 머신 탈출을 초래하지 않는다면 정상 종료할 수 있다.
감시용 하이퍼 바이저는 변조가 발생한 경우, 불변 영역인 메모리 또는 레지스터에 변조가 발생했는지를 다시 판단할 수 있다(S340).
감시용 하이퍼 바이저는 불변 영역인 호스트 커널 코드 및 가상화용 하이퍼바이저 코드 등의 영역이나 제어 레지스터(control register)의 특정 플래그 비트(flag bit)에 변경이 발생한 경우, 가상 머신 탈출 시도로 간주하고 해당 프로세스 및 스레드를 통제할 수 있다(S360).
감시용 하이퍼 바이저는 가변인 영역에서 변조가 발생했다면, 변경될 메모리 및 레지스터 값이 가상 머신 탈출을 초래하는지를 판단하며(S350), 가상 머신 탈출을 초래할 것으로 판단되면 프로세스 및 스레드를 통제할 수 있다(S360).
즉, 단계(S360)는 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
도 6은 본 발명의 일실시예에 따른 비인가 프로세스와 스레드 생성 탐지 과정을 나타낸 동작흐름도이다.
도 6을 참조하면, 도 4에서 설명한 단계(S290)에서 보안 위협 이벤트가 발생한 일 예를 세부적으로 나타낸 것을 알 수 있다.
감시용 하이퍼 바이저는 시스템콜 요청을 수신하면 시스템콜 정보를 내부에 저장할 수 있다(S410).
그 후, 감시용 하이퍼 바이저는 내부에 해당 프로세스 또는 스레드 정보가 존재하는지 확인하고, 프로세스 또는 스레드 정보가 정상적으로 생성되었는지 판단할 수 있다(S420).
이 때, 단계(S420)는 감시용 하이퍼 바이저 내부에 정보가 존재하지 않는다면 가상 머신 탈출로 발생한 비정상 생성이므로 해당 프로세스 및 스레드를 통제할 수 있다(S460).
이 때, 단계(S420)는 감시용 하이퍼 바이저 내부에 프로세스 또는 스레드 정보가 정상적으로 생성된 것으로 판단되면, 감시용 샌드박스에서 시스템 서비스를 실행할 수 있다(S430).
또한, 감시용 하이퍼 바이저는 서비스 실행 도중 중단 포인트를 통해 새로운 프로세스 또는 스레드가 탐지되었는지 확인할 수 있다(S440).
이 때, 단계(S440)는 서비스 실행 도중 새로운 프로세스 및 스레드가 탐지되었다면, 시스템콜 요청이 프로세스 또는 스레드 생성과 관련 있는지 확인할 수 있다(S450).
이 때, 단계(S450)는 시스템콜이 프로세스 또는 스레드 생성과 관련이 없다면 가상 머신 탈출로 인한 비정상적인 경로로 생성된 시도이므로 새로운 프로세스 또는 스레드 생성을 차단하고 시스템콜을 요청한 프로세스 및 스레드를 통제할 수 있다(S460).
즉, 단계(S460)는 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 단계(S450)는 시스템콜이 프로세스 또는 스레드 생성과 관련이 있다면, 감시용 하이퍼 바이저에 프로세스 또는 스레드 생성 정보를 저장할 수 있다(S470).
또한, 단계(S440)는 새로운 프로세스 및 스레드 생성이 탐지되지 않았다면, 감시용 샌드박스에서 프로세스 또는 스레드 종료가 탐지되었는지 확인할 수 있다(S480).
이 때, 단계(S480)는 종료가 탐지되었다면, 호스트 커널의 프로세스 및 스레드 정보와 감시용 하이퍼바이저 내부의 정보가 일치하도록 해당 프로세스 또는 스레드를 감시용 하이퍼바이저에서 삭제할 수 있다.
이처럼 프로세스 및 스레드 정보는 최초 구동 시에 감시용 하이퍼바이저 내부에 저장되며, 시스템 서비스를 수행할 때마다 지속적으로 갱신될 수 있다. 프로세스 또는 스레드 종료가 발생하지 않았다면 정상 종료할 수 있다.
도 7은 본 발명의 일실시예에 따른 비인가 프로세스 및 스레드의 권한 상승 탐지 과정을 나타낸 동작흐름도이다.
도 7을 참조하면, 도 4에서 설명한 단계(S290)에서 보안 위협 이벤트가 발생한 일 예를 세부적으로 나타낸 것을 알 수 있다.
먼저 감시용 하이퍼 바이저는 가상머신으로부터 시스템콜 요청을 수신하면 시스템콜 정보를 내부에 저장할 수 있다(S510).
감시용 하이퍼 바이저는 내부에 해당 프로세스 또는 스레드 정보가 정상적으로 생성되어 존재하는지 확인할 수 있다(S520).
이 때, 단계(S520)는 내부에 해당 프로세스 또는 스레드 정보가 정상적으로 생성되어 존재하는 경우, 시스템콜을 요청한 프로세스 또는 스레드의 운영체제 권한이 감시용 하이퍼 바이저에 저장된 것과 동일한지 판단할 수 있고(S530), 존재하지 않는 경우, 가상 머신 탈출로 발생한 비정상 생성이므로 해당 프로세스 또는 스레드를 통제하고 종료할 수 있다(S570).
즉, 단계(S570)는 감시용 하이퍼 바이저의 내부에 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제할 수 있다.
단계(S530)는 감시용 하이퍼 바이저 내부에 저장된 것과 동일한 경우, 감시용 샌드박스에서 시스템 서비스를 실행할 수 있고(S540), 저장된 것과 동일하지 않는 경우, 가상 머신 탈출로 인한 비인가 권한이 상승이 발생했으므로, 해당 프로세스 및 스레드를 통제할 수 있다(S570).
즉, 단계(S570)는 감시용 하이퍼 바이저의 내부에 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
감시용 하이퍼 바이저는 서비스 실행 도중 중단 포인트를 통해 운영체제 권한 상승이 탐지되었는지 확인할 수 있다(S550).
이 때, 단계(S550)는 운영체제 권한 상승이 탐지된 경우, 시스템콜 요청이 권한 상승과 관련이 있는지 확인할 수 있고, (S560) 탐지되지 않았다면 정상 종료할 수 있다.
이 때, 단계(S560)는 시스템 콜 요청이 권한 상승과 관련이 있는 경우, 감시용 하이퍼바이저에 운영체제 권한 정보를 저장할 수 있고(S580), 운영체제 권한 상승과 관련이 없다면 가상 머신 탈출로 인한 비인가 권한 상승이 시도되었으므로, 해당 프로세서 및 스레드를 통제할 수 있다(S570).
즉, 단계(S570)는 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
도 8은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 사용자 단말(10) 및 가상 머신 보안 위협 방지 장치(100)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 8에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치는 하나 이상의 프로세서(1110); 및 상기 하나 이상의 프로세서(1110)에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리(1130)를 포함하고, 상기 적어도 하나 이상의 프로그램은 호스트 커널의 가상화용 하이퍼 바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 실행하고, 감시용 하이퍼 바이저가, 상기 가상화용 하이퍼 바이저의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하고, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 상기 가상화용 하이퍼 바이저와 분리된 영역에 위치한다.
이 때, 상기 감시용 하이퍼 바이저는 상기 호스트 커널에서 최상위 권한이 설정되고, 상기 가상 머신과 상기 가상화용 하이퍼 바이저에 의한 접근이 차단될 수 있다.
이 때, 상기 보안 위협 이벤트는 상기 감시 영역에 기설정된 중단 포인트에 대한 액세스에 의해 발생될 수 있다.
이 때, 상기 중단 포인트는 페이지 테이블 권한 설정, 브레이크포인트 설정 및 CPU 가상화의 레지스터 감시 설정 중 적어도 하나에 의해 상기 감시 영역에 설정될 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 감시용 하이퍼 바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 가상 머신 보안 위협 방지 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 감시용 하이퍼 바이저 20: 감시용 샌드박스
110: 하드웨어 120: 호스트 커널
130: 호스트 애플리케이션
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (18)

  1. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고,
    상기 적어도 하나 이상의 프로그램은
    호스트 커널의 감시용 하이퍼바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 감시용 샌드박스에서 실행하고,
    상기 감시용 하이퍼바이저가, 상기 감시용 샌드박스의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하고,
    상기 감시용 샌드박스는
    상기 호스트 커널에서 상기 감시용 하이퍼바이저와 분리된 영역에 위치하고,
    상기 감시용 샌드박스는
    하이퍼바이저 서비스를 실행하는 가상화용 하이퍼바이저를 포함하는 가상화용 하이퍼바이저 영역; 및
    시스템 서비스를 실행하는 시스템콜 서비스 영역;
    을 포함하고,
    상기 감시용 하이퍼바이저는
    상기 가상 머신으로부터 하이퍼콜을 통해 상기 하이퍼바이저 서비스를 요청받은 경우, 상기 가상화용 하이퍼바이저 영역에서 상기 하이퍼바이저 서비스를 실행하고,
    상기 가상 머신으로부터 시스템콜을 통해 상기 시스템 서비스를 요청받은 경우, 상기 시스템콜 서비스 영역에서 상기 시스템 서비스를 실행하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  2. 청구항 1에 있어서,
    상기 감시용 하이퍼바이저는
    상기 호스트 커널에서 최상위 권한이 설정되고, 상기 가상 머신과 상기 가상화용 하이퍼바이저에 의한 접근이 차단되는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  3. 청구항 2에 있어서,
    상기 보안 위협 이벤트는
    상기 감시 영역에 기설정된 중단 포인트에 대한 액세스에 의해 발생되는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  4. 청구항 3에 있어서,
    상기 중단 포인트는
    페이지 테이블 권한 설정, 브레이크포인트 설정 및 CPU 가상화의 레지스터 감시 설정 중 적어도 하나에 의해 상기 감시 영역에 설정되는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  5. 청구항 3에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  6. 청구항 3에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  7. 청구항 3에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 감시용 하이퍼바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  8. 청구항 7에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 감시용 하이퍼바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  9. 청구항 8에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 장치.
  10. 가상 머신 보안 위협 방지 장치의 가상 머신 보안 위협 방지 방법에 있어서,
    호스트 커널의 감시용 하이퍼바이저가, 호스트 애플리케이션의 가상 머신이 요청한 서비스에 상응하는 가상화 명령어를 감시용 샌드박스에서 실행하는 단계; 및
    상기 감시용 하이퍼바이저가, 상기 감시용 샌드박스의 감시 영역에서 발생한 보안 위협 이벤트에 기반하여 상기 가상화 명령어를 중단시키고, 상기 호스트 커널의 프로세스 및 스레드를 통제하는 단계;
    를 포함하고,
    상기 감시용 샌드박스는
    상기 호스트 커널에서 상기 감시용 하이퍼바이저와 분리된 영역에 위치하고,
    상기 감시용 샌드박스는
    하이퍼바이저 서비스를 실행하는 가상화용 하이퍼바이저를 포함하는 가상화용 하이퍼바이저 영역; 및
    시스템 서비스를 실행하는 시스템콜 서비스 영역;
    을 포함하고,
    상기 실행하는 단계는
    상기 감시용 하이퍼바이저가, 상기 가상 머신으로부터 하이퍼콜을 통해 상기 하이퍼바이저 서비스를 요청받은 경우, 상기 가상화용 하이퍼바이저 영역에서 상기 하이퍼바이저 서비스를 실행하고,
    상기 가상 머신으로부터 시스템콜을 통해 상기 시스템 서비스를 요청받은 경우, 상기 시스템콜 서비스 영역에서 상기 시스템 서비스를 실행하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  11. 청구항 10에 있어서,
    상기 감시용 하이퍼바이저는
    상기 호스트 커널에서 최상위 권한이 설정되고, 상기 가상 머신과 상기 가상화용 하이퍼바이저에 의한 접근이 차단되는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  12. 청구항 11에 있어서,
    상기 보안 위협 이벤트는
    상기 감시 영역에 기설정된 중단 포인트에 대한 액세스에 의해 발생되는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  13. 청구항 12에 있어서,
    상기 중단 포인트는
    페이지 테이블 권한 설정, 브레이크포인트 설정 및 CPU 가상화의 레지스터 감시 설정 중 적어도 하나에 의해 상기 감시 영역에 설정되는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  14. 청구항 12에 있어서,
    상기 통제하는 단계는
    상기 감시 영역에서 메모리 영역이 변조되는 상기 보안 위협 이벤트가 발생한 경우, 상기 변조가 발생한 메모리 영역이 불변 영역인지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  15. 청구항 12에 있어서,
    상기 통제하는 단계는
    상기 감시 영역에서 새로운 프로세스 및 스레드의 생성되는 상기 보안 위협 이벤트가 발생한 경우, 상기 가상 머신이 요청한 서비스가 상기 새로운 프로세스 및 스레드와 관련이 있는지 판단한 결과에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  16. 청구항 12에 있어서,
    상기 통제하는 단계는
    상기 감시용 하이퍼바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는지 여부에 따라 상응하는 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  17. 청구항 16에 있어서,
    상기 통제하는 단계는
    상기 감시용 하이퍼바이저의 내부에 상기 가상 머신이 요청한 서비스에 상응하는 프로세스 및 스레드에 관한 정보와 동일한 정보가 존재하는 경우, 상기 프로세스 및 스레드의 운영체제 권한의 유효 여부에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
  18. 청구항 17에 있어서,
    상기 통제하는 단계는
    상기 운영체제 권한이 유효하지 않은 경우, 상기 프로세스 및 스레드의 운영체제 권한이 상승한 것으로 판단하고, 상기 운영체제 권한의 상승과 상기 서비스의 관련 여부에 따라 상기 프로세스 및 스레드를 통제하는 것을 특징으로 하는 가상 머신 보안 위협 방지 방법.
KR1020210091593A 2021-07-13 2021-07-13 가상 머신 보안 위협 방지 장치 및 방법 KR102526681B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210091593A KR102526681B1 (ko) 2021-07-13 2021-07-13 가상 머신 보안 위협 방지 장치 및 방법
US17/489,032 US11893107B2 (en) 2021-07-13 2021-09-29 Apparatus and method for preventing security threat to virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210091593A KR102526681B1 (ko) 2021-07-13 2021-07-13 가상 머신 보안 위협 방지 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20230011534A KR20230011534A (ko) 2023-01-25
KR102526681B1 true KR102526681B1 (ko) 2023-05-02

Family

ID=84890385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210091593A KR102526681B1 (ko) 2021-07-13 2021-07-13 가상 머신 보안 위협 방지 장치 및 방법

Country Status (2)

Country Link
US (1) US11893107B2 (ko)
KR (1) KR102526681B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101816866B1 (ko) 2016-08-10 2018-01-10 한국전자통신연구원 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395029B1 (en) * 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10121004B2 (en) 2015-10-07 2018-11-06 Electronics And Telecommunications Research Institute Apparatus and method for monitoring virtual machine based on hypervisor
KR101816751B1 (ko) * 2015-10-07 2018-01-10 한국전자통신연구원 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
KR101729680B1 (ko) * 2015-12-01 2017-04-25 한국전자통신연구원 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
KR102028096B1 (ko) 2017-04-18 2019-10-02 한국전자통신연구원 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법
US10776491B2 (en) * 2017-07-05 2020-09-15 Electronics And Telecommunications Research Institute Apparatus and method for collecting audit trail in virtual machine boot process
CN109670312A (zh) * 2017-10-13 2019-04-23 华为技术有限公司 安全控制方法及计算机系统
EP3726390B1 (en) * 2018-02-02 2024-04-24 Huawei Technologies Co., Ltd. Method and device for protecting kernel integrity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101816866B1 (ko) 2016-08-10 2018-01-10 한국전자통신연구원 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jiangyong Shi et al., "Hardware assisted hypervisor introspection"(2016.05.)*

Also Published As

Publication number Publication date
US20230016571A1 (en) 2023-01-19
KR20230011534A (ko) 2023-01-25
US11893107B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
RU2703156C2 (ru) Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции
RU2679175C1 (ru) Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
US9117080B2 (en) Process evaluation for malware detection in virtual machines
US9087199B2 (en) System and method for providing a secured operating system execution environment
US9858411B2 (en) Execution profiling mechanism
US8910238B2 (en) Hypervisor-based enterprise endpoint protection
US9317690B2 (en) System and method for firmware based anti-malware security
US8214900B1 (en) Method and apparatus for monitoring a computer to detect operating system process manipulation
US20120255011A1 (en) Systems and methods for identifying hidden processes
US20120254993A1 (en) System and method for virtual machine monitor based anti-malware security
CN110383256B (zh) 一种内核完整性保护方法及装置
CN113051034B (zh) 一种基于kprobes的容器访问控制方法与系统
US20120254994A1 (en) System and method for microcode based anti-malware security
WO2014143029A1 (en) Generic privilege escalation prevention
EP3079057B1 (en) Method and device for realizing virtual machine introspection
KR102526681B1 (ko) 가상 머신 보안 위협 방지 장치 및 방법
CN112363797B (zh) 一种虚拟机安全运行方法、电子设备及存储介质
US10019576B1 (en) Security control system for protection of multi-core processors
US20230289204A1 (en) Zero Trust Endpoint Device
EP3674940B1 (en) System and method of forming a log when executing a file with vulnerabilities in a virtual machine
CN114168265A (zh) 基于Hypervisor的安全防护方法、系统及存储介质

Legal Events

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