الانتقال إلى المحتوى الرئيسي
سياسة جدار الحماية هي قائمة مرتبة من القواعد، والقاعدة ليست سوى حقيبة صغيرة من الحقول: أي استدعاءات أدوات تطابق، على أي سطح، وماذا تفعل حيالها. عندما تحتاج إلى قراءة قاعدة كتبها شخص آخر — أو إلى التفكير بدقّة في قاعدة تبنيها — تريد قائمة الحقول في مكان واحد. تلك هي هذه الصفحة. تؤلّف القواعد في محرّر القواعد بوحدة التحكم (الكتابات تتطلب Developer+)؛ يكتب المحرّر الحقول المهيكلة أدناه. هذه الصفحة هي الخريطة على مستوى الحقل؛ ومحرك المطابقة المتعمّق يعيش في قواعد جدار الحماية.

1. مخطَّط قاعدة جدار الحماية في لمحة

تحمل كل قاعدة الحقول نفسها. verdict وحده مطلوب دائماً — وكل ما عداه يضيّق ما تطابقه القاعدة أو يضبط الحكم المختار، والمُطابِق الغائب صحيح خواءً.
الحقلالغرض
priorityترتيب التقييم — الأدنى يُشغَّل أولاً.
verdictالإجراء عندما تطابق القاعدة (مطلوب).
stageالسطح المراد قصره عليه؛ فارغ = الكل.
tool_name_globGlob على اسم الأداة.
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اسم بشري ومبرّر — يظهران في الأحداث، يتجاهلهما المحرك.
تُطلق قاعدة عندما تتحقق كل مُطابِقاتها المعلَنة دفعةً واحدة — يطابق السطح (أو يكون فارغاً)، ويطابق glob الأداة، وتطابق عبارات الوسائط (أو تكون غائبة)، ويطابق نطاق egress (قواعد egress فقط). يجتاز المحرك القواعد بترتيب الأولوية وأول مطابقة تفوز؛ وإذا لم يطابق شيء، يُطبَّق default_verdict للسياسة.

2. priority — ترتيب التقييم

ترتيبي صحيح. الأدنى يُشغَّل أولاً؛ قاعدتان بنفس الأولوية تحسمان التعادل بمعرّف القاعدة (ترتيب الإدراج). ضع نَحْتاتك المحدّدة فوق كاشطاتك العريضة — allow لأداة موثوقة واحدة عند أولوية 10 يهزم deny * عند أولوية 100.
اترك فجوات (10، 20، 30) كي تتمكن من حشر قاعدة جديدة بين قائمتين قائمتين لاحقاً دون إعادة ترقيم السياسة كلها. انظر أولوية القواعد لاستراتيجية الترتيب.

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 — سطح الفرض

يثبّت القاعدة على أحد أسطح جدار الحماية. اتركه فارغاً وتنطبق القاعدة على كل الأسطح:
الأدوات التي يعلن عنها وكيل للنموذج على الطلب. احجب أداة خطرة قبل أن يتمكن النموذج حتى من اختيارها.
الـ tool_calls التي يصدرها النموذج في رده.
tools/call مُوجَّه عبر بوابة Firewall MCP.
مضيف / 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. مفكوكاً، يبدو كائن العبارة هكذا:
{
  "clauses": [
    { "path": "$.command",    "op": "regex",      "value": "rm -rf|drop table" },
    { "path": "$.connection", "op": "in",         "value": ["prod", "replica"] },
    { "path": "$.ip",         "op": "cidr_match", "value": "10.0.0.0/8" }
  ]
}
في جسم الطلب يحمل الحقل ذلك الكائن كسلسلة مهروبة، مثل "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":  ["169.254.169.254", "10.0.0.0/8"],
  "allow": ["api.openai.com"]
}
تطابق المُدخلات كـ CIDR، أو حرفية IP، أو اسم مضيف غير حسّاس لحالة الأحرف. تتبع القطبية الحكم — مع حكم فارض تعرّف قائمة 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 أسقطها وكيل في وسيطة دون حجب الإجراء كله. مفكوكاً، يبدو الكائن هكذا:
{ "presets": ["email", "ssn_us"], "custom": ["foo-\\d+"] }
ينقّح sanitize الوسائط فقط — وليس أبداً المحتوى الذي تعيده أداة. يجب أن تسمّي قاعدة sanitize إعداداً مسبقاً أو نمطاً مخصّصاً واحداً على الأقل (المُطهّر الفارغ يُرفض). على سطح inbound لا توجد وسائط وقت الاستدعاء لتنقيحها، فحكم sanitize هناك يتصاعد إلى deny.
انظر تطهير الاستجابات لمكتبة الإعدادات المسبقة وأشكال التنقيح.

9. cap_cost_cents — سقف إنفاق

يُستخدم عندما verdict = cap_cost: سقف تكلفة تشغيل لكل قاعدة، عدد صحيح بـسنتات USD. عندما تطابق القاعدة، يُرفض الاستدعاء بمجرد أن يتجاوز الإنفاق المتراكم لتشغيل الوكيل السقف — قاطع دائرة لحلقة منفلتة، يُحَل إلى allow أو deny في الأحداث. يجب أن يكون السقف صريحاً وغير سالب، ولا يمكن تثبيت القاعدة على response أو egress (حيث الحكم خامل). السلوك الكامل في سقف التكلفة.

10. قاعدة كاملة واحدة

بتجميع الحقول معاً — ارفض shell.exec، لكن فقط عندما يبدو الأمر مدمّراً، مقصوراً على استدعاءات الأدوات المُصدَرة من النموذج:
{
  "priority": 10,
  "label": "block destructive shell",
  "stage": "response",
  "tool_name_glob": "shell.exec",
  "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf|mkfs|:\\\\(\\\\)\\\\{\"}]}",
  "verdict": "deny",
  "notes": "fork bombs and recursive deletes only — plain shell.exec audits"
}
يطابق المرحلة سطح response، ويلتقط الـ glob shell.exec، وتضيّق العبارة المفردة إلى أمر مدمّر، ويرفض الحكم. أي shell.exec لا يطابق أمره التعبير النمطي يسقط إلى القاعدة التالية أو افتراضي السياسة. اربط مفتاحاً بالسياسة (firewall_policy_id على المفتاح) ويصير حياً في الاستدعاء التالي — بدون إعادة نشر.
أكّد أن قاعدة تُطلق على ما تتوقعه بالضبط قبل أن تعتمد عليها: اختبار القواعد يشغّل سياسة تجريبياً مقابل استدعاء أداة عينة ويعيد الحكم، والقاعدة المطابقة، والسبب دون إرسال أي شيء.

11. كيف تتجمّع الحقول

verdict. كل ما عداه اختياري: stage فارغ يطابق كل الأسطح، وtool_name_glob فارغ (أو *) يطابق كل أداة، وargs_match_json غائب يطابق أي وسائط. { "verdict": "audit" } عارية كاشطة-كل صالحة.
تقترن بـ AND. تُطلق قاعدة فقط عندما تتحقق مرحلتها، وglob الأداة، وglob المهارة، وعبارات الوسائط، ونطاق egress كلها. للتعبير عن OR، اكتب قواعد منفصلة.
sanitize_json يُقرأ فقط للحكم sanitize؛ وcap_cost_cents فقط لـ cap_cost؛ وegress_json فقط على سطح egress. تتحقق وحدة التحكم من هذه الاقترانات عند الحفظ، فلا يمكن حفظ قاعدة تعرض سلوكاً لكنها لا تستطيع فرضه أبداً.
تفوز الأولوية الأدنى (وتُحسم التعادلات بمعرّف القاعدة) — أول مطابقة تفوز، ويتوقف التقييم هناك. انظر أولوية القواعد.

ذات صلة

إنشاء سياسة

ألّف سياستك الأولى واربط مفتاحاً.

نحو الـ glob

نحو glob اسم الأداة الكامل.

الأحكام

كل حكم وكيف يبدو الحجب.

التحقق من الوسائط

عبارات وسائط JSONPath بعمق.

إدارة السياسات

عدّل السياسات وأصدِر نسخها وتراجع عنها.

قواعد جدار الحماية

مرجع محرك المطابقة الكامل.
جديد على مستوى الإجراء؟ ابدأ من نظرة جدار الحماية العامة، أو انظر كيف يقترن بفحص النص في حواجز الحماية مقابل جدار الحماية.