为群智时代打造的EDR。
默认拒绝,签名真相。
状态:pre-1.0 beta。公开API已稳定;默认值在1.0之前可能进一步收紧。
Clawdstrike 是一个策略引擎、一个EDR,以及一个签名审计链,三者合为一体。AI 代理的 tool_call 与内核级的 file_access、process_exec、network_flow、dylib_load 或 launch_persistence 在同一事件分类体系中。一个策略引擎评估它们。一个 Ed25519 签名的因果图记录它们。默认行为是拒绝(fail closed)。
同一个引擎以 Rust crate、TypeScript SDK、Python 包、Go 模块、CLI、桌面 EDR 代理(macOS Endpoint Security + Network Extension;Linux Tetragon + Hubble)以及企业控制平面的形式提供。
快速开始 · 守卫 · 策略 · 形式化验证 · 企业版 · 设计
通过你偏好的包管理器安装:
brew install backbay-labs/tap/clawdstrike # macOS, Linux
npm install @clawdstrike/sdk # TypeScript
pip install clawdstrike # Python
cargo add clawdstrike # Rust
go get github.com/backbay-labs/clawdstrike-go
搭建项目并启动守护进程:
clawdstrike init --keygen
# 写入 policy.yaml, config.toml, keys/clawdstrike.key{,.pub}
clawdstrike daemon start && clawdstrike daemon status
# Status: healthy | Version: 0.2.7 | Uptime: 2s
三个拒绝实例,每条都经过签名:
$ clawdstrike check --action-type file --ruleset strict ~/.ssh/id_rsa
BLOCKED [Critical]: Access to forbidden path: ~/.ssh/id_rsa
$ clawdstrike check --action-type egress --ruleset strict api.openai.com:443
BLOCKED [Error]: Egress to api.openai.com blocked by policy
$ clawdstrike check --action-type mcp --ruleset strict shell_exec
BLOCKED [Error]: Tool 'shell_exec' is blocked by policy
验证策略本身是否编译通过且内部一致:
$ clawdstrike verify --policy strict
Consistency: PASS (47 formulas, 0 conflicts)
Completeness: PASS (4/4 action types covered)
Inheritance: PASS (0 weakened prohibitions)
在强制模式下运行真实代理:
clawdstrike run --policy clawdstrike:strict -- python my_agent.py
代理正常运行。每次工具调用首先经过引擎。拒绝时会在 SDK 中引发类型化错误,并发出签名收据。
针对集群部署,安装 Helm chart。hushd 和 Spine 签名器默认拒绝(fail-closed),需要在安装时提供密钥,因此预先创建 Secrets 并在 chart 中引用它们:
NS=clawdstrike-system
kubectl create namespace "$NS"
kubectl -n "$NS" create secret generic clawdstrike-hushd-auth \
--from-literal=CLAWDSTRIKE_API_KEY="$(openssl rand -hex 32)" \
--from-literal=CLAWDSTRIKE_ADMIN_KEY="$(openssl rand -hex 32)" \
--from-literal=CLAWDSTRIKE_AUTH_PEPPER="$(openssl rand -hex 32)"
kubectl -n "$NS" create secret generic clawdstrike-spine \
--from-literal=SPINE_LOG_SEED_HEX="$(openssl rand -hex 32)" \
--from-literal=SPINE_WITNESS_SEED_HEX="$(openssl rand -hex 32)"
helm install clawdstrike \
oci://ghcr.io/backbay-labs/clawdstrike/helm/clawdstrike --version 0.2.0 \
--namespace "$NS" \
--set hushd.auth.existingSecret=clawdstrike-hushd-auth \
--set spine.secrets.existingSecret=clawdstrike-spine
这将启动 hushd、Spine 检查点 + 见证人以及捆绑的 NATS JetStream。控制 API(注册、状态命令、签名完成包返回)以及 Tetragon/Hubble 遥测桥接为可选。
完整参数集请参阅 chart README,端到端代理注册请参阅 企业版注册。
flowchart LR
A[代理 / 传感器] --> B[规范化事件]
B --> C[策略引擎 + 守卫栈]
C -->|允许| D[执行动作]
C -->|拒绝| E[已阻止,默认拒绝]
C --> F[Ed25519 收据]
F --> G[因果图]
G -.->|企业版| H[Spine 审计链]
SDK 适配器和 OS 级传感器将相同的规范化事件送入策略引擎。适配器覆盖 AI 代理工具调用;内核传感器(macOS Endpoint Security 和 Network Extension,Linux Tetragon 和 Hubble)覆盖文件、进程、网络、动态库和持久化事件。守卫栈返回裁决结果,裁决结果附带 Ed25519 收据,每条收据通过内容哈希链接成按会话划分的因果图,将代理身份与下游 OS 事件关联。
当决策跨越响应阈值时,引擎发出签名作用:隔离文件、限制出口目标、挂起进程树、撤销先前颁发的批准。在可能的情况下作用是可逆的。过去观测数据保留在磁盘飞行记录器上,因此可以在收紧策略之前,针对上周的状态进行模拟。在企业模式下,收据链通过 NATS 发送到 Spine 检查点;一个独立的见证人每批共同签名。
日志是故事;签名是证据。
每个守卫都是工具边界上的一个可组合检测。返回带证据的裁决结果。可快速失败或聚合;按策略配置。
| 守卫 | 捕获目标 |
|---|---|
ForbiddenPathGuard | 访问 .ssh、.env、.aws、凭据存储、注册表配置单元 |
PathAllowlistGuard | 白名单文件访问,用于最小权限代理 |
EgressAllowlistGuard | 按域名的出站网络调用(默认拒绝或白名单) |
SecretLeakGuard | 文件写入中的 AWS 密钥、GitHub 令牌、私钥、API 密钥 |
PatchIntegrityGuard | 危险补丁,如 rm -rf /、chmod 777、disable security |
ShellCommandGuard | 危险 Shell 命令执行前检测 |
McpToolGuard | MCP 工具调用,带确认门控 |
PromptInjectionGuard | 不可信输入中的注入攻击 |
JailbreakGuard | 四层检测:启发式 + 统计 + ML + 可选的 LLM 裁判 |
ComputerUseGuard | CUA 动作:远程会话、剪贴板、输入注入、文件传输 |
RemoteDesktopSideChannelGuard | CUA 会话中的剪贴板、音频、驱动器映射、文件传输 |
InputInjectionCapabilityGuard | CUA 环境下的输入注入能力限制 |
SpiderSenseGuard | 分层威胁筛查:向量相似度、可选的 LLM 升级 |
真实来源:crates/libs/clawdstrike/src/guards/。
版本化、确定性的策略即代码。Schema 1.5.0(向后兼容 1.1.0+)。支持从内置策略、本地文件、远程 URL 和 git ref 进行 extends。远程 extends 通过主机白名单和 #sha256=<64-hex> 完整性锁定。
内置规则集:permissive · default · strict · ai-agent · ai-agent-posture · cicd · remote-desktop · remote-desktop-permissive · remote-desktop-strict · spider-sense。
操作循环(观察、合成、收紧):
# 根据观测事件生成最小权限候选策略
clawdstrike policy synth run.events.jsonl \
--extends clawdstrike:default --out candidate.yaml
# 针对候选策略重放事件
clawdstrike policy simulate candidate.yaml run.events.jsonl --fail-on-deny
# 对比候选策略与基线
clawdstrike policy diff clawdstrike:default candidate.yaml
参见 策略 schema、姿态 schema 以及 观察、合成、收紧指南。
策略引擎的核心决策逻辑在 Lean 4 中指定,并通过 Aeneas 翻译管道与 Rust 实现进行差异性测试。
在 Lean 中已证明(45 个核心函数中的 44 个,共 5 个属性):
extends 链始终被捕获证明范围之外: 核心决策逻辑之外的守卫、IO、网络以及加密原语本身(我们依赖 ed25519-dalek)。
clawdstrike verify --policy strict # Z3 策略分析
cargo test -p formal-diff-tests # 每日差异性测试
cd formal/lean4/ClawdStrike && lake build
参见 形式化验证指南。
每条裁决都附带一个 Ed25519 签名的证明,包含决策、做出决策的策略以及证据。收据使用 RFC 8785 JSON 规范化进行规范化,因此签名在 Rust、TypeScript 和 Python 中字节级别相同。