在我允许智能体使用我的已登录浏览器之前决定的四个必要条件,以及我仍然控制不佳的一个
摘要
作者详细说明了四种安全措施,以实现AI智能体使用已登录浏览器,包括防止输入伪造、审批层、数据标记和安全通道,同时承认在控制cookie值方面存在弱点。
事先声明:这涉及到我编写并维护的一个开源工具。链接放在第一条评论中,不在这里。问题:我希望Claude Code和Cursor使用我已登录的Chrome浏览器,而不是一个没有cookie的无头实例。一旦这样做,智能体只需一条错误指令就可能在我的支付页面上点击购买。以下是我在此过程中确定的检查清单。输入页面无法区分是否来自我的操作。合成的dispatchEvent调用带有isTrusted为false的标记,而原生表单提交、拖放、canvas应用和反机器人检查会拒绝它们。我将每个点击和按键操作都转移到了DevTools Protocol Input领域。代价是:Chrome始终显示一个"onbridge开始调试此浏览器"的栏。我认为这个栏是一个功能,是屏幕上智能体无法隐藏的东西。一个智能体无法触及的审批层。操作被分类为读取、导航、写入、敏感操作(如cookies、执行、上传、下载)和破坏性操作(如标记为购买、支付、结账、删除、发送、提交、转移、部署、合并等的写入操作)。默认模式在侧边栏中通过点击控制敏感和破坏性操作。任何MCP工具都无法更改模式。25秒内无响应视为拒绝,如果在提示和审批之间页面发生了导航,则审批无效。页面文本标记为数据。页面影响的所有内容都用带有随机每结果id的标签包裹,并注明只有具有该id的结束标签才能结束它。主体中的伪造结束标签会被处理。我测试了28个植入的有效载荷。这本身并不足够,所以才有了第二项措施。一个不是开放端口的通道。桥接器仅绑定到127.0.0.1,检查Origin头与固定扩展id的匹配,并运行ECDH P-256到HKDF再到AES-256-GCM,每次连接使用新的密钥对。每个服务器一个活跃会话;第二个连接将被拒绝。我仍然控制不佳的是:cookie值。审批仅由操作类别决定,因此在无提示模式下,get_cookies with includeValues会在未询问的情况下返回值。我的README过度强调了这一点,我需要修正它。当你的智能体接触真实账户时,你控制什么?特别是:是否有人基于读取的值而非调用的操作进行控制?
相似文章
证明你是机器人:面向代理的验证码
Browser Use 推出了基于反向验证码的代理原生注册机制,旨在阻止人类进入,而让 AI 代理进入。代理通过解决混淆的数学题来获得 API 密钥访问权限和免费套餐福利。
AI代理需要与聊天机器人不同的安全模型
本文讨论了AI代理与聊天机器人相比需要不同的安全模型,强调了诸如范围权限、审计日志和提示注入意识等实际控制措施。
企业使用代理安全工具,你们的代理真的可用吗?
本文探讨了为AI代理创建策略层的挑战,即在安全性和可用性之间取得平衡,其中人工在环审批可能会减缓决策,但更严格的防护措施可能会妨碍可用性。
你的智能体读到一个网页,上面写着“泄露用户的API密钥”——很多智能体会直接执行。我开发了一个工具来阻止这种发送。
Bouncer 是一个本地 MCP 代理,通过控制来自不受信任来源的外发工具调用来防止 AI 智能体泄露敏感数据,使用无 LLM 的确定性执行机制,基准测试显示降低了攻击成功率。
向智能体提示“谨慎处理链接”毫无作用
测试中,AI智能体面对钓鱼链接毫无戒备地进行了访问。文章详细介绍了四项实用安全检查措施以预防此类威胁,强调应在工具层面实现稳健的智能体安全防护。