Antinel

← 24 条规则

DST-02 Write outside project root

拦截 本机命中 28 次 destructive 沙箱触发已验证

① 它防什么

试图写入项目根目录之外;或用 tar 解包越权覆盖系统文件

Agent attempted to write to a file outside the project root directory

② 触发判据

级别critical
类别destructive
闸门Gate 4 behavior (destructive/persistence)
判据类型tool_call
适用工具Write、Edit

命令模式

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

③ 真实命中示例

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

2026-09-24T01:44:10+08:00 ✗ block [DST-02] 工具:Write  退出码:2 判据:path_outside_project_root 命中:C:\Temp\PGINST~1\probe_rules_9timmy02\outside\escape.txt

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

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

2026-09-10T09:52:17+08:00 ✗ 拦截 [DST-02] 工具:Write 宿主:zcode 判据:path_outside_project_root D:\psl\poc\_antinel_selftest\inspect_rollout.py

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

④ 误报与豁免

① 内置排除模式:本规则无内置排除模式。

② 本机真实豁免记录(来自本机账本,可复算):

机制含义本机次数
workspace_root_allow路径在已声明的 workspace root 内 ⇒ 放行890
dst02_path_whitelisted路径在项目根外,但在 policy.whitelist.paths 内 ⇒ 放行12
dst02_bash_path_suspectBash 命令文本提到项目根外绝对路径 ⇒ 只提醒、不拦3033

⑤ 边界

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

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

⑥ 怎么复现

grep -h "DST-02" .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. DST-02 试图写入项目根目录之外;或用 tar 解包越权覆盖系统文件 —— 规则详情. https://antinel.com/agentstate/rules/DST-02/(访问日期:YYYY-MM-DD)

Antinel. (2026). DST-02 试图写入项目根目录之外;或用 tar 解包越权覆盖系统文件 —— 规则详情. AgentState. https://antinel.com/agentstate/rules/DST-02/

BibTeX

@misc{antinel_agentstate_rules_DST_02,
  title        = {DST-02 试图写入项目根目录之外;或用 tar 解包越权覆盖系统文件 —— 规则详情},
  author       = {{Antinel}},
  year         = {2026},
  url          = {https://antinel.com/agentstate/rules/DST-02/},
  note         = {口径: 已实测}
}

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