تکنیک Sandboxing چیست؟ معرفی تعاریف مختلف جعبه شن در امنیت

از sandbox و تکنیک sandboxing تعاریف مختلفی ارائه شده است که در زیر برخی از آنها آورده شده است:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  • Sandboxing به مجموعه تکنیک هایی گفته می شود که برای ایزوله کردن برنامه ها از یکدیگر به کار گرفته می ود. هدف اصلی این ایزوله سازی آنست که از خطاهایی که موجب به مخاطره افتادن اهداف امنیتی کاربر میگردد جلوگیری شود.
  • در حالت کلی یک sandbox یک محیط محاسباتی ایزوله شده است که به وسیله تولیدکنندگان نرم افزار برای تست یک کد برنامه نویسی جدید مورد استفاده قرار میگیرد.
  • در زبان برنامه نویسی جاوا و محیط توسعه نرم افزار آن، sandbox عبارت است از محدوده برنامه و مجموعه ای از قوانین که برنامه نویس در هنگام ایجاد یک اپلت نیاز به استفاده از آن دارد ( اپلت قطعه کدی به زبان جاواست که به عنوان قسمتی از صفحه ارسال میشود). از آنجا که یک اپلت جاوا به طور خودکار به عنوان قسمتی از صفحه ارسال میشود و به محض رسیدن به مقصد اجرا میشود در صورتی که دسترسی نامحدود به حافظه و سرویسهای سیستم عامل به آن داده شود میتواند بسیار خطرناک باشد. Sandbox در هنگامی که یک اپلت میخواهد به منابع سیستمی دسترسی داشته باشد محدودیتهایی را در نظر میگیرد. اساسا برنامه نویس بایستی کدی را بنویسد که فقط داخل sandbox اجرا شود. Sandbox را میتوان به صورت محدوده ی کوچکی در کامپیوتر تصور کرد که کد اپلت میتواند در آنجا آزادانه اجرا شود اما اجازه اجرا در جاهای دیگر را ندارد.
  • Sandbox کردن یک برنامه کاربردی، راهی است برای حفاظت سیستمها و کاربران جهت محدودسازی منابعی که برنامه میتواند دسترسی داشته باشد تا از این طریق، کارِ نرم افزار مخرب برای به مخاطره انداختن سیستم کاربر بسیار دشوار گردد. در حقیقت برنامه در یک فضای ایزوله شده اجرا میشود تا از ایجاد تغییرات دائمی به برنامه ها و داده های دیگر جلوگیری کند.

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

دو مکانیزم اساسی برای پیاده سازی ایزوله کردن وجود دارد:

1. Namespaces

2. Access checks

ایزوله کردن به روش namespaces بر اساس این اصل کار میکند که "agentها قادر به دستکاری منابعی که نمی توانند نام بدهند نیستند". در ایزوله کردن به روش access checks تلاش میشود الزامات اثبات از فرم "agentِای به نام A ممکن است منبع R را به روش M دستکاری کند" استخراج شود. در حال حاضر تکنولوژیهای ایزوله سازی از هر دو مکانیزم جهت کنترل توانایی agentها (عموما گروهی از فرآیندها) برای دستکاری منابع نامگذاری شده مثل صفحات حافظه، فایلها، کارتهای شبکه، دیگر فرآیندها یا دستگاههای صوتی و تصویری استفاده میکنند.

مدل sandbox در جاوا

مدل امنیتی که توسط پلت فرم جاوا ارائه میشود به عنوان مدل sandbox شناخته میشود که محیط محصوری را فراهم میکند که در آن کدهای غیرقابل اعتماد دریافت شده از شبکه اجرا میگردند. مدل امنیتی JDK 1.0، JDK 1.1 و Java 2 در شکلهای زیر نشان داده شده است:

وب سایت توسینسو
وب سایت توسینسو
وب سایت توسینسو


در مدل امنیتی sandbox، نیازی به تشخیص و کشف این که شما به چه کدی میتوانید اعتماد کنید ندارید و هم چنین نیازی به چک کردن ویروس هم وجود ندارد زیرا sandbox خودش از هر ویروس یا کد مخرب که ممکن است به کامپیوترتان صدمه بزند جلوگیری میکند. در حقیقت مدل sandbox به هر کدی از هر جایی اجازه ورود میدهد اما در هنگام اجرای آن کد، با توجه به فعالیتهایی که ممکن است باعث خرابی سیستمتان شود محدودیتهایی را برای کد دریافت شده از مکانهای غیرقابل اعتماد در نظر میگیرد.

محدودیتهای Sandboxing

پیاده سازی sandboxing دارای 5 نوع محدودیت کلی میباشد:

  1. ایزوله سازی خیلی زیاد
  2. ایزوله سازی ناکافی
  3. غیرقابل حمل بودن
  4. غیرقابل استفاده بودن (توسط برخی از کاربران خاص)
  5. طراحی و پیاده سازی نادرست (به دلیل فهم نامناسب و تفسیرهای مختلف)

نظرات