Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture (Version 6)

Total Page:16

File Type:pdf, Size:1020Kb

Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture (Version 6) UCAM-CL-TR-907 Technical Report ISSN 1476-2986 Number 907 Computer Laboratory Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture (Version 6) Robert N. M. Watson, Peter G. Neumann, Jonathan Woodruff, Michael Roe, Jonathan Anderson, John Baldwin, David Chisnall, Brooks Davis, Alexandre Joannou, Ben Laurie, Simon W. Moore, Steven J. Murdoch, Robert Norton, Stacey Son, Hongyan Xia April 2017 15 JJ Thomson Avenue Cambridge CB3 0FD United Kingdom phone +44 1223 763500 http://www.cl.cam.ac.uk/ c 2017 Robert N. M. Watson, Peter G. Neumann, Jonathan Woodruff, Michael Roe, Jonathan Anderson, John Baldwin, David Chisnall, Brooks Davis, Alexandre Joannou, Ben Laurie, Simon W. Moore, Steven J. Murdoch, Robert Norton, Stacey Son, Hongyan Xia, SRI International Approved for public release; distribution is unlimited. Sponsored by the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contracts FA8750-10-C-0237 (“CTSRD”) and FA8750-11-C-0249 (“MRC2”) as part of the DARPA CRASH and DARPA MRC research programs. The views, opinions, and/or findings contained in this report are those of the authors and should not be interpreted as representing the official views or policies, either expressed or implied, of the Department of Defense or the U.S. Government. Additional support was received from St John’s College Cambridge, the Google SOAAP Focused Research Award, the RCUK’s Horizon Digital Economy Research Hub Grant (EP/G065802/1), the EPSRC REMS Programme Grant (EP/K008528/1), the EPSRC Impact Acceleration Account (EP/K503757/1), the Isaac Newton Trust, the UK Higher Education Innovation Fund (HEIF), Thales E-Security, ARM Ltd, and HP Enterprise. Technical reports published by the University of Cambridge Computer Laboratory are freely available via the Internet: http://www.cl.cam.ac.uk/techreports/ ISSN 1476-2986 Abstract This technical report describes CHERI ISAv6, the sixth version of the Capability Hardware Enhanced RISC Instructions (CHERI) Instruction-Set Architecture (ISA)1 being developed by SRI International and the University of Cambridge. This design captures seven years of research, development, experimentation, refinement, formal analysis, and validation through hardware and software implementation. CHERI ISAv6 is a substantial enhancement to prior ISA versions: it introduces support for kernel-mode compartmentalization, jump-based rather than exception-based domain transition, architecture-abstracted and efficient tag restoration, and more efficient generated code. A new chapter addresses potential applications of the CHERI model to the RISC-V and x86-64 ISAs, previously described relative only to the 64-bit MIPS ISA. CHERI ISAv6 better explains our design rationale and research methodology. CHERI is a hybrid capability-system architecture that adds new capability-system primi- tives to a commodity 64-bit RISC ISA enabling software to efficiently implement fine-grained memory protection and scalable software compartmentalization. Design goals have included incremental adoptability within current ISAs and software stacks, low performance overhead for memory protection, significant performance improvements for software compartmentaliza- tion, formal grounding, and programmer-friendly underpinnings. Throughout, we have focused on providing strong and efficient architectural foundations for the principles of least privilege and intentional use in the execution of software at multiple levels of abstraction, preventing and mitigating vulnerabilities. The CHERI system architecture purposefully addresses known performance and robust- ness gaps in commodity ISAs that hinder the adoption of more secure programming models centered around the principle of least privilege. To this end, CHERI blends traditional paged virtual memory with an in-address-space capability model that includes capability registers, capability instructions, and tagged memory. CHERI builds on C-language fat-pointer litera- ture: its capabilities describe fine-grained regions of memory and can be substituted for data or code pointers in generated code, protecting data and also improving control-flow robustness. Strong capability integrity and monotonicity properties allow the CHERI model to express a va- riety of protection properties, from enforcing valid C-language pointer provenance and bounds checking to implementing the isolation and controlled communication structures required for software compartmentalization. CHERI’s hybrid capability-system approach, inspired by the Capsicum security model, al- lows incremental adoption of capability-oriented design: software implementations that are more robust and resilient can be deployed where they are most needed, while leaving less criti- cal software largely unmodified, but nevertheless suitably constrained to be incapable of having adverse effects. Potential deployment scenarios include low-level software Trusted Computing Bases (TCBs) such as separation kernels, hypervisors, and operating-system kernels, as well as userspace TCBs such as language runtimes and web browsers. Likewise, we see early-use scenarios (such as data compression, protocol parsing, and image processing) that relate to particularly high-risk software libraries, which are concentrations of both complex and histori- cally vulnerability-prone code exposed to untrustworthy data sources, while leaving containing applications unchanged. 1We have attempted to avoid confusion among three rather different uses of the word ‘architecture’. The ISA specifies the interface between hardware and software, rather than describing either the (micro-)architecture of a particular hardware prototype, or laying out the total-system hardware-software architecture. 3 Acknowledgments The authors of this report thank other members of the CTSRD and MRC2 teams, our past and current research collaborators at SRI and Cambridge, as well as colleagues at other institutions who have provided invaluable feedback and continuing support throughout this work: Ross J. Anderson Graeme Barnes Hadrien Barral Stuart Biles Matthias Boettcher David Brazdil Ruslan Bukin Brian Campbell Gregory Chadwick James Clarke Serban Constantinescu Chris Dalton Nirav Dave Lawrence Esswood Anthony Fox Paul J. Fox Paul Gotch Richard Grisenthwaite Khilan Gudka Jong Hun Han Andy Hopper Alex Horsman Asif Khan Myron King Chris Kitching Wojciech Koszek Patrick Lincoln Anil Madhavapeddy Ilias Marinos A. Theodore Markettos Tim Marsland Alfredo Mazzinghi Ed Maste Kayvan Memarian Dejan Milojicic Andrew W. Moore Will Morland Alan Mujumdar Prashanth Mundkur Edward Napierala Kyndylan Nienhuis Philip Paeps Lucian Paul-Trifu Alex Richardson Colin Rothwell John Rushby Hassen Saidi Hans Petter Selasky Peter Sewell Muhammad Shahbaz Lee Smith Ian Stark Andrew Turner Richard Uhler Munraj Vadera Jacques Vidrine Philip Withnall Bjoern A. Zeeb The CTSRD team also thanks past and current members of its external oversight group for significant support and contributions: Lee Badger Simon Cooper Rance DeLong Jeremy Epstein Virgil Gligor Li Gong Mike Gordon Steven Hand Andrew Herbert Warren A. Hunt Jr. Doug Maughan Greg Morrisett Brian Randell Kenneth F. Shotting Joe Stoy Tom Van Vleck Samuel M. Weber We would also like to acknowledge the late David Wheeler and Paul Karger, whose conver- sations with the authors about the CAP computer and capability systems contributed to our thinking on CHERI. Finally, we are grateful to Howie Shrobe, MIT professor and past DARPA CRASH and MRC program manager, who has offered both technical insight and support throughout this work. We are also grateful to Robert Laddaga and Stu Wagner, who succeeded Howie in overseeing the CRASH program, to John Launchbury, DARPA I2O office director, Dale Waters, DARPA AEO office director, and to Daniel Adams and Laurisa Goergen, SETAs supporting the CRASH and MRC programs. 4 Contents 1 Introduction 13 1.1 CHERI Design Goals . 14 1.2 The CHERI Protection Model . 16 1.3 The CHERI-MIPS ISA . 17 1.4 CHERI ISA Version History . 20 1.5 Changes in CHERI ISAv6 - 1.20 . 22 1.6 Document Structure . 25 1.7 Publications . 26 2 The CHERI Protection Model 29 2.1 Underlying Principles . 29 2.2 CHERI Capabilities: Strong Protection for Pointers . 30 2.3 Architectural Capabilities . 31 2.3.1 Tags for Pointer Integrity and Provenance . 33 2.3.2 Bounds on Pointers . 33 2.3.3 Permissions on Pointers . 34 2.3.4 Capability Monotonicity via Guarded Manipulation . 34 2.3.5 Sealed Capabilities . 35 2.3.6 Capability Object Types . 35 2.3.7 Sealed Capability Invocation . 36 2.3.8 Capability Flow Control . 36 2.3.9 Capability Compression . 38 2.3.10 Hybridization with Integer Pointers . 38 2.3.11 Hybridization with Virtual Addressing . 38 2.3.12 Hybridization with Architectural Privilege . 39 2.3.13 Failure Modes and Exceptions . 40 2.3.14 Capability Revocation . 40 2.4 Software Protection and Security Using CHERI . 42 2.4.1 C/C++ Language Support . 42 2.4.2 Protecting Non-Pointer Types . 44 2.4.3 Isolation, Controlled Communication, and Compartmentalization . 45 2.4.4 Source-Code and Binary Compatibility . 47 2.4.5 Code Generation and ABIs . 47 2.4.6 Operating-System Support . 48 5 3 Mapping the CHERI Protection Model into Architecture 51 3.1 Design Goals . 51 3.2 A Hybrid Capability-System Architecture . 53 3.3 The CHERI Software Stack . 54 3.4 Architectural Goals . 56 3.5 Capability Model . 57 3.5.1 Capabilities are for Compilers . 57 3.5.2 Capabilities . 58 3.5.3 Capability Registers . 58 3.5.4 Memory Model . 60 3.5.5 Local Capabilities and Revocation . 61 3.5.6 Architectural Privilege . 61 3.5.7 Traps, Interrupts, and Exception Handling . 63 3.5.8 Tagged Memory . 63 3.5.9 Capability Instructions . 64 3.5.10 Object Capabilities . 64 3.5.11 Peripheral Devices . 65 3.6 Deep Versus Surface Design Choices . 66 4 The CHERI-MIPS Instruction-Set Architecture 69 4.1 Architectural Capabilities . 69 4.1.1 Tag Bit . 70 4.1.2 Sealed Bit . 70 4.1.3 Permission Bits . 71 4.1.4 User-Defined Permission Bits . 71 4.1.5 Object Type . 71 4.1.6 Offset . 71 4.1.7 Base . 71 4.1.8 Length . 72 4.2 Capability Permissions . 72 4.3 The Capability Register File . 73 4.3.1 Capability Register Conventions / Application Binary Interface (ABI) .
Recommended publications
  • CHERI Instruction-Set Architecture
    UCAM-CL-TR-876 Technical Report ISSN 1476-2986 Number 876 Computer Laboratory Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture Robert N. M. Watson, Peter G. Neumann, Jonathan Woodruff, Michael Roe, Jonathan Anderson, David Chisnall, Brooks Davis, Alexandre Joannou, Ben Laurie, Simon W. Moore, Steven J. Murdoch, Robert Norton, Stacey Son September 2015 15 JJ Thomson Avenue Cambridge CB3 0FD United Kingdom phone +44 1223 763500 http://www.cl.cam.ac.uk/ c 2015 Robert N. M. Watson, Peter G. Neumann, Jonathan Woodruff, Michael Roe, Jonathan Anderson, David Chisnall, Brooks Davis, Alexandre Joannou, Ben Laurie, Simon W. Moore, Steven J. Murdoch, Robert Norton, Stacey Son, SRI International Approved for public release; distribution is unlimited. Sponsored by the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contracts FA8750-10-C-0237 (“CTSRD”) and FA8750-11-C-0249 (“MRC2”) as part of the DARPA CRASH and DARPA MRC research programs. The views, opinions, and/or findings contained in this report are those of the authors and should not be interpreted as representing the official views or policies, either expressed or implied, of the Department of Defense or the U.S. Government. Additional support was received from St John’s College Cambridge, the SOAAP Google Focused Research Award, the RCUK’s Horizon Digital Economy Research Hub Grant (EP/G065802/1), the EPSRC REMS Programme Grant (EP/K008528/1), the Isaac Newton Trust, the UK Higher Education Innovation Fund (HEIF), and Thales E-Security. Technical reports published by the University of Cambridge Computer Laboratory are freely available via the Internet: http://www.cl.cam.ac.uk/techreports/ ISSN 1476-2986 Abstract This technical report describes CHERI ISAv4, the fourth version of the Capability Hardware Enhanced RISC Instructions (CHERI) Instruction-Set Architecture (ISA)1 being developed by SRI International and the University of Cambridge.
    [Show full text]
  • FIDO Technical Glossary
    Client to Authenticator Protocol (CTAP) Implementation Draft, February 27, 2018 This version: https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id- 20180227.html Previous Versions: https://fidoalliance.org/specs/fido-v2.0-ps-20170927/ Issue Tracking: GitHub Editors: Christiaan Brand (Google) Alexei Czeskis (Google) Jakob Ehrensvärd (Yubico) Michael B. Jones (Microsoft) Akshay Kumar (Microsoft) Rolf Lindemann (Nok Nok Labs) Adam Powers (FIDO Alliance) Johan Verrept (VASCO Data Security) Former Editors: Matthieu Antoine (Gemalto) Vijay Bharadwaj (Microsoft) Mirko J. Ploch (SurePassID) Contributors: Jeff Hodges (PayPal) Copyright © 2018 FIDO Alliance. All Rights Reserved. Abstract This specification describes an application layer protocol for communication between a roaming authenticator and another client/platform, as well as bindings of this application protocol to a variety of transport protocols using different physical media. The application layer protocol defines requirements for such transport protocols. Each transport binding defines the details of how such transport layer connections should be set up, in a manner that meets the requirements of the application layer protocol. Table of Contents 1 Introduction 1.1 Relationship to Other Specifications 2 Conformance 3 Protocol Structure 4 Protocol Overview 5 Authenticator API 5.1 authenticatorMakeCredential (0x01) 5.2 authenticatorGetAssertion (0x02) 5.3 authenticatorGetNextAssertion (0x08) 5.3.1 Client Logic 5.4 authenticatorGetInfo (0x04)
    [Show full text]
  • Research Purpose Operating Systems – a Wide Survey
    GESJ: Computer Science and Telecommunications 2010|No.3(26) ISSN 1512-1232 RESEARCH PURPOSE OPERATING SYSTEMS – A WIDE SURVEY Pinaki Chakraborty School of Computer and Systems Sciences, Jawaharlal Nehru University, New Delhi – 110067, India. E-mail: [email protected] Abstract Operating systems constitute a class of vital software. A plethora of operating systems, of different types and developed by different manufacturers over the years, are available now. This paper concentrates on research purpose operating systems because many of them have high technological significance and they have been vividly documented in the research literature. Thirty-four academic and research purpose operating systems have been briefly reviewed in this paper. It was observed that the microkernel based architecture is being used widely to design research purpose operating systems. It was also noticed that object oriented operating systems are emerging as a promising option. Hence, the paper concludes by suggesting a study of the scope of microkernel based object oriented operating systems. Keywords: Operating system, research purpose operating system, object oriented operating system, microkernel 1. Introduction An operating system is a software that manages all the resources of a computer, both hardware and software, and provides an environment in which a user can execute programs in a convenient and efficient manner [1]. However, the principles and concepts used in the operating systems were not standardized in a day. In fact, operating systems have been evolving through the years [2]. There were no operating systems in the early computers. In those systems, every program required full hardware specification to execute correctly and perform each trivial task, and its own drivers for peripheral devices like card readers and line printers.
    [Show full text]
  • Discretionary Access Control
    Part IV Access Control Confidentiality and integrity are often enforced using a form of authorization known as access control, which involves the following assumptions. • Predefined operations are the sole means by which principals can learn or update information. • A reference monitor is consulted whenever one of these predefined oper- ations is invoked; the operation is allowed to proceed only if the invoker holds the required privileges. Confidentiality then is achieved by restricting whether a given principal is au- thorized to execute operations that reveal information; integrity is achieved by restricting execution of operations that perform updates. An access control policy specifies which of the operations associated with any given object (including operations to change the policy) each given principal1 is authorized to have performed. Principals are entities to which execution can be attributed|users, processes, threads, or even procedure activations. Ob- jects are entities on which operations are defined—storage abstractions, such as memory or files (with read, write, and execute operations), and code ab- stractions, such as modules or services (with operations to initiate or suspend execution). Distinct privileges are typically associated with distinct operations, and sometimes there are distinct privileges for each different operation on each different object. So, for example, there might be a specific privilege readObj that a principal must hold to perform operation read on object Obj. The Principle of Least Privilege is best served by having fine-grained princi- pals, objects, and operations; the Principle of Failsafe Defaults favors defining an access control policy by enumerating privileges rather than prohibitions. That, however, is only a small part of the picture, and there is much ground to cover in our discussions of access control policy.
    [Show full text]
  • Os Verification - a Survey As a Source of Future Challenges
    International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.4, August 2015 OS VERIFICATION - A SURVEY AS A SOURCE OF FUTURE CHALLENGES Kushal Anjaria and Arun Mishra Department of Computer Science &Engineering, DIAT, Pune, India ABSTRACT Formal verification of an operating system kernel manifests absence of errors in the kernel and establishes trust in it. This paper evaluates various projects on operating system kernel verification and presents in- depth survey of them. The methodologies and contributions of operating system verification projects have been discussed in the present work. At the end, few unattended and interesting future challenges in operating system verification area have been discussed and possible directions towards the challenge solution have been described in brief. KEYWORDS Formal verification, operating system, kernel. 1. INTRODUCTION The security and reliability of computer system is dependent on the underlying operating system kernel; kernel is the core of operating system. The kernel provide mechanism for user level applications to access hardware, scheduling and inter-process communication. Therefore, if anything goes wrong in the kernel while programming or implementation, it will affect the operation of entire system. To ensure the correct working of a kernel, testing and/or verification techniques have been used. Testing reduces frequency of failures, while verification detects errors and eliminates failures. Consider the fragment of C code shown in figure-1 int div(int p, int q) { int r; if (p<q) r=p/q; else r=q/p; return r; } Figure1. Fragment of C code Here r being an integer, if testing has been performed with p=8, q=4 and p=16, q=32, full coverage of code can be achieved.
    [Show full text]
  • The Confused Deputy Problem(Or Why Capabilities Might Have Been Invented)
    The confused deputy problem(Or why capabilities might have been invented) st Berlin, 21 ,November 2014 The confused deputy | P.Jagannatha | Computer Security Seminar A very powerful program - a program that can delete all your files - a program that can scan your email for interesting tidbits. Many of us spend hours running this program. What is this program? A computer game --and every other program we use The only rights the game really needs to do its job are the ability to write in its window and to receive UI events directed at its window. Yet -- like every other program we execute -- it runs with a lot more rights than that. It runs with all of our authority. The confused deputy | P.Jagannatha | Computer Security Seminar Power is dangerous. While the game probably doesn’t do any of those things, if it became corrupted by a virus, it could The less power we give to a program, the less harm it can do when it runs. In general, giving every program we run access to all our files is dangerous, because if any of those programs get compromised, our files would be lost The solution is obvious: we should only grant a program the rights it needs to do its job, and no more. The same goes for every other application we run. The goal of object capabilities is to make that easier. The confused deputy | P.Jagannatha | Computer Security Seminar Content – Introduction – Analysis of the confused deputy problem – Examples – Ambient authority – Solution-capabilities – Advantages – D iscussion The confused deputy | P.Jagannatha | Computer Security Seminar Introduction - Deputy Client Deputy Resource Human -Confidence trick being Definitions: Application Programs that take actions on the behalf of other programs are deputies andInfrast needructur eappropriate permissions for their duties.
    [Show full text]
  • Capability Myths Demolished
    Capability Myths Demolished Mark S. Miller Ka-Ping Yee Jonathan Shapiro Combex, Inc. University of California, Berkeley Johns Hopkins University [email protected] [email protected] [email protected] ABSTRACT The second and third myths state false limitations on We address three common misconceptions about what capability systems can do, and have been capability-based systems: the Equivalence Myth (access propagated by a series of research publications over the control list systems and capability systems are formally past 20 years (including [2, 3, 7, 24]). They have been equivalent), the Confinement Myth (capability systems cited as reasons to avoid adopting capability models cannot enforce confinement), and the Irrevocability and have even motivated some researchers to augment Myth (capability-based access cannot be revoked). The capability systems with extra access checks [7, 13] in Equivalence Myth obscures the benefits of capabilities attempts to fix problems that do not exist. The myths as compared to access control lists, while the Confine- about what capability systems cannot do continue to ment Myth and the Irrevocability Myth lead people to spread, despite formal results [22] and practical see problems with capabilities that do not actually exist. systems [1, 9, 18, 21] demonstrating that they can do these supposedly impossible things. The prevalence of these myths is due to differing inter- pretations of the capability security model. To clear up We believe these severe misunderstandings are rooted the confusion, we examine three different models that in the fact that the term capability has come to be have been used to describe capabilities, and define a set portrayed in terms of several very different security of seven security properties that capture the distinctions models.
    [Show full text]
  • Acknowledgments Preface 1 Overview I MICRO ERNEL ABSTRACTIONS
    Coyotos Microkernel Specification http://coyotos.org/docs/ukernel/spec.html Coyotos Microkernel Specification Version 0.3+ March 20, 2006 Jonathan S. Shapiro, Ph.D., Eric Northup, M. Scott Doerrie, Swaroop Sridhar Systems Research Laboratory Dept. of Computer Science Johns Hopkins University Neal H. Walfield, Marcus Brinkmann GNU Hurd Project Copyright 2006, Jonathan S. Shapiro. Verbatim copies of this document may be duplicated or distributed in print or electronic form for non-commercial purposes. Legal Notice THIS SPECIFICATION IS PROVIDED ``AS IS'' WITHOUT ANY WARRANTIES, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Table of Contents Acknowledgments Preface The Original Plan Overrun by the Hurd Coyotos: Take II A Brief Word on Terminology 1 Overview 1.1 Microkernel Objects 1.2 Sender Capabilities 1.3 Activations 1.4 Messages 1.5 Naming and Invocation 1.6 Exception and Interrupt Handling 1.7 Protection Model I MICROKERNEL ABSTRACTIONS 2 Capabilities 2.1 Representation 2.1.1 Capabilities to Memory Objects 2.1.2 Message-Related Capabilities 2.1.3 Capabilities to Processes 2.1.4 Miscellaneous Capabilities 2.2 Validity 2.3 Extensibility 3 Processes 3.1 State of a Process 3.2 FCRBs 3.3 Execution Model 3.3.1 Event Arrival and Run-In 3.3.2 Preemption 3.3.3 Exception Handling 1 of 38 04/10/06 11:19 Coyotos Microkernel Specification http://coyotos.org/docs/ukernel/spec.html 3.4 Event Delivery 4 Address Spaces 4.1 Memory
    [Show full text]
  • Introduction to Programming
    Secure Architecture Principles • Isolation and Least Privilege • Access Control Concepts • Operating Systems • Browser Isolation and Least Privilege Original slides were created by Prof. John Mitchel and Suman Janna Some slides are from Prof. David Mazieres 1 Secure Architecture Principles Isolation and Least Privilege 3 Principles of Secure Design • Compartmentalization – Isolation – Principle of least privilege • Defense in depth – Use more than one security mechanism – Secure the weakest link – Fail securely • Keep it simple 4 Principle of Least Privilege • What’s a privilege? – Ability to access or modify a resource • Assume compartmentalization and isolation – Separate the system into isolated compartments – Limit interaction between compartments • Principle of Least Privilege – A system module should only have the minimal privileges needed for its intended purposes 5 Monolithic design Network Network User input System User device File system File system 6 Monolithic design Network Network User input System User device File system File system 7 Monolithic design Network Network User input System User display File system File system 8 Component design Network Network User input User display File system File system 9 Component design Network Network User input User device File system File system 10 Component design Network Network User input User device File system File system 11 Principle of Least Privilege • What’s a privilege? – Ability to access or modify a resource • Assume compartmentalization and isolation – Separate the system
    [Show full text]
  • Capability Based Systems
    Capability Based Systems Chester Rebeiro IIT Madras hps://homes.cs.washington.edu/~levy/capabook/Chapter1.pdf 1 Confused Deputy Problem • A computer program that is fooled into misusing authority leading to a privilege escalaon • Fortran Compiler Installed in a directory say SYSX • Writes billing to a file called SYSX/BILL • Writes stasHcs to a file called SYSX/STATS • The SYSX directory is privileged and cannot be wri8en into by other programs (only the compiler can write into it because it had a LISENCE file) • Usage of the Fortran compiler will look like this: SYSX/FORT file_to_be_compiled output_file MISUSE BY USER • SYSX/FORT file_to_be_compiled SYSX/BILL Bill file is overwrien hp://people.csail.mit.edu/alinush/6.858-fall-2014/papers/confused-deputy.pdf 2 Confused Deputy Problem • Who is to blame? • Compiler? • Should the compiler check if for the directory / output file name and prevent access to it? (No, the name SYSX was not invented at the Hme of wriHng the code; BILL is not the only sensiHve file in SYSX) FIXING THE PROBLEM – SWITCH HATS • The compiler wears two hats One hat when sensiHve informaon like the file BILL was wri8en into Other hat was based on user’s privileges to write user file (However this approach cannot be easily generalized – a program may require mulHple hats) hp://people.csail.mit.edu/alinush/6.858-fall-2014/papers/confused-deputy.pdf 3 DiscreHonary Access Control • By Butler Lampson, 1971 (Earliest Form) • Subjects : acHve elements requesHng informaon • Objects : passive elements storing informaon objects – Subjects can also be objects subjects rights Other acHons : ownership (property of objects by a subject), control (father-children relaonships between processes) Butler Lampson, “ProtecHon”, 1971 4 Unix Processes Every procedure called by a program executes within the address space defined by the process.
    [Show full text]
  • A Look at the EROS Operating System Jonathan S
    A Look at the EROS Operating System Jonathan S. Shapiro Johns Hopkins University Abstract EROS is a capability-based, secure operating system originally designed to address the needs of shared computing utilities involving mutually suspicious users. The deploy­ ment plan for the original design was to provide leased compute service to competing business entities, potentially running on a single machine. As a result, the system was structured to preserve security in the face of both hostile dynamic content and hostile users. While the EROS platform can support the efficient deployment of multilevel se­ cure environments, it is primarily focused on business security requirements. These re­ quirements often address integrity as well as security concerns. An EROS-based deploy­ ment can ensure that business-critical data is manipulated exclusively by authorized ap­ plication software, which in turn is guarded against user tampering. Simultaneously, EROS enables users to run untrusted utility software, hand private or proprietary data to that software, and be assured (within reason) that the data cannot be disclosed to the out­ side world. This paper gives a general overview of the EROS system and what it can do. The EROS research project has now ended. Further work based on the EROS system is being pursued under the CapROS project (www.capros.org). The EROS team has moved on to a successor system: Coyotos (www.coyotos.org). 1 Introduction in other publications. Others result from chains of reasoning that are omitted for reasons of space. A This paper accompanies a talk for the 2005 Libre few are opinions derived from years of in-depth Software Meeting in Dijon, France.
    [Show full text]
  • Secure Capability Systems
    141 CHAPTER 10 Secure Capability Systems A capability system [181] is an operating system that represents its access control policy from the subjects’ perspectives. Recall from Chapter 2 that Lampson’s access ma- trix [176] identified two views of an access control policy: (1) an object-centric view, called access control lists, where the policy is defined in terms of which subjects can access a particular object (the columns of the matrix) and (2) a subject-centric view, called capabilities, where the policy is defined in terms of which objects can be accessed by a particular subject (the rows in the matrix). Although the access control decisions made by capability and access control list systems are the same, the capability perspective provides some opportunities to build more secure systems, but this perspective also introduces some challenges that must be overcome to ensure enforcement of security goals. In this chapter, we identify these opportunities and challenges, and describe capability system designs that can leverage the opportunities while mitigating the challenges. 10.1 CAPABILITY SYSTEM FUNDAMENTALS A capability is a reference to an object and a set of operations that the capability enti- tles the holder, first formalized by Dennis and van Horn [72]. Such capability references are extended memory references in that they not only provide location or naming in- formation, but they may also provide access rights for that reference [333]. This form of addressing is known as capability-based addressing [89]. Thus, a capability is like a house key [128] in that it permits the holder the access associated with the key.
    [Show full text]