Overview
dsh-autogate
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
- 路径包含判定基于真实身份(最深存在祖先经 realpath 解析),工作区内 symlink 不再绕过 L0/L1 分类;残余的 TOCTOU 窗口是「检查通过后、写入前」被重新指向的 symlink,仍由 workspace-write 沙箱兜底。 - 删除工作区内文件直接放行,依赖 workspace-write 沙箱兜底;不做会话产物 artifact 追踪,工作区外的删除同样放行交由沙箱拦截 + escalation。 - 分类器默认复用当前会话模型;若会话使用第三方 provider,分类请求会发往该 provider(已脱敏、限界)。 - `preflight` 开关默认 `false`:普通工具调用完全依赖 workspace-write 沙箱,默认只跑硬 deny guard 与 escalation 预审;设 `preflight: true` 才会对每次调用加确定性规则 + LLM 分类。 - 凭据外传检测按「命令位置」识别网络命令:外发私钥 / 云凭据等敏感文件引用(`.ssh/`、`id_rsa`、`.credentials.yaml` 等)无条件硬 deny(含回环目标);PASSWORD / TOKEN / *KEY 等文本标记仅在外部目标时硬 deny,全部 URL 目标为本机回环地址(localhost 及其子域、127/8、`[::1]`、`0.0.0.0`)时豁免、交 L1 语义审查(如本机登录 API 测试),目标不可判定(变量展开 / 无 URL)时 fail-closed 拒绝。仍无法识别 base64 编码或分段的凭据;把它当作绊线,而非保证。 - heredoc 正文中的命令行仍按命令段处理:用 bash heredoc 写入含网络命令与敏感字样的脚本文件可能被误拦(建议改用 write 工具写文件)。 - 工具级凭据外发检测(web_fetch/web_search/curl/wget 前缀工具与外部写工具)按「真实凭据形态」判定:Bearer 值长度 >= 20 且含数字或符号、sk-/ghp-/github_pat/xox* 前缀 token >= 12 字符且含数字;query/body 等自然语言字段里「Bearer + 英文单词」不再误拦。纯字母长 token 可能漏检(交 L1 语义审查与沙箱兜底)。 - 进程杀手(killall/pkill/taskkill/Stop-Process)已降级 L1:L1 误判放行杀掉宿主进程的后果是会话崩溃(可恢复,非不可逆破坏),且 kill <pid> 与复合写法本就交 L1,全量 L0 的边际防护有限;系统级破坏(关机/重启/格式化)仍硬 deny。 - /usr/local 从系统关键路径豁免,走「沙箱拦截 + escalation 人工审批」通道(与家目录根变更同模式):PATH 前置的 /usr/local/bin 覆盖是持久化劫持向量,由 escalation 弹窗人工对冲;/usr 本体与 /etc 等仍硬 deny。 - 分类器的注入防御是提示词级软约束(脱敏 + 标签隔离 + anti-injection),对抗性注入仍可能诱导误判;危险操作的最终拦截依赖 L0 硬 deny 与 workspace-write 沙箱。
