روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ چهار سال از زمان اولین انتشار تحقیق روی دو آسیبپذیریِ سختافزاری در پردازندههای مدرن با نامهای Spectre و Meltdown میگذرد. از آن زمان محققین چند نقص مشابه را نیز که بالقوه قابلیت نشت کردن دادههای محرمانه را دارند کشف نمودند. محققین همچنین نمونههایی از حملات را نشان دادند که در آنها از این آسیبپذیریها استفاده شده بود؛ هرچند بیشترشان بعید است در محیط بیرون استفاده شوند. با ما همراه باشید تا در این مقاله به وضعیت این مشکلات سختافزاری و استفاده احتمالی از آنها برای اجرای حملات روی کسب و کارها بپردازیم.
سویههای مختلف از Spectre
اعلامیه اصلی که آگست 2018 بیرون آمد سه آسیبپذیری را نشان داد: اسپکتر سویهی 1 و سویهی 2 و ملتداون. این آسیبپذیریها چندین وجه اشتراک با هم داشتند:
- اکسپلویت معمولاً شامل اجرای کد آلوده روی سیستم آسیبپذیری میشده است؛ گرچه مزایا کم بوده است. خطرناکترین گزینه حمله از طریق مرورگر است آن هم زمانی که از یک وبپیج آلوده بازدید صورت میگیرد.
- اکسپلویت عملی نیازمند یک سری شرایط است؛ به طور خاص کد اپ مورد حمله باید اجازه نشت داده را بدهد، به آن دستگاه مورد نظر دسترسی داشته باشد که حمله میسر شود.
- خود نشت داده از طریق کانالهای جانبی رخ میدهد. به همین دلیل سرعت نشت داده به شدت پایین است.
- یک حمله موفق ممکن است هرگز هیچ ردی از دسترسی غیرقانونی داده از خود به جای نگذارد.
آخرین بحث همان چیزی بود که به طور دقیق علاقه خاصی را در این کار علمیِ به ظاهر تئوریک ایجاد کرد: در همه موارد محققین سیستم پیشبینی شاخه[1] را اکسپلویت کردند. این مکانیزم بیش از 20 سال پیش معرفی شده است و به شما اجازه میدهد با اجرای مجموعه دستورالعملهایی حتی پیش از درخواست صریح برای اجرایشان از برنامه، عملکرد را تسریع بخشید. اگر پیشبینی درست بود منابع پردازشگر به طور کاراتری استفاده خواهد شد و اگر هم اشتباه بود محسابات براحتی دورانداخته میشوند. POC مخصوص اسپکتر سویه 1 نشان داد پردازنده دادههایی را خواهد خواند که باید دور از دسترس برنامه باشد. این داده در کش ذخیره شده و میتواند از آنجا از طریق کانالهای جانبی بازیابی گردد. این مکانیزم «امن» تلقی میشد زیرا آن «رازِ» به غلط خواندهشده به برنامه منتقل نشده بود اما محققین راههایی برای خوانش غیرمستقیم آن داده نیز پیدا کردند. بعد از انتشار کار روی Spectre و Meltdown چندین آسیبپذیری مشابه دیگر نیز کشف شدند. محققین همچنان به دنبال متودهایی برای استخراج دادههای محرمانه با اکسپلویت آسیبپذیریهای پردازشگرها هستند. جدول خلاصهبندیهای اینتل بیش از 20 مشکل از این جنس را به علاوه آن سه مورد اصلی فهرست کرده است.
روش مبارزه با Spectre
به لحاظ تئوریک، سه راه برای کاهش میزان اکسپلویتپذیریِ یک آسیبپذیری در پردازشگر وجود دارد: فروشندهها میتوانند برای پردازندههای موجود آپدیت میکروکد صادر کنند؛ سیپییوهای جدید را اصلاح کرده یا سعی کنند با آپدیتهای نرمافزاری مشکل را حل کنند. اغلب این کار نیازمند ترکیب آپدیتهای سفتافزار و نرمافزار است. میکروکد جدیدی که برخی از آسیبپذیریها را پوشش دهد از نسل 2013 Haswell برای پردازندههای اینتل موجود بوده است. راهکارهای سختافزار در نسل هشتم پردازندههای اینتل و نیز سیپییوهای Zen 2 شرکت AMD پیادهسازی شدند.
راهکارهای نرمافزاری میتوانند کمی سخت باشند: بعنوان مثال میتوانید به اصلاحات احتمالی در کرنل لینوکس در مقابل سویه 1 و 2 اسپکتر نگاهی بیاندازید. دامنه وسیعی از اقدامات مود بررسی قرار گرفت؛ بسته به اهداف هر سیستم به طور خاص: از جمله غیرفعالسازی کامل اجرای کد حدسی با پیامدهای جدی برای عملکرد سیپییو. برای بیشتر سازمانهایی که مدل تجاریشان به عملکرد سرورها وابسته است، چنین افت عملکردی چشمگیرترین تأثیر روی اقدامات ضداسپکتری خواهد بود. محکزنیِ نسبتاً اخیر روی وبسایت Phoronix–که کارش بررسی عملکرد اپهای مختلف سرور است- نشاندهندهی کاهش 25 درصدی عملکرد است. دلیلش هم این بوده که عملیاتهای پیشگیرانهی ضد اسپکتر در سیستم لینوکس فعال شده بودند.
حملات اجرایی و اثبات مفهومها
علیرغم تعداد زیاد انواع حملات، تهدید سرقت داده که در آن از اسپکتر استفاده شده اشد هنوز در حد تئوری است. گرچه هر پژوهشی در خود برخی کدها را دارد که نشاندهنده نشتی است اما این بدانمعنا نیست که این کد را میتوان برای یک سیستم واقعی به کار برد. محدودیتهای معمول این دموها یا اثبات مفهومها به شرح زیر است:
- اینها نشاندهنده نشت رندوم داده هستند که شاید اصلاً ارزش اجرایی نداشته باشند و فقط اطلاعاتی تصادفی باشند که مهاجم قبلاً بدانها دسترسی نداشته است.
- محققین برای این حمله شرایط ایدهآلی را ساختهاند. برای مثال به سیستم دسترسی نامحدودی داشتند. در این سناریو نیازی به استفاده از متودهای پیچیده استخراج داده نیست.
- نقض داده واقعی را نشان میدهند اما در شرایطی به شدت دور از واقعیت.
تأثیرگذارترین کار تئوریک (از حیث پیامدهای احتمالی) حمله NetSpectre است. محققین تصمیم گرفتند این اکسپلویت ریموت را با استخراج داده در سرعت 15 تا 60 بیت در ساعت نشان دهند. محدودیتهای این حمله آشکار است: نرح پایین انتقال داده، دادههای استخراجشده حاوی حجم بالایی از ترافیک غیرمفید و همچنین کد آسیبپذیر روی سرور مورد حمله است. دو حمله عملی تا حد امکان نزدیک به شرایط ITW سال گذشته نشان داده شدند. در ماه مارس، گوگل مفهوم یک صفحه نشتشده را نشان داد: یک وبپیج که میتواند از رم، داده استخراج کند. در ماه سپتامبر هم حمله Spook.js روی جدیدترین نسخه گوگل کروم (تا زمان نگارش تحقیق: نسخه 92) با محافظت اسپکتر (ایزوله کردن صفحات وبی در پروسههای جداگانه مروگر) دمو شد.
این متود یک سرقت واقعی داده را ممکن ساخته بود: محققین به اطلاعات محرمانه شبکهای اجتماعی دسترسی پیدا کرده بودند؛ همینطور دادههای پسورد منیجر و تصویر آپلودشده توسط یک کاربر در کلودی اختصاصی. اما در تمام این موارد، دادههای موفق باید صفحه آلوده را درست در همان دامنهی واحد میداشتند. برای مثال سرقت پسورد Tumblrشامل آپلود کد آلودهی جاواسکریپت در پیج دیگری روی همان شبکه اجتماعی میشود.
این تهدید چقدر میتواند خطرناک باشد؟
Spook.js با پچ نرمافزاری برای مرورگر گوگلکروم خنثیسازی شد. از این رو در حال حاضر هیچ تهدید فوری برای بهرهبرداری از آسیبپذیریهای Spectre در شرایط واقعی وجود ندارد. همه حملات شناختهشده به شدت پیچیدهاند و مستلزم مهارت بالا از سوی مهاجم. بیشتر اثبات مفهومهای واقعگرایانهتر پچ شدند و حتی بدون پچها هم اکسپلویتشان نیازمند شرایطهایی خاص است. گرچه گزارشات رسانهای در مورد اکسپلویتهای واقعی اسپکتر تأیید نشده است اما فروشندگان امنیتی ابزارهایی را برای شناسایی حملات شناختهشده (محض احتیاط) افزودهاند تا بدینترتیب مکانیزمهای شناسایی بدافزار بتوانند از شرکت شما محافظت کنند. با این وجود، نباید سرسری هم از مقولهی Spectre گذشت: تحقیقات در این زمینه باید ادامه داشته باشد.
احتمال کمی وجود دارد که به مرور زمان بدترین سناریو کشف شود: یک حمله نیازی به نصب بدافزاری که اجازه نشت دادهای را بدهد که هیچ ردی از خود نمیگذارد ندارد. به لحاظ تئوری، این امکان وجود دارد که حملهای هدفدار از آسیبپذیریهای سختافزاری استفاده کند (اگر ارزش دادههای سرقتی آن را توجیه کند). محافظت در برابر چنین ریسکهایی نیازمند سرمایهگذاریهای جدی است؛ این سرمایهگذاریها باید روی شناسایی بردارهای احتمالی حمله انجام شود؛ همینطور توصیههایی از سوی توسعهدهندگان سیستمعامل یا پیادهسازی محافظت حتی به قیمت کاهش جدی راندمان اجرایی. اما از همه مهمتر این است که حتی شرکتهای بزرگ همین که تکیهشان بر نرمافزار، توسعهدهندگان سستم عامل، تولیدکنندگان پردازشگر و راهکارهای امنیتی باشد کفایت میکند.
[1] branch prediction system
منبع: کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.