为群智时代打造的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 检查点;一个独立的见证人每批共同签名。
日志是故事;签名是证据。
每个守卫都是工具边界上的一个可组合检测。返回带证据的裁决结果。可快速失败或聚合;按策略配置。
真实来源: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 中字节级别相同。
企业部署将收据通过 Spine 转发,这是一个 Ed25519 签名且哈希链接的封套日志。篡改任何记录都会导致之后的所有记录验证失败。
npm install @clawdstrike/sdk
import { HushEngine, loadPolicy } from "@clawdstrike/sdk";
const engine = new HushEngine(await loadPolicy("clawdstrike:strict"));
const verdict = await engine.check({
actionType: "file",
target: "~/.ssh/id_rsa",
});
// verdict.decision === "deny"
// verdict.receipt 是 Ed25519 签名
pip install clawdstrike
from clawdstrike import HushEngine, load_policy
engine = HushEngine(load_policy("clawdstrike:strict"))
verdict = engine.check(action_type="file", target="~/.ssh/id_rsa")
# verdict.decision == "deny"
[dependencies]
clawdstrike = "0.2"
use clawdstrike::{HushEngine, Policy, Action, Decision};
let policy = Policy::load_builtin("strict")?;
let engine = HushEngine::new(policy);
let verdict = engine.check(&Action::file("~/.ssh/id_rsa"))?;
assert_eq!(verdict.decision, Decision::Deny);
go get github.com/backbay-labs/clawdstrike-go
engine, _ := clawdstrike.NewEngine(clawdstrike.LoadBuiltin("strict"))
verdict, _ := engine.Check(clawdstrike.FileAction{Target: "~/.ssh/id_rsa"})
// verdict.Decision == clawdstrike.Deny
相同的引擎加上托管控制平面:控制 API、NATS JetStream 传输、Spine 审计链以及用于 SOC 工作流的控制台。通过 mTLS 注册,带有请求/回复确认的姿态命令,签名完成包返回 API。
Clawdstrike 不是认证产品。它产生映射到标准控制框架的证据:签名动作证明、完整性链审计跟踪、确定性策略评估。
| 框架 | 引擎产生的证据 |
|---|---|
| SOC 2 (CC6.1, CC7.2) | 逻辑访问控制和签名审计跟踪 |
| HIPAA §164.312(b) | 审计控制,附带不可否认收据 |
| PCI-DSS 10.5 | 防篡改、哈希链日志 |
合规映射为草稿。如果您需要某个框架的形式化版本,请提交 issue。
默认拒绝。 无效策略在加载时拒绝。评估错误时拒绝访问。缺少配置默认为限制性。安全降级需要明确、可审计的操作。
证据,而非日志。 Ed25519 收据是加密证明,而不是可被编辑的日志行。规范化 JSON (RFC 8785) 确保签名在 Rust、TypeScript 和 Python 中验证一致。
相同封套,任意管道。 一个签名的 Spine 封套,无论通过 NATS(10 万 msg/秒)、通过住宅互联网的 libp2p gossipsub、还是通过 1200 bps 的 LoRa 无线电传输,都是字节相同的。传输对真相层不可见。
仅限衰减。 代理委派其能力子集,永不提升。委派令牌携带加密能力上限。权限提升不是通过策略阻止的,而是通过数学阻止的。
拥有你的栈。 Apache-2.0。可自托管。安全关键基础设施无需供应商依赖。同一个引擎可以在开发者笔记本电脑、企业集群以及无线电 mesh 上的 Raspberry Pi 上运行。
如果您发现漏洞:
security 标签。参见 SECURITY.md 和 THREAT_MODEL.md。
参见 CONTRIBUTING.md。
cargo fmt --all && cargo clippy --workspace -- -D warnings && cargo test --workspace
Apache License 2.0。参见 LICENSE。
| 守卫 | 捕获目标 |
|---|
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 升级 |
| 插件 | 安装 |
|---|
| Claude Code | clawdstrike-plugin/ |
| Cursor | cursor-plugin/ |
| OpenClaw 适配器 | npm install @clawdstrike/openclaw (指南) |
| 桌面代理 | apps/agent/ |
| 入门 | Rust · TypeScript · Python |
| 概念 | 设计理念 · 强制层级 · 多语言 |
| 框架指南 | OpenAI · Claude · Vercel AI · LangChain · OpenClaw |
| 参考 | 守卫 · 策略 Schema · 仓库地图 |
| 企业版 | 注册指南 · 自适应架构 |