1. OpenClaw为什么值得做一次安全复盘
1.1 先快速认识OpenClaw是什么
最近OpenClaw在智能体圈子里确实火得不像话。简单来说,它是一个面向个人开发者的AI智能体运行框架,可以让你用自然语言描述目标和任务,然后由它自己去调度模型、调用工具、管理记忆,甚至主动推送结果到你经常用的聊天软件里。从微博上看,大家折腾的方向五花八门:有人把它接入微信当个人助理,有人接到钉钉做项目提醒,有人给Companion配了本地大模型做陪伴对话,还有人拿它管理Obsidian笔记做长期项目规划。
这些玩法本身没什么问题,但问题恰恰出在“什么都能接”这件事上。我最近在社区里转了一圈,发现大量OpenClaw实例是以“默认配置”状态运行在云服务器或者家里NAS上的,控制台端口直接暴露在公网,没有鉴权也没有IP白名单。结合云上扫描器已经收录了OpenClaw相关指纹的消息,这个事就变得比较严肃了:它不再只是“个人玩具”,而是实实在在的网络暴露面。
这篇文章不是想劝退谁,而是想帮已经入坑或者准备部署OpenClaw的开发者,认真梳理一遍它的安全模型、默认配置里的坑、以及上线前必须做的加固操作。无论你是个人折腾还是打算做商业产品,这篇文章都值得花十分钟看完,因为智能体的权力越大,被滥用时的破坏力就越大。
1.2 架构特点决定了它的暴露面
OpenClaw的安全风险,根源在它的架构设计上。它不像传统Web应用那样是一个“前端页面+后端接口”的单体,而是一个常驻运行的Agent运行时,天然具备四个能力:调用大模型API、执行本机命令、读写文件系统、操作外部服务。这种能力的集合,本质就是一个“有权力的进程”。
从开源仓库和社区部署文档来看,OpenClaw的典型架构分为几层:
- 运行时核心层:负责Agent的启动、任务调度、工具注册和会话管理。
- 模型接入层:支持通过API网关连接云端大模型,也支持通过本地推理服务接入本地模型。
- 工具与技能层:以“Skill”方式提供技能扩展,可以读写文件、执行脚本、调用三方API。
- 记忆层:很多版本默认使用SQLite存储会话记录和“Active Memory”(长期工作记忆)。
- 交互通道层:支持命令行、Control UI网页控制台、Companion App,以及微信、钉钉、Telegram等IM机器人通道。
这五层里,任何一层暴露出去都可能成为攻击入口。更关键的是,OpenClaw的设计初衷是“少交互、多自主”,所以很多版本默认会开启一个常驻HTTP服务,用于Control UI和控制指令下发。这个服务如果绑定了0.0.0.0,那它在网络层面就和公网直接相连了,进来之后还能通过它操作整个Agent。
这就像你在家里装了一个带遥控的扫地机器人,结果遥控器的红外信号没有做加密,楼下邻居按一下遥控器,机器人就能开门。听起来有点夸张,但在智能体场景里这已经不只是类比。
1.3 社区部署的“默认宽松”问题
更要命的是社区里流行的部署方式,几乎都在默认宽松的方向上走。打开各类分享帖和教程,最常见的是这三类:
第一类是“一键部署脚本”,下载一个install脚本跑完就完事,脚本里为了省事往往直接把Control UI端口暴露到公网,甚至把API Key写死在配置文件里。
第二类是“便携包/整合包”,本地跑得爽,但会有人图省事直接打包然后内网穿透或者用路由器端口映射到公网,就为了在手机上也能随时访问和控制。
第三类是“云服务器部署教程”,默认让用户把安全组端口全部放开,然后在服务器上装一个完整环境,开几个端口就开始用。
这些部署姿势有一个共同特点:从“能用”出发,而不是从“安全可控”出发。而OpenClaw又不像传统Web框架那样自带完整的用户体系、登录态和权限控制,它默认信任网络环境。两者一叠加,就成了一个适合被扫描器盯上的目标。
所以这次所谓的“安全风险预警”,其实不是某个具体漏洞的CVE通告,而是对这种“默认宽松部署模式”的一次系统性提醒。下面我就把主要风险面拆开来讲清楚,讲完再给一套可以直接照做的加固方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心安全风险逐个拆解
2.1 数据层风险:SQLite文件与Active Memory
先看最容易被摸到的资产:数据。OpenClaw的会话记录和Active
