Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • نگاهی به حمله RowPress روی DRAM
  • آسیب پذیری امنیتی
  • اخبار
  • اینترنت اشیاء
  • مقالات

نگاهی به حمله RowPress روی DRAM

On مرداد 9, 1402مرداد 9, 1402
seyyid
Share
زمان مطالعه: 7 دقیقه

در این پست به بررسی گزارش کسپرسکی در خصوص یه حمله جدید، روی تراشه های DRAM پرداختیم که میتونه ، کامپیوترهای شخصی ، سرورها و گوشی ها رو تحت تاثیر قرار بده. این متد جدید RowPress هستش و کل کاری که میکنه اینه که عمل hammering رو روی، یه ردیف از DRAM به دفعات زیاد تکرار میکنه که منجر به bitflip در ردیف های نزدیک به هم از لحاظ فیزیکی میشه. تکنیک ایده جدیدی نیست و تقریبا مشابه تکنیک RowHammer هستش، اما تکنیک RowPress موثرتره.

قبل از پرداختن به خود تکنیک، ابتدا نیاز هستش که با یسری مفاهیم آشنا بشیم.

DRAM یا Dynamic random access memory، نوعی از حافظه نیمه رسانا هستش که معمولا برای اجرای داده ها و کدهای برنامه در پردازنده کامپیوتر، استفاده میشه. بطور خلاصه تر یه جور رم هستش که به جای ترانزیستور از خازن برای ذخیره و تبادل داده ها استفاده میکنه.

منظور از bitflip ، رخدادی هستش که منجر به تغییر بیت های ذخیره شده در دستگاههای الکترونیکی میشه، یعنی بیت 1 به صفر تبدیل میشه و برعکس.

برای اینکه مفهوم hammering رو متوجه بشیم، باید بدونیم که رم چطوری کار میکنه.

 

طرز کار رم :

تراشه های رم ، هیچ وقت زیاد قابل اعتماد نبودن. هر تراشه رم، از یسری سلول حافظه تشکیل شده. به زبان ساده تر هر سلول حافظه که یه بیت اطلاعات داخلشون ذخیره میشه، یه باتری مینیاتوریه. اگه شارژر رو به این باتری وصل کنیم و اونو شارژ کنیم، یک رو داخلش نوشتیم و اگه از شارژر دربیاریمش، صفر نوشتیم. در حقیقت عمل شارژ و دشارژ ، مشخص کننده 1 و 0 هستش. این عمل یک و صفر، میلیونها بار در ثانیه رخ میده.

در ریزتراشه های مدرن، این سلولها به میزان خارق العاده ای بطور متراکم کنار هم قرار گرفتن، بطوریکه میلیاردها از اونها روی یه کریستال به اندازه ناخن انگشت میشه.

با این بروزرسانی سلولها و کوچکتر شدن قطعات الکترونیکی، احتمال خرابی وجود داره و این باتری های مینیاتوری ممکنه شارژ نگه نداره و تبدیل به صفر بشه. این خرابی ها گاهی اوقات توسط عوامل خارجی مانند گرما یا پرتوهای کیهانی ایجاد میشن.

اما اینجور خرابی ها، منجر به خطاهای بحرانی میشه. مثلا فرض کنید که یه برنامه ای ، یه آدرسی رو در رم ذخیره کرده و برنامه در صورتی که یسری شرایط رخ بده مثلا شرایطی که در یه دستور if تعریف شدن، به این آدرس دسترسی پیدا میکنه. اگه تعدادی از بیتهای این آدرس ، دچار bitflip بشه، یعنی صفر و یک ها جابه جا بشن، بنابراین عملکرد کد شما دچار اختلال میشه و معلوم نیست چیرو اجرا میکنه.

برای اینکه جلوی اینجور خرابی ها رو بگیرن، تکنولوژی های مختلفی وجود داره مثلا یه بروزرسانی اجباری از محتویات سلولهای حافظه که بصورت خوندن و نوشتن متوالی اطلاعات، حتی اگه برنامه یا CPU بهش نیاز نداشته باشه که بهش Memory refresh میگن، انجام میشه.

سلولهای حافظه بصورت ماتریکسی در کنار هم قرار میگیرن ، که در شکل زیر به رنگ آبی مشخص شده و از طریق ردیف ها و ستون ها آدرس دهی میشن. آدرس حافظه ای که به این ماتریکس داده میشه، شامل آدرس ردیف و ستون هستش و توسط دیکدر سطر و ستون، دیکد میشن که در شکل زیر با رنگ سبز مشخص شدن. یعنی یه آدرس میگیره، اول میره ردیفش و بعد ستونش. بعد از اینکه آدرس ردیف ، یه ردیفی رو برای خوندن انتخاب کرد یا به اصطلاح، اون ردیف رو فعال کرد، بیت های همه سلولهای اون ردیف به sense amplifier منتقل میشن که یه بافر ردیف رو تشکیل میده. خود sense amplifier برای این استفاده میشه که شارژ بیتها رو تقویت کنه تا دچار نوسان نشن و تفسیر اشتباهی ازشون نشه. در بافر ردیف که در شکل زیر به رنگ قرمز مشخص شده، بیت دقیق از طریق آدرس ستون مشخص میشه.

 

خوندن مخرب در dram

 

 

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

 

 

حمله RowHammer :

حمله RowHammer در سال 2014 توسط محققین دانشگاه Carnegie Mellon و اینتل معرفی شد که در اون نشون دادن که چطوری میشه از اکسپلویت این ویژگی بروزرسانی داینامیک رم برای آسیب رسوندن استفاده کرد. اگه خوندن داده ها مخربه و در ادامه سلولها بازنویسی میشه، اگه یه برنامه ای بنویسیم که در ثانیه ، ده ها و صدها بار عمل خوندن رو انجام بده، چه اتفاقی می افته؟ این همون چیزیه که محققا بهش hammering میگن.

 

حمله RowHammer

 

سلول های حافظه بصورت یه ماتریس مرتب شدن و هر عملیاتی روی یه سلول خاص شامل دسترسی به طیف کاملی از اوناست. در RowHammer  مشخص شد که دسترسی پی در پی و مکرر به ردیفی از سلول ها بر ردیف های مجاور تأثیر میذاره. اگه این عملیات چندین بار انجام بشه، یک ها و صفرهای سلول های ردیف همسایه دچار bitflip میشن. مطالعه سال 2014 نشون داد که چنین حمله ای روی DDR3 و DDR4 امکان پذیره.

اما این تکنیک چرا خطرناکه؟ فرض کنید یه هکری میتونه کد دلخواه رو بدون افزایش امتیاز اجرا کنه یا بدتر از اون، یه لینکی به قربانی میده و کد رو از طریق یه صفحه وب اجرا میکنه. اگه این کد بخش خاصی از حافظه ی رم رو hammering کنه، میتونه باعث اختلال در خوندن سایر ردیف های مجاورش بشه، مثلا فرض کنید اونجا داده های سیستم عامل ذخیره شده و در نتیجه در سیستم عامل دچار اختلال میشه.

در کنفرانس Blackhat USA 2015 ، محققای گوگل نشون دادن که چطوری میشه از RowHammer برای گرفتن امتیاز کرنل استفاده کرد. این یه حمله پیچیده با مجهولات زیاد بود. یعنی هنوزم نیازه که وارد بخش مناسبی از رم بشیم، یسری داده مناسب رو تخریب کنیم طوری که سیستم کرش نکنه و برنامه متوقف نشه. با این همه، از لحاظ تئوری این حمله تایید شد.

 

تکنیک BlackSmith برای دور زدن اقدامات حفاظتی RowHammer :

ساده ترین راه برای حفاظت از داده ها در برابر حمله RowHammer اینه که بعد از درخواست خوندن داده‌ها از ردیف سلول‌های حافظه، بروزرسانی اطلاعات رو در ردیف‌های همسایه انجام بدیم. این بطور قابل توجهی، احتمال خراب شدن داده هارو کم میکنه. اما مثله همه ی آسیب پذیری های سخت افزاری در CPUها ، دیر یا زود یه روش دور زدن در این اقدامات حفاظتی کشف میشه.

در سال 2021، محققا یه تکنیک حمله بنام BlackSmith رو معرفی کردن که میشد تحت شرایط خاصی، با وجود مکانیسم های حفاظتی برای RowHammer ، اقدام به خرابکاری کرد. در این تکنیک، بجای hammering ردیف سلولهای حافظه ی در کنار هم، ترکیبهای مختلفی رو تست میکنن. مثلا صدها هزار بار به ردیف های بالا و پایین حمله میکنن یا بطور همزمان به چهار ردیف در یک توالی خاص حمله میکنن. دلیلشم این بوده که تراکم بالای سلولهای حافظه تغییری نکرده و اساسا این مشکل اصلیه.

 

حمله RowPress :

تکنیک RowPress در صورتیکه از همون تکنیک اصلی با کمی تغییرات استفاده کرده، اما اثربخشی بالایی داشته. در این تکنیک هم مهاجم یه ردیف از سلولها رو تا حد امکان برای خوندن ، نگه میداره. محققا یه ویژگی استاندارد دیگه از نحوه عملکرد تراشه حافظه و کنترلر پیدا کردن که باعث اختلال بیشتر در ردیفهای همسایه سلول های حافظه میشه. این تکنیک از لحاظ اثر بخشی ده ها یا صدها برابر قویتر از RowHammer هستش. حتی در چند نمونه آزمایشی، bitflip  بعد از فقط یه عملیات خوندن در داده های همسایه رخ داده.

شکل زیر ، زیرساخت تست روی DDR4 رو نشون میده.

 

زیرساخت rowpress

 

احتمال حمله RowHammer یا Blacksmith یا RowPress به کاربر خانگی خیلی ناچیزه اما شرکتها در معرض خطر هستن. از لحاظ تئوری میشه این حملات رو روی حافظه سرورهایی که در ابرهای عمومی ارائه میشن ، پیاده کرد. ارائه دهندگان به سرورهای خودشون دسترسی دارن و یه ماشین مجازی به کاربران اختصاص میدن تا کارهای دلخواهشون رو روش انجام بدن. ارائه دهندگان باید مطمئن بشن که راهی برای فرار از مجازی سازی وجود نداره و مشتریها نمیتونن به داده های بقیه دسترسی پیدا کنن. حالا این ماشین مجازی که به مشتری داده شده ، میتونه در حافظه رم سرور بنویسه و بخونه. در نتیجه امکان حمله از طریق سرور مجازی به سرور اصلی رو داریم.

اینکه این حمله چقدر تئورییه، میشه از عکس بالا مشاهده کرد. ماژول رم به یه برد دیگه که به نوعی یه دستگاه دیباگ عملکرد رم هست ، وصل شده. برخی سیستمهای حفاظتی غیرفعال شدن. از همه مهمتر یه heater هم نصب شده که دما رو تا 50 یا 80 درجه افزایش میده، که خودش احتمال خراب شدن تصادفی یا عمدی داده رو افزایش میده.

 

حملات سخت افزاری:

با مقایسه RowPress و RowHammer ابتدایی، اساساً یه تغییر جزئی در روش دسترسی به حافظه مشاهده میکنیم که به مهاجمان اجازه میده (از جمله در یه سیستم واقعی، بدون گرم کردن یا «تقلب») اقدامات حفاظتی رو که توسط تولیدکنندگان ماژول اجرا شده رو دور بزنن.

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

همچنین تصحیح خطای قابل اعتماد مشکل رو حل نمیکنه چون این امر یک سوم رم رو اشغال میکنه. روش معمول error correcting codes (ECC) ، اثربخشی حملات رو کم میکنه اما حدفشون نمیکنه. بنابراین، میشه با اطمینان گفت که RowPress آخرین حمله «hammer» نخواهد بود.

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

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

 

منابع:

کسپرسکی

Row hammer

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In آسیب پذیری امنیتی اخبار اینترنت اشیاء مقالاتIn blackhat , blackhatusa , DRAM , Dynamic random access memory , hammering , Hardware attack , Hardware vulnerability , Memory refresh , آسیب پذیری سخت افزاری , هک سخت افزاری

راهبری نوشته

حمله DDOS به وب سایت، بزرگترین شرکت پالایشی نفت اسرائیل
نگاه هفتگی به حملات منتشر شده در دارک وب – 3 تا 9 مرداد

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مقالات
  • مهندسی معکوس نرم افزار

پست های مرتبط

  • آسیب پذیری امنیتی
  • اخبار
  • امنیت وب
  • انتشارات
  • باگ بانتی
  • پروژه ها
  • توسعه اکسپلویت
  • ماشین آسیب پذیر
  • مقالات
seyyid
On مهر 5, 1403

نسخه وردپرس آسیب پذیر برای آگوست 2024 منتشر شد

  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • انتشارات
  • توسعه اکسپلویت
  • مقالات
  • مهندسی معکوس نرم افزار
seyyid
On مهر 26, 1403بهمن 30, 1403

آموزش نصب و استفاده از پلاگین ret-sync در IDA pro و Windbg

  • آسیب پذیری امنیتی
  • اخبار
  • بازیگران تهدید
seyyid
On اسفند 9, 1401فروردین 28, 1402

استفاده هکرها از دو آسیب پذیری در قالب و افزونه وردپرسی Houzez

  • اخبار
  • افشای اطلاعات
  • بازیگران تهدید
seyyid
On فروردین 19, 1402فروردین 28, 1402

حمله سایبری به مرکز سوابق کیفری انگلیس

درباره ما

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

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow integer overflow kali LockBit Memory Corruption nuclei Off By One Security out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کروم گوگل

شبکه های اجتماعی

    • Instagram
    • Telegram
    • Twitter
    • GitHub
    • YouTube
    • LinkedIn
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404