Rowhammer

در هفته گذشته، ما در مورد اولین حمله Rowhammer مبتنی بر شبکه گزارش کردیم که Throwhammer نامیده می‌شد و شامل بهره‌برداری از یک آسیب‌پذیری شناخته‌شده در DRAM از طریق کارت‌های ‌شبکه با استفاده از کانال‌های دسترسی مستقیم به حافظه (RDMA) بود[۱].

بااین‌حال، یک تیم جداگانه از محققان امنیتی اکنون تکنیک دوم Rowhammer مبتنی بر شبکه را کشف کردند [۲] که می‌تواند برای حمله به سیستم‌ها با استفاده از حافظه‌های بدون cache و یا flush instruction در هنگام پردازش درخواست‌های شبکه استفاده شود.

این تحقیق توسط محققانی که آسیب‌پذیری‌های Meltdown و Specter را کشف کرده بودند[۳]، منتشر شد. این محققان مستقل از آمستردام هستند و مجموعه‌ای از حملات Rowhammer ازجمله Throwhammer را در هفته گذشته منتشر کردند.

Rowhammer یک مشکل حیاتی در تراشه‌های نسل اخیر حافظه RAM با قابلیت دسترسی مجدد (DRAM) است [۴] که در آن دسترسی مکرر به یک ردیف حافظه می‌تواند باعث ایجاد bit flipping در یک ردیف مجاور شود، به‌طوری‌که به مهاجمان اجازه می‌دهد تا محتویات حافظه را تغییر دهند.

از آن زمان به بعد به چندین روش مختلف، از این مسئله برای افزایش امتیاز مهاجم به سطح هسته بهره‌برداری شد[۵] که منجر به دستیابی به اجرای کد از راه دور بر روی سیستم‌های آسیب‌پذیر شد، اما در این روش مهاجم نیاز به دسترسی به سیستم قربانی دارد.

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

این باعث می‌شود که تعداد زیادی از حافظه‌ها به مجموعه‌ای مشابه از مکان‌های حافظه دسترسی پیدا کنند که درنهایت موجب اشتباهات اختلال در DRAM می‌شود و باعث flipping مقدار بیت DRAM به‌طور سهوی می‌شود.

پس‌ازآن فساد اطلاعات حاصل می‌تواند توسط مهاجم دست‌کاری شود تا کنترل سیستم قربانی را به دست آورد.

در مقاله نوشته‌شده توسط محققان آمده است[۶]: “برای mount کردن یک حمله Rowhammer، دسترسی به حافظه باید به‌طور مستقیم توسط حافظه اصلی صورت گیرد. بنابراین، مهاجم باید مطمئن شود که داده‌ها در حافظه cache ذخیره نمی‌شوند.”

ازآنجاکه caching، یک حمله را دشوار می‌کند، محققان روش‌هایی را توسعه دادند که به آن‌ها اجازه می‌داد تا cache را دور بزنند و به‌طور مستقیم به DRAM حمله کنند تا موجب درگیری ردیف(۱) در سلول‌های حافظه‌ی موردنیاز برای حمله Rowhammer شوند.

محققان NetHammer را برای سه تکنیک دور زدن cache مورد آزمایش قرار دادند:

  • یک راننده هسته(۲) که هر بار که یک بسته دریافت می‌شود، یک آدرس را flush و بارگذاری(۳) مجدد می‌کند.
  • پردازنده‌های Xeon اینتل با Intel CAT برای خروج(۴) سریع cache
  • حافظه unchached بر روی یک دستگاه تلفن همراه مبتنی بر ARM

محققان نشان دادند که هر سه روش سناریو قابل انجام است.

در پیاده‌سازی تجربی، محققان توانستند به‌طور موفقیت‌‌آمیز در هر ۳۵۰ میلی‌ثانیه یک bit flip را توسط ارسال یک جریان از بسته‌های UDP تا ۵۰۰ مگابیت بر ثانیه به سیستم هدف، تحریک(۵) کنند.

ازآنجایی‌که روش حمله Nethammer برخلاف یک حمله معمولی Rowhammer به هیچ کد حمله‌ای  نیاز ندارد، به‌عنوان‌مثال، هیچ کنترل کدی توسط مهاجم بر روی سیستم صورت نمی‌گیرد، اکثر اقدامات متقابل از این حمله جلوگیری نمی‌کنند.

ازآنجاکه Rowhammer از نقص یک سخت‌افزار کامپیوتر بهره‌برداری می‌کند، هیچ وصله نرم‌افزاری نمی‌تواند این مشکل را کاملاً حل کند. محققان معتقدند تهدید Rowhammer نه‌تنها واقعی است بلکه دارای پتانسیل ایجاد یک آسیب شدید است.

برای جزئیات بیشتر در مورد این روشِ جدید حمله، می‌توانید به مقاله با عنوانNethammer: Inducing Defective Rowhammer Through Requests Network، که توسط محققان در اوایل هفته جاری منتشر شده است، مراجعه کنید [۶].

منابع

[۱] https://apa.aut.ac.ir/?p=4276

[۲] https://thehackernews.com/2016/10/root-android-phone-exploit.html

[۳] https://apa.aut.ac.ir/?p=4126

[۴] https://thehackernews.com/2015/03/dram-rowhammer-vulnerability.html

[۵] https://apa.aut.ac.ir/?p=3397

[۶] https://arxiv.org/pdf/1805.04956.pdf

[۷] https://thehackernews.com/2018/05/remote-rowhammer-attack.html


(۱) row conflicts
(۲) kernel driver
(۳) reload
(۴) eviction
(۵) induce