KR102021008B1 - Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법 - Google Patents

Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법 Download PDF

Info

Publication number
KR102021008B1
KR102021008B1 KR1020170106617A KR20170106617A KR102021008B1 KR 102021008 B1 KR102021008 B1 KR 102021008B1 KR 1020170106617 A KR1020170106617 A KR 1020170106617A KR 20170106617 A KR20170106617 A KR 20170106617A KR 102021008 B1 KR102021008 B1 KR 102021008B1
Authority
KR
South Korea
Prior art keywords
domain
internal
external
translation
intra
Prior art date
Application number
KR1020170106617A
Other languages
English (en)
Other versions
KR20190021632A (ko
Inventor
백윤흥
조영필
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020170106617A priority Critical patent/KR102021008B1/ko
Priority to US15/827,366 priority patent/US10380338B2/en
Publication of KR20190021632A publication Critical patent/KR20190021632A/ko
Application granted granted Critical
Publication of KR102021008B1 publication Critical patent/KR102021008B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

실시예들은 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법에 있어서, 시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 단계; 상기 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 단계; 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하는 단계; 및 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하는 단계를 포함하는 인트라 레벨 권한 분리 방법에 관련된다.

Description

ARM 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법{SYSTEM AND METHOD FOR INTRA-LEVEL PRIVILEGE SEPERATION FOR SYSTEM SOFTWARE ON ARM}
본 발명은 시스템 소프트웨어 관리 시스템 및 방법에 대한 것으로서, 더욱 구체적으로는 ARM 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법에 관한 것이다.
최근 모바일 시스템은 기술의 고도화에 따라 하나 이상의 시스템 소프트웨어가 탑재되는 것이 자연스러워지고 있다. 이러한 상황에서 임의의 시스템 소프트웨어가 공격에 오염되었을 때, 시스템에 저장된 개인정보의 탈취 등 심각한 문제가 발생하는 문제가 있다.
PCT/US2013/000074
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation SKEE: A Lightweight Secure Kernel-level Execution Environment for ARM
위와 같은 문제를 해결하기 위해서 시스템 소프트웨어를 소수의 민감한 연산을 수행하는 도메인과 그렇지 않은 대부분의 연산을 수행하는 도메인으로 나눔으로써, 시스템 소프트웨어가 공격에 오염되더라도 시스템의 민감한 연산을 보호할 수 있도록 하는 방안이 요구된다.
본 발명의 기술적 과제는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 시스템은, 시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 인트라 레벨 도메인 격리부, 상기 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 도메인 스위칭부를 포함한다.
바람직한 일 실시예에 있어서, 상기 시스템 소프트웨어는 제1 번역 테이블 기반 레지스터(TTBR0)에 기반하고, 상기 인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고, 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하되, 상기 제1 번역 테이블 기반 레지스터는 바텀(0)에서부터 가상 주소 공간 번역을 시작하는 것일 수 있다.
바람직한 일 실시예에 있어서, 상기 인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고, 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 26으로 설정할 수도 있다.
바람직한 일 실시예에 있어서, 상기 시스템 소프트웨어는 제2 번역 테이블 기반 레지스터(TTBR1)에 기반하고, 상기 인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고, 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하되, 상기 제2 번역 테이블 기반 레지스터는 탑(0xFFFF FFFF FFFF FFFF)에서부터 가상 주소 공간 번역을 시작할 수도 있다.
바람직한 일 실시예에 있어서, 상기 인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고, 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 25로 설정하고, 상기 내부 도메인에 대한 가상 주소 공간 내 데이터는 내부 도메인의 페이지 테이블 엔트리 중 중간 엔트리에 대하여 매핑될 수도 있다.
바람직한 일 실시예에 있어서, 페이지 테이블에 대한 섀도우 매핑은 읽기 및 쓰기 가능하되, 상기 내부 도메인에 대한 가상 주소 공간에 상기 섀도우 매핑에 대한 고정 오프셋이 더해질 수 있다.
바람직한 일 실시예에 있어서, 상기 도메인 스위칭부는, 번역 제어 레지스터(TCR)의 제어명령에 상기 번역 제어 레지스터의 값을 확인하는 코드 스니펫을 삽입할 수 있다.
바람직한 일 실시예에 있어서, 상기 도메인 스위칭부는, 번역 레지스터의 값을 검사하는 코드 스니펫을 인터럽트 핸들러 앞에 추가하고, 번역 제어 레지스터에 외부 도메인에 해당되는 값이 없으면, 시스템을 중단시킬 수 있다.
바람직한 일 실시예에 있어서, 상기 도메인 스위칭부는, 내부 도메인의 주소 공간을 비범용(non-global)으로 구성하고, 고유의 주소공간 식별자(ASID)를 내부 도메인에 할당할 수 있다.
바람직한 일 실시예에 있어서, 상기 시스템 소프트웨어는, 일반OS, 보안OS, 하이퍼바이저, ARM 트러스트존 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법은, 시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 단계; 상기 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 단계; 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하는 단계; 및 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하는 단계를 포함한다.
바람직한 일 실시예에 있어서, 상기 시스템 소프트웨어는 제1 번역 테이블 기반 레지스터(TTBR0)에 기반하고, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하는 단계 및 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 26으로 설정하는 단계를 더 포함할 수 있다.
바람직한 일 실시예에 있어서, 상기 시스템 소프트웨어는 제2 번역 테이블 기반 레지스터(TTBR1)에 기반하고, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하는 단계 및 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 25로 설정하는 단계를 더 포함하되, 상기 내부 도메인에 대한 가상 주소 공간 내 데이터는 내부 도메인의 페이지 테이블 엔트리 중 중간 엔트리에 대하여 매핑되는 것일 수 있다.
본 발명의 일 실시예에 따르면 각각의 시스템 소프트웨어에 대하여 두 개의 도메인에 각각 다른 권한을 적용함으로써, 각 시스템 소프트웨어에 공격을 당하더라도, 안전을 담보할 수 있는 최소한의 TCB를 마련함으로써, 시스템의 전반적인 안전도를 향상시킬 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 매커니즘을 설명하기 위한 도이다.
도 3은 본 발명의 일 실시예에 따른 내부 도메인과 외부 도메인의 주소 공간 레이아웃을 나타낸다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템의 동작 매커니즘을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 제1 레벨 과 제2 레벨 페이지 테이블 엔트리들 사이의 연결을 나타낸다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 도메인 스위칭부(120)에 포함되는 IDC(내부 도메인 요청 함수)를 나타낸다.
도 7은 본 발명의 일 실시예에 따라, 외부 도메인에서 시작되는 제어권 공격에 대응하여 스위칭 매커니즘의 원자가를 보호하기 위한 방어 메커니즘을 나타낸다.
도 8은 본 발명의 일 실시예에 따른 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법의 순서도이다.
도 9 내지 도 13은 본 발명의 일 실시예에 따른 실험 결과를 나타낸다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 다만, 실시형태를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. 또한, 도면에서의 각 구성요소들의 크기는 설명을 위하여 과장될 수 있으며, 실제로 적용되는 크기를 의미하는 것은 아니다
본 명세서에 기술된 실시예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 본 명세서에서 "부(unit)", "모듈(module)", "장치" 또는 "시스템" 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어 등 컴퓨터 관련 엔티티(entity)를 지칭한다. 예를 들어, 본 명세서에서 부, 모듈, 장치 또는 시스템 등은 실행중인 프로세스, 프로세서, 객체(object), 실행 파일(executable), 실행 스레드(thread of execution), 프로그램(program), 및/또는 컴퓨터(computer)일 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 컴퓨터에서 실행중인 애플리케이션(application) 및 컴퓨터의 양쪽이 모두 본 명세서의 부, 모듈, 장치 또는 시스템 등에 해당할 수 있다.
본 문서에서 사용된 표현 '~하도록 구성된(또는 설정된)(configured to)'은 상황에 따라, 예를 들면, '~에 적합한(suitable for),' '~하는 능력을 가지는(having the capacity to),' '~하도록 설계된(designed to),' '~하도록 변경된(adapted to),' '~하도록 만들어진(made to),' 또는 '~를 할 수 있는(capable of)'과 바꾸어 사용될수 있다. 용어 '~하도록 구성된(또는 설정된)'은 하드웨어적으로 '특별히 설계된(specifically designed to)'것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, '~하도록 구성된 장치'라는 표현은, 그 장치가다른 장치 또는 부품들과 함께 '~할 수 있는' 것을 의미할 수 있다. 예를 들면, 문구 'A, B, 및 C를 수행하도록 구성된(또는 설정된) 제어부'는 해당 동작을 수행하기 위한 전용 제어부(예: 임베디드 제어부), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 제어부(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어,모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에서, 전자 장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기,셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM,PlayStationTM), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
실시예들이 도면에 제시된 순서도를 참조로 하여 설명되었다. 간단히 설명하기 위하여 상기 방법은 일련의 블록들로 도시되고 설명되었으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 다른 블록들과 본 명세서에서 도시되고 기술된 것과 상이한 순서로 또는 동시에 일어날 수도 있으며, 동일한 또는 유사한 결과를 달성하는 다양한 다른 분기, 흐름 경로, 및 블록의 순서들이 구현될 수 있다. 또한, 본 명세서에서 기술되는 방법의 구현을 위하여 도시된 모든 블록들이 요구되지 않을 수도 있다. 나아가, 본 발명의 일 실시예에 따른 방법은 일련의 과정들을 수행하기 위한 컴퓨터 프로그램의 형태로 구현될 수도 있으며, 상기 컴퓨터 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수도 있다.
이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.
본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템은 ARM사의 프로세서에서 동작하는 시스템 소프트웨어를 관리하는데 이용될 수 있다. 여기서 ARM사의 프로세서는 64비트 AArch64일 수 있으나 이에 제한되는 것은 아니고 64비트(또는 다른 비트)로 구현되는 임의의 차세데 프로세서 및 그 기반 전자 장치에 적용될 수 있다.
본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템은 일련의 명령어를 처리하기 위한 프로세서 코어 및 레지스터 뱅크 등을 포함할 수 있다.
또한 인트라 레벨 권한 분리 시스템은 적어도 부분적으로 소프트웨어 이거나 온전한 소프트웨어일 수도 있다. 그러나 다른 실시예에서는 적어도 부분적으로 하드웨어 이거나, 소프트웨어가 탑재된 하드웨어일 수도 있다.
인트라 레벨 권한 분리 시스템은 시스템 소프트웨어를 두 도메인으로 분리하여 이용한다. 여기서 두 도메인은 내부 도메인과 외부 도메인을 포함하며, 동일한 프로세서 권한 레벨에서 동작할 수 있다. 다만 내부 도메인은 외부 도메인에 비하여 더 큰 권한을 갖는다. 예컨대 내부 도메인은 페이지 테이블과 시스템 컨트롤 레지스터와 같이 보안에 민감한 시스템 리소스들에 대하여 독점 제어 권한을 가질 수 있다. 따라서 본 발명의 인트라 레벨 권한 분리 시스템은 내부 도메인을 보호함으로써 외부 도메인이 공격자의 제어 하에 있더라도 시스템 리소스들을 보호할 수 있다.
도 1은 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템의 블록도이다. 도 1을 참조하면 인트라 레벨 권한 분리 시스템(100)은 인트라 레벨 도메인 격리부(110) 및 도메인 스위칭부(120)를 포함할 수 있다.
인트라 레벨 권한 분리 시스템이 적용되는 컴퓨터 장치는 ARM 프로세서, 메모리, 저장장치 등을 포함하는 장치일 수 있다. 즉 본 발명은 ARM 사의 프로세서에서 구동되는 시스템 소프트웨어를 관리하는 장치 및 방법에 관련될 수 있다. 여기서 ARM 프로세서는 커널이나 응용 프로그램 또는 하이퍼바이저의 소프트웨어를 구동시킬 수 있다. 메모리는 RAM 또는 ROM일 수 있으며, 저장장치는 하드 디스크 또는 SSD 등일 수 있으나 이에 본 발명이 제한되는 것은 아니다.
인트라 레벨 도메인 격리부(110)는 시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리할 수 있다.
도메인 스위칭부(120)는 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정할 수 있다. 이를 위해 도메인 스위칭부(120)는 현재 제어중인 도메인의 종류에 따라서 가상 주소 범위를 동적으로 조정할 수 있다. 여기서 시스템 소프트웨어는 일반OS, 보안OS, 하이퍼바이저, ARM 트러스트존 중 적어도 하나를 포함할 수 있으나 이에 본 발명이 제한되는 것은 아니다.
I 도메인 격리 메커니즘
인트라 레벨 도메인 격리부(110)는 내부 도메인을 보호하기 위해 위와 같이 두 도메인을 분리(격리)한다. 인트라 레벨 도메인 격리부(110)는 가상 주소 공간의 범위를 동적으로 조정하여 내부 도메인에 대한 메모리를 격리하거나 숨길 수 있다.
도 2는 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 매커니즘을 설명하기 위한 도이다. 도 2를 참조하면 내부 도메인에서 유효 가상 주소 범위(21)는 내부 및 외부 도메인 영역을 모두 포함하나, 외부 도메인에서 유효 가상 주소 범위(22)는 외부 도메인 영역만을 포함한다.
도 3은 본 발명의 일 실시예에 따른 내부 도메인과 외부 도메인의 주소 공간 레이아웃을 나타낸다. 도 3을 참조하면 인트라 레벨 도메인 격리부(110)는 내부 도메인과 외부 도메인이 메모리 주소 공간에서 비대칭 뷰를 가지도록 내부 도메인과 외부 도메인을 설정할 수 있다. 예컨대 인트라 레벨 도메인 격리부(110)는 각 도메인에의 메모리 블록에 대해 서로 다른 액세스 권한을 할당한다. 따라서 내부 도메인은 전체 메모리 영역에 액세스할 수 있도록 권한이 할당되고, 외부 도메인은 내부 도메인에 비하여 제한된 권한을 가지게 된다.
본 발명에 있어서 페이지 테이블이나 시스템 제어 레지스터와 같이 보안에 민감한 시스템 리소스들에 대한 제어 권한은 외부 도메인에 대하여 제한되나 내부 도메인에 대하여는 제한되지 아니한다. 따라서 외부 도메인은 위와 같은 시스템 리소스를 제어하기 위해서는 내부 도메인에 지정된 인터페이스를 통해 요청을 전달해야 한다.
일 실시예에 있어서 인트라 레벨 도메인 격리부(110)는, 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고, 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정할 수 있다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템의 동작 매커니즘을 나타낸다. 인트라 레벨 권한 분리 시스템(100)은 시스템 동작시(런타임시) 유효한 주소 공간의 범위를 줄이거나 늘림으로써 현재 제어중인 두 도메인의 종류에 따라서 내부 도메인의 메모리 영역을 차단하거나 액세스를 허용할 수 있다. 우선 도 4c는 도 4a 또는 도4b에서 설명하고 있는 가상 주소 범위 조정이 시간순서대로 적용되는 예시를 나타내고 있다.
도 4a는 본 발명의 일 실시예에 따라 제1 번역 테이블 기반 레지스터(TTBR0)에 기반하는 시스템 소프트웨어에 대한 주소 매핑 방법을 나타낸다. 여기서 제1 번역 테이블 기반 레지스터는 바텀(0)에서부터 가상 주소 공간 번역을 시작하는 것일 수 있다.
본 명세서 및 도면에서 번역 테이블 기반 레지스터(TTBR) 또는 번역 제어 레지스터(TCR)는 어플리케이션(EL0), 일반 OS 및 보안 OS(EL1), 하이퍼바이저(EL2), 보안 모니터(EL3) 등 다양한 시스템 레벨(exception level)에 적용될 수 있으며, 해당 레지스터가 적용되는 시스템 레벨을 아래와 같이 언더바로 연결하여 표시한다. 예컨대 TTBR0_E2은 하이퍼바이저에 적용되는 레지스터이고, 여기서 Ex에서 x가 0 내지 3 중 임의의 수일 수 있다.
인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고, 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 26으로 설정할 수 있다.
여기서 T0SZ와 T1SZ는 다양한 레벨의 번역 제어 레지스터(TCR_ELx)에 포함되는 필드이다. 번역 제어 레지스터(TCR_ELx)는 TTBR0_ELx로 정의되는 각 레벨의 메모리 관리를 컨트롤 하는 역할을 수행하는 것으로서, T0SZ와 T1SZ는 유효한 가상주소 공간의 범위를 정의한다.
일반적으로 각 레벨은 하나의 TTBR0_ELx 레지스터를 가진다. 예를 들면, 레벨 2는 TTBR0_EL2를 가지고 이 때, 유효한 가상주소 공간은 TCR_EL2의 T0SZ를 통해 정의된다. 그러나 레벨 1은 예외적으로 유저공간과 커널공간을 동시에 표시하기 위해 두 개의 TTBR레지스터, 즉 TTBR0_EL1와 TTBR1_EL1를 가지게 된다. 따라서 TCR_EL1은 각각의 TTBR레지스터에 대응되는 T0SZ와 T1SZ를 가지고 유효한 가상 공간의 범위를 정의할 수 있다.
도 4a를 참조하면 두 도메인이 동일한 페이지 테이블을 공유하기 때문에 TTBR0_ELx(임의 시스템 레벨에 대한 제1 번역 테이블 기반 레지스터)의 값은 내부 또는 외부 도메인이 제어되는지 여부에 관계없이 일정하게 유지된다.
도 4a에 있어서 외부 도메인이 제어권을 가지면 외부 도메인의 유효한 가상 주소 범위는 번역 제어 레지스터(TCR)의 필드 TCR_ELx.T0SZ가 27로 설정되어 결국 37 비트 3 (128GB)로 제한된다. 이를 통해, 가상 주소(VA [36:30])의 상위 일곱 비트에 의해 나타나는 현재 페이지 테이블의 모든 128개 제1 레벨 엔트리들은 외부 도메인을 매핑하는데 이용된다. 이 경우 내부 도메인의 메모리 영역과 관련된 유효한 엔트리들이 없기 때문에 외부 도메인은 내부 도메인에 액세스 할 수 없다.
반면, 내부 도메인이 제어권을 가지면 번역 제어 레지스터(TCR)의 필드 TCR_ELx.T0SZ 를 26으로 변경함으로써 유효한 가상 주소 범위는 38 비트 (256GB)로 확장된다. 결과적으로 현재 페이지 테이블의 유효한 첫 번째 레벨 엔트리는 128에서 256으로 증가하고, 가상 주소 (VA [37:30])의 상위 8 비트는 연관된 엔트리를 나타낸다. 이 경우 원본 128개 엔트리는 여전히 외부 도메인의 메모리 영역에 대응하며, 확장된 128개 엔트리는 내부 도메인에 대응된다. 따라서 내부 도메인은 제한 없이 두 도메인의 전체 메모리 영역에 액세스 할 수 있게 된다.
도 4b는 본 발명의 일 실시예에 따라 제2 번역 테이블 기반 레지스터(TTBR1)에 기반하는 시스템 소프트웨어에 대한 주소 매핑 방법을 나타낸다. 여기서 제2 번역 테이블 기반 레지스터는 탑(예컨대 0xFFFF FFFF FFFF FFFF)에서부터 가상 주소 공간 번역을 시작하는 것일 수 있다.
일 실시예에서 인트라 레벨 도메인 격리부(110)는, 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고, 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정할 수 있다.
일 실시예에서 인트라 레벨 도메인 격리부(110)는, 상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고, 상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 25로 설정하고, 상기 내부 도메인에 대한 가상 주소 공간 내 데이터는 내부 도메인의 페이지 테이블 엔트리 중 중간 엔트리에 대하여 매핑될 수 있다.
일반적으로 EL1(OS 레벨)에서 실행되는 일반 OS 및 보안 OS는 AARch64에서 주소 변환을 위해 TTBR1_EL1(제2 번역 테이블 기반 레지스터)을 이용한다. 그러나 OSes의 경우 도 4a에서 설명한 격리 메커니즘을 사용할 수 없다. TTBR1_EL1의 번역 시작점과 방향이 TTBR0_ELx의 번역 시작점과 방향과 다르기 때문이다.
즉, 일 실시예에 있어서, TCR_EL1.T1SZ의 값을 늘리거나 줄이면 유효한 가상 주소 범위와 현재 페이지 테이블의 유효한 제1 레벨 엔트리들이 반대 방향으로 변경되는 문제가 있다. 예를 들어 TCR_EL1.T1SZ가 27 일 때 주소 0xFFFF FFE0 0000 0000은 0 번째 제1 레벨 엔트리들에 연결된다. (VA [36:30] 참조).
반면, TCR_EL1.T1SZ가 26으로 변경되면, 동일한 가상 주소가 256 번째 엔트리 (VA [37:30]가 260인 것 참조)에 연결되고, 0xFFFF FFC0 0000 0000 주소가 0 번째 엔트리에 연결된다(VA [37:30]가 0인 것 참조). 가상 주소와 첫 번째 수준의 페이지 엔트리 간의 연결에서 이러한 불일치는 내부 및 외부 도메인의 동일한 가상 주소가 서로 다른 실제 주소로 매핑되는 문제를 야기시킨다.
이 문제를 해결하기 위해, 본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 시스템은 도 4b에 도시된바와 같이 제2 번역 레지스터를 이용한 대체 주소 매핑 전략을 이용한다. 이 경우 내부 도메인 (39 비트, 512GB)의 유효 가상 주소 범위는 TCR_EL1.T1SZ가 27에서 25로 변경되어 외부 도메인의 ㅇ효 가상 주소 범위 보다 4 배 더 크게 된다. 따라서 현재 페이지 테이블의 제1 레벨 엔트리들 수는 128에서 512로 증가한다.
본 발명에 있어서 내부 도메인 영역에 매핑하기 위해 내부 도메인의 제1 레벨 페이지 테이블의 엔트리 중 중간에서 256 엔트리 (128 번에서 383 번까지)을 사용한다. 아래쪽 128 개 엔트리 (0 번째에서 127 번째까지)이 원래 외부 도메인 지역에 매핑하기 위해 사용된다면, 내부 도메인에서는 외부 도메인 지역에 매핑하기 위해 이러한 엔트리를 사용하지 않는다.
그러나 내부 도메인에서 이러한 엔트리들이 외부 도메인 영역의 가상 주소 공간에 대응되기 때문에 상위 128 개 엔트리(384 번째 엔트리에서 511 번째 엔트리까지)를 사용할 수 있다.
도 5는 본 발명의 일 실시예에 따른 제1 레벨 과 제2 레벨 페이지 테이블 엔트리들 사이의 연결을 나타낸다. 도 5를 참조하면 인트라 레벨 도메인 격리부(110)는, 아래 128 개 엔트리의 내용을 상위 128 개 엔트리에 복사하여 맨위 제1 레벨 엔트리들이 아래의 제1 레벨 엔트리가 가리키는 동일한 제2 레벨 엔트리를 가리 키도록 구성한다. 결과적으로, 외부 도메인 영역의 가상 주소 공간이 내부 도메인과 외부 도메인간에 동일하게 유지되기 때문에, 내부 도메인이 불일치 문제없이 외부 도메인 영역에 액세스하도록 할 수 있다.
또한 내부 도메인이 외부 도메인의 동기화된 주소 뷰를 유지할 수 있어야 하므로 현재 페이지 테이블의 아래쪽 128 개 엔트리가 채워지거나 수정되면 인트라 레벨 도메인 격리부(110)는 동일한 작업을 상위 128 개 엔트리에 반복할 수 있다. 이 동기화 방법은 제1 레벨 엔트리들이 초기 설정 후에 거의 수정되지 않으므로 오버헤드를 줄이는 일 방안이 될 수 있다.
본 발명의 일 실시예에 있어서, 페이지 테이블에 대한 섀도우 매핑은 읽기 및 쓰기 가능하되, 상기 내부 도메인에 대한 가상 주소 공간에 상기 섀도우 매핑에 대한 고정 오프셋이 더해질 수 있다. 본 발명에 있어서, 외부 도메인이 페이지 테이블의 내용을 수정하지 못하도록 페이지 테이블의 메모리 영역은 읽기 전용으로 구성된다. 일 실시예에 있어서 페이지 테이블은 시스템(100) 내 또는 외부 임의의 레지스터에 기록되어있을 수 있다.
그러나 내부 및 외부 도메인이 동일한 페이지 테이블을 공유하므로 내부 도메인도 이러한 제한으로 인해 페이지 테이블을 이용하는데 방해 받는 문제가 있을 수 있다. 따라서 일 실시예에 있어서 페이지 테이블에 대한 섀도우 매핑은 읽기 및 쓰기가 가능하도록 구성하고 내부 도메인의 가상 주소 공간에 고정 된 오프셋을 추가할 수 있다. 따라서 내부 도메인은 섀도우 매핑을 통해 페이지 테이블의 내용을 업데이트 할 수 있습니다.
본 발명의 일 실시예에 따른 페이지 테이블은 내부 도메인과 외부 도메인을 확실히 격리하기 위해서 아래의 조건 중 적어도 하나를 만족 할 수 있다.
1) 내부 도메인의 일부가 외부 도메인의 메모리 영역에 매핑될 수 없을 것
2) 도메인 코드는 읽기 전용으로 구성될 것
3) 시스템 제어 레지스터를 구성할 수 있는 권한의 명령어는 쓰기 가능한 메모리 영역이나 권한이 낮은 소프트웨어의 메모리 영역에서 실행되지 않을 것
이를 위해서, 본 발명의 일 실시예에 따른 인트라 레벨 도메인 격리부(110)는, 종래 기술인 페이징 위임(paging delegation) 기법을 적용할 수 있다. 인트라 레벨 도메인 격리부(110)는, 초기 페이지 테이블을 읽기 전용으로 구성하여 외부 도메인에서 페이지 테이블을 수정하지 못하도록 제한할 수 있다. 또한 외부 도메인 코드를 사용하여 모든 페이지 테이블 수정 작업을 내부 도메인으로 라우팅할 수 있다. 그리고 나서 내부 도메인은 제약 조건을 검사하고 외부 도메인에 대한 작업을 수행한다. 여기서 페이지 테이블은 읽기 전용으로 구성되지만, 내부 도메인은 섹션 섀도우 매핑을 통해 페이지 테이블의 내용을 수정할 수 있다.
또한 페이지 테이블의 무결성이 유지되더라도 시스템 제어 레지스터를 악용하여 격리 메커니즘을 여전히 수행 할 수 있다. 예를 들어, 외부 도메인은 MMU 또는 TCR을 비활성화하여 가상 주소 범위를 확대하고 내부 도메인 영역에 액세스함으로써 SCTLR(system control register)을 수정하여 메모리 보호 기능을 제거 할 수도 있다.
따라서 인트라 레벨 도메인 격리부(110)는, 시스템 제어 레지스터에 대한 제어 권한을 외부 도메인로부터 빼앗을 수 있다. 이를 위해 외부 도메인 외부 도메인의 민감한 레지스터를 제어하는 권한있는 명령어를 후크로 대체하여 내부 도메인에서 이를 검증하고 에뮬레이트할 수 있다.
첫 번째로 명령어 opcode는 고정된 길이를 갖고, AArch64 상에 정렬되기 때문에 권한있는 명령어를 철저히 식별 할 수 있고, 두 번재로 위에서 언급한 페이지 테이블에 적용된 조건 때문에 공격자는 외부 도메인에서 권한있는 명령어를 실행할 수 없다. 따라서 이 방법의 유효성이 보장 될 수 있다.
본 발명의 일 실시예에 따른 인트라 레벨 격리 메커니즘은 TxSZ 기반의 동적 가상 주소 범위 조정에 따르므로, 프로세서 코어 당 TxSZ 필드가 포함 된 TCR이 있다. 따라서 본 발명의 시스템은 코어의 각 TxSZ를 제어하여 각 코어에 인트라 레벨 격리를 실현할 수 있다.
또한 일 실시예에 있어서, 기능을 확장하기 위해 로드 가능 모듈을 외부 도메인에 추가 할 수 있다(특히 일반 OS에서). 그러나 시스템 제어 레지스터와 관련된 권한있는 명령어를 외부 도메인에 삽입하여 내부 도메인을 손상시킬 여지를 공격자에게 제공 할 수도 있다. 이 문제를 해결하기 위해 본 발명은 외부 도메인으로부터 코드 페이지의 수정 또는 새 코드 페이지를 발견하면, 해당 페이지를 스캔하여 권한있는 명령이 포함되어 있는지 여부와 보호 정책을 시행할지 여부를 확인한다.
성능을 향상시키기 위해 주변 장치는 CPU의 조정없이 직접 메모리 액세스 (DMA)를 통해 DRAM에 액세스 할 수도 있다. 그러나 공격자가 CPU를 사용하는 보안 엔티티의 모니터링을 피하기 위해 DMA를 악용할 수도 있다. 또한 공격자는 내부 도메인에있는 모니터를 회피 할 수도 있다. DMA 공격을 막기위해 본 발명의 장치는 종래 IOMMU에 대응하는 시스템 MMU를 사용할 수 있다.
이를 위해 본 발명에 있어서 인트라 레벨 도메인 격리부는, 외부 도메인이 시스템 MMU의 페이지 테이블을 수정하지 못하게 제한할 수 있다. 외부 도메인에서 요청이 오는 경우 내부 도메인 영역을 가리키는 페이지 테이블 엔트리가 없는 것을 확인한 이후에만 내부 도메인은 테이블 페이지를 수정하고 DMA를 허용한다.
한편 모든 주변 장치가 시스템 MMU를 이용할 수 있는 것은 아니다. 따라서일 실시예에 따른 인트라 레벨 도메인 격리부는, 외부 도메인이 DMA를 직접 제어하지 못하도록 제한 할 수 있다. ARM에서 주변 장치는 고유한 사용자 지정 DMA 컨트롤러 또는 SoC의 범용 DMA 컨트롤러를 사용하여 DMA를 수행 할 수 있기 때문에 두 경우 모두 외부 도메인은 메모리 맵핑 된 제어 레지스터를 통해서만 DMA를 제어 할 수 있다. 따라서 시스템 MMU를 사용한 DMA 보호와 마찬가지로 인트라 레벨 도메인 격리부는, 내부 도메인이 DMA 제어 레지스터에 해당하는 영역에 쓰기 만 허용하여 DMA를 제한 할 수도 있다.
II 도메인 스위칭 메커니즘
본 발명의 일 실시예에 있어서, 도메인 스위칭부(120)는, 번역 제어 레지스터(TCR)의 제어명령에 상기 번역 제어 레지스터의 값을 확인하는 코드 스니펫을 삽입할 수 있다.
또한 도메인 스위칭부(120)는, 번역 레지스터의 값을 검사하는 코드 스니펫을 인터럽트 핸들러 앞에 추가하고, 번역 제어 레지스터에 외부 도메인에 해당되는 값이 없으면, 시스템을 중단시킬 수 있다.
일 예에서, 도메인 스위칭부(120)는, 내부 도메인의 주소 공간을 비범용(non-global)으로 구성하고, 고유의 주소공간 식별자(ASID)를 내부 도메인에 할당할 수도 있다.
도메인 스위칭부(120)는 내부 도메인 요청(Inner Domain Call)을 나타내는 인터페이스 함수(IDC)를 포함할 수 있다.
IDC는 내부 도메인에서 들어오는 요청을 처리하는 핸들러용 래퍼(wrapper) 함수로서 기능하여, 내부 도메인과 외부 도메인 간의 제어 전환 작업을 수행한다. IDC는 내부 도메인으로 들어가기 위해서 고유한 방식을 외부 도메인에 제공한다. 또한 IDC는 외부 도메인에 포함되며 내부 도메인에 관련 요청을 보내 민감한 리소스를 처리하기 위해 특정 매개 변수로 호출된다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 도메인 스위칭부(120)에 포함되는 IDC(내부 도메인 요청 함수)를 나타낸다. 좌측끝에 기재된 숫자는 라인 번호를 의미하며 도 6a 및 도 6b는 EL1에서의 동작에대하여 설명되어 있지만 유사한 방식으로 다른 레벨 ELx에도 적용될수 있다.
도 6a 및 도 6b를 참조하면, IDC는 IDC는 내부 도메인을 표시하고 입력하기 위해 유효 가상 주소 범위를 확장하는 엔트리(entry) 게이트와 외부 도메인으로 돌아가고 내부 도메인을 숨기기 위해 유효 가상 주소 범위를 줄이는 엑시트(exit) 게이트로 구성된다.
IDC가 외부 도메인에서 호출되면, 엔트리 게이트는 인터럽트를 비활성화하고 가상 주소 범위를 확장하고 내부 도메인 스택으로 전환한다. 그 후 내부 도메인 핸들러로 이동(jump)한다. 내부 도메인이 작업을 끝내고 핸들러에서 돌아오면 엑시트 게이트는 순차적인 엔트리 게이트의 작업을 반대 방향으로 실행한다.
1) 가상주소 범위 조정
IDC의 핵심 기능은 유효한 가상 주소 범위를 제어하여 도메인 전환의 방향에 따라 내부 도메인 영역을 나타내거나 감추는 것이다. 따라서 입구 및 엑시트 게이트는 TCR_ELx.TxSZ를 수정하여 유효한 가상 주소 범위를 확장 및 축소할 수 있다.
외부 도메인은 TCR의 값을 수정할 수 없기 때문에 내부 도메인을 노출시키기 위해 외부 도메인에있는 공격자는 게이트의 TCR 제어 명령어(도 6의 라인 18 및 52)로 이동하여 TCR을 조작하려고 시도 할 수 있다. TCR은 주소 변환 시스템을 제어하는 내부 도메인의 보안 즉, TxSZ, Ax 및 TGx에 직접 관련되는 여러 필드로 구성되기 때문에 더 치명적일 수 있습니다.
그러나 TCR의 모든 필드는 시스템 부팅시 설정된 후 일정한 값을 유지한다. 따라서 공격자가 TCR 조작에 성공하더라도 수정된 TCR로 외부 도메인을 실행하지 못하게 하여 내부 도메인에 액세스하지 못하게 할 수 있다. 이를 위해 도메인 스위칭부(120)는 도 6의 IDC 코드의 라인 21-27 및 54-60에서 볼 수 있듯이 TCR 제어 명령 뒤에 TCR 값의 정확성을 확인하는 간단한 코드 스니펫을 삽입할 수 있다.
2)인터럽트 비활성화
IDC는 게이트의 원자가를 보장하기 위해 엔트리 게이트에서 인터럽트를 비활성화한다. 제어권이 게이트 또는 내부 도메인에 있을 때 외부 도메인에 의해 제어가 인터셉트되지 못하게 함으로써 TxSZ 기반 권한 분리 메커니즘을 간단히 강화할 수 있다.
그러나 공격자가 제어 흐름을 변경해 엔트리 게이트에서 인터럽트 금지 명령 (도 6의 라인 11-13)을 건너뛰면 이 기능을 무시할 수 있다. 그런 다음 공격자는 악의적으로 인터럽트를 생성하여 항목 게이트에서 TCR을 수정 한 직후에 제어권을 얻거나 (2)내부 도메인을 실행하는 동안 제어권을 가져올 수 있다.
도 7은 본 발명의 일 실시예에 따라, 외부 도메인에서 시작되는 제어권 공격에 대응하여 스위칭 매커니즘의 원자가를 보호하기 위한 방어 메커니즘을 나타낸다. 도 7을 참조하면 인터럽트 처리기 앞에 IDC 코드의 라인 54-60과 유사한 코드 스니펫을 추가한다. 코드 스니펫은 TCR의 값을 검사하고, TCR에 외부 도메인에 해당하는 값이 없으면 (즉, 내부 도메인이나 IDC 중간에 인터럽트가 발생하면) 시스템을 중지한다.
3) ASID (주소 공간 식별자: Address Space Identifier)
제어가 내부 도메인에서 외부 도메인으로 되돌아온 후, 외부 도메인 내 공격자는 내부 도메인의 주소 매핑을 저장하는 캐시된 TLB 엔트리를 통해 내부 도메인 영역을 도청 할 수 있다. 이 문제를 해결하기 위해 IDC는 외부 도메인으로 돌아가기 전에 엑시트 게이트의 내부 도메인과 관련된 모든 TLB 엔트리를 무효화하는 것이 필요하다. 그러나 이러한 방법은 TLB 누락율을 증가시켜 성능을 저하시킬 수 있다.
그러나 AArch64는 EL1에서 ASID를 사용한다. 따라서 시스템 소프트웨어가 EL1에서 실행될 때 TLB 무효화 하지 않을 수 있다. 이를 위해 내부 도메인의 주소 공간을 비범용(non-global)으로 구성하고 고유한 ASID를 내부 도메인에 할당한다. 따라서 다른 ASID를 가진 외부 도메인은 ASID의 불일치로 인해 캐시된 TLB 엔트리를 통해 내부 도메인에 액세스하는 것이 제한된다.
이를 위해 본 발명의 일 실시예에 따른 도메인 스위칭부(120)는 도메인을 전환하는 동안 현재 ASID를 변경해야 한다. 예컨대 EL1에서 ASID는 TTBRx_EL1에 의해 정의되므로 도메인 스위칭부(120)는 TTBRx_EL1의 값을 업데이트하여 현재 ASID를 변경한다.
또한 도메인 스위칭부(120)는 TCR_EL1.A1을 사용하여 현재 ASID를 변경할 수도 있다. AArch64 리눅스의 기본 설정에 따르면 TCR_EL1.A1은 0이다. 즉, TTBR0_EL1은 현재 ASID를 결정한다. 도메인 스위칭부(120)는 외부 도메인을 떠나 리눅스 설정을 따르지만 도메인 내부에서 TTBR1_EL1은 도메인 전환 중에 TCR_EL1.A1을 토글하여 현재 ASID를 결정한다. 따라서 도메인 스위칭부(120)는 고유 한 ASID를 내부 도메인에 할당하기 위해 (1) 고유한 ASID를 TTBR1_EL1에 쓰고 (2)동일한 ASID를 TTBR0_EL1에 할당하지 않을 수 있다.
4)내부 도메인 스택(Inner Domain Stack)
스택은 코드 재사용 공격과 같은 공격 수단으로 빈번히 사용된다. 또한 많은 유형의 중요한 데이터가 스택에 일시적으로 저장된다. 따라서 내부 도메인은 외부 도메인과 분리된 자체 스택을 사용해야한다. 따라서 IDC의 엔트리 게이트는 스택 포인터의 값을 내부 도메인의 미리 할당된 스택으로 전환하고 (도 6의 라인 29-38 참조), 엑시트 게이트는 원 스택 포인터로 스택 포인터를 복원한다 (도 6의 라인 46-47 참조). 본 발명의 시스템(100)는 멀티 코어 환경을 지원하기 때문에 각 코어의 내부 도메인에는 자체 스택이 있다.
5) 각 시스템 레벨에 대한 포트
본 발명의 시스템(100)를 일반 OS 또는 EL1에서 실행중인 보안 OS에 통합하면 도 6a,b에서 나타난 바에 따라 IDC를 사용할 수 있다. 그러나 본 발명의 시스템(100)가 EL2 또는 EL3에서 실행되는 다른 레벨의 시스템 소프트웨어 (즉 하이퍼 바이저 또는 보안 모니터)인 경우 IDC를 약간 수정해야 할 수 있다. ASID 기능은 EL2 및 EL3에서 지원되지 않기 때문이다.
따라서 IDC는 내부 도메인이 외부 도메인에 노출되지 않도록 TLB 무효화를 수행해야 한다. 보다 구체적으로, IDC 코드에서 TCR 제어 명령어 (도 6의 라인 18 및 52 참조)는 TCR.A1의 값을 변경할 필요가 없으며 TLB 무효화 명령어 (TLBI *)는 엑시트 게이트의 라인 61에 삽입 되어야 한다. 또한 IDC는 내부 도메인에 들어갈 때 TxSZ를 25 대신 26으로 설정할 수 있다. 그러나 내부 도메인에 훨씬 큰 주소 공간이 필요한 경우에는 이와 같이 설정하지 아니할 수 있다.
본 발명의 일 실시예에 따른 인트라 레벨 권한 분리 기술은 내부 도메인이 내부 도메인 영역에 존재하는 보안 응용 프로그램에 충분한 모니터링 기능을 제공 할 수 있다. 예컨대 내부 도메인은 초기에 보안 응용 프로그램에 대해 제한되지 않는 메모리 액세스를 제공하며, 보안 응용 프로그램에서 가상화 환경에서 널리 사용되는 트랩 및 에뮬레이션 기술을 모방하여 시스템 동작을 모니터링 할 수 있다
도 8은 본 발명의 일 실시예에 따른 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법의 순서도이다. 본 발명은 상술한 인트라 레벨 권한 분리 시스템(100)에의해 구현될 수도 있다. 도 8을 참조하면 ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법은 시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 단계(S100), 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 단계(S200), 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하는 단계(S300) 및 상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하는 단계(S400)를 포함할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터로 판독 가능한 기록 매체는 상술한 방법을 실행하기 위한 명령을 포함할 수 있다. 또한 상기 방법은 상술한 시스템(100)의 동작을 적어도 부분 적으로 또는 모두포함할 수 있다.
도 9 내지 도 13은 본 발명의 일 실시예에 따른 실험 결과를 나타낸다.
도 9는 외부 도메인에서 내부 도메인 콜(IDC)를 호출했을 때, 응답속도를 cpu의 cycle로 나타낸 것이다. 도 9에 있어서 Big Core 및 Little Core는 ARM SoC에서 고성능 코어와 저성능 코어가 함께 사용되는 big.LITTLE 구조에 대하여 각각의 경우에 대해서 실험을 한 것이다. 또한 ASID와 TI (TLB Invalidation)은 각각 내부 도메인에서 외부 도메인으로 빠져나갈 때 사용된 보안 테크닉을 나타낸다.
구체적으로, 외부 도메인이 TLB에 캐시된 내부 도메인의 주소 변환 정보를 악용해 내부 도메인에 접근하는 것을 막기 위한 방안이 필요할 수 있다. 이때, ASID를 통해 TLB를 서로 분리해 사용하는 방법을 사용할 경우와 TI를 통해 내부 도메인에서 외부 도메인으로 빠져나갈 당시, 모든 TLB 정보를 무효화 하는 방법을 각각 실험한 결과이다.
도 10 및 도 11은 보안 어플리케이션(security application)이 동작하지 않는 경우 커널에 대한 벤치마크 (LMBench)와 어플리케이션에 대한 벤치마크 (Synthetic Benchmark)를 나타낸다. 또한 도 12 및 도13은 보안 어플리케이션(security application)이 동작하는 경우 커널에 대한 벤치마크 (LMBench)와 어플리케이션에 대한 벤치마크 (Synthetic Benchmark)를 나타낸다. 즉 도 12 내지 도 13은 내부 도메인에 임의의 보안 어플리케이션을 설치한 결과를 나타낸다. 본 보안 어플리케이션은 외부 도메인의 시스템 콜을 트랩하여 외부 도메인에서 동작하는 어플리케이션들이 특정한 접근 규칙(access policy)을 따르는지 확인한다.이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나, 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (13)

  1. ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 시스템에 있어서,
    시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 인트라 레벨 도메인 격리부;
    상기 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 도메인 스위칭부를 포함하고,
    상기 도메인 스위칭부는, 핸들러용 래퍼 함수로 기능하여 내부 도메인과 외부 도메인간의 제어 전환 작업을 수행하는 인터페이스 함수를 포함하는 인트라 레벨 권한 분리 시스템.
  2. 제1항에 있어서,
    상기 시스템 소프트웨어는 제1 번역 테이블 기반 레지스터(TTBR0)에 기반하고,
    상기 인트라 레벨 도메인 격리부는, 상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고,
    상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하되,
    상기 제1 번역 테이블 기반 레지스터는 바텀(0)에서부터 가상 주소 공간 번역을 시작하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  3. 제2항에 있어서,
    상기 인트라 레벨 도메인 격리부는,
    상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고,
    상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 26으로 설정하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  4. 제1항에 있어서,
    상기 시스템 소프트웨어는 제2 번역 테이블 기반 레지스터(TTBR1)에 기반하고,
    상기 인트라 레벨 도메인 격리부는,
    상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하고,
    상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하되,
    상기 제2 번역 테이블 기반 레지스터는 탑(0xFFFF FFFF FFFF FFFF)에서부터 가상 주소 공간 번역을 시작하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  5. 제4항에 있어서,
    상기 인트라 레벨 도메인 격리부는,
    상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하고,
    상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 25로 설정하고, 상기 내부 도메인에 대한 가상 주소 공간 내 데이터는 내부 도메인의 페이지 테이블 엔트리 중 중간 엔트리에 대하여 매핑되는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  6. 제1항에 있어서,
    페이지 테이블에 대한 섀도우 매핑은 읽기 및 쓰기 가능하되, 상기 내부 도메인에 대한 가상 주소 공간에 상기 섀도우 매핑에 대한 고정 오프셋이 더해진 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  7. 제1항에 있어서,
    상기 도메인 스위칭부는,
    번역 제어 레지스터(TCR)의 제어명령에 상기 번역 제어 레지스터의 값을 확인하는 코드 스니펫을 삽입하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  8. 제1항에 있어서,
    상기 도메인 스위칭부는,
    번역 레지스터의 값을 검사하는 코드 스니펫을 인터럽트 핸들러 앞에 추가하고,
    번역 제어 레지스터에 외부 도메인에 해당되는 값이 없으면, 시스템을 중단시키는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  9. 제1항에 있어서,
    상기 도메인 스위칭부는,
    내부 도메인의 주소 공간을 비범용(non-global)으로 구성하고, 고유의 주소공간 식별자(ASID)를 내부 도메인에 할당하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  10. 제1항에 있어서,
    상기 시스템 소프트웨어는,
    일반OS, 보안OS, 하이퍼바이저, ARM 트러스트존 중 적어도 하나를 포함하는 것을 특징으로 하는 인트라 레벨 권한 분리 시스템.
  11. ARM 프로세서의 시스템 소프트웨어를 관리하는 인트라 레벨 권한 분리 방법에 있어서,
    시스템 소프트웨어를 권한 범위가 서로 다른 내부 도메인 및 외부 도메인으로 분리하는 단계;
    상기 내부 도메인과 외부 도메인 중 현재 제어 중인 도메인의 종류에 따라서 내부 도메인의 메모리 영역에 대한 액세스 허용 여부를 결정하는 단계;
    상기 외부 도메인이 제어 중이면, 상기 내부 도메인의 메모리 영역을 유효 가상 주소 범위 밖으로 설정하는 단계; 및
    상기 내부 도메인이 제어 중이면, 상기 내부 도메인과 외부 도메인의 메모리 영역을 유효 가상 주소 범위 내로 설정하는 단계를 포함하고,
    상기 내부 도메인 및 외부 도메인으로 분리하는 단계는, 핸들러용 래퍼 함수로 기능하여 내부 도메인과 외부 도메인간의 제어 전환 작업을 수행하는 인터페이스 함수에 의해 수행되는 인트라 레벨 권한 분리 방법.
  12. 제11항에 있어서,
    상기 시스템 소프트웨어는 제1 번역 테이블 기반 레지스터(TTBR0)에 기반하고,
    상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하는 단계; 및
    상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 26으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 인트라 레벨 권한 분리 방법.
  13. 제11항에 있어서,
    상기 시스템 소프트웨어는 제2 번역 테이블 기반 레지스터(TTBR1)에 기반하고,
    상기 외부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 27로 설정하는 단계; 및
    상기 내부 도메인이 제어 중이면, 번역 제어 레지스터(TCR) 내 T0SZ를 25로 설정하는 단계를 더 포함하되, 상기 내부 도메인에 대한 가상 주소 공간 내 데이터는 내부 도메인의 페이지 테이블 엔트리 중 중간 엔트리에 대하여 매핑되는 것을 특징으로 하는 인트라 레벨 권한 분리 방법.
KR1020170106617A 2017-08-23 2017-08-23 Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법 KR102021008B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170106617A KR102021008B1 (ko) 2017-08-23 2017-08-23 Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법
US15/827,366 US10380338B2 (en) 2017-08-23 2017-11-30 System and method for intra-level privilege seperation for system software on arm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170106617A KR102021008B1 (ko) 2017-08-23 2017-08-23 Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190021632A KR20190021632A (ko) 2019-03-06
KR102021008B1 true KR102021008B1 (ko) 2019-09-11

Family

ID=65435239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170106617A KR102021008B1 (ko) 2017-08-23 2017-08-23 Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법

Country Status (2)

Country Link
US (1) US10380338B2 (ko)
KR (1) KR102021008B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2575801B (en) * 2018-07-23 2021-12-29 Advanced Risc Mach Ltd Data Processing
US20200285501A1 (en) * 2019-03-08 2020-09-10 International Business Machines Corporation Communication interface of a secure interface control
KR102493066B1 (ko) * 2021-01-26 2023-01-30 한양대학교 산학협력단 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101099463B1 (ko) * 2002-11-18 2011-12-28 에이알엠 리미티드 보안 도메인과 비보안 도메인을 갖는 시스템 내에서 가상메모리 어드레스의 물리적 메모리 어드레스로의 매핑
US20160335459A1 (en) 2015-01-22 2016-11-17 Raytheon Company Multi-level security domain separation using soft-core processor embedded in an fpga

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489800B2 (en) * 2010-12-13 2013-07-16 Vmware, Inc. Virtualizing processor memory protection with “domain track”
CA2839348A1 (en) 2011-06-30 2013-01-03 Nano-Green Biorefineries Inc. Catalytic biomass conversion
AU2013297064B2 (en) 2012-08-03 2016-06-16 North Carolina State University Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101099463B1 (ko) * 2002-11-18 2011-12-28 에이알엠 리미티드 보안 도메인과 비보안 도메인을 갖는 시스템 내에서 가상메모리 어드레스의 물리적 메모리 어드레스로의 매핑
US20160335459A1 (en) 2015-01-22 2016-11-17 Raytheon Company Multi-level security domain separation using soft-core processor embedded in an fpga

Also Published As

Publication number Publication date
US10380338B2 (en) 2019-08-13
KR20190021632A (ko) 2019-03-06
US20190065737A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
Park et al. libmpk: Software abstraction for intel memory protection keys (intel {MPK})
US11467982B2 (en) Virtualization-based platform protection technology
US11200080B1 (en) Late load technique for deploying a virtualization layer underneath a running operating system
US10191861B1 (en) Technique for implementing memory views using a layered virtualization architecture
Gruss et al. Kaslr is dead: long live kaslr
US10447728B1 (en) Technique for protecting guest processes using a layered virtualization architecture
Azab et al. SKEE: A lightweight Secure Kernel-level Execution Environment for ARM.
US9129106B2 (en) Systems and methods for secure in-VM monitoring
US10459850B2 (en) System and method for virtualized process isolation including preventing a kernel from accessing user address space
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
US20160210069A1 (en) Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
Dong et al. Shielding Software From Privileged {Side-Channel} Attacks
JP2022503562A (ja) 範囲チェック命令
KR102021008B1 (ko) Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법
US10198280B2 (en) Method and apparatus for hypervisor based monitoring of system interactions
KR102547479B1 (ko) 명령 세트의 변경을 제어하는 장치 및 방법
KR102075701B1 (ko) 명령어 레벨 데이터 격리 방법 및 장치
JP2023526000A (ja) 変換テーブルアドレス記憶回路
JP2023526811A (ja) タグチェック装置及び方法
US10162659B2 (en) Embedded processor with virtualized security controls using guest identifications, a common kernel address space and operational permissions
JP7425786B2 (ja) メモリ・アクセス制御
KR20230101826A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
KR102479465B1 (ko) 모바일 신뢰 실행 환경의 보안성 강화를 위한 장치
US20230098991A1 (en) Systems, methods, and media for protecting applications from untrusted operating systems
WO2024094956A1 (en) Region identifier based on instruction fetch address

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