−25%

على الدفع السنوي لـ Windows حتى 31 أكتوبر. عرض الخطط

EQVPS
ابدأ الآن

العزل بالحاويات أم بـ microVM: مقارنة بين 4 مستويات للعزل، من عملية فرعية إلى آلة افتراضية كاملة

10 أكتوبر 2026 · 5 دقيقة قراءة · EQVPS Team

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

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

ما الذي قد يسوء

قبل مقارنة الحدود، يفيد أن نسمّي الغرض منها. يمكن للشيفرة غير الموثوقة أن:

  1. تقرأ ما لا ينبغي: متغيرات البيئة، ومفاتيح SSH، والملفات في مجلدك الرئيسي، ونقاط نهاية بيانات السحابة الوصفية.
  2. تستنزف الموارد: تدور في حلقة لا تنتهي، أو تنفّذ fork حتى يتوقف الجهاز، أو تملأ القرص.
  3. تسيء استخدام الشبكة: تمسح مضيفين آخرين، أو ترسل رسائل مزعجة، أو تعدّن العملات المشفرة، أو تستدعي خدماتك الداخلية.
  4. تستقر: تثبّت مهمة cron أو خدمة تبقى بعد انتهاء المهمة.
  5. تهرب: تستغل ثغرة في الطبقة التي تحتها لتشغيل شيفرة على المضيف نفسه.

كل مستوى أدناه يتعامل مع بعض هذه الأمور دون غيرها.

المستوى 1: عملية

أبسط صندوق رمل هو عملية فرعية: subprocess.run مع مهلة، وربما تحت مستخدم منفصل، ومع حدود للموارد ومرشح seccomp إن كنت دقيقاً.

يوقف: الوقت المنفلت (المهلة)، وبعض استنزاف الموارد (الحدود)، وبعض استدعاءات النظام الخطرة (seccomp). لا يوقف: قراءة كل ما يستطيع ذلك المستخدم قراءته، والوصول إلى الشبكة، والاستقرار عبر أي مكان يستطيع المستخدم الكتابة فيه، وأي ثغرة في النواة. الفشل المعتاد: تقرأ الشيفرة ملفاً نسيت أنه قابل للقراءة، أو يتبيّن أن مفسّر لغة „مقيّداً“ فيه منفذ للهروب. والتاريخ مليء بصناديق رمل داخل اللغات لم تصمد.

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

المستوى 2: حاوية

تمنح namespaces الشيفرة رؤيتها الخاصة للملفات والعمليات والشبكة، وتحدّ cgroups من المعالج والذاكرة، وتضيّق القدرات المحذوفة (capabilities) وseccomp ما يمكنها طلبه من النواة.

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

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

المستوى 3: آلة microVM

تشغّل آلة microVM نواتها الخاصة تحت مشرف افتراضي، مثل الآلة الافتراضية الكاملة، لكن مع إزالة كل العتاد المُحاكى تقريباً. وFirecracker هو أشهر مثال.

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

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

المستوى 4: آلة افتراضية كاملة

للآلة الافتراضية العادية، أو خادم VPS، نوع الحد نفسه الذي لآلة microVM: محاكاة افتراضية بالعتاد ومشرف افتراضي. الفرق في كل ما يحيط به: نموذج أجهزة كامل، ونظام تشغيل كامل، وعنوان IP عام إن أردت، ودورة حياة تُقاس بالأيام أو الأشهر.

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

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

المقارنة

عمليةحاوية‏microVMآلة افتراضية كاملة
نواة خاصةلالانعمنعم
الحد الرئيسيصلاحيات المستخدمnamespaces + نواة مشتركةمشرف افتراضي، نموذج أجهزة صغير جداًمشرف افتراضي، نموذج أجهزة كامل
زمن البدء~0ms~0.1–1 ث10 ث – دقائق
الحمل الإضافيلا شيءصغيربضعة MiBعشرات–مئات MiB
التخلص منها بعد كل مهمةسهلسهلسهلبطيء ومكلف
منافذ واردة / IP عامللمضيفللمضيفعادةً لا يوجدنعم

الاختيار

  • شيفرة كتبتها أنت أو فريقك: تكفي عملية أو حاوية.
  • التكامل المستمر لفروعك الخاصة: حاوية على مشغّلك (runner).
  • شيفرة يولّدها وكيل، وما يرسله المستخدمون، وطلبات pull request الخارجية: آلة microVM لكل مهمة، تُحذف بعدها.
  • خدمة غير موثوقة يجب أن تقبل الاتصالات أو تعمل لأسابيع: آلة افتراضية منفصلة بعنوان IP خاص، بعيدة عن أي شيء يحمل بيانات اعتمادك أو يرسل بريدك.

أياً كان ما تختاره، تنطبق فوقه قاعدتان: لا تضع بالداخل شيئاً ما كنت لتسلّمه لكاتب الشيفرة، وقرّر عن وعي ما المسموح للشبكة أن تفعله.

أين تقع منتجاتنا

للمستوى 3 نقدّم صناديق رمل الشيفرة: آلات Firecracker microVM تبدأ في نحو ثانية، مع إنترنت صادر، ودون منافذ واردة، وبفوترة بالثانية. وهي موجهة تحديداً إلى البند الثالث أعلاه، وتشرح صفحة ضوابط MCP كيف تقيّد ما يمكن للوكيل فعله بها. وللمستوى 4، يمنحك خادم VPS مثل باقة AI agent آلة كاملة بالشهر. وتعرض الأمثلة العملية في صندوق رمل لوكلاء الذكاء الاصطناعي نمط microVM من البداية إلى النهاية، ويتناول مقال ما الذي يحتاجه وكلاء الذكاء الاصطناعي من البنية التحتية العزل بوصفه واحداً من عدة متطلبات.

الأسئلة الشائعة

هل تكفي الحاوية لتشغيل شيفرة يولّدها الذكاء الاصطناعي؟

بالنسبة إلى شيفرة فريقك، غالباً نعم. أما الشيفرة التي لم يراجعها أحد — مخرجات وكيل، أو ما يرسله المستخدمون، أو طلبات pull request من الخارج — فالنواة المشتركة في الحاوية هي نقطة الضعف. آلة microVM أو الآلة الافتراضية تضع مشرفاً افتراضياً بين تلك الشيفرة والمضيف.

ما الفرق بين microVM والآلة الافتراضية العادية من حيث العزل؟

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

هل يمنع العزل الشيفرة من سرقة مفاتيح API الخاصة بي؟

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

وماذا عن الوصول إلى الشبكة؟

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

التعليقات

لا تعليقات بعد. كن الأول.

اترك تعليقًا

تُراجَع التعليقات قبل ظهورها.