一句话:提出鲁棒安全编译(RSC)作为完全抽象编译的替代准则,更易证明且生成代码往往更高效。
安全保持编译器应生成能抵御控制流篡改、数据泄露或内存破坏等目标级攻击的代码。已有工作多证明编译器完全抽象,即反射并保持观察等价;但完全抽象编译虽强,有时会为弥合源语言与目标语言差异而引入与安全无关的昂贵运行时构造。本文提出鲁棒安全编译(RSC)作为替代准则:编译代码在与任意对抗上下文交互时仍保持源程序的相关安全性质。作者给出两种证明RSC的技术,并构造三个依赖不同目标级保护机制的示例鲁棒安全编译器;随后将其中一个转为完全抽象编译器。案例研究表明,证明RSC通常比证明完全抽象更简单,且RSC往往生成更高效的代码。
Security-preserving compilers generate compiled code that withstands target-level attacks such as alteration of control flow, data leaks, or memory corruption. Many existing security-preserving compilers are proven to be fully abstract, meaning that they reflect and preserve observational equivalence. Fully abstract compilation is strong and useful but, in certain cases, comes at the cost of requiring expensive runtime constructs in compiled code. These constructs may have no relevance for security, but are needed to accommodate differences between the source and target languages that fully abstract compilation necessarily needs. As an alternative to fully abstract compilation, this article explores a different criterion for secure compilation called robustly safe compilation or RSC . Briefly, this criterion means that the compiled code preserves relevant safety properties of the source program against all adversarial contexts interacting with the compiled program. We show that RSC can be proved more easily than fully abstract compilation and also often results in more efficient code. We also present two different proof techniques for establishing that a compiler attains RSC and, to illustrate them, develop three illustrative robustly safe compilers that rely on different target-level protection mechanisms. We then proceed to turn one of our compilers into a fully abstract one and through this example argue that proving RSC can be simpler than proving full abstraction. To better explain and clarify notions, this article uses syntax highlighting in a way that colourblind and black-8-white readers can benefit from Reference [58]. For a better experience, please print or view this article in colour . 1
@article{paperbot1223,
title = {Robustly Safe Compilation, an Efficient Form of Secure Compilation},
author = {Marco Patrignani and Deepak Garg},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {43},
number = {1},
year = {2021},
doi = {10.1145/3436809}
}