
محرك السياسات و 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؛ شاهد مستقل يوقع على كل دفعة.
السجلات قصص؛ الدليل توقيع.
كل حارس هو فحص قابل للتركيب على حدود الأداة. يُرجع حكمًا بأدلة. فشل سريع أو تجميعي؛ يتم تكوينه حسب السياسة.
| الحارس | يلتقط |
|---|---|
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 اختياري |
مصدر الحقيقة: crates/libs/clawdstrike/src/guards/.