~/.ssh/id_rsa(SSH 私钥)~/.openclaw/config.json(含 TELEGRAM_BOT_TOKEN / OPENAI_API_KEY / ANTHROPIC_API_KEY)~/.aws/credentials(AWS IAM 访问密钥)~/Documents/(~20GB 个人文档、合同、财务记录)| 属性 | Ontology v6.0 映射 | 值 | 证据 |
|---|---|---|---|
agent_id | AgentCore.id | OC0421_WithOfficialCC | — |
agent_type | AgentCore.type | Personal AI Gateway | README.md |
model | AgentCore.model | Claude / GPT-4o(可插拔) | package.json |
channel_count | AgentCore.channels | 20+(统一控制平面) | README.md |
guard_rail | GuardRail | None — SC-GAP-01 | 全代码库未见 |
rules_checker | RulesChecker | allowFrom + tool-policy + hooks-policy + sanitize | 见 Layer 3 |
self_evolve | SelfEvolve | None(exec/write 工具间接实现) | dist/pi-tools-BYoC5bpq.js |
| 文件 | Ontology v6.0 映射 | 注入函数 | 注入顺序 | 攻击意义 |
|---|---|---|---|---|
SOUL.md |
AgentProfile.persona_definition | buildProjectContextSection | order=20 | 覆写 → Agent 人格永久篡改(AP-OC06) |
MEMORY.md |
LongTermMemory.summary_buffer | buildMemoryPromptSection | order=70 最高优先级 | 覆写 → 最高优先级跨会话感染(AP-OC07/10) |
HEARTBEAT.md |
AgentProfile.dynamic_context TRG-EVENT-HEARTBEAT | buildHeartbeatSection(动态) | 每次心跳强制重读 | C2 持久化 → 无用户在线要求(AP-OC01) |
USER.md |
AgentProfile.user_context | buildProjectContextSection | order=40 | 覆写 → 用户信息篡改 |
AGENTS.md |
AgentProfile.subagent_registry | buildProjectContextSection | order=10 | 覆写 → 子代理行为篡改 |
BOOTSTRAP.md |
AgentProfile.bootstrap_prefix | buildBootstrapSection | 首次运行 | 覆写 → 初始化阶段控制 |
| 工具 | Ontology v6.0 映射 | 危险等级 | 默认约束 | 证据 |
|---|---|---|---|---|
exec | ToolSpace.code_executor | CRITICAL | 无 Docker → security="full", ask="off" | dist/exec-defaults-F2zQAtOd.js |
write | ToolSpace.file_writer | HIGH | workspaceOnly 默认 true(可配为 false) | dist/pi-tools-BYoC5bpq.js |
apply_patch | ToolSpace.file_patcher | HIGH | 同上 | dist/pi-tools-BYoC5bpq.js |
message | ToolSpace.channel_messenger | HIGH | 无跨渠道隔离 | dist/system-prompt-BRx_74d7.js |
subagents | ToolSpace.subagent_delegator | HIGH | 继承父 Agent 权限 | dist/system-prompt-BRx_74d7.js |
read | ToolSpace.file_reader | MED | workspaceOnly 默认 true | dist/pi-tools-BYoC5bpq.js |
| 类型 | Ontology v6.0 对象 | 实现 | 证据 |
|---|---|---|---|
| 短期记忆 | ShortTermMemory | 会话内 LLM context window | — |
| 长期记忆 | LongTermMemory | Plugin-based(registerMemoryCapability);可写 MEMORY.md(order=70) | dist/memory-state-KSM4P5jG.js |
| 情节记忆 | EpisodicMemory | 不存在 | — |
| 渠道 | Ontology 映射 | 鉴权机制 | 关键缺陷 | 证据 |
|---|---|---|---|---|
| WhatsApp DM/Group | Channel.instant_messenger | mergeDmAllowFromSources | allowWhenEmpty=true 全放行 | dist/allow-from-ClF_LMu8.js |
| Telegram DM/Group | Channel.instant_messenger | isSenderIdAllowed | 同上 | dist/allow-from-ClF_LMu8.js |
| Slack / Discord | Channel.team_messenger | groupAllowFrom | 同上 | dist/allow-from-ClF_LMu8.js |
| Gmail | Channel.email | allowUnsafeExternalContent | 邮件全文注入,无净化 | dist/dangerous-config-flags-lTz7t-pV.js |
| Webhook | Channel.webhook_receiver | rate limiter(内存) | allowRequestSessionKey=true → session key 泄露 | dist/webhook-memory-guards-0h6_GER-.js |
| WebChat | Channel.web_ui | 设备鉴权(可禁用) | dangerouslyDisableDeviceAuth | dist/dangerous-config-flags-lTz7t-pV.js |
| SC 组件 | 类型 | 覆盖范围 | 默认启用 | 绕过/禁用方式 | 状态 |
|---|---|---|---|---|---|
GuardRail(模型级) |
GuardRail | — | 不存在 | — | SC-GAP-01 |
allowFrom |
RulesChecker | DM + Group 渠道入口 | 需配置(空=全放行) | allowWhenEmpty=true |
SC-GAP-03 |
sanitizeForPromptLiteral |
RulesChecker | 工作区文件 → system prompt | 默认启用 | 仅过滤控制字符,语义注入无效 | SC-GAP-02 |
tool-policy-pipeline |
RulesChecker | 所有工具调用 | 默认启用 | --permission-mode bypassPermissions Perm-ACT-BYPASS-ALL |
可全绕过 |
hooks-policy |
RulesChecker | agent ID 白名单 | 需配置 | 通配符 "*" 全放行 |
配置即绕过 |
webhook rate limiter |
RulesChecker | Webhook 入口 | 120/min | 仅内存,重启清零 | 持久性弱 |
| 触发机制 | Ontology 映射 | 攻击意义 | 证据 |
|---|---|---|---|
| 心跳轮询(定时) | TRG-EVENT-HEARTBEAT(ORP-OC-01) | DYNAMIC_CONTEXT_FILE_BASENAMES 强制重读 HEARTBEAT.md → C2 持久化(AP-OC01) | dist/heartbeat-wake-B8UNwbeh.js |
| 用户消息(直接) | Trigger.user_message | 标准 DM/Group 消息触发(AP-OC02/03/06/09) | dist/message-hook-mappers-DZ_jp2sF.js |
| Webhook(HTTP POST) | Trigger.webhook(T-AUTO=1.5) | T-AUTO 无需用户在线;allowRequestSessionKey → session key 泄露(AP-OC05) | dist/monitor.webhook-DikDNsr1.js |
| Cron 调度 | Trigger.schedule | schedule.kind={at/every/cron} → croner 库 | dist/schedule-CfI3h5dr.js |
| Bootstrap 模式 | Trigger.bootstrap | BOOTSTRAP.md 存在 → 首次运行特殊前缀 | dist/bootstrap-prompt-4ZAPcOdz.js |
| 配置项 | 危险含义 | 对应 AP | 证据 |
|---|---|---|---|
hooks.gmail.allowUnsafeExternalContent=true | Gmail 邮件全文注入,无净化 | AP-OC04 | dist/dangerous-config-flags-lTz7t-pV.js |
hooks.allowRequestSessionKey=true | Webhook 响应包含 session key | AP-OC05 | dist/dangerous-config-flags-lTz7t-pV.js |
browser.ssrfPolicy.dangerouslyAllowPrivateNetwork=true | 允许访问私有网络 SSRF | AP-OC09 | dist/dangerous-config-flags-lTz7t-pV.js |
tools.fs.workspaceOnly=false | 文件系统工具可操作工作区外 | AP-OC03 | dist/dangerous-config-flags-lTz7t-pV.js |
| Plugin 供应链(npm) | registerMemoryCapability 无签名验证 → LongTermMemory 投毒 | AP-OC07 | dist/pi-tools-BYoC5bpq.js |
| MCP 服务器接入 | MCPToolResult 未经 sanitize → ToolResult 注入 | AP-OC10 | dist/pi-tools-BYoC5bpq.js |
| 属性 | 有 Docker | 无 Docker | bypassPermissions 激活后 |
|---|---|---|---|
| exec security | security="deny" | security="full" | 同 full,pipeline 清空 |
| exec ask | ask="confirm" | ask="off"(无确认) | ask="off"(永久) |
| tool-policy-pipeline | 有效 | 有效 | 整体跳过 |
| 修复项 | 状态 | 意义 |
|---|---|---|
| enforceOwnerForCommands 绕过(#69774) | v2026.4.21 已修 | — |
| gateway websocket broadcast scope-gating | v2026.4.21 已修 | WebSocket 广播横向传播面关闭 |
| MINIMAX_API_HOST 工作区 env 注入 | 已修 | — |
| OPENCLAW_* 密钥阻断 | 已修 | — |
| message 工具多渠道无隔离 | 未修复(v2 残留) | AP-OC02 仍有效 |
| allowWhenEmpty 开放默认值 | 未修复(v2 残留) | AP-OC01/02/03/06/09 前提 |
| bypassPermissions 模式 | 设计有意(调试用) | AP-OC08 核心向量 |
--permission-mode bypassPermissions。效果:tool-policy-pipeline 整体跳过,所有工具调用无需确认。AP-OC08 利用此机制实现链式权限提升(chained on AP-OC03,修正后 RiskScore 10.0)。归属:TAG_SYSTEM v1.8 → Perm- 权限族。