KR20240080245A - System for Protecting Virtual Machine Kernel Runtime in Cloud Platform - Google Patents

System for Protecting Virtual Machine Kernel Runtime in Cloud Platform Download PDF

Info

Publication number
KR20240080245A
KR20240080245A KR1020220162199A KR20220162199A KR20240080245A KR 20240080245 A KR20240080245 A KR 20240080245A KR 1020220162199 A KR1020220162199 A KR 1020220162199A KR 20220162199 A KR20220162199 A KR 20220162199A KR 20240080245 A KR20240080245 A KR 20240080245A
Authority
KR
South Korea
Prior art keywords
virtual machine
kernel
memory
area
address
Prior art date
Application number
KR1020220162199A
Other languages
Korean (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 KR1020220162199A priority Critical patent/KR20240080245A/en
Publication of KR20240080245A publication Critical patent/KR20240080245A/en

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • 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
    • 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

Landscapes

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

Abstract

클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템이 개시된다. 가상머신 커널 런타임 보호 시스템은, VMI(Virtual Machine Introspection)를 이용하여 클라우드 환경의 가상머신 커널 런타임 무결성 검증을 수행하는 것으로, 리눅스 커널이 구동되는 가상머신의 메모리 주소 정보를 분석하는 과정; 및 상기 메모리 주소 정보를 이용하여 가상머신의 커널 변조 무결성을 검증하는 과정을 처리할 수 있다.A virtual machine kernel runtime protection system in a cloud platform environment is disclosed. The virtual machine kernel runtime protection system uses VMI (Virtual Machine Introspection) to verify the integrity of the virtual machine kernel runtime in a cloud environment, a process of analyzing memory address information of a virtual machine running the Linux kernel; And the process of verifying the kernel modulation integrity of the virtual machine can be processed using the memory address information.

Description

클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템{System for Protecting Virtual Machine Kernel Runtime in Cloud Platform}System for Protecting Virtual Machine Kernel Runtime in Cloud Platform}

아래의 설명은 클라우드 플랫폼 환경에서 가상머신 커널 런타임을 보호하기 위한 기술에 관한 것이다.The explanation below is about technology for protecting virtual machine kernel runtime in a cloud platform environment.

클라우드 컴퓨팅의 기반 기술인 가상화 기술이 발전함에 따라 클라우드 컴퓨팅 기술이 함께 발전하고 있으며, 클라우드 컴퓨팅의 연속성과 효율성과 같은 장점으로 인해 사용자의 편의성이 증가하고 있다.As virtualization technology, the underlying technology of cloud computing, develops, cloud computing technology is also developing, and user convenience is increasing due to advantages such as continuity and efficiency of cloud computing.

그러나, 보안 관점에서는 가상머신을 커널 영역과 관련된 공격으로부터 보호하기 위한 솔루션을 그대로 클라우드 환경에 적용할 수 없다. 기존의 커널 런타임 보호 소프트웨어를 가상머신마다 내부에 설치되는 에이전트(Agent) 방식으로 구동한다면 클라우드 환경에서는 리소스 효율성이 저하된다. 또한, 일부 커널 보호 솔루션은 커널 공격 프로그램과 같은 권한을 가지며 공격이 성공했을 경우 이 솔루션은 중지되거나 방해를 받기 때문에 정상적인 보안 동작을 수행할 수 없게 된다.However, from a security perspective, solutions to protect virtual machines from attacks related to the kernel area cannot be applied to the cloud environment as is. If the existing kernel runtime protection software is run as an agent installed inside each virtual machine, resource efficiency is reduced in a cloud environment. Additionally, some kernel protection solutions have the same privileges as kernel attack programs, and if an attack is successful, these solutions are stopped or interrupted, making normal security operations impossible.

따라서, 가상머신 외부에서 가상머신의 커널의 변조를 탐지하는 기술이 필요하다. 호스트에서 가상머신의 런타임 상태를 투명하게 관찰할 수 있는 방법으로 VMI(Virtual Machine Introspection)가 있으며, 가상머신에 할당된 메모리 데이터와 vCPU 레지스터 등 바이너리 형태로 모두 수집할 수 있다.Therefore, a technology is needed to detect modification of the virtual machine kernel from outside the virtual machine. VMI (Virtual Machine Introspection) is a method that allows the host to transparently observe the runtime state of a virtual machine, and can collect all memory data and vCPU registers allocated to the virtual machine in binary form.

클라우드 플랫폼 환경에서 가상머신의 커널을 보호하기 위해 가상머신 내에 설치되는 에이전트 방식이 아닌, 호스트에서 보호하는 VMI 기반의 방식을 사용하기 위해서는 여러 가지 요구사항이 따른다. 먼저, 커널의 보호 영역에 대한 무결성 검증이 필요하다. 두 번째로, 가상머신이 사용하는 커널 이미지가 이미 변조되었을 경우에도 커널 변조를 탐지할 수 있어야 한다. 마지막으로, 실시간 VMI로 인해 가상머신은 성능 저하를 겪게 되는데, 이를 최소화해야 한다.In order to protect the kernel of a virtual machine in a cloud platform environment, there are various requirements to use a VMI-based method that protects the host, rather than an agent method installed within the virtual machine. First, the integrity of the kernel's protection area needs to be verified. Second, it must be possible to detect kernel modification even if the kernel image used by the virtual machine has already been modified. Lastly, virtual machines experience performance degradation due to real-time VMI, which must be minimized.

VMI 방법을 활용한 클라우드 플랫폼 환경에서 구동되는 가상머신의 커널 변조를 정확하고 효율적으로 탐지할 수 있는 기술적 사상을 제공한다.We provide technical ideas that can accurately and efficiently detect kernel modification of virtual machines running in a cloud platform environment using the VMI method.

컴퓨터 시스템으로 구현되는 가상머신 커널 런타임 보호 시스템에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, VMI(Virtual Machine Introspection)를 이용하여 클라우드 환경의 가상머신 커널 런타임 무결성 검증을 수행하는 것으로, 리눅스 커널이 구동되는 가상머신의 메모리 주소 정보를 분석하는 과정; 및 상기 메모리 주소 정보를 이용하여 가상머신의 커널 변조 무결성을 검증하는 과정을 처리하는 가상머신 커널 런타임 보호 시스템을 제공한다.A virtual machine kernel runtime protection system implemented in a computer system, comprising at least one processor configured to execute computer-readable instructions included in a memory, wherein the at least one processor uses Virtual Machine Introspection (VMI) Performing virtual machine kernel runtime integrity verification in a cloud environment, a process of analyzing memory address information of a virtual machine running the Linux kernel; and a virtual machine kernel runtime protection system that processes the process of verifying the kernel tampering integrity of the virtual machine using the memory address information.

일 측면에 따르면, 상기 적어도 하나의 프로세서는, 리눅스 운영체제에서 구동 중인 타겟 가상머신의 커널 영역 메모리에서 커널 보호 영역의 메모리 주소를 획득할 수 있다.According to one aspect, the at least one processor may obtain a memory address of a kernel protection area from the kernel area memory of a target virtual machine running on a Linux operating system.

다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 기준 해시 값을 이용하여 가상머신의 커널 보호 영역의 메모리 값의 변조 여부를 확인할 수 있다.According to another aspect, the at least one processor may use a reference hash value to check whether the memory value of the kernel protection area of the virtual machine has been tampered with.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 가상머신의 부팅이 완료되면 상기 메모리 주소 정보에 따라 물리 메모리 영역의 데이터를 덤프(dump)하고, 덤프된 메모리 데이터에 대한 해시 값을 무결성 검증 기준이 되는 해시 값과 비교하여 커널 변조 여부를 확인할 수 있다.According to another aspect, when booting of the virtual machine is completed, the at least one processor dumps data in the physical memory area according to the memory address information and uses a hash value for the dumped memory data as an integrity verification standard. You can check whether the kernel has been tampered with by comparing it with the hash value.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 커널 코드인 vmlinux에 포함된 섹션 정보로 커널 보호 영역에 대한 주소 정보를 분석하고, 분석된 주소를 게스트 가상주소의 커널 공간(kernel space)으로 매핑하고, 상기 게스트 가상주소를 게스트 물리주소로 번역하고, EPT(Extended Page Tables)를 통해 상기 게스트 물리주소를 호스트 물리주소로 번역하고, 상기 호스트 물리주소에서 물리 메모리 데이터를 덤프할 수 있다.According to another aspect, the at least one processor analyzes address information about the kernel protection area using section information included in vmlinux, which is a kernel code, and maps the analyzed address to the kernel space of the guest virtual address. Then, the guest virtual address can be translated into a guest physical address, the guest physical address can be translated into a host physical address through EPT (Extended Page Tables), and physical memory data can be dumped from the host physical address.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 가상머신 데이터를 덤프하는 과정에서 디스크 저장 방식이 아닌 인-메모리(in-memory) 방식을 통해 호스트 메모리 영역에 버퍼를 할당하여 해당 버퍼에 메모리 데이터를 복사할 수 있다.According to another aspect, in the process of dumping virtual machine data, the at least one processor allocates a buffer to the host memory area through an in-memory method rather than a disk storage method and stores memory data in the buffer. can be copied.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 가상머신의 커널 보호 영역의 메모리 주소를 획득하고, 상기 획득한 메모리 주소로 검증된 가상머신의 물리 메모리 데이터를 읽어오고, 상기 읽어온 메모리 데이터에 대한 해시 값을 계산하여 데이터베이스에 저장하고, 타겟 가상머신으로부터 읽어온 커널 보호 영역의 메모리 데이터에 대한 해시 값을 계산하고, 상기 데이터베이스에 저장된 해시 값과 상기 타겟 가상머신의 메모리 데이터에 대한 해시 값을 비교하여 변조 여부를 결정할 수 있다.According to another aspect, the at least one processor acquires a memory address of a kernel protection area of a virtual machine, reads physical memory data of the virtual machine verified with the acquired memory address, and stores the read memory data. Calculate the hash value and store it in the database, calculate the hash value for the memory data of the kernel protection area read from the target virtual machine, and calculate the hash value for the memory data of the target virtual machine and the hash value stored in the database. By comparing, it is possible to determine whether or not there has been tampering.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 가상머신의 커널 보호 영역 중 하나인 섹션(section)의 메모리 주소 및 크기를 획득하기 위해 커널 코드인 vmlinux을 추출할 수 있다.According to another aspect, the at least one processor may extract vmlinux, which is a kernel code, to obtain the memory address and size of a section, which is one of the kernel protection areas of the virtual machine.

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 가상머신의 커널 보호 영역 중 하나인 IDT(interrupt descriptor table)의 메모리 주소 및 크기를 획득하기 위해 VMCS(Virtual Machine Control Structure)의 IDTR(Interrupt Descriptor Table Register)의 값을 읽어올 수 있다.According to another aspect, the at least one processor uses the Interrupt Descriptor Table (IDTR) of the Virtual Machine Control Structure (VMCS) to obtain the memory address and size of the interrupt descriptor table (IDT), which is one of the kernel protection areas of the virtual machine. You can read the value of Register).

또 다른 측면에 따르면, 상기 적어도 하나의 프로세서는, 커널 코드가 저장된 영역인 <.text section>, 읽기전용 초기화(read-only initialized) 데이터가 존재하는 영역인 <.rodata section>, 예외를 처리할 함수의 테이블이 저장된 영역인 <__ex_table section>, 및 인터럽트를 처리할 함수의 테이블이 저장된 영역인 <IDT> 중 적어도 하나의 커널 보호 영역을 대상으로 커널 변조 무결성 검증을 수행할 수 있다.According to another aspect, the at least one processor has <.text section>, which is an area where kernel code is stored, <.rodata section>, which is an area where read-only initialized data exists, and handles exceptions. Kernel tampering integrity verification can be performed on at least one kernel protection area among <__ex_table section>, which is an area where the table of functions is stored, and <IDT>, which is an area where the table of functions to handle interrupts is stored.

또 다른 측면에 따르면, 컴퓨터 시스템에서 수행되는 가상머신 커널 런타임 보호 방법에 있어서, 상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 가상머신 커널 런타임 보호 방법은, VMI(Virtual Machine Introspection)를 이용하여 클라우드 환경의 가상머신 커널 런타임 무결성 검증을 수행하는 것으로, 상기 적어도 하나의 프로세서의 의해, 리눅스 커널이 구동되는 가상머신의 메모리 주소 정보를 분석하는 단계; 및 상기 적어도 하나의 프로세서의 의해, 상기 메모리 주소 정보를 이용하여 가상머신의 커널 변조 무결성을 검증하는 단계를 포함하는 가상머신 커널 런타임 보호 방법을 제공한다.According to another aspect, in a virtual machine kernel runtime protection method performed on a computer system, the computer system includes at least one processor configured to execute computer-readable instructions included in a memory, and protecting the virtual machine kernel runtime. The method includes performing runtime integrity verification of a virtual machine kernel in a cloud environment using Virtual Machine Introspection (VMI), comprising: analyzing memory address information of a virtual machine running a Linux kernel by the at least one processor; and verifying, by the at least one processor, kernel modulation integrity of the virtual machine using the memory address information.

본 발명의 실시예에 따르면, 가상머신이 동작하기 전에 미리 구성된 해시 데이터베이스로 동작하는 런타임 동안은 물론이고, 가상머신이 부팅한 후에도 커널이 변조되었는지 검증할 수 있다.According to an embodiment of the present invention, it is possible to verify whether the kernel has been tampered with not only during runtime when the virtual machine operates with a hash database pre-configured before operation, but also even after the virtual machine is booted.

본 발명의 실시예에 따르면, 가상머신 커널 런타임 보호를 위한 점검 동작을 호스트에서 수행함에 따라 클라우드 환경에서 다수의 가상머신에 대한 커널 변조에 대한 보호 동작을 효율적으로 수행할 수 있다.According to an embodiment of the present invention, by performing a check operation to protect the virtual machine kernel runtime on the host, it is possible to efficiently perform a protection operation against kernel tampering for multiple virtual machines in a cloud environment.

도 1은 본 발명의 일실시예에 있어서 가상머신 커널 런타임 보호 시스템이 적용되는 환경 예시를 도시한 것이다.
도 2는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템의 내부 모듈을 도시한 것이다.
도 3은 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 과정의 일례를 도시한 순서도이다.
도 4는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템에서 가상머신 물리 데이터 덤프하는 과정 예시를 도시한 것이다.
도 5는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템의 무결성 검증 대상이 되는 커널 보호 영역 예시를 도시한 것이다.
도 6은 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템을 구현하기 위한 컴퓨터 시스템의 예를 도시한 블록도이다.
Figure 1 shows an example of an environment in which the virtual machine kernel runtime protection system is applied in one embodiment of the present invention.
Figure 2 illustrates an internal module of a virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention.
Figure 3 is a flowchart showing an example of a virtual machine kernel runtime protection process in a cloud platform environment according to an embodiment of the present invention.
Figure 4 shows an example of a process of dumping virtual machine physical data in a virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention.
Figure 5 shows an example of a kernel protection area subject to integrity verification of a virtual machine kernel runtime protection system in a cloud platform environment in an embodiment of the present invention.
Figure 6 is a block diagram showing an example of a computer system for implementing a virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

본 발명의 실시예들은 클라우드 플랫폼 환경에서 가상머신 커널 런타임을 보호하기 위한 기술에 관한 것이다.Embodiments of the present invention relate to technology for protecting virtual machine kernel runtime in a cloud platform environment.

본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 호스트의 KVM(Kernel-based Virtual Machine)/QEMU(Quick Emulator)에서 구동되는 리눅스 환경의 가상머신의 커널을 보호하기 위한 것으로써 커널 영역에 악의적인 코드를 삽입하여 변조하거나 커널 데이터 구조를 변경하여 악의적인 코드로 향하도록 하는, 커널 영역을 대상으로 하는 악성코드로부터 보호할 수 있다.Embodiments including those specifically disclosed in this specification are intended to protect the kernel of a virtual machine in a Linux environment running on the host's KVM (Kernel-based Virtual Machine)/QEMU (Quick Emulator), and are designed to protect the kernel from malicious attacks in the kernel area. It can protect against malicious code targeting the kernel area, which inserts and modifies code or changes the kernel data structure to direct it to malicious code.

본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 루트킷(rootkit) 탐지, 가상머신 모니터링, 디지털 포렌식(digital forensics) 등에 활용될 수 있다.Embodiments including those specifically disclosed in this specification can be used for rootkit detection, virtual machine monitoring, digital forensics, etc.

본 발명의 실시예들에 따른 가상머신 커널 런타임 보호 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 가상머신 커널 런타임 보호 방법은 가상머신 커널 런타임 보호 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 가상머신 커널 런타임 보호 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 가상머신 커널 런타임 보호 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The virtual machine kernel runtime protection system according to embodiments of the present invention may be implemented by at least one computer device, and the virtual machine kernel runtime protection method according to embodiments of the present invention is included in the virtual machine kernel runtime protection system. It may be performed through at least one computer device. At this time, the computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device performs the virtual machine kernel runtime protection method according to the embodiments of the present invention under the control of the driven computer program. can do. The above-described computer program can be combined with a computer device and stored in a computer-readable recording medium to execute the virtual machine kernel runtime protection method on the computer.

도 1은 본 발명의 일실시예에 있어서 가상머신 커널 런타임 보호 시스템이 적용되는 환경 예시를 도시한 것이다. 도 1은 본 발명의 실시 예에 따른 가상머신 커널 런타임 보호 시스템이 적용되는 환경을 나타내고 있다.Figure 1 shows an example of an environment in which the virtual machine kernel runtime protection system is applied in one embodiment of the present invention. Figure 1 shows an environment to which the virtual machine kernel runtime protection system according to an embodiment of the present invention is applied.

도 1을 참조하면, 본 발명의 실시예에 따른 가상머신 커널 런타임 보호 시스템은 클라우드 플랫폼(101)과 클라우드 플랫폼 서비스를 관리하는 관리자(102)가 존재하는 환경에서 적용될 수 있다.Referring to FIG. 1, the virtual machine kernel runtime protection system according to an embodiment of the present invention can be applied in an environment where a cloud platform 101 and an administrator 102 who manages cloud platform services exist.

본 실시예들은 클라우드 환경에서 커널 공격에 대응하기 위한 가상머신 커널 런타임 무결성 검증을 호스트 수준에서 VMI를 통해 수행할 수 있다.In these embodiments, virtual machine kernel runtime integrity verification to respond to kernel attacks in a cloud environment can be performed through VMI at the host level.

도 2는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템의 내부 모듈을 도시한 것이다.Figure 2 illustrates an internal module of a virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템은 호스트 커널 레벨에서 동작하는 커널 보호 영역 메모리 주소 분석 모듈(201)과 가상머신 메모리 덤프 모듈(202)을 포함할 수 있고, 호스트 사용자 레벨에서 동작하는 해시 데이터베이스(203)와 무결성 검증 모듈(204)을 포함할 수 있다.Referring to FIG. 2, the virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention includes a kernel protection area memory address analysis module 201 and a virtual machine memory dump module 202 operating at the host kernel level. It may include a hash database 203 and an integrity verification module 204 that operate at the host user level.

커널 보호 영역 메모리 주소 분석 모듈(201)은 가상머신의 커널 영역 메모리에서 무결성 검증 대상이 되는 영역의 주소 정보(시작 주소, 크기)를 획득하기 위해 사용된다.The kernel protection area memory address analysis module 201 is used to obtain address information (starting address, size) of the area subject to integrity verification in the kernel area memory of the virtual machine.

가상머신 메모리 덤프 모듈(202)은 메모리 주소 분석 모듈(201)로부터 획득한 주소 정보에 해당하는 물리 메모리 영역의 데이터를 덤프(dump)한다.The virtual machine memory dump module 202 dumps data in the physical memory area corresponding to the address information obtained from the memory address analysis module 201.

해시 데이터베이스(203)는 타겟 가상머신의 커널 보호 영역의 메모리 값의 변조 여부를 확인하기 위한 기준 해시 값으로 사용된다.The hash database 203 is used as a reference hash value to check whether the memory value of the kernel protection area of the target virtual machine has been tampered with.

무결성 검증 모듈(204)은 해시 값 비교를 통해 커널 변조 여부를 확인하기 위해 사용된다.The integrity verification module 204 is used to check whether the kernel has been tampered with by comparing hash values.

도 3은 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 과정의 일례를 도시한 순서도이다.Figure 3 is a flowchart showing an example of a virtual machine kernel runtime protection process in a cloud platform environment according to an embodiment of the present invention.

본 발명에 따른 가상머신 커널 런타임 보호 시스템은 가상머신의 커널 보호 영역의 메모리 주소를 획득하는 단계, 획득한 메모리 주소로 검증된 가상머신으로부터 정상적인 메모리 데이터를 읽어오는 단계, 읽어온 메모리 데이터에 대한 해시 값을 계산하고 해시 데이터베이스에 저장하는 단계, 타겟 가상머신에 이전에 획득한 커널 보호 영역의 메모리 데이터를 읽어오는 단계, 타겟 가상머신으로부터 읽은 메모리 데이터에 대한 해시 값을 계산하는 단계, 및 해시 데이터베이스에 저장된 해시 값과 타겟 가상머신의 메모리 데이터의 해시 값을 비교하여 변조 여부를 결정하는 단계를 포함할 수 있다.The virtual machine kernel runtime protection system according to the present invention includes the steps of acquiring the memory address of the kernel protection area of the virtual machine, reading normal memory data from the virtual machine verified with the acquired memory address, and hashing the read memory data. Calculating the value and storing it in a hash database, reading memory data of the kernel protection area previously acquired in the target virtual machine, calculating a hash value for the memory data read from the target virtual machine, and storing it in the hash database. It may include a step of determining whether or not there has been tampering by comparing the stored hash value with the hash value of the memory data of the target virtual machine.

도 3을 참조하면, 먼저, 가상머신 커널 런타임 보호 시스템은 커널 보호 영역 메모리 주소 분석 모듈(201)을 통해 현재 클라우드 플랫폼(리눅스 운영체제)에서 구동 중인 타겟 가상머신의 커널 보호 영역의 가상 메모리 주소 정보(시작주소, 크기)를 분석한다(S301).Referring to FIG. 3, first, the virtual machine kernel runtime protection system analyzes the virtual memory address information of the kernel protection area of the target virtual machine currently running on the cloud platform (Linux operating system) through the kernel protection area memory address analysis module 201 ( start address, size) (S301).

가상머신 커널 런타임 보호 시스템은 가상머신 메모리 덤프 모듈(202)을 통해 단계(S301)에서 분석한 정보를 바탕으로 검증된 가상머신의 물리 메모리 데이터를 덤프한다(S302).The virtual machine kernel runtime protection system dumps the physical memory data of the verified virtual machine based on the information analyzed in step S301 through the virtual machine memory dump module 202 (S302).

다음으로, 가상머신 커널 런타임 보호 시스템은 덤프된 메모리에 대한 해시 값을 계산하여 무결성 검증의 기준이 되는 해시 데이터베이스를 생성한다(S303).Next, the virtual machine kernel runtime protection system calculates the hash value for the dumped memory and creates a hash database that serves as the standard for integrity verification (S303).

가상머신 커널 런타임 보호 시스템은 타겟 가상머신의 부팅이 완료되면 단계(S301)에서 획득한 주소 정보를 통해 물리 메모리를 덤프한다(S304).When the booting of the target virtual machine is completed, the virtual machine kernel runtime protection system dumps the physical memory through the address information obtained in step S301 (S304).

가상머신 커널 런타임 보호 시스템은 타겟 가상머신에서 덤프된 데이터를 해시한다(S305).The virtual machine kernel runtime protection system hashes the data dumped from the target virtual machine (S305).

이후, 가상머신 커널 런타임 보호 시스템은 검증된 가상머신으로부터 생성된 해시 데이터베이스와 타겟 가상머신으로부터 도출된 해시 값을 각각 비교한다(S306).Afterwards, the virtual machine kernel runtime protection system compares the hash database generated from the verified virtual machine and the hash value derived from the target virtual machine (S306).

가상머신 커널 런타임 보호 시스템은 해시 값이 일치하지 않으면 타겟 가상머신의 커널이 변조되었다고 판단하여 보안 조치(일례로, 가상머신 실행 중지, 심층 분석 등)를 실행한다(S307).If the hash values do not match, the virtual machine kernel runtime protection system determines that the kernel of the target virtual machine has been tampered with and executes security measures (e.g., stopping virtual machine execution, in-depth analysis, etc.) (S307).

가상머신 커널 런타임 보호 시스템은 해시 값이 일치한다면 단계(S304)로 돌아가 가상머신이 동작하는 런타임 동안 상기한 과정의 검사를 반복한다.If the hash value matches, the virtual machine kernel runtime protection system returns to step S304 and repeats the inspection of the above process during runtime when the virtual machine operates.

도 4는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템에서 가상머신 물리 데이터 덤프하는 과정 예시를 도시한 것이다.Figure 4 shows an example of a process of dumping virtual machine physical data in a virtual machine kernel runtime protection system in a cloud platform environment according to an embodiment of the present invention.

본 발명에 따른 가상머신 커널 런타임 보호 시스템은 가상머신의 커널 보호 영역인 섹션의 메모리 주소 및 크기를 획득하기 위해 vmlinux 파일을 추출하는 과정을 포함할 수 있다. 여기서, vmlinux 파일은 커널을 컴파일할 때 생성되는 ELF(Excutable Linking Format) 이미지 파일로써 압축되지 않은 커널 코드를 의미한다. vmlinux를 분석하면 심볼 및 자료구조 정보를 얻을 수 있다.The virtual machine kernel runtime protection system according to the present invention may include the process of extracting the vmlinux file to obtain the memory address and size of the section that is the kernel protection area of the virtual machine. Here, the vmlinux file is an ELF (Excutable Linking Format) image file created when compiling the kernel and refers to uncompressed kernel code. By analyzing vmlinux, you can obtain symbol and data structure information.

도 4를 참조하면, 가상머신 커널 런타임 보호 시스템은 가상머신 커널 버전에 대한 섹션 정보를 분석하기 위해 vmlinux 파일을 추출한다(S401).Referring to Figure 4, the virtual machine kernel runtime protection system extracts the vmlinux file to analyze section information about the virtual machine kernel version (S401).

가상머신 커널 런타임 보호 시스템은 vmlinux에 나타난 섹션(sections) 정보로 보호 영역에 대한 주소 정보(시작주소, 크기)를 계산한다(S402).The virtual machine kernel runtime protection system calculates address information (starting address, size) for the protection area using the section information shown in vmlinux (S402).

가상머신 커널 런타임 보호 시스템은 단계(S402)에서 분석한 주소를 게스트 가상주소의 커널 공간(kernel space)으로 매핑한다(S403).The virtual machine kernel runtime protection system maps the address analyzed in step S402 to the kernel space of the guest virtual address (S403).

다음으로, 가상머신 커널 런타임 보호 시스템은 게스트 가상주소를 게스트 물리주소로 번역한다(S404).Next, the virtual machine kernel runtime protection system translates the guest virtual address into a guest physical address (S404).

가상머신 커널 런타임 보호 시스템은 EPT(Extended Page Tables)로 게스트 물리주소를 호스트 물리주소로 번역한다(S405). 여기서, EPT는 가상화 환경에서 새도우 페이지 테이블(shadow page table)의 복잡성을 줄이고, TLB(Translation lookaside buffer) 플러시(flush) 수를 줄이기 위해 사용되는 하드웨어 지원 페이징을 의미한다.The virtual machine kernel runtime protection system translates the guest physical address into the host physical address using EPT (Extended Page Tables) (S405). Here, EPT refers to hardware-assisted paging used to reduce the complexity of the shadow page table and the number of TLB (Translation lookaside buffer) flushes in a virtualization environment.

마지막으로, 가상머신 커널 런타임 보호 시스템은 번역된 메모리 영역에서 메모리를 읽어오기 위해 호스트 메모리 영역에 버퍼를 할당하여 복사한다(S406).Finally, the virtual machine kernel runtime protection system allocates and copies a buffer to the host memory area to read memory from the translated memory area (S406).

VMI에서는 커널 보호 영역의 주소에 해당하는 게스트 가상머신에 대한 메모리 데이터를 읽기 위해 이전에 메모리 시작 주소와 크기를 매개변수로 하여 QEMU에 가상머신 메모리 읽기를 요청한다. QEMU는 요청된 메모리 영역을 덤프하기 위해 가상머신의 가상주소를 GVA(Guest Virtual Address), GPA(Guest Physical Address), HPA(Host Physical Address) 순으로 번역한다. 그리고, 물리 메모리에서 해당 영역의 데이터를 덤프한다.In order to read memory data for the guest virtual machine corresponding to the address of the kernel protection area, VMI requests QEMU to read the virtual machine memory using the memory start address and size as parameters. QEMU translates the virtual address of the virtual machine into GVA (Guest Virtual Address), GPA (Guest Physical Address), and HPA (Host Physical Address) in order to dump the requested memory area. Then, the data in the corresponding area is dumped from the physical memory.

상기한 과정에서 가상머신 커널 런타임 보호 시스템은 가상머신 데이터를 덤프하는 과정에서 디스크에 저장하는 것이 아닌 인-메모리(in-memory) 방식을 통해 호스트 영역에 메모리 버퍼를 할당하여 해당 버퍼에 저장함으로써 메모리 덤프에 소요되는 시간, 즉 데이터 읽기 소요시간을 단축할 수 있다.In the above process, the virtual machine kernel runtime protection system allocates a memory buffer to the host area through an in-memory method rather than storing it on disk during the process of dumping virtual machine data and stores it in the buffer, thereby protecting the memory. The time required for a dump, that is, the time required to read data, can be shortened.

도 5는 본 발명의 일실시예에 있어서 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템의 무결성 검증 대상이 되는 커널 보호 영역 예시를 도시한 것이다.Figure 5 shows an example of a kernel protection area subject to integrity verification of a virtual machine kernel runtime protection system in a cloud platform environment in an embodiment of the present invention.

도 5를 참조하면, 일례로, 무결성 검증 대상이 되는 커널 보호 영역 중 하나인 <.text section>(501)은 커널 코드가 저장된 영역을 의미한다. <.rodata section>(502)은 읽기전용 초기화(read-only initialized) 데이터가 존재하는 영역을 의미한다. <__ex_table section>(503)은 예외가 발생했을 때 예외를 처리할 함수의 테이블이 저장된 영역을 의미한다. <IDT>(504)는 인터럽트가 발생했을 때 인터럽트를 처리할 함수의 테이블이 저장된 영역을 의미한다. IDT(interrupt descriptor table)는 인터럽트 벡터 테이블을 구현하기 위해 X86 아키텍처에서 사용되는 데이터 구조체이다. IDT는 프로세서가 인터럽트와 예외를 처리하기 위해 사용된다. IDT 테이블에는 정의되어 있는 인터럽트들의 번호와 실행 코드를 가리키는 주소들이 저장된다. 가상머신 커널 런타임 보호 시스템은 가상머신의 커널 보호 영역인 IDT의 메모리 주소 및 크기를 획득하기 위해 VMCS(Virtual Machine Control Structure)의 IDTR(Interrupt Descriptor Table Register)의 값을 읽어오는 과정을 포함할 수 있다.Referring to FIG. 5, for example, <.text section> 501, one of the kernel protection areas subject to integrity verification, refers to an area where kernel code is stored. <.rodata section> (502) refers to an area where read-only initialized data exists. <__ex_table section>(503) refers to the area where the table of functions to handle exceptions when an exception occurs is stored. <IDT> (504) refers to the area where the table of functions to handle the interrupt when an interrupt occurs is stored. IDT (interrupt descriptor table) is a data structure used in the X86 architecture to implement an interrupt vector table. IDT is used by the processor to handle interrupts and exceptions. The IDT table stores the numbers of defined interrupts and addresses indicating execution codes. The virtual machine kernel runtime protection system may include the process of reading the value of the IDTR (Interrupt Descriptor Table Register) of the VMCS (Virtual Machine Control Structure) to obtain the memory address and size of the IDT, which is the kernel protection area of the virtual machine. .

상기한 커널 영역들(501 내지 504)은 코드 삽입 및 변조의 일반적인 대상이 되는 영역이다.The above-mentioned kernel areas 501 to 504 are areas that are common targets of code insertion and modification.

도 6은 본 발명의 일실시예에 따른 컴퓨터 시스템의 예를 도시한 블록도이다. 본 발명에 따른 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 시스템은 도 6과 같이 구성된 컴퓨터 시스템(600)에 의해 구현될 수 있다.Figure 6 is a block diagram showing an example of a computer system according to an embodiment of the present invention. The virtual machine kernel runtime protection system in a cloud platform environment according to the present invention can be implemented by a computer system 600 configured as shown in FIG. 6.

도 6에 도시된 바와 같이 컴퓨터 시스템(600)은 본 발명의 실시예들에 따른 클라우드 플랫폼 환경에서의 가상머신 커널 런타임 보호 방법을 실행하기 위한 구성요소로서, 메모리(610), 프로세서(620), 통신 인터페이스(630) 그리고 입출력 인터페이스(640)를 포함할 수 있다.As shown in FIG. 6, the computer system 600 is a component for executing the virtual machine kernel runtime protection method in a cloud platform environment according to embodiments of the present invention, and includes a memory 610, a processor 620, It may include a communication interface 630 and an input/output interface 640.

메모리(610)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(610)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 시스템(600)에 포함될 수도 있다. 또한, 메모리(610)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(610)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(610)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(630)를 통해 메모리(610)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(660)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 시스템(600)의 메모리(610)에 로딩될 수 있다.The memory 610 is a computer-readable recording medium and may include a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), and a disk drive. Here, non-perishable large-capacity recording devices such as ROM and disk drives may be included in the computer system 600 as a separate permanent storage device that is distinct from the memory 610. Additionally, an operating system and at least one program code may be stored in the memory 610. These software components may be loaded into the memory 610 from a computer-readable recording medium separate from the memory 610. Such separate computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, and memory cards. In another embodiment, software components may be loaded into the memory 610 through the communication interface 630 rather than a computer-readable recording medium. For example, software components may be loaded into memory 610 of computer system 600 based on computer programs being installed by files received over network 660.

프로세서(620)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(610) 또는 통신 인터페이스(630)에 의해 프로세서(620)로 제공될 수 있다. 예를 들어 프로세서(620)는 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 620 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processor 620 by the memory 610 or the communication interface 630. For example, the processor 620 may be configured to execute received instructions according to program codes stored in a recording device such as memory 610.

통신 인터페이스(630)는 네트워크(660)를 통해 컴퓨터 시스템(600)이 다른 장치와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 시스템(600)의 프로세서(620)가 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(630)의 제어에 따라 네트워크(660)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(660)를 거쳐 컴퓨터 시스템(600)의 통신 인터페이스(630)를 통해 컴퓨터 시스템(600)으로 수신될 수 있다. 통신 인터페이스(630)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(620)나 메모리(610)로 전달될 수 있고, 파일 등은 컴퓨터 시스템(600)이 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 630 may provide a function for the computer system 600 to communicate with other devices through the network 660. For example, a request, command, data, file, etc. generated by the processor 620 of the computer system 600 according to a program code stored in a recording device such as a memory 610 is transmitted to the network ( 660) and can be transmitted to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer system 600 through the communication interface 630 of the computer system 600 via the network 660. Signals, commands, data, etc. received through the communication interface 630 may be transmitted to the processor 620 or memory 610, and files, etc. may be stored in a storage medium (as described above) that the computer system 600 may further include. It can be stored as a permanent storage device).

통신 방식은 제한되지 않으며, 네트워크(660)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들 간의 근거리 유선/무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(660)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(660)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include not only a communication method utilizing communication networks that the network 660 may include (e.g., mobile communication network, wired Internet, wireless Internet, and broadcasting network), but also short-distance wired/wireless communication between devices. there is. For example, the network 660 may be a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), or a broadband network (BBN). , may include one or more arbitrary networks such as the Internet. Additionally, the network 660 may include any one or more of network topologies including a bus network, star network, ring network, mesh network, star-bus network, tree or hierarchical network, etc. Not limited.

입출력 인터페이스(640)는 입출력 장치(650)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(640)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(650)는 컴퓨터 시스템(600)과 하나의 장치로 구성될 수도 있다.The input/output interface 640 may be a means for interfacing with the input/output device 650. For example, input devices may include devices such as a microphone, keyboard, camera, or mouse, and output devices may include devices such as displays and speakers. As another example, the input/output interface 640 may be a means for interfacing with a device that integrates input and output functions, such as a touch screen. The input/output device 650 may be configured as a single device with the computer system 600.

또한, 다른 실시예들에서 컴퓨터 시스템(600)은 도 6의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 시스템(600)은 상술한 입출력 장치(650) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 각종 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Additionally, in other embodiments, computer system 600 may include fewer or more components than those of FIG. 6 . However, there is no need to clearly show most prior art components. For example, the computer system 600 may be implemented to include at least some of the input/output devices 650 described above, or may further include other components such as a transceiver, various databases, etc.

이처럼 본 발명의 실시예들에 따르면, 가상머신이 동작하기 전에 미리 구성된 해시 데이터베이스로 동작하는 런타임 동안은 물론이고, 가상머신이 부팅한 후에도 커널이 변조되었는지 검증할 수 있다. 그리고, 본 발명의 실시예들에 따르면, 본 발명의 실시예에 따르면, 가상머신 커널 런타임 보호를 위한 점검 동작을 호스트에서 수행함에 따라 클라우드 환경에서 다수의 가상머신에 대한 커널 변조에 대한 보호 동작을 효율적으로 수행할 수 있다.As such, according to embodiments of the present invention, it is possible to verify whether the kernel has been tampered with not only during runtime when the virtual machine operates with a pre-configured hash database before the virtual machine operates, but also even after the virtual machine boots. And, according to embodiments of the present invention, as the host performs a check operation to protect the virtual machine kernel runtime, a protection operation against kernel tampering for multiple virtual machines in a cloud environment is performed. It can be performed efficiently.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, the devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable logic unit (PLU). It may be implemented using one or more general-purpose or special-purpose computers, such as a logic unit, microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. The software and/or data may be embodied in any type of machine, component, physical device, computer storage medium or device for the purpose of being interpreted by or providing instructions or data to the processing device. there is. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. At this time, the medium may continuously store a computer-executable program, or temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.

Claims (15)

컴퓨터 시스템으로 구현되는 가상머신 커널 런타임 보호 시스템에 있어서,
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
VMI(Virtual Machine Introspection)를 이용하여 클라우드 환경의 가상머신 커널 런타임 무결성 검증을 수행하는 것으로,
리눅스 커널이 구동되는 가상머신의 메모리 주소 정보를 분석하는 과정; 및
상기 메모리 주소 정보를 이용하여 가상머신의 커널 변조 무결성을 검증하는 과정
을 처리하는 가상머신 커널 런타임 보호 시스템.
In a virtual machine kernel runtime protection system implemented as a computer system,
At least one processor configured to execute computer readable instructions contained in memory
Including,
The at least one processor,
It performs virtual machine kernel runtime integrity verification in a cloud environment using VMI (Virtual Machine Introspection).
The process of analyzing memory address information of a virtual machine running the Linux kernel; and
The process of verifying the kernel tampering integrity of a virtual machine using the memory address information
A virtual machine kernel runtime protection system that handles .
제1항에 있어서,
상기 적어도 하나의 프로세서는,
리눅스 운영체제에서 구동 중인 타겟 가상머신의 커널 영역 메모리에서 커널 보호 영역의 메모리 주소를 획득하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Obtaining the memory address of the kernel protection area from the kernel area memory of the target virtual machine running on the Linux operating system.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
기준 해시 값을 이용하여 가상머신의 커널 보호 영역의 메모리 값의 변조 여부를 확인하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Checking whether the memory value of the kernel protection area of the virtual machine has been tampered with using the standard hash value.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
가상머신의 부팅이 완료되면 상기 메모리 주소 정보에 따라 물리 메모리 영역의 데이터를 덤프(dump)하고,
덤프된 메모리 데이터에 대한 해시 값을 무결성 검증 기준이 되는 해시 값과 비교하여 커널 변조 여부를 확인하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
When booting of the virtual machine is complete, data in the physical memory area is dumped according to the memory address information,
Checking for kernel tampering by comparing the hash value of dumped memory data with the hash value that serves as an integrity verification standard.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
커널 코드인 vmlinux에 포함된 섹션 정보로 커널 보호 영역에 대한 주소 정보를 분석하고,
분석된 주소를 게스트 가상주소의 커널 공간(kernel space)으로 매핑하고,
상기 게스트 가상주소를 게스트 물리주소로 번역하고,
EPT(Extended Page Tables)를 통해 상기 게스트 물리주소를 호스트 물리주소로 번역하고,
상기 호스트 물리주소에서 물리 메모리 데이터를 덤프하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Address information about the kernel protection area is analyzed using section information included in the kernel code, vmlinux, and
Map the analyzed address to the kernel space of the guest virtual address,
Translating the guest virtual address into a guest physical address,
Translating the guest physical address into the host physical address through EPT (Extended Page Tables),
Dumping physical memory data from the host physical address
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
가상머신 데이터를 덤프하는 과정에서 디스크 저장 방식이 아닌 인-메모리(in-memory) 방식을 통해 호스트 메모리 영역에 버퍼를 할당하여 해당 버퍼에 메모리 데이터를 복사하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
In the process of dumping virtual machine data, allocating a buffer in the host memory area through the in-memory method rather than disk storage and copying the memory data to the buffer.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
가상머신의 커널 보호 영역의 메모리 주소를 획득하고,
상기 획득한 메모리 주소로 검증된 가상머신의 물리 메모리 데이터를 읽어오고,
상기 읽어온 메모리 데이터에 대한 해시 값을 계산하여 데이터베이스에 저장하고,
타겟 가상머신으로부터 읽어온 커널 보호 영역의 메모리 데이터에 대한 해시 값을 계산하고,
상기 데이터베이스에 저장된 해시 값과 상기 타겟 가상머신의 메모리 데이터에 대한 해시 값을 비교하여 변조 여부를 결정하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Obtain the memory address of the virtual machine's kernel protection area,
Read the physical memory data of the virtual machine verified with the obtained memory address,
Calculating a hash value for the read memory data and storing it in a database,
Calculate the hash value for the memory data in the kernel protection area read from the target virtual machine,
Determining whether or not there has been tampering by comparing the hash value stored in the database with the hash value for the memory data of the target virtual machine.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
가상머신의 커널 보호 영역 중 하나인 섹션(section)의 메모리 주소 및 크기를 획득하기 위해 커널 코드인 vmlinux을 추출하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Extracting the kernel code, vmlinux, to obtain the memory address and size of a section, which is one of the virtual machine's kernel protection areas.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
가상머신의 커널 보호 영역 중 하나인 IDT(interrupt descriptor table)의 메모리 주소 및 크기를 획득하기 위해 VMCS(Virtual Machine Control Structure)의 IDTR(Interrupt Descriptor Table Register)의 값을 읽어오는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
Reading the value of IDTR (Interrupt Descriptor Table Register) of VMCS (Virtual Machine Control Structure) to obtain the memory address and size of IDT (interrupt descriptor table), one of the kernel protection areas of the virtual machine.
A virtual machine kernel runtime protection system featuring.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
커널 코드가 저장된 영역인 <.text section>, 읽기전용 초기화(read-only initialized) 데이터가 존재하는 영역인 <.rodata section>, 예외를 처리할 함수의 테이블이 저장된 영역인 <__ex_table section>, 및 인터럽트를 처리할 함수의 테이블이 저장된 영역인 <IDT> 중 적어도 하나의 커널 보호 영역을 대상으로 커널 변조 무결성 검증을 수행하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 시스템.
According to paragraph 1,
The at least one processor,
<.text section>, which is the area where the kernel code is stored, <.rodata section>, which is the area where read-only initialized data exists, <__ex_table section>, which is the area where the table of functions to handle exceptions is stored, and Performing kernel tampering integrity verification targeting at least one kernel protection area among <IDT>, which is the area where the table of functions to handle interrupts is stored.
A virtual machine kernel runtime protection system featuring.
컴퓨터 시스템에서 수행되는 가상머신 커널 런타임 보호 방법에 있어서,
상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
상기 가상머신 커널 런타임 보호 방법은,
VMI(Virtual Machine Introspection)를 이용하여 클라우드 환경의 가상머신 커널 런타임 무결성 검증을 수행하는 것으로,
상기 적어도 하나의 프로세서의 의해, 리눅스 커널이 구동되는 가상머신의 메모리 주소 정보를 분석하는 단계; 및
상기 적어도 하나의 프로세서의 의해, 상기 메모리 주소 정보를 이용하여 가상머신의 커널 변조 무결성을 검증하는 단계
를 포함하는 가상머신 커널 런타임 보호 방법.
In a method of protecting a virtual machine kernel runtime performed in a computer system,
The computer system includes at least one processor configured to execute computer-readable instructions contained in a memory,
The virtual machine kernel runtime protection method is,
Performs virtual machine kernel runtime integrity verification in a cloud environment using VMI (Virtual Machine Introspection).
Analyzing memory address information of a virtual machine running a Linux kernel by the at least one processor; and
Verifying kernel modulation integrity of the virtual machine using the memory address information by the at least one processor
A virtual machine kernel runtime protection method including.
제11항에 있어서,
상기 분석하는 단계는,
리눅스 운영체제에서 구동 중인 타겟 가상머신의 커널 영역 메모리에서 커널 보호 영역의 메모리 주소를 획득하는 것으로,
상기 커널 보호 영역 중 하나인 섹션(section)의 메모리 주소 및 크기를 획득하기 위해 커널 코드인 vmlinux을 추출하는 단계; 및
상기 커널 보호 영역 중 다른 하나인 IDT(interrupt descriptor table)의 메모리 주소 및 크기를 획득하기 위해 VMCS(Virtual Machine Control Structure)의 IDTR(Interrupt Descriptor Table Register)의 값을 읽어오는 단계
를 포함하는 가상머신 커널 런타임 보호 방법.
According to clause 11,
The analysis step is,
This is to obtain the memory address of the kernel protection area from the kernel area memory of the target virtual machine running on the Linux operating system.
extracting vmlinux, which is a kernel code, to obtain a memory address and size of a section, which is one of the kernel protection areas; and
Reading the value of the Interrupt Descriptor Table Register (IDTR) of the Virtual Machine Control Structure (VMCS) to obtain the memory address and size of the interrupt descriptor table (IDT), which is another one of the kernel protection areas.
A virtual machine kernel runtime protection method including.
제11항에 있어서,
상기 검증하는 단계는,
가상머신의 부팅이 완료되면 상기 메모리 주소 정보에 따라 물리 메모리 영역의 데이터를 덤프하는 단계; 및
덤프된 메모리에 대한 해시 값을 무결성 검증 기준이 되는 해시 값과 비교하여 커널 변조 여부를 확인하는 단계
를 포함하는 가상머신 커널 런타임 보호 방법.
According to clause 11,
The verification step is,
When booting of the virtual machine is completed, dumping data in the physical memory area according to the memory address information; and
A step to check whether the kernel has been tampered with by comparing the hash value for the dumped memory with the hash value that serves as an integrity verification standard.
A virtual machine kernel runtime protection method including.
제13항에 있어서,
상기 덤프하는 단계는,
가상머신의 커널 보호 영역에 대한 주소 정보를 게스트 가상주소의 커널 공간(kernel space)으로 매핑하고,
상기 게스트 가상주소를 게스트 물리주소로 번역하고,
EPT(Extended Page Tables)를 통해 상기 게스트 물리주소를 호스트 물리주소로 번역하고,
상기 호스트 물리주소에서 물리 메모리 데이터를 덤프하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 방법.
According to clause 13,
The dumping step is,
Map address information about the kernel protection area of the virtual machine to the kernel space of the guest virtual address,
Translating the guest virtual address into a guest physical address,
Translating the guest physical address into the host physical address through EPT (Extended Page Tables),
Dumping physical memory data from the host physical address
A virtual machine kernel runtime protection method featuring.
제13항에 있어서,
상기 덤프하는 단계는,
디스크 저장 방식이 아닌 인-메모리(in-memory) 방식을 통해 호스트 메모리 영역에 버퍼를 할당하여 해당 버퍼에 메모리 데이터를 복사하는 것
을 특징으로 하는 가상머신 커널 런타임 보호 방법.
According to clause 13,
The dumping step is,
Allocating a buffer in the host memory area and copying memory data to that buffer using an in-memory method rather than a disk storage method.
A virtual machine kernel runtime protection method featuring.
KR1020220162199A 2022-11-29 2022-11-29 System for Protecting Virtual Machine Kernel Runtime in Cloud Platform KR20240080245A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220162199A KR20240080245A (en) 2022-11-29 2022-11-29 System for Protecting Virtual Machine Kernel Runtime in Cloud Platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220162199A KR20240080245A (en) 2022-11-29 2022-11-29 System for Protecting Virtual Machine Kernel Runtime in Cloud Platform

Publications (1)

Publication Number Publication Date
KR20240080245A true KR20240080245A (en) 2024-06-07

Family

ID=91480250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220162199A KR20240080245A (en) 2022-11-29 2022-11-29 System for Protecting Virtual Machine Kernel Runtime in Cloud Platform

Country Status (1)

Country Link
KR (1) KR20240080245A (en)

Similar Documents

Publication Publication Date Title
US9081600B2 (en) Virtual machine validation
EP3674954B1 (en) Security control method and computer system
US9202062B2 (en) Virtual machine validation
US9229881B2 (en) Security in virtualized computer programs
US9832226B2 (en) Automatic curation and modification of virtualized computer programs
US9075995B2 (en) Dynamically loaded measured environment for secure code launch
US8099574B2 (en) Providing protected access to critical memory regions
US9811663B2 (en) Generic unpacking of applications for malware detection
Graziano et al. Hypervisor memory forensics
Stüttgen et al. Acquisition and analysis of compromised firmware using memory forensics
US11977631B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
US20220035905A1 (en) Malware analysis through virtual machine forking
US10489185B2 (en) Hypervisor-assisted approach for locating operating system data structures based on attribute matching
KR101709116B1 (en) Apparatus and method for booting of virtual machines
US20180267818A1 (en) Hypervisor-assisted approach for locating operating system data structures based on notification data
Leon et al. Hypervisor-assisted dynamic malware analysis
US11500787B2 (en) Enforcing code integrity using a trusted computing base
Klemperer et al. High-performance memory snapshotting for real-time, consistent, hypervisor-based monitors
Zhong et al. A virtualization based monitoring system for mini-intrusive live forensics
Zhang et al. Secure virtualization environment based on advanced memory introspection
KR20240080245A (en) System for Protecting Virtual Machine Kernel Runtime in Cloud Platform
CN111194447A (en) Monitoring control flow integrity
US11847221B2 (en) System and method for content scanning using sparse files
US11822663B2 (en) Supervisor-based firmware hardening
Zaidenberg et al. Detecting eBPF Rootkits Using Virtualization and Memory Forensics.