Scalable security architecture for trusted software

Security-critical tasks executing on general-purpose computers require protection against software and hardware attacks to achieve their security objectives. Security services providing this protection can be offered by mechanisms rooted in processor hardware, since its storage and computing elements are typically outside the reach of attackers. This thesis presents the Bastion architecture, a hardware-software security architecture for providing protection scalable to a large number of security-critical tasks. Protection is enabled by three sets of new mechanisms: for protecting a trusted hypervisor, for fine-grained protection of modules in application or operating system space, and for securing the input and output of Bastion-protected software modules. This thesis also presents an implementation and evaluation of Bastion, and explores alternatives for one of its core security functions: memory authentication. The hypervisor, a layer of software dedicated to the virtualization of machine resources, is increasingly being involved in security solutions. We use it in Bastion as a manager of security-critical tasks. While past solutions protect the hypervisor from runtime software attacks, Bastion also protects the hypervisor from physical attacks, protects it from offline attacks, and provides it with a secure launch mechanism. Within this protected Bastion hypervisor, we design a second set of mechanisms that provide separate execution compartments for each security-critical task running in the virtual machines hosted by the hypervisor. These compartments are protected against both hardware attacks and software attacks originating from a potentially compromised operating system. To enable security-critical tasks to communicate with the outside world, we provide a third set of mechanisms for secure input and output to and from Bastion-protected compartments. We implement and evaluate a Bastion prototype by modifying the source code of the OpenSPARC processor and hypervisor systems. Addionally, we survey the design space of alternatives to the Bastion memory authentication mechanism, which is central to protecting critical software execution in Bastion. These contributions can improve security in the digital world by informing the design of the next generation of general-purpose computing platforms.

[1]  Ariel J. Feldman,et al.  Lest we remember: cold-boot attacks on encryption keys , 2008, CACM.

[2]  William A. Arbaugh,et al.  A secure and reliable bootstrap architecture , 1997, Proceedings. 1997 IEEE Symposium on Security and Privacy (Cat. No.97CB36097).

[3]  Andrew S. Tanenbaum,et al.  Operating systems: design and implementation , 1987, Prentice-Hall software series.

[4]  Eddie Kohler,et al.  Making information flow explicit in HiStar , 2006, OSDI '06.

[5]  Mike Halcrow eCryptfs: a stacked cryptographic filesystem , 2007 .

[6]  Trent Jaeger,et al.  Toward Automated Information-Flow Integrity Verification for Security-Critical Applications , 2006, NDSS.

[7]  G. Edward Suh,et al.  Caches and hash trees for efficient memory integrity verification , 2003, The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings..

[8]  Tal Garfinkel,et al.  Terra: a virtual machine-based platform for trusted computing , 2003, SOSP '03.

[9]  Willy Zwaenepoel,et al.  Diagnosing performance overheads in the xen virtual machine environment , 2005, VEE '05.

[10]  Sean W. Smith,et al.  Open-source applications of TCPA hardware , 2004, 20th Annual Computer Security Applications Conference.

[11]  Elias Levy,et al.  Approaching Zero , 2004, IEEE Secur. Priv..

[12]  Alan O. Freier,et al.  The SSL Protocol Version 3.0 , 1996 .

[13]  Brian Rogers,et al.  Improving Cost, Performance, and Security of Memory Encryption and Authentication , 2006, 33rd International Symposium on Computer Architecture (ISCA'06).

[14]  Kevin Elphinstone,et al.  Verified Protection Model of the seL4 Microkernel , 2008, VSTTE.

[15]  John Viega,et al.  The Security and Performance of the Galois/Counter Mode (GCM) of Operation , 2004, INDOCRYPT.

[16]  J. Meseguer,et al.  Security Policies and Security Models , 1982, 1982 IEEE Symposium on Security and Privacy.

[17]  Roy Want,et al.  Photographic Authentication through Untrusted Terminals , 2003, IEEE Pervasive Comput..

[18]  Beng-Hong Lim,et al.  Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor , 2001, USENIX Annual Technical Conference, General Track.

[19]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[20]  Gil Neiger,et al.  IntelŴVirtualization Technology: Hardware Support for Efficient Processor Virtualization , 2006 .

[21]  Ramón Cáceres,et al.  Reincarnating PCs with portable SoulPads , 2005, MobiSys '05.

[22]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[23]  Stefan Berger,et al.  Towards Trustworthy Kiosk Computing , 2007, Eighth IEEE Workshop on Mobile Computing Systems and Applications.

[24]  Ahmad-Reza Sadeghi,et al.  Property-based attestation for computing platforms: caring about properties, not mechanisms , 2004, NSPW '04.

[26]  Richard Sharp,et al.  Secure Mobile Computing Via Public Terminals , 2006, Pervasive.

[27]  Trent Jaeger,et al.  PRIMA: policy-reduced integrity measurement architecture , 2006, SACMAT '06.

[28]  Mark Lutz,et al.  Programming Python , 1996 .

[29]  Sun Fire V20z Sun Microsystems , 1996 .

[30]  Michael K. Reiter,et al.  Seeing-is-believing: using camera phones for human-verifiable authentication , 2005, 2005 IEEE Symposium on Security and Privacy (S&P'05).

[31]  No License,et al.  Intel ® 64 and IA-32 Architectures Software Developer ’ s Manual Volume 3 A : System Programming Guide , Part 1 , 2006 .

[32]  Adi Shamir,et al.  Cache Attacks and Countermeasures: The Case of AES , 2006, CT-RSA.

[33]  H.-H.S. Lee,et al.  Architectural support for high speed protection of memory integrity and confidentiality in multiprocessor systems , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[34]  James P Anderson,et al.  Computer Security Technology Planning Study , 1972 .

[35]  John D. Musa,et al.  Software Reliability Engineering: More Reliable Software Faster and Cheaper , 2004 .

[36]  Ruby B. Lee,et al.  New cache designs for thwarting software cache-based side channel attacks , 2007, ISCA '07.

[37]  Mary Ellen Zurko,et al.  A Retrospective on the VAX VMM Security Kernel , 1991, IEEE Trans. Software Eng..

[38]  Sean W. Smith,et al.  Building the IBM 4758 Secure Coprocessor , 2001, Computer.

[39]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[40]  Sergey Bratus,et al.  TOCTOU, Traps, and Trusted Computing , 2008, TRUST.

[41]  Pankaj Rohatgi,et al.  Towards Sound Approaches to Counteract Power-Analysis Attacks , 1999, CRYPTO.

[42]  Charanjit S. Jutla,et al.  Parallelizable Authentication Trees , 2005, IACR Cryptol. ePrint Arch..

[43]  Men Long,et al.  A hypervisor-based system for protecting software runtime memory and persistent storage , 2008, SpringSim '08.

[44]  Butler W. Lampson,et al.  A Trusted Open Platform , 2003, Computer.

[45]  Yuval Ishai,et al.  Private Circuits: Securing Hardware against Probing Attacks , 2003, CRYPTO.

[46]  Diana K. Smetters,et al.  Securing a remote terminal application with a mobile trusted device , 2004, 20th Annual Computer Security Applications Conference.

[47]  G. Edward Suh,et al.  Aegis: A Single-Chip Secure Processor , 2007, IEEE Design & Test of Computers.

[48]  T. Alves,et al.  TrustZone : Integrated Hardware and Software Security , 2004 .

[49]  Dan Boneh,et al.  Architectural support for copy and tamper resistant software , 2000, SIGP.

[50]  David Larson,et al.  Advanced virtualization capabilities of POWER5 systems , 2005, IBM J. Res. Dev..

[51]  Ruby B. Lee,et al.  The Reduced Address Space (RAS) for Application Memory Authentication , 2008, ISC.

[52]  Kunle Olukotun,et al.  Niagara: a 32-way multithreaded Sparc processor , 2005, IEEE Micro.

[53]  Ruby B. Lee,et al.  A novel cache architecture with enhanced performance and security , 2008, 2008 41st IEEE/ACM International Symposium on Microarchitecture.

[54]  Patrick Schaumont,et al.  Design methods for Security and Trust , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[55]  Paul A. Karger,et al.  Thirty years later: lessons from the Multics security evaluation , 2002, 18th Annual Computer Security Applications Conference, 2002. Proceedings..

[56]  Moni Naor,et al.  Visual Cryptography , 1994, Encyclopedia of Multimedia.

[57]  Andrew Warfield,et al.  Live migration of virtual machines , 2005, NSDI.

[58]  Ruby B. Lee,et al.  Hardware-rooted trust for secure key management and transient trust , 2007, CCS '07.

[59]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[60]  Clemens Fruhwirth,et al.  New Methods in Hard Disk Encryption , 2005 .

[61]  Glenn Durfee,et al.  Practical Uses of Virtual Machines for Protection of Sensitive User Data , 2007, ISPEC.

[62]  Alex Biryukov,et al.  Cryptanalysis of the Alleged SecurID Hash Function , 2003, Selected Areas in Cryptography.

[63]  Michael K. Reiter,et al.  Bump in the Ether: A Framework for Securing Sensitive User Input , 2006, USENIX Annual Technical Conference, General Track.

[64]  Xiangyu Zhang,et al.  SENSS: security enhancement to symmetric shared memory multiprocessors , 2005, 11th International Symposium on High-Performance Computer Architecture.

[65]  Kevin Borders,et al.  Securing Network Input via a Trusted Input Proxy , 2007, HotSec.

[66]  Ruby B. Lee,et al.  Architecture for Protecting Critical Secrets in Microprocessors , 2005, ISCA 2005.

[67]  Stephen Smalley,et al.  Integrating Flexible Support for Security Policies into the Linux Operating System , 2001, USENIX Annual Technical Conference, FREENIX Track.

[68]  James H. Burrows,et al.  Secure Hash Standard , 1995 .

[69]  Manhee Lee,et al.  I2SEMS: Interconnects-Independent Security Enhanced Shared Memory Multiprocessor Systems , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[70]  Sean W. Smith,et al.  Trusting Trusted Hardware: Towards a Formal Model for Programmable Secure Coprocessors , 1998, USENIX Workshop on Electronic Commerce.

[71]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[72]  James E. Smith,et al.  The architecture of virtual machines , 2005, Computer.

[73]  Stuart E. Schechter,et al.  Milk or Wine: Does Software Security Improve with Age? , 2006, USENIX Security Symposium.

[74]  Lionel Torres,et al.  Forward-Secure Content Distribution to Reconfigurable Hardware , 2008, 2008 International Conference on Reconfigurable Computing and FPGAs.

[75]  G. Edward Suh,et al.  AEGIS: architecture for tamper-evident and tamper-resistant processing , 2003, ICS.

[76]  Oded Goldreich,et al.  Towards a theory of software protection and simulation by oblivious RAMs , 1987, STOC.

[77]  Lionel Torres,et al.  SARFUM: Security Architecture for Remote FPGA Update and Monitoring , 2010, TRETS.

[78]  Ingrid Verbauwhede,et al.  Design method for constant power consumption of differential logic circuits , 2005, Design, Automation and Test in Europe.

[79]  N. Carr The end of corporate computing , 2005 .

[80]  Lionel Torres,et al.  TEC-Tree: A Low-Cost, Parallelizable Tree for Efficient Defense Against Memory Replay Attacks , 2007, CHES.

[81]  Andrew S. Tanenbaum,et al.  Modern Operating Systems , 1992 .

[82]  Ronald Toegl Tagging the Turtle: Local Attestation for Kiosk Computing , 2009, ISA.

[83]  Ahmad-Reza Sadeghi,et al.  Proceedings of the 1st international conference on Trusted Computing and Trust in Information Technologies: Trusted Computing - Challenges and Applications , 2008 .

[84]  Chris I. Dalton,et al.  Towards Trustworthy Virtualisation Environments : Xen Library OS Security Service Infrastructure , 2007 .

[85]  Stuart E. Madnick,et al.  Application and analysis of the virtual machine approach to information system security and isolation , 1973, Workshop on Virtual Computer Systems.

[86]  Ruby B. Lee,et al.  Securing the Dissemination of Emergency Response Data with an Integrated Hardware-Software Architecture , 2009, TRUST.

[87]  Walter Oney,et al.  Programming the Microsoft Windows Driver Model , 1999 .

[88]  Brian Rogers,et al.  Using Address Independent Seed Encryption and Bonsai Merkle Trees to Make Secure Processors OS- and Performance-Friendly , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[89]  Chanathip Namprempre,et al.  Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm , 2000, Journal of Cryptology.

[90]  Srivaths Ravi,et al.  Security as a new dimension in embedded system design , 2004, Proceedings. 41st Design Automation Conference, 2004..

[91]  Steve H. Weingart Physical Security Devices for Computer Subsystems: A Survey of Attacks and Defences , 2000, CHES.

[92]  Xiaoxin Chen,et al.  Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems , 2008, ASPLOS.

[93]  Markus G. Kuhn,et al.  Cipher Instruction Search Attack on the Bus-Encryption Security Microcontroller DS5002FP , 1998, IEEE Trans. Computers.

[94]  L. Miles,et al.  2000 , 2000, RDH.

[95]  G. Edward Suh,et al.  Incremental Multiset Hash Functions and Their Application to Memory Integrity Checking , 2003, ASIACRYPT.

[96]  Christopher Allen,et al.  The TLS Protocol Version 1.0 , 1999, RFC.

[97]  Manuel Blum,et al.  Checking the correctness of memories , 2005, Algorithmica.

[98]  John A. Allen,et al.  The anatomy of lisp , 1980 .

[99]  Andrew Bunnie Huang,et al.  Hacking the Xbox: An Introduction to Reverse Engineering , 2003 .

[100]  Lionel Torres,et al.  Hardware Mechanisms for Memory Authentication: A Survey of Existing Techniques and Engines , 2009, Trans. Comput. Sci..

[101]  Morrie Gasser,et al.  Security Kernel Design and Implementation: An Introduction , 1983, Computer.

[102]  Dawn Xiaodong Song,et al.  A Cryptanalysis of the High-Bandwidth Digital Content Protection System , 2001, Digital Rights Management Workshop.

[103]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[104]  Ole Agesen,et al.  A comparison of software and hardware techniques for x86 virtualization , 2006, ASPLOS XII.

[105]  Scott A. Rotondo Trusted Computing Group , 2011, Encyclopedia of Cryptography and Security.

[106]  Bill McCarty,et al.  Selinux: NSA's Open Source Security Enhanced Linux , 2004 .

[107]  Markus G. Kuhn,et al.  Tamper resistance: a cautionary note , 1996 .

[108]  Brian Rogers,et al.  Single-level integrity and confidentiality protection for distributed shared memory multiprocessors , 2008, 2008 IEEE 14th International Symposium on High Performance Computer Architecture.

[109]  Florian Kammller Interactive Theorem Proving in Software Engineering , 2008 .

[110]  G. Edward Suh,et al.  Efficient Memory Integrity Verification and Encryption for Secure Processors , 2003, MICRO.

[111]  Catherine H. Gebotys A split-mask countermeasure for low-energy secure embedded systems , 2006, TECS.

[112]  Jochen Liedtke,et al.  Address space sparsity and fine granularity , 1994, EW 6.

[113]  Bernhard Kauer OSLO: Improving the Security of Trusted Computing , 2007, USENIX Security Symposium.

[114]  Air Force Air Force Materiel Command Hq FIPS-PUB-180-1 , 1995 .

[115]  Tao Zhang,et al.  HIDE: an infrastructure for efficiently protecting information leakage on the address bus , 2004, ASPLOS XI.

[116]  Alessandro Acquisti,et al.  Predicting Social Security numbers from public data , 2009, Proceedings of the National Academy of Sciences.

[117]  Abhi Shelat,et al.  Remembrance of Data Passed: A Study of Disk Sanitization Practices , 2003, IEEE Secur. Priv..

[118]  Geoffrey Strongin Trusted computing using AMD "Pacifica" and "Presidio" secure virtual machine technology , 2005, Inf. Secur. Tech. Rep..

[119]  D. McGrew,et al.  The Galois/Counter Mode of Operation (GCM) , 2005 .

[120]  Michael K. Reiter,et al.  How low can you go?: recommendations for hardware-supported minimal TCB code execution , 2008, ASPLOS.

[121]  Lionel Torres,et al.  A parallelized way to provide data encryption and integrity checking on a processor-memory bus , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[122]  Stefan Berger,et al.  Building a MAC-based security architecture for the Xen open-source hypervisor , 2005, 21st Annual Computer Security Applications Conference (ACSAC'05).

[123]  Trent Jaeger,et al.  Design and Implementation of a TCG-based Integrity Measurement Architecture , 2004, USENIX Security Symposium.

[124]  Ruby B. Lee,et al.  Scalable architectural support for trusted software , 2010, HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture.

[125]  Ronan Keryell,et al.  CryptoPage: An Efficient Secure Architecture with Memory Encryption, Integrity and Information Leakage Protection , 2006, 2006 22nd Annual Computer Security Applications Conference (ACSAC'06).

[126]  Jon Watson,et al.  VirtualBox: bits and bytes masquerading as machines , 2008 .

[127]  Ruby B. Lee,et al.  Hardware-Assisted Application-Level Access Control , 2009, ISC.

[128]  Gernot Heiser,et al.  Towards a Practical, Verified Kernel , 2007, HotOS.

[129]  Stefan Berger,et al.  vTPM: Virtualizing the Trusted Platform Module , 2006, USENIX Security Symposium.

[130]  Crispin Cowan,et al.  Linux security modules: general security support for the linux kernel , 2002, Foundations of Intrusion Tolerant Systems, 2003 [Organically Assured and Survivable Information Systems].

[131]  Bill Venners,et al.  Inside the Java Virtual Machine , 1997 .

[132]  Ruby B. Lee,et al.  National Cyber Leap Year Summit 2009 Co-Chairs ’ Report , 2009 .

[133]  Sean W. Smith,et al.  Trusted paths for browsers , 2002, TSEC.

[134]  Tal Garfinkel,et al.  Compatibility Is Not Transparency: VMM Detection Myths and Realities , 2007, HotOS.

[135]  Ralph C. Merkle,et al.  Protocols for Public Key Cryptosystems , 1980, 1980 IEEE Symposium on Security and Privacy.

[136]  Greg Grohoski Niagara-2: A highly threaded server-on-a-chip , 2006, 2006 IEEE Hot Chips 18 Symposium (HCS).

[137]  Per Brinch Hansen,et al.  Design principles , 2002 .