طراحی یک ربات جدید برای استخراج اطلاعات حافظه در حملات راه‌اندازی سرد

طراحی یک ربات جدید برای استخراج اطلاعات حافظه در حملات راه‌اندازی سرد
تاریخ انتشار : ۱۲ تير ۱۴۰۲

مخترع این فناوری می‌گوید: «هر چیزی که اهمیت زیادی در جهان داشته باشد، امنیت ضعیفتری دارد».

به گزارش گرداب، وب‌سایت رجیستر (TheRegister) در گزارشی به قلم توماس کلابرن (Thomas Claburn) به یک فناوری جدید اشاره می‌کند که می‌تواند خطرات امنیتی زیادی داشته باشد.

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


حملات راه‌اندازی سرد که در آن تراشه‌های حافظه خنک شده و داده‌هایی از جمله کلید‌های رمزگذاری استخراج می‌شوند از سال ۲۰۰۸ متداول بودند، اما به تازگی خودکار (اتومات) شدند. این روش حمله ارتقا یافته، به صورت یک ماشین سرقت حافظه خودکار درآمده است که با دو هزار دلار می‌توان آن را خرید.

روز جمعه ۹ ژوئن ۲۰۲۳ در کنفرانس مهندسی معکوس REcon در کانادا، آنگ کوی (Ang Cui) بنیان‌گذار و مدیر عامل Red Balloon Security سخنرانی‌ای با عنوان «به دست آوردن رم با ربات DIY کرایو مکانیکال» ارائه داد. موضوع اصلی این سخنرانی درباره ربات استخراج‌کننده محتوای رم کرایو مکانیکال بود که آنگ کوی و همکارانش Grant Skipper و Yuanzhe Wu برای جمع‌آوری داده‌های رمزگشایی شده از ماژول‌های حافظه DDR3 ساخته بودند. دلیل انجام این کار این است که سازندگان سخت‌افزار اجرای مهندسی معکوس روی دستگاه‌های خود را با غیر فعال کردن رابط‌های اشکال زدایی JTAG و مدار‌های UART و با استفاده از آرایه شبکه توپ (BGA) و ثابت‌افزار رمزگذاری شده سخت‌تر کرده‌اند.

کوی در مصاحبه‌ای گفت: «ما شاهد چیزی هستیم که من آن را تکمیل محصول می‌نامم، جایی که تولیدکنندگان در حال حذف بسیاری از رابط‌های اشکال زدایی هستند. این کار لزوماً امنیت محصول را افزایش نمی‌دهد، اما بررسی و مهندسی معکوس دستگاه را بسیار دشوار می‌کند؛ بنابراین تصمیم گرفتیم رویه کار را تغییر دهیم و به جای تزریق یا انجام مهندسی معکوس با لیزر، رباتی مقرون به صرفه بسازیم که به معنای واقعی کلمه یک تراشه رم در دستگاه را منجمد کند. سپس وقتی می‌خواهیم محتوای رم فیزیکی را بخوانیم، حافظه فیزیکی را از دستگاه جدا می‌کنیم و در فیکسچر FPGA قرار می‌دهیم. کاری که انجام می‌دهیم اساساً به این شکل است که حافظه فیزیکی را با برداشتن آن از دستگاه و سپس قرار دادن فیزیکی آن در داخل دستگاه می‌خوانیم. به طور شگفت‌انگیزی این روش جواب داده است».

او افزود: «اکثراً در بوت لودر، کلید‌های رمزگشایی را می‌بینید. علاوه بر این، کد بوت لودر را هم می‌توانید ببینید، اما اغلب اگر ثابت‌افزار رمزگذاری شده روی فلش به همراه یک رام بوت نسبتاً ایمن داشته باشید، خواندن کد و دسترسی یافتن به آن کار چندان راحتی نخواهد بود. اما با این رویکرد شما کد، همه داده، پشته، هیپ و حافظه فیزیکی کامل را دریافت می‌کنید». حمله راه‌اندازی سریع در اصل با منجمد کردن حافظه لپتاپ از طریق خالی کردن قوطی‌ای از هوای فشرده برای خنک کردن DRAM رایانه انجام می‌شد. تراشه‌های حافظه را می‌توان تا ۵۰- درجه سانتی گراد سرد کرد. در این حالت داده‌های داخل آن موقتاً منجمد می‌شوند به طوری که تا چند دقیقه حتی در صورت خاموش بودن باقی می‌مانند.

کوی در ادامه می‌گوید: «اما اگر به دستگاه‌های تعبیه شده نگاهی بیندازید متوجه می‌شوید که آن‌ها ماژولار رم ندارند. همه لحیم کاری شده‌اند. ما همچنین روی تعدادی کنترلر حافظه سفارشی کار کردیم. ما از این روش برای افشای آسیب‌پذیری Siemens در اوایل سال ۲۰۲۳ استفاده کردیم؛ بنابراین زمانی که توانستیم یک تراشه حافظه را به درستی بیرون بیاوریم و بخوانیم، مجبور شدیم نه یک تراشه بلکه با پنج تراشه دیگر هم این کار را انجام دهیم، چون همه به هم مرتبط بودند. سه تراشه در یک طرف بُرد و دو تراشه در قسمت پایینی قرار داشتند. پس ما مجبور شدیم راهی پیدا کنیم تا به نحوی هر پنج تراشه حافظه را با همان روش بیرون بکشیم».

چالش‌ها و زمان‌بندی

کوی می‌گوید: «ما به یک ترفند جالب رسیدیم که در آن کار‌ها را یکی یکی انجام می‌دهیم و نه تنها حواس‌مان به پیاده‌سازی قطعی آن است بلکه به فکر انتشار الکترومغناطیسی دستگاه هم هستیم تا بفهمیم دستگاه تا چه حد به CPU متصل است. اگر به CPU متصل باشد در واقع در حافظه ثبت نمی‌شود. پس به جای این که برای جدا کردن تراشه حافظه به ده‌ها نانوثانیه نیاز داشته باشیم، در واقع ده‌ها میلی ثانیه زمان داریم تا این کار را انجام دهیم. به این ترتیب بود که توانستیم پنج تراشه حافظه را هم‌زمان برداریم و به حافظه بوت لودر، کد و داده دسترسی پیدا کنیم».

به گفته او، ده‌ها میلی ثانیه برای یک دستگاه کنترل عددی رایانه‌ای (CNC) که به مبلغ حدود پانصد دلار از AliExpress خریداری شده بود کافی است تا بتواند دستکاری تراشه‌های لازم را انجام دهد. این ربات که یک ماشین CNC متصل به حافظه‌خوان با آرایه‌ی دروازه‌ی میدانی برنامه‌پذیر (FPGA) و یک کنترلر مبتنی بر ماژول ESP۳۲ که میکروپایتون را اجرا می‌کند است، روش حمله راه‌اندازی سرد را آسان کرده است. به گفته کوی این ربات از یک CNC تشکیل شده است که اجزای غیر دقیقی مانند موتور‌ها و محرک محور ایکس را ندارد. آن چه که حمله را ممکن می‌سازد چیزی به نام سوکت تست الاستومری‌رسانا IC است.

خلاف سوکت‌های تستی معمولی که شبیه صدف تاشو هستند و پین‌های فلزی دارند، سوکت تست الاستومری مانند پاستیل‌های سخت هستند و پین‌های چاپ شده رسانا دارند. انعطاف‌پذیری سوکت این امکان را فراهم کرده است که تراشه‌های حافظه با سخت‌افزار معمولی توسط یک پیستون در جای خود قرار بگیرند بدون اینکه به بُرد مدار یا تراشه‌ها آسیبی برسد. این سوکت‌ها که سال‌ها پیش صد‌ها دلار قیمت داشتند را اکنون می‌توان به مبلغ حدود سی دلار خریداری کرد. با کمک یک سیستم بازخوانی حافظه مبتنی بر FPGA نیازی به اجرای کد از طریق یک بوت لودر سفارشی برای تخلیه محتویات DRAM نیست. این ربات فرآیند حمله را با انتقال فیزیکی تراشه‌های DRAM بین دستگاه مورد نظر و سیستم بازخوانی ساده می‌کند.

قابل اجرا و نتیجه بخش

کوی و همکارانش ربات خود را روی Siemens SIMATIC S۷-۱۵۰۰ PLC پیاده کردند و توانستند محتویات باینری‌های ثابت‌افزار رمزگذاری شده را بازیابی کنند. آن‌ها همچنین با موفقیت توانستند حمله‌ای مشابه روی DDR۳ DRAM در سری CISCO IP Phone ۸۸۰۰ انجام دهند و به حافظه ARM تراست زون (TrustZone) دسترسی پیدا کنند. آن‌ها معتقدند اگر از پلتفرم بازخوانی حافظه مبتنی بر FPGA با کیفیت‌تر و گران‌تر (حدود ده هزار دلار) استفاده شود، روش آن‌ها در DDR۴ و DDR۵ پیچیده‌تر قابل استفاده خواهد بود هر چند هزینه‌ای که مد نظرشان است به مرور زمان کاهش خواهد یافت. به گفته کوی با رمزگذاری حافظه فیزیکی می‌توان جلوی حملات راه‌اندازی سرد را گرفت.

او توضیح می‌دهد: «در CPU‌های مدرن و کنسول‌های بازی، از حافظه کاملاً رمزگذاری شده استفاده می‌شود که با روش ما تداخل دارد، چون حتی اگر موفق به جدا کردن حافظه فیزیکی شویم، همچنان به کلید فیزیکی نیاز داریم که آن هم در جایی دیگر از دستگاه قرار دارد. اما هر چه یک چیز از اهمیت بالایی برخوردار باشد، امنیت ضعیف‌تری دارد. حدس می‌زنید چه چیزی حافظه رمزگذاری شده دارد؟ ایکس باکس و پلی استیشن ۵! حال حدس می‌زنید چه چیزی حافظه رمزگذاری شده ندارد؟ همه PLC (کنترلر منطق قابل برنامه‌ریزی) CPU در سراسر جهان. بسیاری از زیرساخت‌های حیاتی با موارد تعبیه شده که به آن‌ها وابسته هستیم هرگز درباره این نوع حملات صحبتی به میان نمی‌آورند».