新的“特洛伊木马源”技术让骇客可以隐藏原始程式码中的漏洞

骇客可以利用一类新的漏洞,以语义上允许的方式注入具有视觉欺骗性的恶意软体,但会改变原始程式码定义的逻辑,从而有效地为更多的第一方和供应链风险打开大门。

 

剑桥大学研究人员在一篇新发表的论文中说:“这种被称为“特洛伊木马源攻击”的技术“利用了Unicode等文本编码标准的微妙之处来生成原始程式码,其权杖的逻辑编码顺序与其显示顺序不同,从而导致无法直接感知的漏洞由人类代码审查员

 

这些漏洞影响所有流行程式设计语言的编译器,例如 CC++C#JavaScriptJavaRustGo Python

 

该问题的核心是 Unicode 的双向(或Bidi)演算法,该演算法支援从左到右(例如,英语)和从右到左(例如,阿拉伯语或希伯来语)语言,并且还具有所谓的双向性覆盖以允许在从右到左的句子中写入从左到右的单词,反之亦然,从而可以将不同阅读方向的文本嵌入大文字区块中。

 

虽然期望编译器的输出正确实现提供给它的原始程式码,但通过将 Unicode Bidi 覆盖字元插入注释和字串而产生的差异可能会产生一种产生语法有效的原始程式码的场景,其中字元的显示顺序呈现不同的逻辑从实际逻辑来看。

 

换句话说,攻击通过针对原始程式码档的编码来制造有针对性的漏洞,而不是故意引入逻辑错误,以便在视觉上重新排序原始程式码中的权杖,虽然以完全可接受的方式呈现,但会欺骗编译器进行处理以不同的方式编写代码并彻底改变程式流程——例如,使注释看起来好像它是代码。

 

“实际上,我们将程式 A 转换为程式 B研究人员推测道。如果逻辑上的变化足够微妙以至于在后续测试中未被发现,那么攻击者可能会在不被发现的情况下引入有针对性的漏洞。

 

研究人员警告说,当注入开源软体的隐形软体漏洞进入下游时,这种对抗性编码会对供应链产生严重影响,可能会影响软体的所有使用者。更糟糕的是,如果攻击者使用同形文字重新定义上游包中预先存在的函数并从受害者程式中调用它们,则木马源攻击可能会变得更加严重。

 

通过用来自其他 Unicode 系列集的相似字元替换拉丁字母(例如,将“H”更改为西瑞尔字母“Н”),威胁行为者可以创建一个看似与原始函数相似但实际上包含恶意程式码的同形文字函数,然后被添加到开源专案中而不会受到太多审查。该论文指出,当针对通过导入的依赖项或库提供的通用功能时,这种类型的攻击可能是灾难性的。

 

研究人员指出:“Trojan Source 漏洞几乎影响所有电脑语言,这一事实使其成为系统范围内和生态上有效的跨平台和跨供应商回应比较的难得机会。” “由于使用这些技术可以轻松发起强大的供应链攻击,因此参与软体供应链的组织实施防御至关重要。

 

 

 

Myasiacloud亚洲云海

网路安全防御专家---免备案CDN解决方案

亚太高防资源 无上限防御DDoS/CC攻击

全球优质节点 中国大陆全境加速 海外加速

详情访问https://www.myasiacloud.com/clouddf

商务联络TG:@myasiacloud66

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章