RISS 학술연구정보서비스

검색

인기 검색어

    다국어 입력

    http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

    변환된 중국어를 복사하여 사용하시면 됩니다.

    예시)
    • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
    • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
    닫기

    Hardware-Assisted Memory Protection on ARM with Memory Tagging Extension = 메모리 태깅을 활용한 하드웨어 지원 기반 ARM 메모리 보호 기술

    한글로보기

    https://www.riss.kr/link?id=T17450386

    • 0

      상세조회
    • 0

      다운로드
    서지정보 열기
    • 내보내기
    • 내책장담기
    • 공유하기
    • 오류접수

    부가정보

    다국어 초록 (Multilingual Abstract) kakao i 다국어 번역

    Modern systems software is composed of interacting components that share a single address space for performance and engineering convenience. In this setting, a single memory error in one component can compromise the entire software stack, making fine-grained memory protection between components essential. However, purely software-based solutions often incur prohibitive overhead, whereas specialized hardware can provide strong protection efficiently but is difficult to deploy widely.

    This dissertation takes an intermediate approach and uses ARM’s Memory Tagging Extension (MTE)—a hardware feature already available on commodity processors—as a building block for memory protection. MTE provides simple, low-overhead tagging by associating 4-bit tags with pointers and aligned 16-byte memory blocks and checking for tag matches on each memory access. However, its untyped tags, fixed granularity, and corner-case addressing modes and tag instructions require additional mechanisms to achieve secure and precise enforcement of memory protection policies.

    To this end, the dissertation develops three hardware-assisted mechanisms based on MTE, each tailored to a different layer of the ARM software stack: one protects kernel data from untrusted extensions, one provides byte-level access control over shared objects across multiple domains, and one safeguards safe Rust data and metadata in mixed Rust and C/C++ applications. Evaluation on real workloads shows that these designs substantially strengthen memory protection on commodity ARM processors with low overhead, demonstrating that the mechanisms presented in this dissertation enable practical, hardware-assisted memory protection across diverse system contexts.
    번역하기

    Modern systems software is composed of interacting components that share a single address space for performance and engineering convenience. In this setting, a single memory error in one component can compromise the entire software stack, making fine-...

    Modern systems software is composed of interacting components that share a single address space for performance and engineering convenience. In this setting, a single memory error in one component can compromise the entire software stack, making fine-grained memory protection between components essential. However, purely software-based solutions often incur prohibitive overhead, whereas specialized hardware can provide strong protection efficiently but is difficult to deploy widely.

    This dissertation takes an intermediate approach and uses ARM’s Memory Tagging Extension (MTE)—a hardware feature already available on commodity processors—as a building block for memory protection. MTE provides simple, low-overhead tagging by associating 4-bit tags with pointers and aligned 16-byte memory blocks and checking for tag matches on each memory access. However, its untyped tags, fixed granularity, and corner-case addressing modes and tag instructions require additional mechanisms to achieve secure and precise enforcement of memory protection policies.

    To this end, the dissertation develops three hardware-assisted mechanisms based on MTE, each tailored to a different layer of the ARM software stack: one protects kernel data from untrusted extensions, one provides byte-level access control over shared objects across multiple domains, and one safeguards safe Rust data and metadata in mixed Rust and C/C++ applications. Evaluation on real workloads shows that these designs substantially strengthen memory protection on commodity ARM processors with low overhead, demonstrating that the mechanisms presented in this dissertation enable practical, hardware-assisted memory protection across diverse system contexts.

    더보기

    국문 초록 (Abstract) kakao i 다국어 번역

    현대 시스템 소프트웨어는 성능과 개발 편의성을 위해 여러 구성 요소가 하나의 주소 공간을 공유하는 형태로 구성되며, 이때 한 구성 요소의 단일 메모리 오류만으로도 전체 시스템이 손상될 수 있으므로 구성 요소 간 메모리 보호가 필수적이다. 그러나 순수 소프트웨어 기반 기법은 일반적으로 과도한 성능 오버헤드를 유발하고, 반대로 강력한 보호를 제공하는 특수 하드웨어는 효율적이더라도 범용 프로세서 환경에 널리 배포하기 어렵다는 한계가 있다.

    본 학위논문은 이 두 접근법 사이의 절충안으로, 이미 상용 ARM 프로세서에 탑재된 하드웨어 기능인 Memory Tagging Extension(MTE)을 활용한다. MTE는 포인터와 정렬된 16바이트 메모리 블록에 4비트 태그를 부여하고 접근 시 태그 일치 여부를 검사하는 단순하고 효율적인 기능을 제공하지만, 의미가 부여되지 않은 태그 값, 고정된 태그 단위, 특정 어드레싱 모드와 태그 조작 명령어에서의 예외적 동작 때문에 MTE만으로는 안전하고 정밀한 보호 정책을 구현하기 어렵다.

    이를 해결하기 위해 본 논문은 MTE를 기반으로 하는 세 가지 하드웨어 지원 메커니즘을 제안하며, 각각 ARM 소프트웨어 스택의 서로 다른 계층에 특화되도록 설계한다. 첫 번째 메커니즘은 커널 주소 공간을 공유하는 불신 확장 모듈로부터 커널 데이터를 보호하고, 두 번째 메커니즘은 여러 도메인 간 공유 객체에 대해 바이트 수준 접근 제어를 제공하며, 세 번째 메커니즘은 Rust와 C/C++이 혼재된 애플리케이션에서 안전한(safe) Rust 데이터와 메타데이터를 보호한다. 실제 워크로드를 대상으로 한 평가 결과, 제안된 설계들은 상용 ARM 프로세서에서 낮은 성능 오버헤드로 메모리 보호를 유의미하게 강화함을 보이며, 다양한 시스템 환경에서 실용적인 하드웨어 지원 기반 메모리 보호를 가능하게 함을 입증한다.
    번역하기

    현대 시스템 소프트웨어는 성능과 개발 편의성을 위해 여러 구성 요소가 하나의 주소 공간을 공유하는 형태로 구성되며, 이때 한 구성 요소의 단일 메모리 오류만으로도 전체 시스템이 손상...

    현대 시스템 소프트웨어는 성능과 개발 편의성을 위해 여러 구성 요소가 하나의 주소 공간을 공유하는 형태로 구성되며, 이때 한 구성 요소의 단일 메모리 오류만으로도 전체 시스템이 손상될 수 있으므로 구성 요소 간 메모리 보호가 필수적이다. 그러나 순수 소프트웨어 기반 기법은 일반적으로 과도한 성능 오버헤드를 유발하고, 반대로 강력한 보호를 제공하는 특수 하드웨어는 효율적이더라도 범용 프로세서 환경에 널리 배포하기 어렵다는 한계가 있다.

    본 학위논문은 이 두 접근법 사이의 절충안으로, 이미 상용 ARM 프로세서에 탑재된 하드웨어 기능인 Memory Tagging Extension(MTE)을 활용한다. MTE는 포인터와 정렬된 16바이트 메모리 블록에 4비트 태그를 부여하고 접근 시 태그 일치 여부를 검사하는 단순하고 효율적인 기능을 제공하지만, 의미가 부여되지 않은 태그 값, 고정된 태그 단위, 특정 어드레싱 모드와 태그 조작 명령어에서의 예외적 동작 때문에 MTE만으로는 안전하고 정밀한 보호 정책을 구현하기 어렵다.

    이를 해결하기 위해 본 논문은 MTE를 기반으로 하는 세 가지 하드웨어 지원 메커니즘을 제안하며, 각각 ARM 소프트웨어 스택의 서로 다른 계층에 특화되도록 설계한다. 첫 번째 메커니즘은 커널 주소 공간을 공유하는 불신 확장 모듈로부터 커널 데이터를 보호하고, 두 번째 메커니즘은 여러 도메인 간 공유 객체에 대해 바이트 수준 접근 제어를 제공하며, 세 번째 메커니즘은 Rust와 C/C++이 혼재된 애플리케이션에서 안전한(safe) Rust 데이터와 메타데이터를 보호한다. 실제 워크로드를 대상으로 한 평가 결과, 제안된 설계들은 상용 ARM 프로세서에서 낮은 성능 오버헤드로 메모리 보호를 유의미하게 강화함을 보이며, 다양한 시스템 환경에서 실용적인 하드웨어 지원 기반 메모리 보호를 가능하게 함을 입증한다.

    더보기

    목차 (Table of Contents)

    • Abstract i
    • Contents ii
    • List of Tables vi
    • List of Figures vii
    • 1 Introduction 1
    • Abstract i
    • Contents ii
    • List of Tables vi
    • List of Figures vii
    • 1 Introduction 1
    • 1.1 Contributions 4
    • 2 Background 5
    • 2.1 ARM Memory Tagging Extension 5
    • 3 Isolation for Kernel Extensions 7
    • 3.1 Introduction 7
    • 3.2 Related Works 10
    • 3.3 Threat Model 14
    • 3.4 Design 15
    • 3.4.1 Design Requirements 16
    • 3.4.2 Overview 18
    • 3.4.3 MTE-supported Memory Isolation 19
    • 3.4.4 Extension Stack Isolation 22
    • 3.4.5 MMIO Access Control 23
    • 3.4.6 MTE-based Control Flow Isolation 25
    • 3.5 Implementation 27
    • 3.5.1 SFITAG Runtime 27
    • 3.5.2 SFITAG Compiler 29
    • 3.5.3 Extension Loading Procedure 32
    • 3.5.4 SFITAG Verifier 33
    • 3.5.5 Multithreading Support 34
    • 3.6 Evaluation 35
    • 3.6.1 Code Instrumentation Overhead 35
    • 3.6.2 Load Time Overhead 36
    • 3.6.3 Micro Operations Overhead 37
    • 3.6.4 Device Drivers 38
    • 3.6.5 Security Analysis 43
    • 3.7 Discussion 44
    • 3.7.1 Limitation on the number of tags 44
    • 3.7.2 Limitation on minimum alignment granularity 45
    • 3.8 Summary 46
    • 4 Byte-level Access Control on Shared Memory 47
    • 4.1 Introduction 47
    • 4.2 Motivation 50
    • 4.2.1 Existing Access Control Mechanisms 53
    • 4.3 Threat Model 56
    • 4.4 Design 58
    • 4.4.1 BASTAG Overview 58
    • 4.4.2 Shadow Memory Tagging (SMT) 61
    • 4.4.3 Access Control Enforcement 63
    • 4.4.4 Preventing Access Control Bypass 66
    • 4.4.5 Optimizations 69
    • 4.4.6 BASTAG APIs 70
    • 4.5 Implementation 74
    • 4.5.1 BASTAG Compiler 74
    • 4.5.2 BASTAG Verifier 75
    • 4.5.3 Tag Regions for Kernel Use Case 76
    • 4.5.4 Integration with Isolation Mechanisms 76
    • 4.6 Evaluation 78
    • 4.6.1 Micro-benchmarks 78
    • 4.6.2 Case Study 1: Kernel and Extensions 84
    • 4.6.3 Case Study 2: Inter-task Communication 86
    • 4.6.4 Case Study 3: Multi-threaded Application 87
    • 4.6.5 Integration with Isolation Technique 88
    • 4.6.6 Comparison with SW-only Shadow Memory 89
    • 4.6.7 Security Analysis 90
    • 4.7 Related Works 91
    • 4.8 Summary 94
    • 5 Isolation of Rust from Unsafe Languages 95
    • 5.1 Introduction 95
    • 5.2 Motivation 99
    • 5.2.1 Vulnerabilities in Mixed-language Applications 99
    • 5.2.2 Mitigation by Object-level Isolation 102
    • 5.2.3 Need for Field-level Isolation 103
    • 5.2.4 Limitations of Existing Mechanisms 106
    • 5.3 Threat Model 108
    • 5.4 Design 109
    • 5.4.1 Design Principles 109
    • 5.4.2 RUSTAG Overview 110
    • 5.4.3 MTE-based Object-level Isolation 112
    • 5.4.4 MTE-based Field-level Isolation 119
    • 5.4.5 Interaction Gates 123
    • 5.5 Implementation 124
    • 5.5.1 RUSTAG Compiler 124
    • 5.5.2 RUSTAG Allocator 125
    • 5.5.3 RUSTAG Verifier 125
    • 5.5.4 RUSTAG Kernel Module 125
    • 5.6 Evaluation 126
    • 5.6.1 Micro-Benchmarks 126
    • 5.6.2 Macro-Benchmarks 130
    • 5.6.3 Security Analysis 133
    • 5.7 Discussion 134
    • 5.8 Related Works 135
    • 5.9 Summary 136
    • 6 Conclusion 137
    • Abstract (In Korean) 161
    • Acknowledgment 163
    더보기

    분석정보

    View

    상세정보조회

    0

    Usage

    원문다운로드

    0

    대출신청

    0

    복사신청

    0

    EDDS신청

    0

    동일 주제 내 활용도 TOP

    더보기

    주제

    연도별 연구동향

    연도별 활용동향

    연관논문

    연구자 네트워크맵

    공동연구자 (7)

    유사연구자 (20) 활용도상위20명

    이 자료와 함께 이용한 RISS 자료

    나만을 위한 추천자료

    해외이동버튼