L0 · AgentCore(WHO — 身份与认知定义)
Agent.md/User.md/Soul.md — 身份认知,皆注入目标且属敏感资产
| Agent.md | Agent 定义(能力/行为约束) | Mutability-* |
| User.md | 用户画像(含 PII) | Mutability-*Sensitive-PersonalInfoInjChannel-Memory |
| Soul.md | 人格/灵魂设定 | Mutability-* |
L1 · 内部组件(Internal Components — 模型 · 配置 · 工作区 · 记忆 · 知识库 · 自进化)
| name / provider / version | 如 GLM-5.1 | — |
| native_role_tokens(5类)枚举 | 原生 role 边界 token,按角色枚举:System / User / Assistant / Tool(Observation) / Segmenter(分隔符);各填该模型实际 token(如 <|user|>)→ NativeRoleToken 攻击关键 | InjChannel-SystemPrompt |
| context_window | 上下文窗口 | — |
PromptTemplate单独·靶心
Entity · 所有注入槽位所在
系统 Prompt 模板,含全部 Source 注入槽;每个槽=一个注入面
| slots[](有序 · 顺序=组装次序) | 支持槽位枚举;每槽标动态性 + 注入通道。动态槽才是注入面 | SlotDynamics-* |
| 1 SystemPrompt | 系统指令主体 | Static |
| 2 ContextFiles | AGENTS.md 等 | Static/DynInjChannel-Memory |
| 3 Memory | 记忆槽 | DynamicInjChannel-Memory |
| 4 ToolCallResult | 工具返回(主注入面) | DynamicInjChannel-SyncToolReturn |
| 5 SkillsGuidance | 技能指导(3rd方可变) | Static |
| 6 DelegateContext | SubAgent 委托 | Dynamic |
| 7 GatewayMessage | 网关消息 | DynamicInjChannel-AsyncBackground |
| 8 ModelRouting | 模型路由(供应链) | Dynamic |
| 9 UserInput | 用户输入(可信) | Dynamic |
WorkflowNEW
工作流定义(静态)· 3 类型
ReAct / PlanAndExecute / Custom;运行产生的上下文不在此(见 L5)
| workflow_type | ReAct / PlanAndExecute / Custom(自实现) | Trigger-* |
| ReAct · AgentLoop(6步)本被测 | 代码实证 LOOP_STEPS:OBSERVING→ASSOCIATING→ASSEMBLING→REASONING→EXECUTING→SAFETY_VALIDATE(+SelfEvolve 后置) | — |
| PlanAndExecute | 先整体规划,再逐步执行(当前代码无) | — |
| attack 关联 | ASSEMBLING=注入入场 · EXECUTING=Sink出场 · SAFETY_VALIDATE=防御点 | InjChannel-Sink- |
AgentConfig
settings.json / .env · 原始配置容器
原始值容器;凭证值本身=资产,其它值喂给 Model/Workspace/PermissionPolicy
| auth_token / api_key | 鉴权凭证(攻击高价值 AP-04) | Sensitive-CredentialAuth-Method-StaticToken |
| model_service_url | 模型服务地址(LLM endpoint)→ 关联 Model | 供应链 |
| workspace_path | 落盘目录 → 关联 Workspace | — |
| sandbox_path / space | 沙箱地址/空间 → 关联 ExecutionSandbox(L6) | Sink-CodeExec 落点 |
| identity_ids | agent / user / account 身份标识 | Sensitive-PersonalInfo |
| security_level | 安全策略级别 → 喂 PermissionPolicy / SecurityChecker | Gap-(级别低=盲区) |
| permission_mode / rules | 权限策略 → 建模在 PermissionPolicy | Perm-* |
PermissionPolicyNEW·权限
权限策略(静态)· 攻击面边界
声明被测「可以做什么」;策略在此声明,运行时由 L4 SecurityChecker 执行
| permission_mode | default / acceptEdits / bypassPermissions / autoEdit | Perm-* |
| grants[]从L0移入 | 逐资源授权(参照真实权限):Tool/Skill/File/Command→perms + Sink动作 | Perm-Tool/File/Action/Collection-Sink-(命令) |
| allow_from_rules[] | 渠道来源白名单(空=全放行 ⚠) | Auth-Type-None |
| dangerous_patterns[] | 危险命令/路径黑名单 → 被 L4 RulesChecker 消费 | Gap-Semantic(绕过) |
本版有实际落盘。path=属性,writable/persisted=标签(拆开)
| path | 路径地址(真属性) | — |
| writable | 可写性 → 用可变性标签 | Mutability-Mutable/Static |
| persisted | 跨会话留存 → 持久性标签(关联 Persist 攻击) | Persistence-CrossSession |
LongTermMemory
Entity · RAG 管线
对话历史+偏好(跨会话);保存/索引/检索三方式各是攻击面。短时记忆不在此(L5)
| storage_method 保存方式 | 向量库 / 文件 / KV(投毒条目存哪) | — |
| index_method 索引方式 | embedding / 关键词 / 图(语义索引可被构造命中) | — |
| retrieval_method 检索方式 | 主要 RAG 语义检索:被投毒条目被检索进上下文 = 注入面 | InjChannel-Memory |
| mutability | 可变性(多为可追加) | Mutability-Appendable |
| persistence | 跨会话(长时记忆本质) | Persistence-CrossSession |
| sensitivity[] | 含偏好/历史等敏感内容 | Sensitive-Communication |
KnowledgeBaseNEW
知识库 · RAG
参考文档/领域知识;与长时记忆类似,也是 RAG 检索注入面
| content_sources | 知识来源(文档/网页/第三方) | Sensitive-* |
| retrieval_method | RAG 检索(投毒知识被检索进上下文) | InjChannel-Memory |
| mutability / persistence | 可变性 / 持久性 | Mutability-*Persistence-CrossSession |
SelfEvolveNEW · opt
自进化(可选)
Agent 自我修改能力;注入可借此写入恶意自定义=持久化高危
| evolve_targets | 可自改对象:skill / memory / prompt | Mutability-Extensible |
| trigger | SelfEvolveEvent(多为主动触发) | Trigger-Select-Proactive |
| write_scope | 能否写入自身定义(Persist 攻击面) | Perm-(关系)Persistence-CrossSession |
L2 · 能力空间(Capabilities — 工具 · 技能 · 插件 · MCP)
返回不可信→贡献注入点到 InjectionSurface
| tool_kind(子类)NEW | CodeExec 开放执行{ShellCLI(bash)→OS沙箱 · CodeInterpreter(Python/JS)→解释器沙箱}:开放动作面=多Sink网关,命令/代码级权限,最高危 | FileIO | Web | MCP-API(带 mcp_server) | FixedFunction | 子类 |
| tool_type | real / mock | — |
| source_trust | 来源可信(序数 Untrusted<Trusted,原 ToolRisk-Input) | SourceTrust-* |
| perception | 感受野(类别:自然语言/代码/二进制,原 ToolRisk-Field) | Perception-* |
| sensitivity[]通用 | 数据敏感性(原 ToolRisk-DATA,升通用·同标资产) | Sensitive-* |
| action_sensitivity[] | 行为敏感(破坏性等,原 ToolRisk-ACT) | ActionSensitivity-* |
| mutability | 可变性 | Mutability-* |
| 返回注入 | 不可信返回 → 贡献注入点 | InjChannel-SyncToolReturn |
| source | Builtin/Trusted/ThirdParty/AgentGenerated(类即标签) | 子类 |
| mutability | 可变性 | Mutability-* |
| source | Builtin/Trusted/ThirdParty/AgentGenerated | 子类 |
| mutability | 可变性 | Mutability-* |
MCPAPINEW
外部 MCP 工具(能力 · Tool 子类)
agent 调的 MCP 工具/API;MCPServer 是它的必备属性,不是独立能力
| mcp_server(必备属性) | 所在服务器 + 端点 + 鉴权;返回不可信→贡献注入点 | Auth-Type-*InjChannel-SyncToolReturn |
| source_trust / perception / mutability | 来源可信 / 感受野 / 可变性 | SourceTrust-/Perception-Mutability-* |
L3 · 入口与调度(Ingress & Dispatch — Channel + Gateway 合并:通道/网关/监听/定时/路由/委托)
Channel
入口通道(TAICHU:仅小艺对话1个·可信)
可信通道(用户对话) vs 不可信源通道(webhook/async);只有后者是注入源
| drive_from | 通道来源实体(用户 / 上游服务 / 定时器) | — |
| activation(激活方式)NEW | 用户消息(可信) / 监听器(webhook→Signal) / 定时任务(cron→Schedule);后两者=异步不可信源 | Trigger-Event-Signal/Schedule |
| auth_type / auth_method | 鉴权;无鉴权 + 监听器 = 上游伪造(AP-08) | Auth-Type-*Gap-GatewayAuth |
| 贡献注入 | 仅不可信源(监听/定时)贡献注入点;用户对话可信不在此。定时任务另涉 Gap-Cron + CronCreate=Sink-Persist | InjChannel-AsyncBackgroundGap-Cron |
Webhook/API;默认无鉴权=核心漏洞(与不可信源 Channel 同质)
| auth_type / auth_method | 默认 None → 上游可伪造(AP-08) | Auth-Type-NoneGap-GatewayAuth |
SessionManager · TaskRouter · EventBus
调度组件
会话/路由/事件分发
| TaskRouter | 任务路由(触发点) | Trigger-* |
| EventBus | 事件总线(信号触发) | Trigger-Event-Signal |
| delegate / MAX_DEPTH | 委托深度限制 | Gap-SubagentPriv |
| source | 技能来源四态(交叉引用 L2) | Perm-(关系) |
L4 · SecurityChecker(GUARD — 安全拦截,在 L5 AgentLoop 的 SAFETY_VALIDATE 步触发,执行 L1 PermissionPolicy 策略)
缺口画像 = 防御侧的"面",对偶于 InjectionSurface(攻击侧的面):
InjectionSurface=攻击能进的点集合;
GapProfile(gaps)=攻击能穿过不被拦的点集合。
一条 AP 成立 = 选个 InjectionSurface 入口 + 沿途全走有效盲区 → Sink → Harm。
⚠️ 覆盖 ≠ 保护:有效盲区 = 未覆盖(Gap·无检查) ∪ 可绕过(覆盖了但 rule/model 检查可被对抗 defeat:正则→混淆/语义伪装 Gap-Semantic,模型→对抗样本)。covered 但可绕过的 hop,攻击仍穿过。只有 covered 且不可绕过(确定性/结构性硬检查)才真拦(→ RAL-3B 风险拒绝)。
SecurityChecker
容器 · 安全能力/缺口画像
SAFETY_VALIDATE 步触发;缺口画像核心
| check_points[] | 检查模态(输入/记忆/工具返回/输出) | CheckPoint-* |
| check_scope | 方向:输入 / 输出 / 双向 | CheckScope-Input/Output/Both |
| action | 命中后动作(仅 Log ≠ 拦截;Pending=挂起交模型决策,决策可被注入操纵) | CheckerAction-Block/Warn/Log/Allow/Pending |
| coverage[] | 做了哪些检查(覆盖=会拦的 hop) | Check-Rule-* / Check-Model-* |
| gaps[]缺口画像 | 检测盲区(绑此实例;攻击穿过处) | Gap-* |
| GuardRail | 模型语义检测(高价值决策点;成本高) | Check-Model-* |
| PatternFilter | 关键词/模式黑名单(前置快速过滤) | Check-Rule-* |
| CheckRule | 正则规则(消费 L1 dangerous_patterns) | Check-Rule-* |
L5 · 运行时上下文 RuntimeContext(EXECUTION — 动态,Workflow 运行产物)
Context
= PromptTemplate 的运行时实例
L1 PromptTemplate(定义) 填入运行时数据的产物;所有注入点内容汇聚组装于此=注入收敛点
| instruct | 当前指令(含用户原始意图) | UserIntent-* |
| filled_slots | PromptTemplate 各槽填充值(动态槽来自注入点) | Affected-ContextInjChannel-(动态槽) |
| assembled_prompt | 最终喂给 LLM 的组装结果 | Affected-Context |
| compression补 | 窗口压缩/摘要:可能截断注入载荷 → RAL P0A 投毒有损 | — |
| prompt_cache | 缓存层(缓存投毒面) | — |
ShortTermMemory
会话历史 · Context 的一个输入
本会话累积;是 Context 装配的输入之一(非并列)。非跨会话
| files / apis / event_results | 本会话累积内容(含工具返回=注入落点) | Affected-Context |
| persistence补 | 仅本会话(对偶长时记忆的 CrossSession) | Persistence-SessionScoped |
L6 · Environment(WORLD — 环境域 · 非纯外部 · 动作落地的世界)
L6 核心维度 = 敌手可达性(Reachability):环境是动作落地处,安全关键不是它有啥属性,而是敌手能否到达。每个环境对象标 Reachable / Conditional / Isolated。
ExecutionSandbox
执行沙箱 · 受控可达
代码/命令执行落点;隔离+权限+工作空间隔离决定爆炸半径
| isolation_level | none / process / container / VM(隔离强度→爆炸半径) | Reachability-* |
| permission_scope | 沙箱内代码权限(网络/文件系统) | Perm-(关系) |
| workspace_isolation | 工作空间是否隔离于敏感区(能否读 .env / 写 AgentCore)= 逃逸面 | Gap-(逃逸) |
InternalEnv · ExternalEnv
内部 / 外部环境
ExternalEnv 是间接注入源头
| InternalEnv | 内部资源/状态(横向移动面) | Reachability-Reachable |
| ExternalEnv | web内容 / 第三方服务 | InjChannel-AsyncBackgroundGap-WebContentReachability-* |
| 依赖 / 来源注册表 | pip install / skill安装(装包时可达) | Sink-DependencyGap-SupplyChainReachability-Conditional |
风险面 · Risk-View(攻击路径建模)
AttackPath 完整结构:
PoisonEntry → [(source₀,sink₀), (source₁,sink₁) … (sourceₘ,sinkₘ)] → Harm
毒入口起、危害止,中间是「源→汇」对的多跳链。PoisonEntry/Source/Sink/Harm 均为已定义实体(此处紧凑引用,不重述定义)。
Affected 在 Sink 内部(Sink 的参数:文件 / 特定枚举值对象),非独立节点。
| user_original_intent | 用户原始意图(AP 起点) | UserIntent-* |
| tactical_intent | 战术意图 | TacticalIntent-* |
| strategic_intent | 战略意图(ATT&CK 对齐) | StrategicIntent-* |
AP 链节点(PoisonEntry → [(Source,Sink)…] → Harm)
InjectionSurface集合·非实体
AgentProfile 上的派生集合
所有挂 InjChannel 的位置汇集;= 候选 PoisonEntry+Source0 清单
| ∑ injection_points | 汇集自工具返回/记忆/提示槽/MCP返回(派生,无独立身份) | InjChannel-* |
InjectionPoint= PoisonEntry+Source0
从 InjectionSurface 选一个
一个注入点 = 该 AP 的毒入口兼链首源;特征决定可利用性
| segment / trust | 段名 + 信任级(如 USER_MEMORY_DATA/High) | InjChannel-* |
| escaping_rules | 字符转义(LF→CRLF…)决定载荷存活 | — |
| token_boundary | 原生 role token 是否被识别 | — |
链中后续 hop 携带(被污染)数据的来源(Source0 已并入注入点)
| source_kind | 工具返回 / 记忆 / 网关消息… | InjChannel-* |
Sink含 Affected
每步·汇 = 动作+工具+参数
诱导的动作;Affected 是其参数(文件/枚举值)
| action | 动作类型(全11) | Sink-* |
| tool | 工具名 | — |
| affected(参数)嵌入 | 除工具名外的参数:文件 / 特定枚举值对象 | Affected-* |
| victim / loss_type | 2维:受害主体(4) × 损失类型(8) | HarmVictim-* / HarmLossType-* |
攻击路径事件(链的边 / 状态转移 · 已是子类)
AttackPathEvent
5 子类 · 类即标签
PoisonEntry→Harm 之间的转移
| InstructTo | 指令传递 | 子类 |
| Inject | 注入(载荷入场) | InjChannel-* |
| Poison | 投毒(写入污染) | 子类 |
| Persist | 持久化(跨会话留存) | Mutability-Appendable |
| LeadToHarm | 导致危害(→ Harm) | Harm-* |