KR101213572B1 - 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법 - Google Patents

하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법 Download PDF

Info

Publication number
KR101213572B1
KR101213572B1 KR1020100122468A KR20100122468A KR101213572B1 KR 101213572 B1 KR101213572 B1 KR 101213572B1 KR 1020100122468 A KR1020100122468 A KR 1020100122468A KR 20100122468 A KR20100122468 A KR 20100122468A KR 101213572 B1 KR101213572 B1 KR 101213572B1
Authority
KR
South Korea
Prior art keywords
application
hypervisor
memory
operating system
guest operating
Prior art date
Application number
KR1020100122468A
Other languages
English (en)
Other versions
KR20120061249A (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 KR1020100122468A priority Critical patent/KR101213572B1/ko
Publication of KR20120061249A publication Critical patent/KR20120061249A/ko
Application granted granted Critical
Publication of KR101213572B1 publication Critical patent/KR101213572B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Abstract

본 발명은 가상화된 컴퓨터 시스템에서 어플리케이션의 메모리를 악의적인 게스트 운영체제로부터 보호하기 위한 하이퍼바이저 기반 사용자 어플리케이션 메모리 보호방법 및 메모리 보호 수단을 구비하는 가상화 컴퓨터 시스템에 관한 것으로, 본 발명에서는 하이퍼바이저가 운영체제 및 어플리케이션에 대한 모든 관리 권한을 가지고 있고, 실행 컨텍스트 전환 시 이를 탐지하여 어플리케이션의 메모리를 운영체제의 접근으로부터 차단함으로써 사용자 어플리케이션의 메모리를 자원 효율적으로 보호할 수 있다.

Description

하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법 {Hypervisor-assisted User Application Memory Protection Method}
본 발명은 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법에 관한 것으로, 더욱 상세하게는 하이퍼바이저(hypervisor)가 게스트 운영체제의 모든 메모리 접근 권한을 관리 및 감독할 수 있는 가상화된 컴퓨터 시스템 환경에서 하이퍼바이저를 활용하여 어플리케이션의 메모리를 게스트 운영체제의 악의적인 접근으로부터 보호하는 방법에 관한 것이다.
컴퓨터 시스템에서 운영체제(operating system, OS)는 어플리케이션의 실행 파일을 메모리에 로딩하고 실행 중인 어플리케이션이 사용하는 모든 메모리 페이지에 대해서 할당, 회수, 복사, 변경 등의 연산을 수행하며, 가상 메모리 페이지에서 물리 메모리 페이지로의 매핑도 관리한다. 운영체제는 물리 메모리가 부족할 경우에 어플리케이션에 할당된 물리 메모리 페이지 중 일부를 제2 저장장치에 저장한 후 회수하여 다른 필요한 곳에 활용할 수 있다. 이후에 어플리케이션이 해당 페이지에 접근하는 하는 경우에는 제2 저장장치로부터 읽어 와서 새로운 물리 메모리 페이지를 할당한 뒤 저장함으로써 복구해 준다. 여러 어플리케이션 간에 공통으로 사용하는 물리 메모리 페이지는 서로 공유해서 사용할 수 있는 기능을 제공하기 위해서, 서로 다른 어플리케이션의 가상 메모리 페이지에서 동일한 물리 페이지로의 매핑도 지원한다. 그 밖에 어플리케이션이 필요로 하는 파일 연산이나 네트워크 서비스 또는 실행 중인 어플리케이션 간의 통신 등도 운영체제가 지원한다.
이렇게 많은 일을 담당하는 컴퓨터 시스템의 운영체제는 코드의 양이 많고 복잡하며 코드 상의 버그도 많아서 실행되는 도중에 악의적인 공격, 예를 들어 버퍼 오버플로우 공격 등에 의해 제어 권한을 쉽게 공격자에게 넘겨줄 수 있다. 공격에 감염된 운영체제는 실행 중인 사용자 어플리케이션의 중요한 데이터를 메모리로부터 유출하여 공격자에게 넘겨 줄 수 있다. 또한 공격에 감염된 운영체제가 사용자 어플리케이션의 메모리에 접근할 경우 실행 중인 어플리케이션을 변조하여 악성 행위를 하도록 유도하는 등의 문제를 야기할 수 있다.
따라서 사용자 어플리케이션의 메모리를 보호하기 위한 방법이 요구되는데, 기존에는 주로 안전한 코프로세서를 활용하거나 프로세서 아키텍쳐를 변경하는 등 하드웨어 자원을 변경하여 어플리케이션 메모리를 보호하는 방법이 연구되고 있다. 그러나 하드웨어 자원을 변경하는 방법은 구현이 복잡하고 비용이 상승하는 문제가 있다.
대안으로 어플리케이션과 운영체제 사이에서 실행 컨텍스트가 변경될 때마다 하이퍼바이저를 이용해서 어플리케이션 메모리를 암호화 또는 복호화해 줌으로써 운영체제가 어플리케이션의 메모리 페이지에 접근할 때는 항상 암호화된 내용만을 볼 수 있도록 제한하는 방법이 시도되고 있으나, 메모리 페이지에 대한 암호화와 복호화를 수행하는 것은 매우 많은 컴퓨팅 자원을 소모하게 되므로 시스템의 성능 저하를 야기할 우려가 있다.
본 발명은 상술한 본 발명이 속하는 기술 분야의 기술적 요구에 부응하기 위한 것으로, 본 발명의 하나의 목적은 가상화 컴퓨터 시스템에서 하드웨어 변경 없이 어플리케이션의 메모리를 보호하여 정보 유출 또는 실행 중인 어플리케이션의 변조와 같은 보안 문제를 해결할 수 있는 사용자 어플리케이션 메모리 보호방법을 제공하는 것이다.
본 발명의 다른 목적은 시스템 성능 저하 없이 사용자 어플리케이션 메모리를 보호할 수 있는 수단을 포함하는 보안 성능이 향상된 컴퓨터 시스템을 제공하는것이다.
본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 그 밖의 목적, 이점 및 특징들은 이하의 발명의 상세한 설명 및 도면을 참조함으로서 더욱 명확해질 것이다.
상술한 목적을 달성하기 위한 본 발명의 하나의 구현예는
가상화된 컴퓨터 시스템에서 사용자 어플리케이션 메모리를 보호하는 방법에 있어서,
실행 컨텍스트가 실행 중인 어플리케이션에서 게스트 운영체제로 이동하는 단계;
게스트 운영체제가 실행 중일 때는 하이퍼바이저가 어플리케이션의 모든 메모리 영역에 대한 접근 권한을 제거하는 단계; 및
실행 컨텍스트가 게스트 운영체제에서 어플리케이션으로 이동하는 단계를 포함하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법에 관한 것이다.
본 발명의 다른 구현예는 하이퍼바이저가 하나 이상의 가상 머신을 수행하고 가상 머신은 하나 이상의 어플리케이션을 실행하며, 게스트 운영체제가 어플리케이션이 요청하는 시스템 콜이나 하드웨어 인터럽트 실행을 처리하고 메모리에 대한 할당, 회수, 복사를 담당하는 컴퓨터 시스템으로서, 상기 하이퍼바이저는 사용자 어플리케이션이 실행되는 도중에 게스트 운영체제로 실행 컨텍스트가 이동하는 경우에 페이지 테이블을 수정하여 어플리케이션이 스스로 외부에 공개하지 않은 모든 물리 페이지에 대한 매핑을 차단한 후 게스트 운영체제로 실행 컨텍스트를 넘겨 주는 메모리 접근 제어 수단을 포함하는 컴퓨터 시스템에 관한 것이다.
본 발명의 다양한 실시예에 의한 사용자 어플리케이션 메모리 보호방법에 의하면, 하이퍼바이저의 무결성이 보장되는 가상화 시스템에서 하드웨어의 변경 없이 사용자 어플리케이션의 중요한 메모리 데이터가 공격에 감염된 운영체제에 의해 유출되는 문제 및 사용자 어플리케이션이 변조되는 문제를 근본적으로 해결할 수 있다. 또한 기존의 모든 사용자 어플리케이션을 전혀 수정하지 않고 실행해도 하이퍼바이저가 자동으로 메모리를 보호해 줄 수 있다는 장점을 가진다.
더욱이, 본 발명의 다양한 실시 예에 의한 사용자 어플리케이션 메모리 보호방법은 실행 오버헤드를 최소화할 수 있는 메커니즘을 사용하여 가상화된 컴퓨터 시스템에서 가장 큰 이슈인 성능 저하 없이 사용자 어플리케이션 메모리를 자원 효율적으로 보호할 수 있다.
도 1은 사용자 어플리케이션 메모리 및 하이퍼바이저 프로그램을 포함하는 가상화 컴퓨터 시스템의 개략도이다.
도 2는 실행 컨텍스트가 어플리케이션, 게스트 운영체제, 하이퍼바이저 일 경우의 각각의 메모리 영역에 대한 접근 권한을 설명하기 위한 모식도이다.
도 3은 본 발명의 일실시예에서 사용자 어플리케이션이 로딩되어 실행될 때 하이퍼바이저가 사용자 메모리의 코드 또는 데이터 페이지의 초기값에 대해서 검증하는 과정을 설명하는 흐름도이다.
도 4는 본 발명의 일실시예에서 실행 컨텍스트가 운영체제로 넘어가는 경우에 하이퍼바이저가 운영체제가 어플리케이션 메모리 영역 중 시스템 콜 버퍼 이외에는 접근할 수 없도록 차단하는 과정을 설명하는 흐름도이다.
도 5는 본 발명의 일실시예에서 카피-온-라이트(Copy-on-write) 페이지 폴트를 하이퍼바이저를 이용하여 처리하는 과정을 설명하는 흐름도이다.
도 6은 본 발명의 일실시예에서 스왑 아웃 연산 및 스왑 인 연산을 안전하게 수행하기 위한 방법을 설명하는 흐름도이다.
도 7은 본 발명의 일실시예에서 악의적인 운영체제가 자신의 가상 메모리 페이지를 어플리케이션의 임의의 물리 메모리로 직접 매핑하는 공격을 차단하기 위한 방법을 설명하는 흐름도이다
이하에서 본 발명에 따른 다양한 실시예들을 첨부된 도면을 참조하여 더욱 상세하게 설명한다. 본 발명을 모호하게 하지 않기 위해 공지된 구성들에 대한 설명은 생략되거나 단순화될 수 있다.
가상화(virtualization) 기술이란 운영체제(operating system, OS)에 대하여 프로세서, 메모리, 네트워크, 디바이스, 그래픽스 기능 등의 하드웨어 자원을 가상화하는 것이다. 가상화 기술은 하드웨어와 운영체제의 사이에 운영체제에 대해 가상적인 하드웨어 인터페이스를 제공하는 것으로 한대의 컴퓨터 상에서 여러 운영체제를 동시에 실행 가능하도록 한다. 가상 머신들로 구성된 가상화 시스템에서는 하이퍼바이저(hypervisor) 프로그램이 컴퓨터의 물리적 리소스들을 개별적인 가상 머신들로 논리적으로 분할한다. 하이퍼바이저는 하나 이상의 실행 중인 운영체제와 보호된 물리적 리소스 사이에 개입하도록 구성된 소프트웨어 계층으로, 하이퍼바이저는 운영체제들에 대해 보호된 물리적 리소스들을 기능적으로 다중화하고, 가상의 방식으로 각각의 운영체제에 대해 리소스를 지정한다. 가상화된 컴퓨터 시스템에서는 하이퍼바이저가 여러 개의 게스트 운영체제에 대한 관리 권한을 갖는데, 가상 메모리 페이지에서 물리 메모리 페이지로의 매핑 정보를 담고 있는 페이지 테이블에 대한 관리도 하이퍼바이저가 할 수 있으며, 게스트 운영체제가 담당하는 어플리케이션에 대한 정보도 알 수 있다.
본 발명의 실시예들은 사용자 어플리케이션의 메모리에 악의적인 접근을 시도하는 운영체제의 공격을 원천적으로 차단하기 위한 하이퍼바이저 기반 솔루션에 관한 것이다. 종래의 운영체제는 종속된 어플리케이션에 대한 모든 리소스를 할당, 회수, 관리하는 권한을 가지고 있고 어플리케이션이 운영체제에 직접 요청하는 시스템 콜이나 하드웨어에서 발생하는 인터럽트에 대한 처리 등도 수행하도록 되어있다. 이처럼 운영체제의 권한이 어플리케이션의 권한 보다 훨씬 높기 때문에 어플리케이션 스스로는 자신의 메모리를 운영체제로부터 보호하는 것이 매우 어렵다. 하지만 가상화된 컴퓨터 시스템에서는, 도 1에 도시된 바와 같이, 하이퍼바이저가 게스트 운영체제 보다 높은 권한을 가지고 있기 때문에 운영체제가 어플리케이션의 메모리 페이지에 악의적으로 접근하는 것을 차단하는 수단으로 하이퍼바이저를 활용할 수 있다. 본 발명에서 하이퍼바이저는 어플리케이션의 생성과 수행 과정 중에 개입하여 어플리케이션의 메모리 페이지에 게스트 운영체제가 임의로 접근하는 모든 행동을 감시하고 제한한다. 이를 통해서 어플리케이션의 메모리 페이지에 저장되어 있는 비밀번호, 암호화키, 주민등록번호, 주요 문서 내용, 음성 데이터 등의 중요한 데이터를 유출되지 않도록 보호할 수 있다.
하이퍼바이저는 운영체제와 비교하여 코드의 양이 매우 작고 그 만큼 코드 버그로 인한 공격에 노출될 가능성이 작다. 본 발명은 하이퍼바이저의 신뢰성이 보장되는 환경에서 적용 가능하다.
본 발명의 하나의 실시예의 가상화된 컴퓨터 시스템에서 사용자 어플리케이션 메모리를 보호하는 방법은 실행 컨텍스트가 실행 중인 어플리케이션에서 게스트 운영체제로 이동하는 단계; 게스트 운영체제가 실행 중일 때는 하이퍼바이저가 어플리케이션의 모든 메모리 영역에 대한 접근 권한을 제거하는 단계; 및 실행 컨텍스트가 게스트 운영체제에서 어플리케이션으로 이동하는 단계를 포함한다.
즉, 하이퍼바이저는 보호하고자 하는 사용자 어플리케이션이 실행되는 도중에 시스템 콜이나 인터럽트 등에 의해서 게스트 운영체제로 실행 컨텍스트가 이동할 때 페이지 테이블을 수정하여 어플리케이션이 스스로 외부에 공개하지 않은 모든 물리 페이지에 대한 접근 권한을 해제한 후 게스트 운영체제로 실행 컨텍스트를 넘겨 준다. 게스트 운영체제는 어플리케이션이 공개한 물리 메모리 페이지 이외에는 접근할 수 없으며 페이지 테이블을 변경하는 작업은 하이퍼바이저에 의해 검열되기 때문에 자신의 주소 영역에 어플리케이션의 보호되는 물리 페이지에 대한 매핑을 만드는 것도 조차도 허용되지 않는다.
이러한 본 발명의 다양한 실시예의 기술들은 임의의 컴퓨팅 환경 또는 프로세싱 환경에서 실행되는 프로그램으로 구현될 수 있다. 본 발명은 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등의 가상화 지원부를 구비하는 다양한 시스템을 이용하여 실시될 수 있다. 본 발명은 또한 분산 컴퓨팅 환경에서 실시될 수 있는데, 예를 들어, 가상화된 컴퓨팅 시스템을 활용하는 서버 시스템, 클라우드 컴퓨팅 시스템 환경에서 사용될 수 있다.
도 2는 가상 컴퓨팅 환경에서 실행 컨텍스트가 어플리케이션, 게스트 운영체제, 하이퍼바이저일 때 각각의 메모리 영역에 대한 접근 권한을 설명하기 위한 모식도이다. 도 2를 참조하면, 하이퍼바이저가 실행 중일 때는 자신의 메모리 영역을 포함하여 전체 가상 메모리 공간에 접근할 수 있다. 게스트 운영체제가 실행 중일 때는 자신의 메모리 공간과 사용자 어플리케이션의 시스템 콜 버퍼 영역에만 접근이 가능하다. 한편, 사용자 어플리케이션이 실행 중일 때는 기존 시스템과 마찬가지로 자신의 메모리 영역에만 접근 가능하다. 기본적으로 하이퍼바이저는 실행 컨텍스트가 어플리케이션과 게스트 운영체제 사이에서 바뀔 때 마다 어플리케이션의 모든 가상 메모리 영역에 해당하는 페이지 테이블을 수정하여 현재 비트(Present Bit)를 제거하고 백업하는 방법을 사용하여 게스트 운영체제가 실행 중일 때는 어플리케이션의 메모리 영역에 접근할 수 없도록 제한한다.
이하, 첨부된 흐름도 도면들을 참고하여 본 발명의 실시예에 따른 사용자 어플리케이션 메모리 보호방법에 대해 더욱 상세하게 설명한다. 흐름도의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 명령들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
도 3은 게스트 운영체제가 새로운 어플리케이션을 로딩할 때 하이퍼바이저가 개입하여 어플리케이션의 코드 및 데이터 영역 페이지에 대한 무결성을 검증하는 과정을 설명하는 흐름도이다. 도 3을 참조하면, 게스트 운영체제가 새로운 어플리케이션을 로딩하면(S1), 제어권이 어플리케이션으로 넘어가기 전에 하이퍼바이저는 새로 로딩된 어플리케이션의 메모리 페이지가 변조되지 않았는지 제 3의 인증기관(Certificate Authority)을 통해서 검증한다(S2). 이를 위해서, 게스트 운영체제가 로딩한 어플리케이션 메모리 페이지의 내용을 인코딩 또는 해쉬한 뒤 결과를 제3의 인증기관에서 가져온 인코딩 값과 비교하여 검증한다. 검증이 완료되면 새로 로딩된 어플리케이션이 실행된다(S3). 종래의 운영체제는 어플리케이션의 모든 메모리 페이지를 로딩하지 않고 일부는 할당되지 않은 채로 남겨두고 이후에 어플리케이션이 접근할 때 페이지 폴트를 통해서 페이지를 할당해주는 방식을 사용한다. 어플리케이션 실행 중 아직 할당되지 않았던 코드/데이터 영역에서 페이지 폴트가 발생되면(S4), 게스트 운영체제가 코드 또는 데이터 페이지를 할당하고(S5), 어플리케이션 실행 전에 하이퍼바이저가 새로 로딩된 메모리 페이지에 대한 검증을 실시한다(S6). 이런 식으로 나중에 할당되는 페이지에 대해서도 하이퍼바이저가 인증기관을 통해 검증하여 새로운 어플리케이션의 로딩 시 코드 및 데이터 페이지에 대한 무결성을 검증한다.
도 4는 본 발명의 일실시예에서 실행 컨텍스트가 운영체제로 넘어가는 경우에 하이퍼바이저가 운영체제가 어플리케이션 메모리 영역 중 시스템 콜 버퍼 이외에는 접근할 수 없도록 차단하는 과정을 설명하는 흐름도이다. 도 4를 참조하면,어플리케이션이 게스트 운영체제에 시스템 콜을 통해 직접 서비스를 요청하거나, 하드웨어 인터럽트가 발생해서 실행 컨텍스트가 어플리케이션에서 운영체제로 이동할 때(S11), 하이퍼바이저는 어플리케이션의 메모리 페이지 각각에 해당하는 접근 권한을 백업한 뒤 제거함으로써 운영체제가 어플리케이션의 메모리 페이지에 접근하지 못하도록 차단한다(S12). 시스템 콜의 수행을 위해, 필요한 매개변수들은 어플리케이션 메모리 공간에서 운영체제의 메모리 공간으로 복사를 하고 레지스터들은 복사된 운영체제 공간을 가리키도록 수정한다(S13). 단, 하이퍼바이저가 시스템 콜 버퍼 영역에 해당하는 어플리케이션의 메모리 페이지에 대한 접근 권한을 제거하지 않음으로써 운영체제가 접근할 수 있도록 허용한다(S14). 접근이 허가된 페이지 중에서, 일부 공간만이 버퍼 영역에 속하는 페이지에 대해서는 버퍼 영역을 제외한 나머지 공간의 데이터를 하이퍼바이저가 백업한 뒤 0으로 초기화함으로써 나머지 공간의 데이터가 운영체제에 노출되지 않도록 한다. 게스트 운영체제가 시스템 콜 서비스 또는 인터럽트 수행을 마치고 실행 컨텍스트가 어플리케이션으로 다시 옮겨갈 때는, 하이퍼바이저가 어플리케이션이 자신의 메모리 영역에 대한 접근을 할 수 있도록 메모리 페이지에 대한 접근 권한을 원래대로 복구해준다(S15). 이와 함께 시스템 콜 버퍼 영역 주변의 백업 됐던 데이터들도 복구시켜 주면 어플리케이션이 다시 실행될 수 있다(S16). 본 발명에서는 이러한 방식을 통해서 시스템 콜 수행 시 운영체제는 오직 어플리케이션이 허용한 메모리 영역에 대해서만 접근할 수 있게 된다.
도 5는 본 발명의 일실시예에서 카피-온-라이트(Copy-on-write) 페이지 폴트를 하이퍼바이저를 이용하여 처리하는 과정을 설명하는 흐름도이다. 여러 어플리케이션 간에 동일한 물리 메모리 페이지를 공유하는 경우에, 한 어플리케이션이 공유되는 페이지에 대해서 쓰기 연산을 수행하면 운영체제는 해당 페이지를 복제하고 복제된 페이지에 대해서 쓰기 연산을 수행한 뒤 공유를 해제하는 연산을 수행해야 한다. 이를 카피-온-라이트(Copy-on-write) 연산이라고 한다. 하지만 이렇게 운영체제가 직접 Copy-on-write 연산을 수행하도록 허가해 주게 되면 해당 페이지의 내용을 악의적인 목적으로 읽거나 쓸 수 있게 된다.
본 발명에서는 이러한 문제를 예방하기 위해서 새로운 Copy-on-write 수행 방법을 제안한다. 어플리케이션의 공유 페이지에서 Copy-on-write 페이지 폴트가 발생하면(S21), 하이퍼바이저는 어플리케이션의 모든 메모리 영역에 대한 접근 권한을 백업하고 제거한 뒤 해당 폴트를 게스트 운영체제로 전달한다(S22). 게스트 운영체제는 Copy-on-write을 수행하기 위해서 새로운 페이지를 할당하고 하이퍼 콜을 사용하여 하이퍼바이저로 어플리케이션 페이지의 복사를 요청한다(S23). 게스트 운영체제는 직접 어플리케이션의 메모리 페이지에 접근하지 못하므로 하이퍼바이저가 복사를 대신하여 수행해 주는 것이다. 이렇게 복사가 완료되면 다시 운영체제로 실행 컨텍스트를 넘겨 주게 되고 게스트 운영체제는 Copy-on-write을 완료한다(S24). 이어서 하이퍼바이저가 어플리케이션 메모리 페이지에 대한 접근 권한을 복구하여 주면(S25), 어플리케이션으로 실행 컨텍스트를 돌려주게 되어 어플리케이션이 다시 실행된다(S26). 이러한 방식을 통해서 본 발명에서는 하이퍼바이저를 활용하여 Copy-on-write 연산을 운영체제가 수행할 때 어플리케이션의 메모리를 직접 읽거나 쓰는 일을 하지 않도록 제한한다.
도 6은 본 발명의 일실시예에서 스왑 아웃 연산 및 스왑 인 연산을 안전하게 수행하기 위한 방법을 설명하는 흐름도이다. 도 6을 참조하면, 게스트 운영체제에서 사용가능한 물리 메모리 페이지가 부족할 경우에는, 어플리케이션에 할당된 물리 메모리 페이지 중에서 잘 사용되지 않는 페이지를 제 2 저장 장치에 백업한 뒤 회수하는 스왑 아웃 연산을 수행하게 된다. 이후에 어플리케이션이 회수되었던 페이지에 접근할 경우엔 페이지 폴트가 발생하고 운영체제는 해당 가상 메모리 페이지에 새로운 물리 페이지를 다시 할당한 뒤 백업되었던 데이터를 복구 시켜주는 스왑 인 연산을 수행한다. 이러한 스왑 인/스왑 아웃 연산도 원래의 Copy-on-write 연산과 마찬가지로 기존의 시스템에서는 운영체제가 어플리케이션의 메모리 페이지에 직접 접근할 수 있는 권한을 필요로 한다. 만일 감염된 운영체제가 이를 악용하면 어플리케이션의 임의의 메모리 페이지의 데이터를 읽어갈 수 있게 되므로 이를 해결하기 위한 새로운 스왑 연산 방법이 필요하다.
본 발명에서는 게스트 운영체제가 어플리케이션의 물리 메모리 페이지에 직접 접근하지 못하도록 원천적으로 차단하고 있으므로, 운영체제가 어플리케이션의 임의의 메모리 페이지에 대해 스왑 연산을 하기 위해서는 하이퍼 콜을 사용하여 하이퍼바이저에게 요청을 해야 한다(S31-S32). 요청을 접수하면 하이퍼바이저는 어플리케이션의 해당 물리 페이지를 안전한 스왑 영역(제2 저장장치)에 백업한 뒤 초기화하여 운영체제로 실행을 넘겨주게 되고, 게스트 운영체제는 스왑 아웃 연산을 완료한 뒤 백업된 물리 메모리 페이지를 필요한 곳에 활용할 수 있게 된다(S33). 어플리케이션이 회수된(스왑 아웃된) 가상 메모리 영역에 접근하여 페이지 폴트가 발생하는 경우에도(S34), 게스트 운영체제는 하이퍼바이저에 스왑 인 연산을 하이퍼 콜을 사용하여 요청하고(S35), 하이퍼바이저는 요청된 물리 메모리 페이지를 제2 저장장치로부터 읽어 와서 복구(스왑 인) 시켜준다(S36).
도 7은 본 발명의 일실시예에서 악의적인 운영체제가 자신의 가상 메모리 페이지를 어플리케이션의 임의의 물리 메모리로 직접 매핑하는 공격을 차단하기 위한 방법을 설명하는 흐름도이다. 도 7을 참조하면, 게스트 운영체제가 자신의 가상 메모리 페이지를 어플리케이션의 물리 메모리 페이지로 매핑 할 경우에 어플리케이션의 데이터가 유출될 수 있기 때문에 이를 막기 위한 방법을 설명한다. 하이퍼바이저는 운영체제 부팅 후 운영체제의 가상 메모리 공간의 페이지 테이블을 수정하여 실제로 사용하는 영역을 제외한 직접 매핑 영역에 대한 접근 권한을 제거하여 물리 메모리에 대한 직접 접근을 제한한다. 새로운 매핑을 생성할 경우에도 하이퍼바이저는 게스트 운영체제와 어플리케이션에 할당된 물리 메모리 페이지를 구분함으로써 게스트 운영체제의 가상 메모리 영역에서 어플리케이션의 물리 메모리 페이지로의 매핑이 추가로 생성되지 못하도록 한다(S41). 게스트 운영체제가 자신의 메모리 공간에서 새로운 메모리에 대한 매핑을 요청하면(S42), 하이퍼바이저가 이를 검사하여 어플리케이션에 이미 할당된 메모리 페이지인 경우에는 이를 차단한다(S43).
본 발명의 다른 양상은 하이퍼바이저가 하나 이상의 가상 머신을 수행하고 가상 머신은 하나 이상의 어플리케이션을 실행하며, 게스트 운영체제가 어플리케이션이 요청하는 시스템 콜이나 하드웨어 인터럽트 실행을 처리하고 메모리에 대한 할당, 회수, 복사를 담당하는 컴퓨터 시스템으로서, 상기 하이퍼바이저는 사용자 어플리케이션이 실행되는 도중에 게스트 운영체제로 실행 컨텍스트가 이동하는 경우에 페이지 테이블을 수정하여 어플리케이션이 스스로 외부에 공개하지 않은 모든 물리 페이지에 대한 매핑을 차단한 후 게스트 운영체제로 실행 컨텍스트를 넘겨 주는 메모리 접근 제어 수단을 포함하는 컴퓨터 시스템에 관한 것이다.
도 1은 하이퍼바이저 가상화 시스템의 일례를 도시한 블록도이다. 도 1을 참고하면, 시스템은 컴퓨터 하드웨어(110), 하이퍼바이저(120), 게스트 운영체제(130), 다수의 어플리케이션들(140, 180) 및 도메인(160)을 포함한다. 하이퍼바이저(120) 및 어플리케이션(140 및 180)은 컴퓨터 하드웨어(110) 상에서 실행된다. 다수의 어플리케이션들(140, 180)이 컴퓨터 시스템 상에서 동시에 실행될 수 있다. 하이퍼바이저(120)는 하드웨어(110)에 대한 어플리케이션의 액세스를 제어하고, 파일 시스템, 메모리 및 모든 장치에 대한 액세스를 제어한다.
본 발명의 일실시예의 사용자 어플리케이션 메모리 보호기능을 갖는 컴퓨터 시스템은 상기 컴퓨터이 프로세서(10)에 결합되어 동작하며, 컴퓨터 프로그램 명령어가 저장되어 있는 메모리(20)를 포함하고, 상기 컴퓨터 프로그램 명령어가 실행될 경우 이상에서 설명한 사용자 어플리케이션 메모리 보호방법의 각 단계를 수행할 수 있다.
컴퓨터 하드웨어(110)는 프로세서(10), 메모리(20) 및 하나 이상의 I/O 장치(30 및 40)를 포함할 수 있다. 컴퓨터 하드웨어(110)는 퍼스널 컴퓨터, 메인프레임, 휴대 장치, 휴대용 컴퓨터, 셋톱박스, 또는 기타 임의의 컴퓨팅 시스템이 될 수 있다.
프로세서(10)는 소프트웨어를 실행시킬 수 있는 임의의 유형의 프로세서, 이를테면 마이크로프로세서, 디지털신호 처리기(DSP), 마이크로컨트롤러 등과 같은 것일 수 있다. 도 1은 그러한 단 하나의 프로세서(10)를 도시하고 있으나, 컴퓨터 하드웨어(110)에 하나 이상의 프로세서가 존재할 수 있으며, 하나 이상의 프로세서는 다중 스레드, 다중 코어 등을 포함할 수 있다.
메모리(20)는 하드 디스크, 플로피 디스크, RAM, ROM, 플래시 메모리 또는 프로세서(10)에 의해 판독 가능한 기타 임의의 유형의 매체가 될 수 있다. 메모리(20)는 본 발명의 방법을 실행시키기 위한 명령들을 저장할 수 있다.
하나 이상의 I/O 장치(30 및 40)는, 예를 들면, 시스템 버스(예를 들면, PCI(Peripheral Component Interconnect), ISA(Industry Standard Architecture), AGP(Advanced Graphics Port)) 상의 네트워크 인터페이스 카드, 통신 포트, 비디오 컨트롤러, 디스크 컨트롤러, 또는 칩셋 로직 또는 프로세서에 탑재된 장치, 또는 컴퓨터 하드웨어(110) 상의 기타 임의의 장치가 될 수 있다.
게스트 운영체제들(130)은 자기 테이프 또는 디스크, 광 매체, DVD, 반도체 메모리, 메모리 스틱 등과 같은 컴퓨터 판독가능한 매체로부터 컴퓨터로 로딩되거나 또는 인터넷으로부터 다운로딩될 수 있다.
하이퍼바이저(120)는 시스템 부트에 있어서 조기에 로드되는 모듈로 구현되거나, 호스팅 OS로부터의 드라이버로서 런칭되거나, 시스템 펌웨어의 일부로서 런칭될 수 있다. 본 발명의 하이퍼바이저 프로그램은 디스크, 광디스크, DVD, 반도체 메모리, 메모리 스틱 등과 같은 컴퓨터 판독가능한 매체로부터 컴퓨터로 로딩될 수 있고, 또는 인터넷으로부터 다운로딩될 수 있다.
하이퍼바이저(120) 위에는 도메인(Domains)(160)으로 불리우는 가상 머신들(virtual machines)이 존재한다. 도메인은 크게 두 가지 타입으로 구분되는데, 도메인 0 (즉, Dom0, 160)는 하이퍼바이저를 제어하는 가상 머신이다.
본 발명의 또 다른 양상은 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법을 실행하기 위한 프로그램을 저장한 기록매체에 관한 것이다. 본 발명은 프로세싱 시스템 또는 기타 전자 장치를 프로그램하는데 사용될 수 있는 내장 명령을 가진 머신-액세스 가능한 매체(machine-accessible medium)를 포함하는 컴퓨터 프로그램 제품으로서 실시될 수 있다. 이러한 기록 매체는 자기 매체, 광 매체, 또는 다른 적당한 매체를 포함하는 기계-판독가능 정보를 위한 전송 매체 또는 기록가능 매체일 수도 있다. 이러한 기록매체는 실행 중인 어플리케이션에서 게스트 운영체제로 실행 컨텍스트가 이동하는 동작; 하이퍼바이저를 활용해서 게스트 운영체제가 실행 중일 때는 어플리케이션의 메모리 영역에 접근할 수 없도록 차단하는 동작; 및 게스트 운영체제에서 어플리케이션으로 실행 컨텍스트로 이동하는 동작을 수행하게 하는 명령어들을 포함한다. 프로그램 명령은 본 명세서에 기술된 동작을 수행하는 명령으로 프로그램된 범용 또는 특정 목적의 프로세싱 시스템을 생성하는데 사용될 수 있다.
이상에서 본 발명의 구체적인 실시예에 기초하여 상세하게 설명하였으나, 이들은 단지 예시적인 것으로 본 발명이 상기의 실시예로 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 보호범위는 상기 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위 뿐만 아니라 이러한 특허청구범위와 균등하거나 등가적 변형을 포함하는 모든 것들은 본 발명의 보호범위에 속하는 것으로 해석되어야 할 것이다.
10: 프로세서
20: 메모리
30, 40: I/O 장치
110: 하드웨어
120: 하이퍼바이저(hypervisor)
130: 게스트 운영체제(OS)
140, 180: 어플리케이션
160: Dom0

Claims (14)

  1. 가상화된 컴퓨터 시스템에서 사용자 어플리케이션 메모리를 보호하는 방법에 있어서,
    실행 컨텍스트가 실행 중인 어플리케이션에서 게스트 운영체제로 이동하는 단계;
    실행 중인 어플리케이션에서 게스트 운영체제로 실행 컨텍스트가 이동하여, 하이퍼바이저를 활용해서 게스트 운영체제가 실행 중일 때는, 하이퍼바이저가 해당 어플리케이션의 모든 가상 메모리 영역의 페이지 테이블을 수정하여 접근 권한을 백업하고 제거함으로써, 하이퍼바이저가 어플리케이션의 모든 메모리 영역에 대한 접근 권한을 제거하는 단계; 및
    실행 컨텍스트가 게스트 운영체제에서 어플리케이션으로 이동하는 단계를 포함하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  2. 삭제
  3. 제 1 항에 있어서, 상기 방법은 게스트 운영체제가 새로운 어플리케이션을 로딩할 때 하이퍼바이저가 새로 로딩된 어플리케이션의 메모리 페이지가 변조되지 않았는지 제 3의 인증기관(Certificate Authority)을 통해서 검증하는 단계를 포함하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  4. 제 1 항에 있어서,
    실행 중인 어플리케이션이 시스템 콜을 호출해서 발생하는 컨텍스트 이동인 경우, 하이퍼바이저가 시스템 콜 매개변수를 게스트 운영체제의 메모리 공간으로 복사한 뒤 레지스터가 복사된 위치를 가리키도록 수정하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  5. 제 1 항에 있어서,
    실행 중인 어플리케이션이 시스템 콜을 호출해서 발생하는 실행 컨텍스트 이동인 경우, 하이퍼바이저가 시스템 콜 버퍼에 해당하는 메모리 페이지에 대해서는 접근 권한을 제거하지 않고, 메모리 페이지 중 일부 공간만 시스템 콜 버퍼 영역에 포함되는 페이지들에 대해서는 버퍼 영역을 제외한 나머지 공간을 백업하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  6. 제 1 항에 있어서, 상기 방법이
    게스트 운영체제가 실행 중인 어플리케이션에서 카피-온-라이트(Copy-on-write) 페이지 폴트가 발생한 경우,
    하이퍼바이저가 어플리케이션의 모든 메모리 영역에 대한 접근 권한을 백업하고 제거한 뒤, 해당 폴트를 게스트 운영체제로 전달하는 단계:
    게스트 운영체제가 공유되는 물리 메모리 페이지의 복제를 위해서 새로운 물리 메모리 페이지를 어플리케이션의 가상 메모리 페이지에 할당한 후, 하이퍼바이저에게 하이퍼 콜을 통해서 공유되는 물리 메모리 페이지로부터 새로운 물리 메모리 페이지로의 복사를 요청하는 단계; 및
    게스트 운영체제가 카피-온-라이트 연산을 완료하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  7. 제 1 항에 있어서, 상기 방법이
    게스트 운영체제가 실행 중인 어플리케이션이 사용하는 물리 메모리 페이지 중 일부를 스왑아웃하기 위해서 하이퍼 콜로 하이퍼바이저에게 요청하는 단계;
    상기 요청에 대응해서 하이퍼바이저가 해당되는 물리 메모리 페이지를 백업 한 뒤 초기화하여 게스트 운영체제로 실행 컨텍스트를 넘겨 주는 단계; 및
    운영체제가 스왑아웃 연산을 완료하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  8. 제 7 항에 있어서, 상기 방법이
    어플리케이션이 스왑아웃된 메모리 페이지에 접근하여 페이지 폴트가 발생한 경우, 게스트 운영체제가 하이퍼바이저에게 하이퍼 콜을 통해서 스왑인 연산을 수행하기 위해 백업되었던 물리 메모리 페이지를 복구하도록 요청하는 단계;
    하이퍼바이저가 해당 페이지를 복구한 뒤 게스트 운영체제로 실행 컨텍스트를 넘겨주는 단계; 및
    페이지 폴트 처리를 완료하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  9. 제 1 항에 있어서,
    게스트 운영체제가 사용하는 메모리 영역 중에서 실제 사용하는 영역을 제외한 직접 매핑 영역에 대한 페이지 테이블의 접근 권한을 제거하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  10. 제 1 항에 있어서,
    하이퍼바이저가 게스트 운영체제와 어플리케이션에 할당된 물리 메모리 페이지를 구분하여 관리하고, 게스트 운영체제가 자신의 가상 물리 메모리 페이지에서 새로운 물리 메모리 페이지에 대한 매핑을 요청하는 경우, 하이퍼바이저가 이를 검사하여 어플리케이션에 이미 할당된 물리 메모리 페이지인 경우에 매핑을 차단하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  11. 제 1 항에 있어서, 상기 방법이
    게스트 운영체제에서 어플리케이션으로 실행 컨텍스트가 되돌아 가는 경우, 하이퍼바이저가 어플리케이션의 가상 메모리 페이지의 접근 권한을 복구시켜 주는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  12. 제 11 항에 있어서,
    시스템 콜의 수행을 마치고 어플리케이션의 실행 컨텍스트로 되돌아 가는 경우, 시스템 콜 버퍼에 해당하는 메모리 페이지 중 제5항의 과정 중에 백업되었던 버퍼 영역을 제외한 나머지 공간의 데이터를 복구시켜 주는 것을 특징으로 하는 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법.
  13. 하이퍼바이저가 하나 이상의 가상 머신을 수행하고 가상 머신은 하나 이상의 어플리케이션을 실행하며, 게스트 운영체제가 어플리케이션이 요청하는 시스템 콜이나 하드웨어 인터럽트 실행을 처리하고 메모리에 대한 할당, 회수, 복사를 담당하는 컴퓨터 시스템으로서, 상기 하이퍼바이저는 사용자 어플리케이션이 실행되는 도중에 게스트 운영체제로 실행 컨텍스트가 이동하는 경우에 페이지 테이블을 수정하여 어플리케이션이 스스로 외부에 공개하지 않은 모든 물리 페이지에 대한 매핑을 차단한 후 게스트 운영체제로 실행 컨텍스트를 넘겨 주는 메모리 접근 제어 수단을 포함하는 컴퓨터 시스템.
  14. 제1항에 기재된 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법을 실행하기 위한 프로그램을 저장한 기록매체로서, 상기 기록매체는
    실행 중인 어플리케이션에서 게스트 운영체제로 실행 컨텍스트가 이동하는 동작;
    실행 중인 어플리케이션에서 게스트 운영체제로 실행 컨텍스트가 이동하여, 하이퍼바이저를 활용해서 게스트 운영체제가 실행 중일 때는, 하이퍼바이저가 해당 어플리케이션의 모든 가상 메모리 영역의 페이지 테이블을 수정하여 접근 권한을 백업하고 제거함으로써, 어플리케이션의 메모리 영역에 접근할 수 없도록 차단하는 동작; 및
    게스트 운영체제에서 어플리케이션으로 실행 컨텍스트로 이동하는 동작을 수행하게 하는 명령어들을 포함하는 컴퓨터 판독가능한 기록매체.
KR1020100122468A 2010-12-03 2010-12-03 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법 KR101213572B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100122468A KR101213572B1 (ko) 2010-12-03 2010-12-03 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100122468A KR101213572B1 (ko) 2010-12-03 2010-12-03 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법

Publications (2)

Publication Number Publication Date
KR20120061249A KR20120061249A (ko) 2012-06-13
KR101213572B1 true KR101213572B1 (ko) 2012-12-18

Family

ID=46611853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100122468A KR101213572B1 (ko) 2010-12-03 2010-12-03 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법

Country Status (1)

Country Link
KR (1) KR101213572B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467877B1 (ko) * 2012-11-28 2014-12-11 주식회사 잉카인터넷 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
KR20150080859A (ko) * 2014-01-02 2015-07-10 삼성전자주식회사 어플리케이션 운용 방법 및 이를 이용한 전자 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8875295B2 (en) * 2013-02-22 2014-10-28 Bitdefender IPR Management Ltd. Memory introspection engine for integrity protection of virtual machines
KR101429434B1 (ko) * 2013-03-13 2014-08-12 한국과학기술원 클라우드 컴퓨팅 환경에서 사용자 가상 머신 실행환경의 신뢰성 향상 장치 및 방법
US10114948B2 (en) 2013-03-15 2018-10-30 Mcafee, Llc Hypervisor-based buffer overflow detection and prevention
KR101394424B1 (ko) * 2013-04-22 2014-05-13 한국인터넷진흥원 하이퍼바이저 기반 침입 방지 플랫폼 및 가상화 네트워크 침입 방지 시스템
KR101434794B1 (ko) * 2013-05-27 2014-08-27 (주)스마일게이트엔터테인먼트 프로그램 해킹 방어 방법 및 시스템
KR102297476B1 (ko) * 2014-12-05 2021-09-02 삼성전자주식회사 응용 프로그램의 자원을 보호하는 방법 및 장치
KR102403063B1 (ko) * 2014-12-05 2022-05-30 삼성전자주식회사 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법
KR101729680B1 (ko) 2015-12-01 2017-04-25 한국전자통신연구원 경량 하이퍼바이저에 기반하는 운영체제의 제공 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077144A (ja) 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077144A (ja) 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
한국지역정보화학회지 제13권 제3호

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467877B1 (ko) * 2012-11-28 2014-12-11 주식회사 잉카인터넷 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
KR20150080859A (ko) * 2014-01-02 2015-07-10 삼성전자주식회사 어플리케이션 운용 방법 및 이를 이용한 전자 장치
KR102176645B1 (ko) 2014-01-02 2020-11-09 삼성전자 주식회사 어플리케이션 운용 방법 및 이를 이용한 전자 장치

Also Published As

Publication number Publication date
KR20120061249A (ko) 2012-06-13

Similar Documents

Publication Publication Date Title
KR101213572B1 (ko) 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법
Jang et al. Heterogeneous isolated execution for commodity gpus
JP7428770B2 (ja) コンピュータプログラム、コンピュータ可読記憶媒体及び装置
KR102355213B1 (ko) 운영 체제 공격으로부터 애플리케이션 기밀사항을 보호하는 기법
US9753865B2 (en) System and methods for executing encrypted code
Zhang et al. Cloudvisor: retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization
US8689212B2 (en) Information processing device for controlling an application able to access a predetermined device, and control method using an information processing device for controlling an application able to access a predetermined device
US7380049B2 (en) Memory protection within a virtual partition
US20080229117A1 (en) Apparatus for preventing digital piracy
Li et al. Mycloud: supporting user-configured privacy protection in cloud computing
Maurice et al. Confidentiality issues on a GPU in a virtualized environment
KR101323858B1 (ko) 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
Wu et al. Comprehensive VM protection against untrusted hypervisor through retrofitted AMD memory encryption
US11755753B2 (en) Mechanism to enable secure memory sharing between enclaves and I/O adapters
EP3867763B1 (en) Trusted intermediary realm
US20200409740A1 (en) Systems, methods, and media for trusted hypervisors
Tadokoro et al. Preventing information leakage from virtual machines' memory in iaas clouds
Cao et al. CryptMe: Data leakage prevention for unmodified programs on ARM devices
Van't Hof et al. {BlackBox}: a container security monitor for protecting containers on untrusted operating systems
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
Lie et al. Using hypervisors to secure commodity operating systems
KR20180011847A (ko) 가상 기계들을 위한 상태 정보 보호
CN114641761A (zh) 机密计算机制
US20230098991A1 (en) Systems, methods, and media for protecting applications from untrusted operating systems
Gutstein Towards Efficient and Effective IOMMU-based Protection from DMA Attacks

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: 20161129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181203

Year of fee payment: 7