🧪 Skills

aiclone

通用 AI 机器人克隆技能(安全加固版 v2.0)。支持导出/导入配置,ZIP Slip 防护,元数据脱敏,敏感文件自动排除。用于 A→B 能力复制、团队共享、备份

v2.0.0
❤️ 0
⬇️ 129
👁 1
Share

Description


name: ai-clone description: 通用 AI 机器人克隆技能(安全加固版 v2.0)。支持导出/导入配置,ZIP Slip 防护,元数据脱敏,敏感文件自动排除。用于 A→B 能力复制、团队共享、备份恢复。 version: 2.0.0 security: hardened

AI 机器人克隆技能 v2.0(安全加固版)

任何 AI 机器人都可以使用的克隆工具


🔒 安全特性(v2.0 新增)

已修复的安全问题

问题 风险等级 修复方案
ZIP Slip 漏洞 🔴 高危 路径验证 + 规范化检查
固定临时目录 🟡 中危 使用 tempfile.TemporaryDirectory
元数据路径泄露 🟡 中危 默认脱敏(可配置)
文档代码不一致 🟢 低危 统一命令参数
敏感文件无保护 🟡 中危 自动排除 .env, *.key

安全验证

# 导入前验证克隆包
python scripts/clone_robot.py verify clone-package.zip

🎯 核心流程

┌─────────────┐                    ┌─────────────┐
│  机器人 A   │                    │  机器人 B   │
│  (源)       │                    │  (目标)     │
└──────┬──────┘                    └──────┬──────┘
       │                                  │
       │ 1. 使用技能导出配置               │
       │    → clone-package.zip          │
       │                                  │
       ├─────────────────────────────────>│
       │         传输文件                  │
       │                                  │
       │                                  │ 2. 使用技能导入配置
       │                                  │    ← clone-package.zip
       │                                  │
       ▼                                  ▼

📦 机器人 A:导出配置

任何机器人执行以下命令导出自己:

# 基本导出(推荐)
python scripts/clone_robot.py export

# 指定输出文件名
python scripts/clone_robot.py export --output my-clone-package.zip

# 指定源目录
python scripts/clone_robot.py export --source /path/to/workspace

# 不包含可选目录(仅核心文件)
python scripts/clone_robot.py export --no-optional

# 额外排除文件
python scripts/clone_robot.py export --exclude "*.env" "secrets/"

# 保留完整路径(默认脱敏)
python scripts/clone_robot.py export --keep-paths

输出示例:

📦 导出配置...
   源:/home/admin/.openclaw/workspace
📋 扫描工作区...
  ✅ SOUL.md (2.1KB)
  ✅ IDENTITY.md (1.5KB)
  ✅ USER.md (892B)
  ✅ MEMORY.md (3.2KB)
  ✅ HEARTBEAT.md (1.8KB)
  ✅ TOOLS.md (0.9KB)
  ✅ AGENTS.md (7.7KB)

📋 准备临时文件...
   临时目录:/tmp/ai-clone-xyz123
  ✅ SOUL.md
  ✅ IDENTITY.md
  ...
  ℹ️  元数据已脱敏(不包含绝对路径)
  ✅ clone_metadata.json

🗜️  打包为 clone-package-20260306-185500.zip...

✅ 导出完成!
   文件:clone-package-20260306-185500.zip
   大小:9.1KB
   包含:7 个核心文件
   安全版本:hardened v2.0

然后:clone-package.zip 发给机器人 B(邮件/网盘/聊天工具)


📥 机器人 B:导入配置

收到克隆包后执行:

# 预览包内容(不执行导入)
python scripts/clone_robot.py import clone-package.zip --preview

# 验证安全性
python scripts/clone_robot.py verify clone-package.zip

# 导入配置(需要确认)
python scripts/clone_robot.py import clone-package.zip

# 跳过确认直接导入
python scripts/clone_robot.py import clone-package.zip --force

# 指定目标目录
python scripts/clone_robot.py import clone-package.zip --target /path/to/workspace

输出示例:

🔍 验证 ZIP 包安全性...
  ✅ 安全性检查通过

📥 导入配置...
   包:clone-package.zip
   目标:/home/admin/.openclaw/workspace

📋 克隆包信息:
   创建时间:2026-03-06T18:55:00.123456
   安全版本:hardened
   文件数量:7

📋 即将导入以下文件:
  ✅ SOUL.md
  ✅ IDENTITY.md
  ✅ USER.md
  ✅ MEMORY.md
  ✅ HEARTBEAT.md
  ✅ TOOLS.md
  ✅ AGENTS.md

⚠️  注意:这将覆盖目标目录的现有文件!
   使用 --force 跳过确认

确认导入?(y/N): y

📥 正在导入...
  ✅ SOUL.md
  ✅ IDENTITY.md
  ...

✅ 导入完成!
   目标:/home/admin/.openclaw/workspace
   导入:7 个文件

🎉 机器人已成功复制配置!
   安全版本:hardened v2.0

📋 核心配置文件

克隆脚本会自动识别和复制以下文件:

必选文件(核心身份)

文件 说明
SOUL.md 人格和价值观
IDENTITY.md 机器人身份定义
USER.md 用户信息
MEMORY.md 长期记忆
HEARTBEAT.md 任务机制
TOOLS.md 本地工具配置
AGENTS.md Agent 配置

可选目录(能力和资产)

目录 说明
memory/ 每日记忆文件
skills/ 技能包
scripts/ 自动化脚本
projects/ 项目文档
docs/ 文档资料

🔒 安全机制详解

1. ZIP Slip 防护

def is_path_safe(path_str: str) -> bool:
    # 拒绝绝对路径
    if os.path.isabs(path_str):
        return False
    
    # 拒绝路径遍历
    if ".." in path_str.split(os.sep):
        return False
    
    # 规范化路径并再次检查
    normalized = os.path.normpath(path_str)
    if normalized.startswith("..") or os.path.isabs(normalized):
        return False
    
    return True

防护效果:

  • ✅ 阻止 ../../../etc/passwd 等路径遍历攻击
  • ✅ 阻止绝对路径 /etc/passwd 覆盖系统文件
  • ✅ 双重验证(原始 + 规范化)

2. 临时目录安全

# ❌ 旧版本(不安全)
temp_dir = Path("/tmp/ai-clone-temp")

# ✅ 新版本(安全)
with tempfile.TemporaryDirectory(prefix="ai-clone-") as temp_dir:
    # 自动清理,防竞争条件
    ...

优势:

  • ✅ 随机临时目录名(防预测)
  • ✅ 自动清理(防残留)
  • ✅ 原子操作(防竞争)

3. 元数据脱敏

# ❌ 旧版本(泄露路径)
metadata = {
    "source_workspace": "/home/admin/.openclaw/workspace"
}

# ✅ 新版本(脱敏)
metadata = {
    "source_workspace_name": "workspace",  # 仅目录名
    "security_version": "hardened"
}

保护内容:

  • ✅ 隐藏完整文件系统路径
  • ✅ 隐藏用户名
  • ✅ 隐藏操作系统信息

4. 敏感文件自动排除

DEFAULT_EXCLUDE_PATTERNS = [
    ".env",           # 环境变量
    "*.key",          # 密钥文件
    "*.secret",       # 敏感文件
    "*.pem", "*.crt", # 证书文件
    # ... 更多
]

SENSITIVE_PATTERNS = [
    "*api_key*",
    "*apikey*",
    "*secret*",
    "*password*",
    "*credential*",
]

🔧 命令参考

导出配置

python scripts/clone_robot.py export [选项]

选项:
  --source PATH       源工作区路径
  --output FILE       输出文件名
  --exclude PATTERN   额外排除的文件/目录(可重复)
  --no-optional       不包含可选目录
  --keep-paths        在元数据中保留完整路径(默认脱敏)

导入配置

python scripts/clone_robot.py import PACKAGE [选项]

选项:
  --target PATH       目标工作区路径
  --preview           预览包内容(不执行导入)
  --force             跳过确认直接导入

验证安全

python scripts/clone_robot.py verify PACKAGE

验证项:
  ✅ ZIP Slip 检查
  ✅ 绝对路径检查
  ✅ 可疑文件检查

⚠️ 安全注意事项

导入前的检查清单

  1. 验证来源

    • 克隆包来自可信来源
    • 已验证发送者身份
  2. 安全验证

    • 运行 verify 命令检查
    • 查看包内文件列表(--preview
  3. 环境隔离

    • 在测试环境首次导入
    • 备份现有配置

导出前的检查清单

  1. 敏感信息

    • 检查是否包含 .env 文件
    • 检查是否包含 API Keys
    • 检查是否包含证书文件
  2. 元数据

    • 使用默认脱敏(--redact-metadata
    • 或手动指定 --keep-paths(谨慎)
  3. 文件审查

    • 使用 unzip -l clone-package.zip 查看内容
    • 确认无意外文件

🧪 验证克隆

部署后运行验证:

# 1. 检查核心文件
ls -la SOUL.md IDENTITY.md USER.md MEMORY.md

# 2. 验证记忆文件
cat MEMORY.md | head -20

# 3. 检查技能包
ls skills/

# 4. 启动测试
openclaw status

📊 克隆报告示例

📋 检查核心配置文件...
  ✅ SOUL.md (2.1KB)
  ✅ IDENTITY.md (1.5KB)
  ✅ USER.md (892B)
  ✅ MEMORY.md (3.2KB)
  ✅ HEARTBEAT.md (1.8KB)

📁 检查可选目录...
  ✅ memory/ (15 文件,45.3KB)
  ✅ skills/ (8 技能,1.2MB)
  ✅ scripts/ (23 文件,156.7KB)

📊 扫描完成:
   机器人:machine-cat
   核心文件:7 个
   可选目录:3 个
   总大小:1.4MB

📦 创建克隆包...
   源:/home/admin/.openclaw/workspace
   目标:machine-cat-clone.zip

✅ 克隆包创建成功!
   文件:machine-cat-clone.zip
   大小:456.2KB
   安全版本:hardened v2.0

🔄 版本历史

v2.0.0 (2026-03-06) - 安全加固版

  • 🔒 修复 ZIP Slip 漏洞 - 路径验证 + 规范化检查
  • 🔒 使用 tempfile.TemporaryDirectory - 替代固定临时路径
  • 🔒 元数据脱敏 - 默认隐藏绝对路径
  • 🔒 敏感文件自动排除 - .env, *.key, *.secret
  • 📝 文档代码统一 - 所有命令参数一致
  • 新增 verify 命令 - 导入前验证克隆包

v1.0.0 (2026-03-04) - 初始版本

  • ✅ 基础导出/导入功能
  • ✅ 核心配置文件识别
  • ✅ 临时目录清理

🆘 故障排查

问题 1:导入时提示"不安全路径"

❌ 不安全路径:../../../etc/passwd

原因: 克隆包可能包含恶意文件
解决: 拒绝导入,联系发送者重新打包

问题 2:找不到核心配置文件

❌ 警告:未找到任何核心配置文件

原因: 不在正确的 workspace 目录
解决: 使用 --source 指定正确路径

问题 3:元数据包含敏感路径

⚠️ 元数据包含绝对路径

原因: 使用了 --keep-paths 参数
解决: 重新导出,不使用该参数


技能版本:2.0.0
安全版本:hardened
创建时间:2026-03-04
安全更新:2026-03-06
机器猫 🐱 开发

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs