Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

SKEE: A Lightweight Secure Kernel-level Execution Environment for ARM

论文下载

Introduction

为内核提供检测与保护

以前的一些方法:

  • Virtualization-based Approaches:TCB 必须足够大,能够处理资源分配、硬件虚拟化。而且虚拟机例如VMware、XEN有自身的安全问题。
  • Microhypervisor Approaches:小型的hypervisor,旨在提供隔离。microhypervisors do not provide a good fit to host security tools that require a relatively large code base.
  • sandbox:需要虚拟化提供隔离,需要hypervisor来管理分配sandbox,因此会增大TCB的大小。
  • hardware protection:Intel: Software Guard Extensions (SGX).在ARM中没有类似的防护,ARM提出TrustZone,但也会增大code base和需要对高权限的Trustzone层的维护

SKEE

  • 完美地与内核隔离
  • 提供一个切换到隔离区域的接口
  • 能够让安全工具检测内核

Background

32-bit ARMv7

内存转换涉及的三个寄存器

  • Translation Table Base Control Register (TTBCR)
  • Translation Table Base Register 0 (TTBR0)
  • Translation Table Base Register 1 (TTBR1)

TTBCR contains a 3 bit called TTBCR.N

If the value of TTBCR.N is 0, then TTBR1 is not used, otherwise both TTBR0 and TTBR1 are used.

Fig

64-bit ARMv8

  • kernel: TTBR1
  • user: TTBR0

MSR指令可以使用0寄存器(XZR)使任何寄存器为0.

Address Space Identifier (ASID):非全局访问的虚拟内存页,与一个特定的ASID相连。

Memory Management in Virtualization Layer

THREAT MODEL, SECURITY GUARANTEES AND ASSUMPTIONS

Threat model

  • 修改、重定位内核执行文件:安全操作
  • 通过漏洞修改内核数据或控制流:通过安全工具检测
  • 攻击SKEE隔离区域,使防护失效:保证攻击不能到达隔离区域,bypass检测

SECURITY GUARANTEES

  • 禁止内核修改内存布局和系统访问权限
  • 内核到隔离区域只能通过一个严格控制的switch gate来访问

ASSUMPTIONS

  • 整个系统 loaded securely
  • 内核支持 W⊕X

SKEE DESIGN

SKEE Isolation

Creating a Protected Address Space

  1. 去除所有映射到SKEE隔离区域或者内核memory translation tables的entries
  2. 将内核代码和SKEE switch gate映射为只读
  3. 所有其他内存区域(包含内核数据,用户层内存)为PXN

Fig

Restrict Kernel Access to the MMU

SKEE 移除了关于内核的一些控制代码,把它们替换成可以跳到switch gate的hooks

SKEE Secure Context Switching

switch gate 是 atomic, deterministic and exclusive

  • ARMv7

Fig

  • ARMv8

Fig Fig

  • Using ASID for Faster Context Switching

Fig

Kernel Monitoring and Protection

  • 可以 trap kernel critical events
  • 可以访问内核内存
  • 可以进行内核内存保护

Security Analysis

  • 32-bit ARMv7: Samsung Note4
  • 64-bit ARMv8: Samsung Galaxy S6、Samsung Galaxy Note5

IMPLEMENTATION AND evaluation

Fig Fig Fig Fig