SlideShare a Scribd company logo
1 of 28
EXEC-Shield
‫لینوکس‬‫در‬
‫کارکردآن‬‫و‬‫ی‬‫ساز‬ ‫پیاده‬ ‫نحوه‬ ‫ی‬ ‫س‬‫ر‬‫بر‬
‫گلیانی‬ ‫محمد‬
‫خرداد‬1390
‫باش‬ ‫می‬ ‫نویسنده‬ ‫نام‬ ‫و‬‫منبع‬ ‫ذکر‬ ‫به‬ ‫منوط‬ ‫سند‬‫این‬ ‫از‬ ‫ی‬‫بردار‬ ‫کپی‬ ‫گونه‬ ‫هر‬‫د‬
-Exec-shield‫چیست؟‬
-‫قبل‬‫و‬‫بعد‬‫از‬Exec-shield
-Exec-shield‫چگونه‬‫کار‬‫می‬‫کند؟‬
-‫ی‬‫ژ‬‫تکنولو‬NX (XD)‫چیست؟‬
-NX (XD)‫در‬exec-shield
‫مطالب‬‫فهرست‬
-Segmentation‫چیست؟‬
-Segment limit‫در‬exec-shield
-‫منطقه‬‫هی‬‫ر‬‫ز‬‫اسکی‬
-Exec-shield‫در‬‫عمل‬
-‫جمع‬‫بندی‬
Exec-Shield‫چیست؟‬
-Exec-shield،‫حفاظی‬‫است‬‫که‬‫ای‬‫ر‬‫ب‬‫مقابله‬‫با‬‫حمالت‬‫بافر‬‫در‬‫سیستم‬‫د‬‫ر‬‫مو‬‫استفاده‬‫ار‬‫ر‬‫ق‬‫م‬‫ی‬‫گیرد‬.
-‫با‬‫استفاده‬‫از‬Exec-shield،‫فضاهایی‬‫از‬‫برنامه‬‫که‬‫ار‬‫ر‬‫ق‬‫نیست‬‫در‬‫آنها‬‫کدی‬‫ا‬‫ر‬‫اج‬،‫شود‬‫به‬‫ت‬‫ر‬‫صو‬
«‫غیر‬‫قابل‬‫ا‬‫ر‬‫اج‬»‫تنظیم‬‫خواهد‬‫شد‬‫و‬‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫آنها‬‫غیر‬‫ممکن‬‫است‬.
-‫نخستین‬‫پیاده‬‫ی‬‫ساز‬exec-shield‫در‬‫لینوکس‬‫توسط‬‫وصله‬‫امنیتی‬‫که‬Ingo Molnar‫ائه‬‫ر‬‫ا‬،‫نمود‬
‫انجام‬‫گردید‬.
-Exec-shield،‫عالوه‬‫بر‬‫حذف‬‫ۀ‬‫ز‬‫اجا‬،‫ا‬‫ر‬‫اج‬‫از‬‫تصادفی‬‫ی‬‫ساز‬‫فضای‬‫س‬‫ر‬‫آد‬‫و‬‫همچنین‬‫منطقۀ‬‫هی‬‫ر‬‫ز‬
‫اسکی‬‫نیز‬‫بهره‬‫می‬‫جوید‬.
‫از‬‫قبل‬Exec-shield
-‫ن‬‫بدو‬‫استفاده‬‫از‬exec-shield،‫پس‬‫از‬‫اینکه‬‫یز‬‫ر‬‫سر‬‫اتفاق‬،‫افتاد‬shellcode‫که‬‫ن‬‫و‬‫در‬‫پشته‬‫ار‬‫ر‬‫ق‬
،‫گرفته‬‫ا‬‫ر‬‫اج‬‫خواهد‬‫شد‬.
‫ـز‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ی‬‫ـرر‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫س‬
‫حافظه‬ ‫فضای‬ IP
(EIP)
‫آسیب‬ ‫بافر‬
‫پذیر‬
‫شلکد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬‫بافر‬‫واقعی‬‫سایز‬
‫از‬‫بعد‬Exec-shield
‫ـز‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫ی‬‫ـرر‬‫ـ‬‫ـ‬‫ـ‬‫ـ‬‫س‬
‫حافظه‬ ‫در‬‫پشته‬ ‫فضای‬ IP
(EIP)
‫آسیب‬ ‫بافر‬
‫پذیر‬
‫شلکد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫شلکد‬‫س‬‫ر‬‫آد‬
‫ا‬‫ر‬‫اج‬ ‫قابل‬ ‫غیر‬
Exec-shield‫ا‬‫ر‬ ‫پشته‬‫فضای‬ ،
‫و‬‫کرده‬ ‫ا‬‫ر‬‫اج‬‫غیرقابل‬shellcode
‫شد‬ ‫نخواهد‬ ‫ا‬‫ر‬‫اج‬.
Exec-Shield‫کند؟‬ ‫می‬‫کار‬ ‫چگونه‬
-Exec-shield‫از‬‫دو‬‫ی‬‫ژ‬‫تکنولو‬‫جهت‬‫غیرقابل‬‫ا‬‫ر‬‫اج‬‫نمودن‬‫فضاهای‬‫د‬‫ر‬‫مو‬‫نظر‬‫استفاده‬‫می‬‫نماید‬:
-‫ی‬‫ژ‬‫تکنولو‬NX (XD).
-‫ی‬‫ژ‬‫تکنولو‬segmentation.
-‫ی‬‫ژ‬‫تکنولو‬NX (No eXecute)،‫در‬‫نده‬‫ز‬‫پردا‬‫های‬‫ساخت‬AMD(‫نظیر‬Opteron Athlon64)‫و‬
‫ی‬‫ژ‬‫تکنولو‬XD (eXecution Disabled)‫در‬‫نده‬‫ز‬‫پردا‬‫های‬‫ساخت‬‫شرکت‬Intel(‫نظیر‬Itanium2‫و‬
x86/EM64T)‫ار‬‫ر‬‫ق‬‫داده‬‫شده‬‫است‬.
-‫تا‬‫قبل‬‫از‬‫اینکه‬‫قابلیت‬NX (XD)‫به‬‫ت‬‫ر‬‫صو‬‫سخت‬‫ی‬‫ار‬‫ز‬‫اف‬‫در‬‫نده‬‫ز‬‫پردا‬‫ها‬‫ار‬‫ر‬‫ق‬،‫گیرد‬exec-shield‫این‬
‫قابلیت‬‫ا‬‫ر‬‫در‬‫لینوکس‬‫به‬‫ت‬‫ر‬‫صو‬‫نرم‬‫ی‬‫ار‬‫ز‬‫اف‬‫شبیه‬‫ی‬‫ساز‬‫می‬‫نمود‬.
‫ی‬‫ژ‬‫تکنولو‬NX(XD)‫چیست؟‬
-‫این‬‫ی‬‫ژ‬‫تکنولو‬‫در‬‫نده‬‫ز‬‫پردا‬،‫ها‬‫ه‬‫ز‬‫اجا‬‫می‬‫دهد‬‫تا‬page‫های‬‫ی‬ ‫خاص‬‫از‬،‫برنامه‬‫ای‬‫ر‬‫دا‬‫فلگ‬NX(XD)‫بوده‬‫و‬
‫بدین‬‫تیب‬‫ر‬‫ت‬‫ۀ‬‫ز‬‫اجا‬‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫آنها‬‫وجود‬‫نداشته‬‫باشد‬.
-‫قبل‬‫از‬‫بوجود‬‫آمدن‬‫این‬‫ی‬‫ژ‬‫تکنولو‬‫در‬‫خط‬‫تولید‬‫نده‬‫ز‬‫پردا‬،‫ها‬‫هر‬page‫از‬‫نامه‬‫ر‬‫ب‬‫که‬‫قابلیت‬‫خوانده‬‫شدن‬‫ا‬‫ر‬
‫ا‬‫ر‬‫دا‬،‫بود‬‫قابلیت‬‫ا‬‫ر‬‫اج‬‫شدن‬‫ا‬‫ر‬‫نیز‬‫می‬‫داشت‬.
-‫تعدادی‬‫از‬‫نامه‬‫ر‬‫ب‬،‫ها‬‫واقعا‬‫مند‬‫ز‬‫نیا‬‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫مکانهایی‬‫می‬‫باشند‬‫که‬‫از‬‫نظر‬NX(XD)،‫ی‬‫نیاز‬‫به‬‫ایی‬‫ر‬‫اج‬
‫بودن‬‫ند‬‫ر‬‫ندا‬.
-‫در‬،‫لینوکس‬‫قابلیت‬NX(XD)‫به‬‫ت‬‫ر‬‫صو‬‫پیش‬‫فرض‬‫فعال‬‫بوده‬‫و‬‫از‬‫آن‬‫استفاده‬‫می‬‫شود‬.
‫ی‬‫ژ‬‫تکنولو‬NX(XD)‫چیست؟‬
-‫جهت‬‫تنظیم‬‫فعال‬‫یا‬‫غیر‬‫فعال‬‫بودن‬‫استفاده‬‫از‬‫ی‬‫ژ‬‫تکنولو‬NX (XD)‫در‬‫فایلهای‬،‫ایی‬‫ر‬‫اج‬‫می‬‫توان‬‫به‬
‫هنگام‬‫کامپایل‬‫نامه‬‫ر‬‫ب‬‫از‬‫آپشن‬-z execstack‫یا‬–z noexecstack‫استفاده‬‫نمود‬.
-‫آپشن‬–execstack‫و‬– noexecstack‫در‬‫اسمبلر‬‫نیز‬‫همین‬‫نقش‬‫ا‬‫ر‬‫ند‬‫ر‬‫دا‬.
-‫پس‬‫از‬‫ساخته‬‫شدن‬‫ی‬‫باینر‬(‫فایل‬،‫ایی‬‫ر‬‫اج‬SO‫و‬...)‫نیز‬‫می‬‫توان‬‫با‬‫استفاده‬‫از‬‫ر‬‫دستو‬execstack‫این‬
‫قضیه‬‫ا‬‫ر‬‫در‬‫د‬‫ر‬‫مو‬‫فایل‬‫د‬‫ر‬‫مو‬‫نظر‬‫اعمال‬‫نمود‬.
-‫کلیه‬‫ش‬‫و‬‫ر‬‫های‬،‫ق‬‫فو‬‫یکی‬‫از‬‫فیلد‬‫های‬p_flag‫در‬‫آیند‬‫ر‬‫س‬PT_GNU_STACK‫ا‬‫ر‬‫در‬‫فایلهای‬ELF
‫تنظیم‬‫می‬‫کنند‬.
-‫با‬‫استفاده‬‫از‬‫ی‬‫ژ‬‫تکنولو‬NX‫و‬‫فلگ‬‫مربوطه‬‫در‬‫آیند‬‫ر‬‫س‬ELF،‫می‬‫توان‬exec-shield‫ا‬‫ر‬‫پیاده‬‫ی‬‫ساز‬
‫نمود‬.
NX (XD)‫در‬Exec-shield
-‫ی‬ ‫س‬‫ر‬‫بر‬‫فلگ‬‫د‬‫ر‬‫مو‬‫نظر‬‫جهت‬‫تنظیم‬‫بیت‬NX (XD)‫اصول‬‫به‬‫هنگام‬‫ی‬‫ار‬‫ز‬‫بارگ‬‫ی‬‫باینر‬‫ها‬‫انجام‬‫می‬‫شود‬‫و‬‫می‬
‫توان‬‫این‬‫قضیه‬‫ا‬‫ر‬‫در‬‫تابع‬load_elf_binary()‫در‬‫فایل‬fs/binfmt_elf.c‫دید‬.
PF_X‫فایل‬‫در‬‫که‬ ‫باشد‬‫می‬ ‫ا‬‫ر‬‫اج‬ ‫اجازۀ‬ ‫فلگ‬،include/linux/elf.h‫یف‬‫ر‬‫تع‬
‫شده‬.‫ای‬‫ر‬‫ب‬ ‫ا‬‫ر‬‫اج‬‫اجازۀ‬ ‫به‬‫بسته‬STACK‫متغیر‬،executable_stack‫ان‬‫ز‬‫می‬ ‫به‬
‫شود‬‫می‬ ‫تنظیم‬‫مناسب‬.
NX (XD)‫در‬Exec-shield
PF_X‫آیند‬‫ر‬‫س‬ ‫در‬‫که‬ ‫باشد‬‫می‬ ‫ا‬‫ر‬‫اج‬ ‫اجازۀ‬ ‫فلگ‬،p_flags‫یف‬‫ر‬‫تع‬
‫شود‬‫می‬.
NX (XD)‫در‬Exec-shield
-‫متغیر‬executable_stack‫که‬‫در‬‫تابع‬‫ق‬‫فو‬‫مقدار‬‫دهی‬،‫شده‬‫در‬‫اخوانی‬‫ر‬‫ف‬‫دو‬‫تابع‬
read_implies_exec()‫و‬setup_arg_pages()‫د‬‫ر‬‫مو‬‫استفاده‬‫ار‬‫ر‬‫ق‬‫گرفته‬‫است‬.
‫پشت‬‫های‬ ‫ویژگی‬ ،‫تابع‬ ‫دو‬‫این‬ ‫خروجی‬‫ی‬ ‫بررس‬ ‫از‬‫پس‬‫ه‬
(personality)‫پشت‬‫ی‬‫ارگیر‬‫ر‬‫ق‬‫نحوه‬ ‫و‬‫شده‬ ‫تنظیم‬‫در‬‫ه‬
‫شود‬‫می‬‫مشخص‬ ‫حافظه‬.
‫تابع‬setup_arg_pages()،‫متغیر‬‫این‬‫مقدار‬ ‫به‬‫توجه‬‫با‬page‫تنظیم‬ ‫ا‬‫ر‬ ‫آنها‬‫مجوزهای‬ ‫و‬ ‫حافظه‬‫های‬
‫نماید‬‫می‬.
NX (XD)‫در‬Exec-shield
-‫آن‬‫دسته‬‫از‬‫فایلهای‬‫ایی‬‫ر‬‫اج‬‫که‬elf_read_implies_exec()،‫ای‬‫ر‬‫ب‬‫آنها‬‫مقدار‬TRUE،‫برگرداند‬‫فلگ‬
elf_read_implies_exec‫در‬personality‫آنها‬‫به‬‫ت‬‫ر‬‫صو‬‫اتوماتیک‬‫فعال‬‫خواهد‬‫شد‬.
NX (XD)‫در‬Exec-shield
-‫تابع‬setup_arg_pages‫که‬‫در‬‫فایل‬fs/exec.c‫تعریف‬،‫شده‬‫ل‬‫مسئو‬‫تنظیم‬‫فلگ‬،‫ها‬‫ز‬‫مجو‬‫ها‬‫و‬‫در‬
‫ت‬‫ر‬‫صو‬،‫نیاز‬‫تغییر‬‫دادن‬‫محل‬‫ارگیر‬‫ر‬‫ق‬‫پشته‬‫و‬‫اضافه‬‫نمودن‬‫ی‬‫مقدار‬‫فضا‬‫به‬‫آن‬‫می‬‫باشد‬.
‫پشت‬‫های‬‫مجوز‬‫نمودن‬‫مشخص‬ ‫و‬ ‫ها‬‫فلگ‬‫ی‬ ‫بررس‬ ‫از‬‫پس‬،‫ه‬
‫از‬ ‫استفاده‬ ‫با‬mprotect_fixup()‫به‬ ‫تنظیمات‬‫این‬
‫شود‬‫می‬‫رسانی‬‫روز‬.
Mprotect_fixup()‫فایل‬ ‫در‬mm/mprotect.c
‫است‬ ‫شده‬‫یف‬‫ر‬‫تع‬.
NX (XD)‫در‬Exec-shield
-‫استفاده‬‫از‬‫ی‬‫ژ‬‫تکنولو‬NX (XD)‫نظر‬‫به‬‫پشتیبانی‬‫سخت‬،‫ی‬‫ار‬‫ز‬‫اف‬‫نسبت‬‫به‬‫سایر‬‫ش‬‫و‬‫ر‬،‫ها‬‫ترجیح‬‫داده‬
‫می‬‫شود‬.
-‫به‬‫هنگام‬‫استفاده‬‫از‬NX (XD)،‫باید‬‫به‬‫این‬‫نکته‬‫توجه‬‫داشت‬‫که‬‫این‬،‫ی‬‫ژ‬‫تکنولو‬‫ی‬‫مقدار‬‫سربار‬‫ب‬‫ه‬
‫ر‬‫منظو‬‫ی‬‫نگهدار‬‫اطالعات‬‫ز‬‫مجو‬‫ها‬‫به‬‫سیستم‬‫تحمیل‬‫می‬‫نماید‬.
-‫همچنین‬‫طبق‬‫ادعای‬RedHat،‫حدود‬6%‫نیز‬‫ایی‬‫ر‬‫کا‬‫سیستم‬‫کاهش‬‫خواهد‬‫یافت‬‫که‬‫ی‬‫بسیار‬‫از‬
‫مسئولین‬،‫ر‬‫و‬‫سر‬‫با‬‫کمال‬‫میل‬‫حاضر‬‫به‬‫پرداخت‬‫این‬‫بها‬‫ای‬‫ر‬‫ب‬‫ایش‬‫ز‬‫اف‬‫امنیت‬‫هستند‬.
-‫با‬‫توجه‬‫به‬‫محدودیت‬‫های‬،‫ق‬‫فو‬‫استفاده‬‫از‬‫ی‬‫ژ‬‫تکنولو‬NX (XD)‫در‬‫اکثر‬‫سیستم‬‫های‬،‫ی‬ ‫لینوکس‬‫مانی‬‫ز‬
‫فعال‬‫خواهد‬‫شد‬‫که‬‫لینوکس‬‫با‬‫نل‬‫ر‬‫ک‬Hugemem‫و‬‫یا‬smp‫ی‬‫ار‬‫ز‬‫بارگ‬‫شود‬.
NX (XD)‫در‬Exec-shield
‫های‬ ‫کرنل‬SMP‫و‬Hugemem‫از‬‫فرض‬ ‫پیش‬‫صورت‬ ‫به‬،PAE
‫نمایند‬‫می‬‫پشتیبانی‬.
PAE‫حاف‬‫از‬ ‫استفاده‬ ‫قابلیت‬ ‫کرنل‬ ‫ای‬‫ر‬‫ب‬‫که‬ ‫است‬ ‫قابلیتی‬‫های‬ ‫ظه‬
‫از‬‫بیشتر‬4‫های‬ ‫نده‬‫ز‬‫پردا‬‫در‬ ‫ا‬‫ر‬ ‫گیگابایت‬32‫د‬‫ر‬‫آو‬‫می‬ ‫اهم‬‫ر‬‫ف‬ ‫بیتی‬.
‫تکنولوژی‬‫از‬ ‫استفاده‬‫که‬ ‫مانی‬‫ز‬NX‫تکنیک‬‫از‬ ،‫نباشد‬ ‫صرفه‬‫به‬ ‫مقرون‬‫یا‬ ‫و‬‫ر‬‫مقدو‬Segmentation‫که‬
‫توسط‬Intel‫شود‬ ‫می‬ ‫استفاده‬‫نیاز‬ ‫مورد‬ ‫فضاهای‬ ‫نمودن‬‫ا‬‫ر‬‫اج‬ ‫غیرقابل‬‫ای‬‫ر‬‫ب‬ ‫شده‬‫ائه‬‫ر‬‫ا‬
NX (XD)‫در‬Exec-shield
‫کرنل‬‫با‬‫سیستم‬xen‫قابلیت‬ ‫و‬ ‫شده‬‫ی‬‫انداز‬ ‫اه‬‫ر‬PAE‫است‬‫فعال‬.
‫نتیجه‬ ‫در‬exec-shield‫بیت‬‫از‬ ‫مستقیما‬NX (XD)‫کند‬‫می‬ ‫استفاده‬.
‫قابلیت‬‫و‬ ‫شده‬‫ی‬‫انداز‬ ‫اه‬‫ر‬ ‫عادی‬‫کرنل‬‫با‬‫سیستم‬PAE‫است‬‫غیرفعال‬.
‫نتیجه‬ ‫در‬exec-shield‫از‬segmentation‫قابلیت‬‫ی‬‫ساز‬‫شبیه‬‫منظور‬ ‫به‬NX (XD)‫کند‬‫می‬ ‫استفاده‬.
Segmentaion‫چیست؟‬
-‫این‬‫ی‬‫ژ‬‫تکنولو‬‫که‬‫توسط‬Intel‫ائه‬‫ر‬‫ا‬،‫گردید‬‫ی‬ ‫ش‬‫و‬‫ر‬‫است‬‫که‬‫قسمت‬‫های‬‫مختلف‬‫یک‬‫نامه‬‫ر‬‫ب‬‫ا‬‫ر‬‫از‬‫یکدی‬‫گر‬
‫ا‬‫ز‬‫مج‬‫می‬‫نماید‬.
-‫جیسترهای‬‫ر‬‫مختلفی‬‫که‬‫در‬CPU‫ار‬‫ر‬‫ق‬‫د‬‫ر‬‫دا‬‫نیز‬‫مرتبط‬‫با‬‫همین‬‫سگمنت‬‫ها‬‫تعبیه‬‫شده‬‫است‬(CS, DS,
SS, ES, ...).
-‫تکنیک‬‫د‬‫ر‬‫مو‬‫استفاده‬‫در‬exec-shield،‫به‬‫دلیل‬‫شباهت‬‫با‬‫این‬،‫ش‬‫و‬‫ر‬Segmentation‫نام‬
‫ی‬‫گذار‬‫شده‬‫است‬.
-‫بر‬‫خالف‬NX(XD)،‫این‬،‫تکنیک‬‫مند‬‫ز‬‫نیا‬‫هیچ‬‫گونه‬‫پشتیبانی‬‫سخت‬‫ی‬‫ار‬‫ز‬‫اف‬‫نمی‬‫باشد‬.
-‫تکنیک‬‫د‬‫ر‬‫مو‬‫استفاده‬‫در‬exec-shield‫با‬‫تقسیم‬‫برنامه‬‫به‬‫دو‬‫قسمت‬‫قابل‬‫ا‬‫ر‬‫اج‬‫و‬‫غیر‬‫قابل‬‫ا‬‫ر‬‫اج‬‫اج‬‫ۀ‬‫ز‬‫ا‬
‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫قسمت‬‫های‬‫مختلف‬‫حافظه‬‫ا‬‫ر‬‫ل‬‫کنتر‬‫می‬‫نماید‬.
Segmentaion‫در‬Exec-shield
-‫سگمنت‬‫های‬(PAGE‫های‬)‫مختلف‬‫برنامه‬‫قبل‬‫از‬‫استفاده‬‫از‬segmentation‫در‬exec-shield،
‫به‬‫ت‬‫ر‬‫صو‬‫غیر‬‫منظم‬‫در‬‫فضای‬‫حافظۀ‬‫برنامۀ‬‫د‬‫ر‬‫مو‬‫نظر‬‫اکنده‬‫ر‬‫پ‬‫شده‬‫است‬.
CODE
CODE
STACK
CODE
DATA
‫ا‬‫ر‬‫اج‬ ‫قابل‬
(Code Segment)
‫ا‬‫ر‬‫اج‬‫قابل‬ ‫غیر‬
(Data Segment, Stack Segment)
‫سگمنت‬‫حد‬
-‫با‬‫استفاده‬‫از‬‫تکنیک‬segmentation‫در‬exec-shield،‫فضای‬‫نامه‬‫ر‬‫ب‬‫به‬‫دو‬‫قسمت‬‫قابل‬‫ا‬‫ر‬‫اج‬‫و‬
‫غیر‬‫قابل‬‫ا‬‫ر‬‫اج‬‫تقسیم‬‫می‬‫شود‬.
Segmentaion‫در‬Exec-shield
-‫مانی‬‫ز‬‫که‬‫از‬‫حدود‬‫سگمنت‬‫استفاده‬‫می‬،‫شود‬‫سیستم‬‫عامل‬‫ل‬‫مسئو‬‫ار‬‫ر‬‫ق‬‫دادن‬‫قسمت‬‫های‬‫مختل‬‫ف‬
‫برنامه‬‫در‬‫مکانهای‬‫مناسب‬‫می‬‫باشد‬.
-‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫تخطی‬‫از‬‫این‬‫حد‬‫سگمنت‬‫رخ‬،‫دهد‬‫برنامه‬‫با‬‫سیگنال‬SIGSEGV(segmentation
violation)‫متوقف‬‫خواهد‬‫شد‬.
-‫تقریبا‬‫ای‬‫ر‬‫ب‬‫تمام‬‫برنامه‬،‫ها‬‫کرنل‬‫قسمت‬‫کد‬‫ایی‬‫ر‬‫اج‬‫برنامه‬‫ا‬‫ر‬‫در‬‫س‬‫ر‬‫آد‬‫های‬‫پایین‬‫تر‬‫حا‬‫فظۀ‬‫ی‬‫مجاز‬‫و‬
‫قسمت‬‫مربوط‬‫به‬‫پشته‬‫و‬‫اطالعات‬‫ا‬‫ر‬‫در‬‫مکانی‬‫جدای‬‫از‬‫قسمت‬‫کد‬‫ار‬‫ر‬‫ق‬‫می‬‫دهد‬.
-‫فعال‬‫یا‬‫غیرفعال‬‫ی‬‫ساز‬segmentation،‫همانند‬‫تنظیم‬NX (XD)‫انجام‬‫می‬‫شود‬.
-Segmentation،‫ی‬ ‫ش‬‫و‬‫ر‬‫است‬‫که‬‫هرچند‬‫به‬‫تفکیک‬‫ی‬‫پذیر‬NX (XD)‫نیست‬‫ولی‬‫تقریبا‬‫همان‬‫ایی‬‫ر‬‫کا‬
‫ا‬‫ر‬‫د‬‫ر‬‫دا‬(‫تنظیم‬‫ز‬‫مجو‬‫ا‬‫ر‬‫اج‬‫در‬NX (XD)‫ای‬‫ر‬‫ب‬‫هر‬Page‫به‬‫ت‬‫ر‬‫صو‬‫ا‬‫ز‬‫مج‬‫انجام‬‫می‬‫پذیرد‬).
‫اسکی‬ ‫هی‬‫ر‬‫ز‬ ‫منطقه‬
-Exec-shield،‫عالوه‬‫بر‬‫تنظیم‬‫ز‬‫مجو‬‫های‬‫ا‬‫ر‬‫اج‬(‫با‬‫استفاده‬‫از‬NX(XD)‫یا‬Segmentation)،‫با‬
‫شیفت‬‫دادن‬‫فضاهای‬،‫حساس‬‫آنها‬‫ا‬‫ر‬‫به‬‫ن‬‫و‬‫در‬‫منطقه‬‫ای‬‫از‬‫حافظه‬map‫می‬‫کند‬‫که‬‫به‬‫آن‬«‫منطقه‬
‫هی‬‫ر‬‫ز‬‫اسکی‬»(ASCII)‫گفته‬‫می‬‫شود‬.
-‫کلیۀ‬‫س‬‫ر‬‫آد‬‫هایی‬‫که‬‫در‬‫منطقه‬‫هی‬‫ر‬‫ز‬‫اسکی‬‫موجود‬‫می‬،‫باشد‬‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫به‬‫فرم‬‫اسکی‬‫تبدی‬‫ل‬،‫شوند‬
‫ی‬‫حاو‬‫حداقل‬‫یک‬‫اکتر‬‫ر‬‫کا‬‘0’‫می‬‫باشد‬.
-‫اکتر‬‫ر‬‫کا‬0‫به‬‫ر‬‫منظو‬‫خاتمۀ‬‫شته‬‫ر‬‫ها‬‫در‬C‫د‬‫ر‬‫مو‬‫استفاده‬‫ار‬‫ر‬‫ق‬‫می‬‫گیرد‬‫و‬‫این‬‫ر‬‫بناب‬‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫شتۀ‬‫ر‬
‫ار‬‫ر‬‫ق‬‫گیرنده‬‫در‬‫حافظه‬(‫شته‬‫ر‬‫ای‬‫که‬‫موجب‬overflow‫می‬‫شود‬)،‫ی‬‫حاو‬‫این‬‫اکتر‬‫ر‬‫کا‬‫باشد‬(return
address‫که‬EIP‫ا‬‫ر‬‫ی‬ ‫نویس‬‫ز‬‫با‬‫می‬‫کند‬‫ی‬‫حاو‬0‫باشد‬)،‫این‬،‫اکتر‬‫ر‬‫کا‬‫خاتمۀ‬‫شته‬‫ر‬‫ا‬‫ر‬‫اعالم‬‫نموده‬‫و‬‫باق‬‫ی‬
‫شته‬‫ر‬‫در‬‫حافظه‬‫ی‬‫ار‬‫ز‬‫بارگ‬‫نمی‬‫شود‬‫که‬‫در‬،‫نتیجه‬‫اکسپلویت‬‫به‬‫ستی‬‫ر‬‫د‬‫کار‬‫نخواهد‬‫کرد‬.
‫اسکی‬ ‫هی‬‫ر‬‫ز‬ ‫منطقه‬
-‫گترین‬‫ر‬‫بز‬‫فضای‬‫پیوستۀ‬‫حافظه‬‫که‬‫ی‬‫حاو‬‫س‬‫ر‬‫آد‬‫های‬‫هی‬‫ر‬‫ز‬،‫باشد‬‫از‬0x00000000‫تا‬0x0100ffff
‫است‬.
-‫فضای‬،‫ق‬‫فو‬‫حجمی‬‫معادل‬16‫مگابایت‬‫به‬‫اضافۀ‬64‫کیلوبایت‬‫د‬‫ر‬‫دا‬.
-‫در‬‫ایطی‬‫ر‬‫ش‬‫ممکن‬‫است‬‫این‬‫فضا‬‫توسط‬‫نامه‬‫ر‬‫ب‬‫ها‬‫اشغال‬‫شده‬‫و‬‫برنامۀ‬‫جدید‬‫نتواند‬‫در‬‫آن‬‫ار‬‫ر‬‫ق‬‫گ‬‫یرد‬.‫در‬
‫این‬‫ایط‬‫ر‬‫ش‬‫نامه‬‫ر‬‫ب‬‫خارج‬‫از‬‫منطقه‬‫هی‬‫ر‬‫ز‬‫ار‬‫ر‬‫ق‬‫خواهد‬‫گرفت‬.
-‫منطقۀ‬‫هی‬‫ر‬‫ز‬‫اسکی‬‫با‬‫فعال‬‫شدن‬exec-shield‫در‬‫د‬‫ر‬‫مو‬‫ی‬‫باینر‬‫ها‬‫د‬‫ر‬‫مو‬‫استفاده‬‫ار‬‫ر‬‫ق‬‫خواهد‬‫گرفت‬.
exec-shield‫عمل‬‫در‬
‫از‬ ‫استفاده‬‫ن‬‫بدو‬exec-shield‫داش‬‫شدن‬ ‫خوانده‬ ‫قابلیت‬‫که‬ ‫فضاهایی‬‫کلیۀ‬ ،‫ته‬
‫دارند‬‫نیز‬‫ا‬‫ر‬‫اج‬ ‫قابلیت‬،‫باشند‬.
‫از‬ ‫استفاده‬‫ن‬‫بدو‬ ‫پشته‬exec-shield‫دارد‬ ‫ا‬‫ر‬‫اج‬‫مجوز‬ ،.
exec-shield‫عمل‬‫در‬
‫از‬ ‫استفاده‬ ‫با‬exec-shield‫از‬ ‫استفاده‬ ‫با‬،‫ی‬‫ضرور‬‫غیر‬ ‫فضاهای‬NX(XD)‫یا‬
segmentation‫اس‬‫هی‬‫ر‬‫ز‬ ‫منطقه‬‫به‬ ،‫ایی‬‫ر‬‫اج‬ ‫فضاهای‬‫و‬ ‫شده‬ ‫ا‬‫ر‬‫اج‬‫قابل‬‫غیر‬‫کی‬
‫شود‬ ‫می‬ ‫داده‬‫انتقال‬.
exec-shield‫عمل‬‫در‬
-‫ای‬‫ر‬‫ب‬‫تنظیم‬‫فعال‬‫یا‬‫غیر‬‫فعال‬‫بودن‬Exec-shield،‫می‬‫توان‬
/proc/sys/kernel/exec-shield‫ا‬‫ر‬‫به‬‫ان‬‫ز‬‫می‬‫دلخواه‬‫تنظیم‬‫نمود‬:
exec-shield=0:‫ه‬‫ر‬‫هموا‬‫غیر‬‫فعال‬.
exec-shield=1:‫پیش‬‫فرض‬‫غیر‬‫فعال‬‫به‬‫غیر‬‫از‬‫فایلهایی‬‫که‬‫ا‬‫ر‬‫آن‬‫فعال‬‫کنند‬.
exec-shield=2:‫پیش‬‫فرض‬‫فعال‬‫به‬‫غیر‬‫از‬‫فایلهایی‬‫که‬‫ا‬‫ر‬‫آن‬‫غیر‬‫فعال‬‫کنند‬.
exec-shield=3:‫ه‬‫ر‬‫هموا‬‫فعال‬.
-‫ی‬‫باینر‬‫هایی‬‫که‬‫نیاز‬‫به‬‫ای‬‫ر‬‫اج‬‫کد‬‫ن‬‫و‬‫در‬‫پشته‬،‫ند‬‫ر‬‫دا‬‫می‬‫توانند‬‫با‬‫تنظیم‬p_flag‫در‬‫آیند‬‫ر‬‫س‬
PT_GNU_STACK‫این‬‫قضیه‬‫ا‬‫ر‬‫اعالم‬‫نمایند‬.
exec-shield‫عمل‬‫در‬
‫آ‬‫پشتۀ‬‫نتیجه‬ ‫در‬ ‫و‬ ‫داشته‬ ‫پشته‬‫درون‬ ‫کد‬ ‫ای‬‫ر‬‫اج‬‫به‬ ‫نیاز‬ ،‫ها‬ ‫ایی‬‫ر‬‫اج‬ ‫برخی‬‫نها‬
‫اییست‬‫ر‬‫اج‬.
exec-shield‫عمل‬‫در‬
-‫با‬‫استفاده‬‫از‬‫اتی‬‫ر‬‫دستو‬‫نظیر‬execstack‫می‬‫توان‬‫فلگ‬‫ایی‬‫ر‬‫اج‬‫بودن‬‫پشته‬‫ا‬‫ر‬‫در‬‫د‬‫ر‬‫مو‬‫یک‬،‫ی‬‫باینر‬‫تنظ‬‫یم‬‫و‬‫یا‬
‫ی‬ ‫س‬‫ر‬‫بر‬‫نمود‬.
‫بندی‬‫جمع‬exec-shield
-Exec-shield،‫حفاظی‬‫است‬‫که‬‫به‬‫ر‬‫منظو‬‫ی‬‫جلوگیر‬‫از‬‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫مکانهایی‬‫از‬‫حافظه‬‫که‬‫اصول‬‫ه‬‫یچ‬‫کدی‬
‫در‬‫آنجا‬‫ار‬‫ر‬‫ق‬‫نخواهد‬‫گرفت‬‫احی‬‫ر‬‫ط‬‫شده‬‫است‬.
-‫برخی‬‫نامه‬‫ر‬‫ب‬‫ها‬‫که‬‫مند‬‫ز‬‫نیا‬‫ای‬‫ر‬‫اج‬‫کد‬‫در‬‫پشته‬،‫هستند‬‫می‬‫توانند‬‫با‬‫تنظیم‬‫فلگ‬‫های‬ELF،‫خود‬‫این‬‫مسئله‬‫ا‬‫ر‬
‫مشخص‬‫نمایند‬.
-Exec-shield‫ای‬‫ر‬‫ب‬‫دستیابی‬‫به‬‫هدف‬،‫ق‬‫فو‬‫از‬‫سه‬‫تکنیک‬‫استفاده‬‫می‬‫کند‬:
-‫ی‬‫ژ‬‫تکنولو‬NX (XD).
-‫حدود‬‫سگمنت‬.
-‫منطقه‬‫هی‬‫ر‬‫ز‬‫اسکی‬.
‫بندی‬‫جمع‬exec-shield
-‫ی‬‫ژ‬‫تکنولو‬NX (XD)‫مند‬‫ز‬‫نیا‬‫پشتیبانی‬‫سخت‬‫ی‬‫ار‬‫ز‬‫اف‬‫است‬.
-‫در‬‫تی‬‫ر‬‫صو‬‫که‬‫سخت‬‫ار‬‫ز‬‫اف‬(CPU)‫از‬‫این‬‫ی‬‫ژ‬‫تکنولو‬‫پشتیبانی‬،‫نکند‬exec-shield‫از‬‫تکنیک‬segment
limit‫به‬‫ر‬‫منظو‬‫مشخص‬‫نمودن‬‫حدود‬‫ا‬‫ر‬‫اج‬‫استفاده‬‫می‬‫کند‬.
-NX (XD)‫به‬‫دلیل‬‫قابلیت‬‫ل‬‫کنتر‬‫ۀ‬‫ز‬‫اجا‬‫ا‬‫ر‬‫اج‬‫در‬‫سطح‬PAGE،‫نسبت‬‫به‬segment limit‫جحیت‬‫ر‬‫ا‬‫د‬‫ر‬‫دا‬.
-‫منطقه‬‫هی‬‫ر‬‫ز‬،‫اسکی‬‫قسمتی‬‫از‬‫حافظه‬‫می‬‫باشد‬‫که‬exec-shield،‫مکانهای‬‫ایی‬‫ر‬‫اج‬‫ا‬‫ر‬‫به‬‫این‬‫قسمت‬‫انتقال‬
‫می‬‫دهد‬.‫س‬‫ر‬‫آد‬‫های‬‫این‬،‫قسمت‬‫ی‬‫حاو‬‫حداقل‬‫یک‬‫اکتر‬‫ر‬‫کا‬0‫هستند‬.

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Exec-shield