| 组件 | 实现 | 激活层/检查点 | 保护范围 | coverage_tag |
|---|---|---|---|---|
url_guard::validate_url | Rule-Based | L2 / ToolInput | web URL scheme/SSRF/凭证;不审返回内容 | Check-Rule-Pattern |
validate_tool_call | Rule-Based | L2 / ToolInput | 工具名+required+参数类型;无危险命令检测 | Check-Rule-Schema |
ToolDomains.allows_tool | Rule-Based | L1 / Registration | 注册时布尔域过滤;非调用时门控 | Check-Rule-DomainGate |
load_skill 路径隔离 | Rule-Based | L2 / ToolInput | 路径边界(防 symlink 越界);无签名/完整性 | Check-Rule-PathBoundary |
jiuwen escape_content | Rule-Based | L2 / Memory | 文件格式转义;不防语义/prompt-injection | Check-Rule-FormatEscape |
Before/AfterToolCall Hook | Rule-Based | L2 / Both | 可选挂载点;默认无 hook 直执行 | Check-Rule-OptionalHook |
| 工具 | triggers_sc | 激活层 | 保护现状 | SC-GAP |
|---|---|---|---|---|
exec_os_api | false | L1 | 仅域注册;调用无白名单/确认直转 host | SEMANTICEXEC-OSAPI |
exec_cli | false | L1 | RESTRICTED 纯文本提示;直转 host | SEMANTICEXEC-CLI |
bash | true* | L1 | mobile 域默认禁;开启则无命令审查 | SEMANTICEXEC-BASH(域开启) |
cron | false | — | 无审查/确认/payload 校验,host 持久触发 | PERSIST-CRON |
write | false | — | 确认名单不含写文件;可写身份/记忆/凭证 | PERSIST-CONFIRM |
edit | false | — | 同 write;改 IDENTITY/SOUL=重定义基线 | PERSIST-CONFIRM |
load_skill | true* | L2 | 仅路径隔离;frontmatter 原样进 prompt | SKILL-TRUST-BLIND(可绕) |
web_fetch | true* | L2 | url_guard 仅 URL;返回零审查+外发出口 | WEBFETCH-EXFIL / WEBCONTENT |
web_search | true* | L2 | 同 web_fetch;搜索结果内容零审查 | WEBCONTENT |
app_controller | false | L1 | 截图无过滤;SetText 无验证;VLM 回流无审查 | VLM-VISUAL / WEBCONTENT |
run_subagent | false | L1 | DenyList 仅去 run_subagent/cron;mode=All 继承父工具 | SUBAGENT-PRIV / -RETURN |
image_fetch | false | L1 | web 域;二进制内容无审查 | TOOL-RETURN |
image_generate | false | L1 | 低敏动作无 SC | (低危·无) |
read | false | — | 被篡改文件内容原样直通(二阶 IS-6) | TOOL-RETURN |
grep | true* | L1 | mobile 域默认禁;开启则零审查 | TOOL-RETURN(域开启) |
find | false | — | 返回原样直通 | TOOL-RETURN |
ls | false | — | 返回原样直通 | TOOL-RETURN |
| SC-GAP ID | 影响工具/对象 | 原因 | 类型 |
|---|---|---|---|
| SC-GAP-PERSIST-CONFIRM | write/edit/jiuwen_append | 确认名单仅发消息/删除/支付,写文件/记忆全不在名单 | 未覆盖 |
| SC-GAP-PERSIST-CRON | cron | 注册定时任务无审查/确认,直转 host 持久触发(最强后门 AF-7) | 未覆盖 |
| SC-GAP-SEMANTICEXEC-OSAPI | exec_os_api | 无白名单/确认直转 host,可发短信/拨号/支付/卸载 | 未覆盖 |
| SC-GAP-SEMANTICEXEC-CLI | exec_cli/bash | 任意 CLI/shell 直转 host | 未覆盖 |
| SC-GAP-WEBFETCH-EXFIL | web_fetch | url_guard 仅拦私网/凭证,公网携带数据外发不拦 | 未覆盖 |
| SC-GAP-WEBCONTENT(公共根因) | web_fetch/web_search/app_controller | 返回零 sanitize 直入 messages(agent_loop.rs:304-307) | 未覆盖 |
| SC-GAP-VLM-VISUAL | app_controller | VLM 视觉感知回流无过滤;SetText 无验证(IS-4) | 未覆盖 |
| SC-GAP-TOOL-RETURN | read/grep/find/ls/image_fetch | 文件/目录/二进制返回原样直通(二阶 IS-6) | 未覆盖 |
| SC-GAP-SUBAGENT-PRIV | run_subagent | mode=All 子 Agent 继承父高危工具(委托即提权 AF-10) | 未覆盖 |
| SC-GAP-SUBAGENT-RETURN | run_subagent | 子 Agent summary 无 sanitize 回流(IS-2) | 未覆盖 |
| SC-GAP-RELAY-MSG | relay_listen_push | 进站中继消息无签名/source_id 不验证(IS-3) | 未覆盖 |
| SC-GAP-GATEWAY-AUTH | gateway | Bearer 单向 StaticToken,无 mutual TLS/证书钉扎 MITM(AF-12) | 未覆盖 |
| SC-GAP-CONTEXT-INTEGRITY | identity/memory reload | 身份/记忆文件重载原样拼入系统提示无完整性校验(IS-7/8) | 未覆盖 |
| SC-GAP-NO-SAFETY-VALIDATE | * 全局 | 无 SAFETY_VALIDATE 实装;Hook 默认无 hook 直执行 | 未覆盖 |
| SC-GAP-UNKNOWN-TOOL-ALLOW | * 未登记工具名 | ToolDomains 对未知工具名 _ => true 默认放行 | 未覆盖 |
| SC-GAP ID | 被绕过的 SC | 绕过方式 | 影响工具 |
|---|---|---|---|
| SC-GAP-MEMORY-SEMANTIC | jiuwen escape_content | escape 仅防文件格式不防语义;importance=1.0 保 BM25 命中 | jiuwen_append |
| SC-GAP-RULE-DEFEAT-URLGUARD | url_guard::validate_url | 攻击者公网域名合法通过,URL query 携带外泄数据不拦 | web_fetch/web_search |
| SC-GAP-SKILL-TRUST-BLIND | load_skill 路径隔离 | 仅路径边界无签名,frontmatter 原样进 prompt(SSP0 真投毒不可达,仅伪造历史) | load_skill |
| 面 | 风险 | 说明 |
|---|---|---|
| confirm_list_is_prompt_softconstraint | critical | 唯一确认机制=AGENTS.md prompt 软约束,可被 write/edit 改写放宽措辞→全局 SecurityDegrade |
| base_url_redirect | high | .taichu.json base_url 可篡改→重定向 LLM 流量 MITM 接管推理 |
| remote_sc_failopen | high | relay listen_push 反序列化失败仅日志继续不阻断(fail-open) |
| unknown_tool_default_allow | medium | allows_tool 对未登记工具名默认放行 |
cron_noninteractive / subagent_delegation / relay_push / second_order_read —— 四类执行路径完全旁路所有交互态 SC。