The Spectre family of speculative execution attacks have 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, light-weight 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 parametrized 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.
翻译:投机性执行攻击的频谱家族要求重新思考正式的安全方法。基于操作性投机性语义学的方法在寻找脆弱代码和验证防御方面已经取得了初步进展。然而,随着每次新的攻击都增加了必须纳入基本语义学的微分解细节的数量。我们建议了一种替代的、轻量的和不言而喻的方法来说明投机性语义学,这种语义学依赖于从记忆模型中获得的共通货币的洞察力。我们用CAT模型语言来说明记忆一致性,以指定执行模型,以捕捉投机性控制流、储存到货物的转发、预测性存储转发和记忆订购机器。我们提出了一个受我们投机性的CAT模型包罗的捆绑式检查框架,并对照艺术状态评估其执行情况。由于有条理学的方法,我们的模型可以迅速扩展,以便我们的框架能够发现新型攻击并验证针对它们的防御。