Sprobes: Enforcing Kernel Code Integrity on the TrustZone Architecture

10/28/2014
by   Xinyang Ge, et al.
0

Many smartphones now deploy conventional operating systems, so the rootkit attacks so prevalent on desktop and server systems are now a threat to smartphones. While researchers have advocated using virtualization to detect and prevent attacks on operating systems (e.g., VM introspection and trusted virtual domains), virtualization is not practical on smartphone systems due to the lack of virtualization support and/or the expense of virtualization. Current smartphone processors do have hardware support for running a protected environment, such as the ARM TrustZone extensions, but such hardware does not control the operating system operations sufficiently to enable VM introspection. In particular, a conventional operating system running with TrustZone still retains full control of memory management, which a rootkit can use to prevent traps on sensitive instructions or memory accesses necessary for effective introspection. In this paper, we present SPROBES, a novel primitive that enables introspection of operating systems running on ARM TrustZone hardware. Using SPROBES, an introspection mechanism protected by TrustZone can instrument individual operating system instructions of its choice, receiving an unforgeable trap whenever any SPROBE is executed. The key challenge in designing SPROBES is preventing the rootkit from removing them, but we identify a set of five invariants whose enforcement is sufficient to restrict rootkits to execute only approved, SPROBE-injected kernel code. We implemented a proof-of-concept version of SPROBES for the ARM Fast Models emulator, demonstrating that in Linux kernel 2.6.38, only 12 SPROBES are sufficient to enforce all five of these invariants. With SPROBES we show that it is possible to leverage the limited TrustZone extensions to limit conventional kernel execution to approved code comprehensively.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/10/2021

Garmr: Defending the gates of PKU-based sandboxing

Memory Protection Keys for Userspace (PKU) is a recent hardware feature ...
research
10/09/2015

Multitasking Programming of OBDH Satellite Based On PC-104

On Board Data Handling (OBDH) has functions to monitor, control, acquire...
research
05/22/2014

Hello rootKitty: A lightweight invariance-enforcing framework

In monolithic operating systems, the kernel is the piece of code that ex...
research
05/15/2019

Neverland: Lightweight Hardware Extensions for Enforcing Operating System Integrity

The security of applications hinges on the trustworthiness of the operat...
research
06/19/2023

virtCCA: Virtualized Arm Confidential Compute Architecture with TrustZone

ARM introduces the Confidential Compute Architecture (CCA) in the forthc...
research
08/21/2017

Entirely protecting operating systems against transient errors in space environment

In this article, we propose a mainly-software hardening technique to tot...
research
09/12/2019

Taking a Look into Execute-Only Memory

The development process of microcontroller firmware often involves multi...

Please sign up or login with your details

Forgot password? Click here to reset