Google introduced Asylo, an open-source framework for developers to run applications in a trusted execution environment.
Traditionally, data security focuses on protecting data at rest (where it is stored) and while in transit (as it is moving from one device to another). That’s necessary if the threat is someone physically stealing the computer or sniffing network packets. Protecting the data while it is being used is a much harder problem. If the attacker has compromised the application and is an authorized user on the server, then it doesn’t matter if the data is encrypted because authorized users have access to the data.
That is the problem confidential computing tackles: keeping the data protected while in use. Confidential computing offers the security features and controls that protect the data from attackers who have hardware access or administrator privileges and from attackers exploiting vulnerabilities to gain control of the application, operating system, or the hypervisor.
Encrypting data while in use is the "missing piece" in cloud security, according to Microsoft Azure CTO Mark Russinovich.
Use Secure Enclaves
Confidential computing “creates a separate, protected Trusted Execution Environment (TEE) as a separate virtual machine with minimal application and operating system code,” said Christine Meyers, director of product marketing at Alert Logic. Data and application operations inside the TEE can’t be viewed from the outside, even with a debugger. “This separation and reduced code environment help ensure that data within the virtual secure mode (VSM) TEE will remain protected from an attacker,” Meyers said.
In other words, the TEE’s job is to defend against attacks on the operating system, hypervisor, drivers, and firmware by running the applications in specialized execution environments. The TEE protects the data during processing and ensures only authorized code is permitted to access the data. If the TEE determines that the code has been altered, then it blocks the operations.
Encrypting data while in use is the "missing piece" in cloud security
For example, newer mobile devices have a secure enclave to store keys and other sensitive information. The information can be used, but it’s protected because the attacks cannot get inside the enclave. Microsoft Azure confidential computing encrypts data within SQL Server and Azure SQL Database without impacting the functionality of SQL queries.
“Enclaves are used to hold keys, secrets, or used to verify a specific piece of code,” said Chenxi Wang, a cloud security expert and founding partner of early-stage venture capital firm Rain Capital.
Container systems like Docker and Kubernetes let applications run without impacting the underlying host operating system. TEE goes for the opposite scenario, protecting the application and associated data from anything that may come from the host operating system or hypervisor.
The enclaves used in confidential computing isn’t just another form of containers or sandboxes, because they are typically associated with a trusted hardware component. Containers and sandboxes rely on the operating system on the host server, but enclaves execute independently of the host, which is why enclaves can withstand operating-system-level attacks. Even if the application is running in a container, someone who has access to the server memory will be able to see the data being used, despite not being able to see within the container. That isn’t the case with confidential computing.
Use TEE with Asylo
TEE typically has specific hardware requirements, so using a TEE typically requires specialized knowledge and niche tools. Asylo removes those obstacles by letting developers use TEEs without having to know the details of how TEEs work. The experimental framework also has features for encrypting sensitive communications, provide isolation for sensitive workloads, and verifying the integrity of code running in enclaves, Google said in its announcement.
“Asylo applications do not need to be aware of the intricacies of specific TEE implementations,” wrote senior product manager Nelly Porter, engineering director Jason Garms, and technical program manager Sergey Simakov. Apps "can run on your laptop, a workstation under your desk, a virtual machine in an on-premises server, or an instance in the cloud,"
The SDK, available for C++ developers, abstracts out hardware and software backends for applications. The Asylo source is on GitHub and there is a pre-built container image on the Google Container Registry with the API and all the libraries, and tools needed to run on any environment that supports TEE.
The current version of Asylo provides enclaves through a software back-end. Future backends based on AMD Secure Encryption Virtualization technology, Intel Software Guard Extensions, and other hardware technologies are in the works.
Asylo framework allows developers to easily build applications and make them portable.
While confidential computing dramatically improves data security in the cloud, it impedes cloud portability. Workloads are locked into the specific environment with the enclave and TEE architecture. Moving to another cloud meant rewriting the whole application if the new home had different architecture. This is what makes Asylo so interesting, because it introduces the idea that you can move the applications and secure enclaves around.
“The Asylo framework allows developers to easily build applications and make them portable, so they can be deployed on a variety of software and hardware backends,” the Google engineers wrote.
Even with all the strides in cloud infrastructure and security, there are some applications and data that may be too sensitive to put on the cloud without more controls, extra verification, and stricter isolation. Asylo lowers the barriers for developers interested in confidential computing.