Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Brooks Davis is active.

Publication


Featured researches published by Brooks Davis.


international symposium on computer architecture | 2014

The CHERI capability model: revisiting RISC in an age of risk

Jonathan Woodruff; Robert N. M. Watson; David Chisnall; Simon W. Moore; Jonathan Anderson; Brooks Davis; Ben Laurie; Peter G. Neumann; Robert Norton; Michael Roe

Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the RISC era. We present CHERI, a hybrid capability model that extends the 64-bit MIPS ISA with byte-granularity memory protection. We demonstrate that CHERI enables language memory model enforcement and fault isolation in hardware rather than software, and that the CHERI mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, CHERI complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and OS memory management. Furthermore. CHERI adheres to a strict RISC philosophy: it maintains a load-store architecture and requires only single-cycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature FPGA implementation that runs the FreeBSD operating system with a full range of software and an open-source application suite compiled with an extended LLVM to use CHERI memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that CHERI is performance-competitive even while providing assurance and greater flexibility with simpler hardware.


ieee symposium on security and privacy | 2015

CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization

Robert N. M. Watson; Jonathan Woodruff; Peter G. Neumann; Simon W. Moore; Jonathan Anderson; David Chisnall; Nirav Dave; Brooks Davis; Khilan Gudka; Ben Laurie; Steven J. Murdoch; Robert Norton; Michael Roe; Stacey Son; Munraj Vadera

CHERI extends a conventional RISC Instruction-Set Architecture, compiler, and operating system to support fine-grained, capability-based memory protection to mitigate memory-related vulnerabilities in C-language TCBs. We describe how CHERI capabilities can also underpin a hardware-software object-capability model for application compartmentalization that can mitigate broader classes of attack. Prototyped as an extension to the open-source 64-bit BERI RISC FPGA soft-core processor, Free BSD operating system, and LLVM compiler, we demonstrate multiple orders-of-magnitude improvement in scalability, simplified programmability, and resulting tangible security benefits as compared to compartmentalization based on pure Memory-Management Unit (MMU) designs. We evaluate incrementally deployable CHERI-based compartmentalization using several real-world UNIX libraries and applications.


architectural support for programming languages and operating systems | 2015

Beyond the PDP-11: Architectural Support for a Memory-Safe C Abstract Machine

David Chisnall; Colin Rothwell; Robert N. M. Watson; Jonathan Woodruff; Munraj Vadera; Simon W. Moore; Michael Roe; Brooks Davis; Peter G. Neumann

We propose a new memory-safe interpretation of the C abstract machine that provides stronger protection to benefit security and debugging. Despite ambiguities in the specification intended to provide implementation flexibility, contemporary implementations of C have converged on a memory model similar to the PDP-11, the original target for C. This model lacks support for memory safety despite well-documented impacts on security and reliability. Attempts to change this model are often hampered by assumptions embedded in a large body of existing C code, dating back to the memory model exposed by the original C compiler for the PDP-11. Our experience with attempting to implement a memory-safe variant of C on the CHERI experimental microprocessor led us to identify a number of problematic idioms. We describe these as well as their interaction with existing memory safety schemes and the assumptions that they make beyond the requirements of the C specification. Finally, we refine the CHERI ISA and abstract model for C, by combining elements of the CHERI capability model and fat pointers, and present a softcore CPU that implements a C abstract machine that can run legacy C code with strong memory protection guarantees.


computer and communications security | 2015

Clean Application Compartmentalization with SOAAP

Khilan Gudka; Robert N. M. Watson; Jonathan Anderson; David Chisnall; Brooks Davis; Ben Laurie; Ilias Marinos; Peter G. Neumann; Alex Richardson

Application compartmentalization, a vulnerability mitigation technique employed in programs such as OpenSSH and the Chromium web browser, decomposes software into isolated components to limit privileges leaked or otherwise available to attackers. However, compartmentalizing applications -- and maintaining that compartmentalization -- is hindered by ad hoc methodologies and significantly increased programming effort. In practice, programmers stumble through (rather than overtly reason about) compartmentalization spaces of possible decompositions, unknowingly trading off correctness, security, complexity, and performance. We present a new conceptual framework embodied in an LLVM-based tool: the Security-Oriented Analysis of Application Programs (SOAAP) that allows programmers to reason about compartmentalization using source-code annotations (compartmentalization hypotheses). We demonstrate considerable benefit when creating new compartmentalizations for complex applications, and analyze existing compartmentalized applications to discover design faults and maintenance issues arising from application evolution.


architectural support for programming languages and operating systems | 2017

CHERI JNI: Sinking the Java Security Model into the C

David Chisnall; Brooks Davis; Khilan Gudka; David Brazdil; Alexandre Joannou; Jonathan Woodruff; A. Theodore Markettos; J. Edward Maste; Robert Norton; Stacey Son; Michael Roe; Simon W. Moore; Peter G. Neumann; Ben Laurie; Robert N. M. Watson

Java provides security and robustness by building a high-level security model atop the foundation of memory protection. Unfortunately, any native code linked into a Java program -- including the million lines used to implement the standard library -- is able to bypass both the memory protection and the higher-level policies. We present a hardware-assisted implementation of the Java native code interface, which extends the guarantees required for Javas security model to native code. Our design supports safe direct access to buffers owned by the JVM, including hardware-enforced read-only access where appropriate. We also present Java language syntax to declaratively describe isolated compartments for native code. We show that it is possible to preserve the memory safety and isolation requirements of the Java security model in C code, allowing native code to run in the same process as Java code with the same impact on security as running equivalent Java code. Our approach has a negligible impact on performance, compared with the existing unsafe native code interface. We demonstrate a prototype implementation running on the CHERI microprocessor synthesized in FPGA.


IEEE Micro | 2016

Fast Protection-Domain Crossing in the CHERI Capability-System Architecture

Robert N. M. Watson; Robert Norton; Jonathan Woodruff; Simon W. Moore; Peter G. Neumann; Jonathan Anderson; David Chisnall; Brooks Davis; Ben Laurie; Michael Roe; Nirav Dave; Khilan Gudka; Alexandre Joannou; A. Theodore Markettos; Ed Maste; Steven J. Murdoch; Colin Rothwell; Stacey Son; Munraj Vadera

Capability Hardware Enhanced RISC Instructions (CHERI) supplement the conventional memory management unit (MMU) with instruction-set architecture (ISA) extensions that implement a capability system model in the address space. CHERI can also underpin a hardware-software object-capability model for scalable application compartmentalization that can mitigate broader classes of attack. This article describes ISA additions to CHERI that support fast protection-domain switching, not only in terms of low cycle count, but also efficient memory sharing with mutual distrust. The authors propose ISA support for sealed capabilities, hardware-assisted checking during protection-domain switching, a lightweight capability flow-control model, and fast register clearing, while retaining the flexibility of a software-defined protection-domain transition model. They validate this approach through a full-system experimental design, including ISA extensions, a field-programmable gate array prototype (implemented in Bluespec SystemVerilog), and a software stack including an OS (based on FreeBSD), compiler (based on LLVM), software compartmentalization model, and open-source applications.


international conference on computer design | 2017

Efficient Tagged Memory

Alexandre Joannou; Jonathan Woodruff; Robert Kovacsics; Simon W. Moore; Alex Bradbury; Hongyan Xia; Robert N. M. Watson; David Chisnall; Michael Roe; Brooks Davis; Edward Napierala; John Baldwin; Khilan Gudka; Peter G. Neumann; Alfredo Mazzinghi; Alex Richardson; Stacey Son; A. Theodore Markettos

We characterize the cache behavior of an in-memory tag table and demonstrate that an optimized implementation can typically achieve a near-zero memory traffic overhead. Both industry and academia have repeatedly demonstrated tagged memory as a key mechanism to enable enforcement of powerful security invariants, including capabilities, pointer integrity, watchpoints, and information-flow tracking. A single-bit tag shadowspace is the most commonly proposed requirement, as one bit is the minimum metadata needed to distinguish between an untyped data word and any number of new hardware-enforced types. We survey various tag shadowspace approaches and identify their common requirements and positive features of their implementations. To avoid non-standard memory widths, we identify the most practical implementation for tag storage to be an in-memory table managed next to the DRAM controller. We characterize the caching performance of such a tag table and demonstrate a DRAM traffic overhead below 5% for the vast majority of applications. We identify spatial locality on a page scale as the primary factor that enables surprisingly high table cache-ability. We then demonstrate tag-table compression for a set of common applications. A hierarchical structure with elegantly simple optimizations reduces DRAM traffic overhead to below 1% for most applications. These insights and optimizations pave the way for commercial applications making use of single-bit tags stored in commodity memory.


Archive | 2014

Capability Hardware Enhanced RISC Instructions: CHERI Instruction-Set Architecture

Robert N. M. Watson; Peter G. Neumann; Jonathan Woodruff; Jonathan Anderson; David Chisnall; Brooks Davis; Ben Laurie; Simon W. Moore; Steven J. Murdoch; Michael Roe


University of Cambridge Computer Laboratory | 2014

Bluespec Extensible RISC Implementation: BERI Hardware reference

Robert N. M. Watson; David Chisnall; Brooks Davis; Wojciech Koszek; Simon W. Moore; Steven J. Murdoch; Peter G. Neumann; Jonathan Woodruff


Archive | 2015

Clean application compartmentalization with SOAAP (extended version)

Khilan Gudka; Robert N. M. Watson; Jonathan Anderson; David Chisnall; Brooks Davis; Ben Laurie; Ilias Marinos; Peter G. Neumann; Alex Richardson

Collaboration


Dive into the Brooks Davis's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael Roe

University of Cambridge

View shared research outputs
Top Co-Authors

Avatar

Khilan Gudka

University of Cambridge

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge