OpenClaw 全面安全性深度方案
一、引言
OpenClaw作为一款具备强大自主执行能力的AI智能体框架,能够实现文件读写、命令执行、工具调用和网络访问等功能。然而,这些强大的能力也伴随着极高的安全风险。如果部署和使用不当,攻击者可能通过提示注入、恶意技能插件、权限滥用等方式,利用OpenClaw窃取敏感数据、破坏系统完整性甚至接管主机。因此,构建一套全面的安全防护体系至关重要。
二、OpenClaw安全风险分析
2.1 高危漏洞
根据安全研究机构的数据,OpenClaw目前存在多个已记录的CVE漏洞,主要涉及以下几个高危风险:
- 远程代码执行(RCE)漏洞:OpenClaw最致命的安全问题在于其沙箱机制存在缺陷,攻击者可以绕过隔离限制,在目标系统上执行任意代码。一旦RCE漏洞被利用,攻击者可以完全控制受感染的服务器、窃取敏感数据、部署勒索软件,甚至将服务器作为跳板攻击内网。
- CVE-2026-25253: SSRF漏洞:该漏洞源于OpenClaw的控制界面对URL参数(如
gatewayUrl)缺乏严格的校验。攻击者可以诱导用户点击恶意链接,使OpenClaw向内部网络发起请求,可能导致内网端口扫描、访问云服务元数据(如AWS IAM凭证)和攻击内部系统。 - 18789端口零认证问题:OpenClaw的Gateway组件默认监听18789端口,且在默认配置下无需认证即可访问。全球超过42,000 - 135,000个OpenClaw实例暴露在公网,任何人都可轻易找到这些实例并尝试攻击。攻击者通过该漏洞可以获取用户数月内的私人消息记录、账户登录凭证、API密钥和敏感令牌。
- 提示词注入(Prompt Injection):OpenClaw的核心依赖LLM理解指令,但也因此容易受到提示词注入攻击。攻击者可以在网页中埋藏恶意指令,当OpenClaw读取该网页时,就会被诱导泄露用户密钥或执行其他恶意操作。
2.2 默认配置缺陷
OpenClaw的默认配置本身就埋下了安全隐患的种子:
- 默认无身份认证:出厂配置未启用任何身份验证,暴露在网络上的实例可被任何人远程访问,执行命令、读取文件、窃取凭据。
- API密钥明文存储:OpenClaw默认将AI服务、云服务的API密钥以明文形式存储在本地配置文件中。一旦实例被入侵,攻击者可直接获取相关服务密钥,造成经济损失。
- 信任边界模糊:OpenClaw错误地将所有来自localhost的连接视为可信来源,未做额外的身份校验。攻击者可利用此特性,通过浏览器中的恶意JavaScript发起本地WebSocket连接,绕过认证机制。
2.3 供应链风险
OpenClaw的第三方技能市场ClawHub成为另一大风险源。安全审计显示,约36.82%的ClawHub技能存在可被利用的安全缺陷,更令人警惕的是,341个恶意技能包被发现包含键盘记录器、凭据窃取器等恶意代码。默认配置下,AI甚至可自动安装技能,不经用户确认——这无异于为攻击者打开了后门。
三、安全防护体系构建
3.1 部署阶段:从源头消除暴露风险
3.1.1 环境隔离
- 专用设备/虚拟机/容器部署:建议使用专用设备、虚拟机或容器安装OpenClaw,并做好环境隔离,不宜在日常办公电脑上安装。可以用闲置旧电脑专门运行,清空个人数据;也可以用VMware、VirtualBox、Docker创建独立虚拟机或容器,并与宿主机隔离;还可以在云服务器部署,本地仅远程访问。
- Docker沙箱配置:使用Docker部署OpenClaw时,应采用安全的Dockerfile和启动脚本,限制容器权限,禁止修改系统,仅开放必要目录。例如:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# 只读权限 + 禁止修改系统
RUN chmod -R 555 /app
USER nobody
# 仅开放必要目录
VOLUME ["/app/output"]
ENTRYPOINT ["python", "main.py"]
安全启动脚本:
# 安全启动:仅挂载输出目录 + 禁止访问主机文件 + 无root权限
docker run -it --rm \
--read-only \
--user nobody \
--memory 512m \
--cpus 1 \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/output:/app/output \
--net=host \
openclaw-safe
3.1.2 最小权限用户
创建专用低权限用户运行OpenClaw,禁止使用root或管理员权限。例如:
sudo adduser --shell /bin/rbash --disabled-password clawuser
仅开放必要命令,强制只读PATH,禁止root/管理员运行。
3.2 配置阶段:贯彻最小权限与强制认证
3.2.1 强制启用身份认证
务必在配置中添加认证令牌,例如在openclaw.json中配置高强度的密码或Token:
{
"gateway": {
"bind": "127.0.0.1",
"port": 18789,
"token": "你的强密码令牌(至少32位)",
"auth": {
"enabled": true,
"requireToken": true
}
}
}
开启DM配对策略,将聊天软件的配对策略设置为pairing(需验证码)或allowlist(白名单),绝对禁止设置为open。
3.2.2 权限控制
遵循最小权限原则,为OpenClaw使用专用的低权限系统账户运行,严禁以root或管理员身份运行。在容器或虚拟机中隔离运行,形成独立的权限区域。
- 路径白名单:编辑OpenClaw配置文件
~/.openclaw/openclaw.json,添加路径白名单,禁止访问敏感目录:
{
"security": {
"allowedPaths": ["/opt/openclaw-work"],
"blockedPaths": [
"/Users", "/home", "/Desktop", "/Documents",
"/Downloads", "/Library", "/System", "/root"
],
"allowSystemCommands": false,
"allowScreenCapture": false,
"allowAccessibility": false
}
}
- 工具权限管理:在
openclaw.json中配置工具执行策略,明确构建一个“拒绝列表(Deny List)”,永久禁止高危操作,如Bash(curl)、Bash(wget)等数据外传命令,以及Read(/.ssh/)、Read(/.aws/)等敏感目录的读取权限。
3.2.3 加密存储敏感凭证
避免API密钥明文保存在配置文件中,使用环境变量注入。创建.env文件(务必加入.gitignore):
OPENCLAW_API_KEY=sk-your-actual-key
OPENCLAW_ORG_ID=org-xyz789
代码中读取:
import os
from dotenv import load_dotenv
load_dotenv()
client = OpenClaw(api_key=os.getenv("OPENCLAW_API_KEY"))
3.3 运行阶段:建立实时监测与阻断能力
3.3.1 技能/插件安全
- 仅安装官方认证技能:拒绝不明来源插件,仅安装官方认证 + 社区高星技能。安装前审查代码,检查是否有越权操作、敏感路径访问。
- 启用技能白名单:在配置中启用技能白名单,仅允许必要技能运行。
- 定期安全审计:使用官方提供的安全审计工具定期进行安全审计,例如:
openclaw security audit
进行常规检查,扫描入站访问控制、网络暴露面及本地文件权限;也可以使用openclaw security audit --deep进行深度探测,执行实时的网关探测,模拟攻击者尝试发现潜在的暴露点;还可以使用openclaw security audit --fix进行自动修复,自动实施安全加固。
3.3.2 指令过滤
- 高危指令拦截:在项目中添加高危指令拦截脚本,禁止危险操作。例如:
# OpenClaw 指令安全过滤器 - 禁止危险操作
DANGER_KEYWORDS = [
"删除", "格式化", "rm -rf", "del",
"密码", "支付", "转账", "私钥",
"注册表", "磁盘", "格式化",
"关闭防火墙", "卸载", "格式化D盘",
"cmd", "powershell", "管理员"
]
def check_safe(prompt):
for kw in DANGER_KEYWORDS:
if kw in prompt:
return False, f"安全拦截:包含危险指令 {kw}"
return True, "安全"
- 提示词注入检测:实时分析用户发送给OpenClaw的每一条指令,识别其中是否包含越狱攻击、角色扮演欺骗或指令注入等恶意模式。常见的检测策略包括关键词匹配、语义分析和格式异常检测。
3.3.3 日志审计
开启详细日志记录,监控异常的网络连接,定期审计执行历史。日志应记录时间戳、发起人、操作指令、执行结果等信息,例如:
2026-01-15 14:32:10 | User: @Admin | Action: Delete /data/log | Status: Denied (Permission)
这能帮助开发者快速区分是AI幻觉还是恶意攻击。
3.4 应急阶段:建立快速响应机制
- 定期检查并修补漏洞:及时关注OpenClaw官方安全公告、工信部NVDB平台等漏洞库的风险预警,及时更新至最新版本,及时修复已披露安全漏洞。
- 应急响应预案:
- 立即隔离:断开受影响实例的网络。
- 遏制影响:轮换所有可能泄露的API密钥和凭证。
- 调查取证:分析审计日志,确定攻击入口和影响范围。
- 恢复与加固:从干净备份恢复,并实施额外的加固措施。
四、安全架构图
该架构图展示了从公网到核心执行层的多层安全防护体系,包括以下关键组件:

- 系统防火墙/反向代理:第一道物理防线,仅允许加密隧道流量进入,其余默认拦截。
- 接入渠道层和远程管理接入层:接入渠道层仅白名单用户可触发,远程管理接入层通过SSH隧道/Tailscale等方式进行,所有流量必须经过Gateway校验。
- OpenClaw Gateway:唯一总入口,包含认证模块、白名单校验和权限管控核心。
- Control UI / dashboard:最高权限管理面,仅通过SSH隧道/Tailscale虚拟局域网访问,公网完全不可见。
- 核心执行层:包括Agent、技能、配置和会话数据等,运行在隔离的Docker沙箱/非root用户环境中,最小权限运行,避免入侵后影响整个服务器。
五、结论
OpenClaw作为一款强大的AI智能体工具,在带来便利的同时也存在不容忽视的安全风险。通过构建全面的安全防护体系,包括部署阶段的环境隔离和最小权限用户配置、配置阶段的强制认证和权限控制、运行阶段的实时监测和指令过滤,以及应急阶段的快速响应机制,可以有效降低OpenClaw的安全风险,保障系统的安全性和稳定性。同时,用户也需要提高安全意识,遵循安全最佳实践,定期进行安全审计和漏洞修复,以应对不断变化的安全威胁。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)