黑客用隐藏恶意代码的项目填充GitHub。

黑客用隐藏恶意代码的项目填充GitHub。

38 hardware

网络犯罪分子使用“不可见”的Unicode字符掩盖恶意代码

来自Aikido Security公司的最新研究显示,3月初GitHub上出现了151个包含隐藏间谍代码的项目。恶意软件包利用Unicode字符,这些字符对人类而言看似空格或空行,但在普通执行JavaScript时会转换为可执行字节码并注入到`eval()`函数中。

攻击方式
1. 库名

这些包以知名商业解决方案的名称命名(例如“React”或“Node.js”)。这让开发者误认为它们是安全的,并将其加入自己的项目。

2. “可读”代码 + 隐藏片段

大部分代码看起来像普通、易读的程序。内部却填满了“不可见”的字符块。在手动查看时这些字符会消失,而在执行时则被激活。

3. 测试仓库

这类恶意包已不仅出现在GitHub,还出现在NPM、Open VSX和Visual Studio Code市场中。

难以察觉的原因
- 项目变更看似正常:版本更新、错误修复、重构。
- 专家认为,攻击者使用大型AI语言模型自动化代码伪造。这使得他们能快速准备超过150个项目,而无需手工劳动。

字符历史
Unicode字符对应拉丁字母的功能十年前被加入系统。自2024年起,黑客开始利用这些字符来掩盖对聊天机器人和仓库中代码的恶意请求。传统静态分析工具无法检测到它们;只有在执行JavaScript时,小型解码器才会揭示真实字节码。

开发者应如何做
1. 检查依赖——在引入外部库前,仔细审阅其源代码和变更历史。
2. 自动检查——使用lint工具、检测“不可见”字符的扫描器以及动态行为分析工具。
3. 更新——关注包是否在下载后被删除;这可能表明存在隐藏威胁。

展望
如果关于AI参与此方案的猜测得到证实,发现和消除此类攻击将变得更加困难。然而,对源代码和依赖进行有意识的检查仍是防御类似威胁的最佳方式。

评论 (0)

分享你的想法——请保持礼貌并围绕主题。

暂无评论。留下评论,分享你的观点!

要发表评论,请先登录。

登录后发表评论