موضوع مقاله: آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی | مقدمه: آسیب‌پذیری‌های اجرای گذرای واحد پردازش مرکزی آسیب‌پذیری‌هایی در سامانه‌های رایانه‌ای هستند که با سوءاستفاده از بهینه‌سازی نظری‌ای که در ریزپردازنده پیاده‌سازی شده‌است، باعث نشت اطلاعات محرمانه به یک شخص غیرمجاز می‌شوند. | ## بخش 1: آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی | مثال قدیمی این دسته از آسیب‌پذیری‌ها اسپکتر است که نام آن هم از روی این نوع حمله کانال جانبی تعیین شده‌است؛ اما از دی ۱۳۹۷ انواع مختلفی از این دسته حملات شناسایی شده‌اند. نگاه کلی رایانههای امروزی بسیاری از کارهای خود را به صورت موازی انجام می‌دهند و از واحدهای پیچیده‌ای با سرعت پردازشی متفاوت تشکیل شده‌اند. این تفاوت در سرعت پردازشی باعث شده‌است تا برخی از اجزای رایانه برای انجام کارهای خود، نیاز به نتیجهٔ محاسبات بخش دیگری داشته باشند. اگر یک پردازش (مانند یک انشعاب ) برای انجام کار خود نیازمند نتیجهٔ یک پردازهٔ دیگر که سرعت کم‌تری دارد (مانند خواندن از حافظه) داشته باشد که هنوز تکمیل نشده‌است، ریزپردازنده ممکن است اقدام به پیش‌بینی نتیجهٔ این پردازش کرده و ادامهٔ عملیات دوم را به صورت وهمی با فرض درست بودن این انشعاب انجام می‌دهد. وقتی که پردازهٔ کندتر واقعاً کار خود را به اتمام رساند، ریزپردازنده پیش‌بینی خود را با نتیجهٔ واقعی عملیات مقایسه می‌کند. | ## بخش 2: آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی | اگر این پیش‌بینی درست بود، محاسباتی را که به صورت وهمی انجام داده‌است ادامه می‌دهد و اگر پیش‌بینی اشتباه بود، مجدداً ادامهٔ پردازش را با استفاده از نتایج واقعی عملیات کندتر انجام می‌دهد و پردازش‌های وهمی خود را بازگردانی می‌کند. به‌طور دقیق‌تر، یک دستور گذرا دستوری است که همراه با یک خطا از سوی پردازش‌گر پردازش شده‌است (به عنوان مثال در حملهٔ اسپکتر پیش‌بینی نادرست انشعاب خطای پردازش‌گر است) و می‌تواند با تأثیر بر ریز-معماری پردازش‌گر، حالت معماری پردازش‌گر را بدون برجا گذاشتن ردی از اجرای آن نمایان کند. اگر بخواهیم به‌طور دقیق‌تر بگوییم، مانند آن است که این دستور وهمی هیچ‌گاه اتفاق نیفتاده است. با این حال، این اجرای وهمی می‌تواند حالت اجزائی از ریزپردازنده مانند حافظه نهان را تغییر دهد و این تغییر می‌تواند با یک پایش دقیق از زمان‌های اجرای ریز-عملیات‌ها برای مهاجم عیان شود. اگر یک مهاجم بتواند کدی که توسط پردازش وهمی اجرا می‌شود را به صورت دلخواه خود مرتب کند (حال چه با اجرای مستقیم دستورهایی که مهاجم به برنامه داده‌است یا با استفاده از گجت‌های موجود در سامانه مورد هدف) تا با توجه به مقادیر مختلف موجود در یک بخش محرمانه، تاثیرهای متفاوتی بر حالت حافظه نهان برجای گذارد، ممکن است بتواند محتوای این بخش محرمانه را تشخیص دهد. | ## بخش 3: آسیب‌پذیری اجرای گذرای واحد پردازش مرکزی | با شروع از سال ۱۳۹۷ نمونه‌های مختلفی از این نوع آسیب‌پذیری کشف و در انتهای سال ۱۳۹۷ به صورت عمومی منتشر شدند. خلاصه آسیب‌پذیری‌ها و روش‌های جلوگیری +نوع جلوگیریپیچیدگیتاثیرگذاریاثرات عملکردی پردازشیسخت‌افزارکاملکاملهیچ-کمبه‌روزرسانی ریزبرنامه‌های سفت‌افزارتا حدیتا حدی-کاملکم-زیادسیستم‌عامل/ماشین‌مجازیتا حدیتا حدی-کاملکم-زیادبازسازی نرم‌افزارهاضعیفتا حدی-کاملمتوسط-زیاد روش‌های سخت‌افزاری نیاز به تغییر در طراحی واحد پردازش مرکزی دارند و به همین دلیل نیاز است تا منتظر نسل بعد از سخت‌افزارها بمانیم، با این حال تقریباً تأثیری برروی کارایی سامانه برجای نمی‌گذارند. به‌روزرسانی ریزبرنامه‌ها، برنامه‌ای که واحد پردازش مرکزی بر روی آن در حال اجراست را تغییر می‌دهد و نیاز است تا به ازای هر زوج سیستم‌عامل و واحد پردازش مرکزی، یک وصله منتشر و با سامانه یکپارچه شود. پیشگیری‌های مبتنی بر سیستم‌های عامل و ماشین‌های مجازی در سطح سیستم‌عامل یا لایهٔ ماشین مجازی اعمال می‌شود و بسته به میزان بار وارد بر این بخش از سیستم‌عامل، می‌تواند تأثیر زیادی در کاهش کارایی سامانه داشته باشد. بازسازی نرم‌افزارها نیاز به دوباره‌سازی همه‌ی بخش‌های برنامه دارد و معمولاً تأثیر نامطلوبی بر کارایی سیستم اعمال می‌کند. | ## جمع‌بندی | گسترهٔ متفاوتی از ریزمعماری‌های واحد پردازش مرکزی که در جدول بالا به آنها اشاره نشده‌اند هم از این دسته آسیب‌پذیری‌ها در امان نیستند که از این میان می‌توان به پردازنده‌های آی‌بی‌ام پاور ، آرم ، میپس و دیگر واحدهای پردازش مرکزی اشاره کرد.