Securekeeper: Confidential Zookeeper Using Intel
Total Page:16
File Type:pdf, Size:1020Kb
SecureKeeper: Confidential ZooKeeper using Intel SGX Stefan Brenner Colin Wulf David Goltzsche TU Braunschweig, Germany TU Braunschweig, Germany TU Braunschweig, Germany [email protected] [email protected] [email protected] Nico Weichbrodt Matthias Lorenz Christof Fetzer TU Braunschweig, Germany TU Braunschweig, Germany TU Dresden, Germany [email protected] [email protected] [email protected] Peter Pietzuch Rüdiger Kapitza Imperial College London, UK TU Braunschweig, Germany [email protected] [email protected] ABSTRACT 1. INTRODUCTION Cloud computing, while ubiquitous, still suffers from trust Cloud computing has become ubiquitous due to its bene- issues, especially for applications managing sensitive data. fits to both cloud customers and providers [1]. Using public Third-party coordination services such as ZooKeeper and cloud resources, however, requires customers to fully trust Consul are fundamental building blocks for cloud applica- the provided software and hardware stacks as well as the tions, but are exposed to potentially sensitive application cloud administrators. This forms an inhibitor when sensi- data. Recently, hardware trust mechanisms such as Intel's tive data must be processed [2, 3]. Software Guard Extensions (SGX) offer trusted execution With Software Guard Extensions (SGX), Intel recently re- environments to shield application data from untrusted soft- leased a new technology [4] for addressing trust issues that ware, including the privileged Operating System (OS) and customers face when outsourcing services to off-site loca- hypervisors. Such hardware support suggests new options tions. Based on an instruction set extension, it allows the for securing third-party coordination services. creation of one or more trusted execution environments| We describe SecureKeeper, an enhanced version of the called enclaves|inside applications. Thereby, the plaintext ZooKeeper coordination service that uses SGX to pre- of enclave-protected data is only available for computation serve the confidentiality and basic integrity of ZooKeeper- inside the CPU, and it is encrypted as soon as the data leaves managed data. SecureKeeper uses multiple small enclaves the CPU. This way enclave-residing data is even guarded to ensure that (i) user-provided data in ZooKeeper is al- against unauthorized accesses by higher privileged code and ways kept encrypted while not residing inside an enclave, attackers with administrative rights and physical access. and (ii) essential processing steps that demand plaintext ac- While enclaves were originally designed to host tailored cess can still be performed securely. SecureKeeper limits code for specific tasks, e.g. digital rights or password man- the required changes to the ZooKeeper code base and re- agement [5], Baumann et al. [6] proposed Haven that ex- lies on Java's native code support for accessing enclaves. ecutes unmodified legacy Windows applications inside en- With an overhead of 11%, the performance of SecureKeeper claves. These application enclaves are convenient for secur- with SGX is comparable to ZooKeeper with secure commu- ing entire legacy applications but have two significant draw- nication, while providing much stronger security guarantees backs: (i) current SGX-capable CPUs restrict the maximum with a minimal trusted code base of a few thousand lines of memory footprint of all enclaves to 128 MB. If an applica- code. tion has a larger memory footprint, an SGX-specific form of in-memory paging between trusted and untrusted memory is required, which requires costly re-encryption of enclave CCS Concepts pages with a substantial performance overhead; and (ii) by •Security and privacy ! Distributed systems security; placing whole applications and associated system support in- side an enclave, the resulting large trusted code base (TCB) poses a risk of including security relevant vulnerabilities [7]. Keywords Based on these observations, we argue that application Cloud Computing, Intel SGX, Apache ZooKeeper enclaves that contain entire applications are a poor fit for legacy services if tailored solutions are easy to implement Permission to make digital or hard copies of all or part of this work for personal or and integrate. In particular, this applies to existing data- classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation handling services that receive, store and return data on be- on the first page. Copyrights for components of this work owned by others than the half of clients while performing limited data processing. Ex- author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or amples include simple key-value stores [8], web servers [9{ republish, to post on servers or to redistribute to lists, requires prior specific permission 11], and, as highlighted in this paper, coordination services and/or a fee. Request permissions from [email protected]. such as ZooKeeper [12]. For such services, data confiden- Middleware’16, December 12 - 16, 2016, Trento, Italy tiality and basic integrity can be preserved using small spe- © 2016 Copyright held by the owner/author(s). Publication rights licensed to ACM. ISBN 978-1-4503-4300-8/16/12. $15.00 cialized enclaves, which can be integrated with the original DOI: http://dx.doi.org/10.1145/2988336.2988350 code base with only few changes. © ACM, 2016. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in the proceedings of the 17th ACM Middleware conference (2016). http://dx.doi.org/10.1145/2988336.2988350 ZooKeeper is a crucial building block for many distributed Agreement Agreement applications, e.g. used as naming service, for configuration Replica1 Replica2 Replica3,L Replica4 Replica5 management, general message exchange and coordination tasks. It therefore manages sensitive application informa- Client1 Client2 Client3 Client4 Client5 Client6 Client7 Client8 tion, i.e., including access tokens and credentials when used Figure 1: General architecture of ZooKeeper. for configuration management. Albeit typically not user fac- ing, ZooKeeper constitutes a key component in public cloud infrastructures that must be secured against attacks, espe- guarantees and limitations in Section 7. Finally, we discuss cially data theft carried out by insiders. related work in Section 8 and draw conclusions in Section 9. As a data-handling service, ZooKeeper features a simple file system like API, with some data processing functional- 2. BACKGROUND ity. Thus, data managed by ZooKeeper can be processed in To motivate the design of SecureKeeper, we first give a an encrypted state most of the time and only occasionally brief introduction to Apache ZooKeeper thereby discussing plaintext access is necessary. This functionality needs to be its nature as a data-handling service, second we provide factored out and executed under the protection of SGX. In essential details of SGX and finally outline an SGX-aware contrast to application enclaves, this way all data handling threat model. code that does not perform data processing is removed from the TCB. For ZooKeeper, this includes the entire Operating 2.1 Data handling in Apache ZooKeeper System (OS), the Java runtime environment as well as most Apache ZooKeeper [12] is a coordination service, allowing of the original service implementation itself. Furthermore, distributed applications the easy implementation of coordi- as data stays encrypted most of the time, it can be stored nation primitives. Such primitives may be naming, configu- outside of enclaves, only adding to the memory footprint ration management, leader election, group membership, bar- of the enclave when required. This leads to substantially riers and distributed locks. This exposes ZooKeeper to han- smaller enclaves, staying within the bounds of the 128 MB dle potentially sensitive application data, especially when limit of total enclave memory resulting in good performance. used for distributed configuration management. We describe SecureKeeper, an SGX-based ZooKeeper As shown in Figure 1, ZooKeeper is implemented as a extension that demonstrates how a complex data-handling fault-tolerant service, typically featuring at least three repli- service can be secured using SGX. SecureKeeper preserves cas. Clients connect to one of these and switch over to an- confidentiality and provides basic integrity of service data, other in case it crashes. ZooKeeper-managed data is orga- even against privileged code and attackers with physical nized hierarchically as a tree that is accessed via a simple file access. These security guarantees are enforced through a system like Application Progamming Interface (API). This minimally-invasive integration of two enclave types: (i) an data tree is composed of znodes, resembling a mixture of entry enclave is instantiated for each client and responsible folders and files: znodes can have payload data and other for protecting the client-replica connection and the data se- child znodes at the same time. curity of the ZooKeeper data store; (ii) a counter enclave is ZooKeeper globally orders all write requests via the leader instantiated only once at the leader replica of the ZooKeeper replica (marked L in Figure 1) using the ZAB [14] agreement cluster, and handles special write requests of sequential no- protocol. Additionally, ZooKeeper