راهکارهای سختافزاری که طی سالهای اخیر برای رفع یک نقص امنیتی مهم تحت عنوان Spectre در پردازندههای اینتل و ARM پیادهسازی شدهاند، کارایی چندان زیادی ندارند. به تازگی محققان یک روش حمله جدید با قابلیت نقض این راهکارهای دفاعی ابداع کردهاند. البته اجرای این روش نیز نیازمند انجام عملیات سخت و پیچیده است.
روش حمله جدید که توسط محققان گروه امنیت شبکه و سیستمهای دانشگاه وریج آمستردام (به اختصار: VUSec) طراحی شده، تحت عنوان Spectre-BHI برای تزریق تاریخچه انشعاب یا Spectre-BHB برای بافر تاریخچه انشعاب نامگذاری شده است. این عناوین توسط اینتل و ARM انتخاب شدهاند. بنا به گفته تیم تحقیقاتی این پروژه: «این روش حمله جدید نسخه توسعهیافته حمله 2017 Spectre است که تحت عنوان Spectre-BTI (تزریق هدف انشعاب) نیز شناخته میشود. نسخه دوم 2017 Spectre میتواند منجر به نشت اطلاعات حساس از فضای حافظه ممتاز هسته سیستمعامل گردد».
اکسپلویت اثبات مفهوم[1] ساخته شده توسط محققان VUSec، با استفاده از یک حساب کاربری غیرممتاز، هش کلمه عبور کاربر ریشه را از فایل /etc/shadow افشا کرد. فایل /etc/shadow یک فایل سیستمی در لینوکس است که فقط حساب کاربری مدیریتی ریشه به آن دسترسی دارد. به عبارتی این اکسپلویت، هسته را ملزم به بارگذاری این فایل در حافظه میکند. این فایل در حالت معمولی در دسترس پردازشهای غیرممتاز قرار ندارد. در نهایت نیز از حمله Spectre-BHI برای دسترسی و افشای محتوای آن استفاده میکند. چنین حملهای یک رخنه امنیتی بسیار مهم در مرزهای امنیتی اساسی سیستم عاملهای نوین محسوب میشود که معمولاً فضای حافظه و برنامههای کاربردی حالت کاربری را از فضای حافظه ممتاز هسته تفکیک میکند.
Spectre چیست؟
Spectre کلاسی از آسیبپذیریهای امنیتی است که برای اولین بار در ژانویه 2017 میلادی افشا شد و منشأ اصلی آن یکی از قابلیتهای مرتبط با کارایی پردازندههای نوین تحت عنوان «اجرای حدسی» است. در این روش، پردازنده پیشبینی میکند که یک نرمافزار در هنگام رسیدن به یک انشعاب شرطی چه مسیر اجرایی را در پیش میگیرد و تلاش میکند تا دستورالعملهای آن مسیر را اجرا نماید. اگر مشخص شود که این پیشبینی صورت گرفته بر اساس الگوریتمهای داخلی کارآمد نبوده، نتایج ذخیره شده در کشهای موقت پردازنده نادیده گرفته میشوند. حملات اجرای حدسی مثل Spectre و سایر حملاتی که پس از آن طراحی شدند، از چنین سازوکاری برای نشت اطلاعات از کشهای موقتی که نقش کانالهای جانبی را دارند، سوءاستفاده میکنند.
بنا به گفته محققان VUSec: «پس از شناسایی حمله Spectre، میتوانستید به راحتی از تزریق هدف انشعاب (BTI یا Spectre-v2) که خطرناکترین نسخه Spectre است، در سطوح امتیاز مختلف سوءاستفاده کنید. برای مثال یک مهاجم userland (اصطلاح userland به کدهایی اشاره دارد که در خارج از هسته سیستمعامل اجرا میشوند) غیرممتاز میتوانست هر هدف انشعابی را برای الگوریتم پیشبینی کننده انشعاب از userland تزریق نموده و هسته را فریب دهد تا در راستای این پیشبینی به محل کد تزریق شده پرش و کد پیدا شده در آنجا را اجرا کند».
فروشندگان نرمافزار مثل گوگل و همچنین توسعهدهندگان هسته لینوکس راهکارهای نرمافزاری خاصی مثل retpoline را برای مقابله با این مخاطرات پیادهسازی کردند. اگرچه این راهکارها کارآمد بودند اما تأثیر منفی بسیار زیادی بر روی کارایی پردازنده داشتند. در نتیجه شرکتهای تولیدکننده پردازنده سازوکارهای دفاعی سختافزاری را پیادهسازی کردند. راهکارهای ارایه شده توسط اینتل و ARM به ترتیب eIBRS و CSV2 نام داشتند.
بر اساس توضیحات محققان VUSec: «این راهکارها پیچیده هستند اما به طور خلاصه الگوریتم پیشبینی کننده در آنها به نوعی سطح امتیازی (کاربر/هسته) را که هدف در آن اجرا شده، دنبال نموده و همانگونه که انتظار میرود اگر هدف متعلق به سطح امتیاز پایینتری باشد، در اجرای هسته مورد استفاده قرار نمیگیرد. به عبارتی محلهای درج کد دلخواه برای تحت اختیار گرفتن جریان کنترل هسته توسط مهاجمان قابل استفاده نخواهند بود)».
مشکل اصلی این است که الگوریتم پیشبینی کننده پردازنده برای انتخاب رکوردهای هدف جهت اجرا، متکی بر یک تاریخچه کامل است و محققان VUSec نیز ثابت کردهاند که امکان مسمومیت این تاریخچه کلی وجود دارد. به عبارتی مهاجمان میتوانستند با استفاده از Spectre v2 اصلی محل کد هدف را تزریق کرده و سپس هسته را فریب دهند تا این کد را اجرا کند اما حمله جدید Spectre-BHI/BHB فقط میتواند هسته را مجبور به پیشبینی اشتباه و اجرای قطعه کدهایی نماید که از قبل در تاریخچه موجود بوده و در گذشته اجرا شده بودند و امکان نشت دادهها توسط آنها وجود دارد.
محققان میگویند: «اگرچه eIBRS و Arm CSV2 از کارایی قابل قبولی برخوردار هستند ولی با توجه به گستردگی میزان سطح حمله، امنیت این راهکارها تا حدودی نقض شده است. امروزه دستیابی به کلیه محصولات قابل سوءاستفاده چندان آسان نیست چون مهاجم نمیتواند هدفهای الگوریتم پیشبینی کننده را به صورت مستقیم در سرتاسر مرزهای ممتاز تزریق کند».
مقابله با آسیبپذیری جدید Spectre-BHI
اینتل مدل امتیاز متقابل آسیبپذیری جدید Spectre-BHI را با کد CVE-2022-0001 و مدل امتیاز یکسان آن را با کد CVE-2022-0002 و شرکت ARM هم هر دو آسیبپذیری را با کد CVE- 2022-23960 دنبال میکنند.
بنا به گفته اینتل: «معمولاً پردازندههای خانواده Atom این شرکت تحت تأثیر این آسیبپذیری قرار دارند. پردازندههای آسیبپذیر ARM هم شامل Cortex-A15، Cortex-A57، Cortex-A72، Cortex-A73، Cortex-A75، Cortex-A76، Cortex-A76AE، Cortex-A77، Cortex-A78، Cortex-A78AE، Cortex-A78C، Cortex-X1، Cortex-X2، Cortex-A710، Neoverse N1، Neoverse N2 و Neoverse V1 هستند».
هر دو شرکت توصیه نامههایی منتشر نموده و قصد ارایه راهکارهای نرمافزاری برای رفع این مشکل را دارند». ARM پنج نوع راهکار نرمافزاری مختلف برای سیستمهای متفاوت منتشر کرده است.
محققان VUSec برای اکسپلویت لینوکس، از فناوری eBPF استفاده نمودند. فناوری که از نسخه 4.4 این سیستم عامل منتشر شده است و قابلیت اجرای نرم افزارهای سندباکس شده در هسته سیستم عامل را دارد. اگرچه eBPF علت اصی این نشت داده ای نیست، اما محققان معتقدند این امکان کمک زیادی به اجرای حملات حدسی و سایر حملات میکند. از این روز توصیه کرده اند، که این قابلیت غیرفعال شده و سایر توزیع های لینوکسی هم شروع به غیر فعال سازی این قابلیت در حالت پیش فرض نموده اند.
[1] اکسپلویت اثبات مفهوم (PoC): یک حمله غیر مضر علیه یک کامپیوتر یا شبکه است. سوء استفاده های PoC برای ایجاد آسیب نیست، بلکه برای نشان دادن ضعف های امنیتی در نرم افزار است. شناسایی مسائل به شرکت ها اجازه می دهد تا آسیب پذیری ها را اصلاح کنند و از خود در برابر حملات محافظت کنند.
اخبار امنیت اطلاعات را در فراست دنبال کنید.
منبع: csoonline