VPSSpark 博客
← 返回开发日记

Black Hat USA 2026 AI Agent 安全验收清单

安全 · 2026.07.29 · 约 11 分钟阅读

Black Hat USA 2026 AI Agent 安全验收清单

终端日志里出现了不该出现的令牌,Agent 还在用个人账号执行签名和推送。

最快的处理方式:先暂停上线,把身份独立、权限最小化、秘密不落盘、网络出口受控、操作可审计和环境可销毁这 6 项逐一验完;任何一项无法证明,都不要把任务交给 Agent。

时间表:2026 年 7 月 29 日先完成内部预验收,2026 年 8 月 1—6 日按 Black Hat USA 2026 官方 Briefings、Arsenal 和 AI Zone 的公开材料复核清单。 Black Hat USA 2026 已确认在 2026 年 8 月 1 日至 6 日举行,官方页面已列出 AI Zone、AI 与自主威胁相关议题及 Agentic AI 攻防内容,但尚未公开的现场研究不能提前当成结论。(Black Hat USA 2026 官方议程与功能页面)

本周建议动作:把下面的验收项交给安全与 DevOps 双人复核,要求每一项都附证据截图、命令输出或审计记录。不要只安装杀毒软件,也不要把“限制远程登录”当成 Agent 安全方案。

这篇文章适合三类人:

  • 允许编码 Agent 访问私有代码仓库的研发团队;
  • 使用远程 Mac 执行签名、构建或自动化任务的 DevOps;
  • 需要建立 AI Agent 上线门槛的安全与合规负责人。

先划清责任:用户操作和 Agent 操作必须分开

身份混用是最容易被忽略、却最难追责的问题。你需要确认 Agent 使用的是独立服务身份,而不是工程师的个人账号、共享管理员账号或长期有效的个人访问令牌。

通过标准:

  • Agent 有独立的服务账号、服务令牌或工作负载身份;
  • Git 仓库、构建系统、签名服务和远程 Mac 日志都能区分“用户发起”和“Agent 发起”;
  • 每次任务都有任务编号、发起人、Agent 身份、目标仓库和开始结束时间;
  • 服务身份只绑定必要的仓库、分支和工具范围。

直接阻断:

  • 多人共用一个管理员账号;
  • Agent 通过工程师的个人 SSH 密钥或个人 API 令牌访问仓库;
  • 日志只能看到“某个用户登录”,无法确认具体是哪次 Agent 调用;
  • 账号离职或任务结束后无法快速撤销权限。

对于私有代码仓库,安全性取决于身份是否独立、令牌是否短期有效、仓库权限是否限制到具体任务,以及每次工具调用能否追溯到责任人。只要 Agent 仍使用个人密钥、共享管理员账号或全仓库权限,就不应通过企业验收。

对于 CI/CD 场景,优先考虑短期工作负载身份,而不是把长期密钥写入远程 Mac。GitHub 官方文档说明,OIDC 可以让工作流向云服务请求短期令牌,并通过 sub、仓库和分支等声明限制信任范围;这比长期保存云访问密钥更适合作为验收基线。可参考 GitHub Actions OIDC 身份配置文档

再检查凭证:签名证书不能跟着 Agent 到处走

编码 Agent 可能读取环境变量、Shell 历史、工作目录、构建缓存和日志。只要签名证书、私钥、仓库令牌或模型 API 凭证以明文出现在这些位置,任务结束后的清理就很难证明完整。

macOS 的 Keychain 可以保存密码、证书和密钥,并能通过访问控制限制应用读取;但“凭证放进 Keychain”不等于 Agent 自动获得安全边界。你仍然要验证具体应用、具体任务和具体用户是否拥有读取权限。Apple 的 Keychain Services 官方文档说明,Keychain 支持管理访问控制列表,可用于限制应用访问密钥链项目。

验收证据应包括:

  • 检查环境变量、Shell 历史和工作目录的扫描结果;
  • 检查构建日志、调试日志和错误回溯中的敏感字段;
  • 展示签名证书或私钥的授权范围;
  • 展示任务结束后的撤销记录;
  • 展示一次“凭证被主动撤销后,旧任务无法继续”的测试结果。

通过标准:

  • 凭证按任务临时授权;
  • 令牌具备明确的过期时间和用途;
  • 签名操作通过受控接口完成,Agent 不需要导出私钥;
  • 任务结束后立即撤销令牌、删除临时授权并清理缓存;
  • 日志只保留凭证标识的末尾片段或哈希,不记录完整令牌。

直接阻断:

  • 私钥以文件形式长期放在共享目录;
  • API 凭证写入 .env、脚本、构建产物或 Git 历史;
  • 令牌无法立即撤销;
  • 任何任务都可以读取同一套签名材料。

判断签名材料是否可能被泄露,重点不在于 Agent 是否“聪明”,而在于它是否能读取证书、是否能导出私钥、是否能调用签名命令,以及签名结果是否有独立审批。Apple 的代码签名文档还特别强调,部分受限 entitlement 需要 provisioning profile 授权,这意味着签名链路中的权限不应只靠远程桌面登录控制。可参考 Apple macOS 分发签名文档

然后收紧工具权限:默认拒绝高风险写操作

Agent 能执行什么命令,比它使用哪个模型更重要。你需要把工具调用拆成“读取、低风险写入、高风险写入、提权和外部发送”几类,不要直接给它一个可以运行任意 Shell 命令的接口。

建议的权限分层:

  • 读取代码、读取测试结果:默认允许;
  • 修改工作目录内文件:限于任务目录;
  • 删除文件、修改系统配置、安装软件:默认拒绝;
  • 访问 Keychain、签名工具、系统服务:单独授权;
  • 推送远程仓库、发布构建产物、执行生产变更:必须人工确认;
  • 使用 sudo 或等效提权:必须有审批记录和任务编号。

如果使用 MCP Server 连接外部工具,应把每个工具视为独立权限边界。MCP 官方授权规范要求服务端验证令牌的目标受众,禁止把不属于该服务的令牌转发给其他服务;官方安全教程还建议按工具或能力拆分最小权限范围,并且不要记录授权头、令牌和密钥。可参考 MCP 授权规范MCP 授权安全教程

远程 Mac 的 Agent 权限隔离方法

不要只依赖 macOS 登录账号。你至少要同时隔离以下 4 层:

  1. 用户层:Agent 使用专用系统用户,不能与日常办公账号共用桌面和钥匙串。
  2. 目录层:工作目录、缓存目录、构建输出目录分开,禁止访问用户主目录中的私人文件。
  3. 工具层:每个命令包装成明确的工具接口,限制参数、路径和返回内容。
  4. 审批层:删除、签名、发布、推送和提权操作需要人工确认。

真正有效的远程 Mac 隔离,不是创建一个新用户后就结束,而是把身份、目录、工具、审批和回收流程一起绑定。只要 Agent 仍能通过任意 Shell 读取其他用户目录,用户层隔离就只是表面控制。

⚠️ 经验提醒:如果 Agent 的“只读模式”只是界面上的一个开关,而底层仍能调用任意 Shell、读取任意目录或启动系统服务,这个模式不能作为验收证据。

再限制网络出口:能访问不等于应该访问

远程 Mac 上的 Agent 通常需要访问模型端点、代码仓库、依赖源、制品库和通知服务。问题在于,允许任意外连后,提示内容、源码片段、构建日志和错误堆栈可能被发送到未批准目的地。

你需要先形成一份允许列表,再做阻断测试。

访问对象 默认策略 验收证据 阻断条件
指定模型端点 仅允许批准域名和端口 防火墙或代理规则、访问日志 任意模型端点均可访问
私有代码仓库 只允许指定组织和仓库 服务身份、仓库审计记录 使用个人令牌或可访问全部仓库
依赖源 允许固定镜像或官方源 依赖锁定文件、DNS 或代理日志 构建时可访问任意下载地址
制品库 只允许项目对应路径 上传记录、制品哈希 Agent 可覆盖其他项目制品
外部通知服务 按字段脱敏后发送 出站请求样本、脱敏规则 原始源码、令牌或完整日志外发

验收时要构造 3 类测试数据:带假令牌的提示、带敏感字段的源码、包含业务数据的构建日志。确认它们不会出现在未批准域名的请求体、查询参数、错误日志或代理缓存中。

MCP 官方安全要求还强调,生产环境应使用 HTTPS,访问令牌不能放在 URL 查询字符串中,并且令牌需要绑定到预期资源。你可以把这些要求直接转成网络验收条目,而不是只检查远程 Mac 是否能正常联网。

最后补齐审计:一次任务必须能够完整还原

企业上线 Agent 时,不能只看“有没有日志”。重点是能否把一次任务还原成完整操作链:

发起人 → Agent 身份 → 使用的工具 → 目标目录或服务 → 输入摘要 → 执行结果 → 人工确认 → 凭证撤销 → 环境清理。

日志至少要记录:

  • 任务编号和发起人;
  • Agent 服务身份;
  • 工具名称、参数摘要和目标资源;
  • 命令是否成功、退出状态和结果摘要;
  • 是否触发人工审批;
  • 网络访问的目标域名和结果;
  • 凭证创建、使用、撤销和清理时间;
  • 环境销毁是否完成。

日志中不能出现完整令牌、授权头、私钥、源码全文和未经脱敏的业务数据。MCP 官方安全教程同样建议不要记录凭证、授权头、令牌和密钥,并要求对结构化日志中的敏感字段做脱敏处理。

评分建议:

  • 2 分:有明确证据,且可以复现;
  • 1 分:已有控制,但范围不完整或缺少测试记录;
  • 0 分:没有控制,或无法证明控制有效。

建议按 6 个维度评分,总分 12 分

  • 身份独立:2 分;
  • 凭证隔离:2 分;
  • 工具与系统权限:2 分;
  • 网络出口:2 分;
  • 日志审计:2 分;
  • 环境销毁:2 分。

10—12 分:可以进入受控试运行,但高风险操作仍需人工确认。
7—9 分:限期整改,不允许访问生产签名材料和高敏感仓库。
0—6 分:禁止上线,先重做隔离和凭证设计。

用这份清单完成最终验收

下面的清单适合直接放进安全评审单。每一项都必须附证据,不能只勾选“已配置”。

  • [ ] Agent 使用独立服务身份,不使用共享管理员账号。
  • [ ] 用户操作和 Agent 操作可以在日志中明确区分。
  • [ ] 私有仓库权限限制到指定组织、项目或分支。
  • [ ] 个人 SSH 密钥、个人 API 令牌和长期云密钥未交给 Agent。
  • [ ] 环境变量、Shell 历史、工作目录、缓存和构建日志已完成敏感信息扫描。
  • [ ] 签名证书和私钥不能被 Agent 导出。
  • [ ] 签名、发布、推送、删除和提权操作具备人工确认记录。
  • [ ] 高风险命令默认拒绝,工具接口限制了目录、参数和返回内容。
  • [ ] 模型端点、代码仓库、依赖源和制品库都有明确允许列表。
  • [ ] 已验证提示、源码、构建产物和日志不会发送到未批准目的地。
  • [ ] 日志包含身份、工具、目标、结果、审批和任务编号。
  • [ ] 日志不会记录完整令牌、授权头、私钥或业务数据。
  • [ ] 任务结束后,临时文件、缓存、会话和凭证均已清除。
  • [ ] 能够在任务中止后立即撤销凭证和网络访问。
  • [ ] 高敏感任务使用可重建、可销毁的独立环境,而不是长期共享桌面。
  • [ ] 已完成一次“恶意提示要求读取凭证”和一次“工具越权调用”阻断测试。
  • [ ] 安全负责人和 DevOps 负责人分别签字确认通过范围。
  • [ ] 所有未通过项都标注了责任人、整改期限和回归测试方式。

环境销毁尤其不能靠口头承诺。安全团队应要求保留销毁前后检查结果,并核对远程 Mac 上的工作目录、临时目录、构建缓存、会话状态和授权记录。若无法快速证明环境已经清空,高敏感签名任务就不应放在长期共享桌面中。

如果你当前使用的是长期共享 Mac、固定个人账号或无法快速回收的云主机,主要缺点通常有 4 个:身份边界模糊、凭证容易残留、网络和工具权限难以按任务收紧、任务结束后缺少可信的销毁证据。相比之下,按任务交付的独立远程 Mac 更适合做隔离测试、短期构建和安全验收;你可以先通过 VPSSpark 帮助中心了解环境使用与回收相关信息,再把本清单交给安全和 DevOps 联合审核。若你还需要核对不同网络出口的访问条件,可查看 VPSSpark 美国东部节点方案中的区域与连接说明,但不要把网络位置本身误当成安全控制。

最后的上线门槛很简单:身份不能独立、凭证不能撤销、权限不能收紧、外连不能解释、日志不能还原,或环境不能销毁,任意一项成立,就应判定为禁止上线。Black Hat USA 2026 的公开议程可以帮助你继续跟踪 AI 与自主威胁研究,但企业是否放行 Agent,最终仍要以你能拿出的验收证据为准。

为 AI Agent 快速搭建可控的远程 Mac 验收环境

使用 VPSSpark 快速开通远程 Mac,在独立环境中验证私有代码仓库、签名工具与自动化流水线的访问边界。

按需选择 Mac 云主机方案,以更灵活的成本满足测试、构建和安全验收等阶段性算力需求。

返回首页

限时特惠

不只是一台 Mac,是你在云端的开发基地

独享算力 · 全球节点 · 按月订阅 · 无需购置硬件

返回首页
限时优惠 点击查看套餐