shell.exec ونطاق شبكة خارجي هي بالضبط الشيء الذي يجب مراجعته قبل أن
يعمل، لا اكتشافه في حادثة.
حوكمة المهارات في جدار الحماية هي تلك المراجعة. كل قدرة قابلة للتثبيت
تُسجَّل كسجل ضمن نطاق مساحة العمل، تُفحَص بمحرك مخاطر حتمي، وتُسنَد إليها
نطاق مخاطرة ووضع فرض، و — وقت التشغيل — يركب ذلك الوضع فوق
أحكام القواعد لجدار الحماية.
1. ما هي “المهارة” هنا
سجل المهارة هو قدرة وكيل واحدة قابلة للتثبيت. نموذج واحد يعمّم ثلاثة أنواع بحيث يحكم مستوى فحص وتسجيل وموافقة واحد كل ما يثبّته الوكيل ذاتياً:| النوع | ما هو |
|---|---|
skill | قدرة محزّمة — بيان مع مجموعة أدوات وجزء من مطالبة النظام. |
mcp_server | خادم MCP من نوع أحضِر-خادمك مسجّل كقطعة محكومة. |
plugin | امتداد بأسلوب الإضافة. |
builtin، أو registry، أو private، أو
byo_mcp، أو auto_detected — يغذّي تقييم الثقة.
2. الماسح
عند التسجيل (وعند الطلب)، يشغّل الماسح مجموعة من التمريرات الحتمية الخالية من التبعيات على البيان والنطاقات المعلَنة. كل تمريرة تُصدِر اكتشافات بخطورةinfo أو warn أو error:
| التمريرة | تعلّم | الخطورة |
|---|---|---|
| prompt_injection | نص البيان الذي يحاول تجاوز التعليمات (ignore previous instructions، you are now، system: بادئ…). | warn |
| tool_creep | أسماء الأدوات التي يستخدمها البيان لكنه لم يعلنها في allowed_tools. | error |
| network_egress | مضيفو HTTP(S) في البيان غير المعتمَدين في نطاقات شبكة المهارة. | warn |
| fs_write_unsafe | نطاق نظام ملفات بوضع كتابة على مسار خارج /tmp (آمن من الاجتياز). | error |
| data_scope | نطاقات بيانات حساسة (pii، financial، customer). | info |
| unsigned | مهارة registry بلا توقيع. | warn |
error ← blocked؛ وإلا أي warn
← flagged؛ وإلا clean.
3. درجة المخاطرة والنطاقات
نفس الاكتشافات تغذّي درجة مخاطرة حتمية (0–100، تراكمية مع سقوف لكل فئة). أثقل المساهمين هي القدرات الخطرة:| القدرة | الوزن |
|---|---|
| تنفيذ shell | +30 |
| تقييم كود اعتباطي | +30 |
كتابة نظام ملفات خارج /tmp | +25 |
| قراءة الأسرار | +25 |
| egress شبكي خارجي | +20 |
| النطاق | الدرجة |
|---|---|
low | 0–25 |
medium | 26–50 |
high | 51–75 |
critical | 76–100 |
4. وضع الفرض
النطاق والحكم معاً يشتقّان وضع فرض — ما يفعله جدار الحماية فعلاً عندما تُستدعى أداة مملوكة لهذه المهارة:| الوضع | الأثر وقت التشغيل |
|---|---|
allow | لا تفرض المهارة شيئاً من عندها؛ أحكام القواعد تقرر. |
quarantine | تصعيد أي شيء دون deny إلى pending_approval — تعمل أدوات المهارة فقط بعد موافقة إنسان. |
block | فرض deny على أدوات المهارة. |
error واحد يجعل الحكم blocked سيحجز أو يحجب حتى
عندما يكون النطاق العددي low — الاتجاه الحذِر. يمكن لمشغّل ضبط الوضع
صراحةً؛ وعند إعادة الفحص لا يتشدّد الوضع إلا أكثر، ولا يخفّف أبداً حجباً
أو حجراً صحياً ضبطته.
5. إشارات الثقة
إشارتان وراء الفحص الساكن تُعلمان كيف تُعامَل المهارة:- الناشرون الموقّعون. المهارة التي تحمل توقيعاً من ناشر موثوق تُعامَل كأكثر جدارة بالثقة (تخفيف التوقيع يخفض درجة مخاطرتها)؛ ومهارة سجل غير موقّعة تُعاقَب. تدير أنت أي الناشرين تثق بهم مساحة عملك.
- سمعة المورد. يمكن تعديل مكانة المهارة بسلوكها الحي عبر الزمن — الحجوبات والشذوذات ترفع مخاطرتها، وسلاسل النظافة تخفضها — بحيث تنجرف القطعة التي تسيء التصرف في الإنتاج نحو الحجر الصحي حتى لو فُحص بيانها نظيفاً.
6. القدرات المكتشفة تلقائياً
لا يعمل الماسح فقط عندما تسجّل شيئاً يدوياً. عندما يثبّت وكيل قدرة ذاتياً وتعبر أدواتها البوابة أول مرة، يكتشفها جدار الحماية تلقائياً (خارج المسار الساخن، بشكل غير متزامن)، يصطنع بياناً مما لاحظه، ويشغّل نفس الفحص، والتسجيل، واشتقاق الوضع — بـsource = auto_detected.
القدرات المكتشفة تلقائياً محجوزة في الحجر الصحي حتى تُراجَع. أي شيء
مكتشف تلقائياً كان سيُحَل خلاف ذلك إلى
allow يُحدَّد أرضيةً عند
quarantine (وcritical يبقى block) حتى يراجعه إنسان. القدرة التي لم
يوافق عليها أحد لا تحصل على تصريح مجاني لمجرد أنها فُحصت حميدةً — تعمل فقط
بعد أن تكون نظرت إليها.7. الفرض وقت التشغيل
عندما يصل استدعاء أداة إلى محرك جدار الحماية، يُنسَب إلى مهارة مالكة، ثم يُطبَّق وضع المهارة فوق حكم القاعدة:- النسبة. يُطابَق الاستدعاء إلى مهارة بـ
allowed_toolsالمعلَنة، ثم ببادئة مساحة أسماءmcp_server، ثم بتراجع فارض الأكثر تقييداً على مستوى مساحة العمل. - حكم القاعدة. تعمل قواعد السياسة كالمعتاد — و
skill_name_globللقاعدة يتيح لك قصر قاعدة على مهارات محددة. - تجاوز الوضع. مهارة
blockتفرض deny؛ ومهارةquarantineتصعّد أي شيء دون deny إلىpending_approval؛ وallowيترك الحكم دون مساس.
نسبة المهارة تفشل مغلقةً. إذا تعذّرت نسبة أداة (خطأ في قاعدة البيانات
بلا ذاكرة مؤقتة، أو أداة غير معلَنة تحت مصدر منسَّق)، يُعلَّق الاستدعاء
للمراجعة بدلاً من السماح به. ووضع المهارة مستقل عن وضع الظل — مهارة
محجوزة في الحجر الصحي أو محجوبة لا تزال مفروضة حتى أثناء طرح سياسة في وضع
الظل.
8. دورة الحياة
- التسجيل —
POST /skillsيتحقّق ويفحص بشكل متزامن، معيداً المهارة مع اكتشافاتها وحكمها. يُشتقّ الوضع (أو يُحترَم وضعك الصريح). - التحديث — يعيد فحص البيان الجديد؛ يتشدّد الوضع أكثر على فحص أسوأ لكنه لا يخفّف أبداً حجبك/حجرك المخزّن.
- إعادة الفحص —
POST /skills/:id/rescanيعيد تشغيل الفحص؛ إذا تدهور حديثاً الحكم إلى flagged أو blocked يُصدِر حدث جدار حماية بحيث يظهر الانجراف في تغذيتك. - الحذف — حذف ناعم ويحرّر خانة الاسم لإعادة التسجيل.
مرجع API
ضمن نطاق مساحة العمل؛ قراءات القوائم مفتوحة لأي عضو (وتنقّح الحقول الحاملة للأسرار)، وكل شيء آخر يتطلب Developer+.| الطريقة والمسار | الدور | الغرض |
|---|---|---|
GET /api/workspace/firewall/skills | Member | قائمة المهارات (منقّحة؛ صفِّ بـ ?kind= و?source=). |
GET /api/workspace/firewall/skills/:id | Developer+ | سجل المهارة الكامل. |
POST /api/workspace/firewall/skills | Developer+ | تسجيل + فحص (409 على الاسم المكرّر). |
PUT /api/workspace/firewall/skills/:id | Developer+ | تحديث + إعادة فحص. |
POST /api/workspace/firewall/skills/:id/rescan | Developer+ | إعادة فحص؛ يُصدِر حدثاً عند التدهور. |
DELETE /api/workspace/firewall/skills/:id | Developer+ | حذف ناعم. |
الأسماء فريدة لكل مساحة عمل عبر الأنواع — مهارة
skill اسمها github
وmcp_server اسمه github يتصادمان في نفس مساحة العمل. اختر أسماء
متمايزة لكل قطعة.الأسئلة الشائعة
كيف يختلف هذا عن DSL القواعد؟
كيف يختلف هذا عن DSL القواعد؟
القواعد تحكم استدعاءات الأدوات بالاسم
والوسائط. والمهارات تحكم القدرات التي يحمّلها الوكيل — الحزمة،
وبيانها، وصلاحياتها المطلوبة — قبل أن تعمل أي من أدواتها. ثم يركب وضع
المهارة فوق أي شيء تقرره القواعد، فيتركّب الاثنان: يمكن لقاعدة
allow
لـ http.fetch عموماً بينما مهارة محجوزة في الحجر الصحي تملكها لا تزال
تُعلَّق.ما الذي يمنع مهارة خبيثة من إعلان بيان نظيف؟
ما الذي يمنع مهارة خبيثة من إعلان بيان نظيف؟
عدة أشياء. كشف tool-creep يعلّم الأدوات المستخدَمة لكن غير المعلَنة؛
والاكتشاف التلقائي يعيد الفحص مما عبر البوابة فعلاً، لا مجرد البيان
المزعوم؛ ويتشدّد الوضع أكثر (لا أقل) عند إعادة الفحص؛ وسمعة المورد
تنجرف بالقطعة المسيئة نحو الحجر الصحي عبر الزمن؛ والنسبة تفشل مغلقةً
عندما لا يمكن ربط أداة بمهارة معلَنة.
هل عليّ تسجيل كل مهارة يدوياً؟
هل عليّ تسجيل كل مهارة يدوياً؟
لا. سجّل تلك التي تريد الموافقة عليها مسبقاً؛ والبقية تُكتشَف تلقائياً
عند أول استخدام وتُحجَز في الحجر الصحي حتى تراجعها. فعّل وضع observe
لإبراز كل ما يثبّته الوكيل دون حجب، ثم تشدّد من البيانات الحقيقية.
انظر أيضاً
تتعمّق أكثر في أمان الوكلاء؟ تضع أدلة أمّن وكلاءك - الثقة الصفرية هذه الميزة ضمن سير عمل قائم على الثقة الصفرية.الأساس المرجعي لأمان الوكلاء
طبّق موقفاً قائماً على الثقة الصفرية على كل قدرة من قدرات الوكيل بمفتاح واحد.
حواجز حماية الوكلاء
حواجز حماية مبنية للوكلاء المستقلين الذين يستخدمون الأدوات.
