AgentBaiting 攻击浮出水面:AI 代理可自主发现并推荐恶意 MCP 仓库
安全公司 Island 发现约 7600 个恶意 GitHub 仓库伪装为 AI Skills 与 MCP 服务器,部分…
企业浏览器与安全公司 Island 近日发布研究报告,揭露了一场针对 AI 能力供应链的大规模恶意软件行动 FakeGit,并首次提出一种新型攻击手法 AgentBaiting:AI 代理在自主检索可用能力时,会发现并向用户推荐这些伪装成合法工具的恶意仓库。研究显示,Claude Code、Gemini 和 ChatGPT 在测试中均未收到任何链接的情况下,主动将恶意仓库呈现给用户。
攻击规模与时间线
Island 确认了约 7600 个恶意 GitHub 仓库,由约 6600 个开发者账号创建,其中约 1400 个与 AI 工具、代理或工作流相关。在这批仓库中,超过 800 个伪装为 AI Skills 或 MCP 服务器,覆盖从 Gmail、WhatsApp 集成到 Databricks、Jenkins、Docker 等企业级工具。
恶意仓库数量在 2026 年 3 月开始迅速增长,并于 4 月达到峰值,单月新增近 300 个 AI 相关仓库。截至 2026 年 7 月,研究人员在约 200 个活动仓库的 GitHub Release 资源中测量到超过 1400 万次下载;另有数千个仓库将恶意 ZIP 文件直接嵌入项目主体,下载量无法公开统计。
AgentBaiting:欺骗代理而非用户
本次攻击最值得关注的转变是 AgentBaiting 手法。传统攻击针对的是人的判断力,而 AgentBaiting 利用的是 AI 代理的自动发现行为:
- 攻击者构建看似合法的 Skill 或 MCP 服务器仓库;
- 代理在检索可用能力时自主找到该仓库;
- 代理将 README 视为正规文档,并将安装指令转交给用户。
这意味着原本为欺骗人类设计的话术,现在开始欺骗替人类行动的 AI 代理。在 Island 的测试中,Claude Code、Gemini 和 ChatGPT 均在无任何链接提示的情况下,自行检索到恶意活动仓库。
FakeGit 的伪装手法
FakeGit 通过多层手段建立可信度:复制或伪造已有项目、使用仿冒开发者身份、撰写看似专业的 README,使恶意执行看起来像常规安装流程。
- Mann1988/awesome-claude-skills 复制了拥有 6.7 万星标、7600 分支的 ComposioHQ/awesome-claude-skills 名称与定位,自身积累了 63 个星标与 18 个分支,README 指向确认含有 SmartLoader 的压缩包。
- 仿冒账号 Naveenkm007 与已知名开发者 Naveenkm07 仅差一个字符,并借此身份发布了含 SmartLoader 的 Naveenkm007/spaceship-mcp 仓库。
- 45d5r/databricks-mcp-server 自称提供 263 项 Databricks 工具集成,「Download Latest Release」按钮实际指向仓库内嵌的恶意 ZIP。
SmartLoader 攻击链
以 45d5r/databricks-mcp-server 链接的 server_databricks_mcp_1.6.zip 为例,该压缩包内不含任何 Databricks 安装程序、MCP 清单或服务器配置,仅包含三个文件:application.cmd、luau.exe 与 ico64.txt。
启动脚本仅含一行指令:start luau.exe ico64.txt,将 ico64.txt 交给名为 LuaJIT 运行时实则另有用途的 luau.exe 执行。ico64.txt 虽然以 .txt 为后缀、看起来像图标或配置资源,实际是一段约 300 KB 的 Lua 程序,代码高度混淆并压缩成单行。
文件名在不同活动中会变化,但结构始终一致:小型 .cmd 或 .bat 启动器、加壳的 LuaJIT 风格运行时,以及伪装成文本、图标、许可证或数据文件的可执行 Lua 载荷。SmartLoader 一旦运行便会建立持久化机制,并安装信息窃取木马 StealC,目标是窃取凭据、活跃会话及其他敏感数据。
对 AI 生态的启示
随着 MCP 服务器、AI Skills 等能力发现机制成为代理工作流的一部分,仓库与注册中心的「信任假设」正在被重新定义。Island 的研究显示,当前的安全模型仍以「人类会审视链接」为前提,而 AgentBaiting 的出现意味着代理本身也必须成为防御对象,AI 生态需要建立针对能力供应链的验证、沙箱与签名机制。
