正文

OALABS 在 2026-06-16 披露了一起 AI Agent 被滥用于进攻性网络操作的案例。报告称,攻击者使用 Claude 和 Codex 这类 Agent 辅助完成目标识别、侦察、漏洞验证、脚本编写和数据整理等步骤。Help Net Security 和 TechRadar 后续也转述了这起事件,其中 TechRadar 提到受影响组织数量达到 14 家。

这件事对开发者的提醒很直接:AI Agent 不是只能写代码的聊天框。只要它能跑命令、访问网络、读文件、调用工具或接触凭据,它就可能参与真实攻击链。你启动 Claude / Codex 前,先把权限边界收窄,再让它进入项目。

命令执行Shell、安装依赖、脚本、删除、Git 写操作
网络访问外部 API、下载脚本、扫描目标、上传日志
凭据读取.env、SSH key、npm token、GitHub token、云厂商密钥
外部工具MCP、浏览器、数据库、邮件、GitHub、CI
留痕审计工具调用、命令参数、diff、日志、token 轮换记录

这起事件说明了什么

OALABS 的报告重点不在“模型自己攻击了谁”,而在攻击者把 Agent 当成了执行放大器。低门槛提示词可以让 Agent 协助拆解目标、生成命令、改脚本、整理结果,并把多步操作串起来。

对日常开发者来说,真正危险的地方不是你会不会主动攻击别人,而是你本地的 AI 工作台也具备类似能力:

如果这些能力没有边界,Agent 出错、被提示注入、装到恶意包、接入恶意 MCP Server,或者被用户随手允许高风险命令时,影响就不再停留在“生成了一段坏代码”。

  • 它能读仓库和配置文件。
  • 它能建议或执行 Bash / PowerShell 命令。
  • 它能安装 npm、PyPI、Cargo 依赖。
  • 它能访问网络、下载脚本或调用 API。
  • 它能接 MCP Server、浏览器、GitHub、数据库和内部系统。
  • 它可能在日志、提示词或工具参数里接触 token 和客户数据。

启动 Agent 前先选权限模式

先把默认模式设成“能看当前项目、能改当前任务、越界要问”。不要把全盘文件系统、网络和高风险命令一次性放开。

Claude Code 用户先检查 /permissions 和 settings 里的 allow / ask / deny。Codex 用户先检查 sandbox、approval policy 和当前 profile。不要只靠一句“不要做危险操作”的提示词;提示词不是硬边界。

读代码、找文件、看 diff可以自动执行
修改当前任务相关文件可以执行,但必须看 diff
跑 lint、typecheck、单元测试可以按项目规则放行
安装依赖、访问网络、改 lockfile必须人工确认
读取 .env、密钥、私钥、浏览器会话默认禁止
删除目录、重置 Git、发布、部署、改生产库不交给 Agent 自动执行

哪些命令不能直接允许

命令权限要按影响半径分层。只读命令和本地验证命令可以减少确认;会下载、安装、删除、提交、发布、扫描或上传的命令必须停下来。

可以把项目规则写成明确的权限说明:

这段规则不能替代沙箱,但能让 Agent 在提出命令前先按你的边界自查。真正执行时,仍然以客户端权限和操作系统权限为准。

rggit diffgit status可以放进安全 allow
pnpm run lintpnpm run typecheckpnpm test项目确认后可以放行
pnpm addnpm installpip installcargo add先查包名、来源、scripts 和 lockfile
npxuvxcurl | sh、远程脚本默认高风险,先看完整命令
rm -rfgit reset --hard、清库、迁移、部署不让 Agent 自动执行
Text
Agent command policy:
- Auto: read files in this repository, run rg, git diff, git status, pnpm run lint, pnpm run typecheck.
- Ask first: install dependencies, access network, modify lockfiles, run migrations, push commits.
- Never: read .env or private keys, run curl|sh, publish packages, deploy production, delete data.

网络请求先问三个问题

Agent 要访问网络时,先确认它要连哪里、为什么连、会发什么内容。很多风险不是来自模型回答,而是来自命令把本地信息带出去了。

下面几类网络动作不要直接点允许:

如果 Agent 需要查官方文档,让它先给出 URL 和要查的问题。你可以允许打开文档,但不要允许它顺手执行文档里的安装脚本。

  • 访问陌生 IP、短链接、paste 站、临时文件托管。
  • 扫描公司内网、客户域名或第三方目标。
  • 把日志、环境变量、错误栈、配置文件上传到外部服务。
  • 通过 curl 下载脚本后立刻执行。
  • 把 GitHub token、npm token、云厂商 key 放进 headers 或 query string。
连哪里域名、IP、API endpoint、registry 或仓库地址
为什么连下载依赖、查文档、调用测试 API、访问内部服务
会发什么请求参数、headers、日志、错误输出、文件内容

凭据和敏感文件默认隔离

AI Agent 不要默认读到开发机上的所有凭据。.env、SSH key、npm token、GitHub token、云厂商密钥、浏览器 cookie、AI 工具登录文件,都先隔离。

重点检查这些位置:

如果 Agent 需要一个环境变量来跑测试,优先给假值、测试账号或只读账号。不要把生产 token 粘进聊天记录,不要让 Agent 打印完整 secret,也不要让它把 secret 写进项目 settings。

团队项目可以把敏感路径写进规则文件,但真正的防线还要靠权限、忽略规则、secret manager、只读账号和最小 scope。

Text
.env
.env.local
.env.production
~/.ssh/
~/.npmrc
~/.gitconfig
~/.config/
~/.aws/
~/.azure/
~/.codex/
~/.claude/

MCP 和外部工具不要一次全接

MCP Server、浏览器自动化、GitHub、数据库、邮件和 CI 工具会扩大 Agent 的行动范围。每多接一个工具,就多一个权限边界。

先按这个顺序检查:

陌生 MCP Server 不要和文件系统、GitHub、邮件、数据库、浏览器这类敏感工具放进同一个会话。即使每个工具单独看都正常,组合后也可能让 Agent 把一个工具读到的信息交给另一个工具。

  • 工具来源是否可信,版本是否固定。
  • 工具 description 和参数里有没有隐藏动作。
  • 工具能读哪些目录、账号和外部系统。
  • OAuth scope 是否最小。
  • 写操作、发送操作、删除操作是否会再次确认。
  • 工具调用日志能不能追到具体用户、参数和时间。

已经给过高权限先查什么

如果你已经让 Agent 以高权限跑过陌生命令、安装过依赖、接过 MCP Server,先按可能泄露处理,不要只把配置删掉就结束。

先查这些痕迹:

如果 Agent 可能读过 secret,先轮换凭据:

轮换后再清理配置和会话记录。只删除 MCP Server、撤销本地 settings 或关闭终端,不等于外部 token 已经失效。

  • 最近执行过的 shell 命令和终端历史。
  • Git diff、lockfile、package scripts、CI 配置。
  • 新增依赖、postinstall、setup.py、build.rs、GitHub tarball。
  • MCP 配置、OAuth 授权、工具调用日志。
  • 外部网络请求、临时文件、下载脚本。
  • 日志里是否出现 token、cookie、客户数据、内部路径。
Text
Rotate tokens:
- GitHub personal access token
- npm token
- cloud provider access key
- database password
- AI provider API key
- OAuth grants used by MCP servers

现在怎么设使用边界

更稳的做法是把 Agent 当成能执行动作的初级工程师,而不是只会补全代码的编辑器插件。

日常开发可以采用这套边界:

成功标准也要写清楚:Agent 完成任务后,必须能给出改了哪些文件、跑了哪些命令、哪些命令被拒绝、哪些地方需要人工复核。看不到这些记录,就不要把它的结果直接合并或部署。

AI Agent 参与攻击链这件事,不意味着开发者不能用 Claude / Codex。更现实的结论是:Agent 的能力越接近真实工程师,权限管理越不能停留在“我相信它”。先限制命令、网络、凭据和外部工具,再让它进入项目,才是可持续的用法。

读当前仓库、查文档、看 diff安装依赖、联网、改 lockfile
跑 lint、typecheck、测试改 CI、改权限、接 MCP
修改明确任务文件推送、开 PR、调用外部 API

参考来源

Threat Actors Misusing AI Agents For Offensive Cyber OperationsOALABS ResearchAI agents open new front in offensive cyber operationsHelp Net SecurityA newbie hacker used vague, low-skill prompts in Claude and Codex to breach 14 companiesTechRadarConfigure permissionsAnthropic 官方文档Claude Code securityAnthropic 官方文档Agent approvals and securityOpenAI Codex Docs

相关文章

AI Agent 权限怎么设:哪些命令能自动跑,哪些必须人工确认智能编程 / 约 13 分钟AI Agent 让你安装依赖时,哪些包不能直接允许智能编程 / 约 12 分钟MCP Server 安装前怎么检查 tool poisoning 风险智能编程 / 约 12 分钟装过 codexui-android 后,Codex 登录凭据可能泄露怎么办错误日志 / 约 8 分钟Claude Code 每次都要确认 Bash 命令怎么办开发环境 / 约 12 分钟Codex CLI 一直要确认怎么办:approval_policy 和 sandbox_mode 排查错误日志 / 约 11 分钟当 AI Agent 开始替人动手,企业最先缺的不是更强模型智能编程 / 约 9 分钟7 个关键洞察:AI Coding 工具真正改变的不是写代码,而是验证代码智能编程 / 约 18 分钟

作者信息