SleuthCo/clawshield-public
GitHub: SleuthCo/clawshield-public
ClawShield 是面向 AI 代理的安全代理网关,通过多层防御扫描并拦截提示注入、PII 与密钥泄露。
Stars: 125 | Forks: 16
# ClawShield
**AI 代理的安全代理。** 位于 [OpenClaw](https://github.com/openclaw/openclaw) 前面,扫描每条消息是否存在提示注入、PII 泄露和密钥泄露——在它们到达模型或离开网络之前进行拦截。
内置 5 个专业 AI 代理、仪表板以及 YAML 策略引擎。一条命令即可启动。
```
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ Browser │────▶│ ClawShield │────▶│ OpenClaw │
│ (you) │◀────│ Security Proxy │◀────│ Gateway │
└──────────────┘ └──────────────────┘ └──────────────┘
▪ Prompt injection ▪ Claude, GPT,
detection LM Studio
▪ PII/secrets redaction ▪ Multi-agent
▪ Policy enforcement routing
▪ Audit logging ▪ RAG knowledge
```
## 快速启动(Docker)
**前提条件:** [Docker](https://docs.docker.com/get-docker/) 和 [Anthropic API 密钥](#getting-an-anthropic-api-key)。
```
# 1. 克隆仓库
git clone https://github.com/SleuthCo/clawshield-public.git
cd clawshield-public
# 2. 设置 API 密钥
cp standalone/.env.template standalone/.env
# 编辑 standalone/.env 并粘贴您的 Anthropic API 密钥
# 3. 启动
cd standalone
docker compose up -d
```
在浏览器中打开 **http://localhost:18801**。你将看到 ClawShield 仪表板,其中包含 5 个可聊天的 AI 代理。
仅此而已。ClawShield 正在扫描你与代理之间的所有流量。
## 获取 Anthropic API 密钥
ClawShield 使用 Claude(通过 Anthropic API)作为默认语言模型。以下是获取密钥的方法:
1. 访问 [console.anthropic.com](https://console.anthropic.com/) 并注册(或登录)
2. 点击左侧边栏的 **API Keys**
3. 点击 **Create Key**
4. 输入名称(例如 "clawshield")并点击 **Create**
5. 复制密钥——它以 `sk-ant-` 开头
6. 将其粘贴到你的 `standalone/.env` 文件中:
ANTHROPIC_API_KEY=sk-ant-your-key-here
**费用:** Anthropic 按令牌计费。一次典型的聊天会话费用约为几美分。新账户可获得 5 美元免费信用。详细信息请参见 [anthropic.com/pricing](https://www.anthropic.com/pricing)。
**使用其他模型?** ClawShield 兼容任何 OpenAI 兼容的 API(GPT、LM Studio、Ollama 等)。请编辑 `standalone/config/openclaw.json` 指向你偏好的提供者。
## 安装选项
### 选项 1:Docker(推荐)
所有组件在单个容器中运行——ClawShield 代理 + OpenClaw 网关 + 5 个代理。
请参考上方的 [快速启动](#quickstart-docker)。
### 选项 2:预编译二进制文件
从 [GitHub Releases](https://github.com/SleuthCo/clawshield-public/releases) 下载最新版本:
| 平台 | 文件 |
|----------|------|
| Windows | `clawshield-proxy-windows-amd64.exe` |
| Linux x64 | `clawshield-proxy-linux-amd64` |
| Linux ARM64 | `clawshield-proxy-linux-arm64` |
| macOS Apple Silicon | `clawshield-proxy-darwin-arm64` |
| macOS Intel | `clawshield-proxy-darwin-amd64` |
然后运行交互式设置向导:
```
# 下载设置向导
chmod +x clawshield-setup-*
# 运行向导 — 它会一步步引导您完成所有流程
./clawshield-setup-linux-amd64
```
该向导将:
- 要求输入你的 Anthropic API 密钥
- 配置你的代理
- 生成 OpenClaw 配置
- 创建启动/停止脚本
### 选项 3:从源码构建
需要 [Go 1.24+](https://go.dev/dl/)。
```
git clone https://github.com/SleuthCo/clawshield-public.git
cd clawshield-public
# 构建代理
cd proxy/cmd/clawshield-proxy
go build -o clawshield-proxy
# 构建设置向导
cd ../../clawshield-setup
go build -o clawshield-setup
# 运行设置
./clawshield-setup
```
## 包含内容
### 可观测性
ClawShield 暴露了一个与 Prometheus 兼容的 `/metrics` 端点,用于实时监控:
```
curl http://localhost:18789/metrics
```
关键指标:
- `clawshield_requests_total` — 已评估的总请求数
- `clawshield_decisions_allowed_total` / `_denied_total` / `_redacted_total` — 决策结果
- `clawshield_scanner_detections_total{scanner,action}` — 按扫描器类型统计的检测
- `clawshield_evaluation_duration_seconds` — 评估延迟直方图
- `clawshield_active_connections` — 当前 WebSocket 连接数
- `clawshield_crosslayer_events_*` — 跨层事件总线活动
### 安全代理
ClawShield 的核心。一个拦截用户与 AI 网关之间所有流量的 HTTP 反向代理。
**扫描器**(每个都会生成带有规则 ID 和脱敏匹配片段的结构化取证审计记录):
- **提示注入检测** — 阻止越狱尝试、指令覆盖、角色操纵
- **PII 脱敏** — 检测并脱敏电子邮件、电话号码、SSN、信用卡
- **密钥检测** — 捕获 API 密钥、令牌、密码,防止泄露
- **漏洞扫描** — 标记 SQL 注入、SSRF、路径遍历、命令注入、XSS
- **恶意软件分析** — 检测可执行文件、脚本、压缩炸弹、已知签名
**生产强化(第 3 层):**
- 使用 Go 原生 eBPF 监控替代 Python/BCC 依赖——单一编译二进制文件
- 优雅降级:当 eBPF 不可用时自动回退到 `/proc` 轮询(无需 `CAP_BPF`、旧内核或容器)
- 健康检查系统:各层状态报告(健康/降级/宕机)用于所有 3 层防御
- 事件管道可靠性:丢失计数、背压日志、已发布/丢弃事件指标
- 动态 DNS 重新解析:防止 CDN IP 轮换导致规则失效
- 启动时能力检测:内核版本、BTF 支持、root/CAP_BPF 检查
**策略热重载:**
- 基于文件观察的热重载——修改 `policy.yaml` 后,变更在 5 秒内生效,无需重启
- 内容哈希版本控制——每个策略版本都会生成基于 SHA256 的版本 ID,并记录在审计日志中
- 影子/金丝雀模式——在强制生效前以仅日志模式测试新策略
- 策略差异——每次重载都会记录确切变更(允许列表添加、扫描器开关等)
- 原子交换——正在进行的请求继续使用旧策略,新请求使用新策略
**流式响应扫描:**
- 对 SSE 和 NDJSON 流进行实时分块扫描——无缓冲延迟
- 滑动重叠窗口(200 字符)——捕获跨越分块边界的模式
- 从请求到响应的上下文传递——减少误报(例如代码生成响应可能包含脚本模式)
- 对流输出中的密钥和 PII 进行逐块脱敏
**策略引擎**——基于 YAML、拒绝优先:
```
default_action: deny
scanners:
prompt_injection:
enabled: true
action: block
pii:
enabled: true
action: redact
secrets:
enabled: true
action: block
domain_allowlist:
- "api.anthropic.com"
- "api.openai.com"
```
更多示例请参见 [policy/examples/](policy/examples/)。
### 5 个 AI 代理
每个代理都有专门的角色和独立的 RAG 知识库:
| 代理 | 角色 | 知识 |
|-------|------|-----------|
| **Anvil** | 软件开发 | 语言、架构、DevOps、测试、安全编码 |
| **Shield** | 安全工程 | NIST、MITRE ATT&CK、OWASP、零信任、威胁建模 |
| **Harbor** | 云工程 | AWS、Azure、GCP、Kubernetes、IaC、网络 |
| **Beacon** | 通信 | 危机沟通、内容策略、执行简报 |
| **Lens** | 研究与分析 | OSINT、结构化分析、认知偏差、情报 |
### 审计日志
每个请求和响应都会记录到本地 SQLite 数据库,包含:
- 时间戳、源 IP、请求方法
- 扫描器决策(允许/拒绝/脱敏)及原因
- **决策可解释性**——每个拒绝/脱敏决策的结构化取证详情,包括触发哪个扫描器、匹配了哪条规则、脱敏的匹配片段以及置信度
- 完整的请求/响应负载(可配置)
- 通过内置审计 CLI 查询:
```
clawshield-audit --db /var/lib/clawshield/audit.db --last 50
clawshield-audit --db /var/lib/clawshield/audit.db --blocked-only
clawshield-audit --db /var/lib/clawshield/audit.db --scanner injection
clawshield-audit --db /var/lib/clawshield/audit.db --rule-id sqli
```
完整架构请参见 [docs/audit-log-format.md](docs/audit-log-format.md),取证查询详情请参见 [Decision Explainability](docs/audit-log-format.md#decision-explainability)。
**SIEM 集成:**
- 关键和高严重性事件实时转发到企业 SIEM 系统
- [OCSF v1.1](https://schema.ocsf.io/) Detection Finding 格式,实现通用 SIEM 兼容性
- Syslog(基于 TCP/TLS 的 RFC 5424)和 Webhook(HTTPS POST)传输
- 可配置严重性阈值——默认仅转发高(4)和严重(5)告警
- 配置详情参见 [docs/audit-log-format.md](docs/audit-log-format.md#siem-integration)
### 网络防火墙(可选)
基于 iptables 的出口防火墙,限制代理可访问的域名/IP:
<_BLOCK_7/>
### eBPF 监控(可选)
内核级系统调用监控,用于检测可疑代理行为:
```
sudo python3 ebpf/cmd/clawshield-ebpf/main.py --config ebpf/config/default.yaml
```
可检测:进程炸弹、敏感文件访问、权限提升、异常网络连接。
## 架构
ClawShield 采用 **纵深防御** 架构,由三个安全层通过跨层事件总线连接:
```
Layer 1: Application (ClawShield Proxy)
▪ Scans message content
▪ Enforces YAML policies
▪ Logs all decisions
Layer 2: Network (ClawShield Firewall)
▪ iptables egress rules
▪ Domain/IP allowlist
▪ Blocks unapproved connections
▪ Dynamic temporary rules from cross-layer events
Layer 3: Kernel (ClawShield eBPF)
▪ Syscall monitoring
▪ Behavioral anomaly detection
▪ Real-time alerts
```
各层独立工作。若某一层被绕过,其他层仍可提供保护。
### 跨层事件总线
三个层通过基于 Unix 套接字的事件总线通信,实现**自适应安全响应**:
```
┌──────────────┐ ┌──────────────┐
│ eBPF │──── Unix Socket ────────▶│ Proxy │
│ (Layer 3) │ /tmp/clawshield- │ (Layer 1) │
│ Produces: │ events.sock │ Produces: │
│ • privesc │ │ • injection │
│ • port_scan │◀── Adaptive Controller ──│ • malware │
│ • file_access│ │ • vuln_scan │
└──────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Firewall │
│ (Layer 2) │
│ Consumes: │
│ • temp block│
│ rules │
└──────────────┘
```
**自适应反应示例:**
| 触发条件 | 自动响应 |
|---------|-------------------|
| eBPF 检测到权限提升 | 代理在 5 分钟内将注入敏感度提升至 `high` |
| eBPF 检测到端口扫描 | 代理在 10 分钟内限制域名访问 |
| 代理在 60 秒内阻止 3 次以上注入 | 默认动作强制设为 `deny`,持续 15 分钟 |
| 代理检测到响应中的恶意软件 | 防火墙添加临时 IP 阻断规则 |
在策略 YAML 中添加 `adaptive` 部分以启用跨层集成。完整示例请参见 [policy/examples/adaptive_crosslayer.yaml](policy/examples/adaptive_crosslayer.yaml)。
## 生产部署
在真实服务器上部署并启用 TLS,请参考 [docs/install-guide.md](docs/install-guide.md)。
`deploy/` 目录包含:
- `cloud-init.yaml` — 强化虚拟机配置(SSH 锁定、fail2ban、nftables、auditd)
- `docker-compose.yml` — 完整生产栈(含 Nginx TLS 终止)
- `nginx/conf.d/` — 生产级 Nginx 配置(速率限制、安全头、WebSocket 代理)
- `deploy.sh` — 自动化部署脚本
- `smoke-test.sh` — 部署后验证
## 配置
### 环境变量
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| `ANTHROPIC_API_KEY` | 是 | 你的 Anthropic API 密钥(`sk-ant-...`) |
| `GATEWAY_AUTH_TOKEN` | 否 | 共享认证令牌(未提供时自动生成) |
| `CLAWSHIELD_PORT` | 否 | 主机端口(默认:18801) |
| `CLAWSHIELD_STUDIO_URL` | 否 | Studio 深链接基础 URL |
### 文件
| 文件 | 用途 |
|------|---------|
| `standalone/config/openclaw.json` | OpenClaw 网关配置(模型、代理、认证) |
| `standalone/config/policy.yaml` | ClawShield 安全策略 |
| `standalone/agents/*/` | 代理配置及知识库 |
## 测试
```
# 单元测试
go test ./proxy/...
go test ./firewall/...
# 集成测试
go test ./integration/...
```
## 许可证
Apache 2.0
## 感谢
基于 [OpenClaw](https://github.com/openclaw/openclaw) 构建。灵感来源于传统网络安全架构在 AI 代理场景中的应用。
标签:AI安全, Chat Copilot, ClawShield, Docker, Docker镜像, eBPF监控, EVTX分析, Go代理, iptables防火墙, Lerna, NIDS, PII脱敏, RAG知识库, YAML策略引擎, 多智能体, 安全代理, 安全防御评估, 审计日志, 容器化, 提示注入防护, 数据脱敏, 日志审计, 策略执行, 纵深防御, 自定义请求头, 请求响应过滤, 请求拦截, 零日漏洞检测