1. مخطَّط قاعدة جدار الحماية في لمحة
تحمل كل قاعدة الحقول نفسها.verdict وحده مطلوب دائماً — وكل ما عداه يضيّق
ما تطابقه القاعدة أو يضبط الحكم المختار، والمُطابِق الغائب صحيح خواءً.
| الحقل | الغرض |
|---|---|
priority | ترتيب التقييم — الأدنى يُشغَّل أولاً. |
verdict | الإجراء عندما تطابق القاعدة (مطلوب). |
stage | السطح المراد قصره عليه؛ فارغ = الكل. |
tool_name_glob | Glob على اسم الأداة. |
args_match_json | مُسنِد وسائط بصيغة JSONPath، كسلسلة مرمَّزة بـ JSON. |
egress_json | قائمة سماح-منع للمضيف / CIDR (قواعد egress)، كسلسلة مرمَّزة بـ JSON. |
sanitize_json | إعداد التنقيح (عندما verdict = sanitize)، كسلسلة مرمَّزة بـ JSON. |
cap_cost_cents | سقف تكلفة التشغيل بسنتات USD (عندما verdict = cap_cost). |
sequence_json | مُسنِد سلسلة متعددة الخطوات مرتَّبة (قواعد التسلسل)، كسلسلة مرمَّزة بـ JSON. |
label / notes | اسم بشري ومبرّر — يظهران في الأحداث، يتجاهلهما المحرك. |
default_verdict
للسياسة.
2. priority — ترتيب التقييم
ترتيبي صحيح. الأدنى يُشغَّل أولاً؛ قاعدتان بنفس الأولوية تحسمان
التعادل بمعرّف القاعدة (ترتيب الإدراج). ضع نَحْتاتك المحدّدة فوق كاشطاتك
العريضة — allow لأداة موثوقة واحدة عند أولوية 10 يهزم deny * عند
أولوية 100.
3. verdict — الإجراء
الحقل الوحيد المطلوب. عندما تطابق القاعدة، يقرر حكمها ما يحدث للاستدعاء:
| الحكم | الأثر |
|---|---|
allow | يمرّر الاستدعاء، مُسجَّلاً. |
audit | يسمح ويسجّل للمراجعة — الـ default_verdict المعتاد. |
deny | يحجب الاستدعاء. |
sanitize | ينقّح السلاسل الفرعية المطابقة من وسائط الأداة، ثم يوجّه. |
pending_approval | يعلّق الاستدعاء لمراجِع بشري. |
cap_cost | يرفض بمجرد أن يتجاوز الإنفاق المتراكم لتشغيل وكيل سقفاً. |
deny يعيد HTTP 400 firewall_blocked على سطح inbound، أو خطأ أداة
على سطح mcp. استدعاء مُعلَّق يعيد HTTP 400 firewall_approval_pending
بمعرّف يستطلعه الوكيل. في وضع الظل
يُخفَّض كل حكم فارض إلى audit ويُسبَق السبب بـ [shadow] would …. انظر
الأحكام للجدول الكامل وأشكال الحجب.
4. stage — سطح الفرض
يثبّت القاعدة على أحد أسطح جدار الحماية. اتركه فارغاً وتنطبق القاعدة على
كل الأسطح:
inbound — تعريفات الأدوات المُعلَن عنها
inbound — تعريفات الأدوات المُعلَن عنها
الأدوات التي يعلن عنها وكيل للنموذج على الطلب. احجب أداة خطرة قبل أن
يتمكن النموذج حتى من اختيارها.
response — استدعاءات tool_calls المُصدَرة من النموذج
response — استدعاءات tool_calls المُصدَرة من النموذج
الـ
tool_calls التي يصدرها النموذج في رده.mcp — إرسال tools/call
mcp — إرسال tools/call
tools/call مُوجَّه عبر
بوابة Firewall MCP.egress — وجهة صادرة
egress — وجهة صادرة
مضيف / IP / CIDR صادر تصل إليه أداة — سطح SSRF وتسريب البيانات.
بعض اقترانات الحكم + السطح تُرفض عند الحفظ لأن الحكم لا يمكنه الإطلاق هناك:
cap_cost سقف تكلفة تشغيل ما-قبل-الإرسال، خامل على response وegress؛
وpending_approval لا يعلّق إلا عند inbound، فيُرفض تثبيته الصريح على
response/egress. يخفي المحرّر هذه التوليفات؛ وترفضها الـ API. انظر
المراحل.5. tool_name_glob — أي أداة
glob صغير حسّاس لحالة الأحرف على اسم الأداة — shell.* لعائلة كاملة،
*.delete لفعل عبر الخوادم، http_fetch لأداة واحدة بالضبط. الفارغ أو
* يطابق كل أداة. glob اسم مهارة اختياري (بنفس النحو) يقترن بشرط ثانٍ
على المهارة المالكة، فيمكنك الوثوق بأداة من مهارة مدمجة وحجزها من مهارة
مجتمعية.
النحو الكامل — البادئة، واللاحقة، والإقحام، والمطابقة التامة، والحواف التي
تعثّر الناس — له مرجعه الخاص:
نحو نمط الـ glob.
6. args_match_json — بأي وسائط
يجيب الـ glob عن أي أداة؛ وargs_match_json يجيب عن بأي وسائط — الفرق
بين “احجب shell.exec” و”احجب shell.exec فقط عندما يكون الأمر
rm -rf.” قيمته سلسلة مرمَّزة بـ JSON تحمل مجموعة عبارات JSONPath،
كلها مقترنة بـ AND. مفكوكاً، يبدو كائن العبارة هكذا:
"args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf\"}]}".
المعاملات هي eq وcontains وregex وin وcidr_match وgt وlt.
args_match_json غائب صحيح خواءً — تطابق القاعدة على الـ glob وحده. لغة
المُسنِد الكاملة، ونحو المسار، والسلوك fail-closed لعبارة معطوبة، في
التحقق من الوسائط و
كتاب طبخ الوسائط.
7. egress_json — أي وجهات
يُستخدم على سطح egress: سلسلة مرمَّزة بـ JSON تحمل قائمة سماح-ومنع
للمضيف / CIDR مطابَقةً مقابل وجهة صادرة تصل إليها أداة. مفكوكاً، يبدو
الكائن هكذا:
deny ما يُحجب وallow تنحت
استثناءات منه.
يشحن قالب جدار الحماية Baseline قاعدة egress deny بقائمة منع SSRF /
بيانات-سحابية وصفية جاهزة (IP الوصفية
169.254.169.254، ونطاقات RFC-1918،
وloopback، وlink-local، وmetadata.google.internal)، فلست مضطراً لتأليفها
يدوياً. أضِف وجهاتك فوقها لأي شيء آخر تريد حجزه. انظر
التحكم في Egress للوصفة الكاملة و
تسريب البيانات لمعرفة سبب أهميته.8. sanitize_json — تنقيح الوسائط
يُستخدم عندما verdict = sanitize: سلسلة مرمَّزة بـ JSON تسمّي أي
إعدادات مسبقة / تعبيرات نمطية مخصّصة تنقّح السلاسل الفرعية المطابقة من
وسائط الأداة قبل توجيه الاستدعاء المنظَّف — مفيدة لتجريد سرّ أو قيمة
PII أسقطها وكيل في وسيطة دون حجب الإجراء كله. مفكوكاً، يبدو الكائن هكذا:
9. cap_cost_cents — سقف إنفاق
يُستخدم عندما verdict = cap_cost: سقف تكلفة تشغيل لكل قاعدة، عدد صحيح
بـسنتات USD. عندما تطابق القاعدة، يُرفض الاستدعاء بمجرد أن يتجاوز
الإنفاق المتراكم لتشغيل الوكيل السقف — قاطع دائرة لحلقة منفلتة، يُحَل إلى
allow أو deny في الأحداث. يجب أن يكون السقف صريحاً وغير سالب، ولا يمكن
تثبيت القاعدة على response أو egress (حيث الحكم خامل). السلوك الكامل في
سقف التكلفة.
10. قاعدة كاملة واحدة
بتجميع الحقول معاً — ارفضshell.exec، لكن فقط عندما يبدو الأمر مدمّراً،
مقصوراً على استدعاءات الأدوات المُصدَرة من النموذج:
shell.exec، وتضيّق العبارة
المفردة إلى أمر مدمّر، ويرفض الحكم. أي shell.exec لا يطابق أمره التعبير
النمطي يسقط إلى القاعدة التالية أو افتراضي السياسة. اربط مفتاحاً بالسياسة
(firewall_policy_id على المفتاح) ويصير حياً في الاستدعاء التالي — بدون
إعادة نشر.
11. كيف تتجمّع الحقول
ما الحدّ الأدنى الذي تحتاجه قاعدة صالحة؟
ما الحدّ الأدنى الذي تحتاجه قاعدة صالحة؟
verdict. كل ما عداه اختياري: stage فارغ يطابق كل الأسطح،
وtool_name_glob فارغ (أو *) يطابق كل أداة، وargs_match_json غائب
يطابق أي وسائط. { "verdict": "audit" } عارية كاشطة-كل صالحة.هل تقترن المُطابِقات بـ AND أم OR؟
هل تقترن المُطابِقات بـ AND أم OR؟
تقترن بـ AND. تُطلق قاعدة فقط عندما تتحقق مرحلتها، وglob الأداة،
وglob المهارة، وعبارات الوسائط، ونطاق egress كلها. للتعبير عن OR،
اكتب قواعد منفصلة.
أي الحقول يقترن بأي حكم؟
أي الحقول يقترن بأي حكم؟
sanitize_json يُقرأ فقط للحكم sanitize؛ وcap_cost_cents فقط لـ
cap_cost؛ وegress_json فقط على سطح egress. تتحقق وحدة التحكم من
هذه الاقترانات عند الحفظ، فلا يمكن حفظ قاعدة تعرض سلوكاً لكنها لا تستطيع
فرضه أبداً.ماذا لو طابقت قاعدتان كلتاهما؟
ماذا لو طابقت قاعدتان كلتاهما؟
تفوز الأولوية الأدنى (وتُحسم التعادلات بمعرّف القاعدة) — أول مطابقة
تفوز، ويتوقف التقييم هناك. انظر
أولوية القواعد.
ذات صلة
إنشاء سياسة
ألّف سياستك الأولى واربط مفتاحاً.
نحو الـ glob
نحو glob اسم الأداة الكامل.
الأحكام
كل حكم وكيف يبدو الحجب.
التحقق من الوسائط
عبارات وسائط JSONPath بعمق.
إدارة السياسات
عدّل السياسات وأصدِر نسخها وتراجع عنها.
قواعد جدار الحماية
مرجع محرك المطابقة الكامل.
