headphones
Skill扫描并非安全边界
CertiK
CertiK
03-18 09:40
Follow
Focus
真正的安全,始于平台预设一定会有危险Skill绕过审核,并通过运行时的设计,确保这些漏网的风险不会立刻导致宿主设备被攻破。真正关键的转变,从“追求完美检测”转向务实的“实现损害遏制”。
Helpful
Unhelpful
Play

作者:CertiK

1. OpenClaw、Skill与核心隐患

OpenClaw是一款开源、自托管的个人AI智能体平台,专为在本地设备或服务器上运行设计,支持长期记忆、自主运行、与主流大语言模型(LLM)集成,还可通过Telegram等即时通讯平台实现远程控制。在实际应用中,OpenClaw的核心定位是代表用户执行操作。根据部署方式的不同,它可访问本地文件、调用工具、连接外部服务,以及在宿主环境(Host Environment)内执行命令。

如果把OpenClaw比作底层操作系统,那么Skill就是它上面的应用程序。Skill能够拓展智能体的能力边界,从网页搜索、社交内容发布等低风险任务,延伸至钱包操作、链上交互、系统自动化等高度敏感的领域。Skill在同一个运行时环境(供Skill代码运行、调度系统资源的专属环境)中执行,可能继承对本地资源、网络连接和工具接口的访问权限。

在高权限的智能体环境中,即便核心平台本身可信,也不能简单默认第三方Skill是安全的。而行业针对这一问题的通用解决方案,就是Skill扫描。

2. Clawhub如何审核Skill?

随着OpenClaw生态的不断扩张,Clawhub自然而然成为了其生态的应用市场层:开发者发布Skill,用户安装下载,整个生态通过第三方扩展持续壮大。

一旦平台开始分发运行在高权限环境下的第三方代码,某种形式的审核就变得不可避免。Clawhub也正是朝着这个方向发展,其审核流程从最初轻量化的信任模型,逐步演变为一套分层管控流程,已涵盖VirusTotal、基于AI的内部审核;以及于2026年3月8日在公共代码仓库上线的静态审核引擎。

从宏观来看,Clawhub目前的审核流程主要结合两大检测来源:VirusTotal与OpenClaw内部的审核系统。这两类扫描结果共同决定Skill的风险分类,以及用户在安装过程中是否会看到安全警告。

这一设计体现了行业内常见的一种权衡取舍:既要保持生态的开放性,又要向用户提示风险信号。一旦安装决策依赖于弹窗提示和用户确认,安全警告就开始承担部分安全防护的职责。而这一模式生效的核心前提,是运行时底层已经实现了有效的隔离机制。

面对这一问题,最直观的应对策略是增加更多的扫描、分类器和安全警告。但问题的核心,并非如何更精准地检测恶意Skill。扫描的确有助于风险分级,却无法成为安全边界。就像苹果公司并非仅靠App Store的审核来保障其生态安全,其核心依托的是操作系统强制实现的沙箱机制、权限管控与环境隔离。这一原则在此处同样适用:如果审核和弹窗提示承担了绝大部分防护工作,就说明运行时边界的防护作用严重不足。

OpenClaw确实具备沙箱机制和运行时管控的能力;但问题在于,这些能力主要是可选而非强制、管控粒度过粗,且高度依赖部署配置,无法作为第三方Skill的默认安全边界。OpenClaw官方文档也明确说明:基于Docker的沙箱机制是可选功能;沙箱关闭时,宿主工具仍可被调用;沙箱部署位置、工具策略、高权限宿主执行权限,均为独立配置项。

此外还存在一个实际部署层面的问题:如果一款沙箱使用门槛高、需要用户反复确认,或是会导致大量常用Skill功能失效,那么它在实际应用中就很难成为默认运行模式。用户和运维人员往往会为了保证系统可用性,放弃使用沙箱。而一旦出现这种情况,平台就只能退而依靠审核和警告,去承担它们从一开始就无力承载的安全防护重任。

3. 静态检测与其局限性

截至2026年3月8日(UTC时间),Clawhub的公共代码仓库已上线静态审核引擎,同步推出的还有结构化审核快照,以及整合后的VirusTotal与大语言模型检测结果处理机制。

该引擎的核心入口为moderationEngine.ts[1]字中的runStaticModerationScan(),代码检测的核心逻辑则位于scanCodeFile()中。

相比传统安全产品通常处理的输入对象,Skill的扫描难度更高,因为它们混合了代码、自然语言、清单文件、指令、工具调用逻辑和运行时行为。在这里,检测盲区绝非偶然现象,它们是该问题与生俱来的顽疾。

静态规则主要检测特定风险模式,例如:child_process与进程创建API、; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; vertical-align: bottom; height: auto !important; visibility: visible !important; width: 624px !important;"/>

公开的安全Skill self-improving-agent顺利安装,未触发任何警告,这在我们的预期之内。我们定制的test-web-searcher,在VirusTotal仍处于待处理状态时,同样在无有效安全警告的情况下完成了安装。与之形成对比的是,公开的Skill clawpay-escrow却触发了安全弹窗,需要用户明确确认方可安装。

随后,我们通过Telegram向OpenClaw发送指令,调用了test-web-searcher。漏洞导入路径被成功触发,最终在宿主设备上实现了任意命令执行。在演示环境中,我们成功弹出了计算器程序,以此作为完成任意命令执行的证明。

这个存在漏洞的Skill,安装流程与安全Skill毫无差别。无论是通过命令行还是Telegram安装,全程都没有出现有效的安全警告。这暴露了问题的核心:审核信号被当作了真实安全边界的替代品,而一款高风险Skill,在安装环节的表现,却可以与安全Skill完全一致

6. 检测机制失效的根本原因

我们设计的测试用例,并非复杂的对抗性样本。我们只是植入了一个漏洞,仅通过轻量级的代码变换来降低被检出的概率。真实的攻击者会做得更绝:他们会极其谨慎地隐藏攻击路径,将恶意逻辑伪装得贴近正常代码,以及针对审核流程做专门的对抗优化。绝不仅仅是“标为可疑却仍可安装”,而是那些被植入后门、却能成功骗过双层审核机制的危险Skill。

我们的概念验证已经足以勾勒出问题的严重性:静态检测规则可以通过代码重写绕过;AI审核虽有辅助作用,但相比于从看似合理的工作流中全面挖掘可利用逻辑,它显然更擅长曝光那些明显的危险信号;而依赖于非强制沙箱、部署规范或用户手动加固的运行时控制机制,根本无法可靠地阻止这些漏网的恶意代码入侵宿主设备。

综上,这些并非孤立的安全弱点,而是重度依赖审核的安全模型的必然局限。

检测机制依然有其存在的价值,它可以降低安全噪音、捕获低水平的恶意攻击,以及发现值得深入调查的风险信号。然而,捕捉可疑信号是一回事;要为运行在高权限环境下的第三方代码(Skill),设下一道真正的安全防线,则完全是两个概念。

平台必须树立底线思维,默认必定会有漏网的危险Skill成功渗透。一旦接受了这个前提,真正的核心问题就不再是“如何增加更多的审核环节”,而是“运行时是否能够遏制这些漏网的风险”。

目前,过高的安全期望仍被寄托在检测机制上,而检测机制注定无力承担此重任。

7. 安全建议与结论

对于AI智能体开发者而言,核心优先级非常明确:在扩大对Skill审核的信任之前,先强化运行时的安全能力。

首先,沙箱隔离应当成为第三方Skill的默认配置。第三方代码必须默认运行在隔离环境之中,而不应仅仅依赖于用户或运维人员手动选择加固系统时才启用。

其次,运行时环境应强制执行基于Skill的权限模型。每个Skill都必须在启动前预先声明其所需的资源与权限,运行时在执行环节严格管控权限的使用,这一逻辑与现代移动操作系统的做法一致。绝不允许第三方Skill从宿主机环境中直接继承宽泛的信任权限。

对于终端用户而言,核心结论更为简单:“安全”标签绝非安全的证明。它仅意味着当前的审核流程,未以改变安装流程的方式标记该Skill存在风险。在强隔离机制成为默认配置之前,仅建议将OpenClaw部署在低价值环境中,远离敏感文件、凭据信息以及高价值资产。

从更宏观的视角来看,问题的核心并非扫描器需要优化,而是审核机制被要求承担了过多的安全防护职责。审核可以协助风险分级、捕获明显的恶意攻击,但绝不能成为高权限智能体的核心安全保障。真正的安全,始于平台预设一定会有危险Skill绕过审核,并通过运行时的设计,确保这些漏网的风险不会立刻导致宿主设备被攻破。真正关键的转变,从“追求完美检测”转向务实的“实现损害遏制”。

Open App for Full Article
DisclaimerThis website, hyperlinks, related apps, forums, blogs, media accounts, and other platforms' content are all sourced from third-party platforms and users. CoinWorldNet makes no guarantees about the website or its content. All blockchain data and other materials are for educational and research purposes only and do not constitute investment, legal, or other advice. Users of the CoinWorldNet and third-party platforms are solely responsible for the content they post, which is unrelated to CoinWorldNet. CoinWorldNet is not liable for any loss arising from the use of this website's information. You should use the data and content cautiously and bear all associated risks. It is strongly recommended that you independently research, review, analyze, and verify the content.
Comments(0)
Popular
Latest

No Comments

edit
comment
collection
like
share