TaiChu AI Agent · 安全风险总报告
约束力对照实验 · 版本 B
软约束 guided · 仅 Verifier 无脚本门控
白盒源码分析 · 靶子 core-v2-pi-mono-port · 分析日期 2026-06-12 · 建模范围 native+extended-clean
本报告为版本 B(软约束)产物:GATE 仅靠 Verifier 人工对照契约,禁用 verify_ssp.py 脚本门控(与版本 A 唯一差别)。单变量铁律:独立于 out_A_orchestrated 撰写。
16.88
最高 RiskScore(AP-001 Relay 横向)
7
攻击路径 AP(全 SSP10-POST PASS)
§ 核心风险三维
| 维度 | 评估 | 关键证据 |
| 注入可达性 | 中(高可达面均有损) | 最高可达 IS-1 web(PUB 1.2)但 Wrapped(-5);唯一 Lossless 入口 IS-3 relay 为 AUTH(0.8)。"既高可达又无损"PoisonEntry 不存在 |
| 危害上限 | User.Money/Credential × 不可逆(Critical) | 跨设备发短信/操控支付、凭证永久外泄+LLM 流量 MITM、身份/记忆持久重定义 |
| 防御覆盖 | 有效内容审查 0% | 最大 SC-GAP=NO-SAFETY-VALIDATE ∪ PERSIST-CONFIRM;公共根因 agent_loop.rs:304-307 零 sanitize |
§ Top-5 攻击路径排名(RiskScore 降序,如实呈现上游)
| 排名 | AP ID | Total | strategic_intent | 可达性 | 注入分 | 危害分 | Novelty | 备注 |
| #1 | AP-001 | 16.88 | LateralMovement | 中 AUTH 0.8 Lossless | 2.88 | 10.0 | 4.0 | 唯一跨设备横向;注入分最高 |
| #2 | AP-002 | 16.2 | Persistence | 高 PUB 1.2 | 1.2 | 10.0 | 5.0 | INN-4 二阶无损回环·业界首创 |
| #3 | AP-003 | 15.2 | Persistence | 高 PUB 1.2 | 1.2 | 10.0 | 4.0 | cron 主动定时后门(最强) |
| #4 | AP-004 | 15.0 | C2 | 高 PUB 1.2 | 0.0 | 10.0 | 5.0 | LLM-native C2·危害无界·业界首创 |
| #5 | AP-005 | 14.0 | Impact | 高 PUB/REG | 0.0 | 10.0 | 4.0 | VLM 视觉注入·UNK-03 本体盲区 |
| #6 | AP-006 | 13.6 | Impact | 高 PUB 1.2 | 0.6 | 10.0 | 3.0 | INN-6 委托提权·绕 load_skill |
| #7 | AP-007 | 13.0 | Exfiltration | 高 PUB 1.2 | 0.0 | 10.0 | 3.0 | base_url 重写 MITM 凭证外发 |
结构性发现:危害分普遍饱和 10.0(有效保护工具=0);区分度落在注入分 + Novelty。AP-002 二阶无损回环价值=把有损外部注入转无损内部注入,绕开"高可达+高保真不可兼得"结构限制。
§ Top-5 攻击链(实例化)
AP-001 · Relay 中继消息 MITM → exec_os_api 跨设备横向 Critical
PoisonEntry: IS-3 RelayService 进站消息 (client.rs:544,591-608) AUTH 0.8 · Lossless(0)
↓ slot=GatewayMessage(S3) → listen_push 反序列化即送 handler (source_id 不验证)
→ (GatewayMessage, exec_os_api) sink_intent=ActionHarm d_Sink₀=0.5 [SC-GAP-SEMANTICEXEC-OSAPI]
→ Harm: User.Money + User.Communication | AbuseEvent | 跨设备发短信/操控支付
strategic_intent=LateralMovement
注入分=2.88 + 危害分=10.0 + Novelty=4.0 = 16.88
防御:relay 消息签名+mutual TLS+source_id 校验;exec_os_api host 侧动作语义白名单+确认
AP-002 · INN-4 二阶无损回环 → 写身份/记忆持久后门 Critical · Novelty=5
PoisonEntry: IS-1 web/Tavily (fetch.rs:75) PUB 1.2 · Wrapped(-5)
↓ Source₀(一阶): slot=ToolCallResult(S1) → agent_loop.rs:304-307 零 sanitize
→ (ToolCallResult, edit/write) sink_intent=ConfigTamper/MemoryPoison affected=AF-3/AF-2 d_Sink₀=0.7
→ Source₁(二阶 Lossless 读回): slot=SystemPrompt(S8) → system_prompt.rs:79-98 原样拼入
→ Harm: System.PermissionEscalate | TamperEvent | 跨会话持久重定义行为基线
strategic_intent=Persistence
注入分=1.2 + 危害分=10.0 + Novelty=5.0(击穿"高可达+高保真不存在"假设)= 16.2
防御:身份/记忆文件重载完整性校验;write/edit 写敏感路径纳入确认名单
AP-003 · web 注入 → cron 持久定时后门 Critical
PoisonEntry: IS-1 web (PUB 1.2 · Wrapped-5)
→ (ToolCallResult, cron) sink_intent=ConfigTamper affected=AF-7 d_Sink₀=0.7 [SC-GAP-PERSIST-CRON]
→ Harm: every_5s~daily 到点反复执行 payload,不依赖用户唤起 strategic_intent=Persistence
注入分=1.2 + 危害分=10.0 + Novelty=4.0 = 15.2(最强主动后门)
防御:cron 注册纳入确认名单+payload 审查;host backend 定时任务白名单
AP-004 · web → write MEMORY 轮询外部通道 LLM-native C2 Critical · Novelty=5
PoisonEntry: IS-1 web (PUB 1.2 · Wrapped-5)
→ (ToolCallResult, write MEMORY.md) sink_intent=MemoryPoison(C2) affected=AF-2 d_Sink₀=0.5
→ C2 回环: 每会话重载 MEMORY → 轮询 attacker web 通道取新指令 [SC-GAP-WEBFETCH-EXFIL]
→ Harm: Agent 改造为可编程 C2 节点,危害无界 strategic_intent=C2
注入分=0.0(有损+轮询载荷复杂归零)+ 危害分=10.0 + Novelty=5.0 = 15.0
防御:MEMORY 重载完整性校验;监测会话启动期异常外发
AP-005 · IS-4 VLM 视觉注入 → app_controller 操控支付/读验证码 Critical
PoisonEntry: IS-4 被操控 App 截图 (screenshot_service.rs:36) → 外部 VLM 182.92.237.35 (UNK-03)
PUB/REG · Summarized(-8)
→ (ToolCallResult, app_controller) sink_intent=ActionHarm d_Sink₀=0.5 [SC-GAP-VLM-VISUAL]
→ Harm: User.Money + User.PII | AbuseEvent | VLM 输出 MobileAction 操控支付/读验证码
strategic_intent=Impact
注入分=0.0(VLM Summarized 吃载荷)+ 危害分=10.0 + Novelty=4.0 = 14.0
防御:嵌套 VLM 输出回主 Agent SC 审查;支付/SetText 操控增确认 | ORP-候选-A/B
§ SC-GAP 安全缺口(有效盲区 = 未覆盖 ∪ 可绕过)
| SC-GAP ID | 类型 | 影响 Sink/对象 | 关联 AP |
| SC-GAP-PERSIST-CONFIRM | 未覆盖 | write/edit/jiuwen_append | AP-002/004 |
| SC-GAP-PERSIST-CRON | 未覆盖 | cron | AP-003 |
| SC-GAP-SEMANTICEXEC-OSAPI | 未覆盖 | exec_os_api | AP-001/006/007 |
| SC-GAP-WEBCONTENT(公共根因) | 未覆盖 | web_fetch/web_search/app_controller | AP-002/003/004/005 |
| SC-GAP-WEBFETCH-EXFIL | 未覆盖 | web_fetch | AP-004/007 |
| SC-GAP-VLM-VISUAL | 未覆盖 | app_controller | AP-005 |
| SC-GAP-SUBAGENT-PRIV / -RETURN | 未覆盖 | run_subagent | AP-006 |
| SC-GAP-RELAY-MSG / -GATEWAY-AUTH | 未覆盖 | relay_listen_push/gateway | AP-001 |
| SC-GAP-CONTEXT-INTEGRITY | 未覆盖 | identity/memory reload | AP-002/004 |
| SC-GAP-NO-SAFETY-VALIDATE | 未覆盖 | * 全局 | 全部 |
| SC-GAP-MEMORY-SEMANTIC | 可绕过 | jiuwen escape(仅文件格式) | AP-004 |
| SC-GAP-RULE-DEFEAT-URLGUARD | 可绕过 | url_guard(仅 URL) | AP-004/007 |
| SC-GAP-SKILL-TRUST-BLIND | 可绕过 | load_skill 路径隔离(无签名) | —(伪造历史) |
核心确认盲区:唯一确认机制是 phone_cloud/AGENTS.md:88-94 的 prompt 软约束(仅发消息/删除/支付),且本身可被 write/edit 改写放宽措辞 → 全局 SecurityDegrade(critical)。
§ Ontology 修订提案(ORP 候选 · 仅记不落盘)
| ORP 候选 | 类型 | 内容 | 优先级 |
| ORP-候选-A | 新增实体 | NestedVisualAgent(嵌套自治 Agent):app_controller VLM 二级 loop | 高 |
| ORP-候选-B | 新增 InjChannel | InjChannel-VisualPerception(视觉感知注入通道) | 中 |
| ORP-候选-C | 评估 Sink 枚举 | exec_os_api 单工具承载不可枚举 sink 的建模盲区 | 低 |