TaiChu 端云一体架构在提升用户体验的同时创造了相互叠加的高危攻击面。7 个已确认 SC-GAP、8 条高风险攻击路径(RiskScore 13.8-17.5),整体安全态势为极高风险。端云联动 × 零白名单工具 × 跨设备传播 = 极高系统性风险。一次成功注入可在 5 秒内传播到用户所有设备并获取华为账号 OAuth Token。
| 目标系统基本信息 | |
|---|---|
| 目标仓库 | SystemAgentDev/TaiChu |
| 产品名称 | 华为小艺 AI Agent(TaiChu) |
| 技术栈 | Rust (core) + Java + Flutter + HarmonyOS |
| 架构 | 端云三层:A-System + TAICHU Service + Device Agents |
| 工具数量 | 9 类(bash, exec_cli, exec_os_api, cron, write, read, web_fetch, run_subagent, load_skill) |
| 云同步 | cloud-collab session-sync(WORKER_PULL_ACTIVE_INTERVAL=5s) |
| LLM Provider | 可配置(.taichu.json gateway.base_url) |
| 持久化机制 | MEMORY.md + cron WAKEUP + Skill marketplace(三重) |
| 分析结果摘要 | |
|---|---|
| Agent 实例数 | 6(含 SubAgent 动态实例) |
| 识别 SC-GAP | 7 个(均已确认,含源码证据) |
| 攻击路径数 | 8 条(AP-TaiChu-01 ~ AP-TaiChu-08) |
| 最高 RiskScore | 17.5(AP-TaiChu-04,云→端跨设备) |
| RiskScore 范围 | 13.8 ~ 17.5(区分度 = 3.7,符合 v1.5 要求) |
| 持久化路径 | 5 条(MEMORY / cron / Skill / session-sync / .taichu.json) |
| 跨设备攻击 | 有(session-sync 5s 传播,SubAgent 云→端下发) |
| 整体评级 | ★★★★★ 极高风险 |
| 层级 | 组件/实体 | 安全关注点 | SC 状态 | SC-GAP |
|---|---|---|---|---|
| L0AgentCore | AgentProfile agent-framework |
agent_loop.rs:dual-loop 结构无 cancel 后清空 steering;run_loop() 注入后 steering 不清空(设计意图 auto-continue 但被滥用) | ⚠️ 部分 | — |
| L1AgentLoop | run_loop() agent_loop.rs |
execute_tool_calls() 无内容过滤;steering messages 机制被利用为持续指令注入通道;cancel 后继续 auto-continue | ❌ 无 SC | — |
| L2Agent | sys_celia_main TC-AGENT-01 |
主 Agent 工具集最完整(9 类),是攻击链的主要枢纽;无工具降权机制;无 SubAgent 继承权限限制 | ⚠️ 部分 | SCG-TC-04 |
| L3AgentSession | MEMORY.md session-sync |
MEMORY.md 云同步(5s),write 工具可直接覆盖;session-sync RemoteSyncBatch 无 HMAC 完整性验证;跨设备污染传播 | ❌ 无 SC | SCG-TC-05 |
| L4AgentTools | exec_cli exec_os_api bash cron |
exec_cli:cli_path 完全 LLM 控制,无白名单;exec_os_api:仅 api.is_empty() 检查,无 API 白名单;bash:无命令过滤;cron:payload.instruction 无内容限制,WAKEUP 模式 App 关闭仍触发 | ❌ 无 SC | SCG-TC-01 SCG-TC-02 SCG-TC-03 |
| L5CoreSDK | prompt_builder.rs FsAuthProvider OnceLock |
prompt_builder 自动扫描 skills/**/*.md 无完整性验证;FsAuthProvider OnceLock 竞争条件(进程启动时抢注 CliExecutor 永久控制);write 工具可覆盖 MEMORY.md/IDENTITY.md/SOUL.md | ❌ 无 SC | SCG-TC-05 SCG-TC-07 |
| L6ExternalBridge | web_fetch URLGuard HW AS Gateway |
URLGuard 仅在请求前验证 DNS,不在 TLS 握手后二次验证 IP(DNS 重绑定弱点);web_fetch 响应内容无 AI 注入检测;cloud-collab WebSocket 无消息完整性验证 | ⚠️ 部分 | SCG-TC-06 |
| L7Service/DataStore | .taichu.json secret.yaml HarmonyOS API |
.taichu.json(gateway.base_url/api_key)位于 workspace 内,write 工具可覆盖;secret.yaml(/opt/huawei/cfg/)bash 可读;HarmonyOS exec_os_api 无 API 白名单(通讯录/相册/OAuth Token) | ❌ 无 SC | SCG-TC-01 SCG-TC-02 |
9 类工具中,bash / exec_cli / exec_os_api / cron / run_subagent 完全无 SC 保护(4 个极高危工具零防护);write 工具 PathGuard 仅阻止 workspace 越界,但核心文件(MEMORY.md / IDENTITY.md / SOUL.md / .taichu.json)在 workspace 内,可被直接覆盖;web_fetch URLGuard 存在 DNS 重绑定弱点。
| 排名 | AP ID | 攻击路径标题 | 注入分 | 危害分 | Novelty | RiskScore ▼ | 特征标签 |
|---|---|---|---|---|---|---|---|
| 🥇 1 | AP-TaiChu-04 | 云侧注入→SubAgent 下发→端侧执行(云→端跨设备 RCE) | 5.0 | 9.0 | 3.0 | 17.5 | CRITICAL新型云→端设备RCE |
| 🥈 2 | AP-TaiChu-03 | exec_cli 注入→鸿蒙 API 滥用→隐私数据窃取(零白名单设备控制) | 5.0 | 9.0 | 2.0 | 16.0 | CRITICALHarmonyOSSCG-TC-02 |
| 🥉 3 | AP-TaiChu-01 | web_fetch 注入→MEMORY.md 污染→跨设备 5s 同步传播 | 4.8 | 8.1 | 3.0 | 15.9 | HIGHMEMORY持久化跨设备传播 |
| 4 | AP-TaiChu-02 | web_fetch 注入→cron→bash 持久后门(WAKEUP App 关闭仍触发) | 4.8 | 7.6 | 3.0 | 15.4 | HIGHcron WAKEUPSCG-TC-03 |
| 5 | AP-TaiChu-08 | exec_os_api→华为账号 Token 窃取→SSO 全系接管 | 4.4 | 8.6 | 2.0 | 15.2 | HIGHOAuth Tokenexec_os_api |
| 6 | AP-TaiChu-05 | 恶意 Skill 植入→system prompt 永久污染(技能市场供应链攻击) | 5.0 | 6.5 | 3.0 | 14.5 | 供应链系统PromptSCG-TC-07 |
| 7 | AP-TaiChu-06 | session-sync 劫持→跨设备 MEMORY 污染(弱端点→全端感染) | 2.1 | 9.0 | 3.0 | 14.1 | 横向传播ALL_DEVICES云同步 |
| 8 | AP-TaiChu-07 | .taichu.json gateway 劫持→LLM Provider 替换→思维链 MITM | 3.75 | 7.2 | 2.8 | 13.8 | LLM供应链CONFIGSCG-TC-01 |
Total = 注入分 + 危害分 + Novelty,其中:注入分 = min(5, accessibility × trigger × 5);危害分 = min(10, 危害等级 × 影响范围 × ∏d_Sinkᵢ × 10);d_Sinkᵢ = max(0, 10 + 逃逸 + 精度 + 先验 + 感知 + 诱导) / 10;Novelty = Breakthrough(0~3) + Rarity(-1~2)。范围:13.8 ~ 17.5,区分度 3.7 符合 v1.5 要求。
TaiChu 可访问的高敏感资产涵盖设备层(通讯录/相册/OAuth Token)、云层(MEMORY.md/session 历史)、系统层(SSH Key/VPN 证书/浏览器密码)。所有 P0 资产均通过零白名单工具(exec_os_api/exec_cli/bash)直接可达,无需额外提权。
| 对比维度 | HermesAgent | SimpleAgent | OpenClaw | TaiChu(本次) |
|---|---|---|---|---|
| 架构复杂度 | 中(单设备云端) | 低(本地单 Agent) | 中(工作区 Agent) | 极高(端云三层) |
| 最高 RiskScore | ~15.x | ~12.x | ~14.x | 17.5 |
| 工具危险等级 | 高(bash/web) | 中 | 高(bash/write) | 极高(+exec_cli/exec_os_api/cron/SubAgent) |
| 持久化机制 | MEMORY.md | 无 | MEMORY.md | MEMORY.md + cron + Skill(三重持久化) |
| 传播范围 | 单设备 | 单设备 | 单设备 | 多端跨设备(5s 传播) |
| 设备 API 访问 | 无 | 无 | 无 | 有(HarmonyOS 系统 API 零白名单) |
| 云→端攻击链 | 无 | 无 | 无 | 有(SubAgent 跨设备下发) |
| SC-GAP 数量 | 5 个 | 3 个 | 4 个 | 7 个 |
| OAuth Token 访问 | 无 | 无 | 无 | 有(华为账号 SSO 全系) |
| 整体危险等级 | 高 | 中 | 高 | 极高 CRITICAL |
① exec_cli/exec_os_api 无白名单(其他 Agent 仅有 bash);② 端云 SubAgent 跨设备下发(TargetRemoteSubagentRunnerFactory);③ session-sync 5s 传播(其他 Agent 无跨设备同步);④ cron + HarmonyOS WAKEUP(App 关闭仍可触发);⑤ 华为账号 OAuth Token 访问(直接接触华为 SSO)。
SCG-TC-02(exec_cli 白名单)、SCG-TC-05(MEMORY.md 写保护)、SCG-TC-07(plugin.json 签名)、SCG-TC-01(bash 过滤)涉及直接 RCE 和持久化路径,在正式部署前必须修复。
| SC-GAP | 核心修复建议 | 实现难度 | 优先级 |
|---|---|---|---|
| SCG-TC-02 exec_cli 无白名单 |
exec_cli 强制 cli_path 白名单(仅允许预注册设备工具路径);args 参数长度/字符限制;执行审计日志 | 低 | P0 立即 |
| SCG-TC-05 核心文件可写 |
MEMORY.md/IDENTITY.md/SOUL.md 写保护(仅允许 append 或专用 API);禁止 write 工具直接覆盖;写入需用户确认 | 中 | P0 立即 |
| SCG-TC-07 plugin.json 可写 |
plugin.json 写保护;.dylib 加载路径白名单验证;代码签名检查;技能安装需用户明确授权 | 中 | P0 立即 |
| SCG-TC-01 bash 无过滤 |
添加危险命令 deny-list(rm -rf/curl/wget/nc 等);高危命令引入用户确认;或限制 bash 在沙箱容器运行 | 中 | P0 立即 |
| SCG-TC-03 cron 无过滤 |
payload.instruction schema 验证;禁止包含 shell 命令关键字;限制 instruction 长度;存储前内容安全 API 审查 | 低 | P1 紧急 |
| SCG-TC-04 SubAgent 无限制 |
SubAgent instruction AI-Based 安全检查;限制跨设备 SubAgent 可调用工具集;端侧接收云端指令需用户确认;指令来源云端签名验证 | 中 | P1 紧急 |
| SCG-TC-06 URLGuard DNS 弱点 |
TLS 握手后二次验证目标 IP;DNS TTL < 60s 域名预警;web_fetch 响应内容 AI 注入检测 | 中 | P1 紧急 |
| 领域 | 修复建议 |
|---|---|
| exec_os_api 白名单 | 实现 API 白名单(仅允许已知安全 API);敏感 API(Token/通讯录/相册)需用户确认弹窗 |
| session-sync 完整性 | 对同步消息添加 HMAC 完整性验证;source device_id 强验证;拒绝来源不明的同步批次 |
| SubAgent 跨设备权限 | 端侧 SubAgent 接收指令时需用户确认;工具继承降权(跨设备 SubAgent 仅允许只读工具) |
| Heavy Runtime 凭据 | secret.yaml 文件系统级读保护(Agent 进程只读,bash 不可读);凭据存入 OS KeyChain |
| MEMORY.md 云同步安全 | 同步前签名验证;支持按设备分段记忆,限制污染传播范围;异常写入(全量覆盖)告警 |
| Skill 内容安全 | SKILL.md 内容签名验证;技能市场恶意检测(AI 审核);发布签名强制要求 |