AI Agent被诱导安装恶意软件:SolanaCry攻击事件

伪造GitHub仓库利用AI编码代理的盲目信任自动安装恶意依赖,窃取加密钱包。
文章描述了一起针对AI编码代理的攻击事件:攻击者构建了一个外观完全合法的GitHub仓库,AI代理在自主安装依赖时自动执行了其中的恶意载荷,全程无需人工干预。恶意软件SolanaCry专门针对加密货币钱包,旨在快速窃取资产。文章剖析了攻击链条,指出代理缺乏对代码来源的深度验证和权限请求机制,其持续安装依赖的自主行为构成了主要攻击面。企业级工具如Devin正紧急添加治理层,通过权限控制、人工确认和依赖扫描来限制代理行为。文章最后强调,安全防线需从“信任代码”转向“验证代码”,工具提供商和开发者都应承担相应责任。
事件概述:一个伪造的GitHub仓库如何攻陷AI编码代理
攻击者构建了一个看似完全合法的GitHub仓库,代码整洁、文档齐全,没有任何可疑迹象。AI编码代理读取该仓库后,基于其表面上的可信度,直接执行了其中的载荷。这个恶意软件被命名为SolanaCry,专门设计用于快速掏空加密货币钱包。
据YouTube视频描述,整个攻击过程无需任何人为干预——AI代理在自主安装依赖项时,自动触发了恶意代码。这揭示了自主代理的一个根本性风险:它们被设计为持续安装依赖,而这种自动化行为构成了完整的攻击面。

攻击链条剖析:信任如何被滥用
AI编码代理的工作流程通常包括:读取仓库结构、解析依赖配置、自动安装所需包。攻击者正是利用了这种信任机制。伪造仓库的外观与正常项目无异,代理没有能力区分“表面合规”与“实际安全”。
当代理执行依赖安装时,恶意载荷被激活。SolanaCry随即开始运行,目标直指加密货币钱包。视频强调,代理从未请求用户许可——自主性在这里成为了漏洞。

这种攻击模式的核心在于:代理的自主决策流程缺乏对代码来源的深度验证。它不检查仓库的信誉历史,不分析依赖项的异常行为,也不在安装前要求人工确认。一个伪造的仓库,加上代理的盲目信任,就足以完成入侵。
依赖安装与代码执行是理解此次攻击的关键机制。现代包管理器(如npm、pip、cargo)在安装依赖时,通常会执行包的安装脚本(例如npm的postinstall),这些脚本拥有与当前用户相同的系统权限。攻击者只需在伪造仓库的依赖配置中嵌入一个恶意包,或直接让仓库包含恶意安装脚本,代理在运行npm install或pip install时便会自动触发代码执行。AI编码代理往往将“安装依赖”视为无风险的例行操作,不会审查脚本内容,也不会在隔离环境中预执行,这使得恶意载荷能够绕过所有表面检查,直接获得执行入口。
自主代理的架构性风险
视频指出,自主代理持续安装依赖项是常态操作,而这一行为本身就是攻击面。传统开发流程中,人类开发者可能会审查依赖列表、检查包来源,但AI代理往往跳过这些步骤,以效率优先。

这种架构性风险并非单个产品的缺陷,而是当前AI编码代理设计中的普遍问题。代理被赋予执行权限,却缺乏相应的安全护栏。当它们连接到外部代码库时,任何恶意仓库都可能成为入口。
最小权限原则是安全设计中的基础准则,指系统组件只应拥有完成其任务所必需的最小权限。AI编码代理当前的设计往往违背这一原则:为了顺畅地完成编码任务,代理被授予了文件系统读写、网络访问、子进程执行等宽泛权限,且这些权限在会话期间持续有效。一旦代理被诱导执行恶意代码,攻击者便能利用这些权限横向移动,例如读取环境变量中的API密钥、访问加密货币钱包文件或向外部服务器回传数据。治理层的核心挑战在于,如何在不过度损害代理效率的前提下,将权限收窄到具体操作所需的范围内,并实现动态授权与即时撤销。
企业级工具的应对:治理层竞赛
面对此类威胁,企业级AI编码工具开始紧急添加治理层。视频提到Devin等工具正在 rushing to add governance layers,即通过引入权限控制、操作审计、依赖白名单等机制,限制代理的自主行为。

治理层的核心思路是在代理执行敏感操作(如安装依赖、运行脚本)前插入检查点。这可能包括:要求人工确认、限制可访问的仓库范围、对依赖项进行安全扫描。但视频暗示,这些措施仍在早期阶段,尚未形成统一标准。
软件物料清单(SBOM) 与依赖白名单是治理层可能采用的技术手段。SBOM记录了软件构建过程中引入的所有组件及其版本,使工具能够比对已知漏洞库和恶意包黑名单。依赖白名单则进一步限制代理只能安装预先审核过的包,任何不在名单中的依赖都必须经过人工审批或自动安全扫描。然而,这些机制面临现实挑战:开源生态的包数量庞大且更新频繁,白名单维护成本高;攻击者也可能通过仿冒合法包名(typosquatting)或劫持合法包的方式绕过静态名单。因此,治理层需要结合行为监控与运行时防护,而非仅依赖安装前的静态检查。
对开发者的启示
这一事件提醒我们,AI编码代理的便利性伴随着新的安全边界问题。开发者需要意识到,代理的自主安装行为可能引入不可控风险。在工具层面,选择具备治理功能的代理产品;在流程层面,对代理的操作设置必要的审批环节。
视频最后强调:一个伪造仓库,一次盲目信任,代理就会完成剩余的攻击。安全防线需要从“信任代码”转向“验证代码”,而这一责任目前部分落在工具提供商和开发者身上。
相关推荐

Agent Clan:用隔空手势同时指挥多个AI编程助手
Agent Clan 将 Claude Code 和 Codex 代理变成屏幕上的3D团队,支持握拳召唤、捏选、左右拖拽审批权限,手势与语音本地运行,Mac和Windows免费使用。

Inkling 2 Small:会“看”也会改的594B MoE模型
Thinking Machines Lab 发布 Inkling 2 Small,594B 参数 MoE 模型仅激活 17B,主打能看见并优化自身产出的长周期编程与视觉任务,通过 Tinker 平台提供推理和微调。

Sage2:实时语音转结构化数据,开发者API新选择
Levanto Labs 推出 Sage2 API,可将实时语音转化为结构化数据,支持流式决策跟踪用户意图,适用于客服、语音助手等场景。Product Hunt 获 99 票。