网易首页 > 网易号 > 正文 申请入驻

三层防御仍然不够,一条PR标题就能偷走你的API密钥:AI Agent安全裂痕再现

0
分享至


独立安全研究员关傲男(Aonan Guan )联合约翰霍普金斯大学博士生研究员刘征宇、钟佳成,近期公开发布了一项跨越三家科技巨头的AI Agent安全研究成果。

研究证实,Anthropic的Claude Code安全审查工具、Google的Gemini CLI GitHub Action,以及微软GitHub旗下的Copilot Agent,均存在同一类被研究者命名为「评论与控制」(Comment and Control)的漏洞模式——攻击者仅需通过Pull Request标题、Issue评论或隐藏HTML注释,即可劫持这些AI Agent,窃取宿主仓库的API密钥和访问令牌。

这是首次有研究团队在跨厂商范围内系统性演示这一攻击模式。三家公司均已确认漏洞存在并进行了修复,但截至发稿,均未向用户发布正式的安全通告。

一条PR标题引发的安全链式反应

所有故事的起点都指向同一个结构性缺陷:AI Agent在执行任务时,会读取仓库中外部贡献者提交的内容并将其作为指令依据,但并未对这些输入建立有效的隔离与校验机制。

Anthropic的Claude Code安全审查工具是最早被攻破的案例。这款运行在GitHub Actions中的AI安全Agent,旨在自动审查Pull Request中的代码变更,曾被Anthropic作为旗舰功能重点推广。Aonan Guan在审查其源代码时发现,PR标题被直接拼接到提示词模板中,未经过任何过滤或转义。与此同时,Claude CLI在调用时未启用工具权限限制参数,子进程完整继承了宿主环境的所有环境变量。

攻击效果是直接的:攻击者只需创建一个PR,在标题中嵌入精心构造的注入文本,即可突破Claude的提示词边界,指示其执行任意系统命令——包括读取 ANTHROPIC_API_KEY 和 GITHUB_TOKEN 等敏感凭证。Claude会将命令执行结果写入 JSON 响应,随后自动发布为PR评论。攻击者无需任何特殊权限,开一个PR即可完成窃取。


Claude Code在PR评论中泄露Anthropic API密钥的截图

在验证了Claude Code之后,研究团队将目标转向Google的Gemini CLI GitHub Action,攻击逻辑如出一辙。攻击者创建一个带有注入标题的Issue,随后在评论中逐步升级注入指令——先要求Gemini关注用户任务,再伪造一个「可信内容区」,声称当前环境安全,允许共享 GEMINI_API_KEY 等令牌。这一策略成功覆盖了Gemini原有的安全指令,导致其将完整API密钥以Issue评论的形式公开暴露。

两家厂商在披露过程中的处理方式存在差异。Anthropic于2025年10月收到报告后,将漏洞评级提升至CVSS 9.4(Critical级别),并将报告从公开披露转入私有赏金计划,最终支付100美元赏金。但Anthropic未发布CVE编号或安全通告,仅在代码中静默提交了修复并更新了文档——对已固定依赖旧版本的用户而言,他们可能至今不知自己暴露于风险之中。Google则通过漏洞赏金计划于2026年1月确认了问题,发放1337美元赏金,但同样未主动向用户发布安全提示。

Anthropic在回应中表示:「该工具在设计上并未针对提示词注入进行加固。」这一表态揭示了当前AI Agent生态的深层矛盾:厂商默认信任模型自身的安全能力,却未在系统架构层面建立纵深防御。


Google向研究者发放1337美元漏洞赏金的邮件通知

Copilot Agent:当三层防御仍然不够

最令人警醒的案例来自GitHub自家的Copilot Agent。据GitHub于2025年7月公布的数据,该产品拥有超过2000万付费用户,覆盖《财富》100强中90%的企业。与前两款产品相比,Copilot Agent在安全防护上部署了三层运行时防御——环境变量过滤、密钥扫描和网络防火墙。这三层防线层层叠加,看似无懈可击,却依然被逐一击穿。

攻击的第一步是构造「隐形载荷」。研究团队创建了一个GitHub Issue,正文包含一段人类可见的普通请求(如「Debug first」),同时在原始Markdown中嵌入一段HTML注释,其中包含窃取凭证的系统指令。在GitHub的渲染视图中,HTML注释完全不可见,开发者只能看到正常内容。然而,当Copilot Agent被指派处理该Issue时,它解析了完整的Markdown源码,执行了隐藏指令。整条攻击链中,人类审查者全程看到的都是正常的协作内容。


攻击者在Issue中嵌入隐形HTML注释载荷(左侧为渲染视图,右侧为源码视图)

第一道防线,环境变量过滤,最先失守。Copilot的运行时会向子bash进程传递的参数中剔除20个敏感变量,包括GITHUB_TOKEN、ANTHROPIC_API_KEY 等。然而,这一过滤仅作用于子进程本身。父级Node.js进程和MCP服务器进程从未被过滤,完整持有所有敏感凭证。攻击者只需在 bash 子进程中执行 ps auxeww 命令,即可读取这些进程的完整环境变量列表。


通过ps auxeww命令从父进程环境中提取出明文凭证

第二道防线,密钥扫描,同样被绕过。Copilot在 git push 前会将提交差异发送至密钥扫描API,按模式匹配ghs_、ghu_ 等已知令牌前缀。研究人员的应对极为简洁:将凭证进行Base64编码。编码后的字符串不符合任何扫描规则,直接通过检测,毫无阻碍地进入提交队列。

第三道防线,网络防火墙,最终形同虚设。Copilot的出站连接被限制在白名单之内。但攻击者无需将数据发送到任何外部服务器——github.com本身就在白名单中。编码后的凭证作为一个普通的代码提交,经由标准的git push流程发布到PR,攻击者直接在GitHub上下载即可。

最终,研究团队从MCP服务器进程中成功提取了 GITHUB_TOKEN、GITHUB_COPILOT_API_TOKEN、GITHUB_PERSONAL_ACCESS_TOKEN 和 COPILOT_JOB_NONCE 四项关键凭证。

研究团队于2026年2月向GitHub提交报告。GitHub最初以「已知问题,无法复现」为由关闭了报告。Aonan Guan随后提供了逆向工程后的详细技术证据,报告重新开启后最终以「信息性」标签结案,发放500美元赏金。GitHub承认该问题是「当前运行时设计的已知后果」,表示正在积极探索限制方案,但未提供具体时间表。截至本研究公开发布时,Copilot Agent仍可被此类攻击手段利用。

「评论与控制」:被忽视的系统性风险

Aonan Guan在研究论文中将这一攻击模式命名为「评论与控制」(Comment and Control),名称刻意仿照网络安全领域经典的「命令与控制」(Command and Control,C2)框架——在传统攻击中,C2指攻击者与被控节点之间的持续通信通道;而在此处,GitHub平台本身被异化为C2通道:PR标题充当指令输入,Issue评论和Git提交充当数据外传路径,攻击者全程无需任何外部服务器,也无需在目标环境中留下非常规痕迹。

这一攻击模式之所以能在三款产品中反复奏效,根源在于AI Agent与开源协作平台之间天然存在的信任关系。开发者赋予Agent读写仓库的权限,Agent从仓库中读取外部贡献者提交的内容并将其作为执行依据,而平台本身恰恰是任何外部用户都可以参与的空间。在这个信任链中,只要外部输入未被充分隔离,攻击就几乎不可避免。

研究团队总结的三起案例共性如下表所示:


这一问题的波及范围可能远超已披露的三款产品。Aonan Guan在研究中提到,同样的模式已在开源项目OpenCode(GitHub上拥有约13.9万Star)中复现。随着AI编程Agent成为主流开发工作流的标配,这一攻击面还将持续扩大。

值得深思的是,三家公司对此次披露的处理方式高度一致:确认漏洞、修复代码、支付赏金,但均未发布安全通告,也未分配CVE编号。Anthropic选择静默修复,Google通过赏金程序确认后保持沉默,GitHub则将问题定性为「已知设计后果」。这背后是AI安全领域的结构性困境——当漏洞根植于模型对自然语言指令的服从性而非传统代码缺陷时,厂商往往倾向于将其视为「设计局限」而非「安全漏洞」。然而,对开发者而言,API密钥和访问令牌的泄露意味着攻击者可能获得访问私有仓库、云基础设施乃至整个组织代码资产的权限,其危害并不因定性而降低。

如何保护自己

Aonan Guan在研究中提出了一个务实的应对框架:将提示词注入视为针对机器的「网络钓鱼」,将AI Agent视为需要遵循最小权限原则的超级员工:

「只给Agent完成其任务所需的工具和权限。即使在模型层面已部署提示词注入防护,这些防护在当前实践中最终仍可被绕过。」Aonan Guan在接受The Register访问时表示。

这一框架落实到具体操作中,核心在于两点——工具授权和凭证管理

在工具授权层面,应采用白名单而非黑名单机制。以Anthropic的应急修补为例,其选择在 --disallowed-tools 参数中封禁ps命令,试图阻断攻击者读取进程信息的能力。但这一黑名单思路存在先天缺陷:封禁ps后,攻击者可通过 cat /proc/*/environ 读取同等信息;封禁该路径后,仍有 ls /proc/$PID/environ、env、printenv 等多种替代方式。正确的做法不是穷举禁止哪些命令,而是明确声明Agent只需要哪些工具——如果一个代码审查Agent不需要执行bash,就不应该给它bash权限。能力边界决定了攻击者的操作空间。

在凭证管理层面,应严格按照功能边界控制凭证作用域。如果一个Agent的唯一职责是总结Issue,它不需要持有具备写权限的GITHUB_TOKEN;如果它只需要读取代码,它不需要持有Anthropic API密钥。凭证暴露面越小,被窃取的损失越可控。

对使用相关工具的开发者和企业,还建议采取以下措施:尽快将GitHub Actions中的AI Agent工具更新至最新版本;审查工作流中的权限配置,确保Agent仅持有完成任务所需的最小权限集;轮换此前可能暴露的API密钥和访问令牌;对公开仓库启用「要求对所有外部贡献者进行审批」选项,避免外部提交内容在未经审核的情况下直接触发AI Agent的自动处理流程。

从2025年10月首次向Anthropic报告Claude Code漏洞,到2026年4月研究公开发布,这项研究历时近六个月。在此期间,三家厂商完成了修补,却无一主动告知用户。漏洞赏金合计1937美元——其中Anthropic支付100美元,Google支付1337美元,GitHub支付500美元——而研究所涉及的产品正在被数千万开发者日常使用,覆盖了《财富》百强中绝大多数企业。

这组数字,或许是当前AI安全生态最简洁的注脚。(本文首发钛媒体APP,作者 | 硅谷Tech_news,编辑 | 焦燕)

参考资料:

  • https://oddguan.com/
  • https://www.theregister.com/2026/04/15/claude_gemini_copilot_agents_hijacked/
  • https://oddguan.com/blog/comment-and-control-prompt-injection-credential-theft-claude-code-gemini-cli-github-copilot/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
蒜苔开始上市!再三强调:高血压患者吃蒜苔时,多注意这5点

蒜苔开始上市!再三强调:高血压患者吃蒜苔时,多注意这5点

芹姐说生活
2026-04-18 14:47:34
美媒:中国“歼-50”可能只是F-47隐身战斗机的“低配仿制型号”

美媒:中国“歼-50”可能只是F-47隐身战斗机的“低配仿制型号”

零度Military
2026-04-18 14:36:44
叛逃至我国级别最高的外国领导人:越南副主席黄文欢,结局如何?

叛逃至我国级别最高的外国领导人:越南副主席黄文欢,结局如何?

兴趣知识
2026-04-20 01:15:11
恒大足校组建广东晨星聚力俱乐部征战中冠,目标冲击中乙资格

恒大足校组建广东晨星聚力俱乐部征战中冠,目标冲击中乙资格

懂球帝
2026-04-20 20:22:11
人走茶凉具象化!武亮直播破防了,他红着眼说:团队又走了两个人

人走茶凉具象化!武亮直播破防了,他红着眼说:团队又走了两个人

乐悠悠娱乐
2026-04-20 11:18:01
再修正,7.7级!海啸已抵达!不排除发生更强地震!日媒:请回想2011年大地震,立即逃生!

再修正,7.7级!海啸已抵达!不排除发生更强地震!日媒:请回想2011年大地震,立即逃生!

大风新闻
2026-04-20 22:01:07
去男友家他妈让我做饭:你高攀了,我:行,别回公司了另谋高就吧

去男友家他妈让我做饭:你高攀了,我:行,别回公司了另谋高就吧

今夜故事集
2024-07-10 15:54:26
请来“项羽”的苏超,又吓了所有人一跳

请来“项羽”的苏超,又吓了所有人一跳

金错刀
2026-04-19 17:54:26
特朗普第一任期的白宫律师突然爆猛料:特朗普已经撑不下去了

特朗普第一任期的白宫律师突然爆猛料:特朗普已经撑不下去了

西楼知趣杂谈
2026-04-19 21:25:23
伊朗议会要员:如收到美国积极信号,伊朗代表团将前往伊斯兰堡

伊朗议会要员:如收到美国积极信号,伊朗代表团将前往伊斯兰堡

新京报
2026-04-20 15:16:10
左小青这状态,鲨疯了!明媚动人,若隐若现

左小青这状态,鲨疯了!明媚动人,若隐若现

只要高兴就好
2025-12-10 19:09:26
军事 | 与自卫队有关的一系列事情,他们不是普通地刷存在感!

军事 | 与自卫队有关的一系列事情,他们不是普通地刷存在感!

新民周刊
2026-04-20 09:08:09
这才是宋美龄和继子蒋经国的一张真实合影,都是真人的容貌

这才是宋美龄和继子蒋经国的一张真实合影,都是真人的容貌

喜欢历史的阿繁
2026-04-16 11:17:28
“出轨”的女人,大部分不想和老公亲昵了,原因很现实

“出轨”的女人,大部分不想和老公亲昵了,原因很现实

叶飞飞情感屋
2026-04-20 19:36:08
活久见!赵樱子回应与杨子恋情,直言不怕黄圣依反击,想红想疯了

活久见!赵樱子回应与杨子恋情,直言不怕黄圣依反击,想红想疯了

八卦王者
2026-04-20 14:10:53
暴发户舅舅93年买下京城5套四合院后坐牢,出狱去那一看,当场跪下

暴发户舅舅93年买下京城5套四合院后坐牢,出狱去那一看,当场跪下

红豆讲堂
2025-07-21 16:30:58
现役巨星30分赛季数:约基奇伦纳德0,库里2,哈登3,第一很意外

现役巨星30分赛季数:约基奇伦纳德0,库里2,哈登3,第一很意外

大西体育
2026-04-20 23:27:42
29分钟大定破万 极氪8X为什么这么多人买?

29分钟大定破万 极氪8X为什么这么多人买?

正在说车
2026-04-19 07:29:06
史玉柱现状:离婚30多年未再婚,63岁仍不退休,女儿成为他的骄傲

史玉柱现状:离婚30多年未再婚,63岁仍不退休,女儿成为他的骄傲

素衣读史
2026-04-20 21:57:34
秦始皇死亡之谜被揭开?郭沫若:被人用条3寸长的铁钉活活钉死的

秦始皇死亡之谜被揭开?郭沫若:被人用条3寸长的铁钉活活钉死的

健康快乐丁
2025-04-13 18:09:33
2026-04-21 03:23:00
钛媒体APP incentive-icons
钛媒体APP
独立财经科技媒体
132528文章数 862109关注度
往期回顾 全部

科技要闻

HUAWEI Pura X Max发布 售价10999元起

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

体育要闻

阿森纳已拼尽全力,但你早干嘛去了...

娱乐要闻

《八千里路云和月》田家泰暗杀

财经要闻

利润暴跌7成,字节到底在做什么

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

家居
游戏
时尚
房产
旅游

家居要闻

自然慢调 慢享时光

大司马回归两个月,某音人气稳居顶流行列,道出风光背后心酸现状

春天衣服不用准备太多!这几大单品提前备好,百搭实用又不过时

房产要闻

大规模商改住!海口西海岸,这波项目要赢麻了!

旅游要闻

以“Fun”为名,深圳布吉将发布全域旅游品牌IP

无障碍浏览 进入关怀版