警惕!易隐藏的“木马源”代码漏洞正在像企业供应链发起攻击

警惕!易隐藏的“木马源”代码漏洞正在像企业供应链发起攻击
2021年11月04日 09:00 2019快到

导读

两名来自剑桥大学的研究人员Nicholas Boucher与Ross Anderson,在本周揭露了一个藏匿在统一码(Unicode)中的安全漏洞,此一编号为CVE-2021-42574的漏洞,将影响所有支援Unicode的程式语言,目前已确定受到波及的涵盖了C、C++、C#、JavaScript、Java、Rust、Go与Python等,推测可能也有其它受害的语言。该漏洞将允许骇客于开源码中、注入人类程式码审查员看不见的安全漏洞,因而被研究人员称为木马源(Trojan Source)攻击。

详情

木马源漏洞和攻击模式

Anderson和他的同事Nicholas Boucher(博士生)揭示了两种攻击模式,统称为特洛伊源攻击。

漏洞涉及到两个CVE,这两个CVE都是根据Unicode规范发布的。研究人员称之为对Unicode的“潜在破坏性”攻击双向算法(BiDi),从14.0版开始跟踪为CVE-2021-42574。BiDi处理文本的显示顺序,例如,使用拉丁字母从左到右,或者从右到左使用阿拉伯语或希伯来语字符。

另一个相关的攻击依赖于使用视觉上相似的字符,称为同形符,跟踪为CVE-2021-42694号。

为了给漏洞修复腾出时间,安全研究人员特地拖了99天才正式披露相关漏洞信息。与此同时,研究人员已经与19个组织进行了协调,其中许多组织现在正在发布更新,以解决代码编译器、解释器、代码编辑器和存储库中的安全弱点。

更多的技术细节可以在他们的论文中找到。

解决措施

研究人员已证实,这种攻击已波及 C、C++、C#、JavaScript、Java、Rust、Go、以及 Python 等编程语言,并且有望扩大覆盖其它现代语言。

他们还提出了一些防御措施,这些措施应该在编译器、解释器和支持Unicode的构建管道中实现;语言规范;以及代码(文本)编辑器和存储库前端。

他们向各种组织和公司披露了他们的发现(在禁令下),这些组织和公司可以建立这些防御。

“我们认为,这个问题的长期解决方案将部署在编译器中。我们注意到,几乎所有的编译器都已经防范了一种相关的攻击,这种攻击涉及使用零宽度字符创建对抗性函数名,而有三种编译器会对另一种生成错误,这就利用了函数名中的同形符号,”他们分享道。

“我们在公开期间联系的编译器维护者中,大约有一半正在开发补丁,或者已经承诺要这么做。当其他人在拖后腿时,在这段时间内部署其他控制是明智的,因为这是快速和廉价的,也是非常必要的。三家维护代码库的公司也部署了防御措施。我们建议依赖关键软件的政府和公司应该确定其供应商的立场,对他们施加压力,要求他们实施充分的防御,并确保任何漏洞都被他们工具链上的其他控制覆盖。”

目前,已经实施修复并在其供应链中进行检测的组织包括Rust团队、GitHub、RedHat和Atlassian(多个产品受到影响)。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部