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

  • A+
所属分类:安全文章

更多全球网络安全资讯尽在邑安全

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

滥用文本编码标准

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

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

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

双向和同形字攻击

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

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

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

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

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

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

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

Trojan Source 攻击—— 同形字

PoC

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

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

原文来自: 4hou.com

原文链接: https://www.bleepingcomputer.com/news/security/trojan-source-attack-method-can-hide-bugs-into-open-source-code/

欢迎收藏并分享朋友圈,让五邑人网络更安全

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

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!


推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 



原文始发于微信公众号(邑安全):Trojan Source:源码漏洞隐藏技术分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: