BadRAM – حملهای که از ماژول مخرب RAM استفاده میکند
محققین دانشگاههای اروپایی اخیراً حملهای به نام BadRAM را کشف کردند. این حمله به دلیل آسیبپذیری در پردازندههای AMD EPYC میسر شده و در اصل کارش تهدید ارائهدهندگان راهکار کلود و سیستمهای مجازیسازی است. در بدترین حالت ممکن، این آسیبپذیری میتواند برای دستکاری داده از ماشینهای مجازی به شدت امن استفاده شود. با این وجود، پیادهسازی این سناریو در عمل بسیار سخت است. این حمله دسترسی فیزیکی به سرور و نیز بالاترین سطح دسترسی به نرمافزار را میخواهد. پیش از پرداختن پرجزئیات به حملهی BadRAM، باید ابتدا مفهوم محیط قابلاعتماد اجرا (TEE) را درک کرد.
قابلیتهای TEE
خطاهای نرمافزاری ناگزیند. برآوردها از اوایل دهه 90 میلادی نشان میدهد که برای هر هزار خط کد، بین یک تا بیست خطا وجود دارد. برخی از این خطاها به آسیبپذیریهایی ختم میشوند که مهاجمین مخرب میتوانند برای دسترسی به اطلاعات محرمانه اکسپلویت کنند. از این رو وقتی برخی دادهها یا پروسههای رایانشی (برای مثال پردازش کلیدهای رمزگذاری خصوصی) باید به شدت امن باشند پس منطقی است که این دادهها -یا فرآیندها- را از بقیه کد ایزوله کنیم. این جوهرهی مفهوم محیط قابل اعتماد اجراست.
پیادهسازیهای TEE متعددی برای کارهای مختلف طراحی شدهاند که هر کدام از نظر میزان امنیت متفاوت هستند. در پردازندههای AMD، TEE بهعنوان مجازیسازی رمزگذاری شده امن (SEV) پیادهسازی میشود – فناوری که حفاظت از ماشینهای مجازی را افزایش میدهد. دادههای یک سیستم مجازی را در حافظه رمزگذاری میکند تا دیگر سیستمهای مجازی – یا حتی اپراتورهای سرور فیزیکی که این سیستمعاملهای مجازی را اجرا میکنند – نتوانند به آن دسترسی داشته باشند.
Secure Nested Paging، توسعه جدیدتر این فناوری، میتواند تلاشهای غیرمجاز برای دسترسی به دادههای سیستم مجازی را شناسایی کند. سناریویی را در نظر بگیرید که در آن یک موسسه مالی از زیرساخت طرفسوم برای اجرای سیستمهای مجازی خود استفاده میکند. این سیستمعاملهای مجازی دادههای بسیار محرمانه را پردازش میکنند و تضمین امنیت مطلق آنها ضروری است. در حالیکه امکان تحمیل الزامات سختگیرانه بر ارائهدهنده زیرساخت وجود دارد، اما در برخی موارد با این فرض که نمیتوان به آنها کاملاً اعتماد کرد، کار آسانتر است. مجازیسازی رمزگذاریشده ایمن، درست مانند فناوری افزونههای دامنه مورد اعتماد (TDX) مشابه اینتل، اساسا از یک پردازنده جداگانه استفاده میکند. اگرچه از نظر فیزیکی بخشی از پردازنده سرور (اینتل یا AMD) است، اما به طور موثر از هستههای اصلی پردازنده جدا شده است. با شرکت در فرآیند رمزگذاری دادهها، این ماژول ایزوله یک لایه امنیتی اضافی را فراهم می کند.
جزئیات حمله BadRAM
بیایید برگردیم به موضوع حمله BadRAM. این حمله، محافظت مجازیسازی رمزگذاریشدهی امن (SEV) را دور زده و به دادههای رمزگذاریشدهی سیستم مجازی طوری دسترسی پیدا میکند که فناوری Secure Nested Paging (صفحهگذاری تو در توی امن) نیز در شناسایی این نقض ناتوان میماند. در این ویدیو، میتوانید ببینید چطور یک اپ مخرب روی سرور میتواند از ماشین مجازی محافظتشده که روی همان سرور اجرا شده دادهها را بخواند. اما این حمله چطور کار میکند؟ نویسندگان این مطالعه از یک روش حمله بسیار غیرمعمول استفاده کردند – اصلاح سخت افزار. هر کامپیوتر دارای حافظه دسترسی تصادفی (RAM) است. هر ماژول حافظه حاوی چندین تراشه برای ذخیرهسازی دادهها، به علاوه یک تراشه خدمات – معروف به SPD است. این تراشه حضور ماژول حافظه را در سیستم اعلام و پارامترهای کلیدی (مانند فرکانس کاری بهینه تراشههای حافظه و ظرفیت آنها) را به پردازنده منتقل می کند. دقیقاً این اطلاعات مربوط به ظرفیت بود که محققین اصلاح کردند.
این یک روش حمله نسبتاً متناقض است. ابتدا، مهاجمین یک ماژول حافظه 32 گیگابایتی را میگیرند. سپس، آنها تراشه SPD را دوباره فلش میکنند و ظرفیت آن را دو برابر این مقدار – 64 گیگابایت – تنظیم میکنند. پردازنده به این اطلاعات اعتماد نموده و سعی میکند از ماژول حافظه به گونهای استفاده کند که گویی ظرفیت آن واقعاً 64 گیگابایت است. در شرایط عادی، این امر به سرعت منجر به مسدود شدن یا سایر خرابیها میشود: برخی از بلوکهای داده به سادگی برخی دیگر را بازنویسی میکنند و اطلاعات برنامههای مختلف خراب میشوند. برای جلوگیری از این امر، محققین دسترسی نوشتن به ماژول حافظه اصلاحشده را برای همه فرآیندها به جز سیستم مجازی هدف محدود کردند.
میپرسید فایده این کار چیست؟ اگر پردازنده فکر کند که ظرفیت حافظه دو برابر بیشتر از آن است، هر جفت آدرس مجازی تنها به یک سلول حافظه فیزیکی نگاشت میشود. این امکان سناریویی را فراهم میکند که در آن یک منطقه حافظه واقعی به طور همزمان توسط یک سیستم عامل مجازی محافظتشده استفاده میشود – و برای یک برنامه مخرب دیگر قابل دسترسی است. دومی روی سلولهای حافظه نمینویسد، اما میتواند آنچه را که سیستم عامل مجازی برای آنها مینویسد بخواند. این دقیقاً همان سناریویی است که فناوری SEV AMD برای جلوگیری از آن طراحی شده، اما در این مورد ناکارآمد است – هم راهکار حفاظت از دسترسی به حافظه و هم رمزگذاری دور زده میشوند. ما از روی بسیاری از جزئیات مهم این مطالعه عبور کردیم، اما نکته اصلی این است که این ماژول حافظه مخرب موقعیتی را ایجاد میکند که دادههای ظاهراً بسیار امن یک ماشین مجازی برای یک برنامه خارجی قابل دسترسی است. بله، این یک حمله بسیار پیچیده است – که علاوه بر “هک کردن” نرم افزار سرور برای به دست آوردن بالاترین امتیازات دسترسی، نیازمند دسترسی فیزیکی به سرور است. با این حال، این را با یک مطالعه قبلی مقایسه کنید، جایی که نتیجه مشابهی با استفاده از یک دستگاه سخت افزاری بسیار گران قیمت (170000 دلار) به دست آمد که انتقال داده بین پردازنده و ماژول حافظه را در زمان واقعی متوقف میکرد.
در حمله BadRAM، تراشه SPD با استفاده از یک کیت ساده متشکل از میکرو کامپیوتر و نرمافزار در دسترس که در مجموع حدود 10 دلار هزینه دارد، اصلاح میشود. پس از اصلاح، دیگر نیازی به دسترسی فیزیکی به سرور نیست و تمام مراحل حمله بعدی را میتوان از راه دور انجام داد. در برخی از ماژولهای حافظه، حتی بازنویسی از راه دور دادههای SPD ممکن است امکان پذیر باشد. خوشبختانه، آسیبپذیریهای مورد سوء استفاده در این حمله در بهروزرسانیهای میانافزار برای پردازندههای نسل سوم و نسل چهارم AMD EPYC اصلاح شدهاند. فناوری حفاظت در حال حاضر شامل مکانیزمیمیشود که قادر به شناسایی ماژولهای حافظه «مخاطب» است. به هر حال، محققین فناوری TDX اینتل را نیز آزمایش کردند، که به نظر میرسد از قبل یکپارچگی RAM مشابه را بررسی کرده و حملاتی مانند BadRAM را غیرممکن میکند. مفهوم یک محیط اجرایی قابلاعتماد برای کار در محیطهای بسیار خصمانه طراحی شده است. ما سناریویی را مورد بحث قرار دادیم که در آن صاحب یک سیستم عامل مجازی به ارائه دهنده میزبان اعتماد ندارد. حتی در چنین شرایط پارانوئیدی، اجتناب از خطاها یک چالش مهم باقی میماند – همانطور که توسط مطالعه BadRAM نشان داده شده است. نویسندگان به طور کلی استدلال میکنند که توسعه دهندگان سیستم TEE به شدت بر دشواری استخراج دادهها از RAM تکیه می کنند و نشان میدهند که چگونه میتوان حتی پیچیده ترین سیستمهای امنیتی را با استفاده از ابزارهای نسبتاً ساده دور زد.
آبادیس (نمایندگی فروش محصولات کسپرسکی)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.