2026年3月6日,深圳腾讯大厦门口排起长龙,近千名开发者与AI爱好者在此等候,只为免费安装一个名为OpenClaw的AI智能体。这场被戏称为“比新年发利是还热闹”的活动,让“云上养虾人”的规模在短短数日内突破10万。
OpenClaw之所以如此火爆,在于它打破了传统AI“只说不做”的局限——它能够真正执行操作:整理桌面、发送邮件、运营小红书账号,甚至构建自动选股系统。用户只需在聊天窗口下达指令,OpenClaw就能像真人一样操作电脑。
然而,能力越强,风险越大。
“我担心部署在本地电脑上的安全问题,万一误删文件或泄露隐私怎么办?”
这种担忧并非杞人忧天。OpenClaw需要获取较高的设备访问权限才能驱动本地工具执行任务。一旦权限管理出现漏洞,用户数据与系统安全都可能面临威胁。已有开发者在社区中提出相关质疑,甚至有报道指出,OpenClaw可能因执行错误指令造成不可弥补的损失。
这正是JEP 开发JEP Guard的初衷——为OpenClaw装上“安全护栏”。
3.1 什么是JEP Guard?
JEP Guard是一个开源的安全插件,专门为OpenClaw设计。它的核心功能是拦截高风险命令(如rm、mv、cp等),在执行前要求用户确认,并记录所有操作日志,可选生成基于JEP协议的密码学收据,为事后追溯提供法律级证据。
JEP(Judgment Event Protocol)本身是一个已提交IETF的互联网草案(draft-wang-hjs-judgment-event),专注于解决AI决策的责任归属问题。JEP Guard是其首个面向普通用户的落地应用。
3.2 核心功能
| 功能 | 说明 | 安全价值 |
|------|------|----------|
| 高风险命令拦截 | 拦截rm、mv、cp等破坏性命令 | 防止误删、恶意操作 |
| 用户确认弹窗 | 执行前弹出对话框,需用户确认 | 用户对高风险操作有最终决定权 |
| 临时授权令牌 | 允许一次操作后自动失效(5分钟有效期) | 避免权限长期开放 |
| 审计日志 | 所有操作记录到本地文件 | 可追溯、可审计 |
| JEP收据 | 可选生成密码学可验证的收据 | 提供法律级证据 |
| 隐私保护 | 默认只记录命令名,不记录敏感参数 | 防止密码、令牌泄露 |
1. 基于JEP协议的责任链设计
JEP Guard遵循JEP协议的四个原语设计:Judge(创建责任)、Delegate(转移责任)、Terminate(结束责任)、Verify(验证责任)。每次高风险操作都会生成一个JEP收据,记录“谁、在什么时间、执行了什么操作、是否经过授权”。
2. 隐私优先的日志策略
代码中内置了敏感信息过滤机制。当检测到命令中包含`token`、`key`、`secret`、`password`等敏感词时,会自动用`[REDACTED]`替换。用户可通过配置选择日志级别:minimal(仅命令名)、normal(脱敏参数)、verbose(完整参数,需谨慎)。
3. 环境变量的安全处理
针对环境变量可能被序列化为字符串的问题,代码实现了`parseAuthToken`函数,可安全解析不同格式的授权令牌,确保临时授权机制在各种环境下都能正常工作。
4.1 项目启动
最初的想法很简单:能不能给OpenClaw加一个“确认删除”的功能?就像电脑回收站那样,给用户一次反悔的机会。
带着这个想法,JEP fork了OpenClaw的技能开发文档,开始研究插件机制。OpenClaw的模块化设计让技能开发变得相对简单——只需要按照规范编写`sidecar.js`,在命令执行前插入拦截逻辑即可。
4.2 核心代码演进
v1.0.0:基础功能,拦截高风险命令,弹出确认对话框。
v1.0.1:收到社区反馈后,修复了环境变量序列化问题,移除了占位符密钥,增加了隐私警告。
v1.0.2:完善文档,删除未实现的功能描述,增加JEP收据生成。
4.3 关键代码片段
以下是JEP Guard的核心拦截逻辑(简化版):
```javascript
// 高风险命令列表
const HIGH_RISK_COMMANDS = ['rm', 'rmdir', 'mv', 'cp', 'format', 'dd', 'truncate'];
// 敏感信息过滤
function sanitizeArgs(command, args) {
const sensitivePatterns = [/token/i, /key/i, /secret/i, /password/i];
return args.map(arg =>
sensitivePatterns.some(p => p.test(arg)) ? '[REDACTED]' : arg
);
}
// 命令执行前拦截
module.exports = async function beforeCommand(command, args, context) {
// 检查是否为高风险命令
if (!HIGH_RISK_COMMANDS.includes(command)) {
return { allow: true };
}
// 检查是否有临时授权令牌
const tempAuth = parseAuthToken(context.env.JEP_TEMP_AUTH);
if (tempAuth?.expires > Date.now() / 1000) {
return { allow: true };
}
// 弹窗确认
const userChoice = await context.ui.confirm({
title: '⚠️ 高风险操作',
message: `执行命令: ${command} ${args.join(' ')}`,
buttons: ['✅ 允许一次', '🚫 拒绝']
});
if (userChoice === '✅ 允许一次') {
// 生成5分钟有效的临时令牌
const newAuth = {
id: crypto.randomUUID(),
expires: Math.floor(Date.now() / 1000) + 300
};
return {
allow: true,
env: { JEP_TEMP_AUTH: JSON.stringify(newAuth) }
};
}
return { allow: false };
};
```
4.4 社区反馈与迭代
发布后,收到了来自ClawHub社区的详细审核报告,指出了三个关键问题:
1. 隐私风险:日志可能记录敏感参数
2. 环境变量序列化问题
3. 占位符密钥问题
这些问题指引了后续版本的迭代方向,。
5.1 一键安装
```bash
claw install jep-guard
```
5.2 配置指南
```bash
# 查看当前配置
claw run jep-guard config
# 设置日志级别(推荐minimal)
claw run jep-guard config set logLevel minimal
# 生成JEP密钥对(可选)
claw run jep-guard keygen
# 导出审计日志
claw run jep-guard export
```
5.3 效果演示
当用户执行`rm -rf temp/`时,JEP Guard会弹出确认对话框:
```
⚠️ 高风险操作
OpenClaw 想要执行: rm -rf temp/
是否允许这一次?
[✅ 允许一次] [🚫 拒绝]
```
如果选择“允许一次”,操作执行,同时生成包含时间戳、用户、命令的审计日志。5分钟后,再次执行相同命令仍需确认。
基于JEP Guard的开发经验,给OpenClaw用户几点安全建议:
1. 部署在云上而非本地:腾讯云工作人员建议,云服务器是相对隔离的环境,所有操作都在云端执行,不触及本地文件,可避免误删或隐私泄露。
2. 安装安全插件:像JEP Guard这样的安全插件,可以为OpenClaw增加一层防护,让高风险操作必须经过确认。
3. 定期审查日志:养成查看审计日志的习惯,了解OpenClaw到底在做什么。
4. 谨慎授权:不要轻易给予OpenClaw“永久授权”,临时授权令牌用完即废。
JEP Guard目前已完成基础功能,后续计划包括:
- v1.1.0:增加操作白名单功能,允许用户配置可信命令
- v1.2.0:与腾讯云日志服务集成,支持云端审计
- v1.3.0:基于JEP协议的跨平台收据验证工具
JEP Guard完全开源,采用MIT-0许可证,欢迎开发者参与共建:
- GitHub仓库:[https://github.com/jep-eth/jep-claw-integration](https://github.com/hjs-eth/jep-claw-integration/tree/main/jep-guard)
- ClawHub地址:https://clawhub.ai/schchit/jep-guard
- JEP协议草案:[https://datatracker.ietf.org/doc/draft-wang-hjs-judgment-event/](https://datatracker.ietf.org/doc/draft-wang-hjs-judgment-event/)
OpenClaw的爆火,标志着AI正从“对话”走向“执行”。当AI真正开始动手做事时,安全与责任就成为不可回避的话题。JEP Guard是这一方向上的一个小小尝试——让AI在动手之前,先问问主人“我可以吗?”
期待更多开发者加入“养虾”行列,也期待更多人关注AI安全与责任这一重要议题。
---
作者简介:YQ,IETF互联网草案作者,OpenClaw技能开发者。
版权声明:本文为原创技术文章,首发于腾讯云开发者社区,未经许可不得转载
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。