آسیب‌پذیری‌های سخت‌افزاری CPU در سال 2019

18 دی 1397 آسیب‌پذیری‌های سخت‌افزاری CPU در سال 2019

روابط عمومی شرکت ایدکو (توزیع کننده محصولات کسپرسکی در ایران)؛ در سی و پنجمین "کنگره‌ی ارتباطات هرج و مرج"[1]- درست یک سال بعد از اولین خبر منتشر شده مبنی بر آسیب‌پذیری‌های سخت‌افزاری CPU با عنوان‌های  Meltdown و Spectre- گروهی از محققین دانشگاه فناوری Graz در اتریش در مورد وضعیت فعلی اقدامات پیرامون این آسیب‌پذیری‌ها سخنرانی‌هایی را ارائه دادند. اینطور که پیداست، سال 2018 پرده از خیلی چیزها برداشته است.  

گریزی به Meltdown و Spectre

ابتدا بگذارید کمی از ماهیت این دو آسیب‌پذیری سخت‌افزاری و تفاوت‌هایشان با یکدیگر برایتان بگوییم.

دلیل پیدا شدن آسیب‌پذیری Meltdown این است که سی‌پی‌یوهای مدرن می‌توانند عملیت‌های خارج از نوبت[2] را نیز اجرا کنند. این، ویژگی بسیار کار راه‌اندازیست که موجب تسریع پردازش کد می‌شود اما در برخی موارد، سی‌پی‌یو کدی را که در معرض خطاست پردازش می‌کند؛ کدی که در واقع اصلاً نباید اجرا شود چه برسد به پردازش. و آن زمان است که کاشف به عمل می‌آید عملیات ناقص است- چنین شرایطی دقیقاً به دلیل اجرای خارج از نوبت عملیات‌ها پیش می‌آید.

البته، نتایجِ چنین عملیات‌هایی هیچگاه لو نخواهد رفت و یا به جایی انتقال داده نخواهد شد؛ با این حال در سطح ریزساختاری[3]آثاری از خود به جای خواهند گذاشت- در ذخیره‌ی پنهان CPU. در حقیقت این نتایج را می‌توان از ذخیره‌ی پنهان سی‌پی‌یو استخراج نمود.

ماجرا از این قرار است: ممکن است برنامه‌ای برای دسترسی به اطلاعات داخل ذخیره‌گاه درخواست بدهد- که اصولاً سیستم به این درخواست، چنین پاسخی می دهد: دسترسی به دلیل نبود مجوز ممنوع است؛ اما پسورد به دلیل اجرای خارج از نوبت عملیات‌ها، همچنان در cache به سر خواهد برد و از آنجا می‌تواند براحتی رصد شود.

آسیب‌پذیری Spectre نیز عملکردی مشابه با Meltdown دارد، گرچه همچنین به تسریع رایانش CPU نیز مرتبط است. در اصل، یک سی‌پی‌یو می‌تواند (به طور نسبتاً دقیقی) پیش‌بینی کند که چون معمولاً عملیات B از پی عملیات A می‌آید می‌تواند عملیات B را پیش از اینکه نتایج A واضح شود اجرا کند. اگر حدس درست بود و عملیات B عملیات A را دنبال کرد، پس یعنی وضعیت سفید است و چنانچه نتایج A نشان داد CPU می‌بایست به جای عملیات B، عملیات C را انجام می‌داده، سی‌پی‌یو همان لحظه پرش[4] B را رها کرده و برای تکمیل عملیات C به پرش C تغییر مسیر می‌دهد. پیش‌بینی‌کننده‌ی پرش[5]، تربیت‌پذیر است و در اکثر مواقع الگوهای متوالی عملیات‌ها را به خاطر می‌سپارد،  بنابراین عملکرد سی‌پی‌ را بسیار ارتقا می‌بخشد. پیامدها برای هر دوی این آسیب‌پذیری‌ها یکسان است: آن‌ها دری را برای دسترسی غیرقانونی به اطلاعات می‌گشایند.

2019:  انواع و اقسام جدیدی از آسیب‌پذیری‌های Meltdown و Spectre

در پی کشف اولین آسیب‌پذیری‌های Meltdown و Spectre محققین شروع به بررسی بیشتر روی این موضوع کردند و خیلی زود به وجود مشکلاتی مشابه (با تفاوت‌های جزئی) پی بردند: توسعه‌دهندگان CPU همچنین بهینه‌سازی‌های دیگری را نیز به کار می‌بندند که در نهایت به آسیب‌پذیری‌های شبه Meltdown یا Spectre منتج می‌شود. تیم دانشگاه Graz به وجود 14 آسیب‌پذیری شبه Meltdown و 13 آسیب‌پذیری  Spectre اشاره کرده است.

 

 

از اینها گذشته، گرچه آن اوایل شرکت AMD ادعا می‌کرد سی‌پی‌یوهایش در معرض آسیب‌پذیری‌های درجه‌ی  Meltdown قرار نمی‌گیرند اما محققین نوعی از  Meltdown را در سی‌پی‌یوهای ساخت  AMD (به نام Meltdown-BR) پیدا کردند. بنابراین، CPU‌های سه فروشنده‌ی بزرگ سی‌پی‌یو در جهان (یعنی AMD، ARM و  Intel) در معرض آسیب‌پذیری‌های Meltdown و Spectre قرار دارند. در نظر داشته باشید که شاید نوع اصلی این دو آسیب‌پذیری‌ در آن‌ها دیده نشود اما ممکن است طیف‌های دیگری از این دو در میان آن‌ها روئت گردد. ژانویه 2018 شرکت‌ها شروع به عرضه‌ی وصله‌هایی برای ریزبرنامه‌سازی‌های[6] سی‌پی‌یو، سیستم‌عامل‌ها و برنامه‌های مجزا کردند و سعی داشتند تا حدی جلوی چنین مسائلی (که ممکن است آزاردهنده باشد) را بگیرند. متأسفانه Spectre و Meltdown آسیب‌پذیری‌های سخت‌افزاری هستند و تنها می‌توان آن‌ها در سطح سخت‌افزاری پاک کرد. با این تفاسیر نمی‌توان با وصله‌ها/پچ‌های نرم‌افزاری آن‌ها را تماماً معالجه نمود.

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

 

 

آینده‌ی Spectre و Meltdown

در اکتبر 2018، شرکت اینتل اعلام کرد سی‌پی‌یوهای جدیدش (نسل جدید CPUهایش که قرار است در سال 2019 رونمایی شوند) از قابلیت جدیدی برخوردارند که از آسیب‌پذیری‌های سطح Spectre و Meltdown جلوگیری می‌کند (منظور تنها دو مدل پایه‌ای و اصلیِ این نوع آسیب‌پذیری‌هاست). شرکت  AMD همچنین در نظر دارد برای یکی از متغیرهای Spectre در نسل جدید پردازشگرهای Zen 2 خود (که قرار است در سال 2019 عرضه شود) پچ ارائه دهد. شرکت ARM نیز وعده‌ی آپدیت‌های سخت‌افزاری داده است: «قرار است در آینده، همه‌ی سی‌پی‌یوهای ساخت این شرکت در مقابل حملات نوع Spectre مقاوم باشند».

این می‌تواند برای کسانی که می‌خواهند در آینده دستگاه‌های جدید خریداری کنند خبر بسیار خوشحال‌کننده‌ای باشد. و برای آن دسته از افرادی که در سال 2018 یا قبل‌تر اقدام به خرید کامپیوتر، اسمارت‌فون و یا دیگر دستگاه‌هایی کردند که در آن‌ها سی‌پی‌یوهای شرکت‌های Intel، AMD یا ARM به کار رفته است می‌بایست تقریباً برای همه‌‌چیز پچ نصب کنند که البته همانطور که گفتیم این کار، سرعت دستگاه را به شدت پایین می‌آورد. تولیدکنندگان سی‌پی‌یو مدت‌هاست که تنها به خاطر پایین نیامدن عملکرد دستگاه، اعتنایی به آسیب‌پذیری‌های سخت‌افزاری نمی‌کنند؛ نتیجه می‌گیریم که حتی  این بهینه‌سازی‌ها نیز خود بهایی دارند و بهایشان هم کند شدن عملکرد سیستم است. حال شما بگویید سیستمی پرسرعت با آسیب‌پذیری یا سیستمی کند عاری از هر گونه آسیب پذیری؟

 

[1] Chaos Communications Congress

[2] Out-of-order execution 

[3] Microarchitecture

[4] Branch

[5]  Branch predictor

[6] microcodes

 

منبع: کسپرسکی آنلاین (ایدکو)

کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکی، کسپراسکای، و یا کاسپراسکای نیز می‌شناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکي نام دارد.