الانتقال إلى المحتوى الرئيسي

الاحتواء ليس سطح تحكم: قراءة Nvidia OpenShell ضد التيار

الحاويات العازلة تمنع الهروب؛ لكنها لا تحدد ما كان الوكيل مخولاً بمحاولته. سلامة الوكيل تحتاج طبقة صلاحيات فوق بيئة التشغيل، لا مفتاح إيقاف أسرع.

Close-up of a green circuit with intricate patterns on a vibrant red background, ideal for technology themes.

راحة مفتاح الإيقاف السريع

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

الاحتواء يجيب على سؤال واحد: هل لا يزال هذا التشغيل داخل صندوقه؟ لكنه لا يجيب على السؤال الذي يحدد فعلياً شدة الحادث: هل كان ينبغي لهذا التشغيل أن يكون قادراً على محاولة هذا أصلاً؟ الفرق ليس فلسفياً. إنه الفرق بين وكيل حاول الوصول إلى نقطة نهاية بيانات وصفية داخلية فقُتل، ووكيل لم يحمل قط بيانات اعتماد قادرة على الوصول إليها. كلاهما ينتج سطر سجل. واحد فقط ينتج اختراقاً.

تجادل هذه المقالة بأن منصات الاحتواء خاصية زمن استجابة، وليست خاصية صلاحيات، وأن سلامة الوكيل تحتاج نموذج صلاحيات يجلس فوق الحاوية العازلة بدلاً من مسار إنهاء أسرع بداخلها.

ما يشتريه الاحتواء فعلاً

منصة الاحتواء هي، ميكانيكياً، مشرف. تتصل بشجرة عمليات، وتراقب استدعاءات النظام أو الأحداث الشبيهة بها عبر واجهة النواة، وتطابقها مع سياسة، وتقتل عند الانتهاك. هدف التصميم هو زمن الوصول إلى الإنهاء. قلّله وستقلل النافذة التي يمكن لوكيل مسيء التصرف أن يعمل خلالها.

هذه النافذة حقيقية. لكنها محدودة أيضاً بسرعة الفعل نفسه. كتابة نظام الملفات تكتمل في ميكروثوانٍ؛ طلب الشبكة يغادر المضيف قبل أن ينتهي محرك سياسة المشرف من تقييم القاعدة التي كانت ستوقفه. الاحتواء يضيق التعرض لكنه لا يزيل القدرة. الوكيل لا يزال يحمل المقبض، والرمز، والمقبس، والمسار. استخدمها. مساهمة المنصة كانت الملاحظة بعد ذلك، بسرعة.

الطبقة المفقودة: الصلاحية قبل القدرة

Detailed view of a computer hard disk circuit board with colorful reflections.

كل استدعاء أداة يقوم به الوكيل هو منح قدرة. عندما يمنح المنسق النموذج أداة read_file، فإنه يمنح وصول قراءة إلى كل ما يمكن لتنفيذ الأداة الوصول إليه. عندما يمنحه عميل HTTP، فإنه يمنح خروجاً إلى كل ما تسمح به بيانات اعتماد العميل وسياسة الشبكة. عندما يمنحه صدفة، فإنه يمنح اتحاد كل ما يمكن للصدفة فعله.

منصات الاحتواء نادراً ما تملك هذه المنح. إنها تجلس تحت طبقة الأدوات، عند حدود العملية، وترى آثار المنح بدلاً من المنح نفسها. هذه نقطة عمياء بنيوية: يمكن للمنصة أن تخبرك أن عملية فتحت مقبساً، لكن ليس أن الوكيل لم يكن من المفترض أصلاً أن يملك أداة تفتح مقابس.

الصلاحية تنتمي إلى السياسة، فوق الحاوية العازلة. عملياً، هذا يعني تعريف ميزانيات صلاحية لكل تشغيل:

  • سطح الأدوات: المجموعة الدقيقة من الأدوات التي يجوز للتشغيل استدعاؤها، وليس المجموعة التي يصادف أن الإطار يكشفها.
  • نطاق نقاط النهاية: المضيفون أو الخدمات التي يجوز لكل أداة الاتصال بها، معبراً عنها كقوائم سماح بدلاً من قوائم حظر.
  • نطاق بيانات الاعتماد: رموز قصيرة العمر وضيقة النطاق تُصدر لكل تشغيل، بحيث يكون الرمز المسرب عديم الفائدة خارج عمر التشغيل.
  • سقوف الإنفاق والمعدل: حدود صارمة على مقدار الموارد الخارجية التي يمكن للتشغيل استهلاكها، بغض النظر عما تسمح به الأدوات.
  • حد زمني: انتهاء صلاحية تُلغى بعده الصلاحية بغض النظر عن حالة التشغيل.

لا شيء من هذه يتطلب أن تكون الحاوية العازلة أسرع. إنها تتطلب أن يكون المنسق هو الشيء الذي يقرر ما هو الوكيل، قبل تشغيل الوكيل. فصل الصلاحية عن الاحتواء يسمح أيضاً بالتفكير في نطاق التأثير بشكل مستقل عن احتمال الهروب. تشغيل بلا صلاحية شبكة له نطاق تأثير صفري لحوادث الشبكة، مهما كان الوكيل بارعاً في الهروب من حدود العملية. هذا بيان أقوى من "كنا سنقتله في أقل من عشر مللي ثانية."

تفكيك مرجعي

ثلاث طبقات، لكل منها وظيفة مميزة.

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

الصلاحية. بيانات اعتماد محدودة النطاق، قوائم سماح للخروج، سقوف إنفاق، تضييق سطح الأدوات، انتهاء صلاحية مرتبط بالتشغيل. وظيفة طبقة الصلاحية هي جعل القدرة غير المصرح بها غير متاحة، وليس مجرد قابلة للكشف. هنا تعيش الهندسة المثيرة: وسيط بيانات اعتماد يصدر رموزاً لكل تشغيل، محرك سياسة يستنتج سطح أدوات التشغيل من نيته المعلنة، وكيل خروج يفرض قوائم سماح المضيفين عند حاuit-board-macro-62542d-755b13.jpg)

Detailed view of a Raspberry Pi circuit board with microchips and components.

القياس عن بعد. سجلات النوايا وسجلات المسار. لكل استدعاء أداة: ما قال الوكيل إنه يفعله، وما الصلاحية التي استدعاها، وما قرره محرك السياسة، وما فعلته الأداة فعلاً. هذا ما يجعل قرار الصلاحية قابلاً للتدقيق بعد الحدث — وما يتيح لك إعادة بناء، بعد أسابيع، ما إذا كان الحادث فجوة سياسة أم خطأ تنفيذ.

المقايضة حقيقية وتستحق الذكر بوضوح. فرض الصلاحية يضيف احتكاكاً. أسطح الأدوات الضيقة تعني فشل الوكلاء أكثر في المهام المشروعة، لأن سطح الإطار الافتراضي كان أوسع مما تحتاجه المهمة ولم يقلمه أحد. بيانات الاعتماد قصيرة العمر تعني المزيد من رحلات الوسيط ذهاباً وإياباً ونمط فشل جديد عندما يكون الوسيط غير متاح. قوائم سماح الخروج تعني أن كل تكامل جديد هو تغيير سياسة، وليس تغيير كود. الفرق التي تتبنى طبقات الصلاحية ترى عادة زيادة قصيرة الأجل في معدلات فشل مهام الوكيل قبل أن يستقر سطح السياسة. هذه التكلفة هي ثمن نقل ضمان الأمان من "كنا سنلاحظ" إلى "لم يكن يمكن أن يحدث."

ما يجب قياسه

مقاييس الاحتواء ومقاييس الصلاحية تجيبان على أسئلة مختلفة، وخلطهما يخفي الإشارة المهمة.

  • محاولات الهروب المحجوبة لكل ألف تشغيل هو مقياس احتواء. يقيس كم مرة أطلق مشرف الحاوية العازلة. رقم مرتفع قد يشير إلى وكيل عدواني، أو سياسة سيئة التكوين، أو كليهما. لا يقول شيئاً عن ما كان الوكيل مخولاً بفعله.
  • محاولات القدرة غير المصرح بها لكل ألف تشغيل هو مقياس صلاحية. يعد المرات التي حاول فيها وكيل استدعاء أداة، أو الوصول إلى نقطة نهاية، أو الإنفاق مقابل ميزانية لا يملكها. هذا هو الرقم الذي يتنبأ بالحوادث، لأنه يقيس الفجوة بين ما اعتقد الوكيل أنه يستطيع فعله وما مُنح فعلاً.

المقياس الثاني أصعب في الجمع، لأنه يتطلب من طبقة الصلاحية تسجيل الرفض عند نقطة القرار بدلاً من نقطة التأثير. هذا بالضبط سبب كونه أكثر إفادة. نظام يمكنه الإبلاغ عن رفض صلاحياته الخاصة هو نظام نموذج صلاحياته صريح بما يكفي للتفكير فيه.

سطح التحكم فوق الحاوية العازلة

منصات الاحتواء مفيدة. إنها تقلل النافذة التي يمكن لوكيل مسيء التصرف أن يعمل خلالها، وتوفر توقفاً صارماً للحالات التي فشلت فيها كل الطبقات الأخرى. لكن التوقف الصارم هو احتياطي، وليس سطح تحكم. سطح التحكم هو مجموعة القرارات المتخذة قبل تشغيل الوكيل: أي أدوات يحمل، أي بيانات اعتماد يحمل، أي نقاط نهاية يمكنه الوصول إليها، كم يمكنه الإنفاق، ومتى ينتهي كل ذلك.

قراءة OpenShell ضد التيار تشير إلى أن الصناعة تتقارب على احتواء ممتاز وتستثمر بشكل ناقص في الصلاحية. الإصلاح ليس مفتاح إيقاف أسرع. إنه طبقة سياسة تجعل مفتاح الإيقاف غير ضروري للحوادث المهمة.

مشاركةXLinkedInرابط دائم6 دقيقة قراءة

قراءات ذات صلة

الأسئلة التي يجيب عنها هذا

Does containment make an agent safe?

No. Containment limits how long a misbehaving agent can act, but it does not define what the agent was authorised to attempt. Safety requires an authority layer above the sandbox that decides tool surface, credential scope, and spend ceilings before the run starts.

What is the difference between a containment metric and an authority metric?

Escape attempts blocked per thousand runs measures how often the sandbox supervisor fired. Unauthorised capability attempts per thousand runs measures how often an agent tried to use authority it did not hold. The second predicts incidents; the first describes the runtime.

Where should authority be enforced?

In the orchestrator and policy layer, not in the sandbox runtime. Scoped credentials, egress allowlists, tool-surface narrowing, and run-scoped expiry belong above the process boundary, so blast radius can be reasoned about independently of escape probability.