Network


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

Hotspot


Dive into the research topics where Bennet S. Yee is active.

Publication


Featured researches published by Bennet S. Yee.


Communications of The ACM | 2010

Native Client: a sandbox for portable, untrusted x86 native code

Bennet S. Yee; David C. Sehr; Gregory Dardyk; J. Bradley Chen; Robert Muth; Tavis Ormandy; Shiki Okasaka; Neha Narula; Nicholas Fullagar

This paper describes the design, implementation and evaluation of Native Client, a sandbox for untrusted x86 native code. Native Client aims to give browser-based applications the computational performance of native applications without compromising safety. Native Client uses software fault isolation and a secure runtime to direct system interaction and side effects through interfaces managed by Native Client. Native Client provides operating system portability for binary code while supporting performance-oriented features generally absent from web application programming environments, such as thread support, instruction set extensions such as SSE, and use of compiler intrinsics and hand-coded assembler. We combine these properties in an open architecture that encourages community review and 3rd-party tools.


ieee symposium on security and privacy | 2009

Native Client: A Sandbox for Portable, Untrusted x86 Native Code

Bennet S. Yee; David C. Sehr; Gregory Dardyk; J. Bradley Chen; Robert Muth; Tavis Ormandy; Shiki Okasaka; Neha Narula; Nicholas Fullagar

This paper describes the design, implementation and evaluation of Native Client, a sandbox for untrusted x86 native code. Native Client aims to give browser-based applications the computational performance of native applications without compromising safety. Native Client uses software fault isolation and a secure runtime to direct system interaction and side effects through interfaces managed by Native Client. Native Client provides operating system portability for binary code while supporting performance-oriented features generally absent from web application programming environments, such as thread support, instruction set extensions such as SSE, and use of compiler intrinsics and hand-coded assembler. We combine these properties in an open architecture that encourages community review and 3rd-party tools.


programming language design and implementation | 2011

Language-independent sandboxing of just-in-time compilation and self-modifying code

Jason Ansel; Petr Marchenko; Úlfar Erlingsson; Elijah Taylor; Derek L. Schuff; David C. Sehr; Cliff L. Biffle; Bennet S. Yee

When dealing with dynamic, untrusted content, such as on the Web, software behavior must be sandboxed, typically through use of a language like JavaScript. However, even for such specially-designed languages, it is difficult to ensure the safety of highly-optimized, dynamic language runtimes which, for efficiency, rely on advanced techniques such as Just-In-Time (JIT) compilation, large libraries of native-code support routines, and intricate mechanisms for multi-threading and garbage collection. Each new runtime provides a new potential attack surface and this security risk raises a barrier to the adoption of new languages for creating untrusted content. Removing this limitation, this paper introduces general mechanisms for safely and efficiently sandboxing software, such as dynamic language runtimes, that make use of advanced, low-level techniques like runtime code modification. Our language-independent sandboxing builds on Software-based Fault Isolation (SFI), a traditionally static technique. We provide a more flexible form of SFI by adding new constraints and mechanisms that allow safety to be guaranteed despite runtime code modifications. We have added our extensions to both the x86-32 and x86-64 variants of a production-quality, SFI-based sandboxing platform; on those two architectures SFI mechanisms face different challenges. We have also ported two representative language platforms to our extended sandbox: the Mono common language runtime and the V8 JavaScript engine. In detailed evaluations, we find that sandboxing slowdown varies between different benchmarks, languages, and hardware platforms. Overheads are generally moderate and they are close to zero for some important benchmark/platform combinations.


usenix security symposium | 2010

Adapting software fault isolation to contemporary CPU architectures

David C. Sehr; Robert Muth; Cliff L. Biffle; Victor Khimenko; Egor Pasko; Karl Schimpf; Bennet S. Yee


Archive | 2009

Method for safely executing an untrusted native code module on a computing device

J. Bradley Chen; Matthew T. Harren; Matthew Papakipos; David C. Sehr; Bennet S. Yee; Gregory Dardyk


Archive | 2009

Method for Validating an Untrusted Native Code Module

J. Bradley Chen; Matthew T. Harren; Matthew Papakipos; David C. Sehr; Bennet S. Yee


Archive | 2010

Dynamic code insertion and removal for static analysis based sandboxes

Bennet S. Yee; David C. Sehr; Cliff L. Biffle


Archive | 2011

User-level segmentation mechanism that facilitates safely executing untrusted native code

David C. Sehr; J. Bradley Chen; Bennet S. Yee


Archive | 2013

Safely executing an untrusted native code module on a computing device

J. Bradley Chen; Matthew T. Harren; Matthew Papakipos; David C. Sehr; Bennet S. Yee; Gregory Dardyk


Archive | 2012

Masking mechanism that facilitates safely executing untrusted native code

Bennet S. Yee; J. Bradley Chen; David C. Sehr

Collaboration


Dive into the Bennet S. Yee's collaboration.

Researchain Logo
Decentralizing Knowledge