小白:大东哥,你知道GitHub Copilot吗?我今天刚用它写了个爬虫,效率飙升!

大东:用AI写代码是挺香的,但你有没有想过,它可能也在偷偷“编瞎话”?

小白:啊?什么叫“编瞎话”?它不就是模型大,记得多吗?

大东:模型越大,瞎话可能越多。今天我就跟你聊聊AI代码“幻觉”带来的网络安全大坑。

小白:别吓我。我才刚开始用AI辅助开发啊。你别告诉我,黑客也能利用它?

大东:不仅能,而且已经这么干了。而且手段,贼高级。

小白:我靠!是那种“你写我推荐,我偷你库”的套路?

大东:差不多。黑客不写病毒了,他们现在跟AI“合写代码”。

小白:这听着比黑客帝国还离谱……

大东:咱今天不说救世主,就说说AI是怎么帮黑客“偷偷下毒包”的。

小白:等等,我突然想到一个问题——如果AI生成的代码有问题,那是不是意味着我们连AI都不能完全信任了?

大东:没错。AI是一个工具,但它并不是完美的。它会犯错,而这些错可能正好被黑客利用。

小白:那岂不是说,AI越强大,风险就越大?

大东:对。效率和风险是成正比的。AI让开发变快,但也让攻击者有了更多可乘之机。

小白:我突然有点后怕了。

大东:别怕,听完我的解释,你会知道怎么防范这些风险。

小白:你说的这事,是最近哪起网络攻击啊?

大东:你听说过“slop-squatting”吗?翻译过来叫“模糊投毒”。

小白:好像“typosquatting”的表亲?不就是输错名字下载了个病毒包?

大东:一脉相承。但这次主角不是开发者输错,而是AI自己推荐了个“假包”。

小白:AI自己胡说八道?真的假的?

大东:真!GitHub Copilot、ChatGPT这些AI模型,有时候会凭空编出一些看起来“很真”的包名。

小白:比如什么样的?

大东:比如你让AI写一个处理PDF文件的功能,它可能说,“import easy-pdf-utils”。

小白:听着确实像真的。

大东:但问题是——这个包可能根本就不存在。

小白:那如果我搜不到就完事了呀。

大东:聪明的黑客比你快。他早就盯着这些AI幻觉编出来的名字了。

小白:我靠,他提前注册了这些“AI胡编”的名字?

大东:正解。他在这些假包下毒,一旦你用AI写代码自动生成引用,你一执行,就中招。

小白:太阴了。这不是AI自己给我推荐毒药我还谢它?

大东:所以我们说,这是AI时代的软件供应链新威胁。

小白:那现在有多少人上当了?

大东:研究显示,AI生成的幻觉包,有的在注册上传恶意代码后,24小时内就有成千上万下载量。

小白:全都是人机协作出的安全事故啊……

大东:这也说明,现在的AI生成,不是完美的,它容易“编故事”,而黑客就吃这套。

小白:是不是该给AI装个“说谎识别器”了?

大东:比这个更重要的,是人类开发者得保持清醒。

小白:那我们具体该怎么做呢?

大东:首先,别迷信AI推荐的包名,要查证是不是存在。

小白:我现在都不敢直接pip install了。

大东:其次,项目最好启用锁文件,确保依赖版本固定,不随便升级。

小白:就是用package-lock.jsonpoetry.lock那类?

大东:对。第三,使用依赖安全扫描工具,比如Snyk、Dependabot。

小白:这些能提前告诉我哪些包被下毒了?

大东:它们能识别已知的高危包,并提示你版本升级建议。

小白:但AI那种“它编出来的新包”怎么办?

大东:那就得靠人审查,尤其是AI生成的代码引用,不能盲信。

小白:你一说,我才发现,AI让代码更快,也让事故更快。

大东:没错。AI是一把双刃剑,效率越高,风险也越大。

小白:所以说,未来写代码,不能只会写,更得会“查”。

大东:这就是软件开发的新范式:安全第一,AI第二。

小白:那如果AI生成的代码看起来很合理,但其实是错的呢?

大东:这也是AI幻觉的一部分。它生成的代码可能语法正确,但逻辑上完全错误。

小白:这岂不是更难发现?

大东:是的。所以开发者的安全意识和代码审查能力必须跟上。

小白:大东哥,AI这事挺新潮的。以前有没有类似的供应链攻击?

大东:不少。你听我讲几个例子——它们没AI,但逻辑很相似。

小白:你说说看,长见识。

大东:2015年,event-stream事件爆发。npm上一个常用库被接手,后来有人在里面悄悄加了后门。

小白:这不就等于“接盘侠”变“投毒侠”?

大东:是的。这个库被用来处理事件流,后来被植入了一个后门,用来窃取比特币钱包的私钥。

小白:这太可怕了!那开发者是怎么发现的?

大东:直到一年后,有人发现这个后门并报告了npm团队,才得以修复。

小白:这说明什么?

大东:说明即使是流行的开源库,也可能被恶意接管。开发者不能盲目信任第三方库。

小白:那2016年的左_pad事件呢?

大东:2016年,一个开发者因为和社区闹矛盾,直接删除了自己维护的左_pad库。

小白:这库有什么特别的?

大东:这个库虽然只有11行代码,但却是许多大型项目的依赖。结果,整个JavaScript生态系统瞬间崩溃。

小白:这也太夸张了吧?

大东:这就是供应链攻击的可怕之处。一个小小的依赖,可能牵一发而动全身。

小白:那pycrypto事件呢?

大东:2018年,pycrypto库被废弃,但很多项目还在用。黑客趁机上传了一个拼写相似的假包pycrypt0,并在其中植入恶意代码。

小白:我靠!一个是“O”,一个是“0”?这太坑了。

大东:是的。很多开发者没有仔细检查包名,直接安装了假包,导致系统被攻击。

小白:这跟AI幻觉很像啊。

大东:没错。AI只是让这种攻击变得更加自动化和隐蔽化。

小白:那2020年的恶意包上传呢?

大东:这次攻击者更聪明。他们监控了Python包索引(PyPI),找出那些尚未被注册的包名,然后抢注并上传恶意代码。

小白:这跟AI幻觉的逻辑完全一致啊。

大东:是的。AI只是让这种攻击变得更加高效和规模化。

小白:有没有办法完全杜绝这种攻击?

大东:很难。供应链攻击的本质是信任问题,而信任一旦被破坏,就很难修复。

小白:那我们只能靠自己小心了?

大东:是的。开发者必须提高警惕,尤其是在使用第三方库时。

小白:今天和大东哥聊了一个我以前从没想过的问题:AI写出来的代码,可能本身就是一个“钓鱼陷阱”。AI生成的依赖包名,听起来很靠谱,但如果它们根本不存在,就可能被黑客抢注并投毒。这不仅是AI的“幻觉”,更是开发者的“信任崩塌”。 原来供应链攻击已经从“拼错名字”“删库跑路”演化到“AI自动帮黑客开门”。听完这几个案例,我现在真的不敢盲目用AI生成的代码了。 AI是个好帮手,但安全意识必须先行。未来写代码,不仅要快,更要稳。效率和安全的平衡,才是开发者在AI时代的核心竞争力。

来源: CCF科普