能力令牌与最小权限即时发放

· 2026-11-01 22:00 · 27 阅读

原创 pandazhengzheng 2026-11-01 22:00 广东

目录

  • 1. 引言与问题定义

  • 2. 形式化模型

  • 3. 攻击与威胁模型

  • 4. 防御机制设计

  • 5. 形式化安全分析

  • 6. 系统架构与Python实现

  • 7. 评估框架与实验设计

  • 8. 前沿挑战与开放问题

  • 参考文献


1. 引言与问题定义

1.1 背景与动机

自主Agent系统在执行任务时需要获取多种能力(capability):文件读写、网络访问、代码执行、数据库操作、系统命令调用、API调用等。传统的基于角色的访问控制(RBAC)模型为Agent分配静态角色和固定权限,存在以下根本性缺陷:

  1. 权限过度授予:RBAC通常按"最大可能需求"分配权限,导致Agent在大部分时间持有远超当前任务所需的权限。这一"静态过度授权"问题违反了最小权限原则(Principle of Least Privilege)。

  2. 权限提升风险:一旦Agent被攻击者通过提示注入等方式劫持,其持有的全部静态权限立即成为攻击者的武器。权限越大,攻击面越广。

  3. 缺乏时效控制:静态权限没有过期机制,权限一旦授予便持续有效,即使任务已完成、权限不再需要。

  4. 权限组合不可控:多个权限的组合可能产生超出单个权限的危险能力(如"文件写入"+"代码执行"="任意代码执行"),RBAC缺乏组合安全分析。

能力令牌(Capability Token)机制借鉴了操作系统中的能力安全模型(capability-based security),为Agent提供了一种动态、细粒度、可过期的权限管理方案。其核心思想是:

  • 即时发放(JIT Issuance):权限仅在Agent实际需要执行某动作时才发放,而非预先授予;

  • 自动过期(Auto-Expiration):每个能力令牌都有严格的TTL(Time-To-Live),过期后自动失效;

  • 最小权限(Least Privilege):每次发放的权限恰好满足当前动作需求,不多不少;

  • 能力衰减(Capability Decay):权限随时间或使用次数逐渐衰减,防止权限累积。

1.2 问题定义

核心问题:给定Agent任务  及其执行计划 (每个步骤  需要能力集 ),如何设计能力令牌系统满足:

  • 即时性:步骤  执行前才发放能力 ,而非任务开始时发放 ;

  • 最小性:发放的能力集  恰好满足  的需求,即 ;

  • 过期性:每个令牌  有 , 时  失效;

  • 不可伪造性:攻击者无法伪造合法令牌;

  • 不可转让性:令牌绑定特定Agent会话,不可跨会话使用;

  • 组合安全:同时有效的令牌组合不产生超出任务需求的能力。

1.3 能力安全模型概述

能力安全模型(Capability-Based Security)由Dennis和Van Horn于1966年提出,其核心是将"权限"封装为不可伪造的"能力"对象,进程通过持有能力来证明其权限。

与传统模型的对比:

特性

RBAC

ACL

能力模型

权限主体

角色

资源

能力对象

授权方向

角色→权限

资源→主体

主体持有能力

粒度

粗

中

细

动态性

静态

半静态

动态

过期控制

无

无

内置

组合分析

困难

困难

可分析

1.4 本文贡献

  1. 形式化模型:定义能力令牌的代数结构、JIT发放的形式化语义、能力衰减与过期的数学模型。

  2. 威胁模型:分析令牌伪造、令牌窃取、权限提升、能力组合攻击等威胁。

  3. 防御机制:设计基于密码学签名的令牌签发与验证、JIT发放引擎、能力衰减机制、组合安全分析器。

  4. Python实现:提供完整的可运行实现(500+行),含令牌签发、验证、过期管理、组合分析、测试用例。

  5. 安全证明:证明最小权限性、不可伪造性、组合安全性。


2. 形式化模型

2.1 能力定义

定义 2.1(能力):能力  是一个四元组:

其中:

  • :资源标识(文件路径、URL、进程等);

  • :操作类型(read, write, execute, delete, connect等);

  • :操作约束(如最大写入大小、允许的参数范围);

  • :作用域(如时间窗口、使用次数限制)。

定义 2.2(能力集):能力集  为能力的有限集合。

定义 2.3(能力偏序):能力间存在偏序关系 :

即  的权限不超过 。

2.2 能力令牌

定义 2.4(能力令牌):能力令牌  是一个七元组:

其中:

  • :令牌唯一标识符;

  • :能力集;

  • :签发者标识;

  • :主体标识(Agent会话ID);

  • :签发时间;

  • :过期时间();

  • :签发者对  的数字签名。

定义 2.5(令牌有效性):令牌  在时间  有效,当且仅当:

2.3 JIT发放语义

定义 2.6(JIT发放):即时发放函数 ,在步骤  执行前发放恰好所需的能力:

其中  为步骤  所需的最小能力集。

定义 2.7(最小权限性):JIT发放满足最小权限性,当且仅当:

2.4 能力衰减

定义 2.8(能力衰减函数):衰减函数 ,根据经过时间  衰减能力:

其中  随  增大而收缩约束空间。

衰减策略示例:

  • 线性衰减:

  • 指数衰减:

  • 阶梯衰减:每经过  时间,权限降一级

2.5 能力组合安全

定义 2.9(能力组合):能力集  和  的组合  为:

其中  为  和  同时持有时涌现的隐含能力。

定义 2.10(危险组合):能力组合  是危险的,当且仅当:

示例:

定义 2.11(组合安全):能力集  是组合安全的,当且仅当:

2.6 基于任务的权限推导

定义 2.12(权限推导):权限推导函数 ,从任务描述推导所需能力集:

其中  为任务  的执行计划。

推导规则示例:

  • 任务"读取文件并分析" → 

  • 任务"下载并执行脚本" → (需组合安全检查)

  • 任务"发送邮件" → 

2.7 令牌生命周期

定义 2.13(令牌生命周期):令牌  的生命周期为状态序列:

状态转移条件:

  • :签名验证通过;

  • :经过衰减阈值时间;

  • :到达过期时间;

  • :被主动撤销。


3. 攻击与威胁模型

3.1 威胁模型概述

攻击者目标:

  1. 获取超出其应得的能力(权限提升);

  2. 伪造或篡改能力令牌(令牌伪造);

  3. 窃取合法令牌并重用(令牌窃取/重放);

  4. 利用能力组合产生危险涌现能力(组合攻击);

  5. 在令牌过期后仍使用其权限(过期绕过)。

攻击者能力假设:

  • 可以观察Agent的公开行为和部分网络流量;

  • 可以尝试注入恶意指令诱导Agent请求危险能力;

  • 无法直接访问令牌签发密钥;

  • 无法破解签名算法。

3.2 攻击类型

3.2.1 令牌伪造攻击

攻击者尝试构造合法签名的令牌。

攻击形式:

攻击者构造: τ' = (id', C_dangerous, issuer, subject, t, t+TTL, σ')
其中 σ'
 为伪造签名

跳转微信打开

本文转载自微信公众号「安全分析与研究」,查看原文。版权归原作者所有,如有侵权请联系删除。