OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  clawscan: ClawHub 技能安全性自动化扫描器

clawscan: ClawHub 技能安全性自动化扫描器

 
  endpoint ·  2026-02-02 07:16:20 · 3 次点击  · 0 条评论  

name: skillguard
version: 2.0.0
description: ClawHub 技能安全扫描器。在安装前审查第三方技能——检测危险模式、可疑代码和风险依赖。
author: PaxSwarm
license: MIT
keywords: [安全, 审计, 扫描, 审查, clawhub, 技能, 安全性, 审核, 漏洞]
triggers: ["技能安全", "审查技能", "扫描技能", "这个技能安全吗", "skillguard", "审计技能", "clawscan"]


🛡️ SkillGuard — ClawHub 安全扫描器

“信任,但需验证。”

ClawHub 没有审核流程。任何开发者都可以发布任何技能。SkillGuard 提供了缺失的安全层——在技能接触你的系统之前,扫描其中的危险模式、易受攻击的依赖项和可疑行为。


🚨 为何重要

第三方技能可能带来以下风险:

风险 影响
执行任意代码 完全系统沦陷
访问你的文件系统 数据窃取、勒索软件
读取环境变量 API 密钥窃取(损失巨大)
通过 HTTP 外泄数据 隐私泄露
安装恶意依赖项 供应链攻击
持久化后门 长期系统沦陷
权限提升 获取 root 权限

一个恶意技能 = 游戏结束。

SkillGuard 帮助你在安装前发现威胁。


📦 安装

clawhub install clawscan

或手动安装:

git clone https://github.com/G0HEAD/skillguard
cd skillguard
chmod +x scripts/skillguard.py

要求

  • Python 3.8+
  • clawhub CLI(用于远程扫描)

🚀 快速开始

# 在安装前扫描一个技能
python3 scripts/skillguard.py scan some-random-skill

# 扫描本地文件夹(你自己的技能或下载的)
python3 scripts/skillguard.py scan-local ./path/to/skill

# 审计所有已安装的技能
python3 scripts/skillguard.py audit-installed

# 生成详细的安全报告
python3 scripts/skillguard.py report some-skill --format markdown

# 检查依赖项中的已知漏洞
python3 scripts/skillguard.py deps ./path/to/skill

🔍 SkillGuard 检测内容

🔴 严重 — 阻止安装

这些模式表明存在严重安全风险:

类别 模式 风险
代码执行 eval(), exec(), compile() 任意代码执行
Shell 注入 subprocess(shell=True), os.system(), os.popen() 命令注入
子进程 child_process.exec(), child_process.spawn() Shell 访问 (Node.js)
凭据窃取 访问 ~/.ssh/, ~/.aws/, ~/.config/ 私钥/凭据窃取
系统文件 /etc/passwd, /etc/shadow 系统沦陷
递归删除 rm -rf, shutil.rmtree('/') 数据销毁
权限提升 sudo, setuid, chmod 777 获取 root 权限
反向 Shell Socket + 子进程模式 远程访问
加密挖矿 矿池 URL, stratum:// 资源窃取

🟡 警告 — 安装前需审查

这些模式可能是合法的,但需要检查:

类别 模式 关注点
网络请求 requests.post(), fetch() POST 数据发往何处?
环境变量访问 os.environ, process.env 访问了哪些变量?
文件写入 open(..., 'w'), writeFile() 保存了什么内容?
Base64 编码 base64.encode(), btoa() 是否混淆了载荷?
外部 IP 硬编码的 IP 地址 数据外泄端点?
批量文件操作 shutil.copytree(), glob 大量数据访问?
持久化 crontab, systemctl, .bashrc 是否开机自启?
包安装 pip install, npm install 供应链风险

🟢 信息 — 已记录但属正常

类别 模式 说明
文件读取 open(..., 'r'), readFile() 技能的正常操作
JSON 解析 json.load(), JSON.parse() 数据处理
日志记录 print(), console.log() 调试
标准导入 import os, import sys 常用库

📊 扫描输出示例

╔══════════════════════════════════════════════════════════════╗
║              🛡️  SKILLGUARD 安全报告                         ║
╠══════════════════════════════════════════════════════════════╣
║  技能:       suspicious-helper v1.2.0                       ║
║  作者:      unknown-user                                   ║
║  文件:       8 个已分析                                     ║
║  扫描时间:   2024-02-03 05:30:00 UTC                        ║
╚══════════════════════════════════════════════════════════════╝

📁 已扫描文件
────────────────────────────────────────────────────────────────
  ✓ SKILL.md                    (541 字节)
  ✓ scripts/main.py             (2.3 KB)
  ✓ scripts/utils.py            (1.1 KB)
  ✓ scripts/network.py          (890 字节)
  ✓ config.json                 (234 字节)
  ✓ requirements.txt            (89 字节)
  ✓ package.json                (312 字节)
  ✓ install.sh                  (156 字节)

🔴 严重问题 (3)
────────────────────────────────────────────────────────────────
  [CRIT-001] scripts/main.py:45
  │ 模式:  使用外部输入的 eval()
  │ 风险:  任意代码执行
  │ 代码:  result = eval(user_input)
  │
  [CRIT-002] scripts/utils.py:23
  │ 模式:  使用 shell=True 的 subprocess
  │ 风险:  命令注入漏洞
  │ 代码:  subprocess.run(cmd, shell=True)
  │
  [CRIT-003] install.sh:12
  │ 模式:  使用变量的递归删除
  │ 风险:  潜在的数据销毁
  │ 代码:  rm -rf $TARGET_DIR/*

🟡 警告 (5)
────────────────────────────────────────────────────────────────
  [WARN-001] scripts/network.py:15  — 向外部 URL 发送 HTTP POST 请求
  [WARN-002] scripts/main.py:78     — 读取 OPENAI_API_KEY
  [WARN-003] requirements.txt:3     — 未固定版本的依赖项:requests
  [WARN-004] scripts/utils.py:45    — 检测到 Base64 编码
  [WARN-005] config.json            — 硬编码 IP:192.168.1.100

🟢 信息 (2)
────────────────────────────────────────────────────────────────
  [INFO-001] scripts/main.py:10     — 标准文件读取操作
  [INFO-002] requirements.txt       — 声明了 3 个依赖项

📦 依赖项分析
────────────────────────────────────────────────────────────────
  requirements.txt:
    ⚠️  requests        (未固定版本 - 请指定版本!)
    ✓  json            (标准库)
    ✓  pathlib         (标准库)

  package.json:
    ⚠️  axios@0.21.0   (CVE-2021-3749 - 请升级至 0.21.2+)

════════════════════════════════════════════════════════════════
                        判定结果:🚫 危险
════════════════════════════════════════════════════════════════

  ⛔ 请勿安装此技能

  发现 3 个严重安全问题:
  • 通过 eval() 执行任意代码
  • 通过 shell=True 进行命令注入
  • 危险的文件删除模式

  在使用前必须进行手动代码审查。

════════════════════════════════════════════════════════════════

🎯 命令参考

scan <技能名称>

在安装前从 ClawHub 获取并扫描一个技能。

skillguard scan cool-automation-skill
skillguard scan cool-automation-skill --verbose
skillguard scan cool-automation-skill --json > report.json

scan-local <路径>

扫描本地技能目录。

skillguard scan-local ./my-skill
skillguard scan-local ~/downloads/untrusted-skill --strict

audit-installed

扫描工作区中的所有技能。

skillguard audit-installed
skillguard audit-installed --fix  # 尝试修复问题

deps <路径>

分析依赖项中的已知漏洞。

skillguard deps ./skill-folder
skillguard deps ./skill-folder --update-db  # 更新漏洞数据库

report <技能> [--format]

生成详细的安全报告。

skillguard report suspicious-skill --format markdown > report.md
skillguard report suspicious-skill --format json > report.json
skillguard report suspicious-skill --format html > report.html

allowlist <技能>

将某个技能标记为已手动审查并受信任。

skillguard allowlist my-trusted-skill
skillguard allowlist --list  # 显示所有受信任的技能
skillguard allowlist --remove old-skill

watch

监控新技能版本并自动扫描更新。

skillguard watch --interval 3600  # 每小时检查一次

⚙️ 配置

创建 ~/.skillguard/config.json

{
  "severity_threshold": "warning",
  "auto_scan_on_install": true,
  "block_critical": true,
  "trusted_authors": [
    "official",
    "PaxSwarm",
    "verified-publisher"
  ],
  "allowed_domains": [
    "api.openai.com",
    "api.anthropic.com",
    "api.github.com",
    "clawhub.ai"
  ],
  "ignored_patterns": [
    "test_*.py",
    "*_test.js",
    "*.spec.ts"
  ],
  "custom_patterns": [
    {
      "regex": "my-internal-api\\.com",
      "severity": "info",
      "description": "内部 API 端点"
    }
  ],
  "vuln_db_path": "~/.skillguard/vulns.json",
  "report_format": "markdown",
  "color_output": true
}

🔐 安全等级

扫描后,技能会被分配一个安全等级:

等级 徽章 含义 建议
已验证 受信任作者,无问题 可安全安装
干净 🟢 未发现问题 可能安全
需审查 🟡 仅存在警告 安装前请阅读
可疑 🟠 存在多个警告 需要仔细审查
危险 🔴 存在严重问题 请勿安装
恶意 已知恶意软件模式 阻止并上报

🔄 集成工作流

预安装钩子

# 添加到你的工作流中
skillguard scan $SKILL && clawhub install $SKILL

CI/CD 流水线

# GitHub Actions 示例
- name: 安全扫描
  run: |
    pip install skillguard
    skillguard scan-local ./my-skill --strict --exit-code

自动化监控

# 每日审计的 Cron 任务
0 9 * * * /path/to/skillguard audit-installed --notify

📈 漏洞数据库

SkillGuard 维护一个本地已知漏洞数据库:

# 更新漏洞数据库
skillguard update-db

# 检查数据库状态
skillguard db-status

# 报告新漏洞
skillguard report-vuln --skill bad-skill --details "描述..."

数据来源:
- CVE 数据库(Python 包)
- npm 安全公告数据库
- GitHub 安全公告
- 社区报告


🚫 局限性

SkillGuard 是第一道防线,并非绝对保证:

局限性 说明
代码混淆 有决心的攻击者可以隐藏恶意代码
动态代码 运行时生成的代码更难分析
误报 合法代码可能触发警告
零日漏洞 无法检测新的攻击模式
依赖项 深度传递依赖项扫描有限

纵深防御: 请将 SkillGuard 与以下措施结合使用:
- 沙箱执行环境
- 网络监控
- 定期审计
- 最小权限原则


🤝 贡献

发现了我们遗漏的危险模式?帮助改进 SkillGuard:

添加模式

{
  "id": "CRIT-XXX",
  "regex": "dangerous_function\\(",
  "severity": "critical",
  "category": "code_execution",
  "description": "危险函数调用",
  "cwe": "CWE-94",
  "remediation": "请改用 safe_alternative()",
  "file_types": [".py", ".js"]
}

报告误报

skillguard report-fp --pattern "WARN-005" --reason "合法用例"

📜 更新日志

v2.0.0 (当前版本)

  • 全面的模式数据库(50+ 模式)
  • 依赖项漏洞扫描
  • 多种输出格式(JSON、Markdown、HTML)
  • 配置文件支持
  • 受信任作者系统
  • 监控更新的 Watch 模式
  • 改进的报告,包含 CWE 引用

v1.0.0

  • 初始版本
  • 基础模式检测
  • 本地和远程扫描
  • 审计已安装技能

📄 许可证

MIT 许可证 — 自由使用,欢迎贡献。


🛡️ 保持安全

“在智能体生态系统中,信任通过透明度赢得。
你安装的每一个技能,都是你选择运行的代码。
明智选择。始终验证。”

PaxSwarm 构建 — 保护蜂群,一次一个技能 🐦‍⬛


链接:
- ClawHub
- GitHub
- 报告问题
- 模式数据库

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor