
محرك السياسات و EDR لأساطيل عملاء AI ومحطات عمل المطورين. يراقب استدعاءات الأدوات، الوصول إلى الملفات، تدفقات الشبكة، وتنفيذ العمليات مع سجلات تدقيق موقعة بـ Ed25519 وإنفاذ الإغلاق عند الفشل.
EDR في عصر السرب.
افشل مغلقًا. وقّع الحقيقة.
الحالة: ما قبل 1.0 بيتا. واجهات برمجة التطبيقات العامة مستقرة؛ قد تستمر الإعدادات الافتراضية في التشدد قبل 1.0.
Clawdstrike هو محرك سياسات، وEDR، وسلسلة تدقيق موقعة في ملف ثنائي واحد. استدعاء أداة (tool_call) من وكيل AI يجلس في نفس تصنيف الأحداث مثل file_access على مستوى النواة، process_exec، network_flow، dylib_load، أو launch_persistence. محرك سياسات واحد يقيمها. رسم بياني سببي واحد موقع بـ Ed25519 يسجلها. الإعدادات الافتراضية تفشل مغلقة.
يصدر المحرك نفسه كـ Rust crate، وTypeScript SDK، وPython package، وGo module، و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
# الحالة: صحي | الإصدار: 0.2.7 | وقت التشغيل: 2s
ثلاث عمليات رفض، كل منها موقّع:
$ clawdstrike check --action-type file --ruleset strict ~/.ssh/id_rsa
BLOCKED [Critical]: الوصول إلى مسار محظور: ~/.ssh/id_rsa
$ clawdstrike check --action-type egress --ruleset strict api.openai.com:443
BLOCKED [Error]: مخرجات إلى api.openai.com محظورة حسب السياسة
$ clawdstrike check --action-type mcp --ruleset strict shell_exec
BLOCKED [Error]: الأداة 'shell_exec' محظورة حسب السياسة
تحقق من أن السياسة نفسها تُجمّع ومتسقة داخليًا:
$ clawdstrike verify --policy strict
الاتساق: PASS (47 صيغة، 0 تعارض)
الاكتمال: PASS (4/4 نوع إجراء مشمولة)
الوراثة: PASS (0 حظر ضعيف)
شغّل وكيلًا حقيقيًا تحت الإنفاذ:
clawdstrike run --policy clawdstrike:strict -- python my_agent.py
الوكيل يعمل بشكل طبيعي. كل استدعاء أداة يمر على المحرك أولاً. الرفع يثير خطأً مصنفًا في SDK ويصدر إيصالًا موقعًا.
لنشر الأسطول، ثبّت مخطط Helm. كل من hushd وموقّعي Spine مغلقان عند الفشل ويحتاجان إلى مفاتيح وقت التثبيت، لذا أنشئ الأسرار مسبقًا وأشر إليها من المخطط:
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 المرفق. واجهة برمجة التطبيقات للتحكم (التسجيل، أوامر الوضعية، حزم الإكمال الموقعة) وجسور تليمتري Tetragon/Hubble اختيارية.
انظر ملف README الخاص بالمخطط للحصول على مجموعة المعاملات الكاملة، والتسجيل المؤسسي للتسجيل الشامل للوكيل.
flowchart LR
A[وكيل / مستشعر] --> B[حدث قانوني]
B --> C[محرك سياسات + حزمة حراس]
C -->|سماح| D[ينفذ الإجراء]
C -->|رفض| E[محظور، مغلق عند الفشل]
C --> F[إيصال Ed25519]
F --> G[رسم بياني سببي]
G -.->|مؤسسي| H[سلسلة تدقيق Spine]
محولات SDK ومستشعرات نظام التشغيل تغذي نفس الحدث القانوني في محرك السياسات. تغطي المحولات استدعاءات أدوات AI؛ تغطي مستشعرات النواة (macOS Endpoint Security وNetwork Extension، Linux Tetragon وHubble) أحداث الملفات والعمليات والشبكة والمكتبات الديناميكية والاستمرارية. ترجع حزمة الحراس حكمًا، يُشحن الحكم مع إيصال Ed25519، ويتم تجزئة المحتوى لكل إيصال في رسم بياني سببي لكل جلسة يربط هوية الوكيل بأحداث نظام التشغيل اللاحقة.
عندما يتجاوز قرار عتبة استجابة، يُصدر المحرك تأثيرًا موقعًا: عزل ملف، تقييد وجهة مخرجات، تعليق شجرة عملية، إلغاء موافقة صدرت سابقًا. التأثيرات قابلة للعكس حيثما أمكن. تبقى الملاحظات السابقة على مسجل طيران قائم على القرص، بحيث يمكن محاكاة سياسة مشددة مقابل حالة الأسبوع الماضي قبل إرسالها. في الوضع المؤسسي، تُرسل سلسلة الإيصالات عبر NATS إلى مدقق Spine؛ شاهد مستقل يوقع على كل دفعة.
السجلات قصص؛ الدليل توقيع.
كل حارس هو فحص قابل للتركيب على حدود الأداة. يُرجع حكمًا بأدلة. فشل سريع أو تجميعي؛ يتم تكوينه حسب السياسة.
مصدر الحقيقة: crates/libs/clawdstrike/src/guards/.
سياسات كرمز ذات إصدارات ومحددة. المخطط 1.5.0 (متوافق مع الإصدارات السابقة مع 1.1.0+). يدعم extends من المدمجة، الملفات المحلية، عناوين URL البعيدة، ومراجع git. 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
انظر مخطط السياسة، مخطط الوضعية، ودليل الرصد، التوليف، التشديد.
منطق اتخاذ القرار الأساسي لمحرك السياسات محدد في Lean 4 ويتم اختباره تفاضليًا ضد تنفيذ Rust عبر خط أنابيب الترجمة Aeneas.
مثبت في Lean (5 خصائص عبر 44 من 45 دالة أساسية):
extends تُكتشف دائمًاخارج نطاق الإثبات: الحراس خارج منطق القرار الأساسي، الإدخال/الإخراج، الشبكة، والبدائل التشفيرية نفسها (نعتمد على ed25519-dalek).
clawdstrike verify --policy strict # تحليل سياسة Z3
cargo test -p formal-diff-tests # اختبارات تفاضلية ليلية
cd formal/lean4/ClawdStrike && lake build
انظر دليل التحقق الرسمي.
كل حكم يُشحن مع تصديق موقع بـ Ed25519 يحتوي على القرار والسياسة التي اتخذته والأدلة. يتم توحيد الإيصالات باستخدام RFC 8785 JSON Canonicalization، بحيث يتحقق التوقيع متطابقًا بايتيًا في 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 is Ed25519-signed
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
نفس المحرك مع لوحة تحكم مدارة: واجهة برمجة تطبيقات التحكم، نقل NATS JetStream، سلسلة تدقيق Spine، ووحدة تحكم تحكم لسير عمل SOC. التسجيل عبر mTLS، أوامر الوضعية مع تأكيدات طلب/رد، حزم الإكمال الموقعة إلى API.
انظر التسجيل المؤسسي والهندسة التكيفية.
Clawdstrike ليس منتجًا معتمدًا. ينتج أدلةً تتوافق مع أطر التحكم القياسية: تصديقات أفعال موقعة، سجلات تدقيق متسلسلة التكامل، تقييم سياسة حتمي.
| الإطار | الأدلة التي ينتجها المحرك |
|---|---|
| SOC 2 (CC6.1, CC7.2) | ضوابط الوصول المنطقي وسجل تدقيق موقع |
| HIPAA §164.312(b) | ضوابط تدقيق مع إيصالات غير قابلة للتنصل |
| PCI-DSS 10.5 | سجلات مقاومة للتلاعب، متسلسلة بالتجزئة |
تعيينات الامتثال أولية. افتح مشكلة إذا كنت بحاجة إلى إضفاء الطابع الرسمي على إطار معين.
افشل مغلقًا. السياسات غير الصالحة ترفض في وقت التحميل. أخطاء التقييم ترفض الوصول. الإعدادات المفقودة افتراضية إلى التقييد. تدهور الأمان يتطلب إجراءً صريحًا وقابلًا للتدقيق.
دليل، وليس سجلات. إيصالات Ed25519 هي تصديقات تشفيرية، وليس أسطر سجل يمكن لأي شخص تعديلها. JSON القانوني (RFC 8785) يضمن أن التوقيعات تتحقق متطابقة في Rust وTypeScript وPython.
نفس المغلف، أي أنبوب. مغلف Spine الموقع متطابق بايتيًا سواء سافر عبر NATS بمعدل 100 ألف رسالة/ثانية، أو libp2p gossipsub عبر الإنترنت السكني، أو راديو LoRa بمعدل 1200 بت/ثانية. النقل غير مرئي لطبقة الحقيقة.
تخفيف فقط. الوكلاء يفوضون مجموعات فرعية من قدراتهم، ولا يزيدونها أبدًا. رموز التفويض تحمل سقوف قدرات تشفيرية. تصعيد الامتياز لا يُمنع بالسياسة؛ يُمنع بالرياضيات.
امتلك مجموعتك. Apache-2.0. قابل للاستضافة الذاتية. لا اعتماد على بائع للبنية التحتية الحرجة للأمان. نفس المحرك يعمل على حاسوب مطور، وأسطول مؤسسي، و 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، تعطيل الأمان |
ShellCommandGuard | أوامر شل خطيرة قبل التنفيذ |
McpToolGuard | استدعاءات أدوات MCP مع بوابات تأكيد |
PromptInjectionGuard | هجمات الحقن في المدخلات غير الموثوقة |
JailbreakGuard | كشف من 4 طبقات: إرشادي + إحصائي + تعلم آلي + اختياري 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 |
| مرجع | الحراس · مخطط السياسة · خريطة المستودع |
| مؤسسات | دليل التسجيل · الهندسة التكيفية |