KR101323858B1 - Apparatus and method for controlling memory access in virtualized system - Google Patents

Apparatus and method for controlling memory access in virtualized system Download PDF

Info

Publication number
KR101323858B1
KR101323858B1 KR1020110060843A KR20110060843A KR101323858B1 KR 101323858 B1 KR101323858 B1 KR 101323858B1 KR 1020110060843 A KR1020110060843 A KR 1020110060843A KR 20110060843 A KR20110060843 A KR 20110060843A KR 101323858 B1 KR101323858 B1 KR 101323858B1
Authority
KR
South Korea
Prior art keywords
memory
access
hypervisor
memory area
virtual machine
Prior art date
Application number
KR1020110060843A
Other languages
Korean (ko)
Other versions
KR20130000253A (en
Inventor
맹승렬
허재혁
진성욱
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020110060843A priority Critical patent/KR101323858B1/en
Publication of KR20130000253A publication Critical patent/KR20130000253A/en
Application granted granted Critical
Publication of KR101323858B1 publication Critical patent/KR101323858B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • 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

Landscapes

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

Abstract

본 발명은 가상화 시스템에서 메모리 접근을 제어하는 장치, 방법 및 그 방법을 기록한 기록매체에 관한 것으로, 본 발명에 따른 메모리 접근 제어 방법은, 하이퍼바이저가 특정 메모리 영역에 대한 접근을 요청하는 경우, 이러한 접근 요청에 따라 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 검사 결과에 따라 메모리 관리부가 선택적으로 하이퍼바이저의 메모리 접근을 허가하며, 하이퍼바이저는 메모리 관리부에 의한 메모리 접근 허가 없이는 메모리 영역에 대한 직접적인 접근이 거부된다.The present invention relates to an apparatus, a method for controlling memory access in a virtualization system, and a recording medium for recording the method. The memory access control method according to the present invention provides a method for accessing a specific memory region when a hypervisor requests access to a specific memory area. It checks whether the memory area is occupied by the virtual machine according to the access request, and the memory manager selectively grants the memory access to the hypervisor according to the check result, and the hypervisor can access the memory area without the memory access permission by the memory manager. Direct access to is denied.

Description

가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법{Apparatus and method for controlling memory access in virtualized system}Apparatus and method for controlling memory access in virtualized system

본 발명은 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법에 관한 것으로, 특히 가상화 시스템에서 하나 이상의 가상 머신을 동시에 실행하기 위한 가상 플랫폼(platform)인 하이퍼바이저(hypervisor)가 임의적으로 가상 머신이 사용하고 있는 메모리에 접근하는 것을 제어하는 장치, 방법 및 그 방법을 기록한 기록매체에 관한 것이다.The present invention relates to an apparatus and a method for controlling memory access in a virtualization system, and in particular, a virtual machine may be arbitrarily used by a hypervisor, which is a virtual platform for simultaneously executing one or more virtual machines in a virtualization system. An apparatus, a method for controlling access to a memory, and a recording medium recording the method.

가상화(virtualization)는 컴퓨터의 자원을 추상화(abstraction)해 실제 물리적인 자원과 분리시키는 기술이다. 종래에는 중앙처리장치(CPU)나 메모리 같은 물리적인 컴퓨팅 자원은 운영 체제(operating system: OS)와 연결되어 하나의 컴퓨팅 시스템을 구성하였다. 즉, 하나의 하드웨어 세트(set)에는 하나의 컴퓨팅 시스템만이 구성 가능하였다. 그러나, 가상화는 이러한 종래의 개념을 깨고 하나의 물리적인 하드웨어 상에 다수의 운영 체제 및 이에 기반한 컴퓨팅 시스템을 구축하는 것을 가능하게 한다. 따라서, 가상화 시스템에서는 한 개의 물리적인 자원을 논리적으로 분할하여 사용하거나, 물리적으로 다른 여러 개의 자원을 논리적으로 통합하는 것이 가능하다. 이를 통해, 실제로 컴퓨팅 시스템이 지니고 있는 물리적인 자원들을 논리적으로 분할하거나 통합하여 사용함으로써, 사용자에게 사용성의 편리성을 제공해주는 것과 동시에 자원을 효율적으로 사용하도록 하여 성능을 향상시키거나 자원 유지에 따른 비용을 감소시킬 수 있다.Virtualization is the art of abstraction of computer resources and separating them from physical resources. In the related art, physical computing resources such as a central processing unit (CPU) and memory are connected to an operating system (OS) to form a computing system. That is, only one computing system could be configured in one hardware set. However, virtualization breaks this conventional concept and makes it possible to build multiple operating systems and computing systems based thereon on one physical hardware. Therefore, in a virtualization system, it is possible to logically divide and use one physical resource or to logically integrate several other physical resources. In this way, by physically partitioning or integrating the physical resources of the computing system, it provides users with the convenience of use, while efficiently using the resources to improve performance or the cost of maintaining the resources. Can be reduced.

가상화 환경에서 가장 중요한 역할을 담당하고 있는 것은 하이퍼바이저(hypervisor)이다. 하이퍼바이저는 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 가상 플랫폼을 말하는데, 가상 머신 모니터(virtual machine monitor)라고 불리기도 한다. 이러한 하이퍼바이저는 물리적인 자원을 가상 머신들에게 효율적으로 분배해주는 것과 동시에 각 가상 머신들이 서로 각자의 자원을 침범하지 않도록 격리(isolation)하는 역할을 담당한다. 각각의 가상 머신들은 물리적인 자원을 공유하여 사용하지만 하이퍼바이저에 의해 하나의 가상 머신이 다른 가상 머신의 자원(예를 들어, 메모리나 디스크의 내용이 될 수 있다.)을 읽거나 사용할 수는 없다. 이를 통해 가상 머신은 독립적인 하나의 물리적인 컴퓨터를 사용하는 것처럼 동작할 수 있다.The most important role in the virtualization environment is the hypervisor. A hypervisor is a virtual platform for running multiple operating systems on a host computer at the same time, also called a virtual machine monitor. These hypervisors are responsible for distributing physical resources efficiently to virtual machines, and at the same time isolating each virtual machine from each other's own resources. Each virtual machine shares and uses physical resources, but the hypervisor cannot allow one virtual machine to read or use the resources of another virtual machine (for example, it can be the contents of a memory or a disk). . This allows virtual machines to behave as if they were using one independent physical computer.

그러나, 이러한 하이퍼바이저는 가상화 환경에서 가지는 역할의 중요성 때문에 시스템의 자원에 대해 강력한 권한을 갖는다는 점에서 위험이 지적될 수 있다. 즉, 하이퍼바이저가 그 역할을 수행하기 위해 시스템의 자원에 대해 강력한 권한을 가지는 만큼, 하이퍼바이저에 의한 임의적인 메모리 접근이 가능하다. 따라서, 가상화 환경에서 하이퍼바이저에 대한 메모리 접근을 적절하게 제어할 수 있는 기술적 수단이 요구된다.However, the risk can be pointed out in that such a hypervisor has a strong authority over the resources of the system because of the importance of its role in the virtualization environment. In other words, as the hypervisor has strong authority over the resources of the system to perform its role, arbitrary memory access by the hypervisor is possible. Therefore, there is a need for a technical means to properly control the memory access to the hypervisor in a virtualized environment.

본 발명이 해결하고자 하는 기술적 과제는 가상화 환경 내에서 강력한 권한을 갖는 하이퍼바이저가 임의로 가상 머신이 사용 중인 메모리의 내용을 접근할 수 있는 위험을 배제하고, 이로 인해 하이퍼바이저가 악의적인 사용자에 의해 조종될 경우 개별 가상 머신의 보안이 위협되는 문제점을 해결하며, 동시에 하이퍼바이저에 의한 메모리 접근이 불가피한 경우 해당 메모리의 내용을 안전하게 보호할 수 있는 기술적 수단이 존재하지 않는 한계를 극복하고자 한다.The technical problem to be solved by the present invention is to eliminate the risk that a powerful hypervisor within a virtualized environment can arbitrarily access the contents of the memory that the virtual machine is using, and the hypervisor is controlled by a malicious user. In this case, it solves the problem that the security of the individual virtual machine is threatened, and at the same time, if the memory access by the hypervisor is inevitable, the technical means to secure the contents of the memory is not existed.

상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 가상화 시스템에서 메모리 접근을 제어하는 방법은, 상기 가상화 시스템에서 하나 이상의 가상 머신(virtual machine)을 동시에 실행하기 위한 가상 플랫폼(platform)인 하이퍼바이저(hypervisor)가 소정 메모리 영역에 대한 접근을 요청하는 단계; 상기 접근 요청에 따라 메모리 관리부는 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하는 단계; 및 상기 검사 결과에 따라 상기 메모리 관리부가 선택적으로 상기 하이퍼바이저의 메모리 접근을 허가하는 단계를 포함하고, 상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부된다.In order to solve the above technical problem, a method of controlling memory access in a virtualization system according to an embodiment of the present invention, which is a virtual platform (platform) for simultaneously running one or more virtual machines (virtual machine) in the virtualization system Requesting a hypervisor to access a predetermined memory area; Checking, by the memory manager, whether the memory area is occupied by a virtual machine according to the access request; And selectively granting the memory access of the hypervisor by the memory manager according to the test result, wherein the hypervisor is denied direct access to the memory area without permission of the memory access by the memory manager.

상기된 가상화 시스템에서 메모리 접근을 제어하는 방법에서, 상기 하이퍼바이저가 상기 메모리 영역을 강제로 할당받아야 하는 경우, 상기 메모리 영역의 점유 여부를 검사하는 단계 이전에, 상기 메모리 관리부가 상기 메모리 영역에 기록된 정보, 상기 메모리 영역에 대한 페이지 테이블 사상 정보 및 가상 머신의 점유 정보를 삭제하는 단계를 더 포함한다.In the method of controlling memory access in the virtualization system, when the hypervisor needs to be forcibly allocated the memory area, the memory manager writes the memory area in the memory area before checking whether the memory area is occupied. Deleting the stored information, the page table mapping information for the memory area, and the occupancy information of the virtual machine.

상기 다른 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 가상화 시스템에서 메모리 접근을 제어하는 방법은, 상기 가상화 시스템에서 하이퍼바이저로 하여금 소정 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 설정하는 단계; 상기 설정된 예외 상황이 발생한 경우, 메모리 관리부가 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하는 단계; 상기 하이퍼바이저가 상기 암호화된 메모리 영역에 접근하여 상기 예외 상황에 따른 작업을 수행하는 단계; 및 상기 예외 상황에 따른 작업이 완료된 후, 상기 메모리 관리부가 상기 암호화된 메모리 영역을 복호화하는 단계를 포함하고, 상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부된다.In order to solve the above other technical problem, a method of controlling memory access in a virtualization system according to another embodiment of the present invention, the hypervisor in the virtualization system should allow access to the memory area used by a given virtual machine Presetting an exception situation; Encrypting, by the memory manager, a memory area used by the predetermined virtual machine when the set exception occurs; Accessing the encrypted memory area by the hypervisor to perform a task according to the exceptional situation; And after the operation according to the exceptional condition is completed, the memory manager decrypts the encrypted memory area, and the hypervisor is denied direct access to the memory area without permission to access the memory area by the memory manager. do.

상기된 가상화 시스템에서 메모리 접근을 제어하는 방법에서, 상기 메모리 영역을 암호화하는 단계는, 상기 메모리 관리부가 갖는 암호화 수단을 이용하여 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하고, 상기 하이퍼바이저는 상기 암호화 수단에 직접 접근할 수 없어 상기 암호화된 메모리 영역을 임의로 복호화할 수 없다.In the method of controlling memory access in the virtualization system, the encrypting of the memory area may include encrypting a memory area used by the predetermined virtual machine using encryption means of the memory manager, and the hypervisor It is not possible to directly access the encryption means so that the encrypted memory area cannot be arbitrarily decrypted.

또한, 이하에서는 상기 기재된 가상화 시스템에서 메모리 접근을 제어하는 방법들을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In addition, the following provides a computer-readable recording medium having recorded thereon a program for executing a method for controlling memory access in the virtualization system described above in a computer.

상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 가상화 시스템에서 메모리 접근을 제어하는 장치는, 상기 가상화 시스템에서 하나 이상의 가상 머신을 동시에 실행하기 위한 가상 플랫폼이며, 소정 메모리 영역에 대한 접근을 요청하는 하이퍼바이저; 및 상기 접근 요청에 따라 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 상기 검사 결과에 따라 선택적으로 상기 하이퍼바이저의 메모리 접근을 허가하는 메모리 관리부를 포함하고, 상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부된다.In order to solve the above technical problem, an apparatus for controlling memory access in a virtualization system according to an embodiment of the present invention is a virtual platform for simultaneously executing one or more virtual machines in the virtualization system, and access to a predetermined memory area. A hypervisor requesting a request; And a memory manager configured to check whether the memory area is occupied by a virtual machine according to the access request, and selectively allow memory access of the hypervisor according to the check result. Direct access to the memory area is denied without permission to access the memory by the manager.

상기된 가상화 시스템에서 메모리 접근을 제어하는 장치의 메모리 관리부는, 메모리 영역의 점유 상태를 표시하는 머신-어드레스 테이블; 및 게스트 물리 메모리(guest physical memory)와 실제 머신 메모리(machine memory) 간의 사상 정보를 저장하는 페이지 테이블을 포함하고, 상기 접근 요청에 따라 상기 페이지 테이블을 이용하여 가상 메모리와 게스트 물리 메모리 간의 사상 정보와 상기 게스트 물리 메모리와 실제 머신 메모리 간의 사상 정보를 검색 및 관리하며, 상기 검사 결과 상기 메모리 영역이 어떠한 가상 머신에 의해서도 점유되어 있지 않은 경우, 머신-어드레스 테이블에 상기 메모리 영역에 대한 접근 주체를 갱신하고, 페이지 테이블의 사상 정보를 갱신하여 상기 하이퍼바이저의 메모리 접근을 허가한다.The memory manager of the apparatus for controlling memory access in the virtualization system includes: a machine-address table displaying an occupation state of a memory area; And a page table for storing mapping information between a guest physical memory and a machine memory, and using the page table according to the access request, mapping information between a virtual memory and a guest physical memory. Search and manage mapping information between the guest physical memory and the actual machine memory, and if the check result indicates that the memory area is not occupied by any virtual machine, update an access subject to the memory area in a machine-address table; The mapping information of the page table is updated to allow the hypervisor to access the memory.

상기 다른 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 가상화 시스템에서 메모리 접근을 제어하는 장치는, 상기 가상화 시스템에서 소정 메모리 영역에 대한 접근을 요청하는 하이퍼바이저; 및 상기 접근 요청에 따라 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 상기 검사 결과에 따라 선택적으로 상기 하이퍼바이저의 메모리 접근을 허가하며, 상기 가상화 시스템에서 하이퍼바이저로 하여금 소정 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 저장하는 메모리 관리부를 포함하고, 상기 설정된 예외 상황이 발생한 경우, 상기 메모리 관리부가 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하고, 상기 예외 상황에 따른 작업이 완료된 후 상기 암호화된 메모리 영역을 복호화하며, 상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부된다.In order to solve the other technical problem, an apparatus for controlling memory access in a virtualization system according to another embodiment of the present invention, a hypervisor for requesting access to a predetermined memory area in the virtualization system; And checking whether the memory area is occupied by a virtual machine in response to the access request, selectively granting memory access of the hypervisor according to the check result, and causing the hypervisor in the virtualization system to execute a predetermined virtual machine. And a memory manager configured to store an exception condition for allowing access to the memory area to be used in advance, and when the set exception condition occurs, the memory manager encrypts a memory area used by the predetermined virtual machine, After the operation according to the exceptional situation is completed, the encrypted memory area is decrypted, and the hypervisor is denied direct access to the memory area without permission of the memory access by the memory manager.

상기된 가상화 시스템에서 메모리 접근을 제어하는 장치에서, 상기 예외 상황은, 가상 머신 또는 하이퍼바이저의 메모리 부족으로 인한 스왑의 경우, 메모리에 적재된 가상 머신의 동작을 일시정지시키거나 종료시켜 디스크에 저장하는 경우, 또는 가상 머신이 현재의 물리 머신으로부터 다른 물리 머신으로 재할당되는 이주의 경우 중 적어도 하나인 것이 바람직하다.In the apparatus for controlling memory access in the virtualization system, the exception is, in the case of a swap due to the memory shortage of the virtual machine or the hypervisor, the operation of the virtual machine loaded in the memory is paused or terminated and stored on the disk. Or at least one of the migration cases in which the virtual machine is reallocated from the current physical machine to another physical machine.

본 발명은 하이퍼바이저가 메모리 관리부에 의한 메모리 접근 허가 없이는 메모리 영역에 대한 직접적인 접근이 거부됨으로써, 하이퍼바이저가 임의로 가상 머신이 사용 중인 메모리에 접근하는 것을 방지하고, 하이퍼바이저가 악의적인 사용자에 의해 조종되는 경우 개별 가상 머신의 비밀 정보가 외부에 직접적으로 노출되는 위험을 막을 수 있으며, 하이퍼바이저에 의한 메모리 접근이 불가피한 경우에도 해당 메모리의 내용을 암호화함으로써 하이퍼바이저로부터 그 내용을 안전하게 보호할 수 있다.The present invention prevents the hypervisor from randomly accessing the memory in use by the virtual machine, and the hypervisor is manipulated by a malicious user by denying direct access to the memory area without the memory access permission by the memory manager. In this case, the secret information of individual virtual machines can be prevented from being directly exposed to the outside, and even if the memory access by the hypervisor is inevitable, the contents of the memory can be encrypted to protect the contents from the hypervisor.

도 1은 본 발명의 실시예들이 구현되는 가상화 환경에서 계층화된 메모리 구조를 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 가상화 시스템에서 하이퍼바이저가 메모리 영역에 대한 접근을 요청한 경우, 메모리 접근을 제어하는 방법을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 도 2의 메모리 접근 제어 방법에서 페이지의 점유 여부에 따라 메모리 접근을 허가 내지 거부하는 방법을 보다 구체적으로 도시한 흐름도이다.
도 4는 본 발명의 다른 실시예에 따른 가상화 시스템에서 예외 상황이 발생한 경우, 메모리 접근을 제어하는 방법을 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 메모리 접근을 제어하는 장치를 포함한 가상화 시스템 전체를 도시한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 도 5의 메모리 접근 제어 장치에서 메모리 관리부를 보다 구체적으로 도시한 블록도이다.
1 is a diagram illustrating a layered memory structure in a virtualization environment in which embodiments of the present invention are implemented.
2 is a flowchart illustrating a method of controlling memory access when a hypervisor requests access to a memory area in a virtualization system according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a method of granting or denying a memory access according to whether a page is occupied in the memory access control method of FIG. 2 according to an embodiment of the present invention.
4 is a flowchart illustrating a method of controlling memory access when an exception occurs in a virtualization system according to another embodiment of the present invention.
5 is a block diagram illustrating an entire virtualization system including an apparatus for controlling memory access according to an embodiment of the present invention.
FIG. 6 is a block diagram illustrating a memory manager in more detail in the apparatus for controlling access of memory according to an embodiment of the present invention.

본 발명의 실시예들을 설명하기에 앞서, 본 발명의 실시예들이 구현되기 위해 사용되는 가상화 환경의 기술 수단들을 개괄적으로 검토하고, 이러한 가상화 환경에서 발생 가능한 문제점을 소개하도록 한다.Before describing embodiments of the present invention, the technical means of the virtualization environment used to implement the embodiments of the present invention will be reviewed in general, and the problems that may occur in such a virtualization environment will be introduced.

과거 프로그래머가 직접 메모리의 물리 주소를 사용하던 시기에는 물리적인 메모리 크기보다 더 큰 메모리를 요구하는 프로그램을 실행할 수 없었으나, 기술의 진보에 따라 가상 메모리(virtual memory)를 제공함으로써 사용자에게 실제 컴퓨터 시스템이 구비하고 있는 메모리보다 더 큰 가상화 메모리를 제공할 수 있게 되었다. 이는 실제 프로그램이 사용되고 있는 프로그램 영역 중 일부만을 메모리에 상주시키고, 나머지 영역은 디스크와 같은 대용량 스토리지(storage)에 저장함으로써, 보다 많은 응용 프로그램을 동시에 실행시키거나 실제 물리적인 메모리의 크기보다 많은 큰 메모리를 요구하는 응용 프로그램을 효율적으로 동작시킬 수 있게 되었다. 즉, 이러한 환경 하에서는 물리적인 메모리를 페이지(page) 단위로 분할하여 각 프로그램에 분배하고, 가상 메모리 주소를 물리 메모리(physical memory) 주소로 변경함으로써 메모리를 보다 효율적으로 사용할 수 있도록 하였다.In the past, when programmers directly used the physical address of memory, they could not execute programs that required more memory than the physical memory size.However, according to the advances in technology, by providing virtual memory, the user is provided with a real computer system. It is now possible to provide virtualized memory that is larger than the memory it has. This allows only a portion of the program area where the actual program is used to reside in memory, and the remaining area to a large storage, such as disk, to run more applications at the same time or larger memory than the size of the actual physical memory. You can now efficiently run applications that require. That is, in such an environment, the physical memory is divided into pages and distributed to each program, and the virtual memory address is changed to a physical memory address so that the memory can be used more efficiently.

그러나, 하나의 물리적인 시스템에서 복수 개의 운영 체제(가상 머신을 의미한다.)이 동시에 동작하는 가상화 환경에서는 실제로 물리적으로 존재하지는 않지만 마치 각각의 운영 체제 내에 존재하는 것처럼 동작할 수 있는 또 하나의 가상화된 물리 메모리인 게스트 물리 메모리(guest physical memory)가 필요하다. 이로 인해 가상화 환경의 메모리 관리 장치는 가상화된 물리 메모리를 제공하여, 실제 머신에 설치된 머신 메모리(machine memory)로 변환하는 역할을 담당해야 한다.However, in a virtualization environment where multiple operating systems (meaning virtual machines) operate simultaneously on a single physical system, another virtualization that does not actually exist physically but can behave as if it exists within each operating system. You need guest physical memory, which is physical memory. As a result, the memory management device of the virtualization environment must provide virtualized physical memory and convert the memory to machine memory installed in a real machine.

도 1은 본 발명의 실시예들이 구현되는 가상화 환경에서 계층화된 메모리 구조를 예시한 도면으로서, 가상화 환경의 운영 체제에서 동작하는 프로그램은 가상 메모리를 사용하게 되고, 해당 운영 체제는 자신만의 페이지 테이블을 관리하게 된다. 이 때, 해당 가상 머신(게스트 운영 체제를 의미한다.)이 관리하는 페이지 테이블은 가상 메모리(guest virtual memory)와 게스트 물리 메모리(guest physical memory) 간의 사상(mapping) 정보를 저장하고 있다. 또한, 하이퍼바이저는 게스트 물리 메모리와 실제 머신에 설치된 머신 메모리(machine memory) 간의 사상 정보를 저장하는 페이지 테이블(page table)을 관리한다. 즉, 가상화 환경에서 동작하는 프로그램에서 실제 머신에 저장된 메모리에 접근하기 위해서는 가상 메모리로부터 게스트 물리 메모리로 주소 변환을 한 후, 다시 게스트 물리 메모리로부터 실제 머신 메모리로의 주소 변환을 수행한 후에야만, 비로소 실제 머신에 저장된 메모리에 접근하는 것이 가능하다.1 is a diagram illustrating a hierarchical memory structure in a virtualization environment in which embodiments of the present invention are implemented. A program running in an operating system of the virtualization environment uses virtual memory, and the operating system has its own page table. Will be managed. At this time, the page table managed by the corresponding virtual machine (representing a guest operating system) stores mapping information between guest virtual memory and guest physical memory. The hypervisor also manages a page table that stores mapping information between guest physical memory and machine memory installed in a real machine. In other words, in order to access memory stored in a physical machine in a program running in a virtualized environment, an address translation from virtual memory to guest physical memory and then address translation from guest physical memory to physical machine memory are required. It is possible to access memory stored on a real machine.

통상적으로 가상화 환경에서는 하이퍼바이저에 기초하여 복수 개의 가상 머신들이 동작하며, 이러한 가상화 환경은 소프트웨어 관리의 측면이나 컴퓨팅 자원 활용 측면에서 많은 장점을 가진다. 예를 들어, 가상 머신들은 서로의 자원을 공유할 수 있으며, 시스템의 여러 자원들 중 중앙처리장치(central processing unit, CPU)의 공유도 가능하다. 이 경우, 시간을 분할하여 각 가상 머신이 일정한 시간을 나누어서 사용하도록 하여 중앙처리장치를 공유하도록 하며, 메모리의 경우에는 메모리를 일정한 크기로 분할하거나 일부 메모리를 공유하여 사용하도록 한다.In general, in a virtualization environment, a plurality of virtual machines operate based on a hypervisor, which has many advantages in terms of software management and computing resource utilization. For example, virtual machines may share resources with each other, and may share a central processing unit (CPU) among various resources of the system. In this case, the virtual machines are shared by dividing the time so that each virtual machine divides the predetermined time, and in the case of memory, the memory is divided into a certain size or some memory is shared.

메모리에는 각 가상 머신에서 사용하는 프로그램 및 데이터가 저장되는데 특정 데이터를 암호화하기 위한 개인 키, 금융 정보나 개인 신상에 관한 비밀 정보 등 반드시 보안이 지켜져야만 하는 정보를 담고 있을 수 있다. 앞서 설명한 바와 같이 하이퍼바이저에 의해서 각 가상 머신은 격리되므로, 일반적인 경우에 하나의 가상 머신이 갖는 중요 데이터가 다른 가상 머신에게 노출되는 경우는 거의 없다.The memory stores programs and data used by each virtual machine, and may contain information that must be secured, such as a private key for encrypting specific data, secret information about financial information or personal information. As described above, each virtual machine is isolated by the hypervisor, so that in general, important data of one virtual machine is rarely exposed to other virtual machines.

그러나, 가상화 시스템에서 매우 중요한 역할을 담당하는 하이퍼바이저가 악의적인 공격에 의해서 코드가 변경되는 경우에는, 가상 머신에서 사용하고 있는 자원들(예를 들어, 메모리, 디스크 또는 네트워크 장치가 될 수 있다.)의 상세 내용을 읽거나 변경할 수 있다. 이는 하이퍼바이저가 가상화 시스템 내에서 최고 권한을 가지고 수행하고 있기 때문인데, 이러한 공격을 당하게 될 경우에는 가상 머신이 안전하게 동작한다는 것을 보장할 수 없다. 즉, 악의적인 사용자에게 지배된 하이퍼바이저에 의해 가상 머신의 중요 데이터가 노출될 수 있으며, 이하에서 설명할 본 발명의 실시예들은 이러한 문제점을 해결하기 위한 기술적 수단을 제시하고자 한다.However, if the hypervisor, which plays a very important role in the virtualization system, is modified by a malicious attack, it may be the resources (eg, memory, disk, or network device) being used by the virtual machine. ) Can be read or changed. This is because the hypervisor is performing with the highest privileges within the virtualization system. In the event of such an attack, there is no guarantee that the virtual machine will operate safely. That is, important data of a virtual machine may be exposed by a hypervisor controlled by a malicious user, and embodiments of the present invention described below are intended to suggest technical means for solving such a problem.

본 발명의 실시예들이 공통적으로 채택하고 있는 기본 아이디어는 다음과 같다. 즉, 본 발명의 실시예들에서는 가상화 환경 하에서 시스템 자원에 대한 최고 권한을 가진 하이퍼바이저가 직접 가상 머신의 메모리 내용을 읽거나 변경하지 못하도록 한다. 그 대신, 하이퍼바이저가 가상 머신의 메모리에 접근하기 위해서는 반드시 하드웨어로 구현된 메모리 관리부를 통해서만 가능하도록 한다. 이러한 메모리 관리부는 하이퍼바이저를 포함한 각각의 가상 머신에서 사용하는 페이지 테이블(page table)을 직접 관리하게 되고, 하이퍼바이저는 단순히 메모리 관리부에 대해 메모리 할당 및 해제 요청만을 하게 되며, 페이지 테이블에 대한 직접적인 접근은 불가하다.Basic ideas commonly adopted by the embodiments of the present invention are as follows. That is, in the embodiments of the present invention, the hypervisor having the highest authority on system resources may not directly read or change the memory contents of the virtual machine under the virtualization environment. Instead, the hypervisor must be able to access the virtual machine's memory only through a memory manager implemented in hardware. The memory manager directly manages the page table used by each virtual machine including the hypervisor, and the hypervisor simply requests memory allocation and deallocation to the memory manager, and directly accesses the page table. Is impossible.

이하에서는 이상과 같은 아이디어 및 도면을 참조하여 본 발명의 다양한 실시예들을 구체적으로 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the above-described ideas and drawings.

도 2는 본 발명의 일 실시예에 따른 가상화 시스템에서 하이퍼바이저가 메모리 영역에 대한 접근을 요청한 경우, 메모리 접근을 제어하는 방법을 도시한 흐름도로서 다음과 같은 단계들을 포함한다.2 is a flowchart illustrating a method of controlling memory access when a hypervisor requests access to a memory area in a virtualization system according to an embodiment of the present invention, and includes the following steps.

210 단계에서는 가상화 시스템에서 하나 이상의 가상 머신(virtual machine)을 동시에 실행하기 위한 가상 플랫폼(platform)인 하이퍼바이저(hypervisor)가 특정 메모리 영역에 대한 접근을 요청한다. 앞서 소개한 바와 같이 본 발명의 실시예들에서 하이퍼바이저는 메모리 영역에 대해 직접 접근할 수 없으며, 반드시 하드웨어로 구현된 메모리 관리부를 통해서만 해당 메모리 영역에 접근할 수 있도록 구현된다.In step 210, a hypervisor, which is a virtual platform for simultaneously executing one or more virtual machines in the virtualization system, requests access to a specific memory area. As described above, in the embodiments of the present invention, the hypervisor may not directly access the memory area, but may be implemented to access the memory area only through a memory management unit implemented in hardware.

220 단계에서 메모리 관리부는 210 단계의 접근 요청에 따라 해당 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사한다. 본 실시예에서 메모리를 구성하는 각각의 메모리 영역들은 가상 머신에 의해 사용되는 경우, 그 점유 여부를 특정 테이블(예를 들어, 머신-어드레스(machine to address, M2A) 테이블이 될 수 있다.)에 기록하게 된다. 따라서, 220 단계에서는 이러한 특정 테이블을 조회함으로써 하이퍼바이저가 요청하고 있는 메모리 영역이 어떠한 가상 머신에 의해 점유되어 있는지 여부를 알 수 있다.In operation 220, the memory manager determines whether the corresponding memory area is occupied by the virtual machine according to the access request of operation 210. In the present embodiment, each memory area constituting the memory, when used by the virtual machine, may be occupied in a specific table (eg, a machine to address (M2A) table). Will be recorded. Therefore, in step 220, by querying the specific table, it is possible to know which virtual machine is occupied by the memory area requested by the hypervisor.

230 단계에서 메모리 관리부는 220 단계의 검사 결과에 따라 선택적으로 하이퍼바이저의 메모리 접근을 허가한다. 이 때, 하이퍼바이저는 메모리 관리부에 의한 메모리 접근 허가 없이는 메모리 영역에 대한 직접적인 접근이 거부된다. 즉, 검사 결과 해당 메모리 영역이 다른 가상 머신에 의해 점유된 경우에는 메모리 영역에 대한 접근이 거부되고, 해당 메모리 영역이 어떠한 가상 머신에 의해서도 점유되지 않은 경우에는 해당 메모리 영역에 대한 접근이 허가된다.In operation 230, the memory manager selectively grants the hypervisor memory access according to the test result of operation 220. At this time, the hypervisor is denied direct access to the memory area without the memory access permission by the memory manager. In other words, if the memory area is occupied by another virtual machine, the access to the memory area is denied. If the memory area is not occupied by any virtual machine, access to the memory area is permitted.

도 3은 이상에서 개괄적으로 설명한 도 2의 메모리 접근 제어 방법에서 페이지의 점유 여부에 따라 메모리 접근을 허가 내지 거부하는 방법을 보다 구체적으로 도시한 흐름도로서, 여기서는 도 1에서 설명된 구성에 대한 중복되는 설명을 가급적 배제하도록 한다.FIG. 3 is a flowchart illustrating a method of granting or denying a memory access according to whether a page is occupied in the memory access control method of FIG. 2, which is outlined above, and is overlapped with respect to the configuration described with reference to FIG. 1. Try to exclude the explanation as much as possible.

우선, 210 단계를 통해 하이퍼바이저에 의한 페이지(메모리 영역을 의미한다.) 할당 요청이 발생한 경우, 230 단계에서는 해당 페이지가 가상 머신에 의해 점유되어 있는지 여부를 검사한다. 앞서 설명한 바와 같이 이러한 검사를 위해 메모리 관리부는 머신-어드레스(machine to address, M2A) 테이블을 참조하게 되며, 머신-어드레스 테이블은 실제 메모리 주소가 어떤 가상 머신이나 하이퍼바이저에 의해 점유되고 있는지를 나타낸다.First, when a page (memory area) allocation request by the hypervisor occurs in step 210, in step 230, it is checked whether the corresponding page is occupied by the virtual machine. As described above, the memory manager refers to a machine-address (M2A) table for such a check, and the machine-address table indicates which virtual machine or hypervisor is occupied by an actual memory address.

검사 결과, 이미 특정 가상 머신에 의해 해당 페이지가 점유되어 있는 경우에는 257 단계로 진행하여 하이퍼바이저에 의한 해당 메모리 접근을 거부한다. 만약, 해당 페이지가 어떠한 가상 머신에 의해서도 점유되어 있지 않다면, 253 단계로 진행한다.As a result, if the page is already occupied by a specific virtual machine, the process proceeds to step 257 and denies the memory access by the hypervisor. If the page is not occupied by any virtual machine, step 253 is reached.

253 단계에서 메모리 관리부는 메모리 영역의 점유 상태를 표시하는 머신-어드레스 테이블에 메모리 영역에 대한 접근 주체(여기서는 하이퍼바이저가 될 것이다.)를 갱신함으로써, 하이퍼바이저에 의한 점유를 기록한다. 또한, 메모리 관리부는 255 단계에서 페이지 테이블(page table)의 사상 정보를 갱신하여 하이퍼바이저의 메모리 접근을 허가한다.In step 253, the memory manager records the occupation by the hypervisor by updating an access subject (herein, the hypervisor) to the memory region in the machine-address table indicating the occupation state of the memory region. In operation 255, the memory manager updates the mapping information of the page table to allow the hypervisor to access the memory.

가상화 시스템 구현의 측면에서, 이상과 같이 하이퍼바이저가 메모리 관리부에 메모리 영역에 대한 접근을 요청하는 일련의 과정은 특정 명령어 호출과 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기(processor)를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 메모리 접근 제어 과정은 페이지 할당을 요청하는 특정 명령어(이하에서 이러한 명령어는 'Page map' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. 'Page map' 명령어는 게스트 물리 메모리 주소를 실제 머신 메모리 주소를 사상하여 메모리 접근 시에 해당 사상 정보를 참고하여 실제 메모리 접근을 가능하게 해주는 것이다. 만약, 'Page map' 명령어가 하이퍼바이저에 의해 호출되면, 메모리 관리부는 페이지 테이블에 해당 정보를 기입하여 메모리 접근을 가능하게 한다.In terms of the implementation of the virtualization system, as described above, a process in which the hypervisor requests the memory manager to access a memory area is executed by using a specific instruction call and the memory manager and at least one hardware processor. It can be implemented by performing. That is, the above-described memory access control process may be implemented by calling a specific command for requesting page allocation (hereinafter, such a command is referred to as a 'page map' command). The 'Page map' command maps the guest physical memory address to the actual machine memory address so that the memory can be accessed by referring to the mapping information when accessing the memory. If the 'Page map' command is called by the hypervisor, the memory manager writes the information in the page table to enable memory access.

해당 기능에 대한 상세한 동작은 앞서 설명한 도 2의 과정에 따라 수행된다. 우선 페이지 할당 요청(210)이 하이퍼바이저에 의해 호출된 경우, 해당 페이지가 어떠한 가상 머신도 사용하지 않은 프리 페이지(free page)인지 여부를 검사(230)한다. 검사 결과, 악의적인 하이퍼바이저가 가상 머신의 정보를 담고 있는 실제 머신 메모리를 하이퍼바이저의 영역으로 사상 정보를 변경하려 한다면, 이러한 접근을 거부(257)하게 된다. 반면, 해당 페이지가 점유 주체가 없는 프리 페이지라면 머신-어드레스 테이블을 갱신하여 점유 주체(경우에 따라서, 하이퍼바이저 또는 특정 가상 머신이 될 수 있다.)를 기록(253)하게 된다. 마지막으로, 메모리 관리부는 실제 페이지 테이블을 갱신(255)하여 실제 메모리 접근을 허가한다.Detailed operations of the corresponding function are performed according to the process of FIG. 2 described above. First, when the page allocation request 210 is called by the hypervisor, it is checked 230 whether the page is a free page without any virtual machine. As a result of the check, if the malicious hypervisor tries to change the mapping information from the real machine memory containing the virtual machine's information to the hypervisor's area, the access is denied (257). On the other hand, if the page is a free page without an occupant, the machine-address table is updated to record the occupant (which may be a hypervisor or a specific virtual machine in some cases) (253). Finally, the memory manager updates the real page table (255) to allow real memory access.

한편, 이러한 가상화 환경에서는 하이퍼바이저가 메모리 영역을 강제로 할당받아야 하는 경우가 존재한다. 메모리가 부족하거나 특정 요구 사항이 발생하는 경우가 그러한데, 이상에서 설명한 본 발명의 실시예들에 따르면 원칙적으로 기존에 가상 머신에 의해 점유된 메모리 영역에 대해서는 하이퍼바이저에 의한 접근이 거부된다. 따라서, 이하에서는 필요에 따라 메모리 관리부가 가상 머신으로부터 메모리 영역을 회수하여 하이퍼바이저에게 제공하는 경우에 활용될 수 있는 기술적 수단을 제안한다.On the other hand, in such a virtualization environment, there is a case where the hypervisor must be forcibly allocated a memory area. This is the case when there is a shortage of memory or a specific requirement arises. According to the embodiments of the present invention described above, in principle, access by a hypervisor is denied to a memory area previously occupied by a virtual machine. Therefore, the following proposes a technical means that can be utilized when the memory management unit recovers the memory area from the virtual machine and provides it to the hypervisor as necessary.

이를 위해, 메모리 관리부가 메모리 영역의 점유 여부를 검사하기 이전에, 메모리 관리부는 하이퍼바이저에 의해 요청된 상기 메모리 영역에 기록된 정보, 메모리 영역에 대한 페이지 테이블 사상 정보 및 가상 머신의 점유 정보를 삭제한다. 즉, 기존의 가상 머신에 의해 사용되는 메모리 영역을 강제로 하이퍼바이저에 넘겨주는 경우에 있어서, 가상 머신의 개인 정보를 보호하기 위해 기존에 사용 중인 메모리와 관련된 정보를 삭제하게 된다.To this end, before the memory manager checks whether the memory area is occupied, the memory manager deletes the information recorded in the memory area requested by the hypervisor, the page table mapping information for the memory area, and the occupation information of the virtual machine. do. In other words, when a memory area used by an existing virtual machine is forcibly handed over to the hypervisor, information related to the memory being used is deleted to protect the personal information of the virtual machine.

가상화 시스템 구현의 측면에서, 가상 머신이 사용하던 메모리 영역이 더 이상이 필요하지 않거나, 가상 머신이 사용중인 실제 메모리를 다른 가상 머신 내지 하이퍼바이저에 할당하기 위해서는 해당 메모리 영역을 해제하기 위한 특정 명령어를 호출하고, 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 메모리 해제 과정은 페이지 해제를 요청하는 특정 명령어(이하에서 이러한 명령어는 'Page unmap' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. 'Page unmap' 명령어는 게스트 물리 메모리 주소에서 실제 머신 메모리 주소의 사상 정보를 삭제하는 것으로서, 가상 머신이 해당 메모리를 더 이상 필요로 하지 않거나 메모리 부족으로 해당 메모리를 다른 가상 머신에게 할당하고 싶은 경우에 사용한다. 'Page unmap' 명령어가 호출되면, 메모리 관리부는 실제 메모리의 내용을 모두 삭제하고 페이지 테이블의 사상 정보를 삭제한다.In terms of virtualization system implementation, the memory area used by the virtual machine is no longer needed, or to allocate the actual memory used by the virtual machine to another virtual machine or hypervisor, a specific instruction for releasing the memory area is required. It can be implemented by calling, and performing instructions accordingly using the memory manager and at least one hardware processor. That is, the above-described memory release process may be implemented through a call of a specific command (hereinafter, such a command is called a 'page unmap' command) requesting a page release. The 'Page unmap' command removes the mapping of the real machine memory address from the guest physical memory address. If the virtual machine no longer needs the memory or wants to allocate it to another virtual machine because of insufficient memory, use. When the 'Page unmap' command is called, the memory manager deletes all the contents of the real memory and deletes the mapping information of the page table.

이상과 같이 구현된 본 발명의 실시예에서, 메모리 관리부는 가상 머신의 스케줄링을 변경하는 추가적인 명령어(이하에서 'Virtual machine switch' 명령어로 명명한다.)를 다음과 같이 수행하는 것이 가능하다. 'Virtual machine switch' 명령어는 하이퍼바이저가 스케줄링을 변경하여 다른 가상 머신을 수행하고 싶을 때 호출하는 명령어로서, 메모리 관리부는 페이지 테이블의 주소를 저장하는 레지스터를 직접 변경한다. 만약 하이퍼바이저가 직접 페이지 테이블의 주소를 변경할 수 있다면, 하이퍼바이저가 또 다른 가상 머신을 악의적으로 생성하고, 이렇게 생성된 또 다른 가상 머신으로 하여금 페이지 테이블의 주소를 변경하는 방법을 통해 해당 가상 머신의 정보를 불법적으로 획득할 수 있다는 문제점이 있다. 그러나, 'Virtual machine switch' 명령어를 통해 메모리 관리부가 페이지 테이블의 주소를 저장하는 하드웨어 레지스터를 직접 변경하면, 악의적인 하이퍼바이저가 페이지 테이블의 주소를 임의로 변경하는 것을 차단할 수 있다.In the embodiment of the present invention implemented as described above, the memory manager may perform an additional command (hereinafter, referred to as a 'virtual machine switch' command) for changing the scheduling of the virtual machine as follows. The 'virtual machine switch' command is called when the hypervisor wants to run another virtual machine by changing the scheduling. The memory manager directly changes the register that stores the address of the page table. If the hypervisor can directly change the address of the page table, the hypervisor maliciously creates another virtual machine and then causes another virtual machine to change the address of the page table. There is a problem that information can be obtained illegally. However, if the memory manager directly changes the hardware register that stores the address of the page table through the 'virtual machine switch' command, the malicious hypervisor can be prevented from arbitrarily changing the address of the page table.

도 4는 본 발명의 다른 실시예에 따른 가상화 시스템에서 예외 상황이 발생한 경우, 메모리 접근을 제어하는 방법을 도시한 흐름도로서, 이러한 다른 실시예에 따른 가상화 시스템은 앞서 소개한 일 실시예가 채택하고 있는 가상화 시스템에서 예외 상황에 따른 처리를 가능하도록 하는 암호화 수단을 더 포함한다. 기본적으로 하이퍼바이저에 의한 임의적인 메모리 접근을 제어한다는 점에서 도 4에 도시된 실시예와 도 2에 도시된 실시예는 공통점을 가지므로, 여기에서는 앞서 설명한 구성들이 중복하여 기술되지 않도록 도 4의 차별적 구성을 중심으로 설명하도록 한다. 따라서, 도 4의 실시예에서도 예외 상황이 아닌 경우, 하이퍼바이저가 메모리 관리부에 의한 메모리 접근 허가 없이 메모리 영역에 대한 직접적인 접근이 거부되는 것은 당연하다.4 is a flowchart illustrating a method of controlling memory access when an exception occurs in a virtualization system according to another embodiment of the present invention, and the virtualization system according to another embodiment may be adopted by the above-described embodiment. The method further includes encryption means for enabling processing according to the exception in the virtualization system. Since the embodiment shown in FIG. 4 and the embodiment shown in FIG. 2 have a common point in that they control an arbitrary memory access by the hypervisor, the configuration described above is not repeated here. The explanation should focus on the discriminative composition. Therefore, even in the embodiment of FIG. 4, it is natural that the hypervisor is denied direct access to the memory area without permission of the memory access by the memory manager.

410 단계에서는 가상화 시스템에서 하이퍼바이저로 하여금 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 설정한다. 비록 앞서 소개한 본 발명의 실시예에서 하이퍼바이저가 이미 가상 머신이 사용하고 있는 메모리 영역에 접근하는 것이 원칙적으로 거부되나, 도 4에 따른 실시예에서는 이러한 원칙과는 별개로 가상화 시스템의 운용상 하이퍼바이저가 이미 점유되어 잇는 메모리 영역에 접근하는 것이 허용되어야 하는 상황들을 제시하고, 이들 상황을 해결할 수 있는 기술적 수단을 제시한다.In step 410, the virtual system preconfigures an exception situation in which the hypervisor should allow access to the memory area used by the virtual machine. Although in the above-described embodiment of the present invention, the hypervisor is in principle denied access to the memory area already used by the virtual machine, in the embodiment according to FIG. It suggests situations in which the visor should be allowed to access areas of memory that are already occupied, and provides technical means to resolve these situations.

이러한 예외 상황은 가상 머신 또는 하이퍼바이저의 메모리 부족으로 인한 스왑의 경우, 메모리에 적재된 가상 머신의 동작을 일시정지시키거나 종료시켜 디스크에 저장하는 경우, 또는 가상 머신이 현재의 물리 머신으로부터 다른 물리 머신으로 재할당되는 이주의 경우 중 적어도 하나인 것이 바람직하며, 이후 각각의 상황에 따른 처리 과정을 상세히 설명한다.These exceptions can be caused by a lack of memory in the virtual machine or hypervisor, when a virtual machine loaded in memory is paused or shut down and saved to disk, or when the virtual machine At least one of the cases of reassignment to the machine is preferred, and the process according to each situation will be described in detail later.

이제, 420 단계에서 하이퍼바이저에 의한 메모리 영역 접근 요청이 발생하고, 430 단계에서는 410 단계를 통해 설정된 예외 상황이 발생했는지 여부를 판단한다. 이 때, 설정된 예외 상황이 발생했다면, 메모리 관리부는 가상 머신이 사용하는 메모리 영역을 암호화한다. 이는 하이퍼바이저가 해당 메모리 영역에 접근하더라도 이러한 메모리 영역의 실제 데이터를 읽을 수 없도록 보호하기 위함이다. 이러한 암호화를 위해 메모리 관리부는 암호화 수단을 별도로 구비할 수 있으며, 암호화 수단은 널리 활용되는 공개키-비밀키 암호화 시스템을 비롯한 다양한 암호화 기법들이 활용될 수 있다. 특히, 암호화를 위해 사용자로부터 암호화 키를 입력받는 경우, 이러한 암호화 키가 외부에 노출되지 않도록 메모리 관리부가 갖는 공개키를 이용하여 암호화함으로써 하이퍼바이저가 암호화된 데이터를 복호화할 수없도록 하는 것이 바람직하다. 암호화 과정에 대한 보다 구체적인 설명은 본 발명의 본질을 해칠 우려가 있으므로, 여기서는 생략하도록 한다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 암호화 수단을 구현하는 다양한 방법을 본 실시예에 적절히 적용하는 것이 가능하다.In operation 420, the memory region access request by the hypervisor is generated, and in operation 430, it is determined whether an exception set in operation 410 occurs. At this time, if a set exception occurs, the memory manager encrypts a memory area used by the virtual machine. This is to protect the hypervisor from reading the actual data even if the hypervisor accesses the memory area. For this encryption, the memory manager may include an encryption means separately, and the encryption means may use various encryption techniques including a widely used public key-secret key encryption system. In particular, when receiving an encryption key from a user for encryption, it is preferable that the hypervisor cannot decrypt the encrypted data by encrypting using a public key included in the memory manager so that the encryption key is not exposed to the outside. A more detailed description of the encryption process may be detrimental to the nature of the present invention, so it will be omitted here. In addition, it is possible for those skilled in the art to appropriately apply various methods for implementing the encryption means to this embodiment.

440 단계에서 하이퍼바이저는 430 단계를 통해 암호화된 메모리 영역에 접근하여 예외 상황에 따른 작업을 수행하고, 450 단계에서 이상의 예외 상황에 따른 작업이 완료되면, 메모리 관리부가 암호화된 메모리 영역을 복호화하게 된다.In operation 440, the hypervisor accesses the encrypted memory area to perform an operation according to the exception situation. In operation 450, the hypervisor decrypts the encrypted memory area when the operation according to the exception condition is completed. .

이제, 이하에서 각각의 개별적인 예외 상황 3가지를 예시하여 설명하도록 한다.Now, three individual exceptions will be described below.

첫째, 예외 상황이 가상 머신 또는 하이퍼바이저의 메모리 부족으로 인한 스왑(swap)인 경우, 메모리 영역을 암호화하는 430 단계는 메모리 관리부가 스왑 페이지의 내용을 암호화하게 된다.First, if the exception is swap due to insufficient memory of the virtual machine or hypervisor, step 430 of encrypting the memory area causes the memory manager to encrypt the contents of the swap page.

가상화 시스템 구현의 측면에서, 이러한 스왑은 메모리 페이지(메모리에서 교체될 특정 영역을 의미한다.)의 내용과 디스크에 내용을 교체하기 위한 특정 명령어를 호출하고, 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 메모리 스왑 과정은 페이지 교체를 요청하는 특정 명령어(이하에서 이러한 명령어는 'Page swap' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. In terms of virtualization system implementations, such swap calls for the contents of memory pages (meaning specific areas of memory to be replaced) and specific instructions for replacing content on disks, using memory management and at least one hardware handler. It can be implemented by performing the command accordingly. That is, the above-described memory swap process may be implemented through a call of a specific command requesting page replacement (hereinafter, such a command is referred to as a 'page swap' command).

'Page Swap' 명령어는 메모리 페이지의 내용을 디스크로 저장할 수 있도록 메모리 내용을 암호화하여 준다. 앞서 설명한 바와 같이 암호화가 필요한 이유는 하이퍼바이저가 디스크에 대한 접근을 할 수 있으므로 암호화하지 않고 디스크에 메모리 내용을 기록하는 경우에, 중요한 정보가 노출될 수 있거나 변경될 수 있기 때문이다. 이를 막기 위해, 메모리 관리부 내의 암호화 수단을 이용하여 사용자가 입력한 대칭키를 이용하여 암호화함으로써 하이퍼바이저로 하여금 메모리에 저장된 가상 머신의 기밀 정보를 읽거나 변경할 수 없도록 한다.The 'Page Swap' command encrypts the memory contents so that the contents of the memory pages can be saved to disk. As described above, the reason for encryption is that the hypervisor can access the disk, so that when the memory contents are written to the disk without encryption, sensitive information may be exposed or changed. To prevent this, encryption is performed using a symmetric key input by a user using an encryption means in the memory management unit so that the hypervisor cannot read or change the confidential information of the virtual machine stored in the memory.

둘째, 예외 상황이 메모리에 적재된 가상 머신의 동작을 일시정지(suspend)시키거나 종료(stop)시켜 디스크에 저장하는 상황인 경우, 메모리 영역을 암호화하는 430 단계는 메모리 관리부가 메모리에 적재된 가상 머신의 스냅샷(snapshot)을 암호화하게 된다.Second, in the case where the exception is a situation in which the operation of the virtual machine loaded in the memory is suspended or stopped and stored on the disk, the step 430 of encrypting the memory area may be performed by the memory manager. Encrypt a snapshot of your machine.

가상화 시스템 구현의 측면에서, 이러한 일시정지 내지 종료는 가상 머신이 사용하고 있는 모든 메모리 영역에 대한 스냅샷을 생성하여 이를 저장하기 위한 특정 명령어를 호출하고, 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 일시정지 내지 종료 과정은 스냅샷 생성 및 저장을 요청하는 특정 명령어(이하에서 이러한 명령어는 'Virtual machine checkpointing' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. In terms of a virtualization system implementation, this pause or shutdown calls a specific instruction to create a snapshot of all the memory areas that the virtual machine is using and store it, using a memory manager and at least one hardware processor. It can be implemented by performing the command accordingly. That is, the above-described pause or end process may be implemented through a call of a specific command (hereinafter, referred to as a 'virtual machine checkpointing' command) requesting a snapshot creation and storage.

본 발명의 실시예에 따른 가상화 시스템은 가상 머신의 동작을 잠시 멈추거나(suspend), 정지(stop)할 수 있는데, 이 때 가상 머신의 동작과 관련된 모든 메모리 내용은 디스크에 저장되며, 이후 가상 머신의 재실행(resume) 시에 디스크에 저장된 내용을 메모리로 독출하여 활성화시키게 된다. 이와 같이 해당 내용을 암호화 과정 없이 디스크에 저장될 경우, 가상 머신의 중요한 기밀 정보를 하이퍼바이저가 임의로 독출할 수 있으므로, 'Virtual machine checkpointing' 명령어의 호출에 따라 메모리 관리부는 메모리의 모든 내용을 암호화하여 저장한다.According to an embodiment of the present invention, the virtualization system may suspend or stop an operation of a virtual machine. At this time, all memory contents related to the operation of the virtual machine are stored in a disk, and then the virtual machine At the time of resuming, the contents stored in the disk are read into the memory and activated. As such, if the contents are stored on the disk without encryption, the hypervisor can read the confidential information of the virtual machine arbitrarily. Therefore, the memory manager encrypts all contents of the memory by calling the 'Virtual machine checkpointing' command. Save it.

셋째, 예외 상황이 가상 머신이 현재의 물리 머신으로부터 다른 물리 머신으로 재할당되는 이주(migration)인 경우, 메모리 영역을 암호화하는 430 단계는, 메모리 관리부가 메모리에 적재된 가상 머신의 내용을 암호화하게 된다.Third, if the exception is a migration in which the virtual machine is reallocated from the current physical machine to another physical machine, step 430 of encrypting the memory area causes the memory manager to encrypt the contents of the virtual machine loaded into the memory. do.

가상화 시스템 구현의 측면에서, 이러한 이주는 동작 중인 가상 머신을 다른 물리적인 서버로 이동시키기 위한 특정 명령어를 호출하고, 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 이주 과정은 이주를 요청하는 특정 명령어(이하에서 이러한 명령어는 'Virtual machine migration' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. In terms of virtualization system implementation, such migration may be implemented by invoking specific instructions for moving a running virtual machine to another physical server and executing the instructions accordingly using a memory manager and at least one hardware processor. . That is, the above-described migration process may be implemented by calling a specific command (hereinafter, such a command is referred to as a 'virtual machine migration' command) requesting migration.

본 발명의 실시예에 따른 가상 머신은 성능상의 이유 또는 기타 이유로 인하여 다른 곳의 물리적인 서버로 이주할 수 있는데, 이 경우 하이퍼바이저가 이러한 이주를 직접 수행하게 된다. 이주를 수행하기 위해서는 가상 머신의 메모리를 다른 물리적인 서버로 전달해야하는데, 만약 해당 메모리가 암호화되지 않는다면 하이퍼바이저가 가상 머신의 중요한 기밀 정보를 읽거나 변경할 수 있다. 따라서, 본 실시예에서 메모리 관리부는 'Virtual machine migration' 명령어를 통해 이주가 시작되기 전에 메모리의 내용을 암호화함으로써 하이퍼바이저가 이를 읽을 수 없도록 한다. A virtual machine according to an embodiment of the present invention may migrate to a physical server elsewhere for performance or other reasons, in which case the hypervisor performs this migration directly. In order to perform the migration, the memory of the virtual machine must be transferred to another physical server. If the memory is not encrypted, the hypervisor can read or change the sensitive information of the virtual machine. Therefore, in the present embodiment, the memory manager encrypts the contents of the memory before the migration starts through the 'Virtual machine migration' command so that the hypervisor cannot read them.

이상에서 설명한 3 가지 예외 상황 외에도 하이퍼바이저가 가상 머신의 메모리 영역에 대한 접근이 허용되어야 하는 다양한 예외상황이 상정 가능하다. 이를 위해 본 실시예의 메모리 관리부 별도의 암호화 수단을 가지며, 이를 이용하여 가상 머신이 사용하는 메모리 영역을 암호화한다. 또한, 하이퍼바이저는 메모리 관리부가 갖는 암호화 수단에 직접 접근할 수 없으므로 암호화된 메모리 영역을 임의로 복호화할 수 없다.In addition to the three exceptions described above, various exceptions that the hypervisor should be allowed to access the virtual machine's memory area are possible. To this end, the memory management unit of the present embodiment has a separate encryption means, and encrypts a memory area used by the virtual machine using the same. In addition, the hypervisor cannot directly access the encryption means possessed by the memory manager, and thus cannot decrypt the encrypted memory region arbitrarily.

도 5는 본 발명의 일 실시예에 따른 메모리 접근을 제어하는 장치(500)를 포함한 가상화 시스템 전체를 도시한 블록도로서, 메모리 접근 제어 장치(500)는 크게 하이퍼바이저(10)와 메모리 관리부(20)를 포함한다. 이 중, 메모리 관리부(20)는 하드웨어로서 구현되어 하이퍼바이저에 의한 임의적이고 악의적인 접근을 차단한다. 도 5에서 복수 개의 게스트 운영 체제(40)와 하이퍼바이저(10)는 가상화 시스템 영역에 속하며, 소프트웨어 내지 프로그램 코드로서 구현된다. 이러한 가상화 시스템을 구현하기 위해 적어도 하나 이상의 처리기 내지 관련 데이터를 적재하는 메모리(30)가 활용되어야 함은 당연하다. 도 5의 메모리 접근 제어 장치(500)는 앞서 도 3 내지 도 5를 통해 설명한 본 발명의 실시예들의 기술적 수단에 대응되는 것으로 여기서는 중복되는 설명을 배제하고, 그 개요만을 간략히 소개한다.FIG. 5 is a block diagram illustrating an entire virtualization system including an apparatus 500 for controlling memory access according to an exemplary embodiment of the present invention. The apparatus 500 for controlling memory access is divided into a hypervisor 10 and a memory manager. 20). Of these, the memory management unit 20 is implemented as hardware to block arbitrary and malicious access by the hypervisor. In FIG. 5, the plurality of guest operating systems 40 and the hypervisor 10 belong to the virtualization system area and are implemented as software or program code. Of course, the memory 30 for loading at least one processor or related data should be utilized to implement such a virtualization system. The memory access control apparatus 500 of FIG. 5 corresponds to the technical means of the embodiments of the present invention described above with reference to FIGS. 3 to 5, and the description thereof will not be repeated herein, and only an outline thereof will be briefly described.

하이퍼바이저(10)는 가상화 시스템에서 하나 이상의 가상 머신(40)을 동시에 실행하기 위한 가상 플랫폼이며, 특정 메모리(30) 영역에 대한 접근을 요청할 수 있다. 이러한 하이퍼바이저는 이하에서 설명할 메모리 관리부(20)에 의한 메모리 접근 허가 없이는 메모리(30) 영역에 대한 직접적인 접근이 거부된다.The hypervisor 10 is a virtual platform for simultaneously executing one or more virtual machines 40 in a virtualization system, and may request access to a specific memory 30 area. Such a hypervisor is denied direct access to the memory 30 area without the memory access permission by the memory manager 20 to be described below.

메모리 관리부(20)는 하이퍼바이저(10)의 접근 요청에 따라 메모리(30) 영역이 가상 머신(40)에 의해 점유되어 있는지 여부를 검사하고, 검사 결과에 따라 하이퍼바이저(10)의 메모리(30) 접근을 선택적으로 허가한다. 이를 위해 메모리 관리부(20)는 메모리(30) 영역의 점유 상태를 표시하는 머신-어드레스 테이블(21) 및 게스트 물리 메모리(guest physical memory)와 실제 머신 메모리(machine memory) 간의 사상 정보를 저장하는 페이지 테이블(22)를 포함할 수 있다. 이들 테이블들(21, 22)은 비록 메모리 접근을 위해 메모리 관리부(20)에 의해 활용되나, 구현의 측면에서 메모리 관리부에 포함되거나 또는 별도의 물리적인 저장소로 구현될 수 있음은 당연하다.The memory manager 20 determines whether an area of the memory 30 is occupied by the virtual machine 40 according to an access request of the hypervisor 10, and according to the test result, the memory 30 of the hypervisor 10 is determined. ) Selectively grant access. To this end, the memory management unit 20 stores a machine-address table 21 indicating an occupancy state of the memory 30 area, and a page for storing mapping information between guest physical memory and machine memory. Table 22 may be included. Although these tables 21 and 22 are utilized by the memory management unit 20 for memory access, it is obvious that the tables 21 and 22 may be included in the memory management unit or implemented as separate physical storage.

이러한 메모리 관리부(20)는 하이퍼바이저(10)의 접근 요청에 따라 페이지 테이블(22)을 이용하여 가상 메모리와 게스트 물리 메모리 간의 사상 정보와 게스트 물리 메모리와 실제 머신 메모리 간의 사상 정보를 검색 및 관리한다. 검사 결과, 만약 메모리(30) 영역이 어떠한 가상 머신(40)에 의해서도 점유되어 있지 않은 경우, 머신-어드레스 테이블(21)에 메모리(30) 영역에 대한 접근 주체를 갱신하고, 페이지 테이블(22)의 사상 정보를 갱신하여 하이퍼바이저(10)의 메모리(30) 접근을 허가한다.The memory manager 20 retrieves and manages mapping information between the virtual memory and the guest physical memory and mapping information between the guest physical memory and the real machine memory using the page table 22 according to an access request of the hypervisor 10. . As a result of the check, if the memory 30 area is not occupied by any virtual machine 40, the machine-address table 21 updates the access subject to the memory 30 area, and the page table 22 is updated. Update the mapping information of the hypervisor 10 to allow access to the memory 30.

이러한 하이퍼바이저(10)에 의해 호출되어 메모리 관리부(20)에 전달되는 명령어로는 'map', 'unmap', 'switch', 'swap', 'checkpoint' 또는 'migration' 등이 있으며, 이들 명령어의 구체적인 동작과 역할에 대해서는 이미 설명한 바 있다.Instructions that are called by the hypervisor 10 and transferred to the memory manager 20 include 'map', 'unmap', 'switch', 'swap', 'checkpoint', or 'migration'. The specific operation and role of the has already been explained.

한편, 하이퍼바이저(10)에 의한 명령어 호출이 아닌, 가상 머신(게스트 운영 체제를 의미한다.)(40)에 의해 호출되는 명령어가 존재할 수 있다. 만약, 가상화 시스템(500)에서 복수 개의 가상 머신들(40)이 메모리(30)를 공유하려 할 경우, 하나의 가상 머신이 직접 메모리 관리부(20)에 메모리 공유 명령을 전송할 수 있다. 이 경우, 메모리 관리부(20)는 이러한 메모리 공유 명령을 수신하여 복수 개의 가상 머신들(40)이 상기 공유하고자 하는 메모리(30)에 접근하는 것을 허가할 수 있다.On the other hand, there may be instructions called by the virtual machine (representing a guest operating system) 40, rather than command invocation by the hypervisor 10. If the plurality of virtual machines 40 intends to share the memory 30 in the virtualization system 500, one virtual machine may directly transmit a memory sharing command to the memory manager 20. In this case, the memory manager 20 may receive the memory sharing command and allow the plurality of virtual machines 40 to access the memory 30 to be shared.

가상화 시스템 구현의 측면에서, 이러한 메모리 공유는 가상 머신이 공유하고자 하는 메모리와 공유 대상을 특정하는 특정 명령어를 호출하고, 메모리 관리부 및 적어도 하나 이상의 하드웨어 처리기를 이용하여 이에 따른 명령어를 수행함으로써 구현될 수 있다. 즉, 상기된 공유 과정은 공유를 요청하는 특정 명령어(이하에서 이러한 명령어는 'Page sharing' 명령어로 명명한다.)의 호출을 통해 구현될 수 있다. In terms of a virtualization system implementation, such memory sharing may be implemented by calling specific instructions that specify the memory and what to share with the virtual machine, and executing the instructions accordingly using a memory manager and at least one hardware processor. have. That is, the sharing process described above may be implemented by calling a specific command (hereinafter, such a command is called a 'page sharing' command) requesting sharing.

본 발명의 실시예들에서 실제 머신 메모리(30)는 성능상의 이유 및 기타 이유로 인하여 복수 개의 가상 머신들(40) 간에 공유될 수 있다. 이 경우, 메모리 관리부(20)는 공유 페이지 기능을 지원하여 공유하고자 하는 페이지를 복수 개의 가상 머신(40) 또는 필요에 따라 하이퍼바이저(10)에서 공유될 수 있도록 할 수 있다. 이를 위해 하이퍼바이저(10)가 아닌 가상 머신(40)은 직접 'Page sharing' 명령어를 호출해야 하며, 해당 페이지에는 중요한 정보를 저장하지 않는 것이 바람직하다.In embodiments of the present invention, the actual machine memory 30 may be shared among the plurality of virtual machines 40 for performance and other reasons. In this case, the memory manager 20 may support a shared page function so that the pages to be shared can be shared by the plurality of virtual machines 40 or the hypervisor 10 as necessary. For this purpose, the virtual machine 40 rather than the hypervisor 10 should directly call the 'Page sharing' command, and it is preferable not to store important information in the corresponding page.

도 6은 본 발명의 일 실시예에 따른 도 5의 메모리 접근 제어 장치(500)에서 메모리 관리부(20)를 보다 구체적으로 도시한 블록도로서, 앞서 도 5를 통해 제시된 머신-어드레스 테이블(21) 및 페이지 테이블(22) 이외에 페이지 워커(page worker)(23), 페이지 관리부(24) 및 암호화부(25)를 포함하도록 도시되었다. 따라서, 여기서는 새롭게 도시된 후자(23, 24, 25)의 구성을 중심으로 그 역할을 설명하도록 한다.FIG. 6 is a block diagram illustrating the memory manager 20 in the memory access control apparatus 500 of FIG. 5 in accordance with an embodiment of the present invention. The machine-address table 21 shown in FIG. And a page worker 23, a page manager 24, and an encryption unit 25 in addition to the page table 22. Therefore, the role of the latter will be described with reference to the configuration of the latter (23, 24, 25) newly shown.

페이지 워커(23)는 가상 메모리 접근 요청이 발생하였을 때, TLB(translation lookup buffer)를 검사하고, TLB에 해당 머신 메모리 정보가 존재하지 않는 경우 실제 페이지 테이블에서 해당 정보를 찾아내는 역할을 담당한다. 이 때, 페이지 워커(23)는 가상 메모리와 게스트 물리 메모리 간의 사상 정보를 찾아내는 역할과 게스트 물리 메모리와 실제 머신 메모리 간의 사상 정보를 찾아내는 역할을 수행한다. 이러한 역할을 통해 하이퍼바이저의 간섭 없이 메모리 사상 정보가 존재하지 않는 상황에서도 하드웨어 모듈만으로 메모리 접근이 가능하다.The page worker 23 checks a translation lookup buffer (TLB) when a virtual memory access request occurs, and finds the corresponding information in an actual page table when the machine memory information does not exist in the TLB. At this time, the page worker 23 finds mapping information between the virtual memory and the guest physical memory, and finds mapping information between the guest physical memory and the real machine memory. Through this role, the memory can be accessed only by the hardware module even in the absence of memory mapping information without the hypervisor interference.

페이지 관리부(24)는 페이지 테이블에 대한 정보를 관리하는 구성으로서, 페이지 테이블은 게스트 물리 메모리와 실제 머신 메모리 간의 사상 정보를 저장한다. 본 발명의 실시예들이 제안하고 있는 메모리 관리부(20)가 존재하지 않는 가상화 환경에서는 하이퍼바이저가 페이지 테이블에 대한 정보를 직접 관리하지만, 본 발명의 실시예들은 이를 하드웨어인 메모리 관리부(20)를 통해 수행하게 된다. 예를 들어, 하이퍼바이저로부터 'Page Map' 명령어와 'Page Unmap' 명령어가 호출된 경우, 페이지 관리부(24)는 해당 요청을 확인하여 게스트 물리 주소와 실제 머신 주소와의 사상 정보를 추가하거나 삭제하는 기능을 담당한다.The page management unit 24 is a configuration for managing information on the page table, which stores mapping information between the guest physical memory and the real machine memory. In a virtualization environment in which the memory management unit 20 proposed by the embodiments of the present invention does not exist, the hypervisor directly manages information on the page table, but embodiments of the present invention use the hardware management unit 20 as hardware. Will be performed. For example, when the 'Page Map' command and the 'Page Unmap' command are called from the hypervisor, the page manager 24 checks the request to add or delete mapping information between the guest physical address and the real machine address. In charge of the function.

마지막으로 암호화부(25)는 앞서 설명한 바와 같이 암호화 및 복호화를 수행하는 구성으로서, 암호화부(25) 내부에는 공개키와 개인키가 저장된다. 이 때, 개인키는 하드웨어 메모리를 통해 직접 관리되므로 절대 메모리 관리부(20) 외부로 노출될 수 없다. 가상 머신이 이주하거나, 메모리가 부족하여 메모리 페이지가 디스크에 쓰여지는 경우, 하이퍼바이저가 해당 디스크의 내용을 읽어서 메모리 페이지 정보를 변경하거나 볼 수 있으므로, 암호화부(25)는 이러한 메모리 페이지의 내용을 암호화하여 저장한다. 이 때, 사용자는 암호화 및 복호화 요청을 위해 메모리 관리부(20)에서 사용하는 공개키로 암호화된 대칭키를 전달하고, 해당 대칭키로 메모리 페이지를 암호화하는 것이 바람직하다.Finally, as described above, the encryption unit 25 performs encryption and decryption, and the public and private keys are stored in the encryption unit 25. At this time, since the private key is directly managed through the hardware memory, it cannot be exposed to the outside of the memory manager 20. When a virtual machine migrates or when memory pages are written to a disk due to insufficient memory, the encryption unit 25 may change or view the memory page information by reading the contents of the disk. Encrypt and save. In this case, the user preferably transmits the encrypted symmetric key with the public key used by the memory manager 20 for the encryption and decryption request, and encrypts the memory page with the corresponding symmetric key.

이러한 구성에 기초하여, 본 발명의 다른 실시예에 따른 가상화 시스템에서 메모리 접근을 제어하는 장치는, 가상화 시스템에서 특정 메모리 영역에 대한 접근을 요청하는 하이퍼바이저 및 이러한 접근 요청에 따라 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 검사 결과에 따라 선택적으로 하이퍼바이저의 메모리 접근을 허가하며, 가상화 시스템에서 하이퍼바이저로 하여금 특정 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 저장하는 메모리 관리부를 포함할 수 있다. 이 경우, 만약 설정된 예외 상황이 발생하면, 메모리 관리부가 해당 가상 머신이 사용하는 메모리 영역을 암호화하고, 예외 상황에 따른 작업이 완료된 후 암호화된 메모리 영역을 복호화한다. 이 때, 하이퍼바이저가 메모리 관리부에 의한 메모리 접근 허가 없이 메모리 영역에 대한 직접적인 접근이 거부되는 것은 당연하다. 또한 이러한 예외 상황은 이미 이상의 실시예들을 통해 구체적으로 설명한 바 있다.Based on this configuration, the apparatus for controlling memory access in the virtualization system according to another embodiment of the present invention includes a hypervisor for requesting access to a specific memory area in the virtualization system and the memory area according to the access request. Checks whether or not it is occupied by the client, optionally grants memory access to the hypervisor based on the result of the check, and allows exceptions in the virtualization system that allow the hypervisor to access the memory area used by a particular virtual machine. It may include a memory management unit for storing in advance. In this case, if the set exception occurs, the memory manager encrypts the memory area used by the corresponding virtual machine and decrypts the encrypted memory area after the operation according to the exception is completed. At this time, it is natural that the hypervisor is denied direct access to the memory area without the memory access permission by the memory manager. In addition, such an exception has already been described in detail through the above embodiments.

상기된 본 발명의 실시예들에 따르면, 하이퍼바이저가 메모리 관리부에 의한 메모리 접근 허가 없이는 메모리 영역에 대한 직접적인 접근이 거부됨으로써, 하이퍼바이저가 임의로 가상 머신이 사용 중인 메모리에 접근하는 것을 방지하고, 하이퍼바이저가 악의적인 사용자에 의해 조종되는 경우 개별 가상 머신의 비밀 정보가 외부에 직접적으로 노출되는 위험을 막을 수 있다. 또한, 하이퍼바이저에 의한 메모리 접근이 불가피한 경우에도 해당 메모리의 내용을 암호화함으로써 하이퍼바이저로부터 그 내용을 안전하게 보호할 수 있다.According to the embodiments of the present invention described above, the hypervisor is denied direct access to the memory area without the memory access permission by the memory manager, thereby preventing the hypervisor from randomly accessing the memory in use by the virtual machine, If the visor is controlled by a malicious user, it can prevent the risk of direct disclosure of the secret information of individual virtual machines to the outside world. In addition, even if the memory access by the hypervisor is inevitable, the contents of the memory can be encrypted to secure the contents from the hypervisor.

즉, 상기된 본 발명의 실시예들에 따르면, 가상화 환경에서 최고 권한을 가진 하이퍼바이저라도 가상 머신의 메모리 내용을 볼 수 없다. 이를 통해 가상 머신은 안전하게 동작할 수 있으며, 특히 현재 널리 보급되고 있는 클라우드 환경과 같이 IT 자원을 직접 소유하지 않고 차용하여 사용하는 시스템에서는 많은 장점을 가진다. 클라우드 환경은 전통적인 컴퓨팅 환경과는 달리 IT 자원을 필요할 때만 차용하여 사용하는 것으로 인해 많은 비용을 절약할 수 있으며, 급격한 컴퓨팅 증가 요구에 능동적으로 대응할 수 있다고 알려져 있다. 그러나, 이런 클라우드 환경에서 가장 취약한 문제점은 보안이라고 지적되고 있다. 왜냐하면, 가상 머신 형태로 IT 자원을 빌려 쓸 경우, 가상 머신에 존재하는 데이터가 악의적인 공격자나 클라우드 관리자에 의해서 노출될 가능성이 존재하기 때문이다. 이러한 환경 하에서 본 발명의 실시예들에 따른 메모리 접근 제어 방법을 사용하면, 하이퍼바이저에 의해서 사용자의 개인 데이터가 노출될 위험 없이 개별 사용자들이 자신의 기밀 정보를 안전하게 사용할 수 있다는 장점을 가진다.That is, according to the embodiments of the present invention described above, even the hypervisor having the highest privilege in the virtualization environment cannot see the memory contents of the virtual machine. This allows virtual machines to operate securely, especially in systems that do not own IT resources but borrow and use them, such as cloud environments that are now widely available. Unlike traditional computing environments, cloud environments can save a lot of money by borrowing only IT resources when they are needed, and are known to actively respond to the rapidly increasing demand for computing. However, the most vulnerable problem in this cloud environment is pointed out as security. This is because, when borrowing IT resources in the form of a virtual machine, data existing in the virtual machine may be exposed by a malicious attacker or a cloud administrator. Under such circumstances, the memory access control method according to the embodiments of the present invention has the advantage that individual users can safely use their confidential information without the risk of exposing the user's personal data by the hypervisor.

한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.Meanwhile, the present invention can be embodied in computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored.

컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device and the like, and also a carrier wave (for example, transmission via the Internet) . In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily deduced by programmers skilled in the art to which the present invention belongs.

이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described above with reference to various embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

500 : 가상화 시스템에서 메모리 접근을 제어하는 장치
10 : 하이퍼바이저
20 : 메모리 관리부
21 : M2A 테이블 22 : 페이지 테이블
23 : 페이지 워커 24 : 페이지 관리부
25 : 암호화부
30 : 메모리 35 : TLB(translation lookup buffer)
40 : 게스트 운영 체제
500: device for controlling memory access in a virtualization system
10: hypervisor
20: memory management unit
21: M2A Table 22: Page Table
23: Page Walker 24: Page Management
25: encryption unit
30 memory 35 translation lookup buffer (TLB)
40: guest operating system

Claims (15)

가상화 시스템에서 메모리 접근을 제어하는 방법에 있어서,
상기 가상화 시스템에서 하나 이상의 가상 머신(virtual machine)을 동시에 실행하기 위한 가상 플랫폼(platform)인 하이퍼바이저(hypervisor)가 소정 메모리 영역에 대한 접근을 요청하는 단계;
상기 접근 요청에 따라 메모리 관리부는 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하는 단계; 및
상기 검사 결과 상기 메모리 영역이 어떠한 가상 머신에 의해서도 점유되어 있지 않은 경우, 상기 메모리 관리부가 메모리 영역의 점유 상태를 표시하는 머신-어드레스(machine to address, M2A) 테이블에 상기 메모리 영역에 대한 접근 주체를 갱신하며, 페이지 테이블(page table)의 사상 정보를 갱신하여 상기 하이퍼바이저의 메모리 접근을 허가하는 단계;를 포함하고,
상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부되는 것을 특징으로 하는 방법.
In a method of controlling memory access in a virtualization system,
Requesting access to a predetermined memory area by a hypervisor, which is a virtual platform for simultaneously executing one or more virtual machines in the virtualization system;
Checking, by the memory manager, whether the memory area is occupied by a virtual machine according to the access request; And
When the memory area is not occupied by any virtual machine as a result of the check, the memory manager displays an access subject to the memory area in a machine to address (M2A) table indicating an occupation state of the memory area. And updating the mapping information of a page table to allow memory access of the hypervisor.
And wherein the hypervisor is denied direct access to the memory area without permission to access the memory by the memory manager.
삭제delete 제 1 항에 있어서,
상기 하이퍼바이저가 상기 메모리 영역을 강제로 할당받아야 하는 경우,
상기 메모리 영역의 점유 여부를 검사하는 단계 이전에, 상기 메모리 관리부가 상기 메모리 영역에 기록된 정보, 상기 메모리 영역에 대한 페이지 테이블 사상 정보 및 가상 머신의 점유 정보를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
If the hypervisor is forced to allocate the memory area,
The method may further include deleting, by the memory manager, information recorded in the memory area, page table mapping information for the memory area, and information on the virtual machine before the checking whether the memory area is occupied. How to.
가상화 시스템에서 메모리 접근을 제어하는 방법에 있어서,
상기 가상화 시스템에서 하이퍼바이저로 하여금 소정 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 설정하는 단계;
상기 설정된 예외 상황이 발생한 경우, 메모리 관리부가 갖는 암호화 수단을 이용하여 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하는 단계;
상기 하이퍼바이저가 상기 암호화된 메모리 영역에 접근하여 상기 예외 상황에 따른 작업을 수행하는 단계; 및
상기 예외 상황에 따른 작업이 완료된 후, 상기 메모리 관리부가 상기 암호화된 메모리 영역을 복호화하는 단계를 포함하고,
상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부되며, 상기 암호화 수단에 직접 접근할 수 없어 상기 암호화된 메모리 영역을 임의로 복호화할 수 없는 것을 특징으로 하는 방법.
In a method of controlling memory access in a virtualization system,
Setting an exception in advance in the virtualization system to allow a hypervisor to access a memory area used by a virtual machine;
Encrypting a memory area used by the predetermined virtual machine using encryption means of a memory management unit when the set exception occurs;
Accessing the encrypted memory area by the hypervisor to perform a task according to the exceptional situation; And
After the operation according to the exceptional situation is completed, decrypting the encrypted memory area by the memory manager;
And the hypervisor is denied direct access to the memory area without permission to access the memory area by the memory manager, and cannot directly access the encryption means, so that the encrypted memory area cannot be arbitrarily decrypted.
제 4 항에 있어서,
상기 예외 상황이 가상 머신 또는 하이퍼바이저의 메모리 부족으로 인한 스왑(swap)인 경우,
상기 메모리 영역을 암호화하는 단계는, 상기 메모리 관리부가 상기 스왑 페이지의 내용을 암호화하는 것을 특징으로 하는 방법.
5. The method of claim 4,
If the exception is a swap due to insufficient memory in the virtual machine or hypervisor,
And encrypting the memory area comprises encrypting the contents of the swap page by the memory manager.
제 4 항에 있어서,
상기 예외 상황이 메모리에 적재된 가상 머신의 동작을 일시정지(suspend)시키거나 종료(stop)시켜 디스크에 저장하는 상황인 경우,
상기 메모리 영역을 암호화하는 단계는, 상기 메모리 관리부가 상기 메모리에 적재된 상기 가상 머신의 스냅샷(snapshot)을 암호화하는 것을 특징으로 하는 방법.
5. The method of claim 4,
When the exception is a situation in which the operation of the virtual machine loaded in the memory is suspended or stopped and stored on the disk,
Encrypting the memory area, wherein the memory manager encrypts a snapshot of the virtual machine loaded in the memory.
제 4 항에 있어서,
상기 예외 상황이 가상 머신이 현재의 물리 머신으로부터 다른 물리 머신으로 재할당되는 이주(migration)인 경우,
상기 메모리 영역을 암호화하는 단계는, 상기 메모리 관리부가 메모리에 적재된 상기 가상 머신의 내용을 암호화하는 것을 특징으로 하는 방법.
5. The method of claim 4,
If the exception is a migration in which the virtual machine is reassigned from the current physical machine to another physical machine,
The encrypting of the memory area may include encrypting the contents of the virtual machine loaded in the memory.
삭제delete 제 1 항, 제 3 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A non-transitory computer-readable recording medium having recorded thereon a program for executing the method of claim 1. 가상화 시스템에서 메모리 접근을 제어하는 장치에 있어서,
상기 가상화 시스템에서 하나 이상의 가상 머신을 동시에 실행하기 위한 가상 플랫폼이며, 소정 메모리 영역에 대한 접근을 요청하는 하이퍼바이저; 및
상기 접근 요청에 따라 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 상기 검사 결과에 따라 선택적으로 상기 하이퍼바이저의 메모리 접근을 허가하는 메모리 관리부;를 포함하고,
상기 메모리 관리부는,
메모리 영역의 점유 상태를 표시하는 머신-어드레스 테이블; 및
게스트 물리 메모리(guest physical memory)와 실제 머신 메모리(machine memory) 간의 사상 정보를 저장하는 페이지 테이블;을 포함하고,
상기 접근 요청에 따라 상기 페이지 테이블을 이용하여 가상 메모리와 게스트 물리 메모리 간의 사상 정보와 상기 게스트 물리 메모리와 실제 머신 메모리 간의 사상 정보를 검색 및 관리하며,
상기 검사 결과 상기 메모리 영역이 어떠한 가상 머신에 의해서도 점유되어 있지 않은 경우, 머신-어드레스 테이블에 상기 메모리 영역에 대한 접근 주체를 갱신하고, 페이지 테이블의 사상 정보를 갱신하여 상기 하이퍼바이저의 메모리 접근을 허가하고,
상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부되는 것을 특징으로 하는 장치.
In a device for controlling memory access in a virtualization system,
A hypervisor for simultaneously executing one or more virtual machines in the virtualization system, the hypervisor requesting access to a predetermined memory area; And
And a memory manager configured to check whether the memory area is occupied by a virtual machine according to the access request, and selectively allow memory access of the hypervisor according to the check result.
The memory management unit,
A machine-address table indicating an occupation state of the memory area; And
And a page table for storing mapping information between guest physical memory and machine memory.
Search and manage mapping information between virtual memory and guest physical memory and mapping information between guest physical memory and real machine memory using the page table according to the access request,
If the memory area is not occupied by any virtual machine as a result of the check, the access subject to the memory area is updated in the machine-address table, and the mapping information of the page table is updated to allow the hypervisor to access the memory. and,
And wherein the hypervisor is denied direct access to the memory area without permission to access the memory by the memory manager.
삭제delete 제 10 항에 있어서,
상기 가상화 시스템에서 복수 개의 가상 머신들이 메모리를 공유하려 할 경우, 하나의 가상 머신이 직접 상기 메모리 관리부에 메모리 공유 명령을 전송하고,
상기 메모리 관리부는 상기 메모리 공유 명령을 수신하여 상기 복수 개의 가상 머신들이 상기 공유하고자 하는 메모리에 접근하는 것을 허가하는 것을 특징으로 하는 장치.
11. The method of claim 10,
When a plurality of virtual machines are to share memory in the virtualization system, one virtual machine directly sends a memory sharing command to the memory manager,
And the memory manager receives the memory sharing command and permits the plurality of virtual machines to access the memory to be shared.
가상화 시스템에서 메모리 접근을 제어하는 장치에 있어서,
상기 가상화 시스템에서 소정 메모리 영역에 대한 접근을 요청하는 하이퍼바이저; 및
상기 접근 요청에 따라 상기 메모리 영역이 가상 머신에 의해 점유되어 있는지 여부를 검사하고, 상기 검사 결과에 따라 선택적으로 상기 하이퍼바이저의 메모리 접근을 허가하며, 상기 가상화 시스템에서 하이퍼바이저로 하여금 소정 가상 머신이 사용하는 메모리 영역에 대한 접근을 허용해야 하는 예외 상황을 미리 저장하는 메모리 관리부를 포함하고,
상기 설정된 예외 상황이 발생한 경우, 상기 메모리 관리부가 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하고, 상기 예외 상황에 따른 작업이 완료된 후 상기 암호화된 메모리 영역을 복호화하며,
상기 메모리 관리부는 상기 소정 가상 머신이 사용하는 메모리 영역을 암호화하는 암호화부를 더 포함하고,
상기 하이퍼바이저는 상기 메모리 관리부에 의한 메모리 접근 허가 없이는 상기 메모리 영역에 대한 직접적인 접근이 거부되며, 상기 암호화부에 직접 접근할 수 없어 상기 암호화된 메모리 영역을 임의로 복호화할 수 없는 것을 특징으로 하는 장치.
In a device for controlling memory access in a virtualization system,
A hypervisor for requesting access to a predetermined memory area in the virtualization system; And
Check whether the memory area is occupied by a virtual machine according to the access request, and selectively allow memory access of the hypervisor according to the check result, and cause the hypervisor in the virtualization system to It includes a memory management unit for storing in advance exception conditions that should allow access to the memory area used,
When the set exception occurs, the memory manager encrypts a memory area used by the predetermined virtual machine, decrypts the encrypted memory area after the operation according to the exception is completed,
The memory manager further includes an encryption unit to encrypt a memory area used by the predetermined virtual machine,
And the hypervisor is denied direct access to the memory area without permission to access the memory area by the memory manager, and cannot directly access the encryption part and thus cannot decrypt the encrypted memory area arbitrarily.
제 13 항에 있어서,
상기 예외 상황은,
가상 머신 또는 하이퍼바이저의 메모리 부족으로 인한 스왑의 경우, 메모리에 적재된 가상 머신의 동작을 일시정지시키거나 종료시켜 디스크에 저장하는 경우, 또는 가상 머신이 현재의 물리 머신으로부터 다른 물리 머신으로 재할당되는 이주의 경우 중 적어도 하나인 것을 특징으로 하는 장치.
The method of claim 13,
The exception is
In case of swap due to insufficient memory of a virtual machine or hypervisor, when the virtual machine loaded in memory is paused or shut down and saved to disk, or the virtual machine is reallocated from the current physical machine to another physical machine At least one of the cases of migration.
삭제delete
KR1020110060843A 2011-06-22 2011-06-22 Apparatus and method for controlling memory access in virtualized system KR101323858B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110060843A KR101323858B1 (en) 2011-06-22 2011-06-22 Apparatus and method for controlling memory access in virtualized system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110060843A KR101323858B1 (en) 2011-06-22 2011-06-22 Apparatus and method for controlling memory access in virtualized system

Publications (2)

Publication Number Publication Date
KR20130000253A KR20130000253A (en) 2013-01-02
KR101323858B1 true KR101323858B1 (en) 2013-11-21

Family

ID=47833874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110060843A KR101323858B1 (en) 2011-06-22 2011-06-22 Apparatus and method for controlling memory access in virtualized system

Country Status (1)

Country Link
KR (1) KR101323858B1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
US11068203B2 (en) * 2018-08-01 2021-07-20 Micron Technology, Inc. NVMe direct virtualization with configurable storage
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US11403409B2 (en) * 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
KR102287522B1 (en) * 2019-09-10 2021-08-09 엔에이치엔 주식회사 User computer device and method to share resources with external device
KR20230148341A (en) * 2021-02-26 2023-10-24 엘지전자 주식회사 Signal processing device and vehicle display device comprising the same
WO2023191195A1 (en) * 2022-03-31 2023-10-05 엘지전자 주식회사 Signal processing device and vehicle display device comprising same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235123A1 (en) * 2004-04-19 2005-10-20 Zimmer Vincent J Method to manage memory in a platform with virtual machines
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
KR20080093359A (en) * 2007-04-16 2008-10-21 삼성전자주식회사 Apparatus and method for protecting system in virtualization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235123A1 (en) * 2004-04-19 2005-10-20 Zimmer Vincent J Method to manage memory in a platform with virtual machines
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
KR20080093359A (en) * 2007-04-16 2008-10-21 삼성전자주식회사 Apparatus and method for protecting system in virtualization

Also Published As

Publication number Publication date
KR20130000253A (en) 2013-01-02

Similar Documents

Publication Publication Date Title
KR101323858B1 (en) Apparatus and method for controlling memory access in virtualized system
US10547445B2 (en) Multiple encryption keys for a virtual machine
KR102355213B1 (en) Protecting application secrets from operating system attacks
KR102257320B1 (en) Monitoring of memory page transitions between hypervisors and virtual machines
JP6913636B2 (en) Shared page
US9021476B1 (en) Ensuring the privacy and integrity of a hypervisor
US7975117B2 (en) Enforcing isolation among plural operating systems
US20130275973A1 (en) Virtualisation system
US10628579B2 (en) System and method for supporting secure objects using a memory access control monitor
KR101213572B1 (en) Hypervisor-assisted User Application Memory Protection Method
US7330970B1 (en) Methods and systems for protecting information in paging operating systems
CN107690628A (en) Data processing equipment and method with ownership table
US20090132804A1 (en) Secured live software migration
JP6682752B2 (en) Techniques for strengthening data encryption using secure enclaves
US20090240953A1 (en) On-disk software image encryption
US20190065236A1 (en) Ensuring the privacy and integrity of a hypervisor
EP3123388B1 (en) Virtualization based intra-block workload isolation
US9135046B1 (en) Preventing host operating system from inspecting or modifying data received by hardware controller by moving host operating system into a virtual machine after boot up
EP2535832B1 (en) A method for operating a virtual machine over a file system
Nakashima et al. MigSGX: a migration mechanism for containers including SGX applications
CN112241309B (en) Data security method and device, CPU, chip and computer equipment
US20230401081A1 (en) Software isolation of virtual machine resources
US20240104193A1 (en) Direct assignment of physical devices to confidential virtual machines
US11089022B2 (en) Decentralized sparse capability system with secure enclaves
Liu et al. A xen-based secure virtual disk access-control method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 6