Sandbox (computer security)

In computer security, a sandbox is a security mechanism for separating running programs, usually in an effort to mitigate system failures and/or software vulnerabilities from spreading. The sandbox metaphor derives from the concept of a child's sandbox—a play area where children can build, destroy, and experiment without causing any real-world damage.[1] It is often used to analyze untested or untrusted programs or code, possibly originating from unverified or untrusted third parties, suppliers, users or websites, without risking harm to the host machine or operating system.[2] A sandbox typically provides a tightly controlled set of resources for guest programs to run in, such as storage and memory scratch space. Network access, the ability to inspect the host system, or read from input devices are usually disallowed or heavily restricted.

In the sense of providing a highly controlled environment, sandboxing can be comparable to virtualization. Sandboxing is frequently used to test unverified programs that may contain a virus or other malicious code without allowing the software to harm the host device.[3]

Implementations

A sandbox is implemented by executing the software in a restricted operating system environment, thus controlling the resources (e.g. file descriptors, memory, file system space, etc.) that a process may use.[4]

Examples of sandbox implementations include the following:

  • Linux application sandboxing, built on the Linux kernelseccomp, cgroups and namespaces features. Notably used by Systemd, Google Chrome, Firefox and Firejail.
  • Android was one of the first mainstream operating system to implement full application sandboxing, built by assigning each application its own Linux user ID.[5]GrapheneOS hardens this app sandboxing to achieve an added layer of security and avoid potentially malicious apps and, unlike stock Android, it allows sandboxing of every app in the OS.[6]
  • Apple App Sandbox is required for apps distributed through Apple's Mac App Store and iOS/iPadOSApp Store, and recommended for other signed apps.[7][8]
  • تتضمن أنظمة التشغيل Windows Vista والإصدارات اللاحقة عملية تشغيل في وضع "منخفض"، تُعرف باسم "التحكم في حساب المستخدم" (UAC) . [ 9 ]
  • واجهة برمجة تطبيقات جوجل المعزولة. [ 10 ]
  • تحاكي الآلات الافتراضية جهاز كمبيوتر مضيفًا كاملًا، حيث يمكن لنظام تشغيل تقليدي أن يبدأ التشغيل ويعمل كما لو كان على جهاز حقيقي. يعمل نظام التشغيل الضيف في بيئة معزولة، بمعنى أنه لا يعمل بشكل أصلي على الجهاز المضيف، ولا يمكنه الوصول إلى موارد الجهاز المضيف إلا من خلال المحاكي.
  • السجن : قيود على الوصول إلى الشبكة، ومساحة اسم نظام ملفات مقيدة. تُستخدم السجون بشكل شائع في الاستضافة الافتراضية . [ 11 ]
  • يمنح التنفيذ القائم على القواعد المستخدمين تحكمًا كاملًا في العمليات التي يتم تشغيلها، أو إنشاؤها (بواسطة تطبيقات أخرى)، أو السماح لها بحقن التعليمات البرمجية في تطبيقات أخرى والوصول إلى الشبكة، وذلك من خلال قيام النظام بتعيين مستويات الوصول للمستخدمين أو البرامج وفقًا لمجموعة من القواعد المحددة. [ 12 ] كما يمكنه التحكم في أمان الملفات/السجل (أي البرامج التي يمكنها القراءة والكتابة في نظام الملفات/السجل). في مثل هذه البيئة، تقل فرص الفيروسات وبرامج التجسس في إصابة الحاسوب. يُعد إطارا أمان SELinux و Apparmor مثالين على هذه التطبيقات لنظام Linux .
  • يعتمد باحثو الأمن بشكل كبير على تقنيات العزل (Sandboxing) لتحليل سلوك البرمجيات الخبيثة. فمن خلال إنشاء بيئة تحاكي أو تنسخ أجهزة سطح المكتب المستهدفة، يستطيع الباحثون تقييم كيفية إصابة البرمجيات الخبيثة للجهاز المستهدف واختراقه. وتعتمد العديد من خدمات تحليل البرمجيات الخبيثة على تقنية العزل. [ 13 ]
  • يُعد Google Native Client بيئة معزولة لتشغيل أكواد C و C++ المُجمّعة في المتصفح بكفاءة وأمان، بغض النظر عن نظام تشغيل المستخدم. [ 14 ]
  • يمكن اعتبار أنظمة الصلاحيات آلية حماية دقيقة، حيث تُمنح البرامج رموزًا مبهمة عند تشغيلها، وتتمتع بقدرات محددة بناءً على هذه الرموز. تعمل تطبيقات الصلاحيات على مستويات مختلفة، من نواة النظام إلى مساحة المستخدم. ومن أمثلة الحماية على مستوى المستخدم القائمة على الصلاحيات، عرض صفحات HTML في متصفح الويب ، سواء كان Chromium أو WebKit .
  • وضع الحوسبة الآمنة (seccomp) الوضع الصارم، يسمح seccomp فقط write()باستدعاءات النظام read()و exit()و و .sigreturn()
  • يحتوي HTML5 على سمة "sandbox" لاستخدامها مع الإطارات المضمنة (iframes) . [ 15 ]
  • تتضمن الآلات الافتراضية لجافا بيئة معزولة لتقييد إجراءات التعليمات البرمجية غير الموثوقة، مثل تطبيق جافا الصغير .
  • يوفر وقت تشغيل اللغة المشتركة .NET ميزة أمان الوصول إلى التعليمات البرمجية لفرض قيود على التعليمات البرمجية غير الموثوقة.
  • عزل أعطال البرمجيات (SFI)، [ 16 ] يسمح بتشغيل التعليمات البرمجية الأصلية غير الموثوقة عن طريق وضع جميع تعليمات التجميع الخاصة بالتخزين والقراءة والقفز في أجزاء معزولة من الذاكرة.

تتضمن بعض حالات استخدام بيئات الاختبار المعزولة ما يلي:

انظر أيضاً

مراجع

  1. "ما هي بيئة الاختبار المعزولة؟ - المعنى | بروفبوينت المملكة المتحدة" . بروفبوينت . 13 سبتمبر 2023. مؤرشف من الأصل في 28 مايو 2024. تم الاطلاع عليه في 28 مايو 2024 .
  2. غولدبيرغ، إيان؛ فاغنر، ديفيد؛ توماس، راندي؛ وبروير، إريك (1996). "بيئة آمنة لتطبيقات المساعدة غير الموثوقة (تقييد المخترق الماكر)" (ملف PDF) . وقائع ندوة USENIX السادسة لأمن أنظمة يونكس . مؤرشف (ملف PDF) من الأصل بتاريخ 15 يونيو 2010. تم الاطلاع عليه بتاريخ 25 أكتوبر 2011 .
  3. جير، إريك (16 يناير 2012). "كيفية الحفاظ على أمان جهاز الكمبيوتر الخاص بك باستخدام تقنية الحماية المعزولة" . TechHive. مؤرشف من الأصل في 12 يوليو 2014. تم الاطلاع عليه في 3 يوليو 2014 .
  4. "تطبيقات الحماية المعزولة" (ملف PDF) . 2001. مؤرشف (ملف PDF) من الأصل في 23 سبتمبر 2015. تم الاطلاع عليه في 7 مايو 2013 .
  5. "بيئة اختبار التطبيقات - مشروع أندرويد مفتوح المصدر" . مؤرشف من الأصل بتاريخ 11 ديسمبر 2019. تم الاطلاع عليه بتاريخ 2 أبريل 2021 .
  6. وايلد، دانيال (16 أبريل 2024). "مراجعة GrapheneOS: جودة بدون جوجل" . 9to5google .
  7. "حول App Sandbox" . developer.apple.com . مؤرشف من الأصل بتاريخ 2020-12-04 . تم الاطلاع عليه بتاريخ 2020-12-09 .
  8. "أمان عملية التشغيل في نظامي iOS و iPadOS" . دعم Apple . مؤرشف من الأصل بتاريخ 13 أبريل 2021. تم الاطلاع عليه بتاريخ 4 أبريل 2021 .
  9. vinaypamnani-msft. "كيف يعمل التحكم في حساب المستخدم" . learn.microsoft.com . مؤرشف من الأصل بتاريخ 16 يوليو 2025. تم الاطلاع عليه بتاريخ 14 يوليو 2025 .
  10. google/sandboxed-api ، جوجل، 8 ديسمبر 2020، مؤرشف من الأصل في 7 ديسمبر 2020 ، تم الاطلاع عليه في 9 ديسمبر 2020
  11. "نظام الحماية التلقائي المعزول" . مؤرشف من الأصل بتاريخ 12 فبراير 2015. تم الاطلاع عليه بتاريخ 30 يناير 2015 .
  12. "أمن أنظمة الحاسوب وضوابط الوصول" . 1991. مؤرشف من الأصل في 28 مايو 2013. تم الاطلاع عليه في 17 مايو 2013 .
  13. "بيئة اختبار العميل الأصلي - كود x86 أصلي غير موثوق به" (ملف PDF) . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 12 فبراير 2015. تم الاطلاع عليه بتاريخ 3 يناير 2015 .
  14. "مرحباً بكم في Native Client" . مؤرشف من الأصل بتاريخ 18-11-2019 . تم الاطلاع عليه بتاريخ 18-11-2019 .
  15. مدونة فريق إنترنت إكسبلورر (14 يوليو 2011). "الدفاع المتعمق: تأمين التطبيقات المدمجة باستخدام بيئة HTML5 المعزولة" . مدونة إنترنت إكسبلورر . مؤرشفة من الأصل في 13 أغسطس 2018. تم الاطلاع عليها في 2 سبتمبر 2018 .
  16. وهبي، روبرت (1993). "عزل الأعطال الفعال القائم على البرمجيات" (PDF) .