小龙虾养成日记:“虾”路相逢之Openclaw九大安全防护策略

脱缰的小龙虾危害有多大你知道么?OpenClaw 全能自动、越用越聪明,能自主读写文件、帮你高效完成任务。可没人告诉你,无防护运行的它,分分钟误删你电脑全部文件!踩过坑才明白,不做任何权限限制的本地 AI,隐患远比你想象的恐怖。

大家好,我是寒山。

不管你是刚装好 OpenClaw 的新手,还是已经深度使用的老玩家,今天这条视频,直接给你全套保姆级安全防护方案,九大安全策略一次性全部讲透。

🚨 安全预警

想象一下这个场景:

  • 你让OpenClaw帮你整理文件,它却把整个文档目录清空了
  • 你让它测试代码,它却修改了系统配置文件
  • 你让它批量处理数据,它却误删了重要项目文件

这些不是危言耸听,而是真实可能发生的风险。AI的指令理解一旦出现偏差,后果不堪设想。

📁 策略1:工作区安全配置------从源头划定安全边界

📚 原理介绍

OpenClaw运行时会涉及文件读取、写入、修改等操作,若直接在系统目录或重要目录运行,一旦AI指令出现歧义,极易误删系统文件、个人文档等核心数据。

工作区安全配置是最基础的防护措施:

  1. 创建专用工作目录,为OpenClaw划定专属"活动虾池"
  2. 锁定默认工作区,强制AI始终在安全范围内活动

这相当于给小龙虾搭建一个有固定围栏的虾池,既划定了活动范围,又防止它跳出池外。

🔧 完整操作流程

步骤1:创建专用工作目录

  1. 创建目录:打开终端,输入命令创建独立的工作目录(确保不与系统核心目录重叠):

    bash 复制代码
    mkdir -p ~/OpenClaw_Safe_Workspace  # 创建专属安全工作目录
  2. 加固权限:设置为仅当前用户可访问、读写、执行,防止其他程序或用户误操作:

    bash 复制代码
    chmod 700 ~/OpenClaw_Safe_Workspace  # 仅当前用户拥有该目录的全部权限

步骤2:锁定默认工作区

  1. 找到配置文件 :OpenClaw的核心配置文件路径为:~/.openclaw/openclaw.json(若没有该文件,启动一次OpenClaw即可自动生成)。

  2. 编辑配置文件:用文本编辑器(如TextEdit、VSCode)打开该文件,添加默认工作区配置:

    json 复制代码
    {
      "agents": {
        "defaults": {
          "workspace": "~/OpenClaw_Safe_Workspace"  // 强制指定默认工作区
        }
      }
    }
  3. 生效配置:保存配置文件后,重启OpenClaw,配置即可生效,后续启动会自动定位到专用工作区。

或者使用CLI命令更方便:

bash 复制代码
openclaw config set agents.defaults.workspace "~/OpenClaw_Safe_Workspace"

🛡️ 防护范围

  • 物理隔离:限制OpenClaw所有文件操作(读取、写入、删除、修改)仅在~/OpenClaw_Safe_Workspace目录内进行
  • 软件锁定:强制OpenClaw启动后默认进入专用工作区,禁止AI主动切换到其他目录

🏰 策略2:启用沙箱模式------打造真正的安全隔离

📚 原理介绍

沙箱(Sandbox)是OpenClaw最重要的安全特性之一。它将OpenClaw的执行环境与主机系统完全隔离,即使AI出现误操作,也只会影响沙箱内部,不会波及主机。

沙箱模式有三种:

  • off:关闭沙箱(默认,执行在主机上)⚠️不推荐
  • non-main:非主会话启用沙箱
  • all:所有会话都启用沙箱✨最安全

沙箱后端:

  • docker:使用Docker容器隔离✨推荐
  • ssh:通过SSH连接到远程环境
  • openshell:使用OpenShell隔离

🔧 完整操作流程

步骤1:配置沙箱模式

  1. 启用沙箱 :编辑~/.openclaw/openclaw.json,添加沙箱配置:

    json 复制代码
    {
      "agents": {
        "defaults": {
          "sandbox": {
            "mode": "all",  // 所有会话都启用沙箱
            "backend": "docker",  // 使用Docker作为沙箱后端
            "scope": "agent"  // 按agent隔离沙箱
          }
        }
      }
    }

或者使用CLI命令:

bash 复制代码
openclaw config set agents.defaults.sandbox.mode "all"
openclaw config set agents.defaults.sandbox.backend "docker"

步骤2:管理沙箱

  1. 查看沙箱状态

    bash 复制代码
    openclaw sandbox list
  2. 重建沙箱(配置变更后):

    bash 复制代码
    openclaw sandbox recreate --all  # 重建所有沙箱
    openclaw sandbox recreate --agent main  # 仅重建main agent的沙箱
  3. 查看沙箱配置

    bash 复制代码
    openclaw sandbox explain  # 查看当前生效的沙箱配置

🛡️ 防护范围

  • 完全隔离:OpenClaw执行环境与主机系统完全隔离
  • 限制访问:沙箱内只能访问挂载的目录,无法访问主机其他文件
  • 快速恢复:沙箱损坏时可快速重建,不影响主机

🔐 策略3:配置文件权限加固------防止安全设置被篡改

📚 原理介绍

OpenClaw的配置文件(openclaw.json)是安全策略的核心,若该文件被其他程序、用户误修改或恶意篡改,之前设置的默认工作区、沙箱防护等都会失效,导致安全漏洞。

加固配置文件权限相当于给"安全手册"加锁,确保安全策略稳定生效。

🔧 完整操作流程

步骤1:手动加固权限

  1. 加固配置目录权限:打开终端,先加固配置文件所在目录的权限,仅当前用户可读写执行:

    bash 复制代码
    chmod 700 ~/.openclaw  # 限制配置目录的访问权限
  2. 加固配置文件权限:再单独加固配置文件本身的权限,仅当前用户可读写,禁止修改、删除:

    bash 复制代码
    chmod 600 ~/.openclaw/openclaw.json  # 锁定配置文件,防止被篡改
  3. 加固敏感文件

    bash 复制代码
    chmod 600 ~/.openclaw/credentials/*.json  # 加固凭证文件
    chmod 600 ~/.openclaw/agents/*/auth-profiles.json  # 加固认证配置
    chmod 600 ~/.openclaw/sessions/*.jsonl  # 加固会话文件

步骤2:使用安全审计自动修复

OpenClaw提供了安全审计工具,可以自动检测和修复权限问题:

bash 复制代码
openclaw security audit --fix  # 检测并自动修复安全问题

🛡️ 防护范围

禁止任何非当前用户(包括其他程序)修改、删除OpenClaw的配置文件;若需修改配置,需手动提升权限,避免误操作或恶意篡改导致安全策略失效。


🔒 策略4:文件系统工具限制------防止越权文件操作

📚 原理介绍

OpenClaw的文件系统工具(fs_readfs_writeapply_patch等)默认可能有较大权限。通过限制这些工具只能在工作区内操作,可以防止AI访问或修改工作区外的重要文件。

🔧 完整操作流程

配置工具限制

  1. 限制文件系统工具 :编辑配置文件,添加工具限制:

    json 复制代码
    {
      "tools": {
        "fs": {
          "workspaceOnly": true  // 仅允许在工作区内操作
        },
        "exec": {
          "applyPatch": {
            "workspaceOnly": true  // apply_patch也限制在工作区
          }
        }
      }
    }

或者使用CLI命令:

bash 复制代码
openclaw config set tools.fs.workspaceOnly true
openclaw config set tools.exec.applyPatch.workspaceOnly true

配置工具Profile(深入理解)

📖 什么是工具Profile

工具Profile是OpenClaw提供的一组预设工具权限集合,类似于安全模板,可以快速限制AI能使用的工具范围,从而控制安全风险。

🛠️ 四种Profile详解
typescript 复制代码
const CORE_TOOL_PROFILES: Record<ToolProfileId, ToolProfilePolicy> = {
  minimal: { /* 最安全 */ },
  coding: { /* 编程场景 */ },
  messaging: { /* 消息场景 */ },
  full: {}, /* 无限制 */ };
1️⃣ minimal (最小模式,最安全)

仅允许:

  • session_status(会话状态查询)
2️⃣ messaging (消息模式,推荐日常使用)

允许工具:

  • sessions_list(会话列表)
  • sessions_history(会话历史)
  • sessions_send(发送消息)
  • session_status(会话状态)
  • message(发送消息)
3️⃣ coding(编程模式,用于开发场景)

包含所有编程需要的工具:

  • 文件操作:read, write, edit, apply_patch
  • 执行工具:exec, process, code_execution
  • 网络工具:web_search, web_fetch, x_search
  • 记忆工具:memory_search, memory_get
  • 会话管理:所有sessions相关工具
  • 自动化:cron
  • 媒体工具:image, image_generate, music_generate, video_generate
  • 其他:update_plan
4️⃣ full (完整模式,最危险)

无限制,允许所有工具。

🔧 Profile工作原理

每个工具都标注了它属于哪些Profile:

typescript 复制代码
{
  id: "read",           // 读取文件工具
  label: "read",
  description: "Read file contents",
  sectionId: "fs",
  profiles: ["coding"], // 只属于coding profile
}
📋 如何使用

方法1:通过配置文件~/.openclaw/openclaw.json

json 复制代码
{
  "tools": {
    "profile": "messaging"
  }
}

方法2:通过CLI命令

bash 复制代码
openclaw config set tools.profile "messaging"
🎯 最佳实践建议
场景 推荐Profile 理由
日常聊天/消息处理 messaging 够用且安全
编程开发 coding 功能全面
仅需查看状态 minimal 最安全
完全信任/测试环境 full 无限制

🛡️ 防护范围

  • 工作区隔离:文件工具只能操作工作区内的文件
  • 工具限制:可以限制危险工具的使用范围
  • Profile管理:通过预设Profile快速应用安全设置

🔏 策略5:系统级权限管控------拒绝过度授权

📚 原理介绍

Mac系统的"完全磁盘访问权限"相当于给程序开放了整个主机的文件访问权限,很多用户为了方便,会给运行OpenClaw的终端、VS Code等程序授予该权限,这相当于给小龙虾开放了整个池塘,风险极高。

遵循"最小授权"原则,限制系统级权限,是提升安全性的关键。

🔧 完整操作流程

步骤1:Mac系统权限管理

  1. 打开系统设置:打开Mac"系统设置",找到"隐私与安全性",点击左侧"完全磁盘访问权限"。

  2. 移除过度授权:检查右侧列表,若终端(Terminal)、iTerm、VS Code等运行OpenClaw的程序在列表中,点击程序名称,再点击下方"-"号,移除该程序的完全磁盘访问权限(除非有特殊需求,否则一律移除)。

  3. 临时授权管理:若需临时让OpenClaw访问其他目录(如读取文档中的文件),可临时添加程序到列表,完成操作后立即移除,避免长期授权带来的风险。

步骤2:网络暴露限制

  1. 保持Gateway仅绑定本地

    json 复制代码
    {
      "gateway": {
        "bind": "loopback"  // 仅绑定本地127.0.0.1和::1
      }
    }
    bash 复制代码
    openclaw config set gateway.bind "loopback"
  2. 启用网关认证

    json 复制代码
    {
      "gateway": {
        "auth": {
          "mode": "token"  // 使用token认证
        }
      }
    }

🛡️ 防护范围

限制运行OpenClaw的程序无法访问主机全部磁盘,仅能访问当前用户可正常访问的普通目录(配合专用工作区,进一步缩小访问范围),杜绝因过度授权导致的全网盘误删风险。


🛡️ 策略6:使用安全审计工具------定期检查安全状态

📚 原理介绍

OpenClaw内置了强大的安全审计工具,可以自动检测配置中的安全问题,并提供修复建议。定期运行安全审计可以及时发现并修复安全漏洞。

🔧 完整操作流程

步骤1:运行安全审计

  1. 基础安全审计

    bash 复制代码
    openclaw security audit
  2. 深度安全审计(推荐):

    bash 复制代码
    openclaw security audit --deep
  3. 自动修复安全问题

    bash 复制代码
    openclaw security audit --fix  # 自动修复可修复的安全问题

步骤2:审计检查的内容

安全审计会检查以下方面:

  • 配置文件权限设置
  • 网关网络暴露配置
  • 沙箱模式配置
  • 工具权限配置
  • 群组策略设置
  • Webhook安全配置
  • 凭证管理
  • Docker安全设置
  • 等等

步骤3:JSON输出(用于自动化)

bash 复制代码
openclaw security audit --json  # 输出JSON格式的审计结果

🛡️ 防护范围

  • 自动检测:自动发现配置中的安全隐患
  • 自动修复:提供一键修复功能
  • 全面覆盖:检查所有关键安全配置项

📦 策略7:工作区定期备份------做好兜底保障

📚 原理介绍

再好的防护也可能出现意外(如AI突破防护、人工确认失误、硬件故障),定期备份专用工作区,相当于给"虾池"准备了"应急储备池",即使工作区数据被误删或损坏,也能快速恢复。

🔧 完整操作流程

步骤1:创建备份脚本

  1. 创建备份脚本:打开终端,创建自动备份脚本,实现每日自动备份:

    bash 复制代码
    # 创建备份脚本文件
    cat > ~/openclaw_backup.sh << 'EOF'
    #!/bin/bash
    BACKUP_DIR=~/OpenClaw_Backups
    DATE=$(date +%Y%m%d)
    mkdir -p $BACKUP_DIR
    
    # 备份工作区
    rsync -av --delete ~/OpenClaw_Safe_Workspace $BACKUP_DIR/$DATE/
    
    # 备份配置
    rsync -av ~/.openclaw $BACKUP_DIR/$DATE/config/
    
    # 删除30天前的备份
    find $BACKUP_DIR -type d -mtime +30 -exec rm -rf {} +
    EOF
    
    # 给脚本添加执行权限
    chmod +x ~/openclaw_backup.sh
  2. 设置定时任务:让脚本每日凌晨2点自动执行(避开使用高峰):

    bash 复制代码
    crontab -e
  3. 配置定时任务:在弹出的编辑界面中,输入以下内容,保存并退出(按ESC,输入:wq即可保存):

    bash 复制代码
    0 2 * * * ~/openclaw_backup.sh

🛡️ 防护范围

每日自动备份专用工作区的所有内容,备份文件保存在~/OpenClaw_Backups目录,按日期命名(如20251001),可保留多个备份版本;若工作区数据丢失,可通过备份目录快速恢复,避免数据永久丢失。


👥 策略8:群组和消息权限管理------防止越权访问

📚 原理介绍

如果你将OpenClaw用于群聊场景,正确配置群组权限非常重要。默认开放的群组策略可能让未授权用户使用危险工具。

🔧 完整操作流程

步骤1:配置群组策略

三种群组策略:

  • open:允许任何群组最危险
  • disabled:禁用所有群组
  • allowlist:仅允许白名单群组推荐,默认值
  1. 启用白名单模式
json 复制代码
{
  "channels": {
    "feishu": {  // 以飞书为例
      "groupPolicy": "allowlist",  // 仅允许白名单群组
      "groupAllowFrom": ["oc_xxx"],  // 群组ID白名单(格式:oc_xxx)
      "groups": {  // 群组配置
        "oc_xxx": {
          "allowFrom": ["ou_user1", "ou_user2"],  // 可选:限制群组内的发送者
          "requireMention": true  // 需要@机器人才能回应
        }
      }
    }
  }
}
  1. 安全审计会自动修复
bash 复制代码
openclaw security audit --fix  # 会自动将open的群组策略改为allowlist

步骤2:配置DM范围

四种DM会话隔离模式:

  • main:所有DM共享一个主会话(默认,有上下文泄露风险)
  • per-peer:每个对话者一个独立会话
  • per-channel-peer:每个渠道的每个对话者一个独立会话推荐
  • per-account-channel-peer:每个账户-渠道-对话者一个独立会话多账户场景推荐
  1. 安全的DM配置
json 复制代码
{
  "session": {
    "dmScope": "per-channel-peer"  // 每个channel-peer独立会话
  }
}
  1. 安全审计会检查会话隔离
    • 如果 dmScope="main" 且有多个用户,会发出警告
    • 建议使用 per-channel-peerper-account-channel-peer

🛡️ 防护范围

  • 群组白名单:只允许特定群组使用OpenClaw
  • 会话隔离:不同用户的会话相互隔离,防止上下文泄露
  • 权限控制:控制哪些用户可以使用哪些工具
  • 自动修复 :安全审计会自动将 groupPolicy="open" 改为 allowlist

🔑 策略9:权限最小化管控------守住安全底线

📚 原理介绍

权限最小化是所有安全防护的核心原则,即给OpenClaw授予"刚好够用"的权限,不需要的权限一律不授予,不需要访问的目录一律不开放。

🔧 完整操作流程

安全配置检查清单

使用安全审计一键检查所有配置:

bash 复制代码
openclaw security audit --deep  # 深度审计,检查所有安全配置

关键安全配置

json 复制代码
{
  "agents": {
    "defaults": {
      "workspace": "~/OpenClaw_Safe_Workspace",
      "sandbox": {
        "mode": "all",  // 所有会话都启用沙箱
        "backend": "docker",  // 使用Docker作为沙箱后端
        "scope": "agent"  // 按agent隔离沙箱
      }
    }
  },
  "tools": {
    "profile": "messaging",  // 使用安全的工具profile
    "fs": {
      "workspaceOnly": true  // 文件工具仅在工作区
    },
    "exec": {
      "applyPatch": {
        "workspaceOnly": true  // apply_patch也限制在工作区
      }
    }
  },
  "session": {
    "dmScope": "per-channel-peer"  // DM会话隔离:每个渠道的每个对话者一个独立会话
  },
  "channels": {
    "feishu": {  // 飞书配置
      "dmPolicy": "pairing",  // DM策略:配对模式
      "groupPolicy": "allowlist",  // 群组策略:仅允许白名单群组
      "groupAllowFrom": ["oc_xxx"],  // 白名单群组ID(格式:oc_xxx)
      "groups": {
        "oc_xxx": {
          "allowFrom": ["ou_user1", "ou_user2"],  // 限制群组内的发送者
          "requireMention": true  // 需要@机器人才能回应
        }
      },
      "requireMention": true  // 默认需要@机器人
    }
  },
  "gateway": {
    "bind": "loopback",  // 仅绑定本地127.0.0.1和::1
    "auth": {
      "mode": "token"  // 使用token认证
    }
  },
  "logging": {
    "redactSensitive": "tools"  // 敏感信息脱敏
  }
}

对应CLI配置命令

bash 复制代码
# 1. 配置工作区
openclaw config set agents.defaults.workspace "~/OpenClaw_Safe_Workspace"

# 2. 配置沙箱
openclaw config set agents.defaults.sandbox.mode "all"
openclaw config set agents.defaults.sandbox.backend "docker"
openclaw config set agents.defaults.sandbox.scope "agent"

# 3. 配置工具Profile
openclaw config set tools.profile "messaging"

# 4. 配置文件工具限制
openclaw config set tools.fs.workspaceOnly true
openclaw config set tools.exec.applyPatch.workspaceOnly true

# 5. 配置DM会话隔离
openclaw config set session.dmScope "per-channel-peer"

# 6. 配置飞书群组策略
openclaw config set channels.feishu.groupPolicy "allowlist"
openclaw config set channels.feishu.requireMention true

# 7. 配置网关
openclaw config set gateway.bind "loopback"
openclaw config set gateway.auth.mode "token"

# 8. 配置日志脱敏
openclaw config set logging.redactSensitive "tools"

# 9. 运行安全审计修复
openclaw security audit --deep --fix

🛡️ 防护范围

全面覆盖OpenClaw的目录访问、系统授权、AI操作等所有权限场景,通过"最小授权"减少安全漏洞,避免因权限过高导致的误操作、恶意攻击等风险,守住安全底线。


🎯 写在最后

用OpenClaw,安全配置到位才能放心。

你在使用OpenClaw时,有没有遇到过文件误操作的情况?评论区说说你的避坑经验吧!

相关推荐
嵌入式小企鹅5 小时前
算力价值重估、AI编程模型齐开源、RISC-V融资15亿
人工智能·学习·ai·程序员·risc-v·前沿科技·太空算力
小兵张健15 小时前
一场大概率没拿到 offer 的面试,让我更坚定去做喜欢的事
人工智能·面试·程序员
阿虎儿1 天前
56条软件工程开发定律
程序员
程序员鱼皮1 天前
Git WorkTree 是什么?凭什么能让 AI 编程效率翻倍?
git·ai·程序员·编程·ai编程
czkm1 天前
AI有情绪吗?从AI夸我是写作领域大神说起
人工智能·程序员·ai编程
SimonKing1 天前
AI编程工具装了一大堆,Skills 管理乱成粥?这个开源神器一招搞定!
java·后端·程序员
小兵张健2 天前
AI 带来的机遇,可能真的大于风险
程序员·openai·ai编程
WebInfra2 天前
Rsbuild 2.0 发布:即将支持 TanStack Start
前端·javascript·程序员