利用编译器Bug的可抵赖后门
| 2015-06-23 09:16
PoC||GTFO是最近几年深受0ld sch00l黑客喜爱的电子杂志,最近的一期(第8期)里有一篇名为Deniable Backdoors Using Compiler Bugs(利用编译器Bug的可抵赖后门)的文章,作者向我们展示了一种可能的威胁,这个威胁模型需要两个条件:
- 一个可利用的编译器miscompilation bug;
- 向目标的开源社区提交看起来不怎么像后门的patch。
作者修改了Sudo 1.8.13的少量代码去利用Clang/LLVM 3.3的一个bug,最终导致提权。相比传统的编译器后门和传统软件后门(比如疑似NSA对Linux内核代码的植入),这种方式更加的隐蔽,因为它是针对特定版本的编译器下手。
作者也对自由软件社区的不同角色给出了对于这种后门植入的防御性建议:
编译器开发者
开源包的维护人员
- 谨慎的接收代码提交
- 考虑重新实现一些patch
GNU/Linux发行版打包人员
- 评估编译器的可靠性
- 在所有的平台上测试编译的程序后再进行部署
- 对系统编译器进行"trusting trust"测试
终端用户
- 使用不同的编译器或者编译器版本对源代码进行重新编译
- 对预编译的程序进行你自己定制的测试(比如针对某些程序功能的回归测试)
研究人员
- 开发可被证明对这种利用方式免疫的编译器
- 开发可检测miscompilation的验证模式
- 开发可检测后门执行的多版本编程系统