Sandboxing یک تکنیک امنیتی است که در آن یک محیط جداگانه و ایزوله (به نام Sandbox یا “جعبه شنی”) برای اجرای برنامه‌ها، کدها یا فایل‌های مشکوک ایجاد می‌شود. این محیط کاملاً مستقل از سیستم اصلی است و به برنامه اجازه می‌دهد تا اجرا شود، اما دسترسی آن به منابع حساس سیستم محدود می شود .

چرا Sandboxing مهم است؟

Sandboxing مثل این است که یک آزمایش شیمیایی خطرناک را در یک آزمایشگاه کاملاً ایزوله انجام دهید؛ حتی اگر چیزی منفجر شود، به بقیه آزمایشگاه آسیبی نمی‌رسد.

در دنیای دیجیتال:

Sandbox جلوی انتشار بدافزارها، ویروس‌ها و کدهای مخرب را می‌گیرد.
اگر کدی مخرب باشد، تأثیر آن فقط در محیط ایزوله باقی می‌ماند و به سیستم اصلی نمی‌رسد.

Sandboxing چگونه کار می‌کند؟

    1. ایجاد محیط ایزوله:
        • یک فضای جداگانه از سیستم عامل اصلی ایجاد می‌شود که به آن Sandbox می‌گویند.

        • این محیط می‌تواند یک ماشین مجازی، یک کانتینر، یا یک فضای موقت در حافظه باشد.

    1. اجرای برنامه یا فایل در Sandbox:
        • برنامه یا فایل مشکوک در این محیط اجرا می‌شود.

        • اگر برنامه بدافزار باشد، تأثیر آن به Sandbox محدود می‌شود.

    1. تحلیل رفتار:
        • رفتار برنامه در Sandbox بررسی می‌شود.

        • اگر رفتار برنامه مخرب باشد، آن را مسدود می‌کنند.

کاربردهای Sandboxing

    1. تحلیل بدافزار:
        • محققان امنیت سایبری از Sandboxing برای بررسی رفتار ویروس‌ها و بدافزارها استفاده می‌کنند.

    1. اجرای فایل‌های ناشناس:
        • فایل‌هایی که از منابع غیرقابل اعتماد دانلود شده‌اند، می‌توانند ابتدا در Sandbox اجرا شوند.

    1. مرورگرهای امن:
        • برخی مرورگرها، مانند Google Chrome، از Sandboxing برای جدا کردن تب‌های مرورگر استفاده می‌کنند تا یک وب‌سایت مخرب به سیستم آسیب نزند.

    1. تست نرم‌افزار:
        • توسعه‌دهندگان نرم‌افزار، کدهای خود را در Sandbox اجرا می‌کنند تا از آسیب‌ناپذیری آن‌ها مطمئن شوند.

    1. امنیت ایمیل:
        • فایل‌های پیوست ایمیل‌های مشکوک در Sandbox باز می‌شوند تا بررسی شوند

مزایای Sandboxing

    1. محافظت در برابر تهدیدات ناشناخته:
        • حتی اگر یک بدافزار جدید و ناشناخته باشد، Sandboxing از سیستم اصلی محافظت می‌کند.

    1. امنیت داده‌ها:
        • دسترسی برنامه‌ها به داده‌های حساس سیستم محدود می‌شود.

    1. تحلیل دقیق‌تر:
        • رفتار بدافزارها در یک محیط ایمن قابل مشاهده و تحلیل است.

    1. جلوگیری از خرابی سیستم:
        • اگر برنامه‌ای مشکل‌دار باشد، فقط محیط Sandbox تحت تأثیر قرار می‌گیرد.

معایب Sandboxing

    1. مصرف منابع:
        • اجرای برنامه‌ها در محیط ایزوله می‌تواند منابع بیشتری از سیستم (CPU و RAM) مصرف کند.

    1. زمان‌بر بودن:
        • تحلیل رفتار برنامه‌ها در Sandbox ممکن است زمان بیشتری نسبت به روش‌های دیگر بگیرد.

    1. محدودیت در شناسایی:
        • برخی بدافزارها طوری طراحی شده‌اند که بتوانند شناسایی کنند که در یک Sandbox اجرا می‌شوند و رفتار مخرب خود را پنهان می‌کنند.

ابزارها و فناوری‌های Sandboxing معروف

    1. VMware:
        • یک پلتفرم مجازی‌سازی برای اجرای ماشین‌های مجازی که می‌توانند به عنوان Sandbox استفاده شوند.

    1. Docker:
        • کانتینرهای ایزوله برای اجرای برنامه‌ها.

    1. Windows Sandbox:
        • ابزار داخلی در ویندوز 10 و 11 برای اجرای برنامه‌ها در یک محیط ایزوله.

    1. Firejail (لینوکس):
        • یک ابزار برای ایجاد محیط‌های ایزوله برای برنامه‌ها در سیستم‌های لینوکسی.

    1. Cuckoo Sandbox:
        • ابزاری تخصصی برای تحلیل بدافزارها در محیط ایزوله.

    1. Google Chrome:
        • استفاده از Sandboxing برای ایمن نگه داشتن مرورگر و جلوگیری از آسیب‌پذیری‌های وب

چگونه از Sandboxing استفاده کنیم؟

در ویندوز:

    1. فعال کردن Windows Sandbox:
        • وارد تنظیمات Turn Windows features on or off شوید.

        • گزینه Windows Sandbox را فعال کنید.

    1. اجرای برنامه در Sandbox:
        • برنامه‌ای را که می‌خواهید بررسی کنید، داخل Sandbox اجرا کنید.

در لینوکس:

    1. نصب Firejail:
        • از طریق ترمینال

sudo apt install firejail

2.اجرای برنامه:

برنامه را داخل محیط Firejail اجرا کنید.

firejail firefox

در مرورگر:

    • مرورگر Google Chrome یا Microsoft Edge از Sandboxing به صورت پیش‌فرض استفاده می‌کنند. نیازی به تنظیمات خاص نیست.

تفاوت بین Docker، VMware، و Sandbox

این سه مفهوم همگی به نوعی به ایزوله‌سازی مرتبط هستند، اما برای اهداف مختلفی طراحی شده‌اند و در نحوه عملکردشان تفاوت‌های اساسی دارند. بیایید به زبان ساده و مقایسه‌ای بررسی کنیم.

1. Docker: کانتینر برای برنامه‌ها

    • Docker چیست؟
      Docker یک فناوری کانتینری است که به شما امکان می‌دهد برنامه‌ها و وابستگی‌های آن‌ها را در محیط‌های ایزوله به نام کانتینر اجرا کنید.
      این کانتینرها روی یک سیستم عامل مشترک اجرا می‌شوند و فقط اجزای لازم برای اجرای برنامه را در بر دارند.

    • هدف Docker:
        • برای توسعه و استقرار برنامه‌ها.

        • اجرای چندین برنامه در یک سرور با منابع کم.

    • ویژگی‌های Docker:
        • سبک (Lightweight): برخلاف ماشین‌های مجازی، کانتینرها نیازی به اجرای یک سیستم‌عامل کامل ندارند.

        • مناسب برای DevOps: به راحتی می‌توان یک برنامه را از محیط توسعه به محیط تولید منتقل کرد.

        • اشتراک سیستم‌عامل: تمام کانتینرها از یک کرنل مشترک استفاده می‌کنند.

2. VMware: مجازی‌سازی کامل سیستم

    • VMware چیست؟
      VMware یک پلتفرم برای ایجاد و اجرای ماشین‌های مجازی (Virtual Machines) است. ماشین‌های مجازی شامل یک سیستم‌عامل کامل (مانند ویندوز یا لینوکس) هستند که به طور کامل از سیستم‌عامل اصلی ایزوله‌اند.

    • هدف VMware:
        • اجرای چندین سیستم‌عامل مختلف روی یک سخت‌افزار فیزیکی.

        • شبیه‌سازی محیط‌های سروری یا دسکتاپی.

    • ویژگی‌های VMware:
        • سنگین‌تر از Docker: هر ماشین مجازی به یک سیستم‌عامل کامل نیاز دارد، که منابع بیشتری مصرف می‌کند.

        • ایزوله‌سازی سطح بالا: سیستم‌عامل هر ماشین کاملاً جدا از بقیه است.

        • انعطاف‌پذیری: امکان اجرای نرم‌افزارهای متفاوت در سیستم‌عامل‌های مختلف.

3. Sandbox: محیط ایزوله برای امنیت

    • Sandbox چیست؟
      Sandbox یک محیط ایزوله است که برای اجرای فایل‌ها یا کدهای ناشناخته یا مشکوک استفاده می‌شود. هدف اصلی آن جلوگیری از تأثیر این کدها بر سیستم اصلی است.

    • هدف Sandbox:
        • امنیت.

        • آزمایش فایل‌ها و برنامه‌ها بدون خطر.

    • ویژگی‌های Sandbox:
        • بسیار سبک‌تر از VMware و Docker: محیط فقط برای اجرای موقت و ایزوله یک برنامه یا فایل طراحی شده است.

        • موقت: پس از بسته شدن Sandbox، تمام تغییرات از بین می‌روند.

        • امنیت محور: برای تحلیل بدافزارها و اجرای فایل‌های ناشناخته.

جمع‌بندی

    • Docker برای توسعه و اجرای برنامه‌ها در محیط‌های سبک مناسب است.

    • VMware برای مجازی‌سازی سیستم‌عامل‌ها و اجرای محیط‌های پیچیده طراحی شده است.

    • Sandbox ابزاری برای امنیت است که به شما امکان اجرای ایمن فایل‌های مشکوک را می‌دهد.

انتخاب هر کدام به نیاز شما بستگی دارد. آیا قصد امنیت، توسعه، یا مجازی‌سازی دارید؟