高级 11 分钟智能体

OpenClaw 技能:安装它们而不让自己 设陷阱

OpenClaw skills 是用于存放指令的文件夹,有时还会附带脚本,代理会加载它们来学习某项流程。它们可以通过一条命令从公共注册表 ClawHub 安装,而麻烦也正是从这里开始:skill 会以代理的全部权限运行,2026 年初,多支安全团队记录了该注册表中存在恶意 skills。本指南解释 skill 的工作方式、启用前如何阅读它,以及当某个 skill 没有按其声明的方式运行时如何限制损害。本文不依赖任何自行测试:引用的数字均来自所列报告,并以各自发布日期为准。

作者: Clara M.·更新于 2026-10-16·已在 Windows、macOS 和 Linux 上测试

#OpenClaw skill 具体是什么

技能不是经过编译的插件,也不是浏览器意义上的扩展。它是一个目录,至少包含一个 SKILL.md 文件:文件先以 YAML 格式的标题开头,其中包含名称和描述,随后是用 Markdown 编写的指令,向代理说明何时以及如何完成任务。该目录还可以包含脚本、文件模板或参考文档。为此,OpenClaw 遵循一种与其他代理共享的开放格式,具体格式见其文档。

启动时,网关不会加载每个 skill 的完整内容。它会将可用 skill 的名称和描述列表注入系统提示词。当模型判断某个 skill 与请求匹配时,它会读取完整的 SKILL.md 文件并遵循其中的指令,必要时调用其中包含的脚本。因此,skill 首先是一段进入模型上下文的文本,与您自己的指令处于同等地位。

SKILL.md — 结构示例(教学用途)
---
name: resume-flux-rss
description: Résume en trois points les nouveaux articles d'un flux RSS donné.
metadata: {"openclaw": {"requires": {"bins": ["curl"]}}}
---
# Résumer un flux RSS

1. Récupérer le flux avec curl et ne garder que les entrées des 24 dernières heures.
2. Pour chaque entrée, lire le titre et le résumé fourni par le flux.
3. Rédiger trois points en français, sans ouvrir de lien supplémentaire.

标头可以声明激活条件:机器上必须存在的可执行文件、环境变量、配置密钥或操作系统。如果缺少某项条件,该 skill 仍会显示在清单中,但不会提供给模型。这些声明用于保证可靠性,而非安全性:它们不会限制已激活 skill 的操作范围。

随附的 Skills
随 OpenClaw 提供,并根据配置启用。它们由项目维护,但这并不意味着可以不了解它们。
托管的 Skills
为机器上的所有智能体安装在 ~/.openclaw 目录的 skills 文件夹中。
工作区 Skills
默认放置在代理工作区的 skills 子目录中,即 ~/.openclaw/workspace。这也是 ClawHub 默认安装的位置。
优先级顺序
工作区中的 skill 优先于同名的托管 skill,而托管 skill 又优先于随附的 skill。因此,第三方 skill 可以替换官方 skill,且不会有任何提示。

ClawHub 是该项目的公共注册表。一个同名命令行工具可用于搜索、安装和更新 skill。任何人都可以在其中发布内容:skill 出现在注册表中并不代表经过审查。如果您仍不清楚代理和工具的概念,我们关于 MCP 协议的指南解释了向模型提供工具意味着什么,以及为什么每增加一个工具都会扩大攻击面。

#为什么 OpenClaw skill 从构造上就存在风险

本地智能体套件

在你的机器上执行操作的智能体:具备智能体能力的 Cline、MCP、n8n + Ollama、本地自动化。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

问题不在于 OpenClaw 存在缺陷,而在于 skill 的本质:它是模型信任的指令,由一个拥有终端、您的文件、浏览器和消息工具的代理执行。代理能做的一切,skill 都能让它去做。与来自网页的提示注入不同,后者有时可以被模型识别为外部内容,而 skill 是通过合法指令通道传入的。

虚假依赖
该 skill 以技术前置条件为名,要求下载并执行外部安装脚本。代理照做后,脚本安装了恶意软件。这是 2026 年初 ClawHub 上记录最充分的模式。
Exfiltration
这些指令要求将对话内容、配置文件或凭据发送到外部地址,通常以“日志记录”或“同步”为名。
持久劫持
该 skill 会修改代理的记忆或指令,或者添加计划任务。如果不重新审阅这些文件,卸载它之后影响仍会持续。
Usurpation
名称接近某个已知 skill,描述照搬而来,作者则是前一天才创建的。注册表无法防止同名混淆。
恶意更新
安装时诚实的 skill 可能在下一个版本中改变内容。每次更新都必须重新审查。
i
本地模型也无法改变这一点
在自己的 GPU 上运行模型,可以保护您的对话不被在线服务商获取。但它无法防范恶意技能:无论模型运行在哪里,指令都会由代理的工具在您的机器上执行。OpenClaw 的文档建议使用您拥有的能力最强的模型,因为它更能抵御欺骗性指令,但没有任何模型能完全免疫。我们关于本地提示词注入的指南详细介绍了这一机制。

#安全研究人员在 ClawHub 上发现了什么

多个团队在项目走红浪潮期间、即一月底至 2026 年 3 月之间分析了该注册表。我们没有复现他们的分析。以下数字是各报告截至其发布日期的数据,而注册表此后已经发生变化。按照我们的编辑方针,我们既不发布恶意 skills 列表,也不提供指向这些列表的链接。

Koi Security,2026 年 2 月 1 日
研究人员描述了一场他们称为 ClawHavoc 的活动:在首份报告中,他们确认 ClawHub 发布的 341 个 skill 具有恶意性质。许多 skill 利用伪造依赖的方式,在 macOS 上安装信息窃取程序。同一批研究人员随后在之后的文章中上调了这一总数。
Cisco,2026 年 2 月
Cisco 的研究团队分析了注册表中的一个热门 skill,并证明其中包含指示代理在用户不知情的情况下向第三方服务器传输数据的指令。Cisco 随后发布了一个用于分析 skill 的开源工具,并得出结论:这类个人代理需要一种安全框架,而大多数用户目前还没有这种框架。
Snyk,2026 年 2 月
Snyk 在其 ToxicSkills 报告中表示,他们分析了 ClawHub 的 3 984 个 skill。根据该报告,其中 13,4% 至少存在一个安全问题,76 个被判定为恶意 skill,主要问题包括凭据窃取和带有陷阱的安装脚本。
Kaspersky,2026 年初
Securelist 发布的分析将 skills 放在更大的背景中考察:暴露在互联网中的网关、于 2026 年 1 月底修复的漏洞 CVE-2026-25253,以及以明文存储在配置文件夹中的机密信息。其建议与本指南一致:隔离、限制权限、不要暴露任何内容。

该项目已经采取了行动。根据其 2026 年 2 月的公告,ClawHub 现已与 VirusTotal 合作,对发布的 skill 进行恶意代码自动分析,并移除被标记的 skill。这很有用,但仍然不够:自动分析可以识别已知脚本和明显模式,却无法识别措辞巧妙的指令。阅读仍是您的责任。

!
这些攻击之所以有效的原因
在所有有记录的案例中,用户本人都没有执行任何操作。他安装了一个 skill,随后由智能体遵循其中的指令。skill 的受欢迎程度、下载次数或评分都不能说明其内容:在报告发布时,多个被植入陷阱的 skill 位列下载量最高之列。

#安装第一个 skill 之前应先确立的框架

本指南假设您已经安装了 OpenClaw。如果尚未安装,我们的 Docker 安装指南会详细说明部署过程,而 OpenClaw 介绍则帮助您判断该工具是否适合自己。在添加任何第三方 skill 之前,请核对这四点。

最新版本
skill 只是攻击面之一。旧版网关仍容易受到此前已修复的漏洞攻击,其中包括 CVE-2026-25253。请先更新,然后重新运行诊断。
一次规范的审计
内置审计命令会报告危险设置:网关暴露、配对已禁用、工具对所有人开放。请在扩展代理之前全部修正。
一台专用机器
不是你的工作站,也不是存放密码管理器或个人 SSH 密钥的机器。可以使用虚拟机、迷你电脑或租用的服务器。
一个被命名的需求
skill 用于处理你已经在做的一项具体任务。为了“以防万一”而安装 skill,只会增加风险,不会带来收益。
终端 — 安装前的现状检查
# Mettre à jour OpenClaw puis vérifier l'installation
openclaw update
openclaw doctor

# Audit de sécurité de la passerelle et de ses réglages
openclaw security audit --deep

# Inventaire des skills déjà présentes et de leurs prérequis
openclaw skills list
openclaw skills check

清单可能会让你感到意外:随 OpenClaw 交付的 skills 已经处于启用状态。请花时间阅读那些你不了解的 skill,并禁用你不需要的 skill。其原则与服务器相同:每个处于活动状态的组件都应有存在的理由。

#启用 OpenClaw skill 前先阅读:方法

典型错误是先安装、后阅读。只要某个 skill 出现在 OpenClaw 加载的文件夹中,代理就可以读取并遵循它。因此,正确做法是先将 skill 放入网关不会监视的隔离文件夹中,检查完毕后再移动它。对于大小合理的 skill,请预留十到十五分钟。如果 skill 太长而无法阅读,这本身已经是一条信息。

  1. 01
    获取但不启用
    在 OpenClaw 加载的目录之外创建一个隔离目录,并在启动 ClawHub 工具前进入该目录。它默认会安装到当前目录或检测到的工作区中的 skills 子目录:请检查它最后显示的路径。您也可以先在注册表页面阅读技能,再下载任何内容。
  2. 02
    完整阅读 SKILL.md
    先看标题:名称是否与您要找的内容相符,声明的前置要求是否与任务一致?RSS 信息流摘要技能不需要包含密钥的环境变量。然后逐句阅读正文,每看到一条指令都问自己:如果代理严格照做,我的机器会发生什么?
  3. 03
    盘点文件
    列出目录中的全部内容,包括隐藏文件。每个脚本、压缩包或二进制文件都必须有指令作为依据。SKILL.md 从未提及的文件就是警告信号。二进制文件和压缩包应拒绝:您无法阅读它们。
  4. 04
    查找已知模式
    下载后执行、Base64 解码、动态代码求值、权限提升、外部地址、指向配置目录或密钥的路径。下面的命令会自动完成初步检查。还要查找不可见字符:指令可能隐藏在看似空白的文本中。
  5. 05
    核实作者和历史记录
    账号创建日期、其他发布内容、历次版本、引用的代码仓库,以及与下载内容是否对应。由匿名账号发布的知名服务“官方”技能,在获得相反证据前都应视为冒充。
  6. 06
    做出决定,并记下原因
    只要某条指令要求执行从网上获取的脚本,即使其他内容都很干净,也足以拒绝。若您接受了它,请保留所阅读版本的副本:下一次更新时要与它进行比较。
终端——对隔离中的 skill 进行第一轮检查
cd ~/quarantaine-skills/nom-de-la-skill

# Tout le contenu, fichiers cachés compris
find . -type f | sort

# Téléchargement + exécution, décodage, évaluation dynamique, droits
grep -rniE 'curl|wget|bash -c|sh -c|base64|eval|chmod \+x|sudo' .

# Toutes les adresses externes citées
grep -rnoE 'https?://[^ )"]+' . | sort -u

# Accès aux secrets et à la configuration de l'agent
grep -rniE '\.openclaw|openclaw\.json|\.ssh|keychain|token|api[_-]?key|password' .

# Caractères invisibles (espaces de largeur nulle, marque d'ordre des octets)
grep -rnP '[\x{200B}\x{200C}\x{200D}\x{2060}\x{FEFF}]' . || echo "Aucun caractère invisible trouvé"

这些命令不会替你做决定。合法的 skill 可能会引用外部地址,因为它需要查询公共 API;也可能使用 curl,因为这就是它的功能。真正的信号在于 skill 宣称的内容与实际行为之间的差异。一个读取你的配置文件来汇总 RSS 流的 skill 没有任何借口。

→
让模型进行复核,但不要信任它
您可以在不使用工具的会话中要求本地模型列出该 skill 的功能,并指出超出其描述的部分。这有助于避免遗漏,但不是裁决:模型本身也可能被它重新阅读的文本欺骗。最终决定仍由您阅读后作出。

#以尽可能少的权限安装

重新检查 skill 后,将其移入工作区的 skills 文件夹,或让 ClawHub 工具将其安装到正确位置。随后,可以通过 ~/.openclaw 目录中的 openclaw.json 文件配置 OpenClaw,禁用该 skill、为其提供专用密钥,并将交付的 skills 限制为你实际使用的那些。密钥的确切名称会随版本变化:以文档中的 skills 页面为准。

~/.openclaw/openclaw.json — 摘录,需根据您所用版本的文档进行调整
{
  "skills": {
    "allowBundled": ["nom-de-skill-livree-que-vous-utilisez"],
    "entries": {
      "resume-flux-rss": { "enabled": true },
      "skill-en-cours-de-relecture": { "enabled": false },
      "skill-qui-appelle-un-service": {
        "enabled": true,
        "apiKey": "cle-dediee-a-cet-usage-et-plafonnee"
      }
    }
  }
}
默认禁用
已安装但尚未重新阅读,或已阅读但暂时不需要的 skill,都必须显式禁用。禁用的条目不会提供给模型。
专用密钥
如果某个 skill 需要访问某项服务,请为此用途创建专用密钥,设置支出上限,并将权限范围限制在尽可能小的程度。绝不要使用你的主密钥,也绝不要使用多个 skill 共享的密钥。
专用账户
账户也是同样的逻辑:读取日历或邮箱的 skill 会获得一个为代理创建的账户,而不是您的账户。
精简附带的 skills
将交付的 skill 列表限制为您实际使用的那些。模型的选项越少,误导性指令可利用的杠杆就越少。
不自动更新
不要一次性对所有 skill 进行批量更新。请一次更新一个 skill,将新版本与您保留的副本进行比较,然后重新启用。

每次更改后,重新运行清单和诊断。skill 验证命令会告诉您该 skill 是否处于活动状态、其前置条件是否满足,以及它需要哪些变量。如果它要求您未预先准备的变量,请回到阅读步骤。

#隔离代理:限制恶意 skill 能够触及的范围

阅读会降低安装恶意 skill 的概率。隔离会降低误操作造成的后果。两者都不可或缺,而且后者比前者更重要:您总有一天会漏读,或者错过一次更新。目标是让试图窃取您秘密的 skill 无法找到任何可窃取的内容,让试图安装自身的脚本无处安装。

用于执行的沙箱
OpenClaw 可以在 Docker 容器中运行智能体工具,而不是直接在机器上运行。默认情况下,这种隔离针对的是除你之外的其他对话;文档说明了如何将其扩展到所有会话。使用容器时,恶意命令作用于一次性的系统,而不是你的主机。
已移除的工具
该配置允许禁止代理使用某些工具。如果您的技能都不需要浏览器或工作区之外的文件写入权限,就将这些工具移除。技能无法使用代理不具备的工具。
专用系统账户
网关以一个无法访问您的 SSH 密钥、文档或管理权限的用户身份运行。Docker 挂载仅允许访问 ~/.openclaw 目录。
封闭网络
网关仍在本地监听,默认监听 127.0.0.1 和 18789 端口;远程访问通过 SSH 隧道或 VPN 进行。如果防火墙允许,还应将代理的出站连接限制为它确实需要连接的服务:数据外泄需要出口。
性能出色的型号
能够很好理解指令的模型,更能抵御具有欺骗性的指令。在本地运行时,这意味着模型至少应有 140 亿参数,即在 Q4_K_M 下约需 9 GB 显存,并拥有较大的上下文窗口。我们关于使用 Ollama 的 OpenClaw 指南详细说明了这一选择。
!
沙箱无法保护智能体的机密
容器可以隔离宿主机。但从设计上说,它不会隔离代理有权读取的内容:其记忆文件、交给它的密钥,以及它所连接的消息平台。被植入陷阱的 skill 仍然可以通过合法工具,让代理自行发送这些内容。因此,应使用专用且设有额度上限的密钥、分离的账户,并定期复核记忆。

如果代理通过 MCP 协议连接到外部工具,则相同规则适用于每个 MCP 服务器:启用前先读取、最小权限、隔离。我们关于服务器 Ollama 的指南,以及对 OWASP 针对 LLM 的 Top 10 项目的解读,提供了这些措施的总体框架。

#监控、移除、报告

安装的 skill 并不等于可信资产。有三种习惯可以减少意外。第一:时不时重新阅读工作区中的记忆文件和指令文件,它们只是普通的 Markdown。任何不是你写入的行都必须先理解,再删除。第二:添加 skill 后查看网关日志,确认执行的命令和访问的地址符合预期。第三:每次配置变更后重新进行安全审计。

终端 — 移除一个 skill 并从干净状态重新开始
# 1. Désactiver la skill dans ~/.openclaw/openclaw.json (enabled: false),
#    puis supprimer son dossier
rm -rf ~/.openclaw/workspace/skills/nom-de-la-skill

# 2. Redémarrer la passerelle et vérifier l'inventaire
openclaw gateway restart
openclaw skills list

# 3. Relire la mémoire et les consignes de l'espace de travail
ls -la ~/.openclaw/workspace

# 4. Refaire l'audit
openclaw security audit --deep

如果事后发现某个 skill 被植入了陷阱,请将代理能够接触到的一切视为已遭入侵:撤销并重新创建它持有的 API 密钥,更改交给它使用的账户密码;如果代理在没有沙箱的情况下运行,还要检查主机。随后在注册表中举报该 skill;如果它曾运行恶意脚本,也要向跟踪这些活动的团队报告:上文引用的报告都始于举报。

→
编写自己的 skill
对于简单任务,自己编写一个二十行的 SKILL.md,通常比重新阅读一个三百行的第三方 skill 更快。你了解每一条指令,其中没有脚本或依赖项,更新也不依赖任何人。该格式有文档说明,本地模型可以帮助你起草第一版,然后由你重新审阅。

#来源

本指南不包含任何本地测量。命令和配置密钥来自 OpenClaw 文档,而该文档变化很快:如有差异,以文档为准。关于恶意 skill 的结论来自以下报告;撰写本文时查阅了这些报告,其中 Koi Security 和 Snyk 的报告发布在两家公司的博客上。

OpenClaw 文档:skills
https://docs.openclaw.ai/tools/skills
OpenClaw 文档:ClawHub 注册表
https://docs.openclaw.ai/tools/clawhub
OpenClaw 文档:网关安全
https://docs.openclaw.ai/gateway/security
Kaspersky(Securelist):OpenClaw 安全分析
https://securelist.com/openclaw-security/120484/
Cisco:OpenClaw 等个人 AI 代理是安全噩梦
https://blogs.cisco.com/ai/personal-ai-agents-like-openclaw-are-a-security-nightmare
CVE-2026-25253 漏洞详情
https://nvd.nist.gov/vuln/detail/CVE-2026-25253

#深入了解

skill 只是本地代理安全体系的一部分。本网站的这些指南涵盖其余方面:

提示注入:本地部署并不能保护你
模型读取的文本转化为指令的机制,以及为什么在本地运行模型还不够。https://quelllm.fr/guide/injection-de-prompt-llm-local
OWASP LLM 十大风险:企业级本地 AI 安全指南
面向 LLM 应用的十项特有风险框架,其中包括供应链风险和智能体自主性过强。https://quelllm.fr/guide/owasp-top-10-llm-securite-locale
保护你的 Ollama 服务器
身份验证、反向代理和暴露面:模型侧的措施,与智能体侧的措施相互补充。https://quelllm.fr/guide/securiser-serveur-ollama
MCP 是什么?
将模型连接到外部工具的协议,以及每添加一个服务器所意味着的事项。https://quelllm.fr/guide/mcp-c-est-quoi-model-context-protocol
OpenClaw:是什么,需要安装吗?
项目介绍、先决条件和一般风险,帮助你在安装前做出决定。https://quelllm.fr/guide/openclaw-c-est-quoi
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。