Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Craig Disselkoen

dblp:199/4885 · DBLP profile ↗
← Back
9ranked-venue papers
2as first author
5since 2021 · last 2024
0000-0003-4358-2963ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 5 · 2 first-author · 2 since 2021Software engineering, systems software and programming languages · 4 · 3 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
9 papers
Hardware security and side channels · 49% Authentication and access control · 24% Systems and software security · 19%
Software engineering, system software, and programming languages
4 papers
Compilers and program optimization · 55% Program verification · 19% Programming languages and type systems · 16%

Topics — the 25 heaviest of 26, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security
memory safety
1.632023
MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code · Proc. ACM Program. Lang. 2023
Swivel: Hardening WebAssembly against Spectre · USENIX Security Symposium 2021
Retrofitting Fine Grain Isolation in the Firefox Renderer · USENIX Security Symposium 2020
Hardware security and side channels
side-channel attack
1.022021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Swivel: Hardening WebAssembly against Spectre · USENIX Security Symposium 2021
Hardware security and side channels › microarchitectural attacks › transient execution attack › speculative execution attack
spectre
0.922021
Swivel: Hardening WebAssembly against Spectre · USENIX Security Symposium 2021
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Authentication and access control
access control
0.812024
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024
Authentication and access control › access control models
attribute-based access control
0.812024
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024
Authentication and access control
authorization
0.812024
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024
Authentication and access control › access control
role-based access control
0.812024
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024
Compilers and program optimization
compiler correctness
0.712023
MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code · Proc. ACM Program. Lang. 2023
Hardware security and side channels › side-channel countermeasures
microarchitectural attack defense
0.612022
SoK: Practical Foundations for Software Spectre Defenses · SP 2022
Hardware security and side channels › microarchitectural attacks › transient execution attack › speculative execution attack
spectre defense
0.612022
SoK: Practical Foundations for Software Spectre Defenses · SP 2022
Hardware security and side channels
cache side channel
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Cryptographic primitives and cryptanalysis › cryptographic implementation
constant-time implementation
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Cryptographic primitives and cryptanalysis › cryptographic implementation
cryptographic software
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels › microarchitectural attacks › transient execution attack
speculative execution attack
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels › microarchitectural attacks
speculative execution leakage
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Systems and software security
operating system security
0.412020
Retrofitting Fine Grain Isolation in the Firefox Renderer · USENIX Security Symposium 2020
Systems and software security › operating system security
sandboxing
0.412020
Retrofitting Fine Grain Isolation in the Firefox Renderer · USENIX Security Symposium 2020
Hardware security and side channels › side-channel attack
timing side channel
0.412020
Constant-time foundations for the new spectre era · PLDI 2020
Hardware security and side channels › microarchitectural side channel
microarchitectural leakage modeling
0.412019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Hardware security and side channels › microarchitectural attacks
transient execution attack
0.412019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Processor architecture and microarchitecture
speculative execution
0.322022
SoK: Practical Foundations for Software Spectre Defenses · SP 2022
Constant-time foundations for the new spectre era · PLDI 2020
Hardware security and side channels › side-channel attack
cache side-channel attacks
0.312017
Prime+Abort: A Timer-Free High-Precision L3 Cache Attack using Intel TSX · USENIX Security Symposium 2017
Hardware security and side channels
microarchitectural attacks
0.312017
Prime+Abort: A Timer-Free High-Precision L3 Cache Attack using Intel TSX · USENIX Security Symposium 2017
Programming languages and type systems › language semantics
formal semantics
0.212023
MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code · Proc. ACM Program. Lang. 2023
Program analysis › static analysis
information flow analysis
0.112019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019

Methods — techniques the papers use, named apart from their topics

systematic literature review · 1.7formal modeling · 1.7proof assistant · 1.5logical encoding · 1.5type system · 1.3hardware memory capabilities · 1.3formal semantics · 1.3webassembly compilation · 0.5static type system · 0.5information flow control · 0.5formal verification · 0.4pomsets · 0.4compiler optimization analysis · 0.4
YearPublicationVenuePosition
2024 Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization
abstract
Cedar is a new authorization policy language designed to be ergonomic, fast, safe, and analyzable. Rather than embed authorization logic in an application’s code, developers can write that logic as Cedar policies and delegate access decisions to Cedar’s evaluation engine. Cedar’s simple and intuitive syntax supports common authorization use-cases with readable policies, naturally leveraging concepts from role-based, attribute-based, and relation-based access control models. Cedar’s policy structure enables access requests to be decided quickly. Cedar’s policy validator leverages optional typing to help policy writers avoid mistakes, but not get in their way. Cedar’s design has been finely balanced to allow for a sound and complete logical encoding, which enables precise policy analysis, e.g., to ensure that when refactoring a set of policies, the authorized permissions do not change. We have modeled Cedar in the Lean programming language, and used Lean’s proof assistant to prove important properties of Cedar’s design. We have implemented Cedar in Rust, and released it open-source. Comparing Cedar to two open-source languages, OpenFGA and Rego, we find (subjectively) that Cedar has equally or more readable policies, but (objectively) performs far better.
Joseph W. Cutler, Craig Disselkoen, Aaron Eline, Shaobo He 0002, Kyle Headley, Michael Hicks 0001, Kesha Hietala, Eleftherios Ioannidis, John H. Kastner, Anwar Mamat, Darin McAdams, Matt McCutchen, Neha Rungta, Emina Torlak, Andrew Wells
Proc. ACM Program. Lang.2
2023 MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code
abstract
Most programs compiled to WebAssembly (Wasm) today are written in unsafe languages like C and C++. Unfortunately, memory-unsafe C code remains unsafe when compiled to Wasm—and attackers can exploit buffer overflows and use-after-frees in Wasm almost as easily as they can on native platforms. Memory- Safe WebAssembly (MSWasm) proposes to extend Wasm with language-level memory-safety abstractions to precisely address this problem. In this paper, we build on the original MSWasm position paper to realize this vision. We give a precise and formal semantics of MSWasm, and prove that well-typed MSWasm programs are, by construction, robustly memory safe. To this end, we develop a novel, language-independent memory-safety property based on colored memory locations and pointers. This property also lets us reason about the security guarantees of a formal C-to-MSWasm compiler—and prove that it always produces memory-safe programs (and preserves the semantics of safe programs). We use these formal results to then guide several implementations: Two compilers of MSWasm to native code, and a C-to-MSWasm compiler (that extends Clang). Our MSWasm compilers support different enforcement mechanisms, allowing developers to make security-performance trade-offs according to their needs. Our evaluation shows that on the PolyBenchC suite, the overhead of enforcing memory safety in software ranges from 22% (enforcing spatial safety alone) to 198% (enforcing full memory safety), and 51.7% when using hardware memory capabilities for spatial safety and pointer integrity. More importantly, MSWasm’s design makes it easy to swap between enforcement mechanisms; as fast (especially hardware-based) enforcement techniques become available, MSWasm will be able to take advantage of these advances almost for free.
Alexandra E. Michael, Anitha Gollamudi, Jay Bosamiya, Evan Johnson 0001, Aidan Denlinger, Craig Disselkoen, Conrad Watt, Bryan Parno, Marco Patrignani, Marco Vassena, Deian Stefan
Proc. ACM Program. Lang.6
2022 SoK: Practical Foundations for Software Spectre Defenses
abstract
Spectre vulnerabilities violate our fundamental assumptions about architectural abstractions, allowing attackers to steal sensitive data despite previously state-of-the-art countermeasures. To defend against Spectre, developers of verification tools and compiler-based mitigations are forced to reason about microarchitectural details such as speculative execution. In order to aid developers with these attacks in a principled way, the research community has sought formal foundations for speculative execution upon which to rebuild provable security guarantees.This paper systematizes the community’s current knowledge about software verification and mitigation for Spectre. We study state-of-the-art software defenses, both with and without associated formal models, and use a cohesive framework to compare the security properties each defense provides. We explore a wide variety of tradeoffs in the expressiveness of formal frameworks, the complexity of defense tools, and the resulting security guarantees. As a result of our analysis, we suggest practical choices for developers of analysis and mitigation tools, and we identify several open problems in this area to guide future work on grounded software defenses.
Sunjay Cauligi, Craig Disselkoen, Daniel Moghimi, Gilles Barthe, Deian Stefan
SP2
2021 Swivel: Hardening WebAssembly against Spectre
Shravan Narayan, Craig Disselkoen, Daniel Moghimi, Sunjay Cauligi, Evan Johnson 0001, Zhao Gang, Anjo Vahldiek-Oberwagner, Ravi Sahita, Hovav Shacham, Dean M. Tullsen, Deian Stefan
USENIX Security Symposium2
2021 Automatically eliminating speculative leaks from cryptographic code with blade
abstract
We introduce Blade, a new approach to automatically and efficiently eliminate speculative leaks from cryptographic code. Blade is built on the insight that to stop leaks via speculative execution, it suffices to cut the dataflow from expressions that speculatively introduce secrets ( sources ) to those that leak them through the cache ( sinks ), rather than prohibit speculation altogether. We formalize this insight in a static type system that (1) types each expression as either transient , i.e., possibly containing speculative secrets or as being stable , and (2) prohibits speculative leaks by requiring that all sink expressions are stable. Blade relies on a new abstract primitive, protect , to halt speculation at fine granularity. We formalize and implement protect using existing architectural mechanisms, and show how Blade’s type system can automatically synthesize a minimal number of protect s to provably eliminate speculative leaks. We implement Blade in the Cranelift WebAssembly compiler and evaluate our approach by repairing several verified, yet vulnerable WebAssembly implementations of cryptographic primitives. We find that Blade can fix existing programs that leak via speculation automatically , without user intervention, and efficiently even when using fences to implement protect .
Marco Vassena, Craig Disselkoen, Klaus von Gleissenthall, Sunjay Cauligi, Rami Gökhan Kici, Ranjit Jhala, Dean M. Tullsen, Deian Stefan
Proc. ACM Program. Lang.2
2020 Constant-time foundations for the new spectre era
Sunjay Cauligi, Craig Disselkoen, Klaus von Gleissenthall, Dean M. Tullsen, Deian Stefan, Tamara Rezk, Gilles Barthe
PLDI2
2020 Retrofitting Fine Grain Isolation in the Firefox Renderer
Shravan Narayan, Craig Disselkoen, Tal Garfinkel, Nathan Froyd, Eric Rahm, Sorin Lerner, Hovav Shacham, Deian Stefan
USENIX Security Symposium2
2019 The Code That Never Ran: Modeling Attacks on Speculative Evaluation
abstract
This paper studies information flow caused by speculation mechanisms in hardware and software. The Spectre attack shows that there are practical information flow attacks which use an interaction of dynamic security checks, speculative evaluation and cache timing. Previous formal models of program execution are designed to capture computer architecture, rather than micro-architecture, and so do not capture attacks such as Spectre. In this paper, we propose a model based on pomsets which is designed to model speculative evaluation. The model is abstract with respect to specific micro-architectural features, such as caches and pipelines, yet is powerful enough to express known attacks such as Spectre and Prime+Abort, and verify their countermeasures. The model also allows for the prediction of new information flow attacks. We derive two such attacks, which exploit compiler optimizations, and validate these experimentally against gcc and clang.
Craig Disselkoen, Radha Jagadeesan, Alan Jeffrey, James Riely
IEEE Symposium on Security and Privacy1
2017 Prime+Abort: A Timer-Free High-Precision L3 Cache Attack using Intel TSX
Craig Disselkoen, David Kohlbrenner, Leo Porter 0001, Dean M. Tullsen
USENIX Security Symposium1