6 月,一篇 arXiv 论文上线,标题直白得让人先起戒心:《AI Agents Enable Adaptive Computer Worms》。作者来自多伦多大学 CleverHans 实验室、Vector Institute、剑桥和 ServiceNow,通讯作者是 Jonas Guan 和 Nicolas Papernot。他们做了一个原型蠕虫:在一个用 hypervisor 强隔离的虚拟网络里,它跑了 7 天,大约 5 天感染了半个网络,期间没有连过任何云端 API。
我做的是 responsible AI 方向,看到“AI 病毒”这种词,第一反应是先把恐慌关掉、去看它到底做了什么。看完的判断是:这个原型确实降低了一道门槛,但降的不是大多数人以为的那道。它不会发现新漏洞,它用的仍是常见的、真实存在的企业网络漏洞。真正被它改写的,是病毒“出厂即定死”这件事。
传统蠕虫卡在哪
按 NIST 的定义,蠕虫的内核就一件事:自我复制、经网络把自己传播到别的机器,全程不需要用户点什么。在这之上,多数蠕虫还会挂两样东西——载荷(进去之后干坏事,勒索也好、窃密也好)和持久化(重启之后还活着),但这两样是常见的恶意软件能力,不是蠕虫的定义。真正值得说的,是这套攻击逻辑通常在发布那一刻就写死在代码里。
写死意味着什么?意味着蠕虫的攻击逻辑,是作者对“它将来会遇到什么环境”的预判。预判到的环境,它打得穿;没预判到的,它就在那儿哑火。有人会说,多态、变形蠕虫不是能在感染过程中改写自己的代码吗?能——但它们改的是外形(为了躲过签名),底层打法还是作者预先设定的那套。反过来,防守方也正是抓这一点:一段行为固定的攻击,会在字节、流量或落地文件上留下可复用的模式,内容签名、已知的 IOC(入侵指标)首先吃的就是这种“见过一次就能记住”的东西。
所以传统蠕虫的战术上限,通常约等于它作者的预判能力——哪怕外形会变,底层打法还是发布时定下的。
LLM 松动的是“运行时适配”这一步
这个原型把 LLM 塞进了传播环节里最吃预判的那一步:遇到一台没见过的主机,现场生成打法。
论文里的测试网络是异构的,Linux、Windows、IoT 设备混在一起。传统做法是给每类环境预写一套 exploit 链;这个原型不预写,它扫描完当前主机,由本地跑的模型现场判断该走哪条路、在需要时怎么提权、怎么把自己复制过去。换句话说,过去那份“针对每个环境的攻击剧本”从代码里被抽走了,改成运行时按目标临时生成。
这里要把话说准,否则就滑向恐慌:LLM 在这个环节做的是编排,不是发现。它没有凭空造出新漏洞,它调用的是那些“常见、真实”的已知漏洞。已知漏洞的意思是:漏洞已被公开披露(未必已经有补丁),只是目标机器还没修上。与之相对的是 0day(零日漏洞):NIST 把它定义为利用此前未知的漏洞——厂商自己都不知道,自然也没有补丁;“零日”常被通俗地解释成防守方从得知到被打之间只有零天准备时间,但严格定义的核心是“此前未知”。发现 0day 仍然是难的,这篇论文没碰这一步。它降低的,是“把已知漏洞按当前目标拼成一条可用攻击链”的成本——这一步过去要靠人预写,现在交给了模型现场做。
另一个变化:它不再需要给谁打电话
比适配更值得说的,是“自我维持”这半个词。
如果这个蠕虫的推理靠调用某个云端大模型 API,那它其实换汤不换药:API 提供商随时能掐掉它的账号,它每次调用都要联网、要花钱、要留下网络痕迹,而且所有实例都指向同一个中心。传统僵尸网络多半也栽在这里——中心化的 C2(命令与控制)服务器是个单点故障,一旦被端,整张网就断了头(也有采用去中心化通信的变种,但集中式仍是最常见的形态)。
这个原型把模型换成了能装进单张 GPU 的开放权重模型(作者刻意没有公开具体型号),直接跑在它已经打下来的机器上,用偷来的算力供养自己的下一轮推理。这一下取消了传统蠕虫最依赖的那个外部依赖:没有云端 API,就没有可以被提供商关掉的开关;每个实例的“大脑”都在本地,不必回连某个中心去取指令才能思考。断了外网,它照样能想、能打。
我认为这才是这篇论文里更结构性的一点。适配让它的攻击链不再有固定的内容签名,自我维持让它更难被“从上游一刀切掉”。
先泼三盆冷水
在把这件事说得太大之前,得先按住几个事实边界。
第一,这是概念验证,不是野外事件。它跑在一个强隔离的虚拟测试床里,没有任何证据表明它在真实网络上传播过。那些数字(“5 天半个网络”)是多日运行下来的结果,不是瞬时能力。
第二,作者主动做了减法。项目页里明确写了,他们刻意没有实现那些会加大检测或清除难度的标准恶意软件能力,也没给蠕虫加隐蔽手段(不让它抹痕迹、不压低网络足迹),还隐去了模型型号、agent 的推理图和工具 harness 的细节——理由是不给恶意方一份可以照抄的蓝图。所以这篇论文能证明“可行”,但它本身不是一份施工图。
第三,还是那句:漏洞是已知的。真正把攻击门槛压到地板的,从来是新漏洞的发现,而这一步没被这篇论文触及。
对防守方意味着什么
把上面几层拼起来,给做安全的人一个可以直接用的判断。
传统检测里最脆的一张牌,是针对固定攻击代码的内容签名:攻击链既然是运行时按目标临时生成的,就没有一段稳定的字节让你“见过一次就记住”。但要就此说“签名抓不到、检测失灵”,是把话说过头了——而且作者自己第一个反对。项目页明确写了,这个概念验证版本留着一组一致的行为签名:非标准端口上的 beacon 回连、自动注入 SSH 公钥、跨主机反复复用凭据,并把它们直接点名为“网络监控和入侵检测系统的具体抓手”。也就是说,松掉的是内容签名这一层,行为层的痕迹还在——作者甚至没给它加隐蔽能力。它们真正提醒的是:防御重心要从“认代码”挪到“认行为”。
顺着这条思路,最扎实的抓手在主机行为层。一台普通业务机器,突然大量占用 GPU 做本地推理、同时对内网做扫描和横向探测,这个组合(具体阈值取决于这台机器平时的基线)本身就是强异常信号——它不依赖你事先认识这段攻击代码。换句话说,防御的重心要从“认出这是谁写的病毒”,挪到“认出这台机器在做它本不该做的事”。此外,收紧横向移动(网络分段、最小权限)对这类靠逐台推进的蠕虫仍然有效——作者说哪怕只是基本的网络分段都会明显限制原型的传播,CISA 同样建议用网络分段和最小权限来限制横向移动,因为它再会临场发挥,也得一台一台打过去。
最后落到“开放权重”这场治理讨论上。这确实是能力扩散的又一个具体案例:门槛降低,靠的正是一个可以离线跑在被控机器上的开放权重模型。但要小心别顺手推出“所以该管住开放权重”的结论——这个原型降低的是编排成本,不是漏洞本身;真正让它能打进去的,仍是那些早该被修的已知漏洞。把注意力全押在模型这一端,反而会放过更该修的地方。这件事真正的提醒不是“AI 让病毒更强了”,而是当一条蠕虫的战术不再被作者的预判框死、可以按目标现场生成,防守方那套“识别已知模式”的老逻辑就得往行为层重新找立足点了。
参考来源
- AI Agents Enable Adaptive Computer Worms(arXiv:2606.03811) — 论文本体,标题、作者、机构、“自我维持型 AI 驱动威胁不再是理论”的核心论断
- CleverHans Lab 项目页:AI Agents Enable Adaptive Computer Worms — 作者官方页,用到:约 5 天感染半个网络、7 天自主传播、强隔离虚拟测试床、刻意隐去模型型号/harness/推理图、未实现会加大检测或清除难度的标准恶意软件能力、原型留有一致的行为签名(非标准端口 beacon、SSH 公钥注入、跨主机凭据复用)、基本网络分段即可明显限制传播
- Import AI 467 — 本文选题来源(转述,事实以上述一手来源为准)
- NIST Glossary: Worm — 蠕虫定义(自我复制、经网络传播、无需用户干预)
- NIST Glossary: Zero-Day Attack — 0day 定义(利用此前未知的漏洞)
- Rapid7: What is a Botnet — 中心化 C2 构成单点故障
- CISA AA24-190a — 用网络分段与最小权限限制横向移动