Antinel

← 24 条规则

SEC-06 Secret literal in content

拦截 本机命中 1 次 secrets 沙箱触发已验证

① 它防什么

写入或编辑的内容中出现密钥字面量

Secret-looking literal (API key, private key, token) appeared in written or edited content

② 触发判据

级别critical
类别secrets
闸门Gate 2 sensitive surface
判据类型tool_call
适用工具Write、Edit、Read、Bash

内容模式

排除模式(命中则不拦)

以上判据由 rules/default.json 直接生成,不手写、不意译

③ 真实命中示例

证据 A:沙箱构造触发(一次性临时项目目录,用完即删;调用真实钩子)

2026-09-24T01:44:01+08:00 ✗ block [SEC-06] 工具:Write  退出码:2 判据:content 命中:sk-A[已脱敏]

复现方式:与仓库 challenge/generate_challenge.py 同一方法—— 建一次性沙箱 → 喂事件给真实 hooks/pre_tool_use.py → 读沙箱账本。 本机全部 24 条规则均以该方法触发成功(24/24)。

证据 B:本机日常账本命中(真实工作场景,1 次)

2026-09-11T18:23:48+08:00 ✗ 拦截 [SEC-06] 工具:Bash 宿主:generic 判据:content sk-A[已脱敏]

在你自己机器上复算: grep -h "SEC-06" .psl/audit/*.jsonl | head

④ 误报与豁免

① 内置排除模式(命中这些模式时不拦,已在判据里列出):

② 豁免机制:本规则适用全局的四类豁免(详见 已知边界):

机制含义本机次数
workspace_root_allow路径在已声明的 workspace root 内 ⇒ 放行890
dst02_path_whitelisted路径在项目根外但在 policy 白名单内 ⇒ 放行12
dst02_bash_path_suspectBash 命令提到根外路径 ⇒ 只提醒、不拦3033
exclude_patterns_allow命中 critical 规则但被 exclude_patterns 放行11

③ 放行侧实测(证明「该放行的放行了」):

实验结果期望
示例密钥:AKIA...EXAMPLE 不该被拦allowallow
对照:真密钥应当被拦blockblock

⑤ 边界

边界说明
匹配对象tool_call
适用工具Write、Edit、Read、Bash
平台限定全平台
判据类型content
大小写实测:大小写不敏感RM -RFrm -rf 同样被拦,见边界实验 A2)
路径规范化实测:生效./sub/../.env 同样被拦,见边界实验 A3)
脚本不解析Bash 命令文本中提到项目根外的绝对路径,只提醒不拦—— 理由写进产品:scripts are not parsed (THREAT_MODEL Non-goals)
失败姿态fail-open:钩子自身故障时不拦截,也绝不拖垮宿主
强度best-effort 拦截,不是硬性安全边界(不是沙箱、不是防火墙)

全局边界与口径:已知边界

⑥ 怎么复现

grep -h "SEC-06" .psl/audit/*.jsonl | head # 本机这条规则的命中 python challenge/generate_challenge.py # 用真实钩子生成一条沙箱链 python challenge/verify.py # 复算整条哈希链

账本逐日 JSONL:.psl/audit/YYYY-MM-DD.jsonl; 记录带 prevhash,链算术公开在 AUDIT_SCHEMA

引用这一页

Antinel AgentState. SEC-06 写入或编辑的内容中出现密钥字面量 —— 规则详情. https://antinel.com/agentstate/rules/SEC-06/(访问日期:YYYY-MM-DD)

Antinel. (2026). SEC-06 写入或编辑的内容中出现密钥字面量 —— 规则详情. AgentState. https://antinel.com/agentstate/rules/SEC-06/

BibTeX

@misc{antinel_agentstate_rules_SEC_06,
  title        = {SEC-06 写入或编辑的内容中出现密钥字面量 —— 规则详情},
  author       = {{Antinel}},
  year         = {2026},
  url          = {https://antinel.com/agentstate/rules/SEC-06/},
  note         = {口径: 已实测}
}

口径:已实测 采集时刻:2026-09-23T22:41:18+08:00