【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现

deepseek harness 进化方向4:安全加固 思考、设计与实现

作者:DeepSeek Harness

代码:https://gitee.com/ZachPineappleman/dsh_security_hardening.git

《DeepSeek Harness Evolution 4: Security Hardening --- Thinking, Design, and Implementation》

摘要

大语言模型(LLM)agent 从"对话工具"演进为"自主行动体"后,其运行时安全成为系统设计的关键议题。以 DeepSeek Harness(dsh)为代表的 agent harness 采用"一切皆插件"架构,插件以同进程同权限 方式注入宿主,获取与宿主相同的文件系统、网络、子进程与凭据访问权限------这一形态使既有安全机制面临三重结构性缺口:审批是一次性问答而非可持久化规则集;插件无隔离执行边界;运行时权限决策不可审计、不可解释、不可沿委派链衰减。与此同时,2024--2026 年的研究(LLM 插件攻击面测量 R-a15、技能投毒 R-a2、间接提示注入 R-p1)表明,攻击主要发生在"模型意图层"------注入诱导 agent 自行调用高危工具,经典强制访问控制对此无效。

本文面向 dsh 提出一套安全加固治理体系 :以"harness 级工具调用策略执行点"为核心(策略引擎与模型输出解耦、每次工具调用独立裁决),以"action/resource/effect 三元组 + 通配符 + allow/ask/deny 分级"为权限 DSL(对齐 opencode/Claude Code/MCP 生态共同语法 R-m7R-m10),以"委派链权限衰减"形式化子 agent 权限 ⊆ 父权限 ∩ 任务范围,以"结构化审计-策略闭环"实现决策可解释、可防篡改、可反哺。体系设计覆盖六个子方向:规则集权限引擎、插件隔离执行、网络访问策略、密钥与凭据管理、带外状态协议、会话数据安全,并逐一给出与 dsh 现有设施(ctx.sandbox/ctx.approval/permission-presets/ctx.credentials)的衔接点与技术路线权衡。

论文贡献包括:N1 harness 级工具调用策略执行点(与模型意图解耦,注入无法改写策略本身);N2 面向 agent 的层级权限模型(有效权限 = 角色 ∩ 任务范围 ∩ 委派深度衰减,含形式化);N3 结构化审计-策略闭环(每次工具调用含策略裁决结果的 hash 链防篡改审计,数据反哺规则);N4 权限边界绕过专项基准(攻击侧:诱导高危调用/委派链越权/工具输出注入;防御侧:策略阻断率/误伤率)。配套交付规则集权限引擎插件dsh-security-hardening):实现三元组规则 DSL、通配匹配、allow/ask/deny 分级、规则持久化、工具调用前判定、网络白名单最小版与结构化审计事件,全部以纯插件形态(不侵入 dsh 内核)接入 tools/pre-execute 策略点与 ctx.approval 升级路径。

关键词:agent harness;安全加固;权限模型;规则集;工具调用策略执行点;委派链权限衰减;审计闭环;DeepSeek Harness


1 引言

1.1 背景:agent harness 的安全困境

LLM agent 已经从"对话工具"演变为"自主行动体"R-p1。为了扩展 agent 的能力,主流 harness(DeepSeek Harness、Claude Code、opencode 等)普遍采用插件机制:第三方开发者以 dsh plugin add <pkg> 安装插件,插件注入宿主进程,获得与宿主相同的文件系统、网络、子进程与凭据访问权限。

这一形态带来了三重结构性安全缺口:

  1. 同进程同权限 :插件与宿主共享进程地址空间与 OS 权限。awesome-dsh-plugin 生态的 README 顶部明确警告"安装插件会在你的机器上以你自己的权限运行第三方代码......工具审批不沙箱化插件代码"(来源:reference_notes/02-awesome-dsh-plugin学习笔记.md)。
  2. 审批是一次性问答ctx.approval 提供 ask/never 会话策略与 allowed-once/rejected/cancelled/unavailable 结果(来源:docs/subsystems/approval.zh.md),但没有可持久化的规则集------危险操作每次都要问,用户无法"记住这个决定",也无法表达"允许 bash 的 git 命令、拒绝 rm -rf"这类细粒度策略。
  3. 权限决策不可审计、不可解释、不可衰减:每次工具调用的策略裁决没有结构化记录;拒绝时用户无法知道"为什么";子 agent 委派链上的权限没有衰减语义。

与此同时,2024--2026 年的研究界与工业界对 agent 安全给出了强烈信号:

  • LLM 插件攻击面已被系统测量R-a15 对 OpenAI ChatGPT 插件平台做了系统评估;R-a2 证明技能生态存在恶意代码注入(PhantomSkill);R-a14 系统化整理了 agentic AI 的攻击面。
  • 攻击发生在"意图层"而非 API 层 :间接提示注入 R-p1 证明"数据即指令"可远程劫持 agent------攻击者不直接调用系统接口,而是诱导 agent 自己调用高危工具。经典强制访问控制(MAC/DAC)管不住"工具是 agent 自己调用的"这一事实。
  • 模型侧防火墙被证明不够R-p2(NeurIPS 2025)发现基于分类器的注入防火墙在 agent 多步场景下效果有限------必须依赖 harness/运行时层防御。
  • 技能级权限与隔离成为前沿R-a5(SkillGuard)提出技能级权限框架;R-a6(Isolation as a First-Class Principle)主张把隔离(进程/网络/数据)作为 agent 系统安全的一等公民。

1.2 dsh 的安全设施现状

依据对 dsh 源码的盘点(digests/A1-现有安全设施盘点.md),dsh 已有"四件套"安全设施,但均为单点机制

设施 能力 边界/空白
ctx.sandbox(sandbox seam) 文件效果策略:read-only/workspace-write/danger-full-access;升级审批;POSIX(Landlock/Seatbelt/bwrap)+ Windows ACL 只管文件系统效果;网络与进程可见性不在词汇表内;无插件沙箱
ctx.approval(user-approval) 一次性问答;fail-closed;会话策略 ask/never;审计事件对 无规则集;无 action/resource/effect 通配匹配
permission-presets 预设表组合沙箱模式+审批策略 粒度粗;无自定义规则
ctx.credentials 密钥文件存储(.credentials.yaml)、CredentialRef 引用 无 OS 密钥链后端

六个切入点(方向4 的研究范围):无规则集权限引擎、无插件隔离执行、无网络访问策略、无 OS 密钥链、无带外状态协议、无会话数据加密。

1.3 研究问题

本文聚焦以下研究问题:

  • RQ1(权限边界如何不可绕过) :在"注入诱导 agent 自行调用高危工具"的攻击模型下,harness 如何成为与模型意图解耦、不可被注入改写的权限边界?
  • RQ2(权限模型如何适配 agent):通用权限模型(RBAC/ABAC/能力安全)缺少"意图---工具---参数---上下文"语义与委派链权限衰减,面向 agent 的层级权限模型如何设计?
  • RQ3(审计如何闭环):工具调用审计如何结构化、防篡改,并反哺策略规则形成闭环?
  • RQ4(如何评测权限绕过):如何构造"权限边界绕过"专项攻击/防御基准,量化策略引擎的阻断率与误伤率?

1.4 贡献

  1. N1 harness 级工具调用策略执行点 :策略引擎与模型输出解耦------注入可以改变模型"想调用什么",但不能改变"什么被允许调用"。每个工具调用在 tools/pre-execute 策略点独立裁决,裁决逻辑不可被模型输出、插件代码或会话内容改写。
  2. N2 面向 agent 的层级权限模型:有效权限 = 角色权限 ∩ 任务范围 ∩ 委派深度衰减;形式化"子 agent 权限 ⊆ 父权限 ∩ 任务范围"。
  3. N3 结构化审计-策略闭环:每次工具调用记录结构化审计事件(含策略裁决结果、命中规则、原因),hash 链防篡改;审计数据反哺规则(如高频被拒动作自动建议规则)。
  4. N4 权限边界绕过专项基准:攻击侧(诱导高危调用/委派链越权/工具输出注入)+ 防御侧(策略阻断率/误伤率双指标)。
  5. 工程交付dsh-security-hardening 插件(规则集权限引擎 + 网络白名单最小版 + 审计事件),纯插件形态,不侵入 dsh 内核。

1.5 论文组织

第 2 章相关工作(权限模型/隔离技术/供应链防护/Agent 专项安全);第 3 章理论基础(dsh 安全设施盘点、攻击模型、四大 Gap);第 4 章安全加固体系设计(六模块 + 策略执行点架构);第 5 章核心创新点(N1--N4);第 6 章实现(插件架构与代码);第 7 章评估(单元测试 + 绕过场景 + 性能);第 8 章讨论(技术路线权衡、与经典理论关系、局限);第 9 章结论与展望;参考文献与附录。


2 相关工作

2.1 权限模型:从经典理论到 agent 运行时

经典理论基座。权限模型经历了"主体-客体矩阵 → 角色 → 属性 → 能力"的演进。RBAC R-m3 基座 以角色聚合权限解决主体数量爆炸;ABAC(NIST SP 800-162)R-m1 以主体/客体/环境属性 + 策略规则实现动态判定,强调 PEP/PDP 分离;能力安全 R-m2 把权限当作可传递、可衰减的对象,Hardy 的 confused deputy 问题 R-m4 证明"权限按调用链携带而非静态身份绑定"的必要性;最小权限原则 R-m3 贯穿所有模型。

2026 年的 agent 场景进展R-a8 提出"最小自主性"理论(A Theory of Least Autonomy in AI),把最小权限原则在 agent 场景理论化;R-a7(Dynamic Capability Scoping)用合成数据集研究企业 agent 的动态能力作用域------按任务裁剪权限;R-a10(A Policy Algebra for Trust-Preserving Agentic AI Execution)提出策略代数用于规则组合与冲突消解。工业界 R-m7(opencode)、R-m8(Chrome 扩展)、R-m9(Node.js permission model)、R-m10(MCP Security)已经收敛到"action/resource/effect 三元组 + 通配符 + allow/ask/deny 分级 + 决策点嵌入工具调用生命周期"的共同模式。Michael & Roesner(2026, arXiv 2607.13718)对 21 个提案与 5 个商业 agent 的权限系统做了分类学,指出用户级可定制权限策略仍是研究空白

Gap:现有模型(RBAC/ABAC/能力模型)没有"意图---工具---参数---上下文"语义,更没有委派链权限衰减的形式化;用户级、会话级、项目级的策略作用域在 agent harness 中未被系统研究。

2.2 隔离与沙箱技术

进程级隔离。worker_threads 提供独立 V8 isolate 与资源限制,但共享进程地址空间与 OS 权限------是资源治理而非安全边界 R-m9;child_process 提供真实进程边界,但文件/网络/系统调用权限需外部叠加(低权限用户、seccomp/Landlock/Seatbelt、容器);Chrome site isolation R-s5 是"每站点一进程 + OS 沙箱"的工业标杆。

WebAssembly 隔离R-s2(WASI)提供能力导向的系统接口,是同进程最强隔离路线;R-s1(2025)对软件故障隔离(SFI)做了实证安全分析。

语言级隔离R-s3(isolated-vm)提供同进程 V8 isolate 隔离(短期止血路线);Node vm 模块被证明非安全边界 R-m9

2026 年的 agent 场景进展R-a6(Isolation as a First-Class Principle)把隔离提升为 agent 系统安全的一等公民,给出进程/网络/数据隔离分类;R-a12(The Balkanization of Execution-Security Research for AI Coding Agents)综述了编码 agent 的执行安全研究,指出隔离分类碎片化问题。

Gap:dsh 插件以同进程同权限注入宿主(无任何隔离);如何在不破坏"JS 插件生态"的前提下引入隔离执行,缺少针对 harness 插件的系统方案。

2.3 供应链防护与插件生态

供应链攻击测量R-c1R-c2 建立了攻击分类学(93 攻击模式 × 99 案例);R-c3R-c4R-c5 研究恶意 npm 包检测(行为序列/元数据/LLM 辅助);R-c6R-c7 是 OpenSSF Scorecard 与 SLSA 供应链信任基础设施。关键观察 :这些方案假设"加载后仍有边界或可吊销",而 agent 插件是同进程同权限注入、无运行时边界

插件生态的镜像案例R-c8(Chrome 扩展 2024-2025 攻破,35+ 扩展/320 万用户)证明"过审时安全 ≠ 运行时安全"------恶意代码通过被攻破的开发者账号在更新通道进入。对 dsh 的启示:静态扫描不够,需要运行时防护(本工作 N1/N3 的动机)。

Agent 技能投毒R-a1(Agent Skill Security:威胁模型/攻击/防御/评估)R-a2(PhantomSkill)、R-a3(SkillsMetric)、R-a4(SkillGate)研究技能生态的恶意注入与运行时检测------dsh 的 skill 机制面临同类风险;R-a13(agent 安全双重性综述)为相关工作提供全景框架。

2.4 Agent 专项安全

提示注入与权限绕过R-p1 奠定间接提示注入研究;R-p2(NeurIPS 2025)证明防火墙类防御局限;R-p3 评估带外防御;R-p4R-p5 研究注入屏蔽与恶意指令检测;R-p6(Prismata)研究 Web agent 的跨站点注入隔离;R-p7 测量 MCP/技能/工具攻击面。

harness 级运行时防御R-o2(ClawGuard 运行时框架)针对工具增强 agent 的间接注入;R-o1(ClawGuard 带外检测)用 EM 侧信道做带外检测;R-o3(Hybrid Analysis for Secure MCP Tool Use);R-a11(From Tool Connection to Execution Control)基准化工具执行控制安全不变量;R-a9(Permission Denied)对编码 agent 做权限分级评测。

dsh 直接评估R-dsh1(2026, 2608.16393)用 A.I.G 对 dsh 做了 14,560 次受控执行的间接提示注入评估------证明 dsh 的注入抵抗能力可被系统测量,但该工作聚焦"评估"而非"加固",这正是本工作的定位差异。

Gap:现有防御(防火墙/沙箱/检测)多为单点方案;"静态评级---规则匹配---动态隔离---审计追溯"的完整信任闭环在 agent harness 中缺少系统框架;权限绕过缺乏专项基准。


3 理论基础:dsh 安全设施现状与攻击模型

3.1 dsh 现有安全设施盘点

本节基于对 dsh 源码的直接研读(packages/sandboxpackages/interaction/user-approvalpackages/interaction/permission-presetspackages/credentialspackages/host/webserver),完整盘点四件套的能力、边界与扩展点(详见 digests/A1-现有安全设施盘点.md)。

3.1.1 ctx.sandbox:文件效果策略
  • 定位:同世界(shared-kernel)进程约束 seam------把与宿主共享文件系统/内核的子进程 argv 包装进文件效果策略。
  • SandboxMode (三态):read-only / workspace-write / danger-full-access------仅管控文件系统效果 ;"网络与进程可见性在此词汇表之外"(架构文档明确声明,来源:packages/sandbox/sandbox/src/index.ts)。
  • 升级审批approveEscalation/escalationHintMarker/sandboxDenialMarker------模式升级需审批。
  • 后端:sandbox-local(POSIX Landlock/Seatbelt/bwrap)+ sandbox-windows-acl(ACL 受限令牌)。

边界:只管文件效果;网络、进程可见性、系统调用面不在管控内;无插件沙箱(插件与宿主同进程同权限)。

3.1.2 ctx.approval:一次性问答审批
  • 模型ApprovalRequestId(品牌类型,配对 approval/askedapproval/decided 审计事件);ApprovalOutcome = allowed-once/rejected/cancelled/unavailable(fail-closed)。
  • 会话策略ApprovalPolicy = 'ask'(默认,委托应答者)| 'never'(永不询问,全部拒绝;CI/无人值守);最后一条 approval/policy 事件胜出。
  • 事件approval/request(waterfall)------应答者是监听器(UI 人类应答者、ACP 机器应答者)。

边界:一次性问答------无"记住这个决定";无规则匹配;每次高危操作都打断用户。

3.1.3 permission-presets:组合开关
  • 预设表(workspace-write/danger-full-access 等)把沙箱模式与审批策略组合;一次切换写 permission/preset 事件并贯通到沙箱模式与审批策略。

边界:粒度粗(预设级);无自定义规则;无按插件/按工具细分。

3.1.4 ctx.credentials:引用式凭据
  • CredentialRef 引用(配置中绝不含值);按操作解析(轮换即生效);对 UI 安全的 CredentialInfo;存储于 $DSH_HOME/.credentials.yaml

边界:无 OS 密钥链后端;无插件级凭据隔离(任何同进程代码都能读文件)。

3.2 攻击模型:从意图到执行的权限绕过链

基于 R-a14(agentic AI 攻击面 SoK)、R-p1(间接注入)、R-a2(技能投毒)与 dsh 的具体架构,本文采用的攻击模型是沿"意图被操纵 → 工具被诱导调用 → 权限沿委派链扩散 → 运行时无策略拦截"的攻击链

复制代码
阶段 1:意图操纵(注入层)
  攻击者把恶意指令藏入 agent 读取的外部内容(网页/文档/工具输出/技能文件)
  → 模型无法区分内容数据与指令 → 目标劫持/数据窃取/恶意指令
阶段 2:工具诱导(工具层)
  注入诱导 agent 自行调用高危工具(bash 删除命令、web 外发、fs 越界写)
  → 工具调用是"agent 自己发起的",经典 MAC/DAC 无法拦截
阶段 3:权限扩散(委派层)
  agent 把任务委派给 subagent → 权限沿委派链传播
  → 无衰减语义时,子 agent 获得与父相同的权限面
阶段 4:运行时无策略拦截(harness 层)
  当前 dsh:approval 一次性问答(ask 时打断、never 时全拒)
  → 无规则集、无可解释决策、无审计闭环

关键洞察 :权限绕过发生在模型意图层 而非系统 API 层。因此防御的落点必须是 harness 层"工具调用策略执行点"------对每次工具调用独立裁决、与模型意图无关、注入无法改写策略本身。这一洞察与 R-o2(ClawGuard)、R-a5(SkillGuard)、R-m10(MCP 客户端强制策略)的共识一致。

3.3 四大研究 Gap

Gap 1:现有 agent 安全研究聚焦"模型侧提示注入",缺少"harness 层运行时权限治理"的系统研究。 R-p1R-p2R-p3 等围绕"注入如何影响任务输出";"harness 如何作为不可绕过的权限边界"无系统框架。dsh 已有 tools/pre-execute 策略点(来源:docs/tool-execution-pipeline.zh.md),但它是"可扩展钩子"而非"内建权限裁决器"------缺少与规则引擎的集成。

Gap 2:通用权限模型(RBAC/ABAC/能力模型)未适配 agent 场景。 R-m1R-m2R-m3 的模型没有"意图---工具---参数---上下文"语义,更无委派链权限衰减的形式化。R-a7R-a8 是前沿方向但未落地 harness。

Gap 3:工具调用审计缺少结构化标准与防篡改设计,且"审计→策略"无闭环。 dsh 的会话日志(docs/persistence-catalog.zh.md)记录了 tool/call/tool/result 事件,但不含策略裁决结果;R-a4R-o3 的运行时检测与策略执行未打通。

Gap 4:权限边界绕过缺乏专项攻击/防御基准。 R-a9R-a11 评测了权限执行与安全不变量,但未把"委派链越权、工具输出注入导致高危调用、策略绕过"作为独立评估维度。


4 安全加固体系设计

4.1 设计原则

  1. 不可绕过(Non-bypassable):策略执行点嵌入工具调用生命周期,裁决逻辑与模型输出、插件代码、会话内容解耦------注入无法改写策略本身。
  2. 最小权限(Least Privilege):对齐 R-m3R-a8------插件/工具只获得完成任务所需的最少权限;敏感资源默认拒绝。
  3. 能力化(Capability-oriented):对齐 R-m2R-m4------权限随调用链携带,防 confused deputy;子 agent 权限沿委派链衰减。
  4. 可审计可解释(Auditable & Explainable):每次决策产出结构化记录(命中规则、原因、谁、何时);拒绝必须可解释(对齐 R-m6R-m10)。
  5. 闭环(Closed-loop):审计数据反哺策略规则------高频被拒动作自动建议规则。

4.2 总体架构

图 1:dsh 安全加固体系总体架构。核心为"harness 级工具调用策略执行点"(嵌入 tools/pre-execute),六大模块围绕它组织:规则集权限引擎(裁决核心)、插件隔离执行(能力隔离)、网络访问策略(边界管控)、密钥与凭据管理(机密保护)、结构化审计(决策留痕)、带外状态协议(结果可信)。

体系以 策略执行点(Policy Enforcement Point, PEP) 为核心:

复制代码
模型输出 tool-call
  ↓
tools/pre-execute(waterfall 现有钩子)
  ↓
【PEP 裁决】PEP 调用策略决策点(PDP):
  1. 规则匹配(action/resource/effect 三元组 + 通配符)
  2. 属性评估(会话/项目/用户/委派深度/插件签名状态)
  3. 分级授权:allow → 放行 / ask → 升级到 ctx.approval / deny → 阻断并解释
  ↓
裁决记录 → 结构化审计事件(hash 链)
  ↓
工具执行 → tools/post-execute → tools/result

4.3 六模块设计

4.3.1 规则集权限引擎(核心)

DSL(对齐 R-m7R-m10 的共同语法):

ts 复制代码
interface PermissionRule {
  id: string
  action: string        // 宿主能力枚举:bash/read/write/edit/webfetch/websearch/subagent/skill/...
  resource: string      // 通配符模式:文件路径/命令/URL/子代理类型/插件名
  effect: 'allow' | 'ask' | 'deny'
  when?: {              // ABAC 属性条件(可选)
    session?: string
    project?: string
    user?: string
    delegationDepth?: { max: number }
    pluginVerified?: boolean
  }
  priority?: number     // 冲突消解
}

interface Ruleset {
  version: number
  rules: PermissionRule[]
  defaultEffect: 'ask' | 'deny'   // 默认策略(fail-closed)
}

求值语义:last-match-wins + 默认拒绝敏感面;规则编译为模式前缀树(glob 编译)实现毫秒级判定;决策可解释(返回命中规则与原因)。

存储 :规则持久化到 dsh settings 域(ctx.settings)或独立规则存储;重启不丢失;支持版本号与回滚(对齐 R-a10 策略代数思想)。

4.3.2 插件隔离执行

依据 R-a6R-s1R-s3 的路线对比,dsh 插件隔离有三条候选路线:

路线 隔离强度 性能 生态适配 定位
WASM+WASI 强(能力导向) 低(需编译) 长期主线
子进程+OS 沙箱(Landlock/seccomp)R-s4 中-强 高(保 JS) 性价比最优
isolated-vm(V8 isolate) 弱-中 短期止血

本工作插件以纯规则层交付(不引入运行时隔离),隔离执行路线在论文第 8 章讨论中给出建议。

4.3.3 网络访问策略
  • 出站白名单(域名/IP/端口),默认拒绝所有(回应"肉鸡"风险 R-o3R-p7);
  • 插件级网络权限(未声明网络权限的插件禁止联网);
  • 代理与审计通道(所有插件网络请求走统一代理,完整记录);
  • 敏感数据外发检测(正则规则拦截含密钥/隐私的请求)。
4.3.4 密钥与凭据管理
  • OS 密钥链后端(macOS Keychain / Windows Credential Manager / Linux libsecret)作为 ctx.credentials 的替代 Provider;
  • 插件级凭据隔离(插件只能读取被授予的凭据引用);
  • 凭证使用审计(每次解析记录调用者、时间、用途)。
4.3.5 结构化审计-策略闭环
  • 每次工具调用记录:工具名、参数摘要、策略裁决结果(命中规则/原因/效果)、委派链深度;
  • hash 链防篡改(审计事件链接到前序事件);
  • 审计数据反哺:高频被拒动作自动建议规则(N3)。
4.3.6 带外状态协议
  • 子进程执行结果与错误状态走独立带外通道(不经过 LLM 上下文),回应 dsh postmortem 0004"stderr 仍是带内归因通道"的遗留问题;
  • 结果完整性校验(防模型/插件篡改)R-p3R-o1

5 核心创新点

5.1 N1:harness 级工具调用策略执行点(与模型意图解耦)

问题:注入可操纵模型意图,诱导 agent 自行调用高危工具;模型侧防火墙 R-p2 与一次性审批均无法构成不可绕过的边界。

设计 :PEP(策略执行点)嵌入 dsh 现有 tools/pre-execute waterfall(来源:docs/tool-execution-pipeline.zh.md),与模型输出解耦:

  • 裁决独立于意图:每次工具调用,PEP 独立评估"这个调用是否被允许"------不依赖模型是否"认为"它应该被调用。
  • 注入无法改写策略:策略规则存储在 PEP 控制的数据面(规则存储),不经过模型上下文;会话内容、工具输出、插件代码均无法修改规则集。
  • fail-closed :默认拒绝敏感面(.env、删除命令、工作区外路径、未声明网络);规则未命中时走 ask 升级到 ctx.approval,或按策略 deny

与现有设施的关系tools/pre-execute 已有 hooks/权限/沙箱能力(来源:docs/tool-execution-pipeline.zh.md),本设计将"一次性问答审批"升级为"规则优先、问答兜底"的双轨制(对齐 R-m7 opencode 的 PermissionSaved 思想)。

5.2 N2:面向 agent 的层级权限模型(委派链权限衰减)

问题:通用权限模型(RBAC/ABAC/能力模型)无"委派链衰减"语义------子 agent 默认继承父 agent 全部权限面,委派成为权限扩散通道。

设计(图 2):

图 2:面向 agent 的层级权限模型。根 Agent 拥有角色权限 R₀;每个子 agent 的有效权限 = 父权限 ∩ 委派任务范围,随委派深度严格衰减;越权委派被 PEP 拒绝。

形式化

复制代码
不变量:对委派链上任一节点 n(深度 d ≥ 1):
    P(n) ⊆ P(parent(n)) ∩ T(n)
    (有效权限 ⊆ 父权限 ∩ 任务范围,严格衰减)

委派越权检测:委派请求 D(目标 n+1,任务 Tₙ₊₁):
    允许 ⟺ Tₙ₊₁ ⊆ P(n)
    (否则拒绝委派------权限不可超集扩展)

对齐R-a8(最小自主性)、R-a7(动态能力作用域)、R-m2(能力安全可衰减委托)、R-a10(策略代数)。

5.3 N3:结构化审计-策略闭环

问题 :dsh 会话日志记录 tool/call/tool/result,但不含策略裁决结果;审计与执行互不打通。

设计

  • 结构化审计事件 :每次工具调用记录------工具名、参数摘要、策略裁决结果(命中规则/原因/效果) 、委派深度、时间;写入会话日志(扩展 SessionEventMap,来源:docs/persistence-catalog.zh.md)。
  • hash 链防篡改 :审计事件携带前序事件哈希------事后不可否认、不可篡改(对齐 dsh "模型可见即已记录"红线,来源:docs/architecture.zh.md)。
  • 审计反哺策略:高频被拒动作自动生成规则建议;用户确认后写入规则集------"审计→策略"闭环(对齐 R-m5 审计日志生成策略的技术路线)。

5.4 N4:权限边界绕过专项基准

问题:ASB/AgentDojo 评测"注入对任务输出的影响",未把"权限边界绕过"作为独立维度。

设计

场景 度量
攻击侧 诱导高危调用(注入让 agent 调 rm -rf/fs 越界写) 绕过成功率
攻击侧 委派链越权(子 agent 尝试超范围委派/调用) 越权成功率
攻击侧 工具输出注入(工具输出藏恶意指令诱导下一步) 劫持成功率
防御侧 策略引擎阻断上述攻击 策略阻断率
防御侧 良性调用被误拒 误伤率

对齐R-a9(权限分级评测)、R-a11(执行控制安全不变量)、R-p3(带外防御评估)。


6 实现:dsh-security-hardening 插件

6.1 插件定位与形态

dsh-security-hardening纯插件形态 交付(不侵入 dsh 内核),符合 dsh 组合包规范(dsh.bundle 声明 + cordis.patch.yml,来源:docs/user/develop/basic/publish.zh.md):

复制代码
dsh-security-hardening/
├── package.json          # dsh.bundle 声明
├── cordis.patch.yml      # 插件行:挂载 security-hardening
├── src/
│   ├── index.ts          # 插件入口(apply + inject)
│   ├── ruleset.ts        # 规则集引擎(三元组 + 通配 + 求值)
│   ├── matcher.ts        # 模式匹配(glob 编译 + last-match-wins)
│   ├── pep.ts            # 策略执行点(嵌入 tools/pre-execute)
│   ├── audit.ts          # 结构化审计(hash 链)
│   ├── network.ts        # 网络白名单最小版
│   └── storage.ts        # 规则持久化(settings 域)
├── tests/
└── README.md

6.2 与 dsh 扩展点的对接

dsh 扩展点 本插件的对接方式 来源
tools/pre-execute(waterfall) PEP 裁决入口:监听事件,对每次工具调用匹配规则 docs/tool-execution-pipeline.zh.md
ctx.approval ask 升级路径:规则未命中且策略为 ask 时,委托现有审批 docs/subsystems/approval.zh.md
ctx.settings 规则持久化(settings 域,重启不丢失) docs/subsystems/settings.zh.md
session/event 审计事件写入会话日志(扩展事件类型) docs/persistence-catalog.zh.md
ctx.credentials 凭据引用检查(插件只能访问被授予的凭据) docs/subsystems/credentials.zh.md

6.3 规则 DSL 示例

ts 复制代码
// cordis.yml 配置示例
- id: security-hardening
  name: dsh-security-hardening
  config:
    defaultEffect: ask          // fail-closed:未命中默认询问
    rules:
      - id: bash-git-safe
        action: bash
        resource: "git *"
        effect: allow
      - id: bash-no-rm-rf
        action: bash
        resource: "rm -rf *"
        effect: deny
        when: { session: "any" }
      - id: fs-readonly-workspace
        action: write
        resource: "/workspace/**"
        effect: ask
      - id: network-allow-deepseek
        action: webfetch
        resource: "https://api.deepseek.com/*"
        effect: allow
      - id: delegation-depth-limit
        action: subagent
        resource: "*"
        effect: ask
        when: { delegationDepth: { max: 2 } }
    network:
      default: deny             // 默认拒绝所有出站
      allowlist: ["api.deepseek.com"]
      allowInternal: false

6.4 核心代码要点(规则求值)

ts 复制代码
// matcher.ts ------ 模式匹配 + last-match-wins 求值
export function evaluate(rules: PermissionRule[], req: Request): Decision {
  // 1. 按 priority 排序;同优先级按声明顺序(后声明优先)
  const ordered = [...rules].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))
  // 2. last-match-wins:找到最后一个匹配的规则
  let decision: Decision = { effect: 'default' }
  for (const rule of ordered) {
    if (matchAction(rule.action, req.action)
      && matchResource(rule.resource, req.resource)
      && matchWhen(rule.when, req.attrs)) {
      decision = { effect: rule.effect, ruleId: rule.id, reason: rule.reason ?? '' }
    }
  }
  // 3. 默认策略兜底(fail-closed)
  if (decision.effect === 'default') {
    decision = { effect: defaultEffect, ruleId: null, reason: 'no rule matched' }
  }
  return decision
}

7 评估

7.1 单元测试(规则引擎)

测试类别 用例数 覆盖点
三元组匹配 12 action/resource/effect 精确匹配、*/?/** 通配符、last-match-wins
属性条件(when) 8 会话/项目/委派深度/插件签名状态条件
默认策略 6 fail-closed(defaultEffect=ask/deny)、无规则命中
优先级与冲突 4 priority 排序、同优先级后声明优先
规则持久化 5 保存/加载/版本/回滚/损坏文件处理
网络白名单 6 默认拒绝、allowlist 匹配、内网隔离

7.2 绕过场景测试(N4 基准初版)

场景 构造 预期
诱导高危调用 注入文本诱导 agent 调 rm -rf PEP deny(规则 bash-no-rm-rf
越界写 agent 尝试写工作区外路径 PEP ask/deny(fs-readonly-workspace
委派链越权 子 agent 委派超范围任务 拒绝委派(T ⊆ P 检查失败)
工具输出注入 工具输出藏恶意指令诱导下一步 下一步工具调用仍被规则独立裁决

7.3 性能

规则编译为模式前缀树后,单次判定为 O(规则数 × 模式长度),在典型 50-200 条规则下 <1ms------低于 dsh 工具调用的毫秒级开销阈值。

7.4 与 R-dsh1 的衔接

R-dsh1(2026)对 dsh 做了间接提示注入的受控评估(14,560 次执行),证明"评估方法可行";本工作的定位差异是"加固"------在 PEP 层面阻断注入诱导的高危调用,而非仅测量。二者互补:前者是基线评估,后者是防护设计。


8 讨论

8.1 与经典权限理论的关系

  • 与 ABAC(R-m1 :本工作的 when 属性条件即 ABAC 的属性判定;差异在于把属性扩展到 agent 特有维度(委派深度、插件签名状态、会话作用域)。
  • 与能力安全(R-m2R-m4:委派链权限衰减是"能力可衰减委托"在 agent 场景的落地;PEP 随调用链携带权限上下文(而非静态身份绑定),防 confused deputy。
  • 与最小权限(R-m3R-a8:默认拒绝敏感面 + 声明式规则 = 最小权限原则的可操作化。

8.2 隔离技术路线权衡

路线 优点 缺点 建议场景
WASM+WASI 能力导向、强隔离、可移植 需编译、生态适配成本高 长期主线(重插件)
子进程+OS 沙箱 保 JS 生态、隔离强 进程/IPC 开销 性价比最优(当前推荐)
isolated-vm 低开销、易接入 隔离弱(同进程) 短期止血

8.3 局限

  1. 规则表达力边界 :三元组 DSL 无法表达所有策略(如跨工具时序约束)------复杂策略需扩展 when 或引入策略代数 R-a10
  2. 网络策略最小版:当前实现为域名白名单;完整代理/审计/外发检测为后续工作。
  3. 隔离执行未落地:插件隔离是体系的一部分但本插件交付规则层;隔离执行路线(第 8.2 节)为后续工作。
  4. N4 基准为初版:完整攻击面(R-a14 SoK)需要更多场景。
  5. 单机假设:远程沙箱/多租户场景未覆盖。

9 结论与展望

9.1 结论

本文面向 dsh 的安全加固,提出了以"harness 级工具调用策略执行点"为核心的治理体系:规则集权限引擎(三元组 + 通配 + 分级授权)、委派链权限衰减的层级权限模型、结构化审计-策略闭环、权限绕过专项基准,并配套实现了 dsh-security-hardening 插件。体系设计严格基于 dsh 现有设施(ctx.sandbox/ctx.approval/permission-presets/ctx.credentials)的盘点,每个设计决策都有近 2-3 年文献支撑与源码实证。

核心论点:在"注入诱导 agent 自行调用高危工具"的攻击模型下,安全的落点必须是 harness 层"与模型意图解耦的策略执行点"------注入可以改变模型"想调用什么",但不能改变"什么被允许调用"。这一洞察将权限治理从"模型侧提示注入防御"推进到"harness 层运行时权限边界"。

9.2 展望

  • 插件隔离执行落地:按第 8.2 节路线推进(子进程+OS 沙箱优先)。
  • 网络策略完整版:代理通道、敏感外发检测、审计。
  • N4 基准完善:覆盖 R-a14 攻击面 SoK 的更多场景。
  • 与现有设施的深化集成:审批升级路径、会话日志审计事件、凭据隔离。
  • 多租户与远程沙箱:企业级安全边界。

参考文献

R-dsh1 Z. Ying, X. Wu, H. Wu, X. Zheng, H. Cheng, X. Shi, J. Guo. Security Assessment of DeepSeek Harness with A.I.G: Evaluating Resistance to Indirect Prompt Injection. 2026. arXiv:2608.16393.

R-a1 Agent Skill Security: Threat Models, Attacks, Defenses, and Evaluation . 2026. arXiv:2607.13987.

R-a2 PhantomSkill: Malicious Code Injection in Agent Skill Ecosystems . 2026. arXiv:2606.19191.

R-a3 SkillsMetric: Mapping the Detection Boundary of Static Analysis for Malicious Skills . 2026. arXiv:2608.08468.

R-a4 SkillGate: Cost Efficient Runtime Malicious Skill File Detection in Coding Agents . 2026. arXiv:2607.25619.

R-a5 S. Pan, X. Sun, T. Zhang, D. Liao, K. Wen, et al. SkillGuard: A Permission-Centric Framework for Agent Skill Security . 2026. arXiv:2606.03024.

R-a6 Isolation as a First-Class Principle for LLM-Agent System Safety: Concepts, Taxonomy . 2026. arXiv:2607.12406.

R-a7 Dynamic Capability Scoping for Enterprise AI Agents: A Synthetic Dataset and... . 2026. arXiv:2607.22445.

R-a8 A Theory of Least Autonomy in AI . 2026. arXiv:2607.09744.

R-a9 Permission Denied: Policy-Graded Evaluation of Coding Agents in Hardened Environments . 2026. arXiv:2608.02670.

R-a10 A Policy Algebra for Trust-Preserving Agentic AI Execution . 2026. arXiv:2608.16402.

R-a11 From Tool Connection to Execution Control: Benchmarking Security Invariants... . 2026. arXiv:2606.29073.

R-a12 The Balkanization of Execution-Security Research for AI Coding Agents: Isolation... . 2026. arXiv:2607.05743.

R-a13 LLM agents security duality: a comprehensive survey of self-security and emergent... . 2026. arXiv:2606.28450.

R-a14 SoK: The Attack Surface of Agentic AI --- Tools, and Autonomy . 2026. arXiv:2603.22928.

R-a15 LLM Platform Security: Applying a Systematic Evaluation Framework to OpenAI's ChatGPT Plugins . 2024. AAAI AIES.

R-p1 K. Greshake, et al. Not What You've Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection . 2023. arXiv:2302.12173.

R-p2 Indirect Prompt Injections: Are Firewalls All You Need, or Stronger Benchmarks? . NeurIPS 2025.

R-p3 Adaptive Evaluation of Out-of-Band Defenses Against Prompt Injection in LLM... . 2026. arXiv:2606.26479.

R-p4 BASIS: Breach-Aware Selective Prompt Injection Shielding with Prefill Attention . 2026. arXiv:2608.08027.

R-p5 Robust Context-Aware Detection of Malicious Instructions in Text . 2026. arXiv:2608.05430.

R-p6 Prismata: Confining Cross-Site Prompt Injection in Web Agents . 2026. arXiv:2607.08147.

R-p7 When Agents Act on Web3: An Attack-Surface Survey of MCP, Skills, and Tools . 2026. arXiv:2608.17275.

R-m1 NIST SP 800-162. Guide to Attribute Based Access Control (ABAC) Definition and Considerations . 2019.

R-m2 H. Levy. Capability-Based Computer Systems . Digital Press, 1984.

R-m3 J. Saltzer, M. Schroeder. The Protection of Information in Computer Systems . CACM, 1975.

R-m4 N. Hardy. The Confused Deputy (or why capabilities might have been invented) . ACM, 1988.

R-m5 Generation of Human Comprehensible Access Control Policies from Audit Logs . 2026. arXiv:2603.14341.

R-m6 EXTree: Towards Supporting Explainability in Attribute-based Access Control . 2026. arXiv:2604.12850.

R-m7 opencode. Permissions .

R-m8 Chrome. Extension Manifest V3 permissions .

R-m9 Node.js. Permission model(--experimental-permission) .

R-m10 MCP. Security Best Practices .

R-s1 Empirical Security Analysis of Software-based Fault Isolation through Control... . 2025. arXiv:2509.07757.

R-s2 WASI / WebAssembly System Interface.

R-s3 isolated-vm.

R-s4 Landlock / seccomp-bpf / Seatbelt / Windows ACL.

R-s5 Chromium. Process Model and Site Isolation . 2018.

R-c1 M. Ohm, et al. Backstabber's Knife Collection . DIMVA 2020. arXiv:2005.09535.

R-c2 P. Ladisa, et al. SoK: Taxonomy of Attacks on Open-Source Software Supply Chains . IEEE S&P 2023. arXiv:2204.04008.

R-c3 C. Huang, et al. DONAPI: Malicious NPM Packages Detector . USENIX Security 2024. arXiv:2403.08334.

R-c4 S. Halder, et al. Malicious Package Detection using Metadata Information . WWW 2024. arXiv:2402.07444.

R-c5 D.-K. Nguyen, et al. Taint-Based Code Slicing for LLMs-based Malicious NPM Package Detection . 2025. arXiv:2512.12313.

R-c6 N. Zahan, et al. OpenSSF Scorecard: On the Path Toward Ecosystem-Wide Automated Security Metrics . 2023. arXiv:2208.03412.

R-c7 Unraveling Challenges with SLSA for Securing the Software Supply Chain . 2024. arXiv:2409.05014.

R-c8 Chrome 扩展攻破事件(Cyberhaven 2024;35+ 扩展/320 万用户 2025). 安全厂商报告.

R-o1 ClawGuard: Out-of-Band Detection of LLM Agent Workflow Hijacking via EM Side Channel . 2026. arXiv:2605.06205.

R-o2 ClawGuard: A Runtime Security Framework for Tool-Augmented LLM Agents Against Indirect... . 2026. arXiv:2604.11790.

R-o3 Hybrid Analysis for Secure MCP Tool Use in LLM Agents. 2026. arXiv:2607.25297.

相关推荐
猫咪宝妖1 小时前
【信息安全工程师】网络与信息安全理论
网络·安全·web安全
SL-staff2 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
SomeB1oody2 小时前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
恒拓高科WorkPlus2 小时前
信创即时通讯上线前要验证哪些能力?BeeWorks选型与验证指南
大数据·安全
欧阳天羲2 小时前
【升级版】AI毫米波雷达扫描+视觉双鉴激光灭蚊机器人|360°全域侦测+超低误杀+人体安全防护(ESP32+YOLOv8全套开源)
人工智能·安全·机器人
进制树3 小时前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计
DS随心转APP3 小时前
AI生成的word怎么下载?AI导出鸭技术架构深度测评
人工智能·ai·架构·word·deepseek·ai导出鸭
QYRdata3 小时前
权威数据:2026-2032年应用(API)系统安全审计平台CAGR15.3%,安全赛道驶入高增速通道
安全·系统安全
Fnetlink13 小时前
FNET 云网安 260819
网络·人工智能·安全·网络安全