当开发人员为像应用程序这样的东西进行编程时,他们是用一种高级编程语言来编写,其中包括Python、Ruby、Java和C++。但是,电脑无法解读这些语言,通常需要通过机器语言中的二进制数字读取数据。为了让电脑能够阅读我们的代码,编译器被用来充当从高级代码到机器代码的翻译,反之亦然。
然而,似乎这些编译器实际上很容易被骇客入侵。来自剑桥大学的研究人员尼古拉斯鲍彻 (Nicholas Boucher)与罗斯安德森(Ross Anderson)所做的研究指出,他们发现了一种新的网络安全攻击。事实证明,外面的大多数编译器都有一个错误,一旦被利用,就会被坏人所接管。这些骇客可以用他们自己的代码替换被送入编译器的代码,以及覆盖原本的代码。
尼古拉斯鲍彻和罗斯安德森解释,它的工作原理是利用统一码(Unicode)等文本编码标准的不显眼的地方,并产生开源代码,其中的标记以不同的顺序进行逻辑编码。他们把这种类型的骇客称为 “木马源码 ”(Trojan Source)攻击,目前它对第一方软件和整个行业的供应链攻击都构成了威胁。
这两位剑桥大学的研究人员提供了某种形式的解决方案,其中最简单的防御木马源码的方法,是禁止在语言规范和实现语言的编译器中使用具有方向性的文本控制字符。
目前为止,他们已经联系了一些公司,他们把自己的发现告诉这些公司,并让他们修补这些问题,但并不是所有公司都已经进行修补,他们的总结是:
“……在此期间,在快速和廉价,或相关和必要的情况下,部署其他控制是谨慎的。我们建议依赖关键软件的政府和公司应该确定其供应商的情形,对他们施加压力,以实施足够的防御措施,并确保任何差距被其工具链中的其他地方的控制所覆盖。
木马源码漏洞几乎影响了所有的电脑语言,这使得它成为一个难得的机会,可以进行全系统的、生态学上有效的跨平台和跨厂商的反应比较。”——尼古拉斯鲍彻和罗斯安德森
如果你有兴趣了解更多关于木马源码,以便可以给自己的软件打补丁,或者可以看看解决的方法,你可以查看木马源码网站或点击这里查看完整的研究报告。
【资料来源】