网络安全

当人工智能代理冒用你的身份:继承的凭据混淆了人与机器

对一个使用用户 Azure 凭据的软件代理进行的实际测量显示,系统以该人本人的名义记录了其操作;在两个生产存储中,其权限范围从 2 项到 107 项不等。该案例表明,访问范围和审计可能更多取决于连接路径和组成员资格,而不是日志中显示的身份。

2026-10-08
1 分钟阅读
529 浏览量
certi.news Editorial Team
当人工智能代理冒用你的身份:继承的凭据混淆了人与机器

当人工智能代理使用人类用户的凭据访问数据库时,系统并不会获得一个隐藏在账户背后的“代理身份”;它看到的就是该用户本人。这是 Naseeb Ahmed Mian 在一个使用 Azure、Azure CLI 和 sqlcmd 的生产环境中进行测量后得出的核心结论。

在所检查的配置中,软件代理的技能通过 sqlcmd 命令连接数据库,并使用 Azure CLI 进行身份验证。该命令会在用户登录后提取缓存的访问令牌,然后将其提交给数据库。因此,无论查询是用户亲自编写的,还是由代理执行的,连接都显示为该用户的名义,并带有其设备名称和 sqlcmd 工具信息。

审计日志看到的是凭据,而不是意图

会话日志显示了用户登录名、工作站名称和客户端接口,但没有包含用于区分代理所执行操作的字段。因此,人工查询和自动查询在日志中完全相同,后续控制措施无法根据执行来源应用不同的请求速率限制、审批步骤或保留策略。

问题并不局限于安全调查。如果有人日后质疑几个月前执行的一条查询,日志将无法证明它究竟是用户编写的,还是由自动化工具运行的。日志能够准确地将操作归因于该凭据,但对于意图和实际执行者保持沉默。

访问令牌揭示了什么?

Azure CLI 提供的令牌包含 user_impersonation 范围,以及一项表明身份验证包含多重身份验证因素的声明。实际上,代理执行的每一项操作都带有用户已通过多重身份验证的证据,即使该验证发生在数小时前,且当时处于不同的任务场景中。

此外,令牌的 84 分钟有效期并不一定代表代理运行的结束。CLI 会使用刷新令牌自动续订该令牌,因此无人监控的运行可能会持续到刷新令牌过期或用户账户被禁用。

组成员资格扩大了访问范围

角色分配检查只显示一行:在一个非生产订阅中拥有 Reader 角色。但访问令牌包含 37 个组,而直接成员资格查询显示 34 个组,其中还存在嵌套组。与访问相关的组包括 SQL 数据库查看者、特权用户、资源贡献者和数据库管理员等角色。

危险在于,这些成员资格可能在数据层承载实际权限,而不一定会出现在控制平面角色检查中。因此,在采用传统方法审查时,代理的访问范围可能看起来很有限,但组成员资格却可能赋予它更大的能力。

实际情况会发生什么变化?

在相隔一小时的时间里,使用同一身份测试两个生产存储时,结果出现了极大差异。在其中一个存储中,该身份仅拥有 CONNECT 和 SELECT 两项权限,无法连接到安全层。而另一个生产分析端点则显示有 430 张表和 107 项权限,涵盖读取、写入、架构定义以及数据库管理。

这一比较说明,权限范围并不只由身份决定;访问路径、引擎以及与端点相关的控制措施同样是关键因素。某个端点可能根据其文档仅支持只读访问,但当通过另一个引擎调用数据时,其安全规则未必会随之转移。

certi.news 的编辑解读:问题并不是代理“没有身份”,而是人的身份被用作独立机器身份的快速替代品。这会在三个方面失效:归因、权限范围扩大和撤销。测量还显示,在一个凭据拥有从安全数据库中删除数据的能力的环境中,审计日志恰恰是唯一未启用的环境。关于组成员资格的一致性、已颁发令牌中临时权限的持续存在,以及机构能否记录执行意图而不仅仅是凭据所有者,仍有重要问题悬而未决。

新闻来源
The New Stack - Software Development
查看原始来源 ↗
c
作者

certi.news Editorial Team

你需要知道的

当 AI 代理通过 Azure CLI 使用人类用户的凭据时,其操作会以该人类用户本人的名义出现在审计日志中,无法清晰区分人工执行与自动执行。此外,组成员资格和访问路径可能扩大实际权限范围,超出传统角色检查所显示的范围。

  • 代理使用了从用户 Azure CLI 会话中提取的访问令牌,因此连接显示为该用户、其设备以及 sqlcmd 工具发起。
  • 审计日志没有包含用于区分代理执行的查询与用户亲自编写的查询的字段。
  • 访问令牌包含 user_impersonation 范围以及多重身份验证指示;通过续期令牌,代理可能持续进行无人值守运行。
  • 令牌显示用户属于 37 个组,而直接成员资格查询显示为 34 个组;这些成员资格包括可能授予广泛数据访问权限的角色。
  • 两个生产存储中的权限存在差异:一个仅有 CONNECT 和 SELECT,另一个则有 107 项权限,涵盖读取、写入、架构定义和数据库管理。
  • 这一测量表明,访问范围取决于连接路径、引擎和端点控制措施,而不仅仅取决于用户身份。

常见问题

代理活动在审计日志中是如何显示的?

活动以人类用户本人的名义显示,并包含其设备名称和 sqlcmd 工具,但没有字段表明执行由代理完成。

访问令牌的有效期是否等同于代理的运行时长?

不一定;令牌有效期为 84 分钟,但 Azure CLI 可以使用刷新令牌续期,因此代理可能持续运行,直到刷新令牌过期或账户被禁用。

为什么实际权限可能大于角色审查中显示的权限?

因为组成员资格可能携带数据层面的权限,而这些权限并不总会显示在控制平面角色检查中。

两个生产存储中的权限是否一致?

不一致。其中一个仅限于 CONNECT 和 SELECT,而另一个生产分析端点则显示对 430 个表拥有 107 项权限。

同一分类

你可能还喜欢

查看所有新闻