آیا کامپیوترتان در مقابل آسیب پذیری Spectre و Meltdown مقاوم است؟
چطور بفهمیم کامپیوترمان در مقابل آسیب پذیری Spectre و Meltdown مقاوم است؟
حتماً تا الان اسم دو آسیب پذیری مهم که تمامی چیپ های تولید شده در 20 سال اخیر توسط AMD، Intel و ARM از آنها رنج می برند به نام های Spectre و Meltdown را شنیده اید. این آسیب پذیری اولین بار توسط محققین شرکت گوگل در پروژه صفر گوگل ( Project Zero ) کشف و رسانه ای شد. گوگل در گزارش خود اینگونه بیان کرده است که هر کامپیوتر مدرن از قبیل تلفن همراه، تبلت، کامپیوترهای رومیزی از تمام تولیدکنندگان با هر سیستم عاملی تحت تاثیر این نقص امنیتی خواهد بود. به همین جهت از این آسیب پذیری به عنوان بزرگترین آسیب پذیری کشف شده تاکنون یاد می کنند.
پیش بینی می شود که رفع این نقص به سرعت دستگاه ها در انجام وظایف خاصی تا ۳۰% تاثیر بگذارد. به طوری که هم اکنون بسته های امنیتی ارائه شده آسیب های جدی ای را موجب شده اند. منجمله این آسیب ها می توان به کاهش کارایی و خطای BSOD اشاره نمود. مشکل مذکور موجب شده است که راهی جز تولید CPU های جدید و حذف باگ ها از فرآیند تولید باقی نماند.
حفرههای امنیتی CVE-2017-5753 و CVE-2017-5715 و CVE-2017-5754
ملتداون و اسپکتر در واقع اسم سه نسخه مختلف از یک نوع از آسیبپذیری بوده که در سخت افزار رایانه ها وجود دارند. این نقص امنیتی به هکرها اجازه می دهد تا موانع سخت افزاری بین نرم افزارهای اجرا شده توسط کاربر و حافظه مرکزی کامپیوتر را دور بزنند تا فعالیت های در حال پردازش CPU را سرقت نموده و به اطلاعات در حال پردازش دسترسی پیدا نماید. تا کنون سه نوع مختلف از این نوع آسیبپذیری شناسایی شده است که دو حالت اول را شبح (Spectre) و حالت سوم را ملت داون (Meltdown) نامیده اند:
- Variant 1: bounds check bypass (CVE-2017-5753)
- Variant 2: branch target injection (CVE-2017-5715)
- Variant 3: rogue data cache load (CVE-2017-5754)
نقطه خطر هر سه نسخه از این آسیبپذیری، دسترسی پردازش ها به اطلاعاتی هست که منطقاً اجازه دسترسی به آنها را ندارند. این دسترسی غیرمجاز به اطلاعات توسط اپها، از طریق سوءاستفاده از دو فعالیت معمول پردازشگرهای کامپیوتری برای افزایش سرعت عملکرد کامپیوتر رخ می دهد؛ پردازشگرهای مدرن برای افزایش کارایی از فناوری پیشبینی پرش (branch prediction) و اجرای نظری یا اجرای احتمالی (speculative execution) بهره میبرند. فعالیتهای اجرای احتمالی یا Speculative Execution و ذخیرهسازی در حافظه Cache.
یکی از بنیادیترین بخشهای امنیتی کامپیوترها حافظه حفاظت شده یا Protected Memory است. این حافظه محلی است که نرمافزارها اطلاعات و داده های خصوصیخود را برای کاربر در آن ذخیره میکنند و سیستمعامل هم اطلاعات خصوصی هر نرمافزار را از چشم نرمافزارهای دیگر مخفی میکند. هر وقت پردازشی بخواهد به اطلاعات خصوصی پردازش دیگری دسترسی پیدا کند، اول باید توسط سیستم عامل بررسی شود که آیا این کار مجاز هست یا خیر؟ این فرآیند (پروسه چک کردن) کمی زمانبر است.
تداخل Protected Memory با Speculative Execution و Caching محلی است که مشکل بوجود می آید. وقتی CPU در حال بررسی این موضوع است که آیا یک پروسه اجازه دسترسی به حافظه حفاظت شده را دارد یا خیر. اگر آن پروسه از طریق Speculative Execution به طور محدود شروع به اجرا شدن کند و ممکن است جهت افزایش سرعت عملکرد، CPU بخشی از Protected Memory را در حافظه Cache بارگذاری کند حال اگر در این بین پردازش دیگری قبل از یافتن اجازه دسترسی به Protected Memory، حافظه Cache را مرور کند نمیتواند به آن اطلاعات دسترسی پیدا کند. با این حال CPU درخواست دسترسی پروسه به اطلاعات حفاظت شده را سریعتر از معمول رد میکند. همین اختلاف زمانی در اجازه دسترسی به اطلاعات Protected Memory میتواند به هکر نشان دهد آیا اطلاعاتی از Protected Memory در Cache ذخیره شده یا نه.
نسخه Meltdown از دو مورد دیگر خطرناکتر است چون هکر میتواند با این آسیبپذیری، با یک نرمافزار به تمام اطلاعات محافظت شده نرمافزارهای مختلف دسترسی پیدا کند. مشکل اصلی هم در نحوه عملکرد سختافزاری و نه نرم افزاری چیپهاست. Meltdown بیشتر چیپهای اینتل را تحت تاثیر قرار داده است. اما به دلیل سخت تر بودن سوء استفاده از Spectre نسبت به Meltdown این آسیب پذیری خطر کمتری دارد. تقریبا همه چیپها تحت تاثیر Spectre قرار دارند. در حملات شبح (Spectre) پردازش مورد نظر حمله کننده در لابلای پردازش های فعال سرویس قربانی صورت می پذیرد و بدون جلب توجه وی، اطلاعات محرمانه از کانال جداگانه ای استخراج می شود.
علت اینکه پچهای رفع این آسیبپذیری معمولا سرعت عملکرد کامپیوترها را کاهش میدهند این است که این پچها نحوه کار چیپ در حیطه Speculative Execution و Caching رو تغییر میدهند. یعنی دقیقاً دو مکانیزمی که در اصل برای سریعتر کردن کامپیوترها طراحی شده بودند با این پچهای نرمافزاری اثر خود را از دست می دهند. با وصله های امنیتی نرم افزاری ممکن است شرکت هایی نظیر اینتل و آرم بتوانند تا حدودی جلوی آسیب پذیری Spectre و Meltdown را بگیرند، اما در نهایت این مشکل فقط با جایگزینی سخت افزارهای معیوب با نمونه های جدید بدون این آسیب پذیری حل خواهد شد. بسیاری از وصله های امنیتی که به شکل نرم افزاری تولید شده، شکست خورده اند و ظاهرا این موضوع گسترده تر از چیزیست که به نظر می آید.
چندی پیش نیز اینتل بیان کرد که این مشکل را در سال جاری میلادی به طور کامل برطرف می کند. به گفته اینتل، همکاری این شرکت با شرکای تجاری خود جهت تولید سیلیکون های جدید آغاز شده که یعنی سیلیکون های ساخته شده در سال جاری، فاقد آسیب پذیری Spectre و Meltdown خواهند بود.
نرم افزار InSpectre جهت بررسی وضعیت آسیب پذیری Meltdown و Spectre سیستم
نرم افزار کاربردی با نام InSpectre ارائه شده است که با استفاده از آن می توانید به راحتی بفهمید که کامپیوتر شما در مقابل آسیب پذیری Meltdown و Spectre چه وضعیتی دارد. برای دانلود آخرین نسخه این نرم افزار می توانید به آدرس (https://www.grc.com/inspectre.htm) مراجعه کنید و یا با لینک مستقیم این نرم افزار را از اینجا دانلود کنید.
جالب است بدانید کامپیوتری که الان با آن در حال انتشار این مطلب هستیم هنوز در مقابل Spectre مقاوم نیست چون هنوز میکرو کدهای مربوط به بایوس را روی این سیستم نداریم. به همین علت حتی با وجود نصب Patch امنیتی KB4090007 هم در مقابل این مورد نفوذ پذیر هستیم.
البته باید گفت، CPU هایی که هم اکنون در بازار وجود دارند، دارای این آسیب پذیری نخواهند بود. از اینرو بهتر است به فکر خرید سیستم نو باشیم.
موفق باشید.