Overview
Research addresses the challenge of enforcing intra-process isolation for security-sensitive applications deployed within confidential virtual machines (CVMs). The proposed system, CCAegis, extends the Arm Confidential Compute Architecture (CCA) to provide granular protection for sensitive data and operations. This approach aims to safeguard against both adversaries originating within a process and the operating system (OS).
Research Context
The increasing adoption of confidential computing has led to the deployment of security-sensitive applications in CVMs, which are designed to reduce reliance on third-party cloud providers for security assurances. Despite this, privilege attacks originating from the OS persist as a significant threat within these environments. Existing isolation schemes that operate at a finer granularity, such as SHELTER, provide protection at the process level. However, these schemes remain vulnerable to attacks that occur within a process (intra-process attacks) and potential collusion scenarios involving the OS and intra-process adversaries.
Furthermore, many current techniques for intra-process isolation continue to depend on the OS for the management and enforcement of isolation domains. This dependency results in a large Trusted Computing Base (TCB), which can increase the attack surface. This identified gap underscores a requirement for confidential computing solutions that offer more granular isolation and reduced reliance on the trustworthiness of the OS.
Approach
The CCAegis system was developed to provide intra-process isolation by extending the Arm Confidential Compute Architecture (CCA). The methodology involves several steps to achieve this:
- Static Analysis: The system employs static analysis to track the flow of sensitive data within an application. This analysis is also used to identify specific functions responsible for handling such sensitive data.
- Permission-Switching Instruction Insertion: Permission-switching instructions are inserted at the call and return points of identified functions. These instructions are designed to adjust permissions during execution.
- Granule Protection Table (GPT) Utilization: Permissions are adjusted via the Granule Protection Table (GPT). This mechanism ensures that only functions explicitly designated for handling sensitive data can access it.
A core design principle of CCAegis is its minimal TCB. Trust is placed solely in the Secure Monitor, which is responsible for configuring the GPTs and managing domain switching operations. This design choice aims to minimize the TCB, thereby enhancing the overall security posture.
Findings
The CCAegis system was implemented and assessed on two platforms: an official emulator and a real development board. Experimental results indicated the following:
- Effective Isolation: CCAegis effectively isolates sensitive data and operations. This isolation functions against both intra-process adversaries and the OS.
- Performance Overheads: Performance overheads were measured across real-world cryptographic workloads. These overheads ranged from 1.01x to 1.43x when compared to the original, non-isolated version of the workloads.
Why This Matters
The development of CCAegis offers a method for enhancing the security of applications deployed in confidential computing environments by addressing vulnerabilities associated with intra-process attacks and OS dependencies. By minimizing the TCB and providing granular isolation at the intra-process level, it contributes to reducing the attack surface in scenarios where trust in the OS cannot be assumed.