KR20150038574A - 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 - Google Patents
타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 Download PDFInfo
- Publication number
- KR20150038574A KR20150038574A KR20157005560A KR20157005560A KR20150038574A KR 20150038574 A KR20150038574 A KR 20150038574A KR 20157005560 A KR20157005560 A KR 20157005560A KR 20157005560 A KR20157005560 A KR 20157005560A KR 20150038574 A KR20150038574 A KR 20150038574A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual processor
- generic
- target device
- secure
- integrity verification
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
Abstract
타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체가 개시된다. 예를 들어, 일반 가상 프로세서와 보안 가상 프로세서가 타겟 디바이스에 인스턴스화된다. 타겟 오퍼레이팅 시스템은 일반 가상 프로세서에서 실행된다. 무결성 검증 에이전트는 보안 가상 프로세서에서 실행된다. 일반 가상 프로세서에 시도된 하나 이상의 기 결정된 동작들이 보안 가상 프로세서에 트랩된다. 타겟 디바이스에 트랩된 동작들의 실행 효과를 결정하기 위해 무결성 검증 에이전트가 사용된다.
Description
본 출원은 2012년 8월 3일 출원된 US 특허 가출원 번호 제61/679,305호의 우선권 주장의 내용을 전체적으로 본 명세서에 포함한다.
본원 발명은 국립 과학 재단(National Science Foundation)에서 부여된 그랜트 번호 0910767 및 육군 연구 사무소에 의해 부여된 W911NF-08-1-0105 및 528787 하에 정부 지원으로 이루어졌다. 정부는 본 발명에 일정한 권리를 갖는다.
본원 발명의 다양한 실시 예는 컴퓨터 시스템의 보안(security)에 관한 것으로, 타겟 디바이스의 능동 모니터링(active monitoring), 메모리 보호(memory protection), 및 무결성 검증(integrity verification)을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체에 관한 것이다.
공격과 보안 침해(security breach)로 인한 피해 및 손실에 의해 모바일 및 임베디드 시스템(embedded system)을 포함한 컴퓨팅 플랫폼(computing platforms)에 대한 안전하고 신뢰할 수 있는 시스템 개발에 관심이 모아지고 있다.
컴퓨터 공격 및 보안 침해는 타겟 시스템 내에서 실행되는 사용자 프로세스 또는 시스템 관리 데몬(system management daemons) 같은 오퍼레이팅 시스템(OS: operating system) 커널(kernel) 또는 중요한 프로그램들을 무단으로(unauthorized) 수정하여 타겟 디바이스에 심각한 영향을 미칠 수 있다. 특히, OS 커널의 수정은 악의적인 공격자가 전체 시스템에 무제한으로 액세스하는 것을 허용할 수 있다.
이러한 과제들은 커널을 포함한 타겟 시스템을 능동적으로 모니터링할 수 있지만, OS의 구동으로부터 분리된 이례적인(unconventional) 솔루션 개발에 대한 필요성을 제기한다. 또한, 타겟 시스템의 무결성을 보장하기 위해 메모리 보호에 대한 필요성을 제공한다.
본 발명의 다양한 실시 예는 타겟 디바이스에서 실행되는 소프트웨어 프로그램의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체를 개시한다.
한 실시 예에서 방법에 따르면, 일반 가상 프로세서(normal world virtual processor)와 보안 가상 프로세서(secure world virtual processor)는 타겟 디바이스 상에 인스턴스화된다(instantiated). 타겟 오퍼레이팅 시스템(target operating system)은 일반 가상 프로세서에서 실행된다. 무결성 검증 에이전트(integrity verification agent)는 보안 가상 프로세서에서 실행된다. 일반 가상 프로세서에 시도되는 기 결정된 동작들은 보안 가상 프로세서에 트랩된다(trapped). 무결성 검증 에이전트는 타겟 디바이스에 트랩된 동작들의 실행 효과를 결정하기 위해 사용된다.
한 실시 예에서 시스템에 따르면, 상기 시스템은 타겟 디바이스 상에서 실행하도록 구성된 일반 가상 프로세서와 보안 가상 프로세서를 포함한다. 또한, 상기 시스템은 보안 가상 프로세서에서 실행하도록 구성된 무결성 검증 에이전트를 포함한다. 시스템은 일반 가상 프로세서에서 실행하는 타겟 오퍼레이팅 시스템을 더 포함한다. 일반 가상 프로세서는 일반 가상 프로세서에 시도되는 하나 이상의 기 결정된 동작들을 트랩하도록 구성된다. 보안 가상 프로세서는 타겟 디바이스의 트랩된 동작들의 실행 효과를 결정하기 위해 무결성 검증 에이전트를 사용하도록 구성된다.
타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위해 본 발명의 다양한 실시 예는 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 예컨대, 본 발명의 다양한 실시 예에서 사용된 용어 "기능" 또는 "모듈"은 기재된 특징을 구현하기 위한 하드웨어, 소프트웨어, 및/또는 펌웨어를 언급한다. 하나의 예시적인 구현에서, 본 발명의 다양한 실시 예는 컴퓨터 프로세서에 의해 실행될 때 단계들(steps)을 수행하도록 컴퓨터를 제어하는 컴퓨터 실행가능 인스트럭션들이 저장된 컴퓨터 판독 가능 매체를 이용하여 구현될 수 있다. 본 발명의 다양한 실시 예에서 구현하는데 적합한 예시적인 컴퓨터 판독 가능 매체는 디스크 메모리 장치, 칩 메모리 장치, 프로그래밍 가능 로직 장치, 및 애플리케이션 주문형 집적 회로와 같은 비 일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable media)를 포함한다. 또한, 본 발명의 다양한 실시 예를 구현하는 컴퓨터 판독 가능 매체는 하나의 디바이스 또는 컴퓨팅 플랫폼 상에 위치할 수 있거나, 또는 다수 개의 다바이스들 또는 컴퓨팅 플랫폼에 걸쳐 분산될 수 있다.
본 발명의 다양한 실시 예는 하기 첨부된 도면을 참조하여 설명할 수 있다:
도 1은 MCR 인스트럭션을 부호화한 샘플의 블록도를 도시한다; 및
도 2는 본 발명의 다양한 실시 예에 따른 타겟 디바이스의 능동 모니터링 및 메모리 처리를 위한 시스템의 블록도를 도시한다.
도 1은 MCR 인스트럭션을 부호화한 샘플의 블록도를 도시한다; 및
도 2는 본 발명의 다양한 실시 예에 따른 타겟 디바이스의 능동 모니터링 및 메모리 처리를 위한 시스템의 블록도를 도시한다.
본 발명의 다양한 실시 예는 이러한 문제를 해결할 수 있는 새로운 기술과 매커니즘을 포함한다. 본 발명의 다양한 실시 예는 일반 가상 프로세서 및 보안 가상 프로세서 간의 하드웨어 기반 격리(hardware-based isolation)를 제공할 수 있다. 예컨대, 암 홀딩스(ARM Holdings plc)에서 제공하는 ARM 아키텍처와 같은 프로세서 아키텍처는 상술한 격리를 제공한다. ARM사의 상술한 특징은 ARM 트러스트존(TrustZone) 기술로 알려져 있다. ARM의 트러스트존 기술은 하나의 물리적 프로세서 코어에서의 코드 실행을 두 개의 영역들(worlds), 즉 "보안 영역(secure world)"과 "일반 영역(normal world)" (또는 "비 보안 영역(non-secure world)"), 로 분리하여 하드웨어 기반 격리를 가능하게 할 수 있다. 보안 영역은 보안상 민감한 동작들(security sensitive operations)을 위해 구성되고, 일반 영역은 다른 동작들을 위해 구성된다.
한 실시 예에서, 본 발명의 다양한 실시 예는 보호되어야 할 타겟 오퍼레이팅 시스템을 정상 영역에 배치하고, 신뢰할 수 있는 구성 요소(trusted component)들을 보안 세계에 배치한다. 이러한 구성은 다양한 아키텍처 상에서 구현될 수 있다. 본 발명의 다양한 실시 예는 ARM 트러스트존 아키텍처를 사용하더라도, 본 발명의 다양한 실시 예들은 현재 알려져 있거나 이후에 개발될 다른 프로세서 아키텍처들 상에서 구현될 수 있다.
대체적으로(in principle), 타겟 오퍼레이팅 시스템은 안드로이드(Android), 임베디드 리눅스(embedded Linux), NetBSD, 또는 현재 공지된 또는 이후에 개발되는 다른 OS와 같은 임의의 오퍼레이팅 시스템일 수 있다. 한 실시 예에서, 타겟 오퍼레이팅 시스템은 디바이스 리소스들 관리하는 커널(kernel)을 포함할 수 있다. 한 실시 예에서, OS 커널의 코드는 "특권 모드(privileged mode)"에서 실행될 수 있고, 특권 인스트럭션들(privileged instructions) 및 보안상 중요 동작들(security critical operations)을 실행하도록 허용될 수 있다.
한 실시 예에서, 타겟 디바이스는 비 특권 "사용자 모드"에서 실행하는 다중 사용자 실행 프로세스 및/또는 데몬(daemons)을 가질 수 있고, 특권 인스트럭션들 및 보안상 중요 동작의 실행이 허용되지 않을 수 있다.
한 실시 예에서, 일반 가상 프로세서에서 시도되는 보안상 중요 동작들 및 특권 인스트럭션들과 같은 하나 이상의 기 결정된 동작들은 보안 가상 프로세서로 트랩된다. 예를 들어, 보안상 중요 동작 또는 특권 인스트럭션의 트랩은 일반 가상 프로세서로부터의 실행 컨텍스트(execution context)를 보안 가상 프로세서로 스위칭하는 것을 포함할 수 있다. 예를 들어, 보안상 중요 동작 또는 특권 인스트럭션은 일반 영역에서 구동되는 타겟 오퍼레이팅 시스템보다는 보안 세계에서 구동되는 무결성 검증 에이전트에 의해 마크(marked)될 수 있다.
한 실시 예에서, 무결성 검증 에이전트는 타겟 디바이스에 트랩된 동작들의 실행 효과를 결정하기 위해 사용될 수 있다.
한 실시 예에서, 일반 가상 프로세서에서 구동되는 타겟 OS는, 보안 가상 프로세서에서 구동되는 무결성 검증 에이전트로 기 결정된 동작들 또는 인스트럭션들을 트랩하지 않고는 기 결정된 보안상 중요 동작들 또는 특권 인스트럭션들을 실행할 수 없도록 수정될 수 있다. 예를 들어, 타겟 오퍼레이팅 시스템 커널(target operating system kernel)은 모든 특권 인스트럭션들이 실행 가능한 바이너리(binary)로부터 제거되도록 수정될 수 있다. 예를 들어, 보안상 특권 인스트럭션들은 타겟 디바이스의 메모리 관리 유닛(MMU)을 제어하는 인스트럭션들을 포함하지만, 이들에 한정되지는 않는다.
한 실시 예에서, 수정된 실행 가능한 바이너리는 바이너리에 특권 인스트럭션들을 추가하는 인증되지 않은 인스트럭션(unauthorized instruction)과 같은 잠재적인 악성 변경을 피하기 위해 읽기 전용으로 마크될 수 있다.
본 발명의 다양한 실시 예에서, 타겟 오퍼레이팅 시스템의 비 특권 프로그램들(예를 들어, 사용자 프로세스들)은 "특권 비 실행(privileged-execute never)"으로서 메모리 맵핑되고, 이 프로그램들은 유해한 목적으로 수정된 경우에도 특권 인스트럭션들의 실행이 허용되지 않는다.
한 실시 예에서, 일반 OS(normal world OS)의 수정은 소스 코드를 직접 수정, 실행 가능한 바이너리를 수정 또는 바이너리 변환을 사용하는 공지된 기술 중 하나를 사용하여 수행될 수 있다.
본 발명의 다양한 실시 예는, 타겟 오퍼레이팅 시스템이 보안상 중요한 동작들을 수행하기 위해 필요한 메모리 액세스를 하지 않도록 하는 메모리 액세스 보호를 이용하는 동작을 더 포함할 수 있다. 예를 들어, 보안상 중요 동작들은 시스템의 메모리 맵핑을 정의하는 페이지 테이블(page tables)의 수정, 직접 메모리 액세스(DMA: direct memory access) 제어기의 수정을 포함할 수 있지만, 이것에 한정되지 않는다. DMA 제어기는 주변 장치들에 의해 액세스 가능한 메모리를 결정할 수 있다. 공격은 일반 가상 프로세서의 코드 또는 데이터를 수정하기 위해 주변 장치를 사용하도록 DMA 제어기를 악용할 수 있다.
본 발명의 다양한 실시 예는, 무결성 검증 에이전트가 특권 인스트럭션을 실행하려는 시도 또는 기 결정된 정책을 위반하는 보안상 중요 동작을 실행하려는 시도를 감지한 경우, 타겟 디바이스의 무결성 위반을 검출하는 동작을 포함할 수 있다. 예를 들어, 정책은 일반 OS의 실행 가능한 바이너리 수정을 허용하지 않는 정책, 일반 OS의 메모리 액세스 보호를 비활성화하는 정책, 또는 일반 OS의 읽기 전용 중요한 데이터 구조를 수정하는 정책을 포함할 수 있지만, 이에 한정되지 않는다.
기술적 능력(
Technical
Capabilities
)
본 발명의 다양한 실시 예들은 일반 오퍼레이팅 시스템(normal world operation system)과 같은 타겟 디바이스 또는 그 내부의 일부를 변경하기 위해 시도하는 보안 공격(security attacks)을 방지할 수 있다.
본 발명의 다양한 실시 예는, 일반 오퍼레이팅 시스템의 무결성 상태에 대한 최신 보고서(up-to-date report)를 생성하여 악성 공격을 검출하기 위한 기술 및/또는 방법을 포함할 수 있다.
본 발명의 다양한 실시 예는, 일반 오퍼레이팅 시스템의 무결성의 손상을 초래할 수 있는 인스트럭션들 및/또는 동작들을 실행 전에 방지하는 기술 및/또는 방법을 포함할 수 있다.
본 발명의 다양한 실시 예는, 악의적인 공격의 검출 또는 방지 또는 이들의 조합에 대한 기술 및/또는 방법을 포함할 수 있다.
이러한 목적을 달성하기 위하여, 본 발명의 다양한 실시 예들은 다음 기능들 중 하나 이상을 포함하는 방법, 모듈 및/또는 장치를 제공할 수 있다:
1) 보안상 중요 동작들 및 특권 인스트럭션들을 포함하고, 일반 오퍼레이팅 시스템의 상태에 미치는 영향을 인식하는 일반 중요한 이벤트들의 능동 모니터링(active monitoring).
2) 검증된 일반 프로그램(normal world program)들은 로딩 후 악의적으로 조작될 수 없고, 비 검증된 일반 프로그램들은 특권 인스트럭션들 또는 보안상 중요한 동작들을 수행할 수 없음을 보안 영역이 단언(affirm)할 수 있도록 일반 메모리 레이아웃(normal world memory layout)을 완벽하게 제어한다. 이러한 기능을 "메모리 보호(memory protection)"라고 칭할 수 있다.
3) 무결성 검증은 기 결정된 보안 정책에 기반하여 수행될 수 있다. 하나 이상의 보안 정책을 위반하는 지 여부를 확인하는 데 사용되는 입력 이벤트들은 (위에서 언급한) 능동 모니터링 및/또는 메모리 보호에 기인할 수 있다.
가정(
Assumptions
)
한 실시 예에서, 타겟 오퍼레이팅 시스템이 일반 영역에서 구동되는 동안 무결성 검증 (측정) 에이전트는 보안 영역의 일부로서 실행될 수 있다.
한 실시 예에서, 보안 영역은 로드된 바이너리의 체크섬(checksum) 산출 (프로세스는 정적 측정(static measurement)이라고 널리 알려져 있음)을 통해 일반 커널(normal world kernel)의 로드 타임 검증(load-time verification)을 수행할 수 있다.
한 실시 예에서, 로드 타임 검증은 바이너리들로부터 모든 특권 인스트럭션들을 제거하여 일반 커널이 본 발명의 다양한 실시 예에서 의도한 보호를 위해 적절히 수정되었는지를 확인하도록 확장(extend)될 수 있다.
범용 시스템을 검증하기 위해 격리 또는 보호된 구성 요소를 사용하는 아이디어는 Grafinkel 등에 의한 2003년 SOSP에서 문헌 "Terra: A Virtual Machine-Based Platform for Trusted Computing" 에 기재된 내용을 본 발명의 다양한 실시 예에 참조하여 포함한다. 이에 따라(intuitively), 정적 측정(static measurement)은 부팅 프로세스(boot-up process) 중에 일반 커널의 무결성을 보장하지만, 시스템 부팅 이후에 커널의 무결성을 보장할 수 없으며 잠재적 공격자와의 상호작용(interact)을 시작한다.
한 실시 예에서, OS 커널은 일반 가상 프로세서에서 특권 인스트럭션들을 실행하는 전용 소프트웨어이다. 또한, 커널은 쓰기 가능 및 실행 가능이 혼합된 페이지에 의존하지 않을 수 있다. 실험 평가를 통해, OS 커널 (예를 들어, 안드로이드 및 리눅스)의 많은 최신 버전들은 쓰기 가능한 데이터에서 실행 코드를 분리함으로써 이러한 추정을 따르는 것을 발견했다.
위협 모델(
Threat
Model
):
본 발명의 다양한 실시 예들은 일반 오퍼레이팅 시스템 내부에 코드를 은밀하게(stealthily) 실행하고자 하는 모든 공격들을 고려한다. 이러한 상황에서, “은밀하게”는 보안 영역에서 실행되는 무결성 검증 에이전트를 업데이트하지 않고 코드가 실행되는 것을 의미한다. 이러한 공격은 새로운 검증되지 않은 코드 바이너리를 로드하거나, 이전에 맵핑되고 메모리에 이미 존재하는 코드 바이너리를 수정하는 것 중 하나에 의해 행해질 수 있다. 본 발명의 다양한 실시 예들은 두 경우 모두를 처리할 수 있는 시스템을 설계한다.
본 발명의 다양한 실시 예들은 일반 오퍼레이팅 시스템 내부에 보안상 중요 데이터를 수정하고자 하는 모든 공격들을 고려할 수 있다. 이러한 상황에서, 보안상 중요 데이터는 변경을 모니터링하는 무결성 검증 에이전트를 위해 사전에 정의되어야 한다.
공격자들은 그들이 일반 커널을 제어할 수 있도록 하는 커널 취약성을 포함하는 일반 오퍼레이팅 시스템을 해킹하기 위해 기존 시스템의 취약성을 이용할 수 있다. 본 발명의 다양한 실시 예들은 시스템들이 새로운 코드를 로드하거나, 기존 코드를 수정하는 것과 같은 취약성들 중 어떤 것을 검출 및/또는 방지해야 한다.
코드 수정 또는 로딩할 필요가 없는 특별한 유형의 공격이 있는데 이를 리턴 지향 공격(return-oriented attack)이라 한다. 본 발명의 다양한 실시 예에 따른 시스템은 리턴 지향 공격을 검출할 수는 없다. 하지만, 본 발명의 다양한 실시 예에 따르면, 보안 영역의 무결성 측정 에이전트에 의해 측정되지 않고 새로운 프로그램 (예를 들면, 악성 앱)을 로딩함으로써 능동 모니터링 및 메모리 보호 프레임 워크를 파괴하지 못할 것을 보장한다.
트러스트존
기반 시스템에서 능동
모니터링
및 메모리 보호의 기술적 과제
본 발명의 다양한 실시 예에 따른 시스템은 ARM사의 트러스트존에 기반한다. 이 기술이 강력한 하드웨어 기반의 보호를 제공한다는 사실에도 불구하고, 측정 타겟 (일반 오퍼레이팅 시스템)을 밀접하게 제어하는 기능을 제한한다. 하기에서 ARM사의 트러스트존 기반의 무결성 모니터링을 사용하는 실시 예에서 능동 모니터링 및 메모리 보호 기능 구현에 직면하는 주요 과제(challenge)와 한계에 대해 설명한다.
1. 트러스트 존에 의해 제공되는 메모리 보호: 트러스트존 기술은 보안상 중요한 자산 (보안 메모리(secure world memory) 및 주변 장치)이 일반 영역에 의해 액세스되는 것을 방지하는 하드웨어 격리된 환경(hardware isolated environment)을 생성하는 것을 주요 목적으로 한다. 그러나, 이러한 격리는 원칙적으로 두 개의 영역들(worlds) 중 하나가 자신의 자원들에 대해 완벽히 제어할 수 있게 한다. 따라서, 일반 커널은 메모리 관리 장치(MMU)를 완벽하게 구성하고, 일반 커널에 맵핑된 메모리 페이지에 대한 액세스 권한 (예를 들어, 읽기 전용, 쓰기 가능, 실행 가능)의 할당을 포함하는 일반 커널에 할당된 물리적 메모리(physical memory)를 완벽하게 제어한다. 이러한 아키텍처는 일반 영역에 속하는 중요한 메모리 영역을 모니터링하고 보호하기 위한 보안 세계 구성 요소들에 대한 과제를 제시한다.
2. 트러스트존에서 인터럽트 및 예외 처리: 트러스트존은 보안 영역에 의해 처리될 이벤트들의 집합을 보안 영역에서 선택한다. 이러한 이벤트들은 외부 인터럽트 (IRQ 또는 FIQs) 및 특정 유형의 예외(예를 들어, 외부 데이터 중단)로 제한된다. 그러나, 다른 유형의 예외들 및 중요 이벤트들 (예를 들어, 레귤러 데이터 중단 예외(regular data abort exceptions), 또는 시스템 호출을 위해 사용되는 감시 모드 호출(supervisory mode calls))이 보안 영역으로 트랩하도록 구성될 수 없으며 일반 영역에 의해 직접 처리된다. 이에 따라, 이러한 이벤트들은 일반 영역의 무결성 상태에 영향을 미칠 수 있다. 이러한 이벤트들이 보안 영역으로 트랩되지 않은 경우, 무결성에 가해지는 이러한 영향은 무결성 모니터링 에이전트에 의해 간과될 수 있다.
제안된 기술
본 발명의 다양한 실시 예들은 보안 영역 내로 중요한 이벤트들을 트랩함으로써 정상 영역을 능동 모니터링한다. 또한, 본 발명의 다양한 실시 예들은 능동 모니터링 기술을 사용하여 일반 영역의 가상 메모리 맵핑(virtual memory mapping)를 제어함으로써 가상 메모리 액세스 허용 플래그(virtual memory access permission flags)를 사용하여 일반 메모리를 완벽히 보호할 수 있다.
본 발명의 다양한 실시 예들을 기술하기에 앞서, 본 발명의 기술적 특징을 구현하기 위한 다양한 실시 예들에 관련된 ARM사의 v7 프로세서들의 세 가지 아키텍처 원리들에 대한 배경 지식을 설명한다. 상술한 바와 같이, 본 발명의 다양한 실시 예들은, 본 발명의 기술적 특징을 설계하기 위해 예시적으로 사용된 ARM사의 v7 이외의 현재 알려져 있거나, 이후에 개발되는 임의의 프로세서 아키텍처 상에서 구현될 수 있다.
· ARM 보조 프로세서(coprocessors) 지원: ARM사의 v7 아키텍처는 ARM v7 프로세서의 기능을 확장하기 위해 보조 프로세서(coprocessor)를 지원한다. 보조 프로세서 인스트럭션들은 16 개(0~15)의 보조 프로세서들에 대한 액세스를 제공한다. 보조 프로세서 15(CP15: coprocessor 15)는 대부분의 프로세서와 메모리 시스템 기능들 (예를 들어, MMU, 인터럽트 벡터 핸들러(interrupt vector handler), 캐싱(caching), 성능 모델(performance models))을 제어하는 시스템 제어 레지스터를 제공한다.
· CP15 보조 프로세서에 대해 제어된 액세스: 읽기 및 쓰기를 위해 ARM v7 CP15의 액세스는 특정 명령들(special commands)(예를 들어, MCR 및 LDC)을 통해 수행될 수 있다. 이러한 액세스는 특권 소프트웨어 (예: 커널 코드)에서만 발생하도록 제한된다. 또한, 정의된 메모리 페이지 집합만을 특정할 수 있는 ARM v7 가상 메모리 시스템 아키텍처는 PXN(privileged non execute) 액세스 퍼미션(access permission)을 사용하여 특권 모드에서 실행가능하도록 허용된다.
· 정렬된 네이티브 코드(Aligned native code): ARM 인스트럭션 집합 (thumb 또는 arm)은 32 비트 또는 16 비트 정렬된 하나의 바이너리 인스트럭션들(binary instructions)의 시퀀스로 구성된 네이티브 코드로 이루어진다. 각 바이너리 인스트럭션은 연산 코드(op code) 및 하나의 32 비트 또는 16 비트 바이너리 워드의 피연산자(operands)를 포함한다.
능동 모니터링은 다음의 기본 원리로 요약될 수 있다:
일반 영역은 (가상 메모리 액세스 제어로 정의된) 특정 메모리 범위만이 특권 코드를 실행할 수 있도록 초기화된다.
한 실시 예에서, 이러한 초기화는 일반 영역의 신뢰할 수 있는 미리 설정된 초기 이미지(trusted preconfigured initial image)를 로딩함으로써 수행될 수 있다.
한 실시 예에서, 특권 메모리 페이지들은 쓰기 권한 없음(non-writable)으로 설정되고, 어떤 특권 동작들을 수행하는 어느 하나의 인스트럭션 (예를 들어, ARM v7 아키텍처의 CP15에서 중요한 레지스터를 수정하는 인스트럭션)도 포함하지 않도록 신중하게 점검되어, 일반 영역에서 이러한 인스트럭션들을 실행하기는 불가능할 것이다. 결과적으로, 일반 커널(normal world kernel)은 이러한 인스트럭션들에 의해 제어되는 프로세서 기능들 (예를 들어, ARM v7 아키텍처의 특정한 중요 CP15 레지스터들에 의해 제어되는 기능들)을 수정할 수 없다.
한 실시 예에서, 중요한 인스트럭션들은 일괄적으로 일반 가상 프로세스의 가상 메모리 액세스 제어를 제어하기 위한 유일한 방법일 수 있다.
능동 모니터링 및 메모리 보호 프레임 워크의 예시적인 구현은 하기의 단계들 중 하나 이상을 사용하여 구현될 것이다:
1. 타겟 디바이스를 초기화 한 후에, 인터럽트 및 예외 처리 벡터를 포함하는 특권 코드 페이지들이 쓰기 권한 없음으로 설정되도록 일반 영역(normal world)의 가상 메모리 맵을(일반 영역 또는 보안 영역 중 어느 하나에 의해) 구성할 수 있다.
2. 커널 또는 사용자 프로세스 중 어느 하나에 속하는 모든 다른 일반 영역에 맵핑된 페이지들은, 나중에 수정되는 경우에도 일반 영역의 상태를 수정하는 특권 인스트럭션들 (예를 들어, ARM v7 CP15의 특정 보안상 중요한 레지스터들에 액세스하는 인스트럭션들)의 실행이 절대 허용되지 않도록 PXN 페이지로 마크될 수 있다.
3. 일반 메모리 레이아웃 및 액세스 제어를 정의하는데 사용되는 모든 페이지 테이블들은 쓰기 권한 없음으로 마크될 수 있다. 따라서, 페이지 테이블에 대한 어떠한 수정도 데이터 중단 예외(data abort exception)를 야기시킬 것이다. 한 실시 예에서, 페이지 테이블은 ARM v7 CP15 변환 테이블 베이스 레지스터(Translation Table Base Registers: TTBRs), 또는 다른 아키텍처들에서 유사한 기능성을 갖는 임의의 다른 레지스터에 의해 나타내질 수 있다.
4. 쓰기 권한 없는 커널 페이지들(non-writable kernel pages)은, 보안 가상 프로세서에 대한 호출(예를 들어 보안 모니터 호출 (SMC) 인스트럭션)이 보안상 중요한 동작들 및 특권 인스트럭션들(예를 들어, 데이터 중단 예외 핸들러, 인스트럭션 중단 핸들러, 페이지 테이블에 쓰기, 및 CP15 레지스터 쓰기)을 대체하도록 수정될 수 있다. 이에 따라, 모든 보안상 중요한 동작들 및 특권 인스트럭션들은 보안 영역에 의해 처리될 수 있다(handled).
5. 보안 영역은 중요한 이벤트들을 검사하고, 중요한 이벤트들을 시스템의 무결성 상태에 미치는 영향을 평가하기 위해 무결성 측정 에이전트로 전달할 수 있다. 트랩된 이벤트가 페이지 테이블 쓰기(page table write)인 경우, 보안 영역은 기 결정된 보안 정책을 위반하지 않음을 확인한 후에 일반 커널을 대신하여 필요한 페이지 테이블을 수정하고, 단계 1 내지 단계 4에 의해 정의된 동작들 중 어느 하나로 되돌아 가도록 한다 (일부 실시예에서, 기 결정된 보안 정책은 원래의 커널 페이지 또는 임의의 페이지 테이블에 대한 쓰기 액세스 제공의 금지를 포함할 수 있다. 또한 특권 실행 가능 페이지들의 맵핑을 방지할 수 있다).
6. 한 실시 예에서, 무결성 검증 에이전트는 일반 메모리 맵의 상태 및/또는 임의의 필요한 보안 정책에 대한 정보를 저장하기 위해 컴퓨터 판독 가능 매체 (예를 들어, 휘발성 또는 비휘발성 메모리)를 사용할 수 있다. 예를 들어, 무결성 검증 에이전트는 해당 페이지에 쓰는 ID가 어떤 보안 정책을 위반하는지 여부를 검출 (또는 해당하는 페이지 테이블 엔트리에서 그 메모리 맵핑을 변경)할 수 있도록 일반 영역의 모든 페이지의 상태를 표시하는 비트 맵을 저장할 수 있다.
상술한 단계들은 제안된 시스템으로 하여금 일반 커널(normal world kernel)의 능동 모니터링 및 일반 커널 메모리 보호(normal kernel memory protection)를 성취할 수 있게 한다. 단계 1 및 단계 2는 메모리에 인스트럭션들을 맵핑하거나, 이미 맵핑된 특권 인스트럭션들 중 임의의 하나를 수정하여, 일반 영역 내에서 구동되는 임의의 잠재적인 악성 소프트웨어가 특권 인스트럭션을 실행하는 것을 방지한다. ARM 네이티브 코드가 32 비트 또는 16 비트 인스트럭션들로만 구성되어있다는 사실은 실행가능 특권 페이지들을 단어마다 스캔하는 것을 실현 가능하게 하고, 인스트럭션들 중 어느 것도 중요한 레지스터를 액세스할 수 없다고 단언할 수 있다.
한 실시 예에서, ARM v7의 아키텍처를 사용하는 경우, 도 1은 CP 레지스터에 쓰는 데 사용되는 MCR 인스트럭션들을 부호화한 샘플을 도시한다. CP 레지스터들은 CP 번호와 네 개의 다른 매개 변수들: CRn, CRm, opc1 및 opc2에 의해 정의된다. 실행 가능한 특권 페이지(privileged executable pages)의 모든 32 비트 (정렬) 값들을 검사하여 인스트럭션이 MCR을 특정 레지스터에 매칭시키지 않는다면, 본 발명의 다양한 실시 예들은 레지스터가 일반 영역에 의해 절대 수정되지 않음을 보장할 수 있다. 본 발명의 다양한 실시 예에서 목표로 하는 중요한 레지스터는, 특히, MMU를 비활성화시키고, 인터럽트 벡터 핸들러를 재배치하거나, 또는 가상 주소 변환 테이블의 기본 주소를 재배치한다.
단계 3은 메모리 보호 기능을 보장한다. 한 실시 예에서, ARM v7 아키텍처를 사용하는 경우, 페이지 테이블의 베이스를 나타내는 TTBRs는 CP15의 일부이다. TTBRs는 (단계 2에서 언급한 바와 같이) 일반 커널에 의해 수정하는 것이 금지되는 레지스터들 중에 마크된다. 따라서, 일반 영역은 특정 물리적 메모리를 페이지 테이블로서 사용하도록 제한될 것이다. 초기화 코드는 이러한 물리적 메모리 (페이지 테이블)를 쓰기 권한 없음으로 맵핑할 수 있다. 따라서, 임의의 페이지 테이블 업데이트는 데이터 중단을 야기시킬 수 있다. 모든 데이터 중단 예외 사항들(data abort exceptions)이 보안 세계로 트랩될 것이기 때문에 (단계 4에서 논의된 바와 같이), 모든 페이지 테이블 수정은 일반 영역에 실제로 영향을 미치기 이전에 보안 영역에 의해 검사될 것이다.
단계 4는 필요한 능동 모니터링을 보장한다. 한 실시 예에서 ARM v7 아키텍처를 사용하는 경우, 예컨대, TTBR 값을 사용자 프로세스들 간의 콘텍스트 스위치에 맞게 수정하는 등 중요한 이벤트들이 일반 영역에서 실행하는 것이 불가능하게 될 것이다. 따라서, 이 기능을 올바르게 수행할 수 있는 유일한 방법은 일반 커널이 "SMC" 인스트럭션을 호출하고, 중요한 동작이 보안 영역에 의해 처리될 수 있도록 하는 것이다. 이 동작의 보안은 CP 레지스터 쓰기 및 "SMC" 호출 모두가 하나의 인스트럭션으로 구성된 원자성 동작(atomic operations)이라는 사실에 의해 지지된다. 동시에, 모든 무결성 검사 (예를 들어, 새로운 페이지 테이블에 쓰기 권한 페이지가 없음을 검증)는 정상 영역의 범위 밖의 보안 영역에 의해 수행된다. 리턴 지향 공격에 의해 파괴되는 커널 조차도 합성 코드의 중앙을 통해 점핑(jumping)하여 중요한 상태를 수정할 수 없고, 잠재적 일반 영역의 무결성 검증을 스킵할 수는 없을 것이다.
마지막으로, 단계 5의 구현은 보안 영역이 능동 모니터링 능력이 시스템의 수명이 다할 때까지 유효하다는 것을 보장하는 무결성 검증의 단일 지점임을 의미한다. 새로이 맵핑된 프로세서의 페이지 테이블을 확인하고 MMU 또는 가상 페이지 액세스 제어 보호가 비활성화되지 않음을 확인하는 등의 특권 동작들에 대한 적절한 무결성 검사를 구현함으로써, 보안 영역은 메모리 보호 및 능동 모니터링 모두를 일반 영역을 위해 마련되어 있음을 보장할 것이다.
도 2는 본 발명의 다양한 실시 예에 따라 타겟 디바이스의 능동 모니터링 및 메모리 보호를 위한 시스템을 나타내는 블록도를 도시하고 있다. 도 2에서, 시스템은 타겟 디바이스(104) 상의 일반 가상 프로세서(100) 및 보안 가상 프로세서 (102)를 포함한다. 일반 가상 프로세서(100) 및 보안 가상 프로세서(102)는 ARM 리미티드(Limited)(2009), ARM 백서(ARM Whitepaper), 트러스트존 기술을 이용하는 보안 시스템 구축(Building a Secure System using TrustZone Technology), ARM 보안 기술(ARM Security Technology)에 기재된 ARM 트러스트존 가상 프로세서일 수 있고, 그 개시 내용은 전체적으로 본 명세서에 참고로 포함된다. 타겟 디바이스(104)는 일반 가상 프로세서(100) 및 보안 가상 프로세서(102)를 사용하여 격리(isolation)할 수 있는 임의의 컴퓨팅 플랫폼일 수 있다. 이러한 컴퓨팅 플랫폼의 예들로 서버, 데스크 탑 컴퓨터, 스마트 폰, PDA, 또는 태블릿 컴퓨터와 같은 모바일 장치, 또는 가전 제품이나 전력 또는 수도 계량기와 같은 산업 기기에 내장된 프로세서 및 관련 메모리를 포함할 수 있는 임베디드 시스템을 포함한다.
상술한 바와 같이, 타겟 오퍼레이팅 시스템(106)은 일반 가상 프로세서(100)에서 실행되고, 무결성 검증 에이전트(108)는 보안 가상 프로세서(102)에서 실행된다. 특정한 중요 동작의 실행은 보안 가상 프로세서(102)에 트랩된다. 트랩된 동작들의 예들은 레귤러 데이터 예외 또는 시스템 호출에 사용되는 감시 모드 호출을 포함한다. 트랩된 동작들은 보안 가상 프로세서(102)에서 실행된다. 무결성 검증 에이전트(108)는 보안 가상 프로세서(102)에서 트랩된 동작의 실행을 모니터링하여 타겟 디바이스(104)의 무결성에 대한 트랩된 동작들의 실행 효과를 평가한다.
예를 들면, 타겟 디바이스(104)는 스마트 폰일 수 있고, 사용자가 음성 통화와 전자 메일 애플리케이션을 전환할 수 있다. 이러한 상황에서, 타겟 OS(106)는 프로세스 간 전환을 위해 프로세서 제어 레지스터 CP15에 새로운 값을 기입할 수 있다. 상술한 바와 같이, CP15에 시도된 기입들이 트랩되고 검증을 위해 무결성 검증 에이전트(108)로 전달된다. 무결성 검증 에이전트(108)는 CP15에 기입된 값을 검사할 수 있다. 이 경우에, CP15에 기입된 값은 전자 메일 애플리케이션에 대한 프로세스 ID 또는 메모리 위치(memory location)일 수 있다. 무결성 검증 에이전트(108)는 프로세스 ID를 확인하기 위해, 전자 메일 애플리케이션의 실행이 허용될 것인지 여부를 판단하기 위해 허용된 프로세스들의 목록을 검색할 수 있다. 이 경우, 전자 메일 애플리케이션의 실행이 허용되는 것으로 가정하는 경우, 보안 가상 프로세서(102)는 전자 메일 애플리케이션의 실행을 허가할 수 있다.
다른 예에서, CP15에 기입 시도된 메모리 위치 또는 프로세스 ID는 허용된 애플리케이션들의 목록에 없는 악성 코드(malware)에 대응할 수 있다. 이러한 상황에서, 보안 가상 프로세서(102)는 악성 코드 실행을 방지할 수 있다. 또한 무결성 검증 에이전트(108)는 애플리케이션의 암호화 서명(cryptographic signature)을 이용해서 애플리케이션 또는 프로세스를 검증하기 위해 외부 시스템과 협의할 수 있음을 유의해야 한다.
본 발명에 개시된 다양한 세부 사항들은 현재 개시된 발명의 범위를 벗어나지 않는 범위에서 변경될 수 있음을 알 것이다. 또한, 전술한 설명은 제한하려는 의도가 아닌 단지 설명을 위한 것이다.
Claims (35)
- 타겟 디바이스의 능동 모니터링(active monitoring), 메모리 보호(memory protection), 및 무결성 검증(integrity verification)을 위한 방법에 있어서:
일반 가상 프로세서 및 보안 가상 프로세서를 타겟 디바이스 상에 인스턴스화(instantiating)하는 단계;
타겟 오퍼레이팅 시스템을 상기 일반 가상 프로세서에서 실행하는 단계;
무결성 검증 에이전트를 상기 보안 가상 프로세서에서 실행하는 단계;
상기 일반 가상 프로세서에서 시도된 하나 이상의 기 결정된 동작들을 상기 보안 가상 프로세서에 트랩핑하는 단계; 및
상기 타겟 디바이스의 상기 트랩된 동작의 실행 효과를 결정하기 위해 상기 무결성 검증 에이전트를 사용하는 단계를 포함하는 방법.
- 제 1 항에 있어서,
상기 트랩된 하나 이상의 기 결정된 동작들은, 보안상 중요한 동작, 특권 인스트럭션, 상기 일반 가상 프로세서의 메모리 관리 유닛(MMU)에 의해 제공되는 가상 메모리 액세스 보호를 비활성화하거나 수정할 수 있는 인스트럭션, 상기 타겟 디바이스의 프로세서 또는 보조 프로세서와 연관된 하나 이상의 기 결정된 레지스터들을 수정할 수 있는 인스트럭션, 상기 타겟 디바이스와 연관된 코드 또는 중요한 읽기 전용 데이터를 수정할 수 있는 인스트럭션, 및 상기 타겟 디바이스와 연관된 직접 메모리 액세스(DMA) 제어기, 레귤러 데이터 중단 예외, 또는 시스템 호출을 위해 사용되는 감시 모드 호출을 수정할 수 있는 인스트럭션을 포함하는 방법.
- 제 1 항에 있어서,
상기 트랩된 하나 이상의 기 결정된 동작들은, 상기 타겟 오퍼레이팅 시스템의 상기 무결성 검증 에이전트를 비활성화, 수정, 또는 완화(mitigate) 시킬수 있는 인스트럭션을 포함하는 방법.
- 제 1 항에 있어서,
상기 보안 가상 프로세서는, 상기 일반 가상 프로세서로부터 격리되고 보호되는 방법.
- 제 1 항에 있어서,
상기 보안 가상 프로세서의 코드 및 데이터는, 상기 일반 가상 프로세서에 의해 액세스할 수 없는 방법.
- 제 1 항에 있어서,
상기 일반 가상 프로세서의 코드 및 데이터는, 상기 보안 가상 프로세서에 의해 액세스 가능한 방법.
- 제 1 항에 있어서,
상기 일반 가상 프로세서를 인스턴스화하는 단계는,
특권 코드 페이지의 메모리 액세스 보호를 "쓰기 권한 없음"으로 정의하는 상기 일반 가상 프로세서의 가상 메모리 맵을 생성하는 단계를 포함하는 방법.
- 제 7 항에 있어서,
상기 특권 코드 페이지는, 인터럽트 처리 벡터 또는 예외 처리 벡터를 포함하는 방법.
- 제 7 항에 있어서,
상기 일반 가상 프로세서의 상기 가상 메모리 맵은, 하나 이상의 비 특권 코드 페이지에 의한 상기 특권 코드 페이지에 의해 실행 가능한 특권 인스트럭션 또는 보안상 중요한 동작의 실행이 금지되도록 상기 비 특권 코드 페이지의 메모리 액세스 보호를 "특권 비 실행(privileged execute never: PXN)"으로 정의하는 방법.
- 제 1 항에 있어서,
상기 하나 이상의 기 결정된 동작들을 상기 보안 가상 프로세서로 트랩핑하는 단계는,
상기 기 결정된 동작들이 상기 일반 가상 프로세서에서 구동되는 상기 타겟 오퍼레이팅 시스템보다는 상기 보안 가상 프로세서에서 구동되는 상기 무결성 검증 에이전트에 의해 실행되도록 상기 일반 가상 프로세서로부터의 실행 콘텍스트를 상기 보안 가상 프로세서로 스위칭하는 단계를 포함하는 방법.
- 제 1 항에 있어서,
상기 하나 이상의 기 결정된 동작들이 상기 보안 가상 프로세서로 트랩하는 호출들로 대체되도록 상기 일반 가상 프로세서의 상기 타겟 오퍼레이팅 시스템을 수정하는 단계를 더 포함하고,
상기 보안상 중요 동작을 트랩핑하는 단계는, 특권 코드 페이지에 시도된 쓰기를 트랩핑하는 단계를 포함하는 방법.
- 제 11 항에 있어서,
상기 일반 가상 프로세서의 상기 타겟 오퍼레이팅 시스템을 수정하는 단계는, 소스 코드 수정, 실행 바이너리 수정, 또는 바이너리 변환하는 단계를 포함하는 방법.
- 제 1 항에 있어서,
상기 타겟 오퍼레이팅 시스템의 정적 무결성 검사를 수행하는 단계를 더 포함하는 방법.
- 제 1 항에 있어서,
상기 타겟 디바이스의 상기 트랩된 동작의 실행 효과를 결정하기 위해 상기 무결성 인증 에이전트를 이용하는 단계는, 완화 조치(mitigation action) 를 수행하는 단계를 포함하는 방법.
- 제 14 항에 있어서,
상기 완화 조치는, 상기 트랩된 동작의 실행 거부, 보안 경고 발행, 또는 상기 타겟 디바이스 셧 다운(shutting down)을 포함하는 방법.
- 제 15 항에 있어서,
상기 무결성 검증 에이전트는, 보안 정책을 이용하고,
상기 완화 조치 수행 단계는, 상기 보안 정책을 위반할 수 있는 상기 트랩된 동작에 응답하여 발생하는 방법.
- 제 1 항에 있어서,
상기 타겟 디바이스는, 컴퓨팅 플랫폼, 스마트 폰, PDA, 태블릿 컴퓨터, 또는 임베디드 시스템을 포함하는 방법.
- 타겟 디바이스의 능동 모니터링 및 메모리 보호를 위한 시스템에 있어서:
타겟 디바이스 상에서 실행하도록 구성된 일반 가상 프로세서 및 보안 가상 프로세서; 및
상기 보안 가상 프로세서에서 실행하도록 구성된 무결성 검증 에이전트를 포함하고,
타겟 오퍼레이팅 시스템이 상기 일반 가상 프로세서에서 실행되고,
상기 일반 가상 프로세서는, 상기 일반 가상 프로세서에 시도된 하나 이상의 기 결정된 동작들을 상기 보안 가상 프로세서로 트랩하도록 구성되며,
상기 보안 가상 프로세서는, 상기 타겟 디바이스의 상기 트랩 동작의 실행 효과를 결정하기 위해 상기 무결성 검증 에이전트를 사용하도록 구성된 시스템.
- 제 18 항에 있어서,
상기 트랩된 하나 이상의 기 결정된 동작들은, 보안상 중요 동작, 특권 인스트럭션, 상기 일반 가상 프로세서의 메모리 관리 유닛(MMU)에 의해 제공되는 가상 메모리 액세스 보호를 비활성화 또는 수정할 수 있는 인스트럭션, 상기 타겟 디바이스의 프로세서 또는 보조 프로세서와 연관된 하나 이상의 소정의 레지스터들을 수정할 수 있는 인스트럭션, 상기 타겟 디바이스와 연관된 코드 또는 중요한 판독 전용 데이터를 수정할 수 있는 인스트럭션, 및 상기 타겟 시스템과 연관된 직접 메모리 액세스(DMA) 제어기, 레귤러 데이터 중단 예외, 또는 시스템 호출을 위해 사용되는 감시 모드 호출을 수정할 수 있는 인스트럭션을 포함하는 시스템.
- 제 18 항에 있어서,
상기 트랩된 하나 이상의 기 결정된 동작들은, 상기 타겟 오퍼레이팅 시스템의 상기 무결성 검증 에이전트를 비활성화, 수정, 또는 완화시킬 수 있는 인스트럭션을 포함하는 시스템.
- 제 18 항에 있어서,
상기 보안 가상 프로세서는, 상기 일반 가상 프로세서로부터 격리되고 보호되는 시스템.
- 제 18 항에 있어서,
상기 보안 가상 프로세서의 코드 및 데이터는, 상기 일반 가상 프로세서에 의해 액세스할 수 없는 시스템.
- 제 18 항에 있어서,
상기 일반 가상 프로세서의 코드 및 데이터는, 상기 보안 가상 프로세서에 의해 액세스 가능한 시스템.
- 제 18 항에 있어서,
상기 타겟 오퍼레이팅 시스템은, 특권 코드 페이지의 메모리 액세스 보호를 "쓰기 권한 없음"으로 정의하는 상기 일반 가상 프로세서의 가상 메모리 맵을 생성하도록 구성되는 시스템.
- 제 24 항에 있어서,
상기 특권 코드 페이지는, 인터럽트 처리 벡터 또는 예외 처리 벡터를 포함하는 시스템.
- 제 24 항에 있어서,
상기 일반 가상 프로세서의 상기 가상 메모리 맵은, 하나 이상의 비 특권 코드 페이지가 상기 특권 코드 페이지에 의해 실행 가능한 특권 인스트럭션 또는 보안상 중요한 동작의 실행이 금지되도록 상기 비 특권 코드 페이지의 메모리 액세스 보호를 "특권 비 실행(PXN)"으로 정의하는 시스템.
- 제 18 항에 있어서,
상기 타겟 시스템은, 상기 기 결정된 동작들이 상기 일반 가상 프로세서에서 실행하는 상기 타겟 오퍼레이팅 시스템 보다는 상기 보안 가상 프로세서에서 실행하는 상기 무결성 검증 에이전트에 의해 실행되도록 상기 일반 가상 프로세서로부터의 실행 콘텍스트를 상기 보안 가상 프로세서로 스위칭함으로써 상기 하나 이상의 기 결정된 동작들을 상기 보안 가상 프로세서로 트랩하도록 구성되는 시스템.
- 제 18 항에 있어서,
상기 타겟 오퍼레이팅 시스템은, 상기 하나 이상의 기 결정된 동작들이 상기 보안 가상 프로세서로 트랩하는 호출들로 대체되도록 수정되고,
상기 보안상 중요 동작들의 트랩핑은, 특권 코드 페이지에 쓰기 시도된 트랩핑을 포함하는 시스템.
- 제 28 항에 있어서,
상기 타겟 오퍼레이팅 시스템은, 소스 코드 수정, 실행 가능한 바이너리 수정, 또는 바이너리 변환에 의해 수정되는 시스템.
- 제 18 항에 있어서,
상기 타겟 오퍼레이팅 시스템의 정적 무결성 검사 수행을 포함하는 시스템.
- 제 18 항에 있어서,
상기 무결성 인증 에이전트는, 완화 조치를 수행하도록 구성되는 시스템.
- 제 31 항에 있어서,
상기 완화 조치는, 상기 트랩 동작 실행의 거부, 보안 경고 발행, 또는 상기 타겟 디바이스 셧 다운을 포함하는 시스템.
- 제 32 항에 있어서,
상기 무결성 검증 에이전트는, 보안 정책을 사용하고,
상기 완화 조치의 수행은, 상기 보안 정책을 위반할 수 있는 상기 트랩 동작에 응답하여 발생하는 시스템.
- 제 18 항에 있어서,
상기 타겟 디바이스는, 컴퓨팅 플랫폼, 스마트 폰, PDA, 태블릿 컴퓨터, 또는 임베디드 시스템을 포함하는 시스템.
- 컴퓨터의 프로세서에 의해 실행 시, 상기 컴퓨터로 하여금 하기의 단계들을 수행하도록 제어하는 실행가능 인스트럭션들이 저장된 비 일시적 컴퓨터 판독 가능 매체에 있어서:
일반 가상 프로세서 및 보안 가상 프로세서를 타겟 디바이스 상에 인스턴스화하는 단계;
타겟 오퍼레이팅 시스템을 상기 일반 가상 프로세서에서 실행하는 단계;
무결성 검증 에이전트를 상기 보안 가상 프로세서에서 실행하는 단계;
상기 일반 가상 프로세서에 시도된 하나 이상의 기 결정된 동작들을 상기 보안 가상 프로세서에 트랩핑하는 단계; 및
상기 타겟 디바이스의 상기 트랩된 동작의 실행 효과를 결정하기 위해 상기 무결성 검증 에이전트를 사용하는 단계를 포함하는 비 일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261679305P | 2012-08-03 | 2012-08-03 | |
US61/679,305 | 2012-08-03 | ||
PCT/US2013/000074 WO2014021919A2 (en) | 2012-08-03 | 2013-03-15 | Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150038574A true KR20150038574A (ko) | 2015-04-08 |
Family
ID=50028637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20157005560A KR20150038574A (ko) | 2012-08-03 | 2013-03-15 | 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9483635B2 (ko) |
EP (1) | EP2880587B1 (ko) |
KR (1) | KR20150038574A (ko) |
CN (1) | CN104520867B (ko) |
AU (1) | AU2013297064B2 (ko) |
BR (1) | BR112015002316A2 (ko) |
RU (1) | RU2615664C2 (ko) |
WO (1) | WO2014021919A2 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102183852B1 (ko) * | 2013-11-22 | 2020-11-30 | 삼성전자주식회사 | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 |
US20160048679A1 (en) | 2014-08-18 | 2016-02-18 | Bitdefender IPR Management Ltd. | Systems And Methods for Exposing A Current Processor Instruction Upon Exiting A Virtual Machine |
US9832207B2 (en) | 2014-12-23 | 2017-11-28 | Mcafee, Inc. | Input verification |
US9996690B2 (en) | 2014-12-27 | 2018-06-12 | Mcafee, Llc | Binary translation of a trusted binary with input tagging |
US9798559B2 (en) | 2014-12-27 | 2017-10-24 | Mcafee, Inc. | Trusted binary translation |
US10019576B1 (en) | 2015-04-06 | 2018-07-10 | Intelligent Automation, Inc. | Security control system for protection of multi-core processors |
US10025925B2 (en) * | 2015-06-23 | 2018-07-17 | Adventium Enterprises, Llc | Dynamically measuring the integrity of a computing apparatus |
WO2017019061A1 (en) * | 2015-07-29 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Firewall to determine access to a portion of memory |
US10282224B2 (en) | 2015-09-22 | 2019-05-07 | Qualcomm Incorporated | Dynamic register virtualization |
US10055577B2 (en) * | 2016-03-29 | 2018-08-21 | Intel Corporation | Technologies for mutual application isolation with processor-enforced secure enclaves |
US10019583B2 (en) * | 2016-04-01 | 2018-07-10 | Samsung Electronics Co., Ltd. | Method and apparatus for performing protected walk-based shadow paging using multiple stages of page tables |
US10282190B2 (en) * | 2016-12-01 | 2019-05-07 | Dell Products, L.P. | System and method for updating a UEFI image in an information handling system |
KR102021008B1 (ko) | 2017-08-23 | 2019-09-11 | 서울대학교산학협력단 | Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법 |
KR102416501B1 (ko) * | 2017-09-20 | 2022-07-05 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
KR102514062B1 (ko) | 2018-02-27 | 2023-03-24 | 삼성전자주식회사 | 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치 |
CN109684126B (zh) * | 2018-12-25 | 2022-05-03 | 贵州华芯通半导体技术有限公司 | 用于arm设备的内存校验方法和执行内存校验的arm设备 |
US11640361B2 (en) | 2019-03-08 | 2023-05-02 | International Business Machines Corporation | Sharing secure memory across multiple security domains |
US11531627B2 (en) | 2019-03-08 | 2022-12-20 | International Business Machines Corporation | Secure storage isolation |
US11487906B2 (en) * | 2019-03-08 | 2022-11-01 | International Business Machines Corporation | Storage sharing between a secure domain and a non-secure entity |
US20220342984A1 (en) * | 2019-10-25 | 2022-10-27 | Hewlett-Packard Development Company, L.P. | Integrity monitor |
CN111382445B (zh) * | 2020-03-03 | 2023-04-07 | 首都师范大学 | 利用可信执行环境系统提供可信服务的方法 |
US11455395B2 (en) | 2020-06-17 | 2022-09-27 | Hewlett Packard Enterprise Development Lp | Perform verification check in response to change in page table base register |
CN112256396B (zh) * | 2020-10-23 | 2022-10-21 | 海光信息技术股份有限公司 | 内存管理方法、系统及安全处理装置、数据处理装置 |
CN113239329B (zh) * | 2021-04-19 | 2024-03-19 | 南京大学 | 一种用于移动端应用程序的可信执行环境的实现系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1303097A3 (en) * | 2001-10-16 | 2005-11-30 | Microsoft Corporation | Virtual distributed security system |
WO2004046925A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
CN100386740C (zh) | 2002-12-12 | 2008-05-07 | 有限状态机实验室公司 | 用于检测计算机系统中的安全漏洞的系统和方法 |
US20050107163A1 (en) * | 2003-11-13 | 2005-05-19 | Nguyen Binh T. | Methods and apparatus for providing an electronic operational event trail for a gaming apparatus |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
WO2006014554A2 (en) * | 2004-07-07 | 2006-02-09 | University Of Maryland | Method and system for monitoring system memory integrity |
WO2007050797A2 (en) * | 2005-10-25 | 2007-05-03 | Secure64 Software Corporation | Secure virtual-machine monitor |
US8732824B2 (en) * | 2006-01-23 | 2014-05-20 | Microsoft Corporation | Method and system for monitoring integrity of running computer system |
US20070226795A1 (en) * | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
US7950020B2 (en) * | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
RU2321055C2 (ru) * | 2006-05-12 | 2008-03-27 | Общество с ограниченной ответственностью Фирма "Анкад" | Устройство защиты информации от несанкционированного доступа для компьютеров информационно-вычислительных систем |
US8099574B2 (en) * | 2006-12-27 | 2012-01-17 | Intel Corporation | Providing protected access to critical memory regions |
EP2075696A3 (en) * | 2007-05-10 | 2010-01-27 | Texas Instruments Incorporated | Interrupt- related circuits, systems and processes |
US8250641B2 (en) * | 2007-09-17 | 2012-08-21 | Intel Corporation | Method and apparatus for dynamic switching and real time security control on virtualized systems |
US8578483B2 (en) | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US8819225B2 (en) * | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
US20120216281A1 (en) | 2011-02-22 | 2012-08-23 | PCTEL Secure LLC | Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel |
US8712407B1 (en) * | 2012-04-05 | 2014-04-29 | Sprint Communications Company L.P. | Multiple secure elements in mobile electronic device with near field communication capability |
-
2013
- 2013-03-15 BR BR112015002316A patent/BR112015002316A2/pt not_active Application Discontinuation
- 2013-03-15 AU AU2013297064A patent/AU2013297064B2/en not_active Ceased
- 2013-03-15 EP EP13824785.3A patent/EP2880587B1/en not_active Not-in-force
- 2013-03-15 US US14/419,222 patent/US9483635B2/en not_active Expired - Fee Related
- 2013-03-15 RU RU2015107219A patent/RU2615664C2/ru not_active IP Right Cessation
- 2013-03-15 WO PCT/US2013/000074 patent/WO2014021919A2/en active Application Filing
- 2013-03-15 KR KR20157005560A patent/KR20150038574A/ko not_active Application Discontinuation
- 2013-03-15 CN CN201380041361.4A patent/CN104520867B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2880587A4 (en) | 2016-04-27 |
EP2880587A2 (en) | 2015-06-10 |
AU2013297064A1 (en) | 2015-03-05 |
US20150199507A1 (en) | 2015-07-16 |
BR112015002316A2 (pt) | 2017-07-04 |
RU2615664C2 (ru) | 2017-04-06 |
RU2015107219A (ru) | 2016-09-27 |
AU2013297064B2 (en) | 2016-06-16 |
US9483635B2 (en) | 2016-11-01 |
WO2014021919A3 (en) | 2014-03-27 |
CN104520867B (zh) | 2017-10-31 |
WO2014021919A2 (en) | 2014-02-06 |
EP2880587B1 (en) | 2017-05-10 |
CN104520867A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483635B2 (en) | Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices | |
Ge et al. | Sprobes: Enforcing kernel code integrity on the trustzone architecture | |
Azab et al. | SKEE: A lightweight Secure Kernel-level Execution Environment for ARM. | |
Sun et al. | Trustice: Hardware-assisted isolated computing environments on mobile devices | |
Duflot et al. | Using CPU system management mode to circumvent operating system security functions | |
CN106682497B (zh) | 在管理程序模式下安全执行代码的系统和方法 | |
Zhang et al. | SoK: A study of using hardware-assisted isolated execution environments for security | |
KR102183852B1 (ko) | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 | |
US20160210069A1 (en) | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine | |
US9753863B2 (en) | Memory protection with non-readable pages | |
CN108154032B (zh) | 具有内存完整性保障功能的计算机系统信任根构建方法 | |
WO2012115956A2 (en) | Systems and methods for providing a computing device having a secure operating system kernel | |
JP6370098B2 (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
JP7432586B2 (ja) | スタック・ポインタを検証すること | |
Qiang et al. | PrivGuard: Protecting sensitive kernel data from privilege escalation attacks | |
Lee et al. | SofTEE: Software-based trusted execution environment for user applications | |
Schiffman et al. | The smm rootkit revisited: Fun with usb | |
Zaidenberg | Hardware rooted security in industry 4.0 systems | |
Manès et al. | Domain Isolated Kernel: A lightweight sandbox for untrusted kernel extensions | |
Jang et al. | 3rdParTEE: Securing third-party IoT services using the trusted execution environment | |
Korkin | Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces | |
Wang et al. | Trustict: an efficient trusted interaction interface between isolated execution domains on ARM multi-core processors | |
Ha et al. | Kernel code integrity protection at the physical address level on RISC-V | |
Schwarz et al. | Securing DMA through virtualization | |
Suzaki et al. | Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |