151个软件包,暗藏肉眼不可见的恶意代码,AI批量生成的?
机器之心·2026-03-28 14:33

攻击手法与特征 - 攻击者利用Unicode“私有使用区”字符,将恶意函数和载荷编码为肉眼不可见的字符,并选择性插入代码关键位置,使代码审查和静态分析工具难以察觉[7] - 恶意软件包在运行时,会通过一段小型解码程序将隐形字符还原为真实字节,并交由eval()函数执行完整的恶意载荷[7] - 攻击者向GitHub、NPM和Open VSX等目标仓库上传恶意软件包,在2026年3月3日至9日期间,仅在GitHub上就发现了151个此类恶意包[2][3] - 部分恶意软件包的下载量高达数千次,表明已有相当数量的开发者项目可能受到影响[5] - 恶意软件包中可见部分代码质量相当高,且恶意注入并未出现在明显可疑的提交中,周围的改动(如文档微调、版本号更新)在风格上与目标项目高度一致,使其更难被检测[10][11] 攻击规模与影响 - 此次发现的151个恶意软件包很可能只是攻击活动的冰山一角,许多恶意包在上传后已遭删除,实际规模可能远不止于此[14] - 攻击手法是对传统供应链攻击的升级,近十年来供应链攻击虽屡见不鲜,但此次利用隐形代码的方式令传统检测手段束手无策[2][4] - 解码后的恶意载荷会以Solana区块链为传输通道,拉取并执行第二阶段脚本,进而窃取token、凭证和各类密钥[9] 攻击背后的技术趋势与潜在威胁 - 研究人员怀疑,名为Glassworm的攻击组织正借助大语言模型批量生成这些以假乱真的软件包,因为以目前151个以上跨代码库定制化改动的规模来看,纯靠人工手动完成不现实[11] - 利用隐形Unicode字符输入隐藏恶意提示词的手法,最初在2024年被用于诱导AI引擎,虽然AI引擎此后设置了防护机制,但这类防御仍在不断被突破[11] - 如果大语言模型深度介入恶意包生成的猜测属实,恶意软件包将越来越难以被辨认,尤其是在隐形Unicode字符被用来隐藏恶意载荷的情况下[16] - 开源供应链安全面临严峻挑战,代码量一旦达到数十万行,人工通读审查已不现实,而攻击手法借助AI持续变异,提交量更可能直接将人工审查能力淹没[19] 行业应对与防范建议 - 目前防范供应链攻击最有效的方式,仍是在引入任何软件包及其依赖项之前认真审查,包括仔细核对包名、排查可能的拼写错误[15] - 有观点认为,需要将自动化Unicode规范化和同形字检测集成到每个CI流水线的依赖审查阶段,否则当大量“代码”不可见时,人工审查上万行代码将难如登天[17] - 建议GitHub等平台对字符串之外的所有非ASCII字符进行正则表达式处理,并在这些文件和仓库中添加警告[18] - 面对AI辅助生成的、难以辨认的恶意软件包,可能需要让安全AI来接管代码提交的审查工作[19]

151个软件包,暗藏肉眼不可见的恶意代码,AI批量生成的? - Reportify