نوع جدیدی از حمله Zombieload به پردازنده های اینتل شناسایی شده است
محققان دانشگاه فنی گراتس (اتریش) بدون پوشش اطلاعات در مورد روش جدید حمله از طریق کانال های شخص ثالث Zombie Load 2.0 (CVE-2019-11135) که به شما امکان می دهد اطلاعات محرمانه را از سایر فرآیندها، سیستم عامل، ماشین های مجازی و محیط های محافظت شده (TEE، Trusted Execution Environment) استخراج کنید. این مشکل فقط بر پردازنده های اینتل تاثیر می گذارد. مولفه هایی برای مسدود کردن مشکل پیشنهاد شده در دیروز به روز رسانی میکروکد.
مشکل متعلق به کلاس MDS (Microarchitectural Data Sampling) است و نسخه مدرنیزه شده است منتشر شده در حملات مه ZombieLoad. ZombieLoad 2.0، مانند سایر حملات MDS، بر استفاده از تکنیکهای تحلیل کانال جانبی برای دادهها در ساختارهای ریزمعماری (مثلاً Line Fill Buffer و Store Buffer) متکی است که به طور موقت دادههای مورد استفاده در فرآیند را ذخیره میکنند. انجام عملیات Load و Store) .
نوع جدید حمله Zombieload مستقر در مورد نشتی که در حین کار مکانیسم وقفه ناهمزمان عملیات (TAA، TSX Asynchronous Abort) رخ می دهد، که در پسوند TSX (افزونه های همگام سازی تراکنش) پیاده سازی شده است، که ابزارهایی را برای کار با حافظه تراکنش فراهم می کند، که امکان افزایش عملکرد را فراهم می کند. برنامه های کاربردی چند رشته ای با حذف پویا عملیات همگام سازی غیر ضروری (تراکنش های اتمی پشتیبانی شده که می توانند پذیرفته شوند یا لغو شوند). در صورت وقفه، عملیات انجام شده در ناحیه حافظه تراکنش به عقب بازگردانده می شود.
لغو تراکنش به صورت ناهمزمان اتفاق میافتد و در طول این مدت رشتههای دیگر میتوانند به حافظه پنهان دسترسی داشته باشند که در ناحیه حافظه تراکنشی حذف شده نیز استفاده میشود. در طول زمان از شروع تا تکمیل واقعی یک تراکنش ناهمزمان، ممکن است شرایطی پیش بیاید که در آن پردازنده، در طول اجرای حدس و گمان یک عملیات، بتواند داده ها را از بافرهای ریزمعماری داخلی بخواند و آن را به عملیات گمانه زنی منتقل کند. سپس تداخل شناسایی میشود و عملیات گمانهزنی حذف میشود، اما دادهها در حافظه پنهان باقی میمانند و میتوان با استفاده از تکنیکهای بازیابی حافظه پنهان کانال جانبی آن را بازیابی کرد.
این حمله به باز کردن تراکنشهای TSX و ایجاد شرایطی برای وقفه ناهمزمان آنها خلاصه میشود، که در طی آن شرایط برای نشت محتوای بافرهای داخلی بهطور فرضی پر از دادههای عملیات خواندن حافظه انجامشده در همان هسته CPU ایجاد میشود. این نشت به هسته فیزیکی فعلی CPU (که کد مهاجم روی آن اجرا میشود) محدود میشود، اما از آنجایی که بافرهای ریزمعماری بین رشتههای مختلف در حالت Hyper-Threading به اشتراک گذاشته میشوند، امکان نشت عملیات حافظه انجامشده در رشتههای دیگر CPU وجود دارد.
حمله کنید مشمول برخی از مدل های نسل هشتم، نهم و دهم پردازنده های Intel Core و همچنین Intel Pentium Gold، Intel Celeron 5000، Intel Xeon E، Intel Xeon W و نسل دوم Intel Xeon Scalable. پردازندههای جدید اینتل مبتنی بر ریزمعماری Cascade Lake که در ماه آوریل معرفی شدند و در ابتدا مستعد حملات RIDL و Fallout نبودند نیز مستعد حمله هستند. علاوه بر Zombieload 2.0، محققان همچنین بر اساس استفاده از دستورالعمل VERW برای پاک کردن محتویات بافرهای ریزمعماری هنگام بازگشت از هسته به فضای کاربر یا هنگام انتقال کنترل به فضای کاربر، امکان دور زدن روشهای پیشنهادی قبلی برای محافظت در برابر حملات MDS را شناسایی کردند. سیستم مهمان
گزارش اینتل بیان میکند که در سیستمهایی با بار ناهمگن، توانایی انجام یک حمله دشوار است، زیرا نشت از ساختارهای ریزمعماری تمام فعالیتهای سیستم را پوشش میدهد و مهاجم نمیتواند بر منبع دادههای استخراجشده تأثیر بگذارد. فقط می تواند اطلاعاتی را که در نتیجه نشت ظاهر می شود جمع آوری کند و سعی کند اطلاعات مفید را در بین این داده ها شناسایی کند، بدون اینکه توانایی رهگیری هدفمند داده های مرتبط با آدرس های حافظه خاص را داشته باشد. با این حال، محققان منتشر کردند بهره برداری از نمونه اولیه، در لینوکس و ویندوز اجرا می شود و توانایی استفاده از حمله برای تعیین هش رمز عبور کاربر اصلی را نشان می دهد. شاید انجام یک حمله از یک سیستم مهمان برای جمع آوری داده هایی که در عملیات سایر سیستم های مهمان، محیط میزبان، هایپروایزر و محفظه های SGX اینتل ظاهر می شود.
ساده ترین روش برای مسدود کردن Zombieload 2.0 غیرفعال کردن پشتیبانی TSX در CPU است. راه حل پیشنهادی برای هسته لینوکس شامل چندین گزینه حفاظتی است. گزینه اول پارامتر "tsx=روشن/خاموش/خودکار" را برای کنترل فعال بودن پسوند TSX در CPU ارائه می دهد (مقدار خودکار TSX را فقط برای CPU های آسیب پذیر غیرفعال می کند). گزینه حفاظتی دوم با پارامتر "tsx_async_abort=off/full/full,nosmt" فعال می شود و بر اساس پاک کردن بافرهای ریزمعماری در حین تعویض متن است (پرچم nosmt علاوه بر این SMT/Hyper-Threads را غیرفعال می کند). برای بررسی اینکه آیا یک سیستم مستعد آسیبپذیری است، sysfs پارامتر "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort" را ارائه میکند.