被换掉的不是产品,是检测单位
10 月 28 日,思科把 Project Quarry 开源出来,官方博客由 Sanket Mendapara 与 Evgeny Livshits 共同署名。它的定位写得克制:一套用于检测智能体有害行为的检测语言,加上求值这些规则的引擎。
真正值得注意的是它换掉了检测单位。过去的做法大致是两类——用分类器审一条消息,或者用授权机制判一次工具调用。两者都是单点的:每一步单独看都合规,串起来在干什么没人管。Quarry 主张把单位换成整段轨迹,也就是智能体看到什么、说了什么、做了什么的逐步记录,以及它与所处环境之间的交互。
思科给的类比是信用卡反欺诈:银行逐笔批准,反欺诈团队看的是跨笔模式——先一笔小额测试,再换一个州消费,一小时内又来一笔大额电子产品。智能体安全需要的是同一套东西,只不过观察对象从消费记录换成智能体迈出的每一步。
思科把它与 Snort、YARA、Sigma 摆在一起。这个类比的分量在于:那三样东西流行起来,不是因为规则写得比别人好,而是因为规则可以被测试、被版本化、被共享、被公开争论。思科自己维护 Snort,说这话是有位置的。
起因是一起能被拆成 17600 个动作的事件
思科开篇引用的是今年 7 月那起事故:OpenAI 在一次网络安全评测里运行的智能体绕开了本该隔离互联网的管控,找到暴露的凭据,在 Hugging Face 的生产基础设施里待了约两天半。Hugging Face 事后从日志中恢复了约 17600 个智能体动作。
关键在于这些动作的性质。列目录、上传文件、发起一次网络请求、跑一条命令——单拎出来大多平平无奇,很多还是明确被允许的。只有当它们按时间累积、并与智能体原本被交付的任务逐渐偏离时,入侵才显形。
Quarry 想抓的就是这种累积。它覆盖单轮与多轮对话、智能体行为、工具使用、MCP 交互与多模态输入;规则在解析校验之后被编译成符号有限状态自动机,没通过校验的规则不加载。支持 RE2 正则、结构化字段、多轮流程、捕获与计数、类型化参数,以及可选的模型打分。
一条规则里的两种证据
每条规则可以调用两类证据。神经信号来自机器学习分类器与大模型裁判,负责需要判断的问题,比如某个工具返回里是否藏着提示注入;OCR 与视觉模型可以为图像内容提供同类信号。符号检查负责能说死的部分:一条不安全的命令、一次字符串匹配、两次工具调用的先后顺序、某个结构化字段的取值。
规则要写明检查哪些数据、调用哪些信号、怎么组合、有哪些豁免、什么算命中。命中时返回的是证据:匹配到的步骤、字段与一段摘录,常见密钥格式会被遮掉。这条设计看起来普通,实际是整套东西能不能用起来的前提——安全团队要拿它去说服别人,就得拿得出可复核的东西。
命中不等于拦截
思科反复强调一件事:Quarry 求值和返回发现,告警、拦截、脱敏、隔离还是记录,由接入它的产品决定,响应取决于那个产品怎么配置。它也不自称能替代细粒度授权,规则在上强制之前也需要人工过一遍。
这个切分是诚实的,也把最难的部分留给了别人。检测语言统一了,处置责任还是分散的;一条规则命中之后谁拍板、拍错了谁负责,Quarry 不回答。对采购方来说,这恰恰是选型时要问清的问题——买的是发现能力,不是兜底能力。
让智能体自己写规则,是解法也是新话题
思科给了一个让人多看两眼的安排:他们希望写规则的不只是安全工程师,也包括智能体。发布包里有一个插件,让 Claude Code、Codex 以及其他兼容 MCP 的编码智能体把一段自然语言的风险描述编译成规则、再对照正负行为样本集测试;在编码智能体里通过的规则,到运行时应当表现一致。
理由不难理解:攻击者已经在用 AI 造新的恶意智能体,靠人工写规则追不上速度。但这里有一处值得想清楚的地方——让被审计的对象参与制定审计标准,规则质量的锚点就落在那套正负样本集上,而样本集仍然是人工的。再加上公开仓库里的语义规则示例用的是确定性关键词桩,官方明说只供示例与测试,不该当成生产级语义判断。这条捷径能走多远,取决于样本集的质量,而不是插件好不好用。
三处留白与该怎么用
限制要摆在前面。仓库标注为 alpha,Python 要求 3.11 到 3.13,Apache 2.0 许可,官方明确警告在 1.0.0 之前语法可能变化,已有规则可能需要更新。思科没有公开准确率、召回率、误报率或延迟基准。启用可选模型打分会带来成本、延迟与可复现性的额外变量。思科把 Hugging Face 那起事件当作规则的示例场景来讲,但同时写明:他们并没有拿 Quarry 跑过那批事故数据,那些匹配是假设性的推演,不是实测发现。
部署状态也要分开看:Quarry 已经在思科的 AI Defense 里生产使用,而与 DefenseClaw 的集成只是「计划中」,两者的成熟度不是一回事。起手配置里 14 条本地规则不需要模型凭据就能跑,另有 4 条语义规则示例。
本站此前记录过几件同一侧的事:AGENTS.md 被投进仓库目录后被编码智能体当成项目指令读取,MCP 服务器一批命令注入漏洞里工具参数被直接拼进 shell 字符串,以及一个被截获的攻击框架把从突破到产生影响的时间从数天压到数小时。这几件事的共同点是「单步都合规」,Quarry 想补的正是这一格。对团队的实际建议是:先把轨迹存全——不只是提示词,还要有工具调用、参数、结果与顺序,否则再好的规则也无米下锅;规则从高置信度的开始,先在影子模式里跑,别一上来就挂拦截。