KR20160043134A - 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치 - Google Patents

가상 머신 및 네스티드 가상 머신 매니저의 인증 론치 Download PDF

Info

Publication number
KR20160043134A
KR20160043134A KR1020167008889A KR20167008889A KR20160043134A KR 20160043134 A KR20160043134 A KR 20160043134A KR 1020167008889 A KR1020167008889 A KR 1020167008889A KR 20167008889 A KR20167008889 A KR 20167008889A KR 20160043134 A KR20160043134 A KR 20160043134A
Authority
KR
South Korea
Prior art keywords
vmm
nested
launch
root
vmfunc
Prior art date
Application number
KR1020167008889A
Other languages
English (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 인텔 코포레이션
Publication of KR20160043134A publication Critical patent/KR20160043134A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

본 발명의 실시 예는 VM들 및 네스티드 VMM들의 인증 론치를 제공한다. 이 실시 예는 VM들 및 네스티드 VMM들에 대한 VMM 보호 론치 컨트롤 메커니즘을 호출하는 인터페이스를 이용하여 이를 행할 수 있다. 이 인터페이스는 구조상 일반적일 수 있다. 다른 실시 예들도 여기에 기술되어 있다.

Description

가상 머신 및 네스티드 가상 머신 매니저의 인증 론치{AUTHENTICATED LAUNCH OF VIRTUAL MACHINES AND NESTED VIRTUAL MACHINE MANAGERS}
"론치 컨트롤" 또는 론치 컨트롤 폴리시(LCP)는 포괄적인 엔드포인트 프로텍션 솔루션의 일부이다. 전통적인 항바이러스 스캔은 공지된 "배드" 소프트웨어의 식별을 목표로 하는 "블랙 리스팅" 기법을 이용한다. 공격 시그너처는 플랫폼 자원을 검색할 때 스캔 엔진을 안내한다. 훼손 자원(compromised resources)은 교정을 위해 플래그(flag)된다. "화이트 리스팅" 은 교정을 위한 리스트에 없는 자원들을 플래그하는 스캔 엔진에 제공되는 공지된 "굿" 소프트웨어의 리스트를 생성하는 일을 포함한다. 블랙 및 화이트 리스팅은 함께 시스템의 모든 자원을 설명하기 위한 일을 할 수 있다. 론치 컨트롤은 멀웨어가 시스템 상에서 실행할 수 있는 기회를 얻지 못하도록 화이트 리스크 스캔 엔진을 시스템 론치 절차에 통합한다. 예를 들오, 화이트리스트는 실행 환경(예를 들어, 동적으로 론치된 환경)을 부트(boot)하거나 론치(launch)하는데 이용되는 코드 및 데이터(예로 해시)의 기준 측정치(reference measurements)를 포함할 수 있다. 그래서, 론치 컨트롤은 "트러스티드 부트(trusted boot)"가 발생하는 것을 보장하는데 이용될 수 있다.
트러스티드 부트 이용은 부트 플로우의 모든 스테이지에 영향을 줄 수 있고 "루트-오브-트러스트(roots-of-trust)"라고도 알려져 있는 트러스티드 하드웨어에 기반을 두고 있을 수 있다. 트러스티드 실행 기술(TXT)은 가상 환경에 트러스티드 부트 이용을 구현하는데 이용될 수 있는 론치 컨트롤 및 루트-오브-트러스트 기술의 한 예이다. 하드웨어 루트-오브-트러스트는 트러스티드 부트 이용이 멀웨어가 위의 계층들에게 합법적인 하드웨어인 것처럼 행세할 가능성을 없애거나 줄이는데 도움을 준다. TXT는 트러스티드 환경만이 론치되도록 보장하는데 론치 컨트롤 폴리시를 이용하는 동적 RTM(root of trust for measurement)을 실행한다. 바꿔말하면, TXT는 한 플랫폼에서 상이한 실행 환경들을 위해 실행되는 무결성 검사의 시퀀스에서의 출발점일 수 있다. 그래서, TXT는 보안 출발점을 마이크로코드로 제공할 수 있다. 예를 들어, TXT 론치 컨트롤과 같은 다양한 론치 컨트롤은 가상 머신 매니저(VMM) 런처를 신뢰할 수 있게 보장해 준다.
VMM은 다수의 실행 환경을 컴퓨터가 지원할 수 있게 해주는 호스트 프로그램을 포함할 수 있다. 예를 들어, VMM은 다수의 운영 시스템이 동일한 CPU 상에서 안전하게 수행되게 해주고 CPU 활용을 높여줄 수 있는, 단일, 물리적 머신(예를 들어, 서버)를 에뮬레이션을 통해 나누기 위한 수단을 제공할 수 있다. VMM은 VM들을 관리할 수 있다. VM은 물리적 머신과 같은 명령어를 실행하는 머신(즉, 컴퓨터)의 소프트웨어 구현을 포함할 수 있다.
다시 TXT 론치 컨트롤에 관해서, 그러한 론치 컨트롤은 차후에 론치된 VMM 기반 구조(예로, 가상 머신들(VM들), 네스티드 VMM들, 네스티드 VM들 및 운영 시스템(OS) 환경들)가 역시 신뢰할 수 있는 것임을 보장하지 못한다. 그래서, 실제로는 론치 컨트롤은 단일 VMM을 론치하는데 이용될 수 있다. 그러나, VMM이 수행되면, TXT 모델 특정 레지스터들(MSR들)은 VMX-루트를 이용하는 VMM이 활성인 동안은 TXT가 작동되지 않도록 설정된다. 결과적으로, 네스티드 VMM이 론치될 때 TXT는 이용될 수 없고(예로, GETSEC(SENTER) 코맨드가 실패하고) 네스티드 VMM은 안전하게 론치될 수 없다. 이때 VM들과 네스티드 VMM들이 론치 컨트롤 폴리시의 적용이 없이 로딩되어, 보안 파괴의 잠재적인 기회가 생기게 된다.
본 발명의 실시 예들의 특징부 및 장점은 첨부된 특허청구범위, 하나 이상의 실시 예들에 대한 다음의 상세한 설명, 및 대응 도면으로부터 명백해질 것이다.
도 1은 본 발명의 실시 예의 개략적인 흐름도이다.
도 2는 본 발명의 실시 예의 다양한 양태들의 조직화를 나타내는 블록 도이다.
도 3은 본 발명의 실시 예들에 이용되는 시스템을 포함한다.
다음의 설명에서, 수많은 특정 세부사항이 제시되지만 본 발명의 실시 예들은 이들 특정 세부사항 없이도 실시될 수 있다. 잘-알려진 회로, 구조 및 기술들은 설명의 이해가 불명료해지지 않도록 상세하게 보여주지 않았다. "실시 예", "다양한 실시 예" 등은 특정한 특징부, 구조, 또는 특성을 포함하는 것으로 기술된 실시 예(들)를 나타내지만 모든 실시 예가 반드시 이들 특정 특징부, 구조, 또는 특성을 포함하는 것은 아니다. 일부 실시 예들은 다른 실시 예에서 기술된 특징부들의 일부 또는 전부를 포함할 수 있고 또는 포함하지 않을 수도 있다. "제1", "제2", "제3" 등은 공통 객체를 기술하며 동종 객체들의 상이한 사례가 지칭되는 것을 나타낸다. 그러한 형용사는 그렇게 기술된 객체들이 시간상으로, 공간상으로, 랭킹 순서로 또는 임의 다른 순서로 주어진 순서에 있어야만 하는 것을 의미하지 않는다. "연결"은 요소들이 서로 직접 물리적으로 또는 전기적으로 접촉하는 것을 나타낼 수 있고, "결합"은 요소들이 서로 공동-작업 또는 상호작용하는 것을 나타낼 수 있지만, 이들은 직접 물리적으로 또는 전기적으로 접촉 상태일 수도 있고 그렇지 않을 수도 있다. 또한, 유사하거나 동일한 번호는 상이한 도면들에 있는 동일 또는 유사한 파트를 지정하는데 이용될 수 있지만, 그렇게 하는 것이 유사한 또는 동일한 번호들을 포함하는 모든 도면이 단일 또는 동일한 실시 예를 구성한다는 것을 의미하지는 않는다.
본 발명의 실시 예는 VM들 및/또는 네스티드 VMM들의 인증된 론치를 제시한다. 이 실시 예는 VM들 및 네스티드 VMM들에 대한 VMM 보호 론치 컨트롤 메커니즘을 호출(invoke)하는 인터페이스를 이용하여 그러한 일을 할 수 있다. 이 인터페이스는 구조상 일반적인 것일 수 있다. 일부 실시 예들은 VM들 및 VMM들을 커버할 수 있게 확장된 TXT 론치 폴리시를 이용할 수 있다.
도 1은 본 발명의 실시 예에 대한 개략적인 흐름도를 포함한다. 도 2는 본 발명의 실시 예의 다양한 양태의 구조화를 나타내는 블록 도를 포함하고 있다. 도 1 및 도 2는 이하에서 서로 함께 설명되지만 각 도면의 실시예들이 반드시 서로 작동하는 것으로 한정되지는 않는다.
도 2는 간단하게 이하 좀더 상세히 논의되듯이, 일군의 이미지(201), 이미지들(201)에 대응하는 그들의 전형적인 화이트리스트를 갖고 있는 론치 컨트롤 폴리시(211), 및 화이트리스트(211) 내의 측정치에 대비해서 후보 코드 이미지들(201)을 인증하기 위한 코드를 포함하는 코드 확인 모듈(예를 들어, 론치 컨트롤 모듈들(LCPM))(221)을 포함하는 조직화 표현(200)을 포함한다. 일 실시 예에서, LCPM들은 루트 VMM 권한들로 실행하는 동적 모듈러 모드 객체이다. 플랫폼 구성 레지스터들(PCR들)(231)은 이미지 측정치를 저장한다.
초기에는 루트 VMM(VMM0)(155)이 부트된다. 이 부트는 임의 수의 보안 부트 메커니즘을 통해서 구현된 보안 부트일 수 있다. 위에서 다룬 것과 같은 하나의 그러한 메커니즘은 TXT 론치 컨트롤을 포함한다. TXT 론치 컨트롤에 관한 정보는 최소한 http://software-intel-com/en-us/articles/intel-trusted-execution-technology-a-primer/, http://download-intel-com/ technology/security/downloads/315168-pdf에서는 물론이고 다른 공공 이용가능 위치에서 구할 수 있다.
루트 VMM(VMM0)을 안전하게 론치하는 것은 수개의 액션을 포함할 수 있다. TXT(226)는 SINIT ACM(206)과 같은 특정 이미지의 인증을 보장하기 위한 론치 컨트롤 폴리시로서 작용할 수 있다. SINIT ACM은 보안 부트 프로세스에 이용된 인증된 코드 모듈에 관한 것이다. SINIT ACM(206)의 측정치는 PCR 17(236)에 저장된다. PCR은 보안 관련 정보의 암호 해시(예로, VMM과 같은 트러스티드 실행 환경에 의해 실행된 코드 및 이를 론치하는데 이용된 로더 코드(loader code)의 해시)를 포함하는 트러스티드 플랫폼 모듈(TPM) 레지스터이다.
VMM0의 보안 론치 동안, LCP0(215)은 블록(225)에서 SINIT ACM을 이용하여 루트 VMM0(205) 이미지에 비교될 수 있다. 또한, LCP0(215) 및 SINIT ACM(225)은 LCPM1, LCPM2, LCPM3(205) 이미지를 인증하는데 이용될 수 있고, 이들 중 일부는 이하 논의되는 나중 스테이지(예로, 네스티드 VMM 부트)에 이용될 수 있다. 이들 측정치는 VMM0에 대한 PCR(18) 및 LCPM1, LCPM2, LCPM3 각각에 대한 PCR(19, 20, 21)에 저장된다.
간단한 어사이드(brief aside)로서, 저장에 이용된 바로 그 PCR들은 다른 실시 예들에서도 구성될 수 있고 변경될 수 있다. 예를 들어, PCR 할당 가이드라인은 규격(specification)에 개괄될 수 있다. 그러한 규격은 트러스티드 컴퓨팅 그룹(TCG) PC 클라이언트 규격 및 TPM 규격을 포함하며, 이들은 동적 루트 오브 트러스트(예로, TXT)에 의해 이용되는 PCR들(17, 18, 19, 20 및 21)을 비축한다. PCR(17)은 ACM을 측정하기 위해 SENTER에 의해 이용될 수 있다. ACM은 VMM 런처를 측정하기 위해 PCR(18)을 이용할 수 있다. VMM 런처는 VMM을 측정하기 위해 PCR(18)과 선택적으로 PCR(19)을 이용할 수 있다. VMM은 TPM을 가상화할 수 있고 그러므로 VM들을 측정하기 위해 다른 PCR들(및 그를 위한 LCPM들)을 이용할 수 있다. PCR들(20 및 21)은 또한 VMM에 의한 사용으로 이용될 수 있다. 더욱이, 다수의 LCPM 측정치는 동일 PCR에 포함될 수 있다. 그래서, PCR들의 이용은 다양한 실시 예에 따라서 구성되고 변경될 수 있다.
도 1을 참조하면, VM0(105)와 같은 부트스트랩 로더는 블록(110)을 통해서 가상적으로 부트된다. 블록(115)은 가상 머신 VM1(104)과 같은 엔티티(도 2의 요소(204)에서 발견됨)를 부팅하는 프로세스를 시작한다. ("엔티티"는 또한 네스트드 VMM일 수 있지만 VM1은 이 예에서 설명의 목적을 위해 이용될 것이다.) VM1(104)이 론치될 때, 부트스트랩 로더 VM0(105)은 VM1(104)을 론치하는 LCPM1(124)(도 2에서는 224)으로 이끄는 리프(leaf)을 명시하는 VMFUNC 인터페이스 명령어와 같은 명령어를 호출한다. VMFUNC 인터페이스는 인터럽트를 방지하거나 VM 컨트롤 비트를 설정할 수 있어서, LCPM1(224)이 측정 프로세스의 어떠한 인터럽트 없이 실행되도록 허용될 것이다. 이러한 인터페이스는 또한 측정이 다른 프로세서에 의한 간섭없이 이루어질 수 있게 시스템 상의 다른 프로세서를 정지(quiesce)시킬 수 있다. 더욱이, VMFUNC는 마이크로코드가 이미, 예를 들어, TXT의 이용을 기반으로 무결성 검사 및 무결성 검사 컨트롤을 실행하기 위한 안전한 장소로 고려될 수 있음을 인정한다. VMFUNC는 이하 더 논의된다.
따라서, 블록(130)을 통해서, 실행 컨트롤은 LCPM1(124)(도 2에서는 요소 224)로 전달된다. 일 실시 예에서, LCPM1은 VM1 상에서 수행되는 VM으로서 작동한다. LCPM1(124)은 메모리 내의 VM1(104)의 위치를 찾고 LCPM1을 위해 의도된 LCP1(114)(도 2에서는 요소 214)를 기반으로 무결성 측정을 실행하며 계산된 측정이 LCP1 내의 폴리시들 중 하나에 의해 수락된다고 확인한다. LCP는 화이트리스트를 포함할 수 있고, 이는 트러스티드 서버로부터 안전할 수 있는 예상 소프트웨어 이미지들을 기술한다. 구체적으로, 일 실시 예에서, LCPM1은 확장 페이지 표들(EPT들)에 위치한 보호 메모리와 같은 메모리 내로 LCP1을 읽어들인다. EPT들은 VMFUNC 인터페이스에 관련해서 이하 아주 상세하게 논의된다.
블록(140)에서 VM1의 측정은 TPM(145) 또는 다른 그러한 하드웨어 보증 모듈에 포함되어 있는 PCR들(예로, PCR 8)(234)내로 확장된다. TPM은 안전한 저장 및 안전한 리포팅에 연관된 다양한 보안 성능을 구현하는 보안 코-프로세서이다. TPM과 같은 암호 프로세서에 관한 세부사항은 적어도: http://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdf 에서 구할 수 있는 Sundeep Bajikar에 의한 "노트북 PC들 - White Paper의 보안 기반의 트러스티드 플랫폼 모듈(TPM)"에서 발견될 수 있다. 블록(160)에서 PCR 로그는 갱신된다. 실시 예들은 VMFUNC, TPM들 등을 이용한 작업에 한정되지 않으며, 그러한 요소들은 단지 예시의 목적으로 이용된다. 이후, VM1은 루트 VMM(155)(도 2의 요소(205) 내에 포함되어 있음)에 의한 실행을 위해 스케줄링된다. 블록(165)에서, VMFUNC(exit)가 실행된다.
위에 논의된(도 1 및 2에 관련해서) 프로세스 실시 예들은 설명 목적을 위해 이용된 VM1 대신에 네스티드 VMM에도 적용될 수 있다. 이에 따라서, VM들(예로, VM1) 및 네스티드 VMM들 둘 다는 도 2의 블록(204)에 포함된다. 다른 말로, 도 1은 VM1의 안전한 부트를 기술하고 있지만 동일한 프로세스가 네스티드 VMM을 안전하게 부트하는데 이용될 수 있을 것이다.
도 2에 나타낸 바와 같이, 추가적인 가상화 계층들이 안전해질 수 있다. 예를 들어, LCPM2(223)를 통해서, 네스티드 VM들(203)이 측정되어 LCP2(213) 내에 포함된 측정치에 비교될 수 있다. 측정치는 PCR들(233)을 통해서 저장될 수 있다. 더욱이, LCPM3(221)을 통해서, 드라이버, 라이브러리 및 실행 코드(202)가 측정되어 LCP3(212) 내에 포함된 측정치에 비교될 수 있다. 측정치는 PCR들(232)을 통해서 저장될 수 있다.
네스티드 VM들에 관한 좀더 구체적인 예로, 부트스트랩 로더 VM0(105)는 블록(110)을 통해서 가상적으로 부트된다. 블록(115)은 네스티드 VM2(203)을 부팅하는 프로세스를 시작한다. VM2(203)가 론치될 때, 부트스트랩 로더 VM0(105)는 VM2(203)를 론치하는 LCPM2(223)로 이끄는 리프(leaf)를 명시하는 VMFUNC 인터페이스 명령어와 같은 명령어를 호출한다. 블록(130)을 통해서, 실행 컨트롤은 LCPM2(223)로 전달되고, 이는 메모리 내의 VM2(203)의 위치를 찾아내고 LCPM2를 위해 의도된 LCP2(213)을 기반으로 무결성 측정을 실행한 다음 계산된 측정치가 LCP2 내의 폴리시들 중 하나에 의해 수락되는 것을 확인한다. 블록(140)에서, VM2의 측정치는 PCR들(233) 내로 확장되고, 이들은 TPM에 포함되어 있다. 블록(160)에서, PCR 로그(log)는 갱신된다. 이후, 블록(155)에서 VM2는 루트 VMM(155)에 의한 실행을 위해 스케줄링된다. 블록(165)에서, VMFUNC(exit)가 실행된다.
바로 위에 기술된 프로세스 실시예(도 1 및 도 2에 관련해서)는 다른 엔티티 내에 더 내포되어 있는 네스티드 VMM에도 적용될 수 있다.
그래서, 블록(110)은 LCPM(225)을 론치하는 루트 VMM(105)로 이어진다. LCPM은 보호 메모리에 로딩될 VM들에 대한 이미지들로 LCP를 평가하기 위한 것이다. 유사하게, 네스티드 VMM들을 위한 LCPM도 로딩할 수 있다(비록 도 1에는 구체적으로 도시되어 있지 않을지라도). 루트 VMM LCP는 LCPM들의 무결성을 입증하는데 이용될 수 있다. 더욱이, VM 또는 네스티드 VMM은 VM 또는 네스티드 VMM이 루트 VMM, 심지어는 안전하게 부트된 루트 VMM으로부터 론치될 때보다 더 안전하게 론치된다. 대신에, 루트 VMM은 직접 의존되지 않지만(즉, 우회(bypass)되지만) 대신에 TXT 하드웨어 기반 시퀀스(또는 다른 하드웨어 보증 모듈 기반 방법)는 VM 또는 네스티드 VMM을 부트하기 위해 의존된다. 일 실시 예에서, 통상적으로 단지 루트 VMM과의 작업에 한정된 론치 컨트롤 메커니즘, 툴 및 기반 구조는 VM들 및 VMM들과 함께 작업할 수 있게 확장된다. 예를 들어, 론치 컨트롤은 이제 TXT 및 유사한 보안 기법을 넘어서서 확장된다. 실시 예들은 네스티드 VMM 및 VM 환경으로, 예를 들어, TXT 론치 컨트롤 및/또는 BIOS 트러스티드 부트 메커니즘에 의해서 시작된 화이트리스트 검사 프로세스를 계속한다. 트러스티드 시스템 부트, 트러스티드 루트 VMM 부트, 및 트러스티드 네스티드 VMM 및/또는 VM 부트를 기반으로, 실시 예들은 트러스트 브로커 서비스에, 다시 루트-오브-트러스트에 도달하는 연속 체인-오브-트러스트를 제공할 수 있다. 이러한 체인-오브-트러스트는, 예를 들어, PCR 로그의 내용을 기반으로 구축될 수 있다.
VMFUNC 명령어에 관해서, 통상적으로 VM들 및 네스티드 VMM들은 론치 컨트롤 폴리시를 적용함이 없이도 로딩된다. 더구나, VMM 벤더들은 론치 컨트롤을 위한 공통 구조의 인터페이스에 의존하지 않는다. 그러나, 본 발명의 다양한 실시 예에 따라서, 루트 VMM은 위에 기술된 바와 같은 론치 컨트롤 폴리시 모듈을 호출하기 위해서 VMFUNC 콜(call)(또는 그의 기능적인 등가물)을 이용할 수 있다. LCPM은 LCP 폴리시들에 포함된 화이트리스트들을 구문 분석하고 입증하는 방법을 이해한다. LCP 폴리시들은 로딩된 이미지의 유형(예로, VM 또는 네스트티드 VMM)에 특정될 수 있다. LCPM은 루트 VMM의 적절한 보호를 실행한다. VMFUNC 콜은 LCP 입안자가 VMM들 및 VM들의 다양한 벤더 구현에 일관성 있게 걸쳐 있거나 작용하는 LCP들을 구축할 수 있도록 일관성 있는 벤터 독립 방식에 따라서 VM들 및 네스티드 VMM들이 호출되는 것을 보장해 준다. 그래서, VMM 벤더는 루트 또는 네스티드 VMM으로 기능하는 VMM들을 위해 상당히 다른 생산/설치 재고 관리 유닛(SKU들)을 유지할 필요가 없다.
또한 VMFUNC에 관해서, VMFUNC는 EPT 메모리 보호를 이용하는 구조적인 인터페이스이다. EPT는 메모리 관리 유닛(MMU)에 대한 가상화 기술이다. 이러한 특징부가 활성일 때, 보통의 IA-32 페이지 표들(컨트롤 레지스터 CR3으로 참조됨)은 선형 어드레스들을 게스트-물리적 어드레스로 번역한다. 페이지 표들(즉 EPT 표들)의 개별 세트는 게스트-물리적 어드레스들을 메모리를 억세스하는데 이용되는 호스트-물리적 어드레스로 번역한다. 그 결과, 게스트 소프트웨어는 그 자신의 IA-32 페이지 표들을 수정하고 직접 페이지 결함을 처리할 수 있게 허용될 수 있다. 이는 VMM이 EPT 없이 가상화 오버헤드의 주요 소스인 페이지-표 가상화에 연계된 VM 엑시트(exit)을 피할 수 있게 해준다. VMFUNC는, 예를 들어, EPT를 이용하여 LCP1(114) 및 LCPM1(124)를 분리함으로써 EPT를 이용한다. 그렇게 하는데 있어서, LCPM1은 VMFUNC 엔트리 포인트 밖에서 발원하는 기록 작업으로부터 보호된다. 측정치들은 이후 TPM에 포함된 레지스터들에 저장될 수 있다. 더욱이, EPT는 단지 특정 하드웨어 스레드상에서 활성일 수 있고, 그래서 다른 하드웨어 스레드 상에서 실행될 수 있는 다른 소프트웨어가 LCP1의 측정치를 부당 변경하거나 간섭하는 일이 허용되지 않는다.
일 실시 예에서, EPT들은 LCPM들을 위해 메모리 내의 경계를 명시하는데 이용될 수 있다. 예를 들어, LCPM 코드가 구체적으로 폴리시 시행 규칙을 구현하기 때문에 VM이 로딩될 때는 LCPM 코드를 재-검사하는(모든 VMM 코드를 검사하지 않고) 것이 유리할 수 있다. 이러한 검사는 VMM 코드를 재-로딩하는 것이 아니다. 대신에, 검사는 메모리 내 검사이다(예로, EPT 내의 메모리 페이지들은 다시 해시되어 메모리 내 이미지에 대응하는 화이트리스트에 비교된다). PCR들(19, 20, 21)은 이들 PCR이 VMM의 전체 측정치를 포함하고 있지 않기 때문에(이는 PCR(18)에는 포함될 수 있음) 이들 재-측정에 이용될 수 있다.
특히, 일 실시 예에서, EPT는 특정 속성 및/또는 이용을 갖는 메모리 페이지들의 그룹을 정의하는데 이용된다. 이 실시 예는 LCPM(예로, 코드) 및 LCP(예로, 데이터) 기능성을 구현하는 VMM 코드 및 데이터 페이지들의 서브세트를 구축하는데 EPT를 이용한다. VMFUNC 벡터들이 VMM을 제어할 때, VMFUNC 내의 새로운 리프는 EPT를 입증하는데 이용될 수 있고, 이는 LCPM을 포함하고, LCP 페이지는 첫째로 론치되기 때문에 변경되지 않았다. 일 실시 예는 이를 어드레스 레인지와 유사한 방식으로 구현할 수 있다. LCPM 페이지들은 이들이 이동되지 않거나, 길어지거나 및/또는 짧아지지 않았음을 보장하기 위해서 검사되고/확인될 수 있다. VMFUNC가 무결성 폴리시를 시행하는데 이용되면, 예상 LCPM 및 LCP 측정치는 새로운 리프에 대한 파라미터로서 VMFUNC로 전달될 수 있다. VMFUNC는 실행을 LCPM 코드로 전달하시기 전에 EPT 측정치들을 비교할 수 있다. VMFUNC는 이 비교가 매치(match)를 산출하지 않으면 결함(fault)을 나타낼 수 있다.
일 실시 예에서, 루트 VMM 기능은 VMFUNC의 호출이 Ring0에서 실행되고 LCPM들의 실행은 Ring1에서 실행되도록 CPU 링 구조에 따라서 분할될 수 있다. VMM 기능의 나머지는 Ring2 및 Ring3에서 구현될 수 있다. 이러한 구현은 하드웨어 메커니즘이 LCPM들 및 VMFUNC 호출을 보호/강화할 수 있게 해준다. LCPM을 지원하기 위한 VMFUNC 리프(leaf)는 이러한 특정 리프가 단지 ring0에서 게스트 VMM에 의해 호출될 수 있게 강제할 수 있다. 일 실시 예에서 루트 VMM은 TXT를 이용할 것이다. 예를 들어, TXT는 VMM/VMM 런처를 론치하는데 이용될 것이다. 일단 론치되면, VMM 내의 LCPM은 게스트를 론치하는데 이용될 것이다. 그래서, 링들은 VMM 및 VMM 기반 구조 내의 다른 비-보안 관련 기능에서 론치 기능을 더 격리하여 분리하는데 이용될 수 있을 것이다.
실시 예들은 확인된 부트 환경 및 측정된 부트 환경을 포함해서 수개의 환경에 적합하다.
확인된 부트는 예상 소프트웨어 이미지를 기술하는 트러스티드 서버로부터 화이트리스트를 승낙한다. 클라이언트 플랫폼의 트러스티드 컴포넌트는 소프트웨어 이미지를 실행하기 전에 검사하여 이를 화이트리스트에 비교한다. 매치가 있으면, 이 컴포넌트는 실행할 수 있게 허용된다. 그렇지 않으면, 교정 액션이 실행된다. 이러한 작업을 실행하는 컴포넌트는 때로는 확인을 위한 루트-오브-트러스트라 불린다. 이는 하드웨어 보증 모듈(예로, TPM)을 필요로 하지 않는다.
그러나, 측정된 부트는 소프트웨어 이미지를 실행하기 전에 검사하여 이를 안전한 저장 위치에 저장한다. 이는 부트를 제한하거나 변경하는 화이트리스트를 갖지 않을 수 있다. 대신에, 화이트리스트는 클라이언트가 억세스하기를 원하는 서버 호스팅 자원에 유지되어 있다. 소프트웨어의 무결성 리포트는 서버 승인 억세스의 선 조건으로서 서버에 전달된다. 서버에 대한 리포트의 제시는 때로 보증(attestation)이라 불린다. 서버는 클라이언트가 심각한 위험을 제기하는지 여부를 판정하기 위해 보증 리포트를 화이트리스트에 비교한다. 위험을 제기한다면 망 연결은 클로우즈된다. 위험을 제기한다면 네트워크 연결은 클로우즈된다. 이는 하드웨어 보증 모듈(예로, TPM)을 이용할 수 있다.
좀더 상세히 말하면, 다양한 실시 예에서, 확인된 부트는 직접 무결성 폴리시를 시행한다(즉, 이는 무결성 폴리시를 충족하지 못하는 코드의 실행을 방지할 수 있다). 그러나, 측정된 부트는, 예를 들어, 무결성 폴리시가 실제로 원격 서버에 있으나 클라이언트가 알지 못할 수 있기 때문에 무결성 폴리시를 충족하지 않는 코드의 실행을 허용할 수 있다. 그러므로, 클라이언트는 측정치를(예로, TPM PCR에) 안전하게 저장할 수 있고, 이는 나중에 "인용(quoted)"되며 "보증"의 일부로 서버에 전달된다. 서버는 보증에서 발견된 실제 측정치를 화이트리스트의 로컬 카피의 측정치에 비교할 수 있다. 강제(enforcement)는 서버에 의해서 망 연결을 끊거나 갱신 서비스가 클라이언트(예로, PC)를 재구성하려고 시도할 수 있는 교정 망에 클라이언트를 배정함으로써 적용될 수 있다.
그래서, 일 실시 예는 제1 VMM을 론치하고; 제2 VMM의 론치를 인증하고; 제2 VMM을 제1 VMM에 네스트(nest)한다. 네스티드 VMM의 인증된 부트 대신에 또는 그 외에, 실시 예는 제1 VM의 론치를 인증하고; 제1 VM을 제1 VMM(예로, 루트 VMM) 또는 네스티드 VMM으로 관리할 수 있다. 바로 앞의 시나리오, 루트 VMM 또는 다른 VMM 또는 VM을 호스트하는 VMM에서, 해당 루트 또는 호스트 VMM은 비-재진입성 보안 부트를 통해서(예로, TXT 론치를 통해서) 부트될 수 있다.
일 실시 예는 (a) 제2 LCPM을 호출하고 (b) 하드웨어 보안 보증 모듈(TPM과 같은, 그러나 이에 한정되지 않음)을 이용하면서 루트 VMM을 우회함으로써 제2 VMM의 론치를 인증할 수 있다.
루트 VMM의 "우회(bypassing)"에 대한 예에 관해서, 루트 VMM은 네스티드 VMM들을 이들이 마치 VM들인 것처럼 취급할 수 있다. 그래서, 론치 컨트롤 VM들 및 VMM들은 루트 VMM 관점에서 보면 유사하다. 네스티드 VMM들에 초점을 맞추어 보면, 네스티드 VMM은 실행될 때 로딩할 VM들을 식별한다. 네스티드 VMM을 측정하기 위한 LCPM 코드는 네스티드 VMM 페이지 범위 내에 포함되어 있다. 그래서 VMFUNC는 네스티드 VMM을 기술하는 EPT가 루트 VMM을 기술하는 EPT와 다름을 보장할 수 있다. 이와 같이, 루트 VMM이 사전 동의하면(opts-in) 루트 VMM은 다소간 이 동작에 대해 우회될 수 있다. 이는, 예를 들어, VMFUNC 및 네스티드 VMM을 부팅하기 위한 부트스트랩 VM0(도 1 참조)의 이용은 물론이고 EPT 이용에 기반을 둘 수 있다.
일 실시 예는 제2 LCPM을 통해서, 네트티드 제2 VMM에 연관된 제2 LCP를 평가할 수 있다. 이 실시 예는, 제2 LCPM을 통해서, 제2 VMM의 무결성 측정을 실행하고 이 측정을 제2 LCP를 통해서 인증할 수 있다. 이 실시 예는 이 측정을 TPM 또는 다른 하드웨어 보증 모듈에 포함된 PCR로 확장할 수 있고; 이 측정을 PCR로 확장하는 것을 기반으로 로그(log)를 갱신할 수 있다.
일 실시 예는 제2 LCPM을 보호 메모리(예로, EPT들)에 로딩할 수 있고, 제2 LCPM을 실행할 수 있으며, 여기서 제2 LCPM은 루트 VMM 권한을 갖는다. 일 실시 예는 시스템이, 제2 LCPM을 통해서, 제2 LCP에 포함된 화이트리스트를 인증할 수 있게 해주며, 여기서 제2 LCP는 VM들이 아니라 VMM들에 특정된 것이다. 또한, 일 실시 예는 제1 VMM에 연관된 제1 LCP를 기반으로, 제1 VMM을 부팅하면서 제2 LCP를 인증할 수 있다. 더욱이, 일 실시 예는 제2 VMM(예로, 구조상 중립 또는 벤더 중립)을 위해 구체적으로 구성되지 않았으나 VMM들 및 네스티드 VMM들을 인터페이스할 수 있게 구성된 보안 인터페이스를 통해서 제2 VMM의 론치를 인증할 수 있다.
실시 예들은 많은 다양한 시스템 유형으로 구현될 수 있다. 이제, 도 3을 참조해 보면, 본 발명의 실시 예에 따른 시스템의 블록 도가 도시되어 있다. 멀티프로세서 시스템(500)은 포인트-투-포인트 상호연결 시스템이며, 포인트-투-포인트 상호연결(550)을 통해서 연결된 제1 프로세서(570)와 제2 프로세서(580)를 포함한다. 각 프로세서(570, 580)는 멀티코어 프로세서일 수 있다. 용어 "프로세서"는 전자 데이터를 레지스터들 및/또는 메모리에 저장될 수 있는 다른 전자 데이터로 변환하기 위해서 레지스터들 및/또는 메모리로부터의 전자 데이터를 처리하는 임의 장치 또는 장치의 부분을 나타낼 수 있다. 제1 프로세서(570)는 메모리 제어기 허브(MCH) 및 포인트-투-포인트(P-P) 인터페이스들을 포함할 수 있다. 유사하게, 제2 프로세서(580)는 MCH 및 P-P 인터페이스들을 포함할 수 있다. MCH들은 프로세서들을 각자의 메모리, 즉 메모리(532) 및 메모리(534)에 연결할 수 있고, 이는 각자의 프로세서에 지역적으로 부착된 메인 메모리(예로, 동적 랜덤 억세스 메모리(DRAM))의 일부일 수 있다. 제1 프로세서(570) 및 제2 프로세서(580)는 각각 P-P 상호연결을 통해서 칩셋(590)에 연결될 수 있다. 칩셋(590)은, 예를 들어, RSA 가속기, 난수 생성기, 키, 증명서, PCR들, 정적 RAM, 플래시 메모리, 모노토닉 카운터, 디지털 서명 알고리즘 등을 포함하는 TPM 또는 암호 프로세서를 포함할 수 있다. 그러한 칩셋의 일례에 관한 세부사항은 적어도 http://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdf에서 구할 수 있다. 실시 예들은 임의 한 유형의 보안 엔진 또는 암호 프로세서와 작용하는 것에 한정되지 않으며 대신에 다양한 벤더로부터 나온 다양한 구조의 다양한 이산 및/또는 통합 보안 엔진과 작용할 수 있다. 칩셋(590)은 P-P 인터페이스들을 포함할 수 있다. 더욱이, 칩셋(590)은 인터페이스를 통해서 제1 버스(516)에 연결될 수 있다. 다양한 입/출력(I/O) 장치(514)는 버스 브릿지(518)와 함께 제1 버스(516)에 연결될 수 있고, 버스 브릿지(518)는 제1 버스(516)를 제2 버스(520)에 연결한다. 예를 들어, 일 실시 예에서, 키보드/마우스(522), 통신 장치(526), 및 코드(530)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 장치와 같은 데이터 저장 유닛(528)을 포함해서, 다양한 장치가 제2 버스(520)에 연결될 수 있다. 더욱이, 오디오 I/O(524)도 제2 버스(520)에 연결될 수 있다.
실시 예들은 코드로 구현될 수 있고, 명령어를 실행할 수 있게 시스템을 프로그램하는데 이용될 수 있는 명령어가 저장되어 있는 비-일시 저장 매체에 저장될 수 있다. 저장 매체는 플로피 디스크, 광학 디스크, 고체 상태 드라이브(SSD), 컴팩 디스크 판독-전용 메모리(CD-ROM), 컴팩 디스크 리라이터블(CD-RW), 및 자기-광학 디스크를 포함하는 임의 유형의 디스크, 판독-전용 메모리(ROM), 동적 랜덤 억세스 메모리(DRAM), 정적 랜덤 억세스 메모리(SRAM)와 같은 랜덤 억세스 메모리(RAM), 소거가능 프로그램어블 판독-전용 메모리(EPROM), 플래시 메모리, 전기적 소거가능 프로그램어블 판독-전용 메모리(EEPROM)와 같은 반도체 장치, 자기 또는 광학 카드, 전자 명령어를 저장하기에 적합한 임의 다른 유형의 매체를 포함할 수 있고, 이들에 한정되지 않는다. 본 발명의 실시 예들은 여기서 명령어, 기능, 절차, 데이터 구조, 응용 프로그램, 구성 설정, 코드 등과 같은 데이터를 참조하여 기술될 수 있다. 머신이 이 데이터에 접근할 때, 이 머신은 여기에 상세히 설명된 바와 같은 태스크를 실행하고, 추상 데이터 유형을 정의하고, 저-레벨 하드웨어 콘텍스트를 구축하고, 및/또는 다른 작업을 실행함으로써 응답할 수 있다. 이 데이터는 휘발성 및/또는 비-휘발성 데이터 저장소에 저장될 수 있다. 용어 "코드" 또는 "프로그램"은 애플리케이션, 드라이버, 프로세스, 루틴, 방법, 모듈 및 서브프로그램을 포함해서 광의의 컴포넌트 및 구성을 포괄하며, 처리 시스템에 의해 실행될 때, 필요한 작업 또는 작업들을 실행하는 명령어 군을 나타낼 수 있다. 게다가, 대안 실시 예들은 공개된 작업들 모두보다 적은 작업을 이용하는 프로세스, 추가의 작업들을 이용하는 프로세스, 동일한 작업들을 상이한 시퀀스로 이용하는 프로세스, 및 여기에 공개된 개별 작업들이 결합하거나 더 세분되거나 다른 식으로 변경되는 프로세스를 포함할 수 있다. 컴포넌트들 또는 모듈들은 필요에 따라서 결합하거나 분리될 수 있고 장치의 하나 이상의 부분에 배치될 수 있다.
본 발명이 한정된 수의 실시 예들에 관련해서 기술되었더라도, 이 방면에 숙련된 자들은 이들로부터의 수많은 수정 및 변경을 이해할 것이다. 첨부된 특허청구범위는 본 발명의 사상 및 범위 안에 속하는 모든 그러한 수정 및 변경을 포괄한다.

Claims (1)

  1. 제1항에 따른 장치 및 방법.
KR1020167008889A 2011-09-30 2011-09-30 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치 KR20160043134A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054126 WO2013048425A1 (en) 2011-09-30 2011-09-30 Authenticated launch of virtual machines and nested virtual machine managers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008372A Division KR20140069065A (ko) 2011-09-30 2011-09-30 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치

Publications (1)

Publication Number Publication Date
KR20160043134A true KR20160043134A (ko) 2016-04-20

Family

ID=47996166

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147008372A KR20140069065A (ko) 2011-09-30 2011-09-30 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치
KR1020167008889A KR20160043134A (ko) 2011-09-30 2011-09-30 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147008372A KR20140069065A (ko) 2011-09-30 2011-09-30 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치

Country Status (6)

Country Link
US (1) US9372984B2 (ko)
EP (1) EP2761438A4 (ko)
JP (1) JP5905586B2 (ko)
KR (2) KR20140069065A (ko)
CN (1) CN103827824B (ko)
WO (1) WO2013048425A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
EP2918090A4 (en) * 2012-11-08 2016-06-29 Nokia Technologies Oy PARTIAL VIRTUALIZATION OF PCR BANKS IN A MOBILE TPM
CN103488937B (zh) * 2013-09-16 2017-02-22 华为技术有限公司 一种度量方法、电子设备及度量系统
KR102277666B1 (ko) 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9921979B2 (en) * 2015-01-14 2018-03-20 Red Hat Israel, Ltd. Position dependent code in virtual machine functions
US9436495B2 (en) 2015-01-23 2016-09-06 Red Hat Israel, Ltd. Protection against interrupts in virtual machine functions
US9875128B2 (en) 2015-01-23 2018-01-23 Red Hat Israel, Ltd. Using hypervisor trapping for protection against interrupts in virtual machine functions
US9715410B2 (en) 2015-01-30 2017-07-25 Red Hat Israel, Ltd. Protected virtual machine function access
US9607165B2 (en) 2015-02-13 2017-03-28 Red Hat Israel, Ltd. Watchdog code for virtual machine functions
US9684605B2 (en) * 2015-02-23 2017-06-20 Intel Corporation Translation lookaside buffer for guest physical addresses in a virtual machine
US10127064B2 (en) 2015-02-24 2018-11-13 Red Hat Israel, Ltd. Read-only VM function chaining for secure hypervisor access
US9740519B2 (en) 2015-02-25 2017-08-22 Red Hat Israel, Ltd. Cross hypervisor migration of virtual machines with VM functions
US9483301B2 (en) 2015-02-26 2016-11-01 Red Hat Israel, Ltd. Dynamic virtual machine function enabling
US9600190B2 (en) 2015-02-27 2017-03-21 Red Hat Israel, Ltd. Virtual machine functions for multiple privileged pages
US10911371B1 (en) 2015-03-16 2021-02-02 Amazon Technologies, Inc. Policy-based allocation of provider network resources
US9569247B2 (en) 2015-03-31 2017-02-14 Red Hat Israel, Ltd. Range based virtual machine functions
JP5847345B1 (ja) * 2015-04-10 2016-01-20 さくら情報システム株式会社 情報処理装置、認証方法及びプログラム
US9824032B2 (en) 2015-04-16 2017-11-21 Red Hat Israel, Ltd. Guest page table validation by virtual machine functions
US10613888B1 (en) 2015-12-15 2020-04-07 Amazon Technologies, Inc. Custom placement policies for virtual machines
US9880871B2 (en) 2016-02-23 2018-01-30 Red Hat Israel, Ltd. Protection from guest interrupts in a virtual machine function
US10515023B2 (en) * 2016-02-29 2019-12-24 Intel Corporation System for address mapping and translation protection
US10248785B2 (en) 2016-02-29 2019-04-02 Red Hat Israel, Ltd. Application memory protection using a host page table switching virtual machine function
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10402576B2 (en) 2016-08-30 2019-09-03 Red Hat Israel, Ltd. Safe physical function passthrough using virtual machine functions
US10176007B2 (en) 2016-08-30 2019-01-08 Red Hat Israel, Ltd. Guest code emulation by virtual machine function
US10785311B2 (en) 2016-11-08 2020-09-22 Pearson Education, Inc. Secure cloud-managed content delivery computer ecosystem
US10268595B1 (en) * 2017-10-24 2019-04-23 Red Hat, Inc. Emulating page modification logging for a nested hypervisor
US11250123B2 (en) 2018-02-28 2022-02-15 Red Hat, Inc. Labeled security for control flow inside executable program code
US10776021B2 (en) * 2018-11-27 2020-09-15 Red Hat, Inc. Exit-less host page table switching and virtual machine function detection with memory pages storing an identification value that are mapped at the same guest physical addresses
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
US11805114B2 (en) * 2020-09-30 2023-10-31 Dell Products L.P. Enhanced N-layer SSO controlled authentication for enterprise devices
US20220100906A1 (en) * 2021-12-08 2022-03-31 Intel Corporation Software library integrity verification mechanism

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4291964B2 (ja) * 2001-04-19 2009-07-08 株式会社日立製作所 仮想計算機システム
US9785485B2 (en) 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US20070106986A1 (en) * 2005-10-25 2007-05-10 Worley William S Jr Secure virtual-machine monitor
US20080235754A1 (en) 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8321931B2 (en) * 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
WO2009123640A1 (en) 2008-04-04 2009-10-08 Hewlett-Packard Development Company, L.P. Virtual machine manager system and methods
KR101032386B1 (ko) 2008-07-16 2011-05-03 주식회사 마크애니 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8495628B2 (en) * 2009-08-23 2013-07-23 International Business Machines Corporation Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US8621460B2 (en) 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US8510569B2 (en) 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
US8819677B2 (en) * 2010-11-23 2014-08-26 International Business Machines Corporation Virtual machine data structures corresponding to nested virtualization levels
US8782412B2 (en) * 2011-08-31 2014-07-15 AstherPal Inc. Secured privileged access to an embedded client on a mobile device
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
US9176767B2 (en) * 2013-04-11 2015-11-03 Cisco Technology, Inc. Network interface card device pass-through with multiple nested hypervisors
US10324863B2 (en) * 2013-06-24 2019-06-18 Intel Corporation Protected memory view for nested page table access by virtual machine guests

Also Published As

Publication number Publication date
JP5905586B2 (ja) 2016-04-20
CN103827824B (zh) 2017-09-05
EP2761438A1 (en) 2014-08-06
CN103827824A (zh) 2014-05-28
US9372984B2 (en) 2016-06-21
US20130276057A1 (en) 2013-10-17
JP2014528604A (ja) 2014-10-27
EP2761438A4 (en) 2015-04-22
WO2013048425A1 (en) 2013-04-04
KR20140069065A (ko) 2014-06-09

Similar Documents

Publication Publication Date Title
JP5905586B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
US10831934B2 (en) Management of authenticated variables
US10353831B2 (en) Trusted launch of secure enclaves in virtualized environments
EP2973179B1 (en) Dynamically loaded measured environment for secure code launch
US8516481B2 (en) Virtual machine manager system and methods
JP5307196B2 (ja) シリコンに一体化されたコードのシステムへの提供
US20090249053A1 (en) Method and apparatus for sequential hypervisor invocation
JP2010517162A (ja) 保護エージェント及び特権モード
JP2014505924A (ja) 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
US9779248B1 (en) Protection of secured boot secrets for operating system reboot
US11977631B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
Ding et al. HyperVerify: A VM-assisted architecture for monitoring hypervisor non-control data
US11500787B2 (en) Enforcing code integrity using a trusted computing base
Kinebuchi et al. Monitoring integrity using limited local memory
TW202101209A (zh) 將中斷及例外注入安全虛擬機器
JP6304837B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
US20220300315A1 (en) Supporting execution of a computer program by using a memory page of another computer program
Pop et al. Fast switch into a trustworthy virtual machine for running security-sensitive applications
Wang et al. Trusted computing technology analyzing in NGSCB
Zimmer System Isolation Beyond BIOS using the Unified Extensible Firmware Interface.
Parno et al. How Do We Make Sense of Platform State?
Cheng Virtualization-based System Hardening against Untrusted Kernels
Srinivasan et al. MIvmm: A micro VMM for development of a trusted code base

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application