360 Secure SkillHub
360 安全技能中心

Clawhub Gate

核心功能:本地用shellcheck扫描.sh文件、bandit扫描.py文件做静态分析,搭配ClawScan轮询检测,确保Skill安全后发布。典型场景:ClawHub Skill发布前的安全校验,支持完整检查或仅本地快速检查两种模式。输入需指定Skill目录,可加--local-only参数;输出为检查结果及退出码,通过则放行发布,失败则阻断,需依赖shellcheck、bandit等工具。

freepengyang
freepengyang
热度 46.93
最近更新 2026-05-13 18:30:38
分类:安全依赖:代码执行 / 第三方 API / 读写文件应用场景:DevOps / 自动化脚本 / 代码审查 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add clawhub-gate
Metadata
name
clawhub-gate
description
ClawHub 发布前安全门禁:本地静态分析 + ClawScan 轮询,确保 skill 通过 VirusTotal + ClawScan 再发布。 关键词:clawhub publish pre-publish security gate VirusTotal ClawScan shellcheck bandit
triggers
["(.*) clawhub (.*) 发布 (.*)","(.*) clawhub (.*) sync (.*)","(.*) skill (.*) 安全 (.*) 检测 (.*)","(.*) 发布 (.*) clawhub (.*) 前 (.*)","(.*) clawhub (.*) gate (.*)"]
required_environment_variables
[]
required_commands
["shellcheck","bandit","jq","python3","clawhub"]
required_config_paths
["~/.config/clawhub/config.json"]

ClawHub Pre-Publish Security Gate

clawhub sync 前自动执行三项检查,全部通过才放行。

流程

clawhub_gate.sh
├── 1. 本地静态分析  (即时)
│   ├── shellcheck  →  .sh 文件
│   └── bandit      →  .py 文件
│
└── 2. clawhub sync + ClawScan 轮询  (异步,约 30-90s)
    └── 轮询 clawhub API 直到 scan status != "pending"
        ├── VT=clean + Static=clean + LLM=clean  → 通过
        ├── VT=clean + Static=clean + LLM=suspicious → 警告通过(owner 接受 LLM 情境判断)
        └── VT 或 Static 失败  → 阻断

## 使用方式

在 skill 目录下运行 gate 脚本:

```bash
# 完整 gate:静态分析 + 发布 + ClawScan 轮询
SKILL_DIR=~/.hermes/skills/pg-game-monitor bash clawhub_gate.sh

# 仅本地静态分析(快速检查,不需要网络)
SKILL_DIR=~/.hermes/skills/pg-game-monitor bash clawhub_gate.sh --local-only

前置条件:已安装 shellcheck、bandit、jq、Python 3、clawhub CLI(已登录)。

脚本行为:

  • 读取 ~/.config/clawhub/config.json 获取 token(用于轮询 ClawScan API)
  • 调用 clawhub sync 发布 skill(会创建/更新 ClawHub 版本)
  • 若不需发布,先跑 --local-only 确认静态分析通过,再手动 clawhub sync

退出码

码 含义
0 全部通过
1 静态分析失败或 ClawScan flagged
2 ClawScan 超时(pending > 120s)
3 未找到 skill 目录或权限错误

检查详情

静态分析

工具 扫描范围 严重级别
shellcheck *.sh warning + error
bandit *.py medium + high + hidden
  • 阈值:ERROR 数量 = 0;WARNING 数量 ≤ 10(可配置 WARN_LIMIT)
  • 误报忽略:SC2154(未使用变量,常见于条件分支)、SC2086(引号去除,常见于 grep -v)

ClawScan 轮询

  • 轮询间隔:15s
  • 最大等待:120s(8 次)
  • 状态判断:
    • clean → 通过
    • suspicious → 失败,输出警告
    • malicious → 失败,阻断
    • pending → 继续轮询
    • error → 失败

依赖

pip install --break-system-packages bandit
apt install -y shellcheck

参考

  • ClawScan 修复指南:clawhub skill → references/clawscan-remediation.md