KR101467877B1 - 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 - Google Patents

하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 Download PDF

Info

Publication number
KR101467877B1
KR101467877B1 KR1020130005801A KR20130005801A KR101467877B1 KR 101467877 B1 KR101467877 B1 KR 101467877B1 KR 1020130005801 A KR1020130005801 A KR 1020130005801A KR 20130005801 A KR20130005801 A KR 20130005801A KR 101467877 B1 KR101467877 B1 KR 101467877B1
Authority
KR
South Korea
Prior art keywords
hypervisor
central processing
memory area
processing unit
security
Prior art date
Application number
KR1020130005801A
Other languages
English (en)
Other versions
KR20140071205A (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 주식회사 잉카인터넷
Publication of KR20140071205A publication Critical patent/KR20140071205A/ko
Application granted granted Critical
Publication of KR101467877B1 publication Critical patent/KR101467877B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

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

Abstract

이 발명은 하이퍼바이저를 이용하여 비허용 스레드가 보호대상어플리케이션의 중요 메모리 데이터에 접근하지 못하도록 차단하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법에 관한 것이다.
이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템은, 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치하고 실행하는 하이퍼바이저설치부와; 중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정부와; 상기 하이퍼바이저 레벨에서 동작하며, 보호대상 메모리 영역과 허용 스레드 정보를 포함하고, 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들러를 포함한다.

Description

하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 {System and method for securing process memory using Hypervisor}
이 발명은 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법에 관한 것으로서, 보다 상세하게는 하이퍼바이저를 이용하여 허용되지 않은 스레드가 보호대상 어플리케이션의 중요 메모리 데이터에 접근하지 못하도록 차단하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법에 관한 것이다.
가상화 기술이란 운영체제에 대하여 프로세서(중앙처리장치 또는 CPU라고도 함), 메모리, 네트워크, I/O디바이스, 그래픽스 기능 등의 하드웨어 자원을 가상화하는 것으로서, 한 대의 컴퓨터 상에서 여러 운영체제를 동시에 실행 가능하도록 한다. 통상적으로 다수의 가상 머신들로 구성된 가상화 시스템에서는 하이퍼바이저가 컴퓨터의 물리적 리소스들을 개별의 가상 머신들에게 논리적으로 분할하며, 각 가상 머신에서 독립적인 운영체제가 실행되도록 한다. 이러한 하이퍼바이저는 가상 머신들의 모든 운영체제 도메인을 제어할 수 있는 특권을 갖는다.
하이퍼바이저는 가상화 환경을 관리하는 주체를 의미하는 바, 가상화 방법으로는 Software Emulation, Binary-Translation, Paravirtualization, Hardware-Assisted Virtualization 등 다양한 방법으로 구현될 수 있다.
종래의 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법으로서, 대한민국 공개특허 제2012-0061249호(2012년 6월 13일 공개)가 있다. 이 선행특허는, 하이퍼바이저를 이용하여 사용자 어플리케이션의 메모리에 악의적으로 접근을 시도하는 운영체제의 공격을 차단하는 기술이 개시된다. 통상적으로 컴퓨터시스템에서 운영체제의 권한이 어플리케이션의 권한보다 높기 때문에 어플리케이션은 자신의 메모리 데이터를 운영체제로부터 보호할 수 없는 문제점이 발생한다. 이 선행특허는 가상 환경에서 구동하는 게스트 운영체제가 어플리케이션의 메모리 페이지에 악의적 접근을 하지 못하도록 차단하는데 하이퍼바이저를 활용한다.
선행특허에 따르면, 하이퍼바이저는 실행 컨텍스트가 어플리케이션에서 게스트 운영체제로 이동하는지를 감지한다. 즉, 어플리케이션이 실행 컨텍스트를 획득한 동안, 하이퍼바이저는 어플리케이션의 물리 메모리 페이지에 대한 접근 권한을 복구하고, 실행 컨텍스트가 어플리케이션에서 게스트 운영체제로 이동하려고 할 때에는 물리 메모리 페이지에 대한 접근 권한을 해제한 후 게스트 운영체제에게 실행 컨텍스트를 넘겨준다.
그러나, 이 선행특허에서는 하이퍼바이저가 실행되는 과정에 대해서는 전혀 언급이 없으며, 하이퍼바이저가 설치된 환경을 전제로 게스트 운영체제로부터 어플리케이션의 물리 메모리 페이지를 보호하는 기술만이 기재되어 있을 뿐이다.
또한, 이 선행특허에서는 둘 이상의 중앙처리장치(CPU)가 구동되는 멀티프로세서 환경에서의 보안을 전혀 고려하지 않고 있다. 부연 설명하면, 실행 컨텍스트는 중앙처리장치(CPU)마다 프로세스들에게 부여하는 것으로서, 멀티프로세서 환경에서는 각 중앙처리장치마다 각각 실행 컨텍스트가 발생한다. 이때, 어플리케이션이 하나의 중앙처리장치의 실행 컨텍스트를 획득하여 물리 메모리 페이지에 대한 접근 권한이 복구되어 있는 상태에서, 게스트 운영체제가 다른 중앙처리장치의 실행 컨텍스트를 획득하면, 이 게스트 운영체제는 어플리케이션의 물리 메모리 페이지를 접근할 수 있게 된다. 또는, 게스트 운영체제가 하나의 중앙처리장치의 실행 컨텍스트를 획득한 상태에서, 다른 중앙처리장치의 실행 컨텍스트가 어플리케이션으로 이동하여 물리 메모리 페이지에 대한 접근 권한이 복구되면, 전자의 중앙처리장치에 의해 게스트 운영체제가 어플리케이션의 물리적 메모리 페이지에 악의적으로 접근할 수 있게 된다. 따라서, 선행특허는 멀티프로세서 환경에서 게스트 운영체제가 어플리케이션의 물리 메모리 페이지에 악의적으로 접근할 수 있게 되는 문제점이 있다.
선행특허의 다른 문제점으로서, 실행 컨텍스트가 어플리케이션에서 게스트 운영체제로 이동하면 물리 메모리 페이지가 백업되면서 초기화되고, 실행 컨텍스트가 게스트 운영체제에서 어플리케이션으로 이동하면 백업된 물리 메모리 페이지가 복구된다. 그러면, 해당 물리 메모리 페이지에 악의적으로 접근하려고 시도하는 게스트 운영체제가 해당 물리 메모리 페이지가 초기화되었음을 쉽게 인지하고 다른 접근방법으로 백업된 물리 메모리 페이지를 찾으려고 시도하여 백업된 물리 메모리 페이지를 찾아낼 위험이 있다.
상술한 종래기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은, 어플리케이션의 중요 메모리 데이터를 악의적인 접근으로부터 보호하면서도 외부에서는 이를 쉽게 인식하지 못하도록 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법을 제공하기 위한 것이다.
또한, 이 발명의 다른 목적은, 멀티프로세서 환경에서도 어플리케이션의 중요 메모리 데이터를 악의적인 접근으로부터 보안할 수 있는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법을 제공하기 위한 것이다.
상술한 목적을 달성하기 위한 이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템은, 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치하고 실행하는 하이퍼바이저설치부와;
중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정부와;
상기 하이퍼바이저 레벨에서 동작하며, 보호대상 메모리 영역과 허용 스레드 정보를 포함하고, 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들러를 포함한 것을 특징으로 한다.
이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안 방법은, 보안모듈이 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치하고 실행하는 하이퍼바이저설치단계와;
상기 보안모듈이 중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정단계와;
상기 보안모듈이 보호대상 메모리 영역과 허용 스레드 정보를 확보하고, 상기 인터럽트가 발생하면 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들링단계를 포함한 것을 특징으로 한다.
이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안 방법은, 보안모듈이 중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정단계와;
상기 보안모듈이 보호대상 메모리 영역과 허용 스레드 정보를 확보하고, 상기 인터럽트가 발생하면 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고, 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들링단계를 포함하고;
상기 보안핸들링단계는, 상기 보안모듈이 상기 보호대상 메모리 영역과 허용 스레드 정보를 확보하는 제1단계와, 상기 보안모듈이 상기 보호대상 메모리 영역의 원본 데이터를 원본데이터보관영역에 저장하고 상기 보호대상 메모리 영역에 가짜 데이터를 저장하는 제2단계와, 상기 인터럽트가 발생하면 상기 보안모듈이 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드와 신규 메모리 페이지 디렉토리 정보를 수집하는 제3단계와, 상기 보안모듈이 이전 스레드와 이전 메모리 페이지 디렉토리 및 신규 스레드와 신규 메모리 페이지 디렉토리 정보를 기반으로 동작 모드를 판단하는 제4단계와, 상기 보안모듈이 상기 제4단계의 판단 결과 보호대상 메모리 영역 보안 동작, 보호대상 메모리 영역 복구 동작, 실행 지연 동작, 및 실행 계속 동작 중 하나를 수행하는 제5단계를 포함하는 것을 특징으로 한다.
이상과 같이 이 발명에 따르면, 어플리케이션이 구성하는 스레드들 중 특정 허용 스레드만이 중요 메모리 데이터에 접근할 수 있도록 하고 그 외 다른 어플리케이션 또는 다른 스레드들은 중요 메모리 데이터에 접근할 수 없도록 함으로써, 악의적인 메모리 데이터 분석 및 추출 등의 악의적인 공격으로부터 중요 메모리 데이터를 보호할 수 있는 효과가 있다.
또한, 멀티프로세서 환경에서, 상기 특정 허용 스레드가 하나의 중앙처리장치로부터 실행 컨텍스트를 획득한 동안에는 다른 중앙처리장치의 실행 컨텍스트가 중요 메모리 데이터에 접근하고자 하는 다른 스레드로 이동되지 못하도록 하고, 하나의 중앙처리장치에서 중요 메모리 데이터에 접근하고자 하는 타 스레드가 실행 컨텍스트를 획득한 동안에는 다른 중앙처리장치에서 상기 허용 스레드가 실행 컨텍스트를 획득하지 못하도록 하여 멀티프로세서 환경에서도 악의적인 메모리 데이터 분석 및 추출 등의 악의적인 공격으로부터 중요 메모리 데이터를 보호할 수 있는 효과가 있다.
도 1은 이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안모듈을 포함한 컴퓨터 시스템의 구성도이다.
도 2는 이 발명에 따른 하이퍼바이저설치부의 동작을 도시한 동작 흐름도이다.
도 3은 이 발명에 따른 보안핸들러의 동작을 도시한 동작 흐름도이다.
도 4는 이 발명에 따른 보호대상 메모리 영역 복구 동작을 도시한 동작 흐름도이다.
도 5는 이 발명에 따른 보호대상 메모리 영역 보안 동작을 도시한 동작 흐름도이다.
통상적으로 프로세스라는 용어는 자원의 관리 단위이며, 스레드라는 용어는 실행 흐름 제어의 단위이다.  윈도우 운영체제에서 실행된 모든 프로세스는 각자의 독립된 가상 메모리를 가지고 있고 각 프로세스 내에서 실행 흐름 제어 단위인  스레드들은 모두 동일한 메모리 영역을 공유한다.
이 발명에 따른 프로세스 메모리 보안 방법을 설명하기에 앞서, 컨텍스트 스위칭에 대해 설명한다. 컨텍스트 스위칭(context switching)이란, 하나의 프로세스가 중앙처리장치(CPU)의 사용 권한을 획득한 상태에서 다른 프로세스에게 해당 중앙처리장치(CPU)의 사용 권한을 넘겨주기 위해, 이전 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 로드하는 작업을 의미한다. 이때, 프로세스의 실행 흐름 제어 단위는 스레드로서, 프로세스를 구성하는 다수의 스레드들 중 하나의 스레드가 중앙처리장치(CPU)의 실행 컨텍스트를 획득한다.
중앙처리장치(CPU)의 CR3(Control Register 3) 레지스터에는 현재 중앙처리장치(CPU)의 사용 권한을 가진 프로세스의 메모리 페이지 디렉토리가 저장되는데, 컨텍스트 스위칭시 중앙처리장치(CPU)의 CR3(Control Register 3) 레지스터에는 새로운 프로세스의 메모리 페이지 디렉토리가 저장되어야 하며, 이를 위해 컨텍스트 스위칭 명령이 수행된다(예컨대, 'mov cr3, eax', 'move cr3, reg32', 'move cr3, reg64' 등). 통상적으로 이 컨텍스트 스위칭 명령을 분석하면 새로이 중앙처리장치의 사용 권한을 획득한 프로세스와 스레드 정보, 및 해당 스레드가 참조하고자 하는 메모리 페이지 디렉토리 정보를 알 수 있다.
이하, 첨부된 도면을 참조하며 이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안 방법을 상세하게 설명한다.
이 발명에서는 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하고 구축된 가상 환경을 제어하는 하이퍼바이저를 설치한다. 그러면, 가상 환경에서 리얼 운영체제와 동일한 가상 운영체제가 실행되면서 그 실행된 가상 운영체제를 기반으로 어플리케이션이 실행되고, 하이퍼바이저가 가상 운영체제 및 어플리케이션에 대한 제어 권한을 가지게 된다. 이 발명에서의 하이퍼바이저는 통상적인 Intel 또는 AMD 등의 범용적인 중앙처리장치에서 지원하는 하드웨어 지원 가상화를 사용한 하이퍼바이저를 기준으로 설명하나, 이에 한정되지는 않는다.
도 1은 이 발명에 따른 하이퍼바이저를 이용한 프로세스 메모리 보안모듈을 포함한 컴퓨터 시스템의 구성도이다.
이 발명이 적용되는 컴퓨터 시스템은 통상적으로 하드웨어(110)와 소프트웨어(120)로 대별된다. 하드웨어(110)는 중앙처리장치(CPU), 메모리, 다수의 I/O 장치를 포함하는데, 하나의 컴퓨터 시스템에 도 1과 같이 둘 이상의 중앙처리장치(CPU)가 설치될 수도 있으며, 이와 같이 둘 이상의 중앙처리장치가 설치된 환경을 멀티프로세서 환경이라고 한다.
소프트웨어(120)에는 운영체제(OS), 보호대상어플리케이션, 보안모듈이 포함된다. 보호대상어플리케이션과 보안모듈은 운영체제(OS)를 기반하여 실행된다. 보호대상어플리케이션에는 게임프로그램 등이 포함된다. 한편, 운영체제(OS)를 기반하여 게임프로그램을 대상으로 한 해킹프로그램(게임 핵)이 실행될 수 있는데, 이 해킹프로그램(게임 핵)은 다양한 형식, 예컨대, 프로세스, 스레드 또는 라이브러리로 존재할 수도 있다. 이러한 해킹프로그램(게임 핵)은 게임이 사용하는 메모리 페이지에 접근하여, 능력치나 체력 등과 같은 특정 데이터를 바꾸어 주거나, 격투기 게임에서 타격 속도나 타격 횟수 등을 증가시키거나, 매크로 기능을 부여하여 게이머가 게임을 손쉽게 이길 수 있도록 한다. 이와 같은 온라인 게임에서의 게임 핵 사용은 사용자들간의 밸런스 붕괴, 게임서버로의 가중한 부하 등과 같은 문제를 일으킬 수 있기 때문에, 보안모듈은 게임 핵이 게임의 메모리 페이지에 접근하지 못하도록 동작한다.
이 발명의 보안모듈은 하이퍼바이저설치부(121)와, 보안핸들러구동조건설정부(122)와, 보안핸들러(123)와, 하이퍼바이저종료부(124)를 포함한다.
하이퍼바이저설치부(121)는 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치한다.
도 2는 이 발명에 따른 하이퍼바이저설치부의 동작을 도시한 동작 흐름도이다. 하이퍼바이저설치부(121)의 동작을 도 2를 참조하여 구체적으로 설명한다.
하이퍼바이저설치부(121)는 중앙처리장치의 가상화 기능을 활성화하고(S21), 현재 구동되는 리얼 운영체제로부터 중앙처리장치(CPU) 벤더(예컨대, 인텔, AMD)별로 요구되는 하이퍼바이저 구조체 정보를 수집하여 해당 하이퍼바이저 구조체 형식으로 변환한다(S22). 수집되는 하이퍼바이저 구조체 정보에는 IP, SP, 레지스트리, MSR 정보 등이 포함된다.
다음, 하이퍼바이저설치부(121)는 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고(S23), 상기 변환된 하이퍼바이저 구조체 정보를 할당된 물리 메모리 공간에 복사(예컨대, 'vmsave' 명령을 실행)한다(S24). 마지막으로, 가상환경 실행 명령(예컨대, AMD CPU의 'vmrun', 인텔 CPU의 'vmlunch')를 실행한다(S25).
멀티프로세서 환경의 경우, 상기 하이퍼바이저설치부(121)는 단계 S21에서 모든 중앙처리장치의 가상화기능을 활성화하고, 실행중인 중앙처리장치 이외의 다른 중앙처리장치의 동작을 정지시킨다. 그리고, 상기 하이퍼바이저설치부(121)는 단계 S22에서 각각의 중앙처리장치로부터 해당 CPU 벤더별로 요구되는 하이퍼바이저 구조체 정보를 획득 및 변환하고, 단계 S23에서 각각의 중앙처리장치에 물리 메모리 공간을 할당하며, 단계 S24에서 각각의 중앙처리장치에 할당된 물리 메모리 공간에 각각의 중앙처리장치로부터 획득한 하이퍼바이저 구조체 정보를 복사한다.
다른 실시예로서, 하이퍼바이저설치부(121)는 컴퓨터 시스템에 설치된 모든 중앙처리장치에 각각 DPC(Deferred Procedure Call) 설치코드를 설치하고 실행한다. 이 DPC 설치코드는 각 CPU의 기존 진행코드를 일시 정지시키고 해당 CPU에 하이퍼바이저가 우선적으로 설치되도록 하는 실행코드로서, 각 DPC 설치코드는 앞서 설명한 바와 같이 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고 하이퍼바이저 구조체 정보를 수집하여 해당 물리 메모리 공간에 복사하고 가상환경 실행 명령을 실행하는 기능을 수행한다. 하이퍼바이저설치부(121)가 DPC 설치코드를 포함하는 개념으로 통칭한다.
다음, 보안핸들러구동조건설정부(122)는 중앙처리장치에 컨텍스트 스위칭 명령이 발생할 때 이 발명에 따른 보안핸들러(123)가 호출되도록 설정한다. 여기서, 컨텍스트 스위칭 명령이 발생할 때라 함은 임의의 스레드가 중앙처리장치의 CR3 레지스터에 새로운 메모리 페이지 디렉토리 정보를 입력하고자 할 때를 의미하며, 이때 인터럽트가 발생하여 보안핸들러가 호출된다.
보안핸들러(123)는 보호대상 메모리 영역으로의 접근 권한이 부여된 허용 스레드만이 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고, 보호대상 메모리 영역으로의 접근 권한이 부여되지 않은 비허용 스레드는 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 한다. 보안핸들러(123)에 대한 상세한 설명은 후술하기로 한다.
하이퍼바이저종료부(124)는 종료이벤트가 발생하면 중앙처리장치의 가상화 기능을 비활성화함으로써, 하이퍼바이저를 종료한다. 여기서, 종료이벤트라 함은 보호대상어플리케이션의 실행 종료 또는 보안모듈의 실행 종료일 수 있다.
도 3은 이 발명에 따른 보안핸들러의 동작을 도시한 동작 흐름도이다. 보안핸들러(123)의 동작을 도 3을 참조하여 구체적으로 설명한다.
보안핸들러(123)는 중앙처리장치의 인터럽트에 의해 호출되기 전에, 이 발명에서 보호하고자 하는 보호대상 메모리 영역(주소 및 크기) 정보와, 보호대상 메모리 영역에 접근할 수 있는 권한이 부여된 허용프로세스 및 허용 스레드 정보를 확보한다(S31). 상기 보호대상 메모리 영역은 보호대상어플리케이션의 메모리 페이지 중 적어도 일부인 것이 바람직하다. 보안핸들러(123)는 보호대상어플리케이션으로부터 직접 상기 보호대상 메모리 영역 정보와 허용 스레드 정보를 제공받을 수도 있고, 다른 경로를 통해 제공받을 수도 있다.
다음, 보안핸들러(123)는 보호대상 메모리 영역의 원본 데이터를 상기 보호대상 메모리 영역과는 다른 위치의 원본데이터보관영역에 저장하고, 상기 원본 데이터와는 다른 가짜 데이터를 임의로 생성하여 상기 보호대상 메모리 영역에 저장한다(S32). 보안핸들러(123)는 원본 데이터를 암호화한 후 원본데이터보관영역에 저장하는 것이 더 바람직하다.
이후 앞서 설명하였듯이, 중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 그 컨텍스트 스위칭 명령이 수행되지 않은 채 인터럽트가 발생하여 보안핸들러(123)가 호출되어 실행된다.
보안핸들러(123)는 중앙처리장치로부터 인터럽트가 발생하면(S33), 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령으로부터 스왑인되는 프로세스, 스레드 및 메모리 페이지 디렉토리 정보를 획득한다(S34).
이 발명의 명세서에서는, 상기 컨텍스트 스위칭 명령에 의해 스왑인되는 프로세스, 스레드 및 메모리 페이지 디렉토리 정보를 신규 프로세스, 신규 스레드 및 신규 메모리 페이지 디렉토리 정보라 명명하고, 중앙처리장치에 의해 현재 실행되고 있다가 상기 컨텍스트 스위칭 명령에 의해 스왑아웃되는 프로세스, 스레드 및 메모리 페이지 디렉토리 정보를 이전 프로세스, 이전 스레드 및 이전 메모리 페이지 디렉토리로 명명한다.
보안핸들러(123)는 신규 스레드 및 신규 메모리 페이지 디렉토리 정보와, 이전 스레드 및 이전 메모리 페이지 디렉토리 정보를 기반으로 동작 모드를 판단하고(S35), 보호대상 메모리 영역 보안 모드 조건에 해당하면 보호대상 메모리 영역 보안 동작을 수행하고, 보호대상 메모리 복구 모드 조건에 해당하면 보호대상 메모리 영역 복구 동작을 수행하며, 실행 지연 모드 조건에 해당하면 실행 지연 동작을 수행하고, 실행 계속 모드 조건에 해당하면 실행 계속 동작을 수행한다(S36).
여기서, 보호대상 메모리 영역 보안 모드라 함은 원본 데이터가 암호화되어 원본데이터보관영역에 저장되고 가짜 데이터가 보호대상 메모리 영역에 저장된 상태를 의미한다. 또한, 보호대상 메모리 영역 복구 모드라 함은 원본 데이터가 복호화되어 보호대상 메모리 영역에 저장되고, 가짜 데이터를 상기 보호대상 메모리 영역 및 원본데이터보관영역과는 다른 가짜데이터보관영역에 백업된 상태를 의미한다.
먼저, 단일프로세서 환경에 있어서 보안핸들러의 동작 모드에 대해 설명한다.
단일프로세서 환경에서 보호대상 메모리 영역 복구 모드 조건은, 현재 중앙처리장치가 보호대상 메모리 영역 보안 모드이고, 신규 스레드가 허용 스레드이고 신규 메모리 페이지가 보호대상 메모리 영역인 경우(즉, 비허용 스레드가 스왑아웃되고 허용 스레드가 스왑인되려는 경우)이다. 이때, 보안핸들러(123)는 보호대상 메모리 영역 복구 동작을 수행한다. 보호대상 메모리 영역 복구 동작은 도 4에 도시된 바와 같이, 보안핸들러(123)가 보호대상 메모리 영역에 저장된 가짜 데이터를 가짜데이터보관영역에 백업하고(S41), 상기 원본데이터의 보관영역에 저장된 원본 데이터를 상기 보호대상 메모리 영역에 기록한다(S42). 원본 데이터가 암호화되어 원본데이터보관영역에 저장된 경우, 단계 S42에서 복호화한 후 기록한다.
다음, 보안핸들러(123)는 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 직접 실행하고(S43), 상기 중앙처리장치로 하여금 상기 컨텍스트 스위칭 명령의 다음 명령부터 수행하도록 설정하여 리턴한다(S44). 만약, 보안핸들러(123)가 컨텍스트 스위칭 명령을 실행하지 않은 채 컨텍스트 스위칭 명령부터 실행하도록 설정하여 리턴하면, 중앙처리장치가 컨텍스트 스위칭 명령을 수행하려고 하는 과정에서 다시 인터럽트가 발생하게 된다. 따라서, 보안핸들러(123)는 보호대상 메모리 영역 복구 모드를 수행한 후 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 직접 수행한 후, 중앙처리장치로 하여금 그 다음 명령부터 수행하도록 설정하여 리턴한다.
단일프로세서 환경에서 보호대상 메모리 영역 보안 모드 조건은, 현재 중앙처리장치가 보호대상 메모리 영역 복구 모드이고, 신규 스레드가 비허용 스레드인 경우로서, 허용 스레드가 스왑아웃되면서 비허용 스레드가 스왑인되는 경우이다. 이때, 보안핸들러(123)는 보호대상 메모리 영역 보안 동작을 수행한다. 보호대상 메모리 영역 보안 동작은 도 5에 도시된 바와 같이, 보안핸들러(123)는 보호대상 메모리 영역에 저장된 원본 데이터를 원본데이터보관영역에 저장하고(S51), 가짜데이터보관영역에 저장된 가짜 데이터를 보호대상 메모리 영역에 저장하며(S52), 컨텍스트 스위칭 명령을 실행한(S53) 후 상기 중앙처리장치로 하여금 상기 컨텍스트 스위칭 명령의 다음 명령부터 수행하도록 설정하여 리턴한다(S54). 보안핸들러(123)가 컨텍스트 스위칭 명령을 수행한 후 중앙처리장치로 하여금 그 다음 명령부터 수행하도록 설정하여 리턴하는 이유는, 앞서 설명한 보호대상 메모리 영역 복구 동작과 동일하다.
단일프로세서 환경에서 실행 계속 모드 조건은, 현재 중앙처리장치가 보호대상 메모리 영역 보안 모드 상태에서 신규 스레드가 비허용 스레드이거나, 보호대상 메모리 영역 복구 모드 상태에서 신규 스레드가 허용 스레드인 경우로서, 상기 컨텍스트 스위칭 명령에 의한 스왑인 및 스왑아웃이 모두 허용 스레드이거나 비허용 스레드인 경우이다. 이때, 보안핸들러(123)는 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 직접 수행한 후 중앙처리장치로 하여금 그 다음 명령부터 수행하도록 리턴한다.
이 발명에 따르면 단일프로세서 환경에서의 보안핸들러의 실행 지연 모드 조건은 발생하지 않을 수도 있다.
다음, 멀티프로세서 환경에서의 보안핸들러의 동작 모드에 대해 설명한다.
다른 모드 조건에 앞서, 실행 지연 모드 조건을 설명한다. 멀티프로세서 환경, 예컨대 2개의 중앙처리장치 환경에서는 2개의 컨텍스트 스위칭이 약간의 시간 간격을 두고 발생한다. 이때, 제1중앙처리장치에서는 보호대상 메모리 영역에 접근하고자 하는 허용 스레드가 실행 컨텍스트를 획득하고 동시에 제2중앙처리장치에서는 상기 보호대상 메모리 영역에 접근하고자 하는 비허용 스레드가 실행 컨텍스트를 획득하는 경우가 발생하면, 2개의 중앙처리장치가 물리적 메모리 영역을 공유하므로 후자의 비허용 스레드가 보호대상 메모리 영역에 접근할 수 있게 된다. 이 발명에서는 이러한 문제점을 해결하기 위하여, 멀티프로세서 환경에서 실행 지연 모드를 수행한다.
실행 지연 모드 조건은, 제2중앙처리장치에서 보호대상 메모리 영역을 사용하려고 하는 비허용 스레드가 실행 컨텍스트를 획득하고 있는 상태에서, 제1중앙처리장치로부터 발생한 인터럽트의 컨텍스트 스위칭 명령의 분석 결과 신규 스레드가 허용 스레드이고, 신규 메모리 페이지가 보호대상 메모리 영역인 경우이다. 이때, 보안핸들러(123)는 제1중앙처리장치로 하여금 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 다시 수행하도록 설정하여 리턴한다. 그러면, 다시 수행되는 컨텍스트 스위칭 명령에 의해 인터럽트가 다시 발생하여 제1중앙처리장치의 컨텍스트 스위칭이 지연되게 된다.
또 다른 실행 지연 모드 조건은, 제2중앙처리장치에서 허용 스레드가 보호대상 메모리 영역에 접근하는 실행 컨텍스트를 획득하고 있는 상태에서, 제1중앙처리장치로부터 발생한 인터럽트의 컨텍스트 스위칭 명령의 분석 결과 신규 스레드가 비허용 스레드이고, 신규 메모리 페이지가 보호대상 메모리 영역인 경우이다. 이때도 마찬가지로 보안핸들러(123)는 제1중앙처리장치로 하여금 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 다시 수행하도록 설정하여 리턴한다.
다음, 보호대상 메모리 영역 복구 모드 조건은, 제2중앙처리장치가 보호대상 메모리 영역 보안 모드 상태에서, 컨텍스트 스위칭 명령의 신규 스레드가 허용 스레드이면서 신규 메모리 페이지가 보호대상 메모리 영역이고, 이때 제1중앙처리장치의 실행 컨텍스트를 획득한 스레드가 보호대상 메모리 영역에 접근하려 하지 않는 경우이다. 보호대상 메모리 영역 복구 모드 조건이 만족되면, 보안핸들러(123)는 보호대상 메모리 영역에 저장된 가짜 데이터를 가짜데이터보관영역에 백업하고, 상기 원본데이터의 보관영역에 저장된 원본 데이터를 상기 보호대상 메모리 영역에 저장하고, 컨텍스트 스위칭 명령을 실행한 후 상기 제2중앙처리장치로 하여금 상기 컨텍스트 스위칭 명령의 다음 명령부터 수행하도록 설정하여 리턴한다.
보호대상 메모리 영역 보안 모드 조건은, 제2중앙처리장치가 보호대상 메모리 영역 복구 모드 상태에서 컨텍스트 스위칭 명령의 신규 스레드가 허용 스레드가 아니고, 이때 제1중앙처리장치의 실행 컨텍스트를 획득한 스레드가 허용 스레드가 아닌 경우이다. 보호대상 메모리 영역 보안 모드 조건이 만족되면, 보안핸들러(123)는 보호대상 메모리 영역에 저장된 원본 데이터를 원본데이터보관영역에 저장하고, 가짜데이터보관영역에 저장된 가짜 데이터를 보호대상 메모리 영역에 저장하며, 컨텍스트 스위칭 명령을 실행한 후 상기 제2중앙처리장치로 하여금 상기 컨텍스트 스위칭 명령의 다음 명령부터 수행하도록 설정하여 리턴한다.
실행 계속 모드 조건은 제1중앙처리장치가 보호대상 메모리 영역 보안을 수행한 후 제2중앙처리장치의 컨텍스트 스위칭 명령의 신규 스레드가 허용 스레드가 아닌 경우, 또는 제1중앙처리장치가 보호대상 메모리 영역 복구를 수행한 후 제2중앙처리장치의 컨텍스트 스위칭 명령의 신규 스레드가 허용 스레드이고 신규 메모리 페이지가 보호대상 메모리 영역인 경우에 발생한다. 이때, 보안핸들러(123)는 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 직접 수행한 후 제2중앙처리장치로 하여금 그 다음 명령부터 수행하도록 설정하여 리턴한다.
이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만, 이는 본 발명의 가장 양호한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
110 : 하드웨어 120 : 소프트웨어
121 : 하이퍼바이저설치부 122 : 보안핸들러구동조건설정부
123 : 보안핸들러 124 : 하이퍼바이저종료부

Claims (23)

  1. 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치하고 실행하는 하이퍼바이저설치부와;
    중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정부와;
    상기 하이퍼바이저 레벨에서 동작하며, 보호대상 메모리 영역과 허용 스레드 정보를 포함하고, 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들러를 포함하고;
    멀티프로세서 환경에서 상기 보안핸들러는, 한 프로세서에서 상기 인터럽트가 발생하면 상기 신규 스레드의 허용 스레드 여부 및 신규 메모리 페이지 디렉토리의 보호대상 메모리 영역 여부와, 나머지 프로세서에서 실행중인 이전 스레드의 허용 스레드 여부 및 이전 메모리 페이지 디렉토리의 보호대상 메모리 영역 여부에 따라 실행 지연 동작하고, 상기 실행 지연 동작은 상기 이전 스레드가 종료될 때까지 상기 컨텍스트 스위칭 명령을 수행하지 않는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  2. 제 1 항에 있어서, 상기 하이퍼바이저설치부는, 상기 중앙처리장치의 가상화 기능을 활성화하고, 상기 중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고, 상기 변환된 하이퍼바이저 구조체 정보를 할당된 물리 메모리 공간에 복사하고, 가상환경 실행 명령을 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  3. 제 1 항에 있어서, 상기 하이퍼바이저설치부는, 상기 중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고, 상기 변환된 하이퍼바이저 구조체 정보를 할당된 물리 메모리 공간에 복사하고, 가상환경 실행 명령을 실행하는 DPC(Deferred Procedure Call) 설치코드를 상기 중앙처리장치에 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  4. 제 3 항에 있어서, 상기 하이퍼바이저설치부는, 제2중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 제2중앙처리장치에 하이파바이저 구조체를 설치하기 위한 물리 메모리 공간을 상기 제2중앙처리장치에 할당하고, 상기 변환된 제2중앙처리장치의 하이퍼바이저 구조체 정보를 상기 제2중앙처리장치에 할당된 물리 메모리 공간에 복사하고, 가상 환경 실행 명령을 실행하는 DPC 설치코드를 상기 제2중앙처리장치에 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  5. 제 1 항에 있어서, 상기 보안핸들러는 보호대상 메모리 영역 보안 모드와 보호대상 메모리 영역 복구 모드를 포함하고, 상기 보호대상 메모리 영역 보안 모드는 상기 보호대상 메모리 영역의 원본 데이터가 원본데이터보관영역에 저장되고, 상기 보호대상 메모리 영역 복구 모드는 상기 원본 데이터가 상기 보호대상 메모리 영역에 저장되는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  6. 제 5 항에 있어서, 상기 원본 데이터는 암호화된 후 상기 원본데이터의 보관영역에 저장되고, 복호화된 후 상기 보호대상 메모리 영역에 저장되는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  7. 제 5 항에 있어서, 상기 보호대상 메모리 영역 보안 모드는 상기 보호대상 메모리 영역에 가짜 데이터가 저장되고, 상기 보호대상 메모리 영역 복구 모드는 상기 가짜 데이터가 가짜데이터보관영역에 저장되는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템.
  8. 삭제
  9. 삭제
  10. 보안모듈이 컴퓨터 시스템에서 구동중인 리얼 운영체제와 동일한 환경의 가상 환경을 구축하며 하이퍼바이저를 설치하고 실행하는 하이퍼바이저설치단계와;
    상기 보안모듈이 중앙처리장치에 컨텍스트 스위칭 명령이 입력되면 인터럽트를 발생하여 보안핸들러가 호출되도록 설정하는 보안핸들러구동조건설정단계와;
    상기 보안모듈이 보호대상 메모리 영역과 허용 스레드 정보를 확보하고, 상기 인터럽트가 발생하면 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 분석하여 신규 스레드가 상기 허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 있도록 하고 상기 신규 스레드가 비허용 스레드이면 상기 보호대상 메모리 영역의 원본 데이터에 접근할 수 없도록 하는 보안핸들링단계를 포함하고,
    멀티프로세서 환경에서 상기 보안핸들링단계는, 상기 보안모듈이 한 프로세서에서 상기 인터럽트가 발생하면 상기 신규 스레드의 허용 스레드 여부 및 신규 메모리 페이지 디렉토리의 보호대상 메모리 영역 여부와, 나머지 프로세서에서 실행중인 이전 스레드의 허용 스레드 여부 및 이전 메모리 페이지 디렉토리의 보호대상 메모리 영역 여부에 따라 실행 지연 동작하고, 상기 실행 지연 동작은 상기 이전 스레드가 종료될 때까지 상기 컨텍스트 스위칭 명령을 수행하지 않는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  11. 제 10 항에 있어서, 상기 하이퍼바이저설치단계는, 상기 보안모듈이 상기 중앙처리장치의 가상화 기능을 활성화하고, 상기 중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고, 상기 변환된 하이퍼바이저 구조체 정보를 상기 물리 메모리 공간에 복사하고, 가상환경 실행 명령을 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  12. 제 11 항에 있어서, 상기 하이퍼바이저설치단계는, 상기 보안모듈이 상기 중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 중앙처리장치에 하이퍼바이저 구조체를 설치하기 위한 물리 메모리 공간을 할당하고, 상기 변환된 하이퍼바이저 구조체 정보를 할당된 물리 메모리 공간에 복사하고, 가상환경 실행 명령을 실행하는 DPC(Deferred Procedure Call) 설치코드를 상기 중앙처리장치에 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  13. 제 12 항에 있어서, 상기 하이퍼바이저설치단계는, 상기 보안모듈이 제2중앙처리장치의 하이퍼바이저 구조체 정보를 수집하여 하이퍼바이저 구조체 형식으로 변환하고, 상기 제2중앙처리장치에 하이파바이저 구조체를 설치하기 위한 물리 메모리 공간을 상기 제2중앙처리장치에 할당하고, 상기 변환된 제2중앙처리장치의 하이퍼바이저 구조체 정보를 상기 제2중앙처리장치에 할당된 물리 메모리 공간에 복사하고, 가상 환경 실행 명령을 실행하는 DPC(Deferred Procedure Call) 설치코드를 상기 제2중앙처리장치에 실행하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  14. 삭제
  15. 제 10 항에 있어서, 상기 보호대상 메모리 영역 보안 동작은,
    상기 보안모듈이 상기 원본 데이터를 상기 원본데이터의 보관영역에 저장하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  16. 제 10 항 또는 제 15 항에 있어서, 상기 원본 데이터를 암호화한 후 상기 원본데이터의 보관영역에 저장하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  17. 제 10 항에 있어서, 상기 보호대상 메모리 영역 복구 동작은,
    상기 보안모듈이 상기 원본데이터의 보관영역에 저장된 상기 원본 데이터를 상기 보호대상 메모리 영역에 기록하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  18. 제 17 항에 있어서, 상기 보호대상 메모리 영역 복구 동작은,
    상기 보안모듈이 상기 원본데이터의 보관영역에 저장된 상기 원본 데이터를 복호화한 후 상기 보호대상 메모리 영역에 기록하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  19. 제 17 항에 있어서, 상기 보호대상 메모리 영역 복구 동작은, 상기 보안모듈이 상기 보호대상 메모리 영역에 저장된 가짜 데이터를 가짜데이터보관영역에 백업하고,
    상기 보호대상 메모리 영역 보안 동작은, 상기 보안모듈이 상기 가짜데이터보관영역에 백업된 가짜 데이터를 상기 보호대상 메모리 영역에 기록하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.
  20. 제 10 항에 있어서, 상기 보호대상 메모리 영역 보안 동작과 상기 보호대상 메모리 영역 복구 동작은, 상기 보안모듈이 상기 인터럽트를 발생시킨 컨텍스트 스위칭 명령을 수행하고, 상기 중앙처리장치로 하여금 상기 컨텍스트 스위칭 명령의 다음 명령을 수행하도록 설정하는 단계를 포함하는 것을 특징으로 하는 하이퍼바이저를 이용한 프로세스 메모리 보안 방법.

  21. 삭제
  22. 삭제
  23. 삭제
KR1020130005801A 2012-11-28 2013-01-18 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법 KR101467877B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120136389 2012-11-28
KR1020120136389 2012-11-28

Publications (2)

Publication Number Publication Date
KR20140071205A KR20140071205A (ko) 2014-06-11
KR101467877B1 true KR101467877B1 (ko) 2014-12-11

Family

ID=51125754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130005801A KR101467877B1 (ko) 2012-11-28 2013-01-18 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101467877B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691476B2 (en) * 2015-06-27 2020-06-23 Mcafee, Llc Protection of sensitive data
KR101754334B1 (ko) 2015-07-14 2017-07-19 서울대학교산학협력단 하이퍼바이저를 이용한 로깅 방법 및 그 장치
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
KR101213572B1 (ko) * 2010-12-03 2012-12-18 한국과학기술원 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101213572B1 (ko) * 2010-12-03 2012-12-18 한국과학기술원 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법

Also Published As

Publication number Publication date
KR20140071205A (ko) 2014-06-11

Similar Documents

Publication Publication Date Title
Jin et al. Architectural support for secure virtualization under a vulnerable hypervisor
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
Payne et al. Lares: An architecture for secure active monitoring using virtualization
US9628279B2 (en) Protecting application secrets from operating system attacks
US9117081B2 (en) Strongly isolated malware scanning using secure virtual containers
EP2959392B1 (en) Memory introspection engine for integrity protection of virtual machines
US10296470B2 (en) Systems and methods for dynamically protecting a stack from below the operating system
KR101019937B1 (ko) 보안 운영 시스템 스위칭
RU2723668C1 (ru) Фильтрация событий для приложений безопасности виртуальных машин
Li et al. Protecting cloud virtual machines from hypervisor and host operating system exploits
CN106970823B (zh) 高效的基于嵌套虚拟化的虚拟机安全保护方法及***
WO2015175942A1 (en) Method and apparatus for on-demand i/o channels for secure applications
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods
US20200409740A1 (en) Systems, methods, and media for trusted hypervisors
US9824225B1 (en) Protecting virtual machines processing sensitive information
US20150379265A1 (en) Systems And Methods For Preventing Code Injection In Virtualized Environments
Ben Yehuda et al. Protection against reverse engineering in ARM
KR101467877B1 (ko) 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
Zhu et al. HA-VMSI: A lightweight virtual machine isolation approach with commodity hardware for ARM
Pereira et al. Bao-enclave: Virtualization-based enclaves for arm
US11188367B2 (en) Guest operating system physical memory page protection using hypervisor
Zhao et al. FIMCE: a fully isolated micro-computing environment for multicore systems
Xu et al. virtCCA: Virtualized Arm Confidential Compute Architecture with TrustZone

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

Year of fee payment: 5