روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ پردازندههای سرور مدرن دارای یک محیط اجرای مورد اعتماد یا به اختصار TEE برای پردازش دادههای بسیار حساس هستند. پیادهسازیهای مختلفی برای TEE وجود دارد، اما دو نمونه در این بحث اهمیت بیشتری دارند: Software Guard eXtensions اینتل یا به اختصار SGX و Secure Encrypted Virtualization شرکت AMD یا به اختصار SEV. تقریباً همزمان، دو تیم تحقیقاتی جداگانه — یکی در ایالات متحده و دیگری در اروپا — بهطور مستقل روشهایی بسیار مشابه (هرچند متمایز) برای سوءاستفاده از این دو پیادهسازی کشف کردند. هدف آنها دسترسی به دادههای رمزنگاریشده موجود در حافظهی دسترسی تصادفی بود. مقالات علمی که نتایج این تحقیقات را شرح میدهند تنها چند روز از هم فاصلهی انتشار داشتند.
تیم پژوهشگران آمریکایی نفوذ موفقی به سامانهی Intel SGX را گزارش کرد؛ پژوهشگران این نفوذ را با رهگیری تبادل داده میان پردازنده و ماژول حافظهی DDR4 عملی کردند. دانشمندان اروپایی (از بلژیک و بریتانیا) نیز توانستند Intel SGX و همچنین سیستم امنیتی مشابه AMD یعنی SEV SNP را با دستکاری فرایند انتقال داده بین پردازنده و ماژول حافظهی DDR4 به خطر بیندازند.
هک یک TEE
هر دو فناوری یادشده، Intel SGX و AMD SEV، طوری طراحی شدهاند که دادهها را حتی در صورتی که سیستم پردازشکنندهی آنها کاملاً در اختیار مهاجم قرار گیرد محافظت کنند. بنابراین پژوهشگران کار خود را با این فرض آغاز کردند که مهاجم دسترسی کامل دارد: کنترل کامل بر نرمافزار و سختافزار سرور و دسترسی به دادههای محرمانه که برای نمونه ممکن است روی یک ماشین مجازی اجرا شده روی همان سرور قرار داشته باشند. در این سناریو برخی محدودیتهای Intel SGX و AMD SEV اهمیت پیدا میکنند. یکی از این محدودیتها استفاده از رمزنگاری تعیینشونده است؛ الگوریتمی که در آن یک دنبالهی مشخص از دادههای ورودی همیشه دقیقاً همان دنبالهی رمزشدهی خروجی را تولید میکند. از آنجا که مهاجم به نرمافزار دسترسی کامل دارد، میتواند دادههای دلخواهی را وارد TEE کند. اگر مهاجم همچنین به اطلاعات رمزنگاریشدهی حاصل دسترسی داشته باشد، مقایسهی این دو مجموعهی داده به او اجازه میدهد کلید خصوصی مورد استفاده را محاسبه کند و با آن سایر دادههای رمزنگاریشده به همان روش را رمزگشایی نماید.
اما چالش اصلی خواندن آن دادههای رمزنگاریشده است. این دادهها در حافظهی RAM قرار دارند و فقط پردازنده است که دسترسی مستقیم به آنها دارد. بدافزار نظری تنها اطلاعات اصلی را قبل از اینکه در حافظه رمز شود میبیند. این همان چالشی است که پژوهشگران از راههای مختلف به آن پرداختند. یک راهکار مستقیم، رهگیری در سطح سختافزارِ دادههای در حال انتقال از پردازنده به ماژول حافظه است.
میپرسید چطور این کار انجام میشود؟ ماژول حافظه خارج و دوباره با استفاده از یک اینترپوزر وارد میشود که به یک دستگاه تخصصی دیگر نیز متصل است: یک تحلیلگر منطقی. تحلیلگر منطقی جریانهای دادهای را که از طریق خطوط داده و آدرس به ماژول حافظه میروند رهگیری میکند. این کار بسیار پیچیده است. یک سرور معمولاً چندین ماژول حافظه دارد، بنابراین مهاجم باید راهی برای وادار کردن پردازنده بیابد تا اطلاعات هدف را دقیقاً در بازهی مورد نظر بنویسد. سپس دادهی خامی که تحلیلگر منطقی ضبط کرده باید بازسازی و تحلیل شود. مشکلات به اینجا ختم نمیشوند. ماژولهای حافظهی مدرن با پردازنده در سرعتهای بسیار بالا — میلیاردها عملیات در ثانیه — تبادل داده انجام میدهند. رهگیری یک جریان داده چنین پرسرعتی نیازمند تجهیزات سطح بالا است. سختافزاری که برای اثبات امکانپذیری این نوع حمله در سال ۲۰۲۱ استفاده شد، صدها هزار دلار هزینه داشت.
ویژگیهای WireTap
پژوهشگران آمریکایی پشت پروژهی WireTap موفق شدند هزینهی حمله را به زیر هزار دلار کاهش دهند. نیمی از بودجه صرف یک تحلیلگر منطقی قدیمی تقریباً بیست و پنج ساله شد که از طریق مزایدهی آنلاین تهیه کردند. باقیماندهی هزینهها صرف کانکتورها شد و اینترپوزر، آداپتوری که ماژول حافظهی هدف در آن قرار میگیرد، را خودشان لحیمکاری کردند. چنین تجهیزات منسوخی بهتنهایی قادر به ضبط جریان دادهها در سرعت عادی نیستند، اما پژوهشگران کشف کردند که میتوانند عملکرد ماژول حافظه را کند کنند. آنها موفق شدند سرعت موثر DDR4 را از محدودهی معمول ۱۶۰۰ تا ۳۲۰۰ مگاهرتز به ۱۳۳۳ مگاهرتز کاهش دهند.
از اینجا مراحل کار روشن اما پیچیدهاند:
۱. اطمینان از اینکه دادههای پردازش هدف در ماژول حافظهی دستکاریشده نوشته شده و سپس رهگیری آنها در حالی که هنوز رمزشدهاند؛
۲. وارد کردن یک مجموعهی دادهی شناختهشده به SGX برای رمزنگاری؛
۳. رهگیری نسخهی رمزشدهی آن دادهی شناختهشده، مقایسهی متن روشن معلوم با متن رمز و محاسبهی کلید رمز؛
۴. رمزگشایی دادههای از پیش ضبطشدهی متعلق به پردازش هدف.
خلاصه اینکه کار WireTap درک ما از محدودیتهای ذاتی Intel SGX را بهطور بنیادین تغییر نمیدهد، اما نشان میدهد که اجرای این حمله را میتوان بهطرز چشمگیری ارزانتر کرد.
ویژگیهای Battering RAM
پژوهشگران دانشگاه KU Leuven در بلژیک و همکارانشان در بریتانیا بهجای روش صریح رهگیری داده، روشی ظریفتر برای دسترسی به اطلاعات رمزشده پیاده کردند. بهجای کابلکشی درهم و یک تحلیلگر دادهی حجیم، آنها برد سادهای طراحی کردند که ماژول حافظهی هدف در آن قرار میگیرد و برد توسط یک ریزرایانهی ارزانقیمت Raspberry Pi Pico کنترل میشود. بودجهی سختافزاری تقریباً ناچیز بود — تنها ۵۰ یورو. برخلاف حملهی WireTap، Battering RAM را میتوان بهصورت مخفیانه اجرا کرد؛ نیازی به دسترسی فیزیکی مداوم به سرور نیست و پس از نصب ماژول تغییریافته، دادهی موردنیاز میتواند بهصورت راه دور دزدیده شود.
این برد دقیقاً چه کاری انجام میدهد؟ پژوهشگران دریافتند که با زمین کردن تنها دو خط آدرس که تعیین میکنند اطلاعات کجا نوشته یا خوانده شوند در لحظات مناسب میتوانند حالت آینهای در نوشتن داده ایجاد کنند، بهطوری که اطلاعات همزمان در سلولهای حافظهای نوشته شود که مهاجم به آنها دسترسی دارد. برد اینترپوزر مانند دو کلید ساده عمل میکند که توسط رزبری پای کنترل میشوند. در حالت معمول، دستکاری اتصالات روی سختافزار روشن معمولاً منجر به قفل شدن سیستم یا خراب شدن داده میشود، اما پژوهشگران با قطع و وصل کردن خطوط آدرس فقط در لحظات دقیق لازم به عملکرد پایدار دست یافتند.
این روش به آنها امکان انتخاب مکان ذخیرهسازی داده را میداد. نکتهی حیاتی این است که در این روش حتی نیازی به محاسبهی کلید رمز نبود. آنها ابتدا اطلاعات رمزشدهی مربوط به پردازش هدف را ضبط کردند، سپس برنامهی خود را در همان بازهی حافظهای اجرا کردند و از سامانهی TEE خواستند دادهی پیشتر ضبطشده را بازگشایی کند. این تکنیک به آنها اجازه داد نه تنها Intel SGX را تحت تأثیر قرار دهند بلکه AMD SEV را نیز هک کنند. افزون بر این، کنترل بر نوشتن داده به آنها امکان دور زدن افزونهی امنیتی AMD به نام SEV SNP را داد؛ SEV SNP با استفاده از Secure Nested Paging طراحی شده تا از تغییر دادهها در حافظه جلوگیری کند و ماشین مجازی را در برابر نفوذ محافظت نماید. به طور نظری دور زدن SEV SNP به مهاجم اجازه میدهد نه تنها دادههای رمزشده را بخواند بلکه کدی مخرب را در یک ماشین مجازی بهخطر افتاده تزریق کند.
اهمیت حملات فیزیکی به زیرساختهای سرور
واضح است که اگرچه اجرای عملی چنین حملاتی امکانپذیر است، احتمال وقوع آنها در دنیای واقعی چندان زیاد نیست. ارزش دادههای بهسرقترفته باید آنقدر بالا باشد که دستکاری سختافزاری را توجیه کند. دستکم این دیدگاهی است که شرکتهای Intel و AMD نسبت به راهکارهای امنیتی خود دارند؛ هر دو سازنده اعلام کردهاند که حملات فیزیکی خارج از مدل امنیتی آنها محسوب میشود. با این حال، هر دو تیم تحقیقاتی — آمریکایی و اروپایی — نشان دادند که هزینهی اجرای چنین حملاتی بسیار کمتر از چیزی است که پیشتر تصور میشد. این مسئله میتواند دامنهی بازیگران تهدید را که حاضر به استفاده از چنین آسیبپذیریهای پیچیدهای هستند گسترش دهد.
البته این حملات محدودیتهایی هم دارند. همانطور که پیشتر اشاره شد، سرقت اطلاعات در سیستمهایی انجام شد که از ماژولهای حافظهی استاندارد DDR4 استفاده میکردند. استاندارد جدیدتر DDR5 که در سال ۲۰۲۰ نهایی شده تاکنون حتی در تحقیقات نیز قابل نفوذ نبوده است؛ این موضوع هم به دلیل معماری بازطراحیشدهی ماژولهای DDR5 است و هم به دلیل افزایش چشمگیر سرعت عملکرد آنها. با این وجود، بسیار محتمل است که در آینده پژوهشگران آسیبپذیریهایی در DDR5 نیز کشف کنند — و این موضوع در واقع خبر خوبی است، زیرا امنیت ادعاشدهی سیستمهای TEE باید بهطور منظم تحت بررسیها و ممیزیهای مستقل قرار گیرد. در غیر این صورت ممکن است روزی مشخص شود که یک سیستم بهظاهر قابلاعتماد کاملاً بیاثر شده است.
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.