Sandboxing یک تکنیک امنیتی است که در آن یک محیط جداگانه و ایزوله (به نام Sandbox یا “جعبه شنی”) برای اجرای برنامهها، کدها یا فایلهای مشکوک ایجاد میشود. این محیط کاملاً مستقل از سیستم اصلی است و به برنامه اجازه میدهد تا اجرا شود، اما دسترسی آن به منابع حساس سیستم محدود می شود .
چرا Sandboxing مهم است؟
Sandboxing مثل این است که یک آزمایش شیمیایی خطرناک را در یک آزمایشگاه کاملاً ایزوله انجام دهید؛ حتی اگر چیزی منفجر شود، به بقیه آزمایشگاه آسیبی نمیرسد.
در دنیای دیجیتال:
Sandbox جلوی انتشار بدافزارها، ویروسها و کدهای مخرب را میگیرد.
اگر کدی مخرب باشد، تأثیر آن فقط در محیط ایزوله باقی میماند و به سیستم اصلی نمیرسد.
Sandboxing چگونه کار میکند؟
- ایجاد محیط ایزوله:
- یک فضای جداگانه از سیستم عامل اصلی ایجاد میشود که به آن Sandbox میگویند.
- این محیط میتواند یک ماشین مجازی، یک کانتینر، یا یک فضای موقت در حافظه باشد.
- ایجاد محیط ایزوله:
- اجرای برنامه یا فایل در Sandbox:
- برنامه یا فایل مشکوک در این محیط اجرا میشود.
- اگر برنامه بدافزار باشد، تأثیر آن به Sandbox محدود میشود.
- اجرای برنامه یا فایل در Sandbox:
- تحلیل رفتار:
- رفتار برنامه در Sandbox بررسی میشود.
- اگر رفتار برنامه مخرب باشد، آن را مسدود میکنند.
- تحلیل رفتار:
کاربردهای Sandboxing
- تحلیل بدافزار:
- محققان امنیت سایبری از Sandboxing برای بررسی رفتار ویروسها و بدافزارها استفاده میکنند.
- تحلیل بدافزار:
- اجرای فایلهای ناشناس:
- فایلهایی که از منابع غیرقابل اعتماد دانلود شدهاند، میتوانند ابتدا در Sandbox اجرا شوند.
- اجرای فایلهای ناشناس:
- مرورگرهای امن:
- برخی مرورگرها، مانند Google Chrome، از Sandboxing برای جدا کردن تبهای مرورگر استفاده میکنند تا یک وبسایت مخرب به سیستم آسیب نزند.
- مرورگرهای امن:
- تست نرمافزار:
- توسعهدهندگان نرمافزار، کدهای خود را در Sandbox اجرا میکنند تا از آسیبناپذیری آنها مطمئن شوند.
- تست نرمافزار:
- امنیت ایمیل:
- فایلهای پیوست ایمیلهای مشکوک در Sandbox باز میشوند تا بررسی شوند
- امنیت ایمیل:

مزایای Sandboxing
- محافظت در برابر تهدیدات ناشناخته:
- حتی اگر یک بدافزار جدید و ناشناخته باشد، Sandboxing از سیستم اصلی محافظت میکند.
- محافظت در برابر تهدیدات ناشناخته:
- امنیت دادهها:
- دسترسی برنامهها به دادههای حساس سیستم محدود میشود.
- امنیت دادهها:
- تحلیل دقیقتر:
- رفتار بدافزارها در یک محیط ایمن قابل مشاهده و تحلیل است.
- تحلیل دقیقتر:
- جلوگیری از خرابی سیستم:
- اگر برنامهای مشکلدار باشد، فقط محیط Sandbox تحت تأثیر قرار میگیرد.
- جلوگیری از خرابی سیستم:
معایب Sandboxing
- مصرف منابع:
- اجرای برنامهها در محیط ایزوله میتواند منابع بیشتری از سیستم (CPU و RAM) مصرف کند.
- مصرف منابع:
- زمانبر بودن:
- تحلیل رفتار برنامهها در Sandbox ممکن است زمان بیشتری نسبت به روشهای دیگر بگیرد.
- زمانبر بودن:
- محدودیت در شناسایی:
- برخی بدافزارها طوری طراحی شدهاند که بتوانند شناسایی کنند که در یک Sandbox اجرا میشوند و رفتار مخرب خود را پنهان میکنند.
- محدودیت در شناسایی:
ابزارها و فناوریهای Sandboxing معروف
- VMware:
- یک پلتفرم مجازیسازی برای اجرای ماشینهای مجازی که میتوانند به عنوان Sandbox استفاده شوند.
- VMware:
- Docker:
- کانتینرهای ایزوله برای اجرای برنامهها.
- Docker:
- Windows Sandbox:
- ابزار داخلی در ویندوز 10 و 11 برای اجرای برنامهها در یک محیط ایزوله.
- Windows Sandbox:
- Firejail (لینوکس):
- یک ابزار برای ایجاد محیطهای ایزوله برای برنامهها در سیستمهای لینوکسی.
- Firejail (لینوکس):
- Cuckoo Sandbox:
- ابزاری تخصصی برای تحلیل بدافزارها در محیط ایزوله.
- Cuckoo Sandbox:
- Google Chrome:
- استفاده از Sandboxing برای ایمن نگه داشتن مرورگر و جلوگیری از آسیبپذیریهای وب
- Google Chrome:
چگونه از Sandboxing استفاده کنیم؟
در ویندوز:
- فعال کردن Windows Sandbox:
- وارد تنظیمات Turn Windows features on or off شوید.
- گزینه Windows Sandbox را فعال کنید.
- فعال کردن Windows Sandbox:
- اجرای برنامه در Sandbox:
- برنامهای را که میخواهید بررسی کنید، داخل Sandbox اجرا کنید.
- اجرای برنامه در Sandbox:
در لینوکس:
- نصب Firejail:
- از طریق ترمینال
- نصب Firejail:
sudo apt install firejail
2.اجرای برنامه:
برنامه را داخل محیط Firejail اجرا کنید.
firejail firefox
در مرورگر:
- مرورگر Google Chrome یا Microsoft Edge از Sandboxing به صورت پیشفرض استفاده میکنند. نیازی به تنظیمات خاص نیست.
تفاوت بین Docker، VMware، و Sandbox
این سه مفهوم همگی به نوعی به ایزولهسازی مرتبط هستند، اما برای اهداف مختلفی طراحی شدهاند و در نحوه عملکردشان تفاوتهای اساسی دارند. بیایید به زبان ساده و مقایسهای بررسی کنیم.
1. Docker: کانتینر برای برنامهها
- Docker چیست؟
Docker یک فناوری کانتینری است که به شما امکان میدهد برنامهها و وابستگیهای آنها را در محیطهای ایزوله به نام کانتینر اجرا کنید.
این کانتینرها روی یک سیستم عامل مشترک اجرا میشوند و فقط اجزای لازم برای اجرای برنامه را در بر دارند.
- Docker چیست؟
- هدف Docker:
- برای توسعه و استقرار برنامهها.
- اجرای چندین برنامه در یک سرور با منابع کم.
- هدف Docker:
- ویژگیهای Docker:
- سبک (Lightweight): برخلاف ماشینهای مجازی، کانتینرها نیازی به اجرای یک سیستمعامل کامل ندارند.
- مناسب برای DevOps: به راحتی میتوان یک برنامه را از محیط توسعه به محیط تولید منتقل کرد.
- اشتراک سیستمعامل: تمام کانتینرها از یک کرنل مشترک استفاده میکنند.
- ویژگیهای Docker:
2. VMware: مجازیسازی کامل سیستم
- VMware چیست؟
VMware یک پلتفرم برای ایجاد و اجرای ماشینهای مجازی (Virtual Machines) است. ماشینهای مجازی شامل یک سیستمعامل کامل (مانند ویندوز یا لینوکس) هستند که به طور کامل از سیستمعامل اصلی ایزولهاند.
- VMware چیست؟
- هدف VMware:
- اجرای چندین سیستمعامل مختلف روی یک سختافزار فیزیکی.
- شبیهسازی محیطهای سروری یا دسکتاپی.
- هدف VMware:
- ویژگیهای VMware:
- سنگینتر از Docker: هر ماشین مجازی به یک سیستمعامل کامل نیاز دارد، که منابع بیشتری مصرف میکند.
- ایزولهسازی سطح بالا: سیستمعامل هر ماشین کاملاً جدا از بقیه است.
- انعطافپذیری: امکان اجرای نرمافزارهای متفاوت در سیستمعاملهای مختلف.
- ویژگیهای VMware:
3. Sandbox: محیط ایزوله برای امنیت
- Sandbox چیست؟
Sandbox یک محیط ایزوله است که برای اجرای فایلها یا کدهای ناشناخته یا مشکوک استفاده میشود. هدف اصلی آن جلوگیری از تأثیر این کدها بر سیستم اصلی است.
- Sandbox چیست؟
- هدف Sandbox:
- امنیت.
- آزمایش فایلها و برنامهها بدون خطر.
- هدف Sandbox:
- ویژگیهای Sandbox:
- بسیار سبکتر از VMware و Docker: محیط فقط برای اجرای موقت و ایزوله یک برنامه یا فایل طراحی شده است.
- موقت: پس از بسته شدن Sandbox، تمام تغییرات از بین میروند.
- امنیت محور: برای تحلیل بدافزارها و اجرای فایلهای ناشناخته.
- ویژگیهای Sandbox:

جمعبندی
- Docker برای توسعه و اجرای برنامهها در محیطهای سبک مناسب است.
- VMware برای مجازیسازی سیستمعاملها و اجرای محیطهای پیچیده طراحی شده است.
- Sandbox ابزاری برای امنیت است که به شما امکان اجرای ایمن فایلهای مشکوک را میدهد.
انتخاب هر کدام به نیاز شما بستگی دارد. آیا قصد امنیت، توسعه، یا مجازیسازی دارید؟