الانتقال إلى المحتوى الرئيسي
كتبت قاعدة جدار حماية — deny على shell.exec، قائمة سماح egress، عبارة وسائط تُطلق فقط على rm -rf — والآن تريد معرفة أنها تفعل بالضبط ما تظن قبل أن تغيّر استدعاء أداة إنتاج واحد. يمنحك جدار الحماية ثلاث طرق غير مدمّرة لـ اختبار قواعد جدار الحماية، كل منها يجيب عن سؤال مختلف:

أجرِ استدعاءً واحداً تجريبياً

صندوق رمل Test يغذّي استدعاء أداة اصطناعياً واحداً عبر المحرك الحقيقي ويعيد الحكم — لا شيء يُرسَل، لا شيء يُسجَّل. Developer+.

أعد تشغيل موقف

Simulate يعيد تشغيل مستوى استقلالية مقابل حركة مرورك الأخيرة ويعدّ كم استدعاء كان سيحجب. قابل للقراءة من قبل Member.

أجرِ مقابل حركة المرور الحية

وضع الظل يقيّم سياسة كاملة على استدعاءات حقيقية لكن يخفّض كل حكم فارض إلى audit. نصف قطر انفجار صفري.
الثلاثة جميعها تُضبَط عبر وحدة التحكم (أو مسارات الإدارة /api/workspace/firewall/*، التي تصادق بجلستك / رمز الوصول — وليس مفتاح ترحيل sk-orca-…). استدعاءات ترحيل /v1/* لوكيلك لا تتغيّر أبداً أثناء الاختبار.

1. اختبر قواعد جدار الحماية بصندوق رمل Test التجريبي

صندوق رمل Test هو أضيق حلقة: سلّمه استدعاء أداة اصطناعياً واحداً ويجري محرك التقييم الحقيقي — حل سياسة كامل، قواعد مجتازة بترتيب الأولوية، أول-مطابقة-تفوز — ثم يعيد الحكم، والقاعدة التي أنتجته، والسبب القابل للقراءة. الاستدعاء إجراء تجريبي: لا شيء يُرسَل إلى أي أداة، ولا شيء يُكتَب إلى تغذية الأحداث أو مخزون الأدوات المكتشفة. يجيب عن سؤال واحد بدقة: بالنظر إلى اسم الأداة الدقيق هذا وهذه الوسائط، ماذا تقرّر سياستي — وأي قاعدة تقرّر ذلك؟
صندوق رمل Test هو Developer+. يمكنه المعاينة مقابل سياسة مسودة غير محفوظة بالمعرّف وتُبرز الاستجابة اسم السياسة المطابقة وعلامة القاعدة، فيقع أقرب إلى معاينة سطح كتابة منه إلى قراءة عادية — خلافاً لـ Simulate والعروض الأخرى للقراءة، المفتوحة لكل عضو.

إجراء تجريبي ملموس واحد

لنقل إنك أضفت قاعدة يجب أن ترفض shell.exec فقط عندما يحتوي الأمر rm -rf. تريد تأكيد شيئين في جلسة واحدة: الأمر الخطر مرفوض، والبريء لا يزال يمر.
1

اختبر الاستدعاء الخطر

في Security → Firewall، افتح تبويب Test، اختر سطح response، أدخل اسم الأداة shell.exec والوسائط {"command": "rm -rf /data"}، وأجرِ. تسمّي الاستجابة الحكم والقاعدة المطابقة:
{
  "verdict": "deny",
  "policy_name": "prod-agents",
  "rule_label": "block destructive shell",
  "reason": "destructive shell command",
  "gap": false,
  "shadow_mode": false
}
2

اختبر الاستدعاء البريء

أجره مجدداً بـ {"command": "ls -la"}. عبارة الوسائط لم تعد تطابق، فتسقط القاعدة إلى افتراضي السياسة — يجب أن ترى allow أو audit وrule_label فارغاً. إذا رفض rm -rf ولم يرفض ls -la، فـ عبارة الوسائط لديك مقصورة بشكل صحيح.
3

عاين مسودة قبل أن تربطها

مرّر policy_id للتقييم مقابل سياسة مسودة محددة بدلاً من التي تحلّها حركة مرورك حالياً — فيمكنك إثبات أن سياسة جديدة صحيحة قبل أن تربط مفتاحاً بها أو ترقّيها إلى افتراضي مساحة العمل.
اقرأ gap في الاستجابة. gap: true يعني أن سياسة حُلّت لكن لم تطابق أي قاعدة داخلها الاستدعاء (ومساحة العمل في وضع observe) — تسلّلت الأداة عبر كل قاعدة وسقطت إلى الافتراضي. تلك ثغرة تغطية تُغلَق قبل الشحن، وليست حكماً تثق به.
يستخدم صندوق رمل Test نفس الأسطح كالتقييم الحي — inbound وresponse وmcp وegress (الافتراضي inbound) — فاختبر كل قاعدة على السطح المثبّتة عليه. على inbound لا توجد وسائط استدعاء، فقاعدة sanitize تتصاعد إلى حجب هناك بالضبط كما ستفعل في الإنتاج؛ انظر المراحل لماذا يهم السطح.

2. حاكِ مستوى استقلالية قبل أن تطبّقه

صندوق رمل Test يفحص استدعاءً واحداً. Simulate يجيب عن سؤال على مستوى الموقف: لو بدّلت مساحة العمل كلها إلى مستوى استقلالية أصرم، كم من حركة مروري الأخيرة كان سيحجب؟ يعيد Simulate تشغيل قواعد deny لمستوى مرشّح مقابل أحداث جدار الحماية اللاحقة ويعيد الأثر المحتمل — أسماء الأدوات والأعداد فقط، وليس أبداً الوسائط. إنه للقراءة فقط وقابل للقراءة من قبل Member، فيمكن لأي شخص في الفريق معاينة نصف قطر انفجار tight قبل أن يلتزم به Developer.
  • tight — حجب افتراضي، حجب shell المدمّر، حجب الأدوات بهيئة الجلب (متجه SSRF)، PII Shield + Secrets Blocker مفروضان. يُظهر Simulate كم من حركة مرورك الحقيقية ستصطاد هذه الأرضية.
  • balancedaudit افتراضي، حجب shell المدمّر، PII Shield بالتدقيق فقط (يعلّم PII). الموقف الابتدائي الموصى به.
  • permissive — observe فقط؛ لا شيء مفروض.
Simulate لا يغيّر شيئاً — إنه ماذا-لو على أحداث ماضية. تطبيق مستوى استقلالية (كتابة Developer+) يجسّد صفوف سياسة وحواجز حماية autonomy_* حقيقية قابلة للتحرير، مع تراجع بنقرة واحدة من لقطة التدقيق. عاين بـ Simulate، ثم طبّق عندما يبدو العدد صحيحاً.

3. وضع الظل: اختبر مقابل حركة المرور الحية بلا نصف قطر انفجار

صندوق رمل Test وSimulate معاينات دون اتصال. وضع الظل هو الحي: علامة لكل سياسة تقيّم السياسة على حركة مرور وكيل حقيقية، تجتاز كل قاعدة، تختار حكماً — ثم تخفّض كل حكم فارض (deny وsanitize وpending_approval) إلى audit وتسبق السبب بـ [shadow] would …. يمر الاستدعاء دائماً؛ لا شيء يُحجب أو يُنقّح أو يُعلَّق. ذلك يجعل تغذية الأحداث تُقرأ كتشغيل إنتاجي مع إطفاء الفرض. فلتر لأجل [shadow] ولديك قائمة كاملة بكل استدعاء توشك السياسة على البدء في حجبه — قبل أن تحجب واحداً.
طريقة الاختبارتعمل مقابلالسؤال الذي تجيب عليه
صندوق رمل Testاستدعاء اصطناعي واحد”ما الحكم الذي يحصل عليه هذا الاستدعاء الدقيق، وأي قاعدة تقرّر؟“
Simulateالأحداث الأخيرة”كم استدعاء سيحجب مستوى استقلالية أصرم؟“
وضع الظلحركة المرور الحية”ماذا كانت هذه السياسة ستحجب عبر حركة مرور الإنتاج الحقيقية؟”
وضع الظل هو الأعمق بين الثلاثة — تغطية حية كاملة بنصف قطر انفجار صفري. له صفحته الخاصة: اطرح سياسة جدار حماية بوضع الظل يمشي عبر المبدّل، وأسباب [shadow] would …، والقلب إلى الفرض.

4. ترتيب اختبار عملي

تتركّب الأدوات الثلاث في مسار طرح آمن واحد — أرخص فحص أولاً، أوسع تغطية أخيراً:
1

أجرِ القواعد التي كتبتها للتو تجريبياً

استخدم Test لتأكيد أن كل قاعدة جديدة تُطلق على الاستدعاءات التي ينبغي وتمرّر التي لا ينبغي — بما في ذلك الحالات السلبية. سريع، Developer+، لا شيء يُحفظ.
2

قِس الموقف (اختياري)

إذا كنت تلجأ إلى مستوى استقلالية بدلاً من قواعد مكتوبة يدوياً، حاكِ المستوى بـ Simulate واقرأ عدد المحجوبين المحتملين مقابل حركة المرور الحقيقية قبل تطبيقه.
3

ظلّل مقابل حركة المرور الحية

فعّل وضع الظل ودع نافذة تمثيلية من الاستدعاءات الحقيقية تتدفّق. اقرأ أحداث [shadow] would …؛ شدّد أي قاعدة تُبرز إيجابية كاذبة — لا تزال في الظل، نصف قطر انفجار صفري.
4

افرض

عندما تُطلق التغذية على ما تتوقعه ولا شيء لا تتوقعه، أطفئ الظل. الاستدعاء التالي يفرض حقاً.
الاختبار يعاين السياسة، وليس المهارات المحكومة. مهارة في وضع block أو quarantine تظل تفرض حتى تحت سياسة مظلَّلة — تصرّف مراجعة المهارة يفوز. تظليل سياسة لم يكن أبداً طلباً لرفع الحجر الصحي عن مهارة.

5. مرجع API

تستخدم مسارات الإدارة هذه جلستك / رمز الوصول وهي ضمن نطاق مساحة العمل:
الطريقة والمسارالدورالغرض
POST /api/workspace/firewall/testDeveloper+أجرِ استدعاء أداة اصطناعياً واحداً تجريبياً مقابل السياسة المُحَلّة (أو policy_id مسودة). يعيد الحكم، policy_name، rule_label، reason، gap، shadow_mode. لا شيء يُرسَل أو يُسجَّل.
GET /api/workspace/firewall/simulate?level=Memberأعد تشغيل مستوى استقلالية مقابل الأحداث الأخيرة؛ يعيد أعداد المحجوبين المحتملين.
GET /api/workspace/firewall/policies/:idMemberاقرأ علامة shadow_mode الحالية لسياسة.
PUT /api/workspace/firewall/policiesDeveloper+بدّل shadow_mode على السياسة.
جسم Test يأخذ surface (الافتراضي inbound)، وtool_name مطلوباً، وargs_json اختيارياً، وpolicy_id اختيارياً لتجاوز الحل.

أين تذهب بعد ذلك

وضع الظل

طرح حركة المرور الحية: [shadow] would …، فلتر الأحداث، والقلب إلى الفرض.

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

اقصر قاعدة على أي وسائط — العبارات التي يدعك صندوق رمل Test تتحقّق منها مقابل rm -rf مقابل ls -la.

الأحكام

ماذا يفعل كل من allow / audit / deny / sanitize / pending_approval / cap_cost عندما يتوقّف اختبار عن كونه اختباراً.

سجل الأحداث

حيث تهبط الأحكام المظلَّلة — فلتر، تعمّق في التشغيلات والقواعد المطابقة.
لقواعد مطابقة القاعدة التي تمارسها هذه الاختبارات، انظر مرجع قواعد جدار الحماية الكامل؛ ولمكان ملاءمة الاختبار للنموذج الأوسع، انظر أوضاع الفرض.