Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2685048.2685070acmotherconferencesArticle/Chapter ViewAbstractPublication PagesosdiConference Proceedingsconference-collections
Article

Shielding applications from an untrusted cloud with Haven

Published: 06 October 2014 Publication History
  • Get Citation Alerts
  • Abstract

    Today's cloud computing infrastructure requires substantial trust. Cloud users rely on both the provider's staff and its globally-distributed software/hardware platform not to expose any of their private data.
    We introduce the notion of shielded execution, which protects the confidentiality and integrity of a program and its data from the platform on which it runs (i.e., the cloud operator's OS, VM and firmware). Our prototype, Haven, is the first system to achieve shielded execution of unmodified legacy applications, including SQL Server and Apache, on a commodity OS (Windows) and commodity hardware. Haven leverages the hardware protection of Intel SGX to defend against privileged code and physical attacks such as memory probes, but also addresses the dual challenges of executing unmodified legacy binaries and protecting them from a malicious host. This work motivated recent changes in the SGX specification.

    References

    [1]
    AWS CloudHSM Getting Started Guide. Amazon Web Services, Nov. 2013. http://aws.amazon.com/cloudhsm/.
    [2]
    I. Anati, S. Gueron, S. P. Johnson, and V. R. Scarlata. Innovative technology for CPU based attestation and sealing. In 2nd International Workshop on Hardware and Architectural Support for Security and Privacy, 2013.
    [3]
    T. E. Anderson, B. N. Bershad, E. D. Lazowska, and H. M. Levy. Scheduler activations: Effective kernel support for the user-level management of threads. ACM Transactions on Computer Systems, 10:53-79, 1992.
    [4]
    A. Arasu, S. Blanas, K. Eguro, R. Kaushik, D. Kossmann, R. Ramamurthy, and R. Venkatesan. Orthogonal security with Cipherbase. In 6th Conference on Innovative Data Systems Research, Jan. 2013.
    [5]
    Building a Secure System using TrustZone Technology. ARM Limited, Apr. 2009. Ref. PRD29-GENC-009492C.
    [6]
    A. Baumann, D. Lee, P. Fonseca, L. Glendenning, J. R. Lorch, B. Bond, R. Olinsky, and G. C. Hunt. Composing OS extensions safely and efficiently with Bascule. In EuroSys Conference, pages 239-252, Apr. 2013.
    [7]
    S. Bhatkar, D. C. DuVarney, and R. Sekar. Address obfuscation: an efficient approach to combat a broad range of memory error exploits. In 12th USENIX Security Symposium, pages 105-120, Aug. 2003.
    [8]
    E. Brickell, G. Graunke, M. Neve, and J.-P. Seifert. Software mitigations to hedge AES against cache-based software side channel vulnerabilities. Report 2006/052, Cryptology ePrint Archive, 2006.
    [9]
    D. Champagne and R. B. Lee. Scalable architectural support for trusted software. In 16th IEEE International Symposium on High-Performance Computer Architecture, Jan. 2010.
    [10]
    S. Checkoway and H. Shacham. Iago attacks: why the system call API is a bad untrusted RPC interface. In 18th International Conference on Architectural Support for Programming Languages and Operating Systems, Mar. 2013.
    [11]
    X. Chen, T. Garfinkel, E. C. Lewis, P. Subrahmanyam, C. A. Waldspurger, D. Boneh, J. Dwoskin, and D. R. Ports. Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems. In 13th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 2-13, 2008.
    [12]
    S. Chhabra, B. Rogers, Y. Solihin, and M. Prvulovic. SecureME: a hardware-software approach to full system security. In International Conference on Supercomputing, pages 108-119, 2011.
    [13]
    Cloud Security Alliance. Government access to information survey. https://cloudsecurityalliance.org/research/surveys/#_nsa_prism, July 2013.
    [14]
    J. Criswell, N. Dautenhahn, and V. Adve. Virtual Ghost: Protecting applications from hostile operating systems. In 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS'14, pages 81-96, 2014.
    [15]
    J. R. Douceur, J. Elson, J. Howell, and J. R. Lorch. Leveraging legacy code to deploy desktop applications on the web. In 8th USENIX Symposium on Operating Systems Design and Implementation, pages 339-354, Dec. 2008.
    [16]
    K. Fu, F. Kaashoek, and D. Mazières. Fast and secure distributed read-only file system. In 4th USENIX Symposium on Operating Systems Design and Implementation, pages 181-196, 2000.
    [17]
    B. Gassend, E. Suh, D. Clarke, M. van Dijk, and S. Devadas. Caches and hash trees for efficient memory integrity verification. In 9th IEEE International Symposium on High-Performance Computer Architecture, pages 295-306, 2003.
    [18]
    B. Gellman and L. Poitras. U.S., British intelligence mining data from nine U.S. Internet companies in broad secret program. The Washington Post, June 2013.
    [19]
    B. Gellman and A. Soltani. NSA infiltrates links to Yahoo, Google data centers worldwide, Snowden documents say. The Washington Post, Oct. 2013.
    [20]
    C. Gentry. A fully homomorphic encryption scheme. PhD thesis, Stanford University, 2009.
    [21]
    C. Gentry, S. Halevi, and N. Smart. Homomorphic evaluation of the AES circuit. In 32nd International Cryptology Conference, 2012.
    [22]
    S. M. Hand. Self-paging in the Nemesis operating system. In 3rd USENIX Symposium on Operating Systems Design and Implementation, pages 73-86, 1999.
    [23]
    C. Hawblitzel, J. Howell, J. R. Lorch, A. Narayan, B. Parno, D. Zhang, and B. Zill. Ironclad apps: End-to-end security via automated full-system verification. In 11th USENIX Symposium on Operating Systems Design and Implementation, Oct. 2014.
    [24]
    M. Hoekstra, R. Lal, P. Pappachan, V. Phegade, and J. Del Cuvillo. Using innovative instructions to create trustworthy software solutions. In 2nd International Workshop on Hardware and Architectural Support for Security and Privacy, 2013.
    [25]
    O. S. Hofmann, S. Kim, A. M. Dunn, M. Z. Lee, and E. Witchel. InkTag: secure applications on an untrusted operating system. In 18th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 265-278, 2013.
    [26]
    F. Hou, N. Xiao, F. Liu, H. He, and D. Gu. Performance and consistency improvements of hash tree based disk storage protection. In 2009 IEEE International Conference on Networking, Architecture, and Storage (NAS 2009), pages 51-56, 2009.
    [27]
    J. Howell, B. Parno, and J. R. Douceur. How to run POSIX apps in a minimal picoprocess. In 2013 USENIX Annual Technical Conference, pages 321-332, June 2013.
    [28]
    Software Guard Extensions Programming Reference. Intel Corp., Sept. 2013. Ref. #329298-001 http://software.intel. com/sites/default/files/329298-001.pdf.
    [29]
    Software Guard Extensions Programming Reference, Rev. 2. Intel Corp., Oct. 2014. Ref. #329298-002.
    [30]
    G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, and S. Winwood. seL4: Formal verification of an OS kernel. In 22nd ACM Symposium on Operating Systems Principles, pages 207-220, 2009.
    [31]
    R. B. Lee, P. C. S. Kwan, J. P. McGregor, J. Dwoskin, and Z. Wang. Architecture for protecting critical secrets in microprocessors. In 32nd International Symposium on Computer Architecture, pages 2-13, 2005.
    [32]
    R. Levin, E. Cohen, W. Corwin, F. Pollack, and W. Wulf. Policy/mechanism separation in HYDRA. In 5th ACM Symposium on Operating Systems Principles, pages 132-140, 1975.
    [33]
    Y. Li, J. M. McCune, J. Newsome, A. Perrig, B. Baker, and W. Drewry. MiniBox: A two-way sandbox for x86 native code. In 2014 USENIX Annual Technical Conference, June 2014.
    [34]
    D. Lie, C. Thekkath, M. Mitchell, P. Lincoln, D. Boneh, J. Mitchell, and M. Horowitz. Architectural support for copy and tamper resistant software. In 9th International Conference on Architectural Support for Programming Languages and Operating Systems, Nov. 2000.
    [35]
    D. Lie, C. A. Thekkath, and M. Horowitz. Implementing an untrusted operating system on trusted hardware. In 19th ACM Symposium on Operating Systems Principles, pages 178-192, 2003.
    [36]
    U. Maheshwari, R. Vingralek, and W. Shapiro. How to build a trusted database system on untrusted storage. In 4th USENIX Symposium on Operating Systems Design and Implementation, pages 135-150, 2000.
    [37]
    B. D. Marsh, M. L. Scott, T. J. LeBlanc, and E. P. Markatos. First-class user-level threads. In 13th ACM Symposium on Operating Systems Principles, pages 110-121, Oct. 1991.
    [38]
    J. M. McCune, B. J. Parno, A. Perrig, M. K. Reiter, and H. Isozaki. Flicker: an execution infrastructure for TCB minimization. In EuroSys Conference, pages 315-328, 2008.
    [39]
    J. M. McCune, Y. Li, N. Qu, Z. Zhou, A. Datta, V. Gligor, and A. Perrig. TrustVisor: Efficient TCB reduction and attestation. In IEEE Symposium on Security and Privacy, pages 143-158, May 2010.
    [40]
    D. McGrew and J. Viega. The Galois/counter mode of operation (GCM). http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf, 2004.
    [41]
    F. McKeen, I. Alexandrovich, A. Berenzon, C. V. Rozas, H. Shafi, V. Shanbhogue, and U. R. Savagaonkar. Innovative instructions and software model for isolated execution. In 2nd International Workshop on Hardware and Architectural Support for Security and Privacy, 2013.
    [42]
    R. Merkle. A digital signature based on a conventional encryption function. In Advances in Cryptology - CRYPTO'87, pages 369-378, 1987.
    [43]
    C. C. Miller. Revelations of N.S.A. spying cost U.S. tech companies. The New York Times, Mar. 2014.
    [44]
    E. Owusu, J. Guajardo, J. McCune, J. Newsome, A. Perrig, and A. Vasudevan. OASIS: On achieving a sanctuary for integrity and secrecy on untrusted platforms. In 20th ACM Conference on Computer and Communications Security, pages 13-24, 2013.
    [45]
    B. Parno, J. R. Lorch, J. R. Douceur, J. Mickens, and J. M. McCune. Memoir: Practical state continuity for protected modules. In IEEE Symposium on Security and Privacy, pages 379-394, 2011.
    [46]
    R. A. Popa, C. M. S. Redfield, N. Zeldovich, and H. Balakrishnan. CryptDB: Protecting confidentiality with encrypted query processing. In 23rd ACM Symposium on Operating Systems Principles, pages 85-100, 2011.
    [47]
    D. E. Porter, S. Boyd-Wickizer, J. Howell, R. Olinksy, and G. C. Hunt. Rethinking the library OS from the top down. In 16th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 291-304, Mar. 2011.
    [48]
    PrivateCore. Trustworthy computing for OpenStack with vCage. http://privatecore.com/vcage/, 2014.
    [49]
    H. Raj, D. Robinson, T. B. Tariq, P. England, S. Saroiu, and A.Wolman. Credo: Trusted computing for guest VMs with a commodity hypervisor. Technical Report MSR-TR- 2011-130, Microsoft Research, Dec. 2011.
    [50]
    R. Sailer, X. Zhang, T. Jaeger, and L. van Doorn. Design and implementation of a TCG-based integrity measurement architecture. In 13th USENIX Security Symposium, Aug. 2004.
    [51]
    N. Santos, H. Raj, S. Saroiu, and A. Wolman. Using ARM TrustZone to build a trusted language runtime for mobile applications. In 19th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 67-80, 2014.
    [52]
    E. G. Sirer, W. de Bruijn, P. Reynolds, A. Shieh, K. Walsh, D. Williams, and F. B. Schneider. Logical attestation: An authorization architecture for trustworthy computing. In 23rd ACM Symposium on Operating Systems Principles, pages 249-264, 2011.
    [53]
    S. W. Smith and S. Weingart. Building a high-performance, programmable secure coprocessor. Computer Networks, 31(9):831-860, Apr. 1999. ISSN 1389-1286.
    [54]
    R. Ta-Min, L. Litty, and D. Lie. Splitting interfaces: Making trust between applications and operating systems configurable. In 7th USENIX Symposium on Operating Systems Design and Implementation, pages 279-292, 2006.
    [55]
    S. D. Tetali, M. Lesani, R. Majumdar, and T. Millstein. MrCrypt: Static analysis for secure cloud computations. In 2013 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 271-286, 2013.
    [56]
    TPC benchmark E standard specification. Transaction Processing Performance Council, June 2010. Rev. 1.12.0.
    [57]
    TPM Main Specification Level 2. Trusted Computing Group, Mar. 2011. Version 1.2, Revision 116.
    [58]
    C.-C. Tsai, K. S. Arora, N. Bandi, B. Jain, W. Jannen, J. John, H. A. Kalodner, V. Kulkarni, D. Oliveira, and D. E. Porter. Cooperation and security isolation of library OSes for multi-process applications. In EuroSys Conference, Apr. 2014.
    [59]
    A. Vasudevan, E. Owusu, Z. Zhou, J. Newsome, and J. M. McCune. Trustworthy execution on mobile devices: What security properties can my mobile platform give me? In 5th International Conference on Trust and Trustworthy Computing, pages 159-178, June 2012.
    [60]
    J. Yang and K. G. Shin. Using hypervisor to provide data secrecy for user applications on a per-page basis. In 4th International conference on Virtual Execution Environments, pages 71-80, 2008.
    [61]
    B. Yee, D. Sehr, G. Dardyk, J. B. Chen, R. Muth, T. Ormandy, S. Okasaka, N. Narula, and N. Fullagar. Native Client: A sandbox for portable, untrusted x86 native code. In IEEE Symposium on Security and Privacy, 2009.
    [62]
    A. Yun, C. Shi, and Y. Kim. On protecting integrity and confidentiality of cryptographic file system for outsourced storage. In 2009 ACM Workshop on Cloud Computing Security, pages 67-76, 2009.
    [63]
    F. Zhang, J. Chen, H. Chen, and B. Zang. CloudVisor: retrofitting protection of virtual machines in multitenant cloud with nested virtualization. In 23rd ACM Symposium on Operating Systems Principles, pages 203-216, 2011.
    [64]
    X. Zhang, S. Dwarkadas, and K. Shen. Towards practical page coloring-based multicore cache management. In EuroSys Conference, pages 89-102, 2009.

    Cited By

    View all
    • (2024)Efficient Auditing of Event-driven Web ApplicationsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3650089(1208-1224)Online publication date: 22-Apr-2024
    • (2024)SEVeriFast: Minimizing the root of trust for fast startup of SEV microVMsProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640424(1045-1060)Online publication date: 27-Apr-2024
    • (2023)Analyzing the Performance Impact of HPC Workloads with Gramine+SGX on 3rd Generation Xeon Scalable ProcessorsProceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis10.1145/3624062.3624267(1850-1858)Online publication date: 12-Nov-2023
    • Show More Cited By

    Index Terms

    1. Shielding applications from an untrusted cloud with Haven

        Recommendations

        Reviews

        A. Squassabia

        Cloud computing is a recent model for provisioning commodity hardware with a preinstalled software environment to run a custom software executable, where the provider of the commodity environment has enormous latitude for its provisioning. The term is new and its definition still coalescing, but the provider controls the hardware and software stack. Cloud computing subverts the longstanding tenet that the computing environment is largely trusted, whereas application software is untrustworthy. From the perspective of a custom application running in the cloud, trust in the environment is misplaced, because security guarantees are puny and expensive, and trust is difficult or impossible to enforce and validate. Very little help in support of a healthy general presumption of mutual distrust between application code and the cloud environment is available. This paper provides a proof-of-concept implementation enabling mutual distrust between a general-purpose, user-level application and its operating environment, even when the user application is written without particular care to validate and enforce trust. This remarkable goal is achieved by embracing and sensibly extending the newly available Intel Software Guard Extensions (SGX) instructions and specification. Originally, SGX enabled only parts of an application written to take advantage of this feature some degree of execution trust guaranteed by the hardware itself. SGX has limitations precluding the extension of trust to an entire application; for instance, SGX does not allow trust when processing interrupts. Haven succeeded in defining and implementing shielded execution for an entire, unmodified legacy application affording mutual distrust in a working prototype running Microsoft SQL Server and an Apache Web Server. This brilliant accomplishment could be celebrated as a harbinger of trust in the increasingly pervasive cloud computing model. Online Computing Reviews Service

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Other conferences
        OSDI'14: Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation
        October 2014
        676 pages
        ISBN:9781931971164

        Sponsors

        • USENIX Assoc: USENIX Assoc

        In-Cooperation

        Publisher

        USENIX Association

        United States

        Publication History

        Published: 06 October 2014

        Check for updates

        Qualifiers

        • Article

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)0
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 27 Jul 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)Efficient Auditing of Event-driven Web ApplicationsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3650089(1208-1224)Online publication date: 22-Apr-2024
        • (2024)SEVeriFast: Minimizing the root of trust for fast startup of SEV microVMsProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640424(1045-1060)Online publication date: 27-Apr-2024
        • (2023)Analyzing the Performance Impact of HPC Workloads with Gramine+SGX on 3rd Generation Xeon Scalable ProcessorsProceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis10.1145/3624062.3624267(1850-1858)Online publication date: 12-Nov-2023
        • (2023)Veil: A Protected Services Framework for Confidential Virtual MachinesProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624763(378-393)Online publication date: 25-Mar-2023
        • (2023)Accelerating Extra Dimensional Page Walks for Confidential ComputingProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3614293(654-669)Online publication date: 28-Oct-2023
        • (2023)DiLOS: Do Not Trade Compatibility for Performance in Memory DisaggregationProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3567488(266-282)Online publication date: 8-May-2023
        • (2022)Rearchitecting in-memory object stores for low latencyProceedings of the VLDB Endowment10.14778/3494124.349413815:3(555-568)Online publication date: 4-Feb-2022
        • (2022)Towards isolated execution at the machine levelProceedings of the 13th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3546591.3547530(68-77)Online publication date: 23-Aug-2022
        • (2022)Secure and Policy-Compliant Query Processing on Heterogeneous Computational Storage ArchitecturesProceedings of the 2022 International Conference on Management of Data10.1145/3514221.3517913(1462-1477)Online publication date: 10-Jun-2022
        • (2022)Faulty Point Unit: ABI Poisoning Attacks on Trusted Execution EnvironmentsDigital Threats: Research and Practice10.1145/34912643:2(1-26)Online publication date: 8-Feb-2022
        • Show More Cited By

        View Options

        View options

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media