مقابله با تهدیدات از درون هسته سیستم‌عامل
فناوری ممانعت از اجرای داده‌ها در ویندوز چیست و چگونه فعال می‌شود؟
هر زمان صحبت از امنیت به میان می‌آید، ناخوادآگاه ذهن ما به سمت ضدویروس‌ها، دیوارهای آتش و سایر تاکتیک‌های مقابله با تهدیدات متمایل می‌شود. حال آن‌که اصلی‌ترین نرم‌افزاری که باید به لحاظ امنیتی عملکرد بالایی داشته باشد، سیستم عامل‌است. بهترین نرم‌افزارهای امنیتی زمانی‌که از یک سیستم‌عامل غیرایمن استفاده می‌شود هیچ‌گونه کارایی نخواهند داشت. به همین دلیل است که سیستم‌عامل‌های مدرن و کارآمدی که روزانه کاربران از آن استفاده می‌کنند باید به بالاترین مکانیزم‌های امنیتی تجهیز شده باشند. یکی از این مکانیزم‌های امنیتی قدرتمند ممانعت از اجرای داده‌ها (DEP ) سرنام Data Execution Prevention نام داشته که در این مقاله به شکل کوتاه آن‌را به شما معرفی خواهیم کرد.

رونویسی داده‌های درون حافظه‌ای

DEP قابلیتی امنیتی است که مانع از آن می‌شود تا بدافزارها یا سایر تهدیدات امنیتی به راحتی بتوانند به یک سامانه کامپیوتری آسیب وارد کنند. برنامه‌های مخرب همواره سعی می‌کنند کدهای مخرب را به درون حافظه تزریق کرده و سایر پردازه‌های سیستمی را آلوده کنند. حملاتی که به این شکل انجام می‌شوند، بیشتر به منظور تخریب برنامه‌ها و فایل‌های کاربردی اجرا می‌شوند. هکرها به اشکال مختلفی می‌توانند به سامانه‌های کامپیوتری حمله کنند. به طور مثال, تروجان Trojan.Ransomcrypt.K  که با هدف رمزگذاری فایل‌ها مورد استفاده قرار می‌گیرد به این شکل حمله می‌کند که ابتدا یک درب پشتی روی سیستم قربانی ایجاد کرده و در ادامه با اضافه کردن یکسری کلیدها به رجیستری ویندوز و در ادامه هک کردن فایل‌ها، سیستم کاربر را بدون استفاده می‌کند. اما مرسوم‌ترین روشی که امروزه از سوی هکرها به کار گرفته می‌شود، حمله به حافظه اصلی یک سامانه کامپیوتری است. حمله‌ای که با هدف آلوده کردن برنامه‌های در حال اجرای سیستمی، سرویس‌ها و سایر برنامه‌ها به کار گرفته می‌شود. حمله‌ای که در آن بدافزارها سعی می‌کنند مکان مشخصی از حافظه را آلوده کرده و در ادامه به رونویسی کدهایی بپردازند که در این بخش قرار گرفته‌اند. رویکردی که از آن به نام اکسپلویت نام برده می‌شود. اگر برنامه‌ای تلاش کند به بخشی محافظت شده از حافظه دسترسی پیدا کرده، کدهایی را درون این بخش رونویسی کرده و سپس اجرا کند، باعث بروز یک استثناء (Exception) شده که در بیشتر موارد همراه با یک پیغام خطای Access_Violation  خواهد بود. حال اگر تیم توسعه‌دهنده برنامه کاربردی پیش‌بینی چنین حالتی را نکرده باشد برنامه با نمایش یک پیغام خطای ناگهانی پایان می‌پذیرد. این باگ اولین چراغ سبزی است که به هکرها نقطه ورود به یک برنامه را نشان می‌دهد. در این‌گونه موارد خطاهای بحرانی توسط مولفه ناظر رویدادهای ویندوز ضبط شده که با مشاهده اطلاعات ثبت شده توسط این مولفه می‌توان علت بروز خطا را پیدا کرد.

Data Execution Prevention  چگونه کار می‌کند؟

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

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

 چگونه این قابلیت را مدیریت کنیم؟

ویندوز به کاربران اجازه می‌دهد تا از این فناوری در ارتباط با برنامه‌های خاصی استفاده کرده یا برنامه‌هایی را مستثنا از این ویژگی کنند. برای مدیریت این ویژگی مراحل زیر را دنبال کنید.

1. پنجره فایل اکسپلورر در ویندوز 10 را باز کرده، روی This PC کلیک راست کرده و Properties را انتخاب کنید.

2. در پنجره ظاهر شده روی گزینه Advanced system settings که در سمت چپ پنچره قرار دارد کلیک کنید.

3. در پنجره ظاهر شده روی زبانه Advanced کلیک کنید.

4. در بخش Performance با کلیک بر روی دکمه setting پنجره Performance Options ظاهر می‌شود.

5. در این پنجره روی زبانه Data Execution Prevention کلیک کنید.

6. همان‌گونه که شکل بالا مشاهده می‌کنید، در این زبانه دو گزینه وجود دارد. به‌طور پیش‌فرض فناوری DEP فقط روی برنامه‌ها و سرویس‌های ضروری سیستم‌عامل ویندوز فعال است. اما گزینه دوم امکان فعال‌سازی DEP روی همه برنامه‌های کاربردی به غیر از برنامه‌هایی که اسامی آنها در فهرست پایین مشخص می‌شود را فعال می‌کند.

وارد کردن برنامه‌ها به فهرست DEP

اصلی‌ترین دلیلی که باعث می‌شود تا برخی از برنامه‌ها در فهرست استثناها قرار گیرند، مربوط به پروژه‌های تحقیقاتی یا کدهایی است که از اجرای آن‌ها اطمینان داشته و یا به صورت پژوهشی می‌خواهید روی آن‌ها کار کنید. پروژه‌هایی که در صورت فعال بودن DEP روی آن‌ها ممکن است روند اجرای عادی آن‌ها به هم بریزد. در چنین شرایطی زمانی که ویژگی DEP روی همه پردازه‌ها فعال می‌شود ما قادر هستیم برنامه‌های خاص را از این قاعده مستثنا کنیم. با فعال کردن گزینه دوم Turn on DEP for all programs and services except those I select امکان وارد کردن برنامه‌ها به این فهرست امکان‌پذیر است. کافی است روی دکمه Add در پایین پنجره کلیک کنید. در پنجره ظاهر شده به مکانی که فایل اجرایی در آن قرار دارد رفته و آن‌را انتخاب کنید. با اینکار برنامه  انتخاب شده توسط DEP تحت محافظت قرار نخواهد گرفت. هر زمان تصمیم گرفتید برنامه انتخاب شده را از این فهرست خارج کنید کافی است روی دکمه Remove کلیک کنید. اگر سعی کنید پردازه‌های مهم را از محافظت DEP خارج کنید ویندوز پیغام خطایی به شما نشان خواهد داد.

توجه داشته باشید که همه برنامه‌ها با فناوری DEP سازگاری ندارند. در نتیجه اگر سعی کنید چنین برنامه‌هایی را به فهرست DEP وارد کنید پیغام خطایی را دریافت خواهید کرد.

برچسب: