SGX

محققان امنیت سایبری راهی برای مخفی کردن کد موذی در enclave های SGX شرکت اینتل کشف کردند. Enclave های SGX در حقیقت یک ویژگی رمزگذاری حافظه و مبتنی بر سخت‌افزار در پردازنده‌های مدرن است که از کد و داده‌های حساس در برابر افشای آن‌ها یا تغییر آن‌ها محافظت می‌کند.

به‌عبارت‌دیگر، این تکنیک به مهاجمین اجازه می‌دهد کدهای دژافزار را در یک حافظه‌ی امن که حفاظت از ویژگی‌های SGX را پشتیبانی می‌کند و طراحی‌شده است تا بتواند داده‌های مهم را از تغییر داده شدن، حتی در سیستم‌های آسیب‌دیده، محافظت کند، پیاده‌سازی کنند.

ویژگی SGX  یا Software Guard Extensions که با پردازنده‌های Skylake اینتل معرفی شد، به سازندگان برنامه‌های کاربردی اجازه می‌دهد که ماژول‌های انتخاب‌شده از یک برنامه را در یک منطقه‌ی کاملاً ایمن از حافظه به نام Enclaves اجرا کنند که برای محافظت از فرآیندهای در حال اجرا در سطوح بالاتر از قبیل سیستم‌عامل، هسته، BIOS، SMM، hypervisor و غیره طراحی‌شده است.

بااین‌حال، یک تیم از محققان، که بعضی از آن‌ها در کشف آسیب‌پذیری‌های پردازنده یعنی Spectre و Meltdown دست داشتند[۱]، توانستند از این سد حفاظتی عبور کنند و برنامه موذی خود را در enclaves ایمن با استفاده از یک تکنیک قدیمی به نام return-oriented programming یا ROP قرار دهند.

این حمله همچنین از Transactional Synchronization eXtensions یا TSX، که در پردازنده‌های مدرن اینتل یافت می‌شود[۲]، همراه با یک تکنیک اولیه خواندنی مبتنی بر خطا یعنی TSX-based Address Probing یا TAP استفاده می‌کند.

TAP از TSX برای تعیین اینکه آیا یک آدرس مجازی در فرآیند فعلی قابل‌دسترسی است یا نه، استفاده می‌کند و این اکتشاف حافظه غیرقابل تشخیص است، زیرا برنامه‌های کاربردی در سطح سیستم‌عامل نمی‌توانند در طراحی، تحت تأثیر قرار گیرند.

در یک مقاله تحقیقاتی که در تاریخ ۱۲ فوریه ۲۰۱۹ منتشر شد دراین‌باره آمده است[۳]: “حمله‌ی SGX-ROP ما از یک افشای حافظه‌ی مبتنی بر TSX اولیه و یک write-anything-anywhere اولیه برای ساخت یک حمله مجدد از داخل یک enclave استفاده می‌کند که از طریق برنامه میزبان و سه‌ها اجرا می‌شود.”

برای تعیین اینکه آیا یک صفحه‌ی حافظه قابل‌نوشتن است یا نه، این تیم یک رشته نوشتن مقاوم در برابر خطا، به نام Checking Addressed Addresses for Writability یا CLAW را ایجاد کرد که دستورالعمل نوشتن را برای صفحه‌ی حافظه‌ی مورد هدف در داخل تراکنش TSX کپسوله کرد و پس از نوشتن صراحتاً این تراکنش را قطع کرد.

پس‌ازآن، قابلیت نوشتن صفحه‌ی حافظه‌‌ی مورد هدف را می‌توان بر اساس مقدار بازگشتی تراکنش محاسبه کرد.

هنگامی‌که این دژافزار راه خود را به محدوده‌ی ایمن enclave پیدا می‌کند، محرمانه بودنی که SGX اساساً برای برنامه‌های قانونی تضمین می‌کند نیز محققان یا راه‌حل‌های امنیتی را از تشخیص و تجزیه‌وتحلیل این دژافزار در یک enclave منع می‌کند.

این درنهایت به این دژافزار اجازه می‌دهد تا فن‌آوری‌های مختلف امنیتی مانند ASLR یاAddress Space Layout Randomization، stack canaries و address sanitizer را دور بزند و همچنین کد دلخواه خود را روی سیستم هدف اجرا کند.

محققان دانشگاهی دراین‌باره توضیح می‌دهند: “علاوه بر این، یک تهدید بالقوه در ارتباط با باج‌گیر افزارهای نسل بعدی وجود دارد که به‌طور ایمن کلیدهای رمزگذاری خود را در داخل enclave نگه می‌دارند و اگر به‌درستی اجرا شود، ابزارهای بازیابی باج‌گیر افزار، قابلیت خود را از دست می‌دهند.”

محققان دراین‌باره گفتند که بهره‌بردار اثبات ادعای تولیدشده توسط تیم آن‌ها در حقیقت ASLR، stack canaries و address sanitizer را دور میزند و با اجرای گدجت های ROP درزمینه‌ی میزبان امکان پیاده‌سازی دژافزار در enclave را فراهم می‌کند[۴]. کل پروسه‌ی بهره‌برداری ۲۰٫۸ ثانیه طول می‌کشد[۵].

در پایان، محققان دانشگاهی نتیجه گرفتند که به‌جای حفاظت از کاربران در برابر آسیب، SGX در حال حاضر یک تهدید امنیتی را به وجود می‌آورد و در حقیقت سوء‌استفاده از دژافزارها با بهره‌برداری‌های آماده به ضربه را فراهم می‌کند.

مقابله با چنین حملاتی می‌تواند در نسل‌های آینده از پردازنده‌های اینتل کهEnclave  های SGX را بهتر sandbox می‌کنند، پیاده‌سازی شود. چراکه بعضی از این روش‌های مقابله با حملات نیاز به تغییرات در سطح سخت‌افزاری و بدون تأثیر روی کارایی پردازنده‌ها دارند و برخی از آن‌ها نیازی به تغییرات سخت‌افزاری نخواهند داشت اما کارایی را کاهش می‌دهند.

منابع

[۱] https://apa.aut.ac.ir/?p=3397

[۲] https://software.intel.com/en-us/node/524022

[۳] https://arxiv.org/pdf/1902.03256.pdf

[۴] https://github.com/sgxrop/sgxrop

[۵] https://youtu.be/SmnPj7KR8BA

[۶] https://thehackernews.com/2019/02/intel-sgx-malware-hacking.html