leos565/clawedr
GitHub: leos565/clawedr
一款面向 AI 编程助手的内核级 EDR 工具,通过 eBPF 和 Seatbelt 在系统调用层面阻断危险行为,并提供输出脱敏、注入检测、网络白名单等多层防护。
Stars: 0 | Forks: 0
# ClawEDR
[](https://www.python.org/)
[](https://ebpf.io/)
[](https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/)
面向 AI 编码 Agent 的内核级端点检测与响应。ClawEDR 通过 **eBPF** (Linux) 和 **Apple Seatbelt** (macOS) 强制执行安全策略,确保受损或恶意的工具使用不会触及敏感文件、网络或进程。
## 安装
```
curl -fsSL https://raw.githubusercontent.com/leos565/clawedr/main/deploy/install.sh | sudo sh
```
然后重启你的 Agent。ClawEDR 作为后台 Daemon 运行 —— 在 Linux 上无需包装器,在 macOS 上使用透明的 `sandbox-exec` 包装器。
## 工作原理
```
master_rules.yaml + ClawSec threat feed
↓ (compiler.py)
compiled_policy.json + clawedr.sb
↓ (install.sh)
Shield daemon (eBPF / Seatbelt)
↓
Alerts → Dashboard (localhost:8477)
```
**Linux:** eBPF 挂钩于 `execve`、`openat` 和 `socket_connect`,在内核中拦截系统调用。被阻止的二进制文件在执行前会收到 `SIGKILL` 信号。只有 OpenClaw 进程及其子进程受到监控 —— 系统的其余部分不受影响。
**macOS:** Apple Seatbelt 沙箱配置文件在内核级别拒绝访问敏感路径和可执行文件。违规日志被实时追踪并作为警报分发。
**Dashboard:** 端口 8477 上的 Web UI,用于查看警报、管理规则豁免以及添加自定义阻止规则。作为系统服务自动安装。
## 保护模块
除了核心策略执行外,ClawEDR 还包含四个额外的保护层:
| Module | Rule Prefix | What It Does |
|--------|-------------|--------------|
| **Output Scanner** | `OUT-*` | 在 Agent stdout 中的密钥和 PII(AWS 密钥、GitHub Token、信用卡、SSN、私钥等)到达用户之前,通过 eBPF tracepoint 进行扫描 |
| **Prompt Injection Detection** | `INJ-*` | 检查流入 Agent 的内容,识别指令覆盖、角色劫持、隐写术和数据渗漏模式 |
| **Egress Allowlist** | — | 将出站网络连接限制为显式域名白名单,在 eBPF Socket 层强制执行 |
| **Cognitive Integrity Monitor** | `INT-*` | 跟踪 OpenClaw 配置文件的 SHA-256 基线,并对意外修改发出警报 |
所有模块均可从 Dashboard 配置,并可独立启用/禁用。
## 规则系统
每条规则都有一个稳定的 ID,用于可追溯性和用户覆盖:
| Prefix | Category | Example |
|--------|----------|---------|
| `BIN-*` | 被阻止的可执行文件 | `BIN-001` → `nc` |
| `DOM-*` | 被阻止的域名 | `DOM-016` → `pastebin.com` |
| `PATH-LIN-*` / `PATH-MAC-*` | 被阻止的路径 | `PATH-LIN-002` → `/etc/shadow` |
| `LIN-*` / `MAC-*` | 特定操作系统的拒绝规则 | `LIN-050` → `dd` 磁盘写入 |
| `HEU-*` | 启发式检测 | `HEU-NET-001` → DNS 渗漏模式 |
| `THRT-*` | 威胁情报条目 | 从 ClawSec 情报源自动生成 |
| `USR-*` | 用户自定义规则 | `USR-DOM-001` → `evil.com` |
| `OUT-*` | 输出扫描模式 | `OUT-001` → AWS Access Key ID |
| `INJ-*` | 注入检测模式 | `INJ-006` → 零宽度 Unicode 隐写术 |
## 用户自定义
所有覆盖配置均位于 `~/.clawedr/user_rules.yaml` 并在系统更新后保留:
```
exempted_rule_ids:
- "BIN-001" # Allow nc
custom_rules:
- id: USR-DOM-001
type: domain
value: evil.com
- id: USR-PATH-001
type: path
value: /var/secrets
platform: linux
# 模块设置
output_scanner_enabled: true
injection_detection_enabled: true
egress_mode: allowlist
allowed_domains:
- api.openai.com
- api.anthropic.com
integrity_monitor_enabled: true
```
支持的自定义规则类型:`executable`、`domain`、`hash`、`path`、`argument`。规则也可以从 Dashboard UI 进行管理。
## 仪表板
位于 `localhost:8477` 的 Web UI 提供:
- **Alerts** —— 按时间、严重程度和模块(Policy Rules / Threat Feed / Heuristics / Output Scanner / Prompt Injection / Custom)过滤。支持单条消除和批量清除。
- **Policy Rules** —— 切换每条规则的执行模式,配置安全配置文件(Hobbyist → Professional → Military 滑块),添加自定义规则。
- **Output Scanner** —— 启用/禁用类别,查看带有技术示例的模式库,检查最近的发现。
- **Prompt Injection** —— 配置注入检测类别,查看已触发的模式。
- **Egress Control** —— 管理出站域名白名单,在白名单模式和仅监控模式之间切换。
- **Integrity** —— 基线管理、单文件状态、篡改警报。
- **Settings** —— API token、绑定地址、通知设置。
## 开发
```
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
./main.py sync # Fetch threat feed + merge with master_rules.yaml
./main.py compile # Generate compiled_policy.json + clawedr.sb
./main.py test # Run pytest suite
./main.py publish # Commit and push deploy/
./main.py all # sync → compile → test
```
Linux eBPF 测试需要 OrbStack Ubuntu VM —— 在 `builder/config.yaml` 中配置主机。
## 文档
请参阅 [ARCHITECTURE.md](ARCHITECTURE.md) 获取详细的技术文档,包括:
- 完整的项目布局和组件细分
- Shield 执行细节(eBPF 挂钩、Seatbelt 配置文件、进程跟踪)
- 威胁情报管道
- Dashboard API 参考
- 测试矩阵和 CI 配置
- 服务管理命令
## 许可证
MIT
标签:AI代码安全, API集成, CISA项目, Docker镜像, eBPF安全, EDR, FTP漏洞扫描, HTTP工具, IP 地址批量处理, LLM安全防护, macOS沙盒, OpenClaw, Python安全工具, Seatbelt, SQLite数据库, 内核监控, 内核级防护, 可观测性, 威胁情报, 安全编排, 开发者工具, 敏感文件保护, 沙箱逃逸防护, 端点检测与响应, 网络安全, 网络安全审计, 网络访问控制, 脆弱性评估, 脱壳工具, 进程拦截, 逆向工具, 隐私保护, 零信任执行