SEV

محققان امنیتی آلمانی ادعا می‌کنند که یک حمله جدید عملی علیه ماشین‌های مجازی (VM) که با استفاده از فناوری (۱)SEV شرکت AMD محافظت می‌شوند کشف کردند که می‌تواند مهاجمان را قادر به بازیابی داده‌های حافظه متن واضح از ‎VMهای مهمان کند.

فن‌آوری مجازی‌سازیِ رمزگذاری شده‌ی ایمنِ شرکت AMD که همراه با پردازشگرهای EPYC می‌باشد، یک ویژگی سخت‌افزاری است که حافظه هر VM را رمزگذاری می‌کند به‌طوری‌که تنها مهمان، می‌تواند به داده‌ها دسترسی داشته باشد و از آن نسبت به سایر VMها و containerها و حتی نسبت به یک hypervisor غیرقابل‌اعتماد محافظت می‌کند.

محققان Fraunhofer Institute for Applied and Integrated Security در مونیخ کشف کردند که حمله کانال جانبی page-fault، به نام SEVered، از کمبود حفاظت یکپارچگی رمزگذاری page-wise در حافظه اصلی استفاده می‌کند، به‌این‌ترتیب به یک hypervisor مخرب اجازه می‌دهد تا محتوای کامل حافظه اصلی را به‌صورت متن واضح از VM های رمزگذاری شده SEV استخراج کنند.

در اینجا خلاصه‌ای از مقاله منتشر شده آمده است[۱]:

“درحالی‌که ترجمه GVA(2) به (۳)GPA توسط خود VM کنترل می‌شود، HV مسئول SLAT(4) است، به این معنی که GPA مربوط به VM را در نقشه HPA(5) در حافظه اصلی نگه می‌دارد.

“این کار ما را قادر می‌سازد که طرح حافظه VM را در HV تغییر دهیم. ما از این قابلیت برای گول زدن یک سرویس در VM مانند وب سرور استفاده می‌کنیم تا صفحات دلخواه VM را به‌صورت متن واضح بر اساس درخواست یک منبع از خارج برگردانیم.”

“ما ابتدا صفحات رمز شده در حافظه مربوط به منبع را شناسایی می‌کنیم که سرویس، به‌عنوان یک پاسخ به یک درخواست خاص برمی‌گرداند. با ارسال مکرر درخواست‌ها برای یک منبع مشابه به یک سرویس در هنگام re-mapping صفحات حافظه شناسایی‌شده، ما تمام حافظه VM را به‌صورت متن واضح استخراج می‌کنیم.”

در طول آزمایش‌ها، این تیم توانست تمام اطلاعات حافظه ۲ گیگابایتی یک سرور را که شامل اطلاعاتی از VM مهمان دیگری نیز بود، استخراج کند.

محققان در آزمایش تجربی خود، با استفاده از سیستم مبتنی بر لینوکس با پردازنده AMD Epyc 7251 که دارای SEV فعال شده بود، سرویس‌های وب تحت عنوان وب سرورهای Apache و Nginx، همچنین سرور SSH و وب سرور OpenSSH را در VMهای جداگانه اجرا می‌کند.

به‌عنوان HV مخرب، محققان از ماشین مجازی هسته مبتنی بر سیستم (KVM) استفاده کرده و آن را تغییر دادند تا زمانی که نرم‌افزار یک دسترسی مهمان به حافظه فیزیکی داشته باشد.

درحالی‌که استخراج داده‌های حافظه سرورهای وب آپاچی و Nginx بالا بود (با سرعت ۷۹٫۴ کیلوبایت در ثانیه)، OpenSSH دارای زمان پاسخ بیشتری بود که سرعت استخراج را تا ۴۱٫۶ کیلوبایت در ثانیه کاهش داد.

محققان گفتند: “ارزیابی ما نشان می‌دهد که SEVere در عمل قابل‌اجراست و می‌توان آن را برای استخراج کل حافظه از یک VM محافظت‌شده توسط SEV در یک‌زمان معقول استفاده کرد. نتایج به‌طور خاص نشان می‌دهد که جنبه‌های حیاتی مانند سروصدا در هنگام شناسایی و چسبندگی منابع به‌خوبی توسط SEVered مدیریت می‌شود.”

محققان همچنین چندین مرحله را پیشنهاد دادند که AMD می‌تواند برای ایزوله کردن فرایند انتقال بین میزبان و آدرس فیزیکی مهمان (GPA) برای جلوگیری از حمله SEVered مورداستفاده قرار گیرد.

بهترین راه‌حل این است که “یک یکپارچگی کامل و حفاظت از صفحات مهمان‌های اضافی برای رمزگذاری، همان‌طور که در Intel SGX به دست می‌آید، ارائه شود. بااین‌وجود این احتمالاً با هزینه سیلیکون بالا برای حفاظت از VMهای کامل در مقایسه با enclave های SGX همراه است.”

بااین‌حال، ترکیب ایمن هَشِ محتوای صفحه با GPA اختصاص داده‌شده به مهمان می‌تواند یک راه‌حل ارزان‌قیمت و کارآمد باشد، که تضمین می‌کند “صفحات را نمی‌توان با تغییر GPA به HPA mapping به‌راحتی مبادله کرد.”

این تحقیق توسط چهار محقق از Fraunhofer AISEC به نام‌های Mathias Morbitzer، Manuel Huber، Julian Horsch و Sascha Wessel انجام شده است که در مقاله با عنوان “SEVered: Subverting Encryption Virtual Machine AMD” منتشر شده است.

منابع

[۱] https://arxiv.org/pdf/1805.09604.pdf

[۲] https://thehackernews.com/2018/05/amd-sev-encryption.html


(۱) Secure Encrypted Virtualization
(۲) Guest Virtual Address
(۳) Guest Physical Address
(۴) Second Level Address Translation
(۵) Host Physical Address