今年年初,OpenClaw 带火了「养龙虾」。
热度已经过去了,Agent 却没退场。研发在用 Claude Code、Codex 读代码、改代码、跑命令;办公的同事开始让 WorkBuddy、豆包 Work、千问办公整理文档、分析数据、做汇报,甚至跨应用把一整套活儿干完。
Agent 正在从「陪你聊天」变成「替你干活」。要让它更懂某一类工作,最常用的办法就是给它装 Skill。装上一个代码审查 Skill,它就知道该怎么查代码;装一个数据分析 Skill,它就知道数据从哪读、怎么处理、结果往哪输出;装一个办公 Skill,它就能按固定流程整理会议纪要、做周报。
问题也跟着来了:Agent 学到的新技能,到底是谁教的?里面写了什么?它又准备在企业环境里做些什么?
一从「龙虾」风险提示,看所有 Agent 的共同问题
2026 年 3 月 11 日,工业和信息化部网络安全威胁和漏洞信息共享平台(NVDB)发布了《关于防范 OpenClaw(「龙虾」)开源智能体安全风险的「六要六不要」建议》。
六条建议包括使用官方最新版本、控制互联网暴露面、坚持最小权限、防范社会工程学攻击、建立长效防护机制等。其中第四条直接点名了 Skill 市场:
“谨慎使用技能市场,在安装前审查技能包代码,不要使用要求下载 ZIP、执行 Shell 脚本或输入密码的技能包。
同一份风险分析把智能办公列为典型场景,指出它主要面临供应链攻击和企业内网渗透风险。
这份建议针对 OpenClaw,但指出的问题不只属于 OpenClaw。不管是编码 Agent 还是办公 Agent,只要能加载外部 Skill、按其中的指令读文件、跑脚本、连服务,这类风险就在。
Skill 表面像一份写给 Agent 的工作说明。打开来看,里面可能还有 Python、Shell、JavaScript 脚本,有配置文件、第三方依赖和外部下载地址。它教 Agent 怎么做事,也要求 Agent 拿到文件、网络、命令执行和账号凭证这些权限。
这有点像给新同事发了一本工作手册——只不过这位新同事同时还拿到了电脑终端、文件柜钥匙和外部系统的通行证。会干活当然是好事。钥匙发到了谁手里、能打开哪些门,最好提前说清楚。
二政策文件已经给出风险特征,识别出来却有点难度
「不要使用要求下载 ZIP、执行 Shell 脚本或输入密码的技能包」——这条建议本身很直白。
真去做,就没那么直白了。一个 Skill 要是明写「请下载木马并输入密码」,没人会装。现实中的风险通常被包装成「安装前置依赖」「完成账号授权」或者「提升运行性能」。
下载压缩包、装依赖、配凭证,本身都不一定是恶意的——大量正常 Skill 也要做这些。真正要判断的是四件事:这些操作跟 Skill 声明的功能对不对得上,脚本具体干了什么,凭证会被谁用,数据最后发到哪里。
一个 Skill 看起来在教 Agent 干活,背后可能在教用户下木马。2026 年初的 ClawHavoc 事件中,ClawHub 被发现曾出现至少 1,184 个恶意 Skill,部分样本累计下载超过 1.4 万次。
还有一类更隐蔽的:用户只是想让 Agent 取个天气、把天气数据发到自己邮箱,Skill 实际却在偷本地文件里的可信配置。
“攻击者不一定需要先攻破 Agent。
它只需要让恶意操作看起来像完成任务所必需的一步,再等用户点一次「确认」。
三源盾先把 Skill「翻译」成人更容易看懂的样子
以前想搞清楚一个 Skill 能做什么,最直接的办法是打开 SKILL.md 从头读到尾。
麻烦在于作者之间的写法差得太远。有的只有几句功能介绍,有的像一份十几页的技术文档,还有的把使用步骤、命令、依赖、注意事项全混在一起。它本来就是写给 Agent 看的,不适合用户快速读、快速比。
比如一个 Skill 的介绍只写「用于社交平台内容分析」。用户得继续往下读完整份说明,才能弄清它到底是做关键词搜索、热门内容发现还是趋势分析;运行时要不要浏览器、爬虫或第三方接口;要不要登录账号、配 API Key,或者把数据发到外部服务。要是同时比三四个同类 Skill,基本就是在做阅读理解。
源盾保留作者提供的原始 SKILL.md,同时通过「能力分析」,把散在 Skill 文件各处的信息整理成结构化的、更容易读的形式。
原来用户得自己从原始说明里找、自己推断;现在可以先在源盾上看到这个 Skill 能完成哪些具体任务、可能调用什么工具、需要什么运行环境、是否依赖外部服务、要不要账号凭证或 API Key。
下面是源盾 Skill 市场某个 Skill,原文和能力分析的对比展示:
示例:SKILL.md 原文
示例:经过源盾能力分析后的 Skill 介绍
四看懂之后,源盾再做一次六维安全审计
理解 Skill 能做什么只是第一步。接下来还要判断:它声明自己要做的事情,与实际要求 Agent 执行的操作,是不是一回事。
源盾结合静态扫描与 AI 分析,从六个维度对 Skill 进行安全审计:
指令安全:是否诱导 Agent 绕过限制、跳过确认或执行危险操作; 异常行为:实际行为是否超出 Skill 声明的功能范围; 依赖安全:依托于 Gitee 安全研究院 38 万余条漏洞情报、投毒情报,迅速判定组件、运行依赖是否存在已知风险; 数据安全:是否读取源码、文件、密钥等敏感数据并向外发送; 权限安全:文件、网络和命令执行权限是否超出任务需要; 代码安全:脚本中是否存在危险函数、命令执行、注入或任意文件访问。
静态扫描负责发现代码、依赖和高风险模式,AI 则结合 Skill 的功能说明、文件内容和执行上下文进一步分析。
“例如,一个语音摘要 Skill 需要读取 API Key,并调用外部语音服务。仅仅出现「读取密钥」和「访问外部接口」,不代表它一定在窃取数据。还需要判断它访问了什么服务、是否符合功能需要,以及有没有把密钥或其他数据发送到无关地址。
示例 1:依赖安全风险
Skill 的组件声明文件没有锁定组件安装版本,实际安装时可能把带高危漏洞的组件包版本拉到本地环境。
示例 2:代码安全:命令注入
Skill 包里的几个脚本把变量直接拼进 execSync 的字符串,交给系统 Shell 执行,等于给变量开了个「能当命令跑」的口子。外面虽然套了双引号,但 Shell 双引号拦不住 ; 和 $( )。只要变量值能被外部(比如被扫描的第三方 Skill 包)掺进恶意字符,就能偷偷多跑任意命令。
示例 3:权限安全风险
这个监控脚本发现某个技能缺依赖时,会自己 npm install,不请示用户,也不在能力画像里声明。而 npm install 会自动执行依赖包里的安装脚本,相当于以用户权限跑第三方代码。它还特意加了 --no-audit,把安全告警静音。
五Agent 越来越多,企业需要统一的 Skill 安全入口
今天,企业面对的已经不再是要不要使用某一个 Agent。
研发团队可能在使用 Claude Code、Codex,办公团队可能接触 WorkBuddy、豆包 Work、千问办公,其他业务团队还会选择更多垂直 Agent。不同 Agent 可以来自不同厂商,但它们引入外部 Skill 时,面对的是同一类问题:
Skill 来自哪里? 包含什么文件? 需要哪些权限? 会把数据发送到哪里? 当前版本是否经过检查?
国企、金融、通信、军工这些领域,Agent 还可能跑在企业网络或私有化环境里,接触源码、内部文件、业务系统和访问凭证。所以,Skill 安全治理不能靠员工安装前「仔细看看」,也不该给每一种 Agent 各建一套孤立的检查流程。
“源盾希望提供的是面向不同 Agent 的统一 Skill 发现与安全审计入口:让外部 Skill 在进入企业使用范围之前被理解、被检查,并留下明确的版本和风险依据。
CNCERT(国家互联网应急中心)的安全使用指南也建议,企业引入新 Skill 前应做安全审核和测试,把审核通过的 Skill 存进内部仓库,避免 Agent 在运行时直接获取和执行未经存档的外部代码。
落到可执行的层面,源盾把「安装前审查」拆成五件能验证的事:来源能够看见,功能能够理解,文件能够查看,版本能够校验,风险能够解释。
这五件事不解决所有问题。没有任何工具能替企业做完所有安全决定——源盾能做的,是让这些决定建立在明确的信息和证据上,而不是一句「应该没事」。
Agent 会越来越多,Skill 也会越来越多。给 Agent 装新技能本身不是问题。
正式「上岗」之前,先做一次安全体检。