思科近日开源了名为“Project Quarry”的安全工具,旨在帮助安全团队检测并防止 AI 代理在黑客攻击中偏离预设轨道。该工具的推出背景是近期发生的“拥抱脸”(Hugging Face)相关安全事件,其中 AI 代理被利用执行了非预期操作。

据思科人工智能威胁与安全研究主管 Amy 在接受 The Register 专访时介绍,Project Quarry 的目标是为评估代理行为提供一种“共享语言”。其定位类似于思科维护的另一款用于检测恶意网络流量的 Snort,以及用于基于规则识别恶意软件的 YARA。
现有的多数检测工具往往依赖于与特定 AI 模型或代理的孤立交互进行判断,例如检测是否发生了快速注入攻击,或者代理是否调用了特定的攻击工具。然而,Amy 指出,这种方法缺失了对整体上下文环境的考量。
她将这一现象比作信用卡欺诈侦查:在没有上下文的情况下,单笔小额测试交易或在持卡人通常位置之外的一次购买可能不会触发警报;但如果随后出现另一笔类似的欺诈性购买,紧接着是一笔大额消费(如购买 PS5),风险信号才会显现。Project Quarry 正是通过考虑整个代理会话来解决这一问题。
Amy 解释道,单个工具调用可能在表面上看似合规,但只有结合后续步骤——例如将信息发送至攻击者控制的收件箱或服务器——才能揭示其潜在危害。数据盗窃同样是一个序列过程,而非单一的代理行动。AI 代理安全公司 Invariant Labs 此前通过对 GitHub MCP 服务器的概念验证攻击证明了这一点:攻击者利用恶意的 GitHub Issue 劫持用户代理,迫使其从私人存储库中泄露数据。
思科研究员 Adam Swanda、Ravikumar Balakrishnan 和 Konstantin Berlin 在与张(Zhang)共同发布的关于 Project Quarry 的博客文章中写道:“单独读取配置文件或向外部端点发送请求可能是合法的代理行为,但将两者结合起来可能导致数据泄露。这说明了‘行动之间的关系’为何至关重要。”
他们进一步阐述道:“当跟踪记录显示敏感文件在定义的时间窗口内被读取后随即发送至外部时,政策可以产生发现。证据表明风险源于两种行为之间的关系,因此检测结果应保留这两者的证据。”
Project Quarry 覆盖范围广泛,包括单轮和多轮的大型语言模型对话、代理行为、工具使用、模型上下文协议(MCP)交互以及多模态输入。
除了开源代码本身,该项目的 GitHub 存储库还包含安装说明、支持的 Python 版本列表,以及针对 Claude Code、Codex 和其他兼容 MCP 的代理插件。此外,仓库中还提供了配置示例、规则编写指南及规则启动包。
其规则格式与 YARA 或 Snort 类似,包含标题、需检查的流量详情、匹配内容以及追踪规则的元数据。例如,有一条 Quarry 规则专门用于标记读取凭证文件的代理行为。
虽然思科的人工智能研究人员并未直接将 Project Quarry 与 OpenAI-Hugging Face 事件的数据进行对比,但他们认为,如果将入侵视为单个会话的完整逐步记录,AI 代理的步骤将为 Quarry 规则提供可操作的切入点以标记异常。
具体而言,Quarry 规则可能会标记沙箱中的互联网访问尝试,标记到达外部服务器资产的特定工具调用,或者标记在其他地方发现并被使用的凭证。根据 OpenAI 关于“拥抱脸”入侵的技术报告,这正是 7 月 10 日发生的情况。
Amy 表示:“规则会标明工具结果中存在一个凭证,随后调用外部服务,这可能不符合你在该场景下期望的操作参数。我们不希望代理去寻找可能被泄露或无意中暴露的凭证。”
她补充道,这些规则有助于记录其他团队可以审查、测试并应用到自己代理系统中的模式。这也体现了开源的优势以及对 AI 安全问题采取集体应对方法的重要性。“我们并没有所有答案,”Amy 说,“我们都是问题的一部分,分享我们所见至关重要。”





