نقص موجود در CPUهای شرکت Intel به Attackerها کمک میکند تا از مکانیسم امنیتی موجود در ASLR عبور نمایند.
در CPUهای Haswell ساخت شرکت Intel این امکان وجود دارد که از مکانیسم Branch Target Buffer برای نفوذ به آدرسهای حافظه ASLR سوءاستفاده شود.
طبق یافتههای محققان، میتوان از یکی از ویژگیهای موجود در CPUهای Haswell این شرکت برای عبور از سیستم امنیتی تکنولوژی Anti-Exploitation در تمامی سیستم عاملهای اصلی استفاده نمود.
این تکنیک از سوی سه محقق دانشگاه ایالتی نیویورک در بینگامتون و دانشگاه کالیفرنیا در ریورساید برای کنار گذاشتن ASLR مورد استفاده قرار گرفته و به تازگی در چهل و نهمین سمپوزیوم بینالمللی IEEE/ACM در خصوص Microarchitecture ارائه گردیده است.
ASLR یک مکانیسم امنیتی است که از آن در سیستمعاملها استفاده میشود تا آدرسهای حافظه مورد استفاده توسط فرآیندها را تصادفی نماید؛ انجام این کار باعث میشود که مهاجمان ندانند Shellcodeهای مربوط بهExploit را در چه آدرسی از حافظه وارد کنند.
از ASLR برای جلوگیری از آسیبرسانی باگهای تخریب حافظه نظیر سرریز Stack و Heap که با اجرای کد دلخواه میتواند باعث خرابی شود، استفاده میگردد. در صورت عمل نمودن این آسیبپذیری، کد مخرب باید در قسمتی از حافظه وارد شود که فرآیند Kernel سیستم عامل به عنوان بخشی از عملیات نرمال اجرا میگردد.
طبق یافتههای این سه محقق، Branch Target Buffer یا به اختصار BTB، یک مکانیسم Caching میباشد که توسط Branch Target Predictor در CPU به کار رفته و برای انتشار آدرسهای ASLR از طریق ایجاد رویداد BTB بین فرآیندهای مختلف کاربر و در Kernel مورد استفاده قرار میگیرد. از مکانیسم Branch Prediction به منظور بهینهسازی عملکرد در CPUهای امروزی استفاده میشود.
این محققان اظهار داشتند که BTB آدرسهای مورد نظر از دستورالعملهای اخیر را ذخیره نموده، بنابراین یافتن آدرسها به صورت مستقیم از طریق جستجوی BTB امکانپذیر میشود تا دستورالعملهایی که در مقصد شروع میشوند، در چرخه بعدی آغاز شوند. از آنجاییکه BTB از طریق چندین برنامهی اجرا شده بر روی یک هسته یکسان به اشتراک گذاشته میشود، انتشار اطلاعات از یک برنامه به برنامه دیگر از طریق BTB Side-Channel امکانپذیر میگردد.
محققان امکان عبور ASLR مبتنی بر BTB را در یک کامپیوتر مجهز به Haswell CPU ساخت شرکت Intel که یک Kernel لینوکسی جدید (نسخه 4.5) بر روی آن اجرا شده است را نشان دادهاند. حملات آنها میتواند Kernel ASLR را با استفاده از رویدادهای BTB در مدت زمان حدود 60 میلیثانیه بازیابی نماید.
علاوه بر موارد فوق، عوامل کاهش دهندهی مبتنی بر نرمافزار و سختافزار دیگری نیز ارائه شدهاند که قادرند از حملات Side-Channel مبتنی بر BTB در آینده جلوگیری نموده و یا پیادهسازی حملات به کمک ASLR را دشوارتر نماید.
در حال حاضر مهاجمان به روشهای دیگری برای عبور از ASLR روی آوردهاند که باید آسیبپذیریهای بیشتری در حافظه ایجاد کرده و آن را با نقصهای موجود در حافظه اصلی در کنار هم قرار دهند. به دلیل پیشرفتهای حاصل در حوزه امنیتِ نرمافزار در سالهای اخیر، اکثر حملات اجرای کد به صورت Remote مستلزم استفاده از Exploitهای زنجیرهای میباشند.
افزودن این نکته نیز خالی از لطف نمیباشد که شرکت Intel از ارائه توضیح در مورد این آسیبپذیری سر باز زده و پاسخ صریحی بدان نمیدهد.