Command Palette
Search for a command to run...
صندوق الرمال / الصندوق الرملي Sandbox
تُعدّ البيئة المعزولة (Sandbox) بيئة تنفيذ مقيدة: تعمل البرامج داخلها مع إمكانية الوصول فقط إلى الموارد المسموح بها صراحةً، مما يجعل من الصعب عليها التأثير على النظام المضيف أو البرامج الأخرى حتى في حال حدوث أخطاء أو استغلال خبيث. تعالج البيئة المعزولة فرضية "الكود غير الموثوق"، أي البرامج القادمة من أطراف ثالثة، أو مدخلات المستخدم، أو المولدة بواسطة النماذج، حيث لا يمكن افتراض أمانها بشكل افتراضي.
تعود الجذور الفكرية للبيئات المعزولة إلى عزل العمليات في أنظمة التشغيل. في عام 1979، قدم نظام Unix الإصدار السابع استدعاء النظام chroot (أضافه Bill Joy إلى BSD في عام 1982)، الذي يحصر الدليل الجذري للعملية داخل شجرة فرعية معينة، مما يجعلها "عمياء" عن بقية نظام الملفات؛ وفي عام 1993، اقترح Wahbe وزملاؤه في ورقة بحثية بعنوان Efficient Software-Based Fault Isolation عزل الأعطال البرمجي (SFI)، الذي يستخدم إعادة كتابة التعليمات لتقييد وصول الذاكرة للوحدات غير الموثوقة ضمن نطاق عناوينها الخاص، مما يتيح عزل الأعطال دون الحاجة إلى تشغيل جهاز افتراضي. في منتصف التسعينيات، حوّل Java applet مصطلح "Sandbox" إلى مفهوم شائع: فالكود داخل المتصفح لا يستطيع افتراضيًا إلا القيام بعمليات محدودة، وتتطلب أي صلاحيات إضافية تفويضًا صريحًا، وقد حلل Dean وزملاؤه هذه النموذج بشكل منهجي في ورقة بحثية بعنوان Java Security: From HotJava to Netscape and Beyond.
تتمثل التنفيذ الحديث للبيئات المعزولة في تكديس ثلاث طبقات: بدائل النواة، والتشبيه الافتراضي، ووقت تشغيل اللغة. تستخدم طبقة النواة seccomp لتصفية استدعاءات النظام، وnamespaces وcgroups لعزل العروض والموارد، مما يسمح للحاويات بالعزل عن بعضها البعض على نفس النواة؛ تستخدم طبقة التشبيه الافتراضي أجهزة افتراضية دقيقة خفيفة الوزن للحصول على حدود أقوى، حيث يقوم Firecracker بتقليل زمن الإقلاع واستهلاك الذاكرة إلى مستوى الميلي ثانية من خلال نموذج أجهزة مبسط (Firecracker: Lightweight Virtualization for Serverless Applications، NSDI 2020)؛ أما طبقة اللغة فتدمج العزل في وقت التشغيل، حيث يتيح الذاكرة الخطية وآلية الاستيراد في WebAssembly للوحدات الوصول فقط إلى الكائنات الممررة صراحةً. في السنوات الأخيرة، بدأت وكلاء الذكاء الاصطناعي في تنفيذ كود مولد بواسطة النماذج، مما حوّل البيئة المعزولة من "آلية أمنية" إلى "بنية تحتية افتراضية".
تكمن قيمة البيئة المعزولة في حصر تأثير الأعطال والهجمات داخل الحدود، مما يسمح بتشغيل الكود غير الموثوق بأمان، وتقييمه بشكل متكرر، وإرجاعه في أي وقت. لكنها ليست آمنة بشكل مطلق: قد تؤدي ثغرات النواة، والقنوات الجانبية الناتجة عن الذاكرة المؤقتة المشتركة، وإهمالات التكوين إلى فشل العزل، وبالتالي يظل "الهروب" من البيئة المعزولة نقطة تركيز دائمة في عمليات الهجوم والدفاع. الجانب الآخر هو التكلفة—فكلما كان العزل أقوى، قلّت قدرات النظام المتاحة، وغالبًا ما يلزم منح الإذن بشكل فردي للملفات، والشبكة، ووحدات معالجة الرسوميات (GPU). تكمن الصعوبة الهندسية للبيئات المعزولة بالضبط في رسم الحدود المناسبة بين "إغلاق المحكم" و"إتاحة الاستخدام" بناءً على المهمة.
بناء الذكاء الاصطناعي بالذكاء الاصطناعي
من الفكرة إلى الإطلاق — سرّع تطوير الذكاء الاصطناعي الخاص بك مع المساعدة البرمجية المجانية بالذكاء الاصطناعي، وبيئة جاهزة للاستخدام، وأفضل أسعار لوحدات معالجة الرسومات.