KR102075701B1 - 명령어 레벨 데이터 격리 방법 및 장치 - Google Patents

명령어 레벨 데이터 격리 방법 및 장치 Download PDF

Info

Publication number
KR102075701B1
KR102075701B1 KR1020170157942A KR20170157942A KR102075701B1 KR 102075701 B1 KR102075701 B1 KR 102075701B1 KR 1020170157942 A KR1020170157942 A KR 1020170157942A KR 20170157942 A KR20170157942 A KR 20170157942A KR 102075701 B1 KR102075701 B1 KR 102075701B1
Authority
KR
South Korea
Prior art keywords
kernel
page table
address
access
level
Prior art date
Application number
KR1020170157942A
Other languages
English (en)
Other versions
KR20190060109A (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 KR1020170157942A priority Critical patent/KR102075701B1/ko
Publication of KR20190060109A publication Critical patent/KR20190060109A/ko
Application granted granted Critical
Publication of KR102075701B1 publication Critical patent/KR102075701B1/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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

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

Abstract

명령어 레벨 데이터 격리 방법 및 장치가 개시된다. 시스템제어모듈은 메모리의 커널 공간에 비특권 레벨의 보호 영역을 설정하고, 접근제어기능을 이용하여 특권 레벨에서 수행되는 명령어가 상기 보호 영역에 접근하는 것을 제한하고, 비특권 레벨에서 수행되는 기 설정된 특수 명령어가 상기 보호 영역에 접근하는 것을 허락한다.

Description

명령어 레벨 데이터 격리 방법 및 장치{Instruction-level data isolation method and apparatus}
본 발명은 명령어 레벨 데이터 격리 방법 및 그 장치에 관한 것으로, 보다 상세하게는 모바일 디바이스의 OS(Operating System) 커널의 데이터를 보호할 수 있는 명령어 레벨 데이터 격리 방법 및 그 장치에 관한 것이다.
스마트폰 등을 포함한 다양한 종류의 모바일 디바이스가 존재하며, 사이버 공격의 대상이 되고 있다. 악성 코드 등의 다양한 사이버 공격에 대처하기 위하여 종래 모바일 디바이스는 MMU(Memory Management Unit)의 메모리 접근 제어(memory access control) 기능을 이용한다. MMU는 읽기/쓰기 메모리 보호(read/write memory protection)를 설정하여 민감한 데이터를 외부로부터 격리하여 보호한다. 그러나 정상적인 명령어가 MMU에 의해 보호되는 데이터에 접근할 때마다 MMU가 매번 메모리 보호 기능의 해제/설정을 반복하여야 하므로 리턴 어드레스(return address) 등과 같이 빈번하게 접근하는 데이터들의 보호에 비효율적이다.
공개특허공보 제10-2017-0067740호 "운영 체제 공격으로부터 애플리케이션 기밀사항을 보호하는 기법"
본 발명이 이루고자 하는 기술적 과제는, 명령어 레벨 데이터 격리 방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 명령어 레벨 데이터 격리 방법의 일 예는, 메모리의 커널 공간에 비특권 레벨의 보호 영역을 설정하는 단계; 및 접근제어기능을 이용하여 특권 레벨에서 수행되는 명령어가 상기 보호 영역에 접근하는 것을 제한하고, 비특권 레벨에서 수행되는 기 설정된 특수 명령어가 상기 보호 영역에 접근하는 것을 허락하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 명령어 레벨 데이터 격리 장치의 일 예는, 페이지 테이블 및 레지스터에 대한 전권을 가지고, 커널보다 더 높은 특권을 가지는 시스템제어모듈; 및 메모리의 커널 공간에 생성된 비특권 레벨의 보호 영역;을 포함하고, 상기 시스템제어모듈은 특권 레벨에서 수행되는 명령어가 상기 보호 영역에 접근하는 것을 제한하고, 비특권 레벨에서 수행되는 기 설정된 특수 명령어가 상기 보호 영역에 접근할 수 있도록 접근제어기능을 설정한다.
본 발명에 따르면, 종래와 같이 MMU의 메모리 보호(memory protection) 설정을 변경할 필요없이 명령어 레벨에서 데이터 격리(data isolation)를 구현할 수 있다. 커널 개발자는 두 종류의 메모리 접근 명령어(일반 명령어, 특수 명령어)를 이용하여 다양한 보안 솔루션 등을 개발할 수 있다.
도 1은 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 일 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 특수 명령어의 일 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 페이지 테이블 맵핑 방법의 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 일 예를 도시한 도면, 그리고,
도 5는 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 다른 예를 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법 및 그 장치에 대해 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 일 예를 도시한 도면이다.
도 1을 참조하면, 커널 코드(100)는 일반 명령어(예를 들어, ldr, str 등)와 더불어 특수 명령어(예를 들어, ldtr, sttr 등)를 포함할 수 있다. 특수 명령어는 비특권 레벨(unprivileged level)(또는 사용자 레벨(user level))에서 메모리 동작(memory operation)을 수행하는 명령어이며, 본 발명이 구현되는 프로세서 아키텍처에서 제공할 수 있다. ARM 아키텍처에서 제공하는 특수 명령어의 일 예는 도 2에 도시되어 있다.
메모리의 커널 공간(kernel space)(110)은 보호할 커널 데이터를 저장하는 보호 영역(safe region)(112)과 일반 커널 데이터를 저장하는 일반 영역(regular region)(114)으로 구분된다.
특수 명령어는 접근제어기능에 의해 커널 공간(110)의 보호 영역(112)에 대한 접근이 제어된다. 접근제어기능은 ARM 아키텍처의 PAN(Priviledged Access Never)(120) 또는 x86 아키텍처의 SMAP(Supervisor Mode access Prevention)에 의해 구현될 수 있다. 이 외에도 접근제어기능은 다양한 방법에 의해 구현될 수 있다. 본 실시 예는 설명의 편의를 위해 접근제어기능이 ARM 아키텍처의 PAN(120)으로 구현된 경우를 가정한다.
PAN 비트가 "1"로 설정된 경우에, 특권 레벨(privileged level)(또는, 커널 레벨(kernel level))에서 동작하는 커널 코드는 사용자 데이터 등이 저장된 비특권 레벨의 보호 영역에 대한 접근이 제한된다. PAN 비트가 "1"인 상황에서, 특권 레벨에서 일반 명령어가 보호 영역에 접근을 시도하면 허가 오류(permission fault)가 발생한다.
CPSR(Current Program Status Register)에 속하는 PAN 비트를 직접 설정(setting) 또는 해제(clearing)하거나, SCTLR(System Control Register)의 SPAN 비트를 해제하여 PAN 비트를 설정할 수 있다. PAN 비트는 특권 레벨에 대한 예외상황(exception)이 발생하면 "1"로 설정된다.
PAN 비트를 1로 설정하고 보호 영역을 비특권 레벨로 유지하기 위하여, 페이지 테이블과 시스템 레지스터의 무결성(integrity)을 보호하여야 한다. 이를 위해 본 실시 예는 페이지 테이블과 레지스터에 대한 배타적 제어 권한(exclusive control authority)를 가지는 시스템제어모듈(System Control module, 이하, 'SC 모듈'이라 함)을 포함한다. SC 모듈은 커널보다 더 높은 특권을 가지며, 커널과 분리되어 있다. 커널은 전용 게이트(dedicated gates)를 통해서만 SC 모듈을 호출할 수 있다. SC 모듈은 커널보다 더 높은 권한을 가지는 모드에서 수행되는 일종의 프로그램 코드로 구현될 수 있다.
예를 들어, ARM 아키텍처는 커널 레벨보다 더 높은 프로세서 모드인 'Hyp 모드'를 제공한다. Hyp 모드는 그 자신의 페이지 테이블을 가지고 있어 커널에 의해 설정된 접근 권한과 관계없이 메모리에 접근할 수 있다. 또한, Hyp 모드는 가장 높은 프로세서 모드를 가지므로, 모든 시스템 레지스터를 설정할 수 있고, Hyp 모드를 위해 추가된 특별 레지스터를 통해 하드웨어 트랩(hardware traps)을 설정하여 커널이 시스템 레지스터에 접근하는 것을 모니터링하고 개입할 수 있다. 커널은 ARM 아키텍처에 정의된 호출 명령인 HVC(Hypervisor Call) 명령어를 수행하여 Hyp 모드로 들어갈 수 있다.
SC 모듈은 하드웨어 트랩을 설정하여 커널이 시스템 레지스터에 접근하는 것을 막을 수 있다. 커널이 시스템 레지스터를 변경하는 모든 시도는 SC 모듈에 의해 모니터링되므로, SC 모듈은 커널의 시스템 레지스터의 변경을 철저히 검증한 후에 그 변경이 이루어지도록 할 수 있다.
SC 모듈이 페이지 테이블에 대한 배타적 제어권한(exclusive control)을 가지고 보호 영역을 비특권 레벨로 유지하기 위하여, 본 실시 예는 확장 페이징 스킴(extended paging scheme)을 이용할 수 있다. 그러나 확장 페이징 스킴은 시스템 성능의 저하를 가져오므로, 다른 실시 예로, 쉐도우 페이지 테이블(shadow page table)과 유사한 스킴을 적용할 수 있다. 먼저, SC 모듈은 페이지 테이블을 메모리의 커널 공간에 읽기 전용(read-only)으로 설정하여, 커널이 그 자신의 페이지 테이블을 변경할 수 없도록 한다. 페이지 테이블의 내용을 갱신하려면, 커널은 HVC 명령어를 호출하여 SC 모듈에게 요청하여야 한다. 그러면 SC 모듈은 갱신 요청을 검증한 후 커널을 대신하여 페이지 테이블의 내용 갱신을 수행한다. 또한, SC 모듈은 그 자신의 메모리 영역이 페이지 테이블에 의해 맵핑되는 것을 방지한다. 따라서 커널은 HVC 명령어를 통하지 않고서 SC 모듈에 접근할 수 없다.
PAN 비트는 커널이 동작 중인 동안에 항상 1을 유지하여야 한다. 이를 위해, PAN 비트를 해제(clear)하는 명령어들(예를 들어, ARM 아키텍처의 MSR PAN, <imm|reg> 등)은 커널 코드에서 제거될 수 있다. SC 모듈이 커널 코드로부터 PAN 비트의 해제 명령어들을 제거하거나 사용자가 커널 코드에서 해제 명령어들을 제거할 수 있다. SC 모듈은 제어권한(control)이 커널로 넘어갈 때 PAN 비트를 켜기 위하여 SCTLR(System Control Register)의 SPAN 비트를 해제할 수 있다. 만약 PAN 비트가 항상 설정되어 있다면, 커널은 보호 영역뿐만 아니라 사용자 공간(user space)에도 접근할 수 없다. 이 경우 사용자 공간에 접근하려는 몇몇 커널 함수의 평범한 동작들이 방해되어 커널 패닉(kernel panic)이 일어날 수 있다. 이를 해결하기 위하여, SC 모듈은 보호 영역 또는 사용자 영역에 대한 동작들을 수행하는 함수들을 포함하고, 커널이 HVC 명령어를 통해 SC 모듈의 함수들을 호출할 수 있도록 한다.
PAN 비트가 올바르게 유지된다면, 보호 영역은 비특권 레벨로 설정되는 동안 안전하게 보호될 수 있다. 따라서 커널이 SC 모듈에서 페이지 테이블 변경 요청을 전송하면, SC 모듈은 그 변경 요청이 기 설정된 조건을 만족하는지 파악한다. 페이지 테이블의 무결성을 유지하기 위한 종래의 다양한 조건들이 존재할 수 있다. 이와 함께, SC 모듈은 보호 영역의 물리적 주소가 다른 접근 허락을 가진 다른 가상 주소와 맵핑할 때 발생하는 이중-맵핑 문제(double-mapping problem)을 검출하고 방지한다. SC 모듈은 MMU를 비활성화시키거나 페이지 테이블의 베이스 주소를 가리키는 레지스터(예를 들어, ARM 아키텍터의 TTBR(Translation Table Base Register))를 변경하여 보호 영역의 보호를 무력화시키는 커널의 시도를 차단한다.
도 2는 본 발명의 실시 예에 따른 특수 명령어의 일 예를 도시한 도면이다.
도 2를 참조하면, 특수 명령어는 비특권 레벨에서 동작하는 명령어로 메모리에 저장된 데이터를 읽는 다양한 종류의 Load 명령어와 메모리에 데이터를 저장하는 다양한 종류의 Store 명령어들을 포함한다.
특권 레벨에서 특수 명령어가 실행되면, 특수 명령어는 비특권 레벨에서 수행되는 것처럼 취급된다. 다시 말해, 메모리 영역에 접근하기 위하여 특수 명령어를 사용하면, 해당 접근은 페이지 테이블에 기술된 비특권 레벨의 접근 허가(access permission)에 의존한다.
본 실시 예는 ARM 아키텍처에서 제공하는 특수 명령어의 일 예를 도시하고 있으나, 본 발명은 이에 한정되는 것은 아니며 x86 아키텍처를 포함한 다양한 종류의 아키텍처에서 비특권 레벨에서 동작하는 특수 명령어를 제공하면 이를 이용할 수 있다.
도 3은 본 발명의 실시 예에 따른 페이지 테이블 맵핑 방법의 일 예를 도시한 도면이다.
도 3을 참조하면, 보호 영역(314)이 비특권으로 설정되어 있으므로, 악의적인 사용자 프로세스가 보호 영역을 침범할 우려가 존재한다. 이를 해결하기 위하여, 사용자 프로세스 또는 커널 중 어느 것이 동작 중인지에 따라 보호 영역(314)을 숨기거나 노출한다. 예를 들어, SC 모듈은 커널 공간 전체(312,314)의 주소 맵핑을 저장하는 기존의 제1 커널 페이지 테이블과 별도로 커널 영역에서 보호 영역을 제외한 영역(302)의 주소 맵핑을 저장하는 별도의 제2 커널 페이지 테이블을 만든다.
예를 들어, ARM 아키텍처는 가상-물리 주소 변환(virtual-to-physical address translation)을 위하여, 현 페이지 테이블의 베이스 주소를 가지는 두 개의 레지스터(예를 들어, TTBR0 및 TTBR1)를 제공한다. TTBR0은 사용자 공간(300,310)에 해당하는 가상 주소를 변환하는데 사용되고, TTBR1은 커널 공간(302,312,314)에 해당하는 가상 주소를 변환하는데 사용된다.
따라서, 사용자 프로세스가 수행될 때, SC 모듈은 TTBR1이 제2 커널 페이지 테이블을 가리키도록 변경하여 제2 커널 페이지 테이블을 활성화시킨다. 제2 커널 페이지 테이블은 보호 영역(314)에 대한 어떠한 맵핑도 포함하지 않으므로, 사용자 프로세스는 보호 영역의 내용을 읽거나 변경할 수 없다. 제2 커널 페이지 테이블은 사용자 프로세스가 제어권한을 가지는 경우에만 사용된다. 인터럽트 또는 예외상황에 의해 제어권한이 커널로 넘어가면, SC 모듈은 TTBR1이 원래의 제1 커널 페이지 테이블을 가리키도록 변경하여 제1 커널 페이지 테이블을 활성화시킨다.
보호 영역의 주소 맵핑은 TLB(Translation Lookaside Buffer)에 캐시(cache)되어 있을 수 있다. 이 경우 공격자는 사용자 프로세스로 TLB 엔트리를 이용하여 보호 영역에 대한 접근을 시도할 수 있다. 이 문제를 해결하기 위하여 커널이 사용자 프로세스에게 제어권한을 넘겨주기 전에 캐시된 TLB 엔트리를 무효화(invalidate)하는 방법이 있다.
다른 방법으로 ASID(Address Space Identifier)를 이용하는 방법이 있다. ARM 아키텍처는 가상 주소 공간을 매번 스위칭할 때마다 불필요한 TLB 플러시를 줄이기 위하여, TLB 엔트리에 태깅하는 식별자(즉, ASID)를 제공한다. 또한, ARM 아키텍처는 페이지 테이블 디스크립터(page table descriptor)에 non-Global(nG) 플래그를 제공하므로, 그 플래그를 해제하여 ASID가 특정 페이지에서 무시될 수 있도록 할 수 있다.
이러한 특징을 이용하여, SC 모듈은 두 개의 서로 다른 ASID를 커널과 사용자 프로세스에 각각 할당하고, 커널과 사용자 프로세스 중 현재 제어권한을 가진 것이 어느 것인지에 따라 해당 ASID를 활성화시킨다. 커널이 제어권한을 가진 상황에서 TLB 엔트리에 보호 영역의 맵핑이 캐시되어도, 사용자 프로세스는 커널의 ASID와 다른 ASID를 사용하므로 보호 영역의 캐시된 맵핑을 사용할 수 없다. 커널 공간은 대부분 전체 영역과 맵핑되므로, ASID 스위칭은 성능 불이익(performance penalty)을 일으키지 않는다. TLB 관리 커널 함수는 사용자 프로세스의 ASID와 커널의 ASID를 각각 가지고 두 번 동작한다.
도 4는 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 일 예를 도시한 도면이다.
도 4를 참조하면, SC 모듈은 커널 공간에 비특권 레벨의 보호 영역을 설정한다(S400). SC 모듈은 PAN 비트 등으로 구현된 접근제어기능의 설정을 통해 특수 명령어만이 보호 영역에 접근가능하도록 한다.
예를 들어, PAN 비트가 설정되고 보호 영역이 비특권으로 유지된 경우에, 명령어가 일반 커널 명령어이면(S410), 보호 영역에 대한 접근이 불가능하다(S430). 반면, 명령어가 비특권 레벨의 특수 명령어(예를 들어, 도 2)이면, 보호 영역에 대한 접근이 허락된다(S420). 커널이 특권 레벨에서 동작중인 경우에, 특수 명령어는 마치 비특권 레벨에서 동작되는 것처럼 취급되므로, PAN 비트가 설정된 경우에 특수 명령어는 비특권 레벨의 접근 허가에 따라 보호 영역에 대한 접근 여부가 결정될 수 있다.
도 5는 본 발명의 실시 예에 따른 명령어 레벨 데이터 격리 방법의 다른 예를 도시한 도면이다.
도 5를 참조하면, 악의적인 사용자 프로세스가 보호 영역에 접근하는 것을 방지하기 위하여, SC 모듈은 커널 공간에 대한 제1 커널 페이지 테이블과, 커널 공간에서 보호 영역을 제외한 공간에 대한 제2 커널 페이지 테이블을 생성한다(S500).
사용자 프로세스에 제어권한이 넘어갈 때(S510), SC 모듈은 커널 페이지 테이블의 베이스 주소를 가리키는 레지스터의 값을 제2 커널 페이지 테이블의 베이스 주소로 변경한다(S530). 제어권한이 커널로 넘어갈 때(S510), SC 모듈은 커널 페이지 테이블의 베이스 주소를 가리키는 레지스터의 값을 제1 커널 페이지 테이블의 베이스 주소로 변경한다(S520).
또한, SC 모듈은 사용자 프로세스가 TLB 캐시를 이용하여 보호 영역에 접근 하는 것을 방지하기 위하여, 주소공간식별자(ASID)를 커널과 사용자 프로세스에 각각 할당한 후 제어권한이 커널과 사용자 프로세스 중 어느 것이 가지는지에 따라 ASID를 스위칭할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (13)

  1. 메모리의 커널 공간을 비특권 레벨의 보호 영역과 일반 커널 데이터를 저장하는 일반 영역으로 구분하여 설정하는 단계;
    상기 커널 공간의 전체의 주소 맵핑을 저장하는 제1 커널 페이지 테이블과 상기 보호 영역을 제외한 영역의 주소 맵핑을 저장하는 제2 커널 페이지 테이블을 생성하는 단계; 및
    접근제어기능을 이용하여 특권 레벨에서 수행되는 일반 명령어가 상기 보호 영역에 접근하는 것을 제한하고, 비특권 레벨에서 수행되는 기 설정된 특수 명령어가 상기 보호 영역에 접근하는 것을 허락하는 단계;를 포함하고,
    사용자 프로세스가 수행되는 경우에 상기 제2 커널 페이지 테이블을 활성화시키고, 커널 프로세스가 수행될 때 상기 제1 커널 페이지 테이블을 활성화시키는 것을 특징으로 하는 명령어 레벨 데이터 격리 방법.
  2. 제 1항에 있어서,
    상기 접근제어기능은 ARM 아키텍쳐의 PAN 비트로 구현되고,
    상기 허락하는 단계는, 상기 PAN 비트가 1이면 상기 특수 명령어만이 상기 보호 영역에 접근하는 것을 허락하는 단계를 특징으로 하는 명령어 레벨 데이터 격리 방법.
  3. 제 1항에 있어서,
    상기 특수 명령어는 비특권 레벨에서 상기 보호 영역에 대한 읽기 또는 쓰기 동작을 수행하는 명령어인 것을 특징으로 하는 명령어 레벨 데이터 격리 방법.
  4. 제 1항에 있어서,
    커널의 페이지 테이블 변경 요청이 있으면, 보호 영역의 물리적 주소가 다른 접근 권한을 가진 다른 가상 주소와 맵핑될 때 발생하는 이중-맵핑 문제를 검증하는 단계;를 더 포함하는 것을 특징으로 하는 명령어 레벨 데이터 격리 방법.
  5. 제 1항에 있어서,
    커널과 사용자 프로세스 중 어느 것이 동작하고 있는지에 따라 커널 페이지 테이블의 베이스 주소를 가리키는 레지스터의 값을 상기 제1 커널 페이지 테이블의 베이스 주소 또는 상기 제2 커널 페이지 테이블의 베이스 주소로 변경하는 단계;를 더 포함하는 것을 특징으로 하는 명령어 레벨 데이터 격리 방법.
  6. 제 1항에 있어서,
    TLB(Translation Lookaside Buffer)의 각 엔트리를 식별하는 서로 다른 제1 주소공간식별자(제1 ASID)와 제2 주소공간식별자(제2 ASID)를 커널과 사용자 프로세스에 각각 할당하는 단계를 더 포함하는 것을 특징으로 하는 명령어 레벨 데이터 격리 방법.
  7. 페이지 테이블 및 레지스터에 대한 전권을 가지고, 커널보다 더 높은 특권을 가지는 시스템제어모듈; 및
    메모리의 커널 공간에 생성된, 일반 커널 데이터를 저장하는 일반 영역과 비특권 레벨의 보호 영역;
    상기 커널 공간의 전체의 주소 맵핑을 저장하는 제1 커널 페이지 테이블;
    상기 보호 영역을 제외한 영역의 주소 맵핑을 저장하는 제2 커널 페이지 테이블;을 포함하고,
    상기 시스템제어모듈은 특권 레벨에서 수행되는 명령어가 상기 보호 영역에 접근하는 것을 제한하고, 비특권 레벨에서 수행되는 기 설정된 특수 명령어가 상기 보호 영역에 접근할 수 있도록 접근제어기능을 설정하고,
    상기 시스템제어모듈은 사용자 프로세스가 수행되는 경우에 상기 제2 커널 페이지 테이블을 활성화시키고, 커널 프로세스가 수행될 때 상기 제1 커널 페이지 테이블을 활성화시키는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  8. 제 7항에 있어서,
    상기 페이지 테이블은 읽기전용으로 상기 커널 공간에 구현되는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  9. 제 7항에 있어서,
    상기 접근제어기능은 ARM 아키텍쳐의 PAN 비트로 구현되고,
    상기 시스템제어모듈은, 상기 PAN 비트의 설정을 통해 보호 영역에 대한 접근 제어를 수행하는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  10. 제 7항에 있어서,
    상기 시스템제어모듈은, 보호 영역의 물리적 주소가 다른 접근 권한을 가진 다른 가상 주소와 맵핑될 때 발생하는 이중-맵핑 문제를 검증하는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  11. 제 7항에 있어서,
    상기 시스템제어모듈은 커널과 사용자 프로세스 중 어느 것이 동작하고 있는지에 따라 페이지 테이블의 베이스 주소를 가리키는 레지스터의 값을 상기 제1 커널 페이지 테이블의 베이스 주소 또는 상기 제2 커널 페이지 테이블의 베이스 주소로 변경하는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  12. 제 7항에 있어서,
    상기 시스템제어모듈은 TLB의 각 엔트리를 식별하는 서로 다른 제1 주소공간식별자(제1 ASID)와 제2 주소공간식별자(제2 ASID)를 커널과 사용자 프로세스에 각각 할당하고, 커널과 사용자 프로세스 중 어느 것이 동작하는지에 따라 제1 ASID 또는 제2 ASID로 스위칭하는 것을 특징으로 하는 명령어 레벨 데이터 격리 장치.
  13. 제 1항 내지 제 6항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020170157942A 2017-11-24 2017-11-24 명령어 레벨 데이터 격리 방법 및 장치 KR102075701B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170157942A KR102075701B1 (ko) 2017-11-24 2017-11-24 명령어 레벨 데이터 격리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170157942A KR102075701B1 (ko) 2017-11-24 2017-11-24 명령어 레벨 데이터 격리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190060109A KR20190060109A (ko) 2019-06-03
KR102075701B1 true KR102075701B1 (ko) 2020-02-10

Family

ID=66849157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170157942A KR102075701B1 (ko) 2017-11-24 2017-11-24 명령어 레벨 데이터 격리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102075701B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022092869A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 전자 장치 및 이를 이용한 메모리 보호 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102493066B1 (ko) * 2021-01-26 2023-01-30 한양대학교 산학협력단 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술
CN113486356B (zh) * 2021-06-30 2024-05-07 佛山职业技术学院 一种控制中断源的运行方法、装置、终端设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068741A (ja) * 2010-09-21 2012-04-05 Fujitsu Ltd メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
KR101666032B1 (ko) * 2012-05-31 2016-10-14 한국전자통신연구원 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
KR101433644B1 (ko) * 2011-11-09 2014-08-27 상명대학교서울산학협력단 Arm 기반 운영체제의 가상화를 위한 정책 제공 시스템 및 방법
US9628279B2 (en) 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068741A (ja) * 2010-09-21 2012-04-05 Fujitsu Ltd メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
KR101666032B1 (ko) * 2012-05-31 2016-10-14 한국전자통신연구원 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022092869A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 전자 장치 및 이를 이용한 메모리 보호 방법

Also Published As

Publication number Publication date
KR20190060109A (ko) 2019-06-03

Similar Documents

Publication Publication Date Title
US20220027287A1 (en) System for address mapping and translation protection
US11681793B2 (en) Technologies for object-oriented memory management with extended segmentation
US7401358B1 (en) Method of controlling access to control registers of a microprocessor
EP1966706B1 (en) Identifier associated with memory locations for managing memory accesses
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
US9129106B2 (en) Systems and methods for secure in-VM monitoring
US8352694B2 (en) Method of controlling memory access
US7130977B1 (en) Controlling access to a control register of a microprocessor
CN109858288B (zh) 实现虚拟机安全隔离的方法与装置
US20080222663A1 (en) Policy-Based Direct Memory Access Control
KR20080030543A (ko) 무단 변경 방지 방법, 무단 변경 방지 프로세서, 무단 변경방지 제품, 무단 변경 방지 시스템
US7082507B1 (en) Method of controlling access to an address translation data structure of a computer system
KR102075701B1 (ko) 명령어 레벨 데이터 격리 방법 및 장치
Vaduva et al. Observations over SPROBES mechanism on the TrustZone architecture
Zhou et al. Protecting Virtual Machines against Untrusted Hypervisor on ARM64 Cloud Platform
Gutierrez et al. CacheLight: Defeating the cachekit attack
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法

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