编译器后门与防御

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

通知公告
编辑观点
理事会
参考资料
版权声明

凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。

《网络安全与数据治理》(原《信息技术与网络安全》)编辑部