Visible to the public Biblio

Filters: Author is Kinder, Johannes  [Clear All Filters]
2023-05-12
Ponce-de-Leon, Hernán, Kinder, Johannes.  2022.  Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks. 2022 IEEE Symposium on Security and Privacy (SP). :235–248.

The SPECTRE family of speculative execution attacks has required a rethinking of formal methods for security. Approaches based on operational speculative semantics have made initial inroads towards finding vulnerable code and validating defenses. However, with each new attack grows the amount of microarchitectural detail that has to be integrated into the underlying semantics. We propose an alternative, lightweight and axiomatic approach to specifying speculative semantics that relies on insights from memory models for concurrency. We use the CAT modeling language for memory consistency to specify execution models that capture speculative control flow, store-to-load forwarding, predictive store forwarding, and memory ordering machine clears. We present a bounded model checking framework parameterized by our speculative CAT models and evaluate its implementation against the state of the art. Due to the axiomatic approach, our models can be rapidly extended to allow our framework to detect new types of attacks and validate defenses against them.

ISSN: 2375-1207

2018-02-27
Mitchell, Duncan, van Binsbergen, L. Thomas, Loring, Blake, Kinder, Johannes.  2018.  Checking Cryptographic API Usage with Composable Annotations (Short Paper). Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation. :53–59.

Developers of applications relying on cryptographic libraries can easily make mistakes in their use. Popular dynamic languages such as JavaScript make testing or verifying such applications particularly challenging. In this paper, we present our ongoing work toward a methodology for automatically checking security properties in JavaScript code. Our main idea is to attach security annotations to values that encode properties of interest. We illustrate our idea using examples and, as an initial step in our line of work, we present a formalization of security annotations in a statically typed lambda calculus. As next steps, we will translate our annotations to a dynamically typed formalization of JavaScript such as $łambda$JS and implement a runtime checked type extension using code instrumentation for full JavaScript.