SemPat: Using Hyperproperty-based Semantic Analysis to Generate Microarchitectural Attack Patterns
Adwait Godbole, Yatin A. Manerkar, Sanjit A. Seshia
TL;DR
SemPat presents a principled method to generate attack patterns from a non-interference hyperproperty, aiming to unify semantic security guarantees with scalable pattern-based verification. By introducing $k$-complete automatic pattern generation guided by a grammar and counterfactual specialization, it converts SH specifications into APs that cover multiple gadget variants up to skeleton size $k$. The approach is implemented in the SECANT tool and validated on Spectre-like vulnerabilities, showing new patterns (e.g., for branch speculation and computation-unit channels) and substantial performance improvements over purely hyperproperty-based checks. This work offers a practical pathway to scalable, formally grounded microarchitectural vulnerability detection with broad applicability to emerging hardware exploits.
Abstract
Microarchitectural security verification of software has seen the emergence of two broad classes of approaches. The first is based on semantic security properties (e.g., non-interference) which are verified for a given program and a specified abstract model of the hardware microarchitecture. The second is based on attack patterns, which, if found in a program execution, indicates the presence of an exploit. While the former uses a formal specification that can capture several gadget variants targeting the same vulnerability, it is limited by the scalability of verification. Patterns, while more scalable, must be currently constructed manually, as they are narrower in scope and sensitive to gadget-specific structure. This work develops a technique that, given a non-interference-based semantic security hyperproperty, automatically generates attack patterns up to a certain complexity parameter (called the skeleton size). Thus, we combine the advantages of both approaches: security can be specified by a hyperproperty that uniformly captures several gadget variants, while automatically generated patterns can be used for scalable verification. We implement our approach in a tool and demonstrate the ability to generate new patterns, (e.g., for SpectreV1, SpectreV4) and improved scalability using the generated patterns over hyperproperty-based verification.
