这里的每一步都是托管网关(
api.orcarouter.ai)上的控制台操作。
你在自己的会话下分诊匹配;只有最后的 /v1/* 调用使用
sk-orca-... 中继密钥。把一条匹配标记为误报需要工作区 Admin
角色;读取 Matches 信息流和由此产生的抑制列表对每个成员开放。1. 在不削弱规则的情况下减少防护栏误报
当一条规则过度触发时的本能是放松它——放宽一个正则排除、丢掉一个 实体、把block 翻成 flag。那是用一个误报换策略中的一个洞。
标记误报抑制是外科手术式的替代方案:
抑制一个发现
静音误触发的确切匹配——某条规则下的某个特定子串——而不是
整条规则。下一个真正敏感的命中仍然触发。
无规则编辑,无重新部署
抑制作为工作区记忆存在于网关中。规则保持完全如其所写;你的
应用继续不变地调用
/v1/*。工作区范围的记忆
一个 Admin 标记它一次;抑制在工作区范围内去重,因此每个成员的
流量都受益——无需按密钥扇出。
可逆
取消标记匹配(或删除抑制),该发现就在下一个请求上再次触发。
什么都没被销毁。
2. 一条匹配如何变成一次抑制
每条触发的规则都会在工作区 Matches 信息流中记录一条 匹配——规则类型、动作、阶段和一个详情字符串。当你把那些匹配 之一标记为误报时,网关为该发现派生一个稳定的指纹,并把它 写入工作区的抑制列表。在每个未来请求上,引擎会把每个发现的指纹 与那个列表核对,并在一个被抑制的发现能拦截、脱敏或 flag 之前 跳过它。 两类发现会产生一个指纹:代码安全发现携带它们自己的指纹
代码安全发现携带它们自己的指纹
一个 CVE / SBOM 发现已经随附一个稳定身份——警示或组件身份
随该发现一同流转。抑制一个会静音那个确切的 CVE/组件,且只有
那一个。这是抑制存储为之构建的原生用例。
确定性规则得到一个合成指纹
确定性规则得到一个合成指纹
Keyword、regex、PII 和其他确定性规则类型不携带它们自己的身份,
因此网关从写入侧(你的标记 FP 点击)和执行侧(下一个请求)上
相同的数据合成一个:防护栏、规则的匹配身份,以及——当原始
捕获开启时——匹配的子串本身。
合成指纹的精度取决于 Log raw content,而它默认关闭。捕获
开启时,指纹以确切的匹配子串为键,因此抑制
ORD-48291507 会
静音那个订单号而不静音其他任何东西。捕获关闭时,没有子串
可作键,因此抑制回退到一个规则级静音——它为工作区静音那一条
规则(在那个阶段)。该回退永不超出它来自的那条规则。参见
日志与隐私。3. 一个具体示例
假设你运行一条regex 规则,它脱敏形如 ORD- 加八位数字的内部
订单号。一张支持工单以一种你已决定可以放行的方式合法地引用了
ORD-48291507。你不想削弱规则——你只想这一个号码停止触发。
打开 Matches 信息流
在控制台中打开 Guardrails → Matches。按防护栏和规则类型
过滤,找到
ORD-48291507 命中的那一行。(要看到字面子串,
记录该匹配时防护栏的 Log raw content 必须开启——它默认
关闭。)确认它被抑制
打开 Suppressions 列表——新条目出现,标注它来自的防护栏和
规则,以及原因*“Marked as false positive from Matches”*。工作区
的每个成员都能读取这个列表。
4. 抑制 vs. 替代方案
抑制是安抚一条嘈杂规则的四种方式之一。选择最窄的合适方式:| 方法 | 它改变什么 | 何时使用它 |
|---|---|---|
| 标记 FP | 一个发现(或一条规则,捕获关闭时) | 一个特定的良性命中;规则其他方面正确 |
| 编辑规则 | 匹配本身 | 错误的形态/阶段——修复它,然后重新 eval |
flag 动作 | 仅观察,不拦截 | 一条你还不信任的新规则 |
| Eval 工具 | 不改变实时——衡量 | 在上线前证明精确率 |
5. 撤销一次抑制
这里没有任何东西是单向的:- 取消标记匹配——同一个 Admin 操作,反向执行,移除匹配的 FP 戳,并(当没有其他被标记 FP 的匹配仍映射到它时)丢弃抑制。该 发现在下一个请求上再次触发。
- 直接删除抑制——从 Suppressions 列表,一个 Developer+ 操作移除该条目。同样的效果:该发现再次实时。
6. API 面
这些是控制台路由,由你的会话鉴权——而不是中继密钥。逐个操作 角色门控:标记一条匹配 FP 是 Admin;抑制读取是 Member; 抑制写入是 Developer+。| 方法与路径 | 角色 | 用途 |
|---|---|---|
GET /api/guardrail/match | Member | 列出匹配以分诊。 |
POST /api/guardrail/match/:id/mark-fp | Admin | 把一条匹配标记为误报(镜像一条抑制)。 |
DELETE /api/guardrail/match/:id/mark-fp | Admin | 取消标记——恢复该发现。 |
GET /api/guardrail/suppressions | Member | 列出工作区的活跃抑制。 |
POST /api/guardrail/suppressions | Developer+ | 直接添加一条抑制。 |
DELETE /api/guardrail/suppressions/:id | Developer+ | 移除一条抑制。 |
标记 FP 端点是限速的——它们是一个刻意的、低量的分诊操作,而不是
一个批量 API。当你在调优一整个策略时,使用 Eval 工具,而不是
一个标记 FP 调用的循环。
7. 接下来去哪里
Matches 信息流
每条触发的规则落地的地方——你标记任何东西之前从中分诊的
地方。
测试与 eval
在你上线之前针对一个语料库证明一条规则的精确率——当抑制只是
在治标时的系统性修复。
日志与隐私
Log raw content 如何控制抑制以确切子串为键还是回退到一个
规则级静音。
防护栏参考
完整引擎——每种规则类型、动作和路由。
