الانتقال إلى المحتوى الرئيسي
تصطاد قواعد جدار الحماية الساكنة الاستدعاءات التي عرفت أن تسمّيها. لكنها لا تستطيع اصطياد الاستدعاء المسموح به على حِدة لكنه خاطئ في المجمل — 200 استدعاء db.query عند الساعة 3 صباح الأحد، أو وكيل يطرق أداة فاشلة واحدة في حلقة محكمة، أو انتقال من أداة إلى أداة لم تقم به مساحة العمل هذه من قبل. كل استدعاء يجتاز كل قاعدة؛ النمط هو المشكلة. كشف شذوذ جدار الحماية هو الطبقة السلوكية. تتعلّم البوابة الشكل الطبيعي لاستخدام الأدوات في مساحة عملك وتسجّل نقاط النشاط الحي مقابله، فتبرز الانحرافات على تغذية يمكن لأي Member قراءتها. هكذا تلاحظ وكيلاً مخترَقاً أو حلقة منفلتة دون أن تكون قد كتبت مسبقاً قاعدة لشكل لم ترَه قط. هذه الصفحة هي الهبوط المركّز لتغذية firewall anomaly detection تلك؛ نظرة جدار الحماية العامة هي المرجع المتعمّق.
تغذية الشذوذ هي كشف، وليست فرضاً. تخبرك بما يبدو شاذاً — لكنها لا تحجب. عندما يكون النمط حقيقياً، تحوّله إلى قاعدة أو حكم محدود المعدل كي يُوقَف الحدوث التالي مضمّناً. قراءة التغذية مفتوحة لكل Member؛ تحويل أحد الاكتشافات إلى سياسة هو Developer+.

1. ماذا يعلّم كشف شذوذ جدار الحماية

أربعة أنواع إشارات، كل منها مرتبط بنمط فشل مختلف:
حجم الاستدعاءات لكل أداة مُسجَّل مقابل خط أساس متعلَّم لـساعة الأسبوع. تُطلق أداة rate_spike عندما يتجاوز عددها أرضيةً مطلقة و يجري مرتفعاً نسبةً إلى خط الأساس لـتلك الساعة، أو عندما تتجاوز درجة z عتبتها. المفتاح هو ساعة الأسبوع (لا ساعة اليوم) يعني أن الثلاثاء-14:00 يُقارن بأوقات الثلاثاء-14:00 السابقة، فلا تُقرأ حركة ذروة أيام الأسبوع المشروعة كارتفاع بينما يُقرأ نفس الحجم عند الساعة 3 صباح الأحد كذلك.
نفس مقارنة ساعة الأسبوع، مطبَّقة على التكلفة المتراكمة بدلاً من عدد الاستدعاءات. الأداة التي يجري إنفاقها أعلى بكثير من معيار تكلفتها المتعلَّم تبرز كـburn_spike — إشارة الإنذار المبكر لوكيل صار مكلفاً قبل أن يصير مدمّراً.
مجموعة (conversation, tool, arguments) تتكرر مرات كثيرة داخل نافذة قصيرة — وكيل عالق في إعادة إصدار نفس استدعاء الأداة الفاشل بدلاً من التعافي. الاستطلاع المشروع البطيء لا يطلقها؛ الإشارة هي حلقة محكمة.
انتقال متتالٍ tool_a → tool_b لا يملك خط أساس متعلَّم في مساحة العمل هذه. أول مرة يذهب فيها وكيل، مثلاً، crm.read → http.fetch، تكون تلك الحافة جديدة — بالضبط نوع الخطوة الذي تتخذه سلسلة تسريب البيانات.
يكمّل كشف الشذوذ قواعد التسلسل. تطابق قاعدة التسلسل سلسلة عرّفتها سلفاً؛ بينما يعلّم novel_path انتقالاً لم تعرّفه — هكذا تكتشف السلاسل الجديرة بكتابة قاعدة تسلسل لها.

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 ذلك:
curl https://api.orcarouter.ai/api/workspace/firewall/anomalies \
  -H "Authorization: Bearer $ORCA_SESSION_TOKEN"
{
  "data": {
    "items": [
      {
        "id": "3f1c9a7b0e2d4a86",
        "kind": "retry_loop",
        "tool_name": "db.query",
        "token_id_redacted": "sk-***-9f2a",
        "count": 412,
        "baseline": 0,
        "z_score": 0,
        "suggested_action": "rate_limit",
        "first_seen": 1749470400,
        "last_seen": 1749470520
      }
    ],
    "snoozed_until": 0
  }
}
عنصر retry_loop لا يحمل baseline ولا z_score (يبقى هذان الحقلان 0 — فهما يخصّان كواشف الحجم/التكلفة)، ويحمل id معتماً مستقراً كي لا تتصادم حلقتان متمايزتان على نفس الأداة على صف واحد. أما rate_spike فهو العكس: يُبلّغ عن baseline متعلَّم وz_score، ويترك id فارغاً.
$ORCA_SESSION_TOKEN هو رمز جلسة / وصول وحدة التحكم لديك — نفس مصادقة كل مسار إدارة /api/workspace/firewall/*. إنه ليس مفتاح ترحيل sk-orca-… (تلك مخصّصة فقط لاستدعاءات النموذج /v1/*) وليس مفتاح بوابة جدار حماية. مفتاح الترحيل على هذا المسار يُرفض.
يسمّي كل عنصر الأداة، والرمز المنقّح، وكم استدعاءً أُطلق، ودرجة z (إشارات الحجم/التكلفة فقط)، وsuggested_action (rate_limit أو block_tool أو review). من هنا تتصرّف: أسقِط قاعدة deny على الأداة، أو تحقّق من وسائطها، أو افتح سجل الأحداث لترى بالضبط ما فعله الوكيل.

4. تأجيل التغذية

اختبار حِمل معروف أو ردم مخطَّط له سيُشعل التغذية. بدلاً من مطاردة الضجيج، أجّلها — لمدة تصل إلى 7 أيام:
curl -X POST https://api.orcarouter.ai/api/workspace/firewall/anomalies/snooze \
  -H "Authorization: Bearer $ORCA_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"until": 1749643200}'
أثناء سريان التأجيل لا تعيد التغذية أي عناصر وتُبلّغ عن snoozed_until؛ وتمسح نفسها لحظة انقضاء الموعد النهائي. السقف هو حدّ صلب — قيمة until أبعد، سواء بضغطة خاطئة أو عدائية، تُقيَّد كي لا يمكن إسكات كشف الشذوذ إلى أجل غير مسمّى. إرسال until ماضٍ أو الآن يمسح تأجيلاً قائماً.
قراءة التغذية إجراء Member؛ أما تأجيلها فهو Developer+ — كتم إشارة سلامة على مستوى مساحة العمل كتابة، لا قراءة.

5. RBAC في لمحة

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

6. من الإشارة إلى السياسة

التغذية هي بداية حلقة، لا نهايتها:
1

اكتشف النمط

يُظهر novel_path أو rate_spike شكلاً لم تتوقّعه. اقرأه مقابل سجل الأحداث لتأكيد أنه حقيقي، لا حدث لمرة واحدة.
2

اكتب القاعدة

حوّل الاكتشاف إلى فرض — حجب، أو عبارة وسائط، أو قاعدة تسلسل للسلسلة، أو سقف تكلفة للاحتراق.
3

اطرحها بأمان

أنزِل القاعدة تحت وضع الظل أولاً كي تقيس نطاق انفجارها قبل أن تحجب استدعاءً واحداً، ثم افرض.

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

نظرة جدار الحماية العامة

مرجع كشف الشذوذ الكامل وبقية مستوى السياسة.

سجل الأحداث

احفر من شذوذ إلى الاستدعاءات الدقيقة وراءه.

حجب أداة

حوّل اكتشافاً إلى قاعدة فارضة.

أوضاع الفرض

كيف يتلاءم الكشف والتدقيق والظل والفرض معاً.
للتهديدات التي تكشفها هذه الإشارات، انظر تسريب البيانات و الاستقلالية المفرطة.