中文

怪异机作为一种不安全编译

密码学与安全 2019-11-04 v1

摘要

怪异机(weird machines)——通过利用安全漏洞可访问的计算模型——源于程序员脑海中关于程序应如何运行的模型与实际执行的实现之间的差异。先前推理或识别怪异机的尝试均通过形式化计算结构(如状态机与图灵机)的视角审视这些模型。但由于程序员很少以这种方式思考程序,难以将关于怪异机的洞见有效应用于改善安全性。我们基于编程语言理论与安全编译技术提出怪异机的新视角。我们不以程序员脑海中未明确规定的模型为起点,而是从用高层源语言编写、按设计强制执行安全属性的程序出发。我们不使用状态机描述计算,而是使用该源语言及目标语言(源程序将被编译至其中)的良定义语义。怪异机是已编译源程序在目标语言中可实现、却无法直接在源语言中实现的那些行为集合。亦即,漏洞利用是不安全编译的见证。本文发展了将怪异机刻画为不安全编译的框架,并以常见漏洞利用实例阐释该框架。我们研究了漏洞利用所违反的安全属性类别、编译器栈中漏洞利用的组合性,以及由此产生的怪异机与缓解措施。

关键词

引用

@article{arxiv.1911.00157,
  title  = {Weird Machines as Insecure Compilation},
  author = {Jennifer Paykin and Eric Mertens and Mark Tullsen and Luke Maurer and Benoît Razet and Alexander Bakst and Scott Moore},
  journal= {arXiv preprint arXiv:1911.00157},
  year   = {2019}
}