Introduction

When it comes to securing sensitive applications and data, a best practice is to encrypt the data. While encrypting data-at-rest and data-in-motion are well-recognized issues with multiple solutions, runtime application security has been an unsolved problem. Plain text code and data is exposed at runtime, and that information can include sensitive data, keys for data-at-rest and certificates for data-in-motion.

Anjuna SGX Runtime provides runtime protection for sensitive applications and their data. It offers the following main benefits:

  • Security for the application regardless of the state of infrastructure security.

  • Simplicity - requires no code changes or recompilation, and seamlessly integrates into existing DevOps processes.

It uses the following constructs to provide security:

Memory Isolation

Completely isolates application memory from anything else on the machine including the operating system. Memory never leaves the CPU secure enclave unencrypted. No one can access memory, not even with root or physical access to the system.

Remote Attestation

Ensures a secure trusted channel to a back-end server application, provides integrity by validating that expected code is running in the expected environment.

These constructs are provided by Secure Enclaves, implemented in modern processors.

Secure Enclaves

Conventional approaches to securing applications have relied primarily on software to provide protection. However good the software implementation may be, an attacker that is able to gain privileged access would conceivably be able to circumvent software defenses. A recent and disruptive technology introduced in many new processor models provides a better security and privacy model. It allows you to run an application in an environment that is isolated from the host, while running on the same machine. In the case of Intel®, the key enabler is the hardware-level memory isolation introduced by Intel® Software Guard Extensions, that creates an encrypted partition of the memory. Somewhat similar functionality is offered by AMD in the form of Secure Encrypted Virtualization (SEV).

Intel® Software Guard Extensions (Intel® SGX) brings a hardware root-of-trust and program isolation to commodity processors, enabling the handling of sensitive data in a trusted execution environment called a secure enclave.

Security model

Secure enclaves enable running an application so that its contents and the data it handles are completely inaccessible to any other entities. Such “blocked” entities include privileged users on the guest OS, the hypervisor or the host OS itself.

About this Document

This guide is structured as follows:

Document Conventions

This section describes typographical and other conventions used in this guide.

Words used with specialized or technical meanings appear in boldface type the first time they appear, and also when they are used for the first time in a new section. You can find definitions of specialized vocabulary in the Glossary.

Text colored like this is a link to another document, either in this guide or elsewhere on the web.

Text in monospace type represents text that appears in a terminal or in the filesystem of a host. We use it to refer the the names of commands and of files used by the Anjuna SGX Runtime and in examples.

A block of text in monospace type represents an interaction with a host’s shell in the terminal, or the text of a file.

This block of text is an example of monospace type used to illustrate the contents of a file.

The following text illustrates the appearance of a command in a terminal shell. It can be copied by hovering the text and clicking on the clipboard icon to the right.

$ ls -al

Italic type in examples stands for text that should be replaced.

For example, in this text:

/home/username/.bashrc

the text username should be replaced with an actual username.