آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی

آسیب‌پذیری‌های اجرای گذرای واحد پردازش مرکزی  آسیب‌پذیری‌هایی در سامانه‌های رایانه‌ای هستند که با سوءاستفاده از بهینه‌سازی نظری‌ای که در ریزپردازنده پیاده‌سازی شده‌است، باعث نشت اطلاعات محرمانه به یک شخص غیرمجاز می‌شوند. مثال قدیمی این دسته از آسیب‌پذیری‌ها اسپکتر  است که نام آن هم از روی این نوع حمله کانال جانبی تعیین شده‌است؛ اما از دی ۱۳۹۷ انواع مختلفی از این دسته حملات شناسایی شده‌اند.

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

اگر بخواهیم به‌طور دقیق‌تر بگوییم، مانند آن است که این دستور وهمی هیچ‌گاه اتفاق نیفتاده است. با این حال، این اجرای وهمی می‌تواند حالت اجزائی از ریزپردازنده مانند حافظه نهان  را تغییر دهد و این تغییر می‌تواند با یک پایش  دقیق از زمان‌های اجرای ریز-عملیات‌ها  برای مهاجم عیان شود.

اگر یک مهاجم بتواند کدی که توسط پردازش وهمی اجرا می‌شود را به صورت دلخواه خود مرتب کند (حال چه با اجرای مستقیم دستورهایی که مهاجم به برنامه داده‌است یا با استفاده از گجت‌های  موجود در سامانه مورد هدف) تا با توجه به مقادیر مختلف موجود در یک بخش محرمانه، تاثیرهای متفاوتی بر حالت حافظه نهان برجای گذارد، ممکن است بتواند محتوای این بخش محرمانه را تشخیص دهد.

با شروع از سال ۱۳۹۷ نمونه‌های مختلفی از این نوع آسیب‌پذیری کشف و در انتهای سال ۱۳۹۷ به صورت عمومی منتشر شدند.

 خلاصه آسیب‌پذیری‌ها و روش‌های جلوگیری 
+نوع جلوگیریپیچیدگیتاثیرگذاریاثرات عملکردی پردازشیسخت‌افزارکاملکاملهیچ-کمبه‌روزرسانی ریزبرنامه‌های سفت‌افزارتا حدیتا حدی-کاملکم-زیادسیستم‌عامل/ماشین‌مجازیتا حدیتا حدی-کاملکم-زیادبازسازی نرم‌افزارهاضعیفتا حدی-کاملمتوسط-زیاد

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

+نام آسیب‌پذیری
(نام‌های دیگر)CVEواحد پردازش مرکزی مورد تأثیر و پیشگیری‌هاIntelAMDIce LakeCascade Lake,Comet LakeWhiskey Lake,Amber LakeCoffee Lake(9th gen)Coffee Lake(8th gen)*Zen 1 / Zen 1+Zen 2Spectre v1Bounds Check Bypass2017-5753 colspan="5"  colspan="2" Spectre v2Branch Target Injection2017-5715colspan="2" colspan="2" SpectreRSB/ret2specReturn Mispredict2018-15572 colspan="7" MeltdownRogue Data Cache Load 2017-5754 colspan="4"  rowspan="2"  colspan="2" rowspan="2" Spectre-NG v3a2018-3640 colspan="2"  colspan="2" Spectre-NG v4Speculative Store Bypass2018-3639 colspan="2"  colspan="3" Foreshadow L1 terminal fault , L1TF2018-3615 colspan="4"  colspan="2" rowspan="2" Spectre-NGLazy FP state restore2018-3665 colspan="5" Spectre-NG v1.1Bounds Check Bypass Store2018-3693 colspan="7" Spectre-NG v1.2Read-only Protection Bypass (RPB) colspan="5"  colspan="2" Foreshadow-OS L1 terminal fault  (L1TF)2018-3620 colspan="4" rowspan="3"  rowspan="3"  colspan="2" rowspan="11" Foreshadow-VMM L1 terminal fault  (L1TF)2018-3646RIDL/ZombieLoadMicroarchitectural Fill Buffer Data Sampling (MFBDS)2018-12130RIDLMicroarchitectural Load Port Data Sampling (MLPDS)2018-12127     colspan="2" RIDLMicroarchitectural Data Sampling Uncacheable Memory (MDSUM)2019-11091 colspan="4"  FalloutMicroarchitectural Store Buffer Data Sampling (MSBDS)2018-12126     colspan="2" Spectre SWAPGS2019-1125 colspan="5" RIDL/ZombieLoad v2Transactional Asynchronous Abort (TAA)2019-11135  colspan="4" rowspan="3" RIDL/CacheOutL1D Eviction Sampling (L1DES)2020-0549 rowspan="3" RIDLVector Register Sampling (VRS)2020-0548Load Value Injection (LVI)2020-0551 colspan="4" Take a Way colspan="5"  colspan="2" CROSSTalkSpecial Register Buffer Data Sampling (SRBDS)2020-0543 colspan="2"  colspan="3"  colspan="2" 
نسل هشتم معماری کافی لیک  در جدول بالا، به گسترهٔ وسیعی از واحدهای پردازش مرکزی اینتل که پیش از آن منتشر شده‌اند هم اعمال می‌شود و به معماری‌های مبتنی بر هستهٔ اینتل، پنتیوم ۴  و اینتل اتم  با شروع از Silvermont محدود نمی‌شود. گسترهٔ متفاوتی از ریزمعماری‌های واحد پردازش مرکزی که در جدول بالا به آنها اشاره نشده‌اند هم از این دسته آسیب‌پذیری‌ها در امان نیستند که از این میان می‌توان به پردازنده‌های آی‌بی‌ام پاور ، آرم ، میپس  و دیگر واحدهای پردازش مرکزی اشاره کرد.

 یادداشت 
1.Stepping 5 of the 2nd Generation Intel® Xeon® Scalable Processors based on Cascade Lake microarchitecture is affected by both MSBDS and MLPDS.

 منابع 

 پیوند به بیرون 
 Vulnerabilities associated with CPU speculative execution
 A systematic evaluation of transient execution attacks and defenses
 A dynamic tree of transient execution vulnerabilities for Intel, AMD and ARM CPUs
 Transient Execution Attacks by Daniel Gruss, June 20, 2019
 CPU Bugs
 Intel: Refined Speculative Execution Terminology

رده:آسیب‌های اجرای امنیتی پرمخاطره
رده:اشکال‌های سخت‌افزاری
رده:حمله‌های کانال جانبی
رده:سوءاستفاده امنیتی از رایانه
رده:علوم رایانه در ۲۰۱۸ (میلادی)
رده:معماری اکس۸۶
رده:مقاله‌ها با نحو منسوخ‌شده تصویر