روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ مقالهی امروز در مورد حمله جدیدی است به تراشههای DRAM که میتواند روی پیسیها، سرورها و اسمارتفونها اثر بگذارد. با این حال گفته میشود این حمله که نامش را RowPress گذاشتهاند زمانبر است. در ادامه با ما همراه شوید تا آن را مورد بررسی قرار دهیم.
وقتی میگوییم حملهی زمانبری است منظور این است که باید به دفعات، یک ردیف DRAM چکشکاری شود و همین به لحاظ فیزیکی باعث ضربه به خوردن به ردیفهای مجاور نیز میشود. خود این ایده شاید جدید نباشد- چیزی شبیه به این تقریباض ده سال پیش تحت نام RowHammer ارائه شد. با این همه، RowPress تکنیکی مؤثرتر است اما ابتدا بیایید نگاهی داشته باشیم بر معنای دقیق «چکشکاری» یا Hammering.
ساز و کار RAM
تراشههای RAM هرگز قابلاطمینان نبودهاند. در واقع هر سلول مموری که در آن یک بیت اطلاعات جا میشود باتریی مینیاتوری است. وقتی آن را شارژ میکنید یک 1 در سلول مینویسیم. اگر شارژی نباشد آن ارزش، یک 0 است. و این میلیونها بار در ثانیه رخ میدهد! در میکروچیپهای مدرن این سلولها به طرز خارقالعادهای کنار هم فشرده شدهاند: میلیاردها از آنها میتوانند تنها در اندازهی یک کریستال کوچک باشند. با سرعت بالای بهروزرسانی و کوچکسازی شدید قطعات الکترونیکی، دیر یا زود خرابیها اجتناب ناپذیر هستند - "باتری" مینیاتوری شارژ خود را از دست داده و یک به صفر تبدیل میشود. گاهی خرابیها حاصل عوامل بیرونی هستند: مثلاً اگر تراشه مموری در مقابل حرارت یا حتی پرتوهای کیهانی قرار گیرد. چنین خرابیهایی میتواند به خطاهای مهم منجر شود: تصور کنید برنامهای یک آدرس را در رم ذخیره کرده که نیاز دارد وقتی همه شرایط مهیا بود مورد دسترسی قرار گیرد. اگر برخی بیتهای داده در این آدرس خود به خود از یک به صفر بروند (به جای کد شما) خدا میداند چه چیز اجرا خواهد شد! بسیاری از فناوریها برای جلوگیری از خرابی استفاده میشوند. بعنوان مثال آپدیتی اجباری برای محتواهای سلولهای مموری: خواندن/نوشتن متوالی اطلاعات - حتی اگر نه CPU و نه برنامه به آن نیازی داشته باشند. فرآیند خواندن دادهها مخرب است، بنابراین پس از دسترسی، اطلاعات باید بازنویسی شوند. همچنین مکانیزم اصلاح خطا نیز وجود دارد: مموری برای چک کردن صحت دادهها هم داده و هم اطلاعات جداگانه را ذخیره میکند. مهم است درک کنیم تراکم بالای سلولهای مموری را در کامپیوترهای مدرن یک قابلیت بنیادی است؛ و سلولها طور دیگری عمل نخواهند کرد.
حمله RowHammer
اما برگردیم به گزارش RowHammer سال 2014. محققین دانشگاه Carnegie Mellon و شرکت اینتل نشان دادند چطور میشود قابلیتهای یک رم به طور پویا آپدیتشده را که در بالا توضیح دادیم اکسپلویت کرد. اگر خوانش داده مخرب باشد و در ادامهاش شاهد بازنویسی باشیم، اگر برنامهای بنویسیم که دهها یا صدها هزار بار در ثانیه میخواند چه؟ این فرآیند چیزی است که محققین بدان «چکشکاری» میگویند.
سلولهای مموری بعنوان یک ماتریکس ترتیبدهی شدند و هر عملکردی روی یک سلول خاص شامل دسترسی به کل ترتیب آنها میشود. به نظر میرسد که دسترسی متوالی و مکرر به ردیف سلولها میتواند ردیفهای مجاور را نیز تحتالشعاع قرار دهد. اگر این عملیات به دفعات صورت گیرد، یکها وصفرها در سلولهای ردیف همسایه نیز امکان خرابی دارند. مطالعات سال 2014 نشان داد که چنین حملهای روی ماژول مموری DDR3–که آن زمان استاندارد محسوب میشود- محتمل بوده است. اما این چرا خطرناک است؟ تصور کنید هکری بتواند یک سری کد دلخواه را بدون مزایای ویژه روی سیستم هدفدار اجرا کند. در موردی افراطی این شاید حتی کد یک وبپیج باشد با لینکی که برای قربانی ارسال میشود! اگر این کد اجازه داشته باشد محدودهای از رم را چکشکاری کند پس قابلیت دارد برای سلولهای همسایه نیز مزاحمت ایجاد کند؛ جایی که فرضاً دادههای سیستمعامل ممکن است ذخیره شده باشد.
آهنگری: دور زدن لایههای محافظتی RowHammer
چطور از دادهها در برابر حمله RowHammer محافظت کنیم؟ سادهترین راه این است که آپدیت اطلاعات در ردیفهای همسایه را بعد از درخواست برای خوانش داده از ردیف سلول مموری، به طور اجباری اعمال کنیم. این کار به طور قابلملاحظهای احتمال خرابی داده را کاهش میدهد. در مورد آسیبپذیریهای سختافزاری در سیپییوها دیر یا زود در هر متود محافظتی مشکلی بوجود خواهد آمد. در سال 2021 محققین حملهای به نام BlackSmith یا آهنگری نشان دادند. در این حمله متوجه شدیم تحت شرایط خاص این امکان وجود دارد که حتی با محافظتهای RowHammer خرابیهایی به بار آید. اما چطور این حمله صورت گرفت؟ اگر به جای چکشکاری ردیف سلولهای مموری کنار آنی که هدف است، کسی تلاش کند ترکیبهای دیگری را امتحان کند چه: یعنی بازجویی ردیفهای بالا و پایین تارگت آن هم صدها هزار بار یا حمله یکجا به چهار ردیف در یک توالی مشخص؟ بله باید بگوییم این روش جواب میدهد. چرا؟ چون مشکل بنیادی (تراکم بالای سلولهای مموری) از بین نرفته است!
RowPress: کارایی رو به فزونی حمله
حمله جدید RowPress حتی کاراتر نیز هست- علیرغم استفاده از اصل پایه یکسان –شاید با یک تغییر جزئی اما حیاتی- مهاجم سعی دارد یک ردیف سلول را برای خوانش باز نگه دارد (تا هرجا امکانش باشد). محققین تصمیم گرفتند قابلیت استاندارد دیگری را از نحوه عملکرد تراشههای مموری و کنترلر پیدا کنند؛ عملکردی که حتی تأثیر بیشتری روی ردیف سلولهای مموری همسایه خواهد داشت. به لحاظ تأثیر (اندازهگیریشده توسط تعداد چکشکاریِ لازم- هر قدر کمتر بهتر) RowPress به نسبت RowHammer حتی صدها بار پتانسیل بیشتری دارد. در برخی موارد حاشیهای، بیتفلیپ[1] بعد از یک عملیات واحد خوانش روی دادههای مجاور میسر شد.
این مشکل چقدر جدی است؟ احتمال حمله RowHammer، Blacksmith یا RowPress به کاربران خانگی بسیار ناچیز است. بیشتر شرکتها در معرض خطر هستند. در تئوری، این حملات میتوانند حافظه سرورهایی را که در کلودهای عمومی اجرا می شوند، هدف قرار دهند. از این گذشته، ارائه دهندگان به سرورهای خود دسترسی پیدا کرده و نوعی ماشین مجازی را به کاربران اختصاص میدهند تا هر کدی را که دوست دارند اجرا کنند. آنها باید اطمینان حاصل کنند این دستگاه هیچ راهی برای فرار از محیط مجازی خود و دسترسی به داده های مشتریان دیگر ندارد. به طور کلی، چنین سیستم مجازی برنامهای است که قادر به خواندن و نوشتن دادهها در RAM سرور است. به عبارت دیگر - یک پلتفرم آماده برای حمله به حافظه یک سرور فیزیکی.
این که چنین حملهای چقدر تئوری است را میتوان از عکس تنظیمات آزمایشی مورد استفاده برای مطالعه RowPress مشاهده کرد. ماژول حافظه به یک برد جداگانه منتقل شده است. به آن نوعی دستگاه اشکالزدایی برای تنظیم دقیق عملکرد RAM متصل است. برخی از سیستمهای حفاظتی غیرفعال شدهاند. از همه مهمتر، یک قطعه حرارتی با تراشه های حافظه روی ماژول نصب میشود که دما را تا 50 یا حتی 80 درجه سانتیگراد افزایش میدهد و خود همین احتمال خراب شدن تصادفی یا عمدی دادهها را افزایش میدهد.
جزئیات حمله سختافزاری
وقتی RowPress را با RowHammer مقایسه میکنیم اساساً شاهد تغییر جزئی در متود دسترسی به مموری هستیم که اجازه میدهد مهاجمین لایههای محافظتی پیادهسازیشده توسط تولیدکنندگان ماژول را دور بزنند (شامل لایههای محافظتی رو سیستم واقعی بدون حرارت یا تقلب). محققین راهکار شخصی خود را برای این مشکل دارند که خوشبختانه روی عملکرد، کمترین اثر را دارد. با این وجود، مانند همه آسیبپذیریهای سختافزاری خلاص شدن از شر همه آنها شاید واقعبینانه نباشد. کاهش تراکم تراشههای موری امروزی، گزینه نیست. برعکس، ظرفیت آنها دارد روز به روز بیشتر میشود. پیادهسازی اصطلاح خطای مطمئن نیز این مشکل را حل نخواهد کرد زیرا این کار یک سوم رم را میگیرد.
روش معمول مبتنی بر کدهای تصحیح خطا ECC) ) از اثر حملات میکاهد اما آنها را حذف نمیکند. بنابراین، میتوان با اطمینان گفت که RowPress آخرین حمله «چکشی» نخواهد بود. نکته مثبت این است که چنین مطالعاتی در حال حاضر در سطح تئوری باقی ماندهاند. محققین در حال یافتن بردارهای حمله جدید هستند و سازندگان دستگاهها نیز در حال ارائه لایههای دفاعی جدید. مطمئناً، ممکن است در نهایت آنها به طور تصادفی آسیب پذیری با پتانسیل برای استثمار انبوه را کشف کنند. اما با قضاوت بر اساس تاریخچه چنین مطالعاتی در دهه گذشته، این امر محتمل به نظر نمیرسد. ولی نباید چنین تحقیقاتی را صرفاً نظری و انتزاعی رد کرد: کاری که متخصصین آزمایشگاهی امروز میتوانند انجام دهند، مجرمان سایبری واقعی ممکن است فردا - یا در پنج یا ده سال آینده - انجام دهند. در مورد ارائه دهندگان خدمات کلود، آنها باید در حال حاضر از آخرین پیشرفتها مطلع باشند و آنها را سفت و سخت در مدلهای امنیتی خود لحاظ کنند.
[1]نوعی حملهی رمزنگاریشده
منبع: کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.