لغة المطابقة وراء سياسة جدار الحماية. طابِق استدعاءات الأدوات بالاسم، والمهارة، والوسائط، والوجهة — ثم allow أو audit أو deny أو sanitize أو علّق للموافقة أو ضع سقفاً للتكلفة. حتمية، fail-closed، وآمنة على المسار الساخن.
سياسة جدار الحماية هي قائمة مرتبة من القواعد.
هذه الصفحة هي المرجع الكامل لما يمكن أن تعبّر عنه القاعدة — لغة المطابقة،
والأحكام، وكيف يقيّمها المحرك.تُؤلَّف القواعد في محرّر القواعد بوحدة التحكم، الذي يكتب كائنات مطابقة JSON
مهيكلة. كل ما يلي يصف تلك المفردات حتى تقرأ قاعدة وتستدلّ عليها وتتحقق منها
بدقة — سواء بنيتها في الواجهة أو نشرتها عبر API.
تكوين التنقيح، يُستخدَم عندما verdict = sanitize. انظر §5.
egress
object
قائمة سماح/حظر Host/CIDR، تُستخدَم عندما stage = egress. انظر §6.
cap_cost_cents
int
سقف تكلفة التشغيل، يُستخدَم عندما verdict = cap_cost.
sequence
object
مطابقة مرتبة متعددة الخطوات، تُفرَض تفاعلياً. انظر §8.
notes
string
مبرّر المؤلِّف؛ يتجاهله المحرك.
تطابق القاعدة استدعاء أداة عندما تتحقق كل شروطها المعلَنة: تطابق المرحلة
(أو تكون فارغة)، ويطابق glob الأداة، ويطابق glob المهارة (أو يكون فارغاً)،
وتطابق عبارات الوسائط (أو تكون غائبة)، ويطابق نطاق egress (قواعد egress
فقط). يجتاز المحرك القواعد بترتيب الأولوية وأول مطابقة تفوز.
يطابق http.fetchفقط عندما تكون مملوكة لمهارة community.* — ثق
بنفس الأداة من مهارة مدمجة، واحجبها من مهارة مجتمعية. glob المهارة الفارغ
يطابق أي مالك. كيف يُنسَب استدعاء أداة إلى مهارة مغطّى في
المهارات.
مطابقة اسم الأداة تجيب عن أي أداة؛ وعبارات الوسائط تجيب عن بأي وسائط —
الفرق بين “احجب shell.exec” و”احجب shell.exec فقط عندما يكون الأمر
rm -rf”.args_match هي مجموعة عبارات، مجموعة كلها بـ AND:
مجموعة فرعية صغيرة من JSONPath فوق كائن وسائط الأداة:
$.foo، $.foo.bar — الوصول إلى الحقل
$.foo[0]، $.arr[1].k — فهرسة المصفوفة
$ — كائن الوسائط كاملاً
بلا أحرف بدل، أو مرشحات، أو شرائح، أو نزول تعاودي.
عبارات الوسائط تفشل مغلقةً — القاعدة، وليس الطلب. إذا لم يُحَل مسار، أو
كانت الوسائط مشوّهة، أو كان regex/CIDR غير صالح، تُقيَّم العبارة خاطئة
ولا تُطلَق القاعدة ببساطة — يسقط الاستدعاء إلى القاعدة التالية أو الحكم
الافتراضي. العبارة المعطوبة لا تحجب تلقائياً أبداً ولا تُعطّل الترحيل. اكتب
قاعدة “اضبط كل شيء خطير” كـ deny صريح بـ glob خاص بها بدلاً من الاعتماد
على فشل عبارة بطريقة معيّنة.
تتحقق وحدة التحكم من العبارات بصرامة عند الحفظ (العوامل المجهولة، المسارات
السيئة، قيم in غير المصفوفية، أنماط regex غير القابلة للترجمة، وأنماط
CIDR غير الصالحة كلها مرفوضة) بحيث لا يمكن أصلاً حفظ عبارة مشوّهة.
حكم sanitize ينقّح السلاسل الفرعية المطابقة من وسائط الأداة ويعيد توجيه
الاستدعاء المنظَّف — مفيد لتجريد الأسرار أو PII التي وضعها الوكيل في وسيطة
أداة دون حجب الإجراء بأكمله.
تُستبدَل مطابقات الإعداد المسبق بـ [redacted:<preset>]؛ ومطابقات
regex المخصص بـ [redacted:custom]. مكتبة الإعدادات المسبقة المدمجة:aws_access_key، aws_secret_key، openai_key، anthropic_key،
bearer_token، email، ssn_us، credit_card (مع فحص Luhn).يجب أن تعلن قاعدة sanitize عن إعداد مسبق واحد أو نمط مخصص واحد على الأقل —
المُطهّر الفارغ مرفوض عند الحفظ. على سطح inbound لا توجد وسائط وقت
الاستدعاء لتنقيحها، لذا يتصاعد حكم sanitize هناك إلى حجب.
تطابق المدخلات كـ CIDR، أو IP حرفي، أو اسم مضيف غير حساس لحالة الأحرف؛
وتُحَل أسماء المضيفين بأفضل جهد وتُعاد مطابقتها مقابل مدخلات IP/CIDR. تتبع
القطبية الحكم: مع حكم allow تحدّد قائمة allow ما هو ضمن النطاق وتنحت
deny استثناءات منه؛ ومع حكم فارض (deny) تحدّد قائمة deny ما يُحجب
وتنحت allow استثناءات منه.169.254.169.254 (نقطة نهاية بيانات وصف السحابة) ونطاقات RFC-1918 هي
الأشياء الكنسية التي تُحجب — يشحن الإعداد المسبق block_ssrf_egress ومستوى
الاستقلاليةtight ذلك بالضبط.
بعض المخاطر لا تكون مرئية إلا عبر عدة استدعاءات — اقرأ 50 سجل CRM، ثم
صدّر، ثم اضرب مضيفاً خارجياً. قاعدة sequence تطابق سلسلة مرتبة بدلاً من
استدعاء واحد:
كل خطوة هي glob أداة مع min_count اختياري (الافتراضي 1) وegress: true
اختياري (يجب أن تكون الخطوة استدعاء egress). يجب أن تقع الخطوات بالترتيب —
التداخل مع استدعاءات أخرى لا بأس به — ويجب أن تكتمل السلسلة كاملةً ضمن
window_seconds (0 = بلا حد).
تُفرَض التسلسلات تفاعلياً بواسطة مطابِق غير متزامن، وليس مضمّناً على كل
استدعاء — وإلا فإن تسلسلاً بخطوة * سيطابق كل استدعاء أداة. تُضيء تغذية
الأحداث ويمكنها تشغيل إجراء لاحق، لكنها لا تحجب الاستدعاء الفردي الذي يكمل
السلسلة في الوقت الفعلي.
أول مطابقة تفوز. تعمل القواعد بترتيب priority ASC, id ASC؛ أول
قاعدة تتحقق كل شروطها تقرر الحكم. لا تطابق أي قاعدة ← default_verdict
للسياسة.
حتمية وخالية من التبعيات. مطابقة glob والعبارات عمليات سلسلة/JSON
نقية بلا استدعاء شبكي، آمنة للتشغيل على كل استدعاء أداة. أنماط regex هي
RE2 — زمن خطي، بلا تراجع كارثي.
عبارات fail-closed. العبارة التي لا يمكن تقييمها تجعل قاعدتها لا
تُطلَق بدلاً من الحجب التلقائي (§4).
تحقّق صارم وقت الحفظ. اقترانات الحكم/المرحلة، وعدم خواء المُطهّر،
ووجود cap_cost_cents، وشكل العبارة، وحل المراجع كلها تُفحَص عند الحفظ
— لا يمكن حفظ القواعد غير الصالحة.
مُدقَّقة. كل إنشاء/تحديث/حذف لقاعدة يكتب صف تدقيق بعد أن يُثبَّت
التغيير؛ لا تُكتَب كتل القواعد والأسرار أبداً في سجل التدقيق.