隐形代码攻击成了新难题,最近曝出了151个恶意软件包,它们把AI给用起来了,让不少安全防线都被突破。AikidoSecurity的研究员揭开了一种新招数,攻击者在GitHub等平台上传了这151个包,把传统检测手段都给骗了过去。这些包藏着的代码审查工具根本就找不到,完全就是隐形的。 这次的攻击核心在于利用了Unicode的“私有使用区”。Unicode规范里留了些特殊字符范围,给表情符号还有国旗用。可攻击者却反其道而行之,把这些字符当隐形字符用,把恶意代码偷偷塞进正常的代码里。当开发者看代码时,表面上看着没问题,但一跑起来这些字符就被解码了,开始执行恶意指令。 让人担心的是,这些攻击很可能是LLM批量生成的。因为规模太大,光靠人手工去做显然不可能。用AI来生成恶意代码,隐蔽性变得更高了,未来的安全防护也变得更难办了。 过去供应链攻击不少见,很多都是跟常用库差不多的恶意包。这次更过分的是这种隐形手段。AikidoSecurity指出,这些代码嵌入的位置不显眼,周围改改文档或者更新个版本号啥的,风格跟项目很像,这让审查变得难上加难。 关键是这些字符几十年前就设计出来了,一直没人在意。现在黑客把它们输入AI引擎里当隐藏提示词用。这些文本人类根本看不见,也扫描不出来。 研究人员在GitHub发现这批包后,在npm和VSCode应用市场也发现了类似的东西。他们说这151个可能只是冰山一角。 要防这种供应链攻击还得靠仔细看包和依赖项。有人建议把Unicode规范化和同形字检测加到CI流水线上的依赖审查里去。否则一半的“代码”都是看不见的话人工审查会很费劲。 GitHub之类的平台也得处理非ASCII字符的正则表达式,还得加个警告。开源项目的代码量一旦多了就没法逐行读了。AI深度介入让恶意包生成容易多了,攻击者可能用大量提交来淹没人工能力。 看来是时候让安全AI来接管commit审查了。