Demo Data from SIGIR 2026 / reviewers in the wild / expert
Craig Disselkoen
dblp:199/4885
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security
memory safety |
1.6 | 3 | 2023 | 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.0 | 2 | 2021 | 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.9 | 2 | 2021 | 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.8 | 1 | 2024 | 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.8 | 1 | 2024 | Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024 |
Authentication and access control
authorization |
0.8 | 1 | 2024 | 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.8 | 1 | 2024 | Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization · Proc. ACM Program. Lang. 2024 |
Compilers and program optimization
compiler correctness |
0.7 | 1 | 2023 | 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.6 | 1 | 2022 | 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.6 | 1 | 2022 | SoK: Practical Foundations for Software Spectre Defenses · SP 2022 |
Hardware security and side channels
cache side channel |
0.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Cryptographic primitives and cryptanalysis › cryptographic implementation
constant-time implementation |
0.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Cryptographic primitives and cryptanalysis › cryptographic implementation
cryptographic software |
0.5 | 1 | 2021 | 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.5 | 1 | 2021 | 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.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Systems and software security
operating system security |
0.4 | 1 | 2020 | Retrofitting Fine Grain Isolation in the Firefox Renderer · USENIX Security Symposium 2020 |
Systems and software security › operating system security
sandboxing |
0.4 | 1 | 2020 | Retrofitting Fine Grain Isolation in the Firefox Renderer · USENIX Security Symposium 2020 |
Hardware security and side channels › side-channel attack
timing side channel |
0.4 | 1 | 2020 | Constant-time foundations for the new spectre era · PLDI 2020 |
Hardware security and side channels › microarchitectural side channel
microarchitectural leakage modeling |
0.4 | 1 | 2019 | 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.4 | 1 | 2019 | The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019 |
Processor architecture and microarchitecture
speculative execution |
0.3 | 2 | 2022 | 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.3 | 1 | 2017 | 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.3 | 1 | 2017 | 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.2 | 1 | 2023 | MSWasm: Soundly Enforcing Memory-Safe Execution of Unsafe Code · Proc. ACM Program. Lang. 2023 |
Program analysis › static analysis
information flow analysis |
0.1 | 1 | 2019 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Cedar: A New Language for Expressive, Fast, Safe, and Analyzable AuthorizationabstractCedar 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 CodeabstractMost 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 DefensesabstractSpectre 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 |
SP | 2 |
| 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 Symposium | 2 |
| 2021 | Automatically eliminating speculative leaks from cryptographic code with bladeabstractWe 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 |
PLDI | 2 |
| 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 Symposium | 2 |
| 2019 | The Code That Never Ran: Modeling Attacks on Speculative EvaluationabstractThis 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 Privacy | 1 |
| 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 Symposium | 1 |