《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > Trojan Source:源码漏洞隐藏技术分析

Trojan Source:源码漏洞隐藏技术分析

2021-11-06
来源:嘶吼专业版
关键词: 源码漏洞

  研究人员发现可在源码中隐藏恶意代码的漏洞。

  滥用文本编码标准

  英国剑桥大学研究人员Nicholas Boucher和Ross Anderson发现了一种可以在源码中隐藏漏洞的新方法——Trojan Source。与传统的插入逻辑漏洞相比,研究人员发现可以通过攻击源码文件的编码方式来注入漏洞。Trojan Source攻击对软件和供应链来说是巨大的威胁。

  研究人员发现用C、C++、C#、JavaScript、Java、Rust、Go和Python编写的项目都可能会成为攻击者的目标。具体的方式就是使用Unicode控制字符来对源码中的token进行在编码层进行重新排序。攻击利用Unicode这样的文本编码标准中的微小差异(变化)来生成源码,将token逻辑嵌入到不同的顺序中,使得漏洞无法被人类观察者感知到。

  通过利用嵌入在注释和字符串中的控制字符,攻击者可以对源码逻辑进行重新排序以实现新的逻辑,并创建一个可利用的漏洞。

  微信图片_20211106131334.jpg

  双向和同形字攻击

  研究人员指出其中一种攻击方式就是对双向文本使用Unicode控制以表明内容展示的方向。该方法CVE编号为CVE-2021-42574。

  双向控制LRI和RLI是不可见的字符。但这并不是唯一不可见的字符。此外,通过注入这些指令,编译器可以编译出与人眼看到的完全不同的代码。

  如下图所示,通过对第二行的字符进行RLI/LRI控制,人眼认为其是编译器会忽略的注释,但事实并不是。

  微信图片_20211106131337.jpg

  Trojan Source攻击——双向控制覆写字符

  另一种攻击方式是同形字攻击,CVE编号为CVE-2021-42694。即利用看着很像的不同字符,比如数字0和字母O,小写的l和大写的I。

  微信图片_20211106131339.jpg

  Trojan Source 攻击—— 同形字

  PoC

  研究人员对多个主流的代码编辑器和基于web的库进行了Trojan Source攻击测试,发现大多数受测的代码编辑器和基于web的库都受到Trojan Source攻击的影响。

  PoC代码参见:https://github.com/nickboucher/trojan-source

  其他

  7月25日,研究人员通知了受到Trojan Source攻击影响的产品维护厂商,并设置了一个99天的漏洞修复期限。研究人员从其中5个厂商收到了平均2246美元的漏洞奖励。

  虽然目前大多数编译器是无法应对Trojan Source攻击的,但有3个厂商称正在部署针对Trojan Source攻击的防护措施。

  关于Trojan Source攻击的论文下载地址:

https://www.trojansource.codes/trojan-source.pdf




电子技术图片.png


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。