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

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

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

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

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

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

## خلاصه آسیب‌پذیری‌ها و روش‌های جلوگیری

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

نسل هشتم معماری کافی لیک  در جدول بالا، به گسترهٔ وسیعی از واحدهای پردازش مرکزی اینتل که پیش از آن منتشر شده‌اند **هم** اعمال می‌شود و به معماری‌های مبتنی بر هستهٔ اینتل، پنتیوم ۴  و اینتل اتم  با شروع از 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

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