LightBlueTouchpaper今天分享了一篇名为《木马源码:隐形漏洞》的文章,其中提到了一些“酷”的新技巧,可以充分利用针对性的漏洞,人类代码审查员很难当场发现。据悉,要在软件中引入漏洞,创建者可以尝试在晦涩难懂的代码片段中插入不显眼的“错误”。即使操作系统等重点开源项目有严格的人工审核流程,恶意代码仍然很容易被漏掉。(来自:LightBlueTouchpaper|PDF)RossAnderson写道:“我们发现了操纵源代码文件编码的新方法,具有人类审阅者和编译器以不同方式看待的执行逻辑”。据悉,这种特别有害的方法是利用Unicode的方向叠加字符,将真正的代码隐藏在字符掩码下。研究人员已经确认,此次攻击已经影响到C、C++、C#、JavaScript、Java、Rust、Go和Python等编程语言,并有望扩展到其他现代语言。除了编号为CVE-2021-42574的常见漏洞披露报告外,MITRE还确定了可以利用“同形异义词”(视觉上相似的字符)的CVE-2021-42694攻击方法。为了给漏洞修复腾出时间,安全研究人员特意延迟了99天正式披露。许多编译器、解释器、代码编辑器和存储库都实施了专门的防御措施。RossAnderson补充说,这次攻击的灵感来自他最近关于“不可察觉的扰动”等方面的工作。它使用定向叠加、同形异义词和其他Unicode功能来实现基于文本的机器学习系统,以执行有毒内容过滤、机器翻译和其他自然语言处理(NLP)任务。感兴趣的朋友可以移步trojansource.codes项目入口查看“木马源”攻击的更多细节,或者查看GitHub上的概念验证。
