当前位置: X-MOL 学术Form. Methods Syst. Des. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Securing a compiler transformation
Formal Methods in System Design ( IF 0.7 ) Pub Date : 2018-01-15 , DOI: 10.1007/s10703-017-0313-8
Chaoqiang Deng , Kedar S. Namjoshi

A compiler optimization may be correct and yet be insecure. This work focuses on the common optimization that removes dead (i.e., useless) store instructions from a program. This operation may introduce new information leaks, weakening security while preserving functional equivalence. This work presents a polynomial-time algorithm for securely removing dead stores. The algorithm is necessarily approximate, as it is shown that determining whether new leaks have been introduced by dead store removal is undecidable in general. The algorithm uses taint and control-flow information to determine whether a dead store may be removed without introducing a new information leak. A notion of secure refinement is used to establish the security preservation properties of other compiler transformations. The important static single assignment optimization is, however, shown to be inherently insecure.

中文翻译:

保护编译器转换

编译器优化可能正确但不安全。这项工作侧重于从程序中删除死(即无用)存储指令的常见优化。此操作可能会引入新的信息泄漏,削弱安全性,同时保留功能等效性。这项工作提出了一种多项式时间算法,用于安全地删除死存储。该算法必然是近似的,因为它表明确定是否通过死存储移除引入了新的泄漏通常是不可判定的。该算法使用污点和控制流信息来确定是否可以在不引入新信息泄漏的情况下删除死存储。安全细化的概念用于建立其他编译器转换的安全保存属性。重要的静态单分配优化是,
更新日期:2018-01-15
down
wechat
bug