مولفه BTB پردازنده‌ها آسیب‌پذیر است
پردازنده‌های هازول مکانیزم امنیتی ASLR را قربانی کردند
گروهی از پژوهشگران دانشگاهی علوم کامپیوتر موفق به شناسایی راهکاری شدند که به آن‌ها اجازه می‌دهد مکانیزم محافظتی فضای آدرس‌دهی تصادفی ALSR (سرنام Address Space Layout Randomization) را با بهره‌گیری از مولفه (BTB) سرنام Branch Target Buffer دور بزنند. مولفه BTB در بیشتر معماری‌‌های متعلق به پردازنده‌های مدرن منجمله هازول اینتل وجود دارد. با این وجود پژوهشگران از این پردازنده در آزمایش خود استفاده کردند.

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

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

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

رخنه‌ای پایدار در مولفه BTB

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

پژوهشگران اعلام داشته‌اند که مولفه BTB در برابر حمله تصادم (collision attacks) آسیب‌‌پذیر است. تصادم تکنیکی در حملات کامپیوتری است که در آن BTB با داده‌های تصادفی در معرض حمله قرار گرفته و به این شکل به هکرها اجازه می‌دهد به داده‌هایی که در گذشته در بافر ذخیره شده‌اند دست پیدا کنند. این تکنیک به پژوهشگران اجازه می‌دهد به بازیابی داده‌هایی از کرنل پردازنده بپردازند که جداول شاخص‌گذاری ASLR را درون خود نگه‌داری می‌کند. به‌طوری که در نهایت به هکرها اجازه می‌دهد به راحتی به آدرسی که برنامه در آن نقطه از حافظه اصلی اجرا شده است، دست پیدا کرده و در ادامه به راحتی قادر باشند حمله خود را پیاده‌سازی کنند.

نکته جالب توجه دیگری که در ارتباط با این حمله باید به آن اشاره کرد به سرعت بسیار بالای این حمله باز می‌گردد. به طوری که فرآیند دور زدن مکانیزم امنیتی ASLR تنها در  60 میلی‌ثانیه انجام می‌شود. برای پیاده‌سازی این حمله به نرم‌افزار ویژه‌ای نیاز است که این گروه از پژوهشگران آن‌را فقط روی ماشین‌های لینوکسی که مجهز به پردازنده هازول بودند آزمایش کردند. پژوهشگران اعلام داشته‌اند که به لحاظ تئوری امکان پیاده‌سازی موفقیت‌آمیز این حمله روی سیستم‌عامل‌های دیگر دور از انتظار نیست. به‌طوری که حتا هسته ماشین‌‌های مجازی (Kernel Virtual Machines) که ستون فقرات سیستم‌عامل‌های استقرار یافته در سرویس‌های کلاود به شمار می‌روند در معرض این تهدید قرار دارند. سه تن از این پژوهش‌گران این تحقیق پیشنهاد کرده‌اند، ساده‌ترین راهکار برای پیشگیری از بروز حمله فوق این است که سازندگان سیستم‌عامل‌ها مکانیزم محافظتی ASLR را به جای آن‌که در سطح اشیا داده‌ای پیاده‌سازی کنند در سطح توابع کد شده پیاده‌سازی کنند.

برچسب: