← 返回

GitHub等代码库遭隐形字符供应链攻击

研究人员发现,黑客利用Unicode规范中的隐形字符(Public Use Areas)在GitHub、npm及VS Code市场等代码库中植入恶意代码。这些字符在人类和静态分析工具中呈现为空白,但在JavaScript解释器中可被解码为可执行恶意载荷。攻击者通过编码方式隐藏恶意指令,部分载荷曾利用Solana网络窃取密钥与代币。目前检测到151个相关恶意包,但实际数量可能更高,因许多已删除。专家建议严格审查代码包及依赖项,警惕潜在AI生成的伪装包。

GitHub等代码库遭隐形字符供应链攻击

研究人员发现,黑客利用Unicode规范中的公共使用区域(Public Use Areas)字符,在GitHub、npm及VS Code市场等开源代码库中植入恶意代码。这些字符在人类和常规代码审查工具中显示为空白或空白行,但对JavaScript解释器而言,可被解码为可执行恶意载荷。

该技术利用Unicode中0xFE00至0xFE0F及0xE0100至0xE01EF范围的字符,这些字符在视觉上不可见,但经解码后可还原为完整恶意代码。攻击者通过以下JavaScript片段实现攻击:

```javascript
const s = v => [...v].map(w => (
w = w.codePointAt(0),
w >= 0xFE00 && w <= 0xFE0F ? w - 0xFE00 :
w >= 0xE0100 && w <= 0xE01EF ? w - 0xE0100 + 16 : null
)).filter(n => n !== null);

eval(Buffer.from(s(``)).toString('utf-8'));
```

其中,传入的反引号字符串在所有查看器中看似为空,实则包含大量隐形字符,解码后可生成完整恶意载荷。此前案例中,该载荷曾通过Solana网络下载并执行第二阶段脚本,用于窃取数字资产、凭证及密钥。

研究人员在GitHub发现此类恶意包后,进一步在npm和VS Code市场检测到类似案例。目前已识别151个相关包,但实际数量可能远超此数,因大量包已被删除。

专家建议,开发者应严格审查代码包及其依赖项,包括检查包名拼写错误,警惕AI生成的伪装包,以防范此类新型供应链攻击

技术原理与防御建议

隐形Unicode字符原本用于自定义表情符号或旗帜等符号,长期未被广泛使用。2024年起,黑客开始利用其隐蔽性向AI引擎注入恶意指令,尽管AI厂商已设置防护机制,但部分仍可被绕过。目前该技术已应用于传统恶意软件攻击,构成对软件供应链安全的重大威胁。

编辑点评

此次供应链攻击利用Unicode隐形字符作为隐蔽载体,标志着网络攻击技术正向更高隐蔽性和更强规避能力演进。攻击者利用人眼与传统检测工具无法识别的字符,在开源生态中植入恶意代码,这种‘视觉欺骗’方式对现代软件开发流程构成系统性威胁。尤其在AI辅助编程日益普及的背景下,攻击者可能利用生成式AI伪造看似合法的代码包,进一步提高攻击成功率。从全球视角看,该事件暴露了开源生态在代码审查机制上的漏洞,影响范围涵盖全球开发者社区,尤其是依赖npm、GitHub等平台的软件企业。未来可能催生更严格的代码审计标准与自动化检测工具,如引入AI辅助的隐式字符扫描、动态运行时监控等。此外,该技术可能被用于更广泛的供应链攻击,包括金融、云计算及物联网领域。各国监管机构或需加强对开源软件供应链的合规监管,以保障数字基础设施安全。

相关消息:https://arstechnica.com/security/2026/03/supply-chain-attack-using-invisible-code-hits-github-and-other-repositories/
当日日报:查看 2026年03月14日 当日日报