حافظه ECC نسبت به حملات Rowhammer آسیب‌پذیر است

حافظه ECC نسبت به حملات Rowhammer آسیب‌پذیر است

ماژول‌های حافظه با حفاظت ECC یا کد تصحیح‌گر خطا نسبت به حملات Rowhammer آسیب‌پذیرند. حملات Rowhammer حملاتی است که می‌تواند منجر به نقص اطلاعاتی و داده‌ای در تراشه‌های با حافظه موقت در کامپیوتر شود. از زمان کشف این حملات در سال 2014، این حملات روی حافظه‌های (DRAM) موجود در اکثر رایانه‌های موجود در بازار امکان‌پذیر بوده است. تکنیک این حملات از یک نقص در طراحی سلول‌های حافظه‌ای که داده‌ها را در یک ماژول DRAM ذخیره می‌کنند، بهره می‌برد. از آنجایی که این سلول‌ها خیلی نزدیک به یکدیگر هستند، محققان دریافتند که با روش‌هایی مانند عملیات خواندن و نوشتن سریع و پشت سرهم (بمبارانی)، می‌توانند موجب به اصطلاح hammering و کوبیدگی و در نتیجه تغییر اطلاعات حافظه شوند. hammering در یک نقطه به این روش باعث تغییر در مقدار بیت‌های داده‌ها در مجاورت آن نقطه از یک به صفر و بالعکس می‌شود. این اثر به عنوان bit-flipping شناخته می‌شود و می‌تواند به یک مهاجم حداقل شرایط منع سرویس را ایجاد کند. خطرات احتمالی بیشتر ناشی از این نوع حمله می‌تواند شامل افزایش سطح دسترسی در دستگاه و یا هایجک کردن دستگاه باشد. محافظت ECC دارای محدودیت‌های خاصی است. تا همین اواخر، مکانیزم ECC موجود در حافظه‌ها برای سرورها و سیستم‌های مهم و سطح بالا، به عنوان نقش موثر در شناسایی و اصلاح اشتباهات حافظه‌ای تک بیتی و تصادفی ، محافظت خوبی در برابر حملات Rowhammer داشت. اعضای تیم تحقیقاتی VUSec، که یک گروه امنیتی در دانشگاه Vrije در آمستردام هلند است، دریافتند که اگرچه ECC مانع اجرای حملات Rowhammer می‌شود، اما یک مشکل غیرقابل حل است. پس از یک سال آزمایش و بررسی نحوه پیاده‌سازی چند نوع از حفاظت ECC ، این گروه امنیتی توانست جزئیات این مکانیزم را به خوبی درک کند و یک روش دور زدن کارا برای این مکانیزم به نام ECCploit بسازد. ECC می‌تواند تنها یک bit-flip را در یک زمان تصحیح کند و اگر دو مورد bit-flip در یک قسمت حافظه رخ دهد، سازوکار سیستم را خراب می‌کند. تیم VUSec در وبلاگش نوشت: "اگر شما تنها سه bit-flip در مکان‌های مناسب داشته باشید، می‌توانید محافظت ECC را به راحتی دور بزنید و همچنین تاکید می‌شود که برای جلوگیری از حملات Rowhammer حتی نباید دو تا bit-flip هم وجود داشته باشد." چک کردن بیت‌ها تکنیک آنها نیازمند آن است که بیت‌ها در محل کوبیدگی یا hammering و همچنین در منطقه هدف به جز یکی از آنها کاملاً یکسان باشند. این اطلاعات را می‌توان با کشیدن بیتها در یک زمان به دست آورد و اگر زمان لازم برای خواندن از آن مکان خاص افزایش یابد، نشان می‌دهد که اصلاح رخ داده است. این گروه امنیتی اضافه کرد: برای این روش دسترسی فیزیکی لازم نیست زیرا می‌توان از طریق یک شل از راه دور این کار را انجام داد. علیرغم خطر آلودگی سرورها و دستگاه‌ها، اجرای ECCploit می‌تواند بسیار وقت گیر باشد. با توجه به گفته‌های VUSec ، در اجرای مراحل اولیه حمله بین 32 دقیقه تا یک هفته طول می‌کشد تا bit flip های قابل بهره‌برداری پیدا شود. ECCploit نوعی از Rowhammer با زمانبندی کانال جانبی است که در حال حاضر با عنوان CVE-2018-18904 دنبال می‌شود. این کار وقوع حمله را به عنوان یک تهدید احتمالی در نظر می‌گیرد.