隐形代码供应链攻击席卷 GitHub:用零宽字符隐藏恶意代码,肉眼无法识别
Available in: 中文
一种利用零宽 Unicode 字符在明处隐藏恶意代码的新型供应链攻击已被发现,使传统代码审查完全失效。
隐形代码供应链攻击席卷 GitHub:用零宽字符隐藏恶意代码,肉眼无法识别
一种利用「隐形代码」——通过 Unicode 技巧、零宽字符和编码漏洞隐藏在看似合法文件中的代码——的新型供应链攻击已被发现,影响了 GitHub 和其他主要代码托管平台上的仓库。该攻击代表了供应链复杂性的进化,几乎不可能通过代码审查发现。
攻击手段
攻击利用多种技术在明处隐藏恶意代码:
- 零宽字符:不可见但携带可执行载荷的 Unicode 字符
- 同形字攻击:与合法字符看起来完全相同但代码点不同的字符
- RTL 覆盖技巧:使用从右到左的文本方向来反转代码的表观顺序
- 编码载荷:编码在注释、字符串字面量或元数据字段中的恶意逻辑
为何危险
传统代码审查流程对这些攻击完全视而不见:
- 视觉检查失效:恶意代码渲染后看起来与合法代码相同
- Diff 工具遗漏:许多 diff 和比较工具不显示隐藏字符
- Lint 通过:静态分析工具处理可见代码,而非隐藏载荷
- 代码审查瘫痪:审查者看不到他们看不到的东西
检测与缓解
安全研究人员建议:
- Unicode 清洗:从所有提交的代码中去除零宽和同形字字符
- 二进制 diff 检查:在字节级别而非渲染级别比较文件
- Pre-commit 钩子:添加检测可疑 Unicode 模式的钩子
- 仓库扫描:使用能识别隐形代码技术的专用工具
来源: Ars Technica | 完整报道
← Previous: Trivy Scanner Compromised in Ongoing Supply-Chain Attack Targeting DevOps CommunityNext: LLMs Can Unmask Pseudonymous Users at Scale with Up to 90% Precision →
0