db.query عند الساعة 3 صباح الأحد، أو
وكيل يطرق أداة فاشلة واحدة في حلقة محكمة، أو انتقال من أداة إلى أداة لم تقم
به مساحة العمل هذه من قبل. كل استدعاء يجتاز كل قاعدة؛ النمط هو المشكلة.
كشف شذوذ جدار الحماية هو الطبقة السلوكية. تتعلّم البوابة الشكل الطبيعي
لاستخدام الأدوات في مساحة عملك وتسجّل نقاط النشاط الحي مقابله، فتبرز
الانحرافات على تغذية يمكن لأي Member قراءتها. هكذا تلاحظ وكيلاً
مخترَقاً أو حلقة منفلتة دون أن تكون قد كتبت مسبقاً قاعدة لشكل لم ترَه قط.
هذه الصفحة هي الهبوط المركّز لتغذية firewall anomaly detection تلك؛
نظرة جدار الحماية العامة هي
المرجع المتعمّق.
تغذية الشذوذ هي كشف، وليست فرضاً. تخبرك بما يبدو شاذاً — لكنها لا تحجب.
عندما يكون النمط حقيقياً، تحوّله إلى قاعدة
أو حكم محدود المعدل كي يُوقَف الحدوث
التالي مضمّناً. قراءة التغذية مفتوحة لكل Member؛ تحويل أحد الاكتشافات إلى
سياسة هو Developer+.
1. ماذا يعلّم كشف شذوذ جدار الحماية
أربعة أنواع إشارات، كل منها مرتبط بنمط فشل مختلف:rate_spike — استدعاءات أكثر من اللازم لهذه الساعة
rate_spike — استدعاءات أكثر من اللازم لهذه الساعة
حجم الاستدعاءات لكل أداة مُسجَّل مقابل خط أساس متعلَّم لـساعة
الأسبوع. تُطلق أداة
rate_spike عندما يتجاوز عددها أرضيةً مطلقة و
يجري مرتفعاً نسبةً إلى خط الأساس لـتلك الساعة، أو عندما تتجاوز
درجة z عتبتها. المفتاح هو ساعة الأسبوع (لا ساعة اليوم) يعني أن
الثلاثاء-14:00 يُقارن بأوقات الثلاثاء-14:00 السابقة، فلا تُقرأ حركة
ذروة أيام الأسبوع المشروعة كارتفاع بينما يُقرأ نفس الحجم عند الساعة 3
صباح الأحد كذلك.burn_spike — التكلفة تجري ساخنة مقابل خط الأساس
burn_spike — التكلفة تجري ساخنة مقابل خط الأساس
نفس مقارنة ساعة الأسبوع، مطبَّقة على التكلفة المتراكمة بدلاً من
عدد الاستدعاءات. الأداة التي يجري إنفاقها أعلى بكثير من معيار تكلفتها
المتعلَّم تبرز كـ
burn_spike — إشارة الإنذار المبكر لوكيل صار مكلفاً
قبل أن يصير مدمّراً.retry_loop — نفس الاستدعاء، مراراً وتكراراً
retry_loop — نفس الاستدعاء، مراراً وتكراراً
مجموعة
(conversation, tool, arguments) تتكرر مرات كثيرة داخل نافذة
قصيرة — وكيل عالق في إعادة إصدار نفس استدعاء الأداة الفاشل بدلاً من
التعافي. الاستطلاع المشروع البطيء لا يطلقها؛ الإشارة هي حلقة محكمة.novel_path — انتقال لم يُرَ من قبل
novel_path — انتقال لم يُرَ من قبل
انتقال متتالٍ
tool_a → tool_b لا يملك خط أساس متعلَّم في مساحة العمل
هذه. أول مرة يذهب فيها وكيل، مثلاً، crm.read → http.fetch، تكون تلك
الحافة جديدة — بالضبط نوع الخطوة الذي تتخذه سلسلة
تسريب البيانات.2. خط الأساس على 14 يوماً
الكاشف ليس عتبة ثابتة — بل معياراً متعلَّماً. لكل دلو(tool, hour-of-week) تحتفظ البوابة بعدد استدعاءات وتكلفة متوقَّعين
متجدّدين، مردومين من نظرة إلى الوراء بطول 14 يوماً (نحو حدوثين لكل دلو
ساعة-أسبوع — كافٍ لتنعيم يوم شاذ منفرد دون فقدان الشكل الأسبوعي). يستخدم
novel_path خط أساس الانتقال الموازي: عدد الحدوث المتعلَّم لكل حافة
tool_a → tool_b في تلك الساعة من الأسبوع.
مساحة عمل جديدة تماماً لا تملك خط أساس بعد. لا بأس بذلك: مع غياب معيار
متعلَّم، تتراجع كواشف الحجم إلى أرضية مطلقة، فيظل الفيضان الواضح مصطاداً في
اليوم الأول بينما تمتلئ معايير كل ساعة.
| الإشارة | مِمَّ تتعلّم |
|---|---|
rate_spike / burn_spike | عدد وتكلفة لكل (tool, hour-of-week)، متجدّد على 14 يوماً. |
novel_path | عدد انتقال لكل (tool_a → tool_b, hour-of-week). |
retry_loop | لا خط أساس — عتبة تكرار ضمن نافذة على (conversation, tool, args). |
تُبلّغ التغذية عن أسماء الأدوات، ومعرّفات الرموز المنقّحة، والأعداد فقط.
لا يظهر معرّف مفتاح API خام أبداً — يحمل كل عنصر هضماً أحادي الاتجاه للرمز
المستدعي، فيمكنك التمييز بين شذوذين دون أن تسرّب التغذية قط المفتاح
وراءهما.
3. قراءة ملموسة واحدة
لنقل إن مفتاح وكيل بدأ يدور في حلقة. اسحب التغذية في وحدة التحكم ضمن Security → Firewall → Anomalies، أو اقرأها مباشرةً — يستطيع أي Member ذلك:retry_loop لا يحمل baseline ولا z_score (يبقى هذان الحقلان 0
— فهما يخصّان كواشف الحجم/التكلفة)، ويحمل id معتماً مستقراً كي لا تتصادم
حلقتان متمايزتان على نفس الأداة على صف واحد. أما rate_spike فهو العكس:
يُبلّغ عن baseline متعلَّم وz_score، ويترك id فارغاً.
يسمّي كل عنصر الأداة، والرمز المنقّح، وكم استدعاءً أُطلق، ودرجة z (إشارات
الحجم/التكلفة فقط)، وsuggested_action (rate_limit أو block_tool أو
review). من هنا تتصرّف: أسقِط قاعدة deny
على الأداة، أو تحقّق من وسائطها،
أو افتح سجل الأحداث لترى بالضبط ما
فعله الوكيل.
4. تأجيل التغذية
اختبار حِمل معروف أو ردم مخطَّط له سيُشعل التغذية. بدلاً من مطاردة الضجيج، أجّلها — لمدة تصل إلى 7 أيام:snoozed_until؛
وتمسح نفسها لحظة انقضاء الموعد النهائي. السقف هو حدّ صلب — قيمة until
أبعد، سواء بضغطة خاطئة أو عدائية، تُقيَّد كي لا يمكن إسكات كشف الشذوذ إلى
أجل غير مسمّى. إرسال until ماضٍ أو الآن يمسح تأجيلاً قائماً.
قراءة التغذية إجراء Member؛ أما تأجيلها فهو Developer+ — كتم
إشارة سلامة على مستوى مساحة العمل كتابة، لا قراءة.
5. RBAC في لمحة
ينقسم سطح التحليلات على خط القراءة/الفعل المعتاد:| الإجراء | الدور |
|---|---|
| قراءة تغذية الشذوذ | Member |
| قراءة الإعدادات والسياسات والأدوات المكتشفة | Member |
| تأجيل التغذية | Developer+ |
| الأحداث، التشغيلات، التجميع، التتبّع | Developer+ |
| تأليف قاعدة من اكتشاف | Developer+ |
6. من الإشارة إلى السياسة
التغذية هي بداية حلقة، لا نهايتها:اكتشف النمط
يُظهر
novel_path أو rate_spike شكلاً لم تتوقّعه. اقرأه مقابل
سجل الأحداث لتأكيد أنه حقيقي، لا
حدث لمرة واحدة.اكتب القاعدة
حوّل الاكتشاف إلى فرض — حجب، أو
عبارة وسائط، أو
قاعدة تسلسل للسلسلة، أو
سقف تكلفة للاحتراق.
اطرحها بأمان
أنزِل القاعدة تحت وضع الظل أولاً
كي تقيس نطاق انفجارها قبل أن تحجب استدعاءً واحداً، ثم افرض.
إلى أين تذهب بعد ذلك
نظرة جدار الحماية العامة
مرجع كشف الشذوذ الكامل وبقية مستوى السياسة.
سجل الأحداث
احفر من شذوذ إلى الاستدعاءات الدقيقة وراءه.
حجب أداة
حوّل اكتشافاً إلى قاعدة فارضة.
أوضاع الفرض
كيف يتلاءم الكشف والتدقيق والظل والفرض معاً.
