نرمافزارهای افزودنی نگهبان اینتل
نرمافزارهای افزودنی نگهبان اینتل (SGX)، مجموعه ای از کدهای دستورالعمل مربوط به امنیت هستند که در برخی از واحدهای پردازش مرکزی مدرن اینتل (CPU) ساخته شدهاند. این نرمافزارها به کد در سطح کاربر و همچنین سیستم عامل اجازه میدهند تا ناحیههای خصوصی ای از حافظه، به نام eclaves، که محتوای آنها یا حفاظت شده هستند، یا قادر به خوانده شدن یا ذخیره شدن توسط هر فرایند خارج از enclaves، که شامل فرآیندهای اجرا شده در سطح ویژه (به انگلیسی: privilege level) نیستند، را تعریف کنند.[۱] SGX بهصورت پیش فرض غیرفعال است و باید از طریق تنظیمات مادربرد آنها بر روی یک سیستم پشتیبانی شده توسط کاربر انتخاب شود.[۲]
SGX شامل رمزگذاری قسمتی از حافظه، توسط CPU است. enclave تنها در خود پردازنده رمزگشایی میشود تحت محاصره است رمزگشایی در پرواز تنها در خود پردازنده، و حتی فقط برای کد و دادهها در حال اجرا درون enclave است.[۳] بنابراین پردازنده از کد در برابر جاسوسی یا مورد بررسی قرار گرفتن توسط بقیه کدها جلوگیری میکند. کد و داده درون enclave یک مدل تهدید را استفاده میکنند که در آن enclave مورد اعتماد است ولی هیچیک از فرآیندهای بیرون آن مورد اعتماد نیستند (حتی خود سیستم عامل یا هر هایپروایزری (یه انگلیسی: hypervisor)) و به همین دلیل با همه این موارد به صورت بالقوه به عنوان دشمن برخورد میشود. محتویات آنکلاو به غیر از شکل رمزگذاری شده قادر به خواندن هیچ کد خارج از آنکلاو نیستند. برنامههایی که در داخل SGX اجرا میشوند، باید به طرزی نوشته شده باشند که مقاوم به حملات کانال جانبی باشند چون خود SGX آهها را در برابر انجام حملات کانال جانبی محافظت نمیکند.[۴]
SGX به گونه ای طراحی شدهاست که برای اجرای محاسبات از راه دور ایمن، مرور وب امن و مدیریت حقوق دیجیتال (DRM) مفید باشد.[۵] برنامههای دیگر، شامل پنهان کردن الگوریتمهای انحصاری و کلیدهای رمزگذاری هستند.[۳]
جزئیات
[ویرایش]SGX برای اولین بار با ریزپردازندههای نسل ششم Intel Core که بر اساس ریزپردازندهٔ Skylake بودند، در سال ۲۰۱۵ معرفی شد.
پشتیبانی از SGX در پردازنده در CPUID مشخص است،[۶] اما در دسترس بودن آن برای برنامهها نیاز به پشتیبانی BIOS / UEFI و فعال کردن opt-in دارد که در بیتهای CPUID منعکس نمیشود. این منطق تشخیص ویژگی را برای برنامهها پیچیده میکند.[۷]
شبیهسازی SGX به نسخه آزمایشی شبیهساز سیستم QEMU در سال ۲۰۱۴ اضافه شد.[۸] در سال ۲۰۱۵، محققان موسسه فناوری جورجیا یک شبیهساز منبع باز را به نام "OpenSGX" منتشر کردند.[۹]
یک نمونه از SGX مورد استفاده در امنیت، یک برنامه نمایشی از wolfSSL[۱۰] است که برای الگوریتمهای رمزنگاری استفاده میکند.
(GoldmonPlust(Gemini Lake اینتل نیز شامل پشتیبانی از Intel SGX است.[۱۱]
حملات
[ویرایش]حمله نخستین + پروب
[ویرایش]در تاریخ ۲۷ مارس ۲۰۱۷ محققان در دانشگاه صنعتی گراس اتریش اثبات مفهومی را توسعه دادند که میتواند کلیدهای RSA را ظرف مدت پنج دقیقه، از SGX enclavesهایی که روی همان سیستم در حال اجرا هستند با استفاده از یک سری دستورالعملهای مشخص به جای یک تایمر ریزدانه به منظور بهرهبرداری از کانال جانبی حافظه نهان DRAM، به دست آورد.[۱۲][۱۳] یکی از راههای مقابله با این حمله توسط دانیل گروس و همکاران در سمپوزیوم امنیتی USENIX در سال ۲۰۱۷ ارائه و چاپ شد.[۱۴] در کنار همهٔ مقابلات چاپ شده، یک مقابله با این نوع حمله در تاریخ ۲۸ سپتامبر ۲۰۱۷ منتشر شد، ابزاری مبتنی بر کامپایلر، DR. SGX، که ادعا میکند با از بین بردن پیچیدگی پیادهسازی سایر راه حلهای پیشنهادی، عملکرد برتر دارد.
حمله شبح وار
[ویرایش]گروه LSDS در کالج امپریال لندن اثبات مفهومی را نشان داد که آسیبپذیری امنیتی اجرای سوداگرانه شبح میتواند برای حمله به enclave امن سازگار شود.[۱۵] حمله Foreshadow که در اوت سال ۲۰۱۸ آشکار شدهاست، ترکیبی از اجرای سود گرایانه و سرریز بافر برای دور زدن SGX است.[۱۶]
حمله Enclave
[ویرایش]در ۸ فوریه سال ۲۰۱۹، محققان دانشگاه صنعتی گراس اتریش یافتههایی را منتشر کردند، که نشان میداد در بعضی موارد امکان اجرای کد مخرب از درون enclave وجود دارد. بهرهبرداری شامل اسکن کردن حافظهٔ فرایند برای بازسازی یک ظرفیت ترابری (به انگلیسی: payload) است که پس از آن میتواند کد را روی سیستم اجرا کند. در این مقاله ادعا شدهاست که با توجه به ذات محرمانه و حفاظت شدهٔ enclave، امکان شناسایی و برداشتن بدافزارهای ساکن در آن برای نرمافزار آنتیویروس غیرممکن است. با این وجود، از آنجایی که ضد بدافزارها و آنتیویروسهای مدرن، فراخوانیهای سیستم و تعامل برنامه با سیستم عامل را نظاره میکنند، شناسایی enclaveهای مخرب توسط رفتارهای خود آنها باید امکانپذیر باشد و به نظر میآید که این مسئله خیلی مورد نگران کننده ای برای آنتیویروسها نباشد. اینتل با صادر کردن بیانه ای اعلام کرد که این حمله خارج از مدل تهدید SGX است و بیان کرد که نمیتواند ضمانت دهد که کد اجرا شده توسط کاربر از یک منبع قال اعتماد است و مصرفکنندگان را به اجرای کدهای معتمد تشویق کرد.[۱۷]
حمله مجدد میکروسکوپ
[ویرایش]گرفتار شدن معماری کامپیوترهای مدرن به حملات کانال جالبی رو به افزایش است. بسیاری از این حملات، تغییرات جزئی و غیر متعارف در اجرای بعضی از کدها را اندازهگیری میکنند، به گونه ای که حمله کننده نیازمند احتمالاً دهها هزارها از این اندازهگیریها است تا اسرار را در به دست بیاورد. اگرچه، حملات میکروسکوپی به یک سیستم عامل مخرب اجازه میدهد تا بدون در نظر گرفتن ساختار واقعی برنامه، خودسرانه بارها کد را بازپخش کند که امکان دهها حملات کانال جانبی را ایجاد میکند.
غارتگر (به انگلیسی: Plundervolt)
[ویرایش]محققان امنیتی توانستهاند خطاهای زمانبندی خاص را در اجرای داخل enclaves تزریق کنند که منجر به نشت اطلاعات میشود. حمله می تواند از راه دور انجام شود، اما نیازمند دسترسی به کنترل ویژهٔ ولتاژ و فرکانس پردازنده دارد.[۱۸]
LVI
[ویرایش]بارگذاری مقدار تزریق شده،[۱۹][۲۰] داده را با هدف جایگزینی مقدار بارگذاری شده از حافظه ای که بعد از مدت کوتاهی و قبل از تشخیص خطا و عملیات واگردانی (به انگلیسی: rollback) و در زمان کنترل داده و جریان داده توسط LVI، استفاده میشود، به برنامه ای تزریق میکند.
SGAxe
[ویرایش]SGAxe ,[۲۱] یک آسیبپذیری SGX، یک حمله اجرای نظری روی حافظه پنهان،[۲۲] و نشتی از محتوای enclave را ایجاد میکند. این آسیبپذیری به حمله کننده اجازهٔ دسترسی به کلیدهای خصوصی پردازنده که برای گواهی و تصدیق از راه دور هستند، را میدهد. به عبارت دیگر، یک بازیگر تهدید میتواند از مقابلههای اینتل را برای نقض محرمانه بودن enclave بگذرد. حمله SGAxe با استخراج کلیدهای تصدیق از نقل قول خصوصی enclave برای SGX که توسط اینتل امضا شدهاست، انجام میشود. مهاجم سپس میتواند با امضای دلخواه نقل قول SGX، به عنوان ماشینهای مشروع و حقدار اینتل، خود را جا بزند.[۲۳]
جستارهای وابسته
[ویرایش]- اینتل MPX
- Spectre-NG
- محیط اجرای مطمئن (TEE)
منابع
[ویرایش]- ↑ "Intel SGX for Dummies (Intel SGX Design Objectives)". intel.com. 2013-09-26.
- ↑ johnm (2017-08-08). "Properly Detecting Intel® Software Guard Extensions (Intel® SGX) in Your Applications". software.intel.com (به انگلیسی). Retrieved 2019-02-15.
- ↑ ۳٫۰ ۳٫۱ "Researchers Use Intel SGX To Put Malware Beyond the Reach of Antivirus Software - Slashdot". it.slashdot.org.
- ↑ "Intel SGX and Side-Channels". intel.com. 2020-02-28.
- ↑ "Intel SGX Details". intel.com. 2017-07-05.
- ↑ Intel Architecture Instruction Set Extensions Programming Reference, Intel, AUGUST 2015, page 36 "Structured Extended feature Leaf EAX=07h, EBX Bit 02: SGX"
- ↑ "Properly Detecting Intel Software Guard Extensions in Your Applications". intel.com. 2016-05-13.
- ↑ "Intel SGX Emulation using QEMU" (PDF). tc.gtisc.gatech.edu. Retrieved 2018-11-02.
- ↑ "sslab-gatech/opensgx". GitHub. Retrieved 2016-08-15.
- ↑ "wolfSSL At IDF". wolfssl. 2016-08-11.
- ↑ "Intel® Pentium® Silver J5005 Processor". Retrieved 2020-07-10.
- ↑ Chirgwin, Richard (March 7, 2017). "Boffins show Intel's SGX can leak crypto keys". The Register. Retrieved 1 May 2017.
- ↑ Schwarz, Michael; Weiser, Samuel; Gruss, Daniel; Maurice, Clémentine; Mangard, Stefan (2017). "Malware Guard Extension: Using SGX to Conceal Cache Attacks".
- ↑ "Strong and Efficient Cache Side-Channel Protection using Hardware Transactional Memory" (PDF). USENIX. 2017-08-16.
- ↑ Sample code demonstrating a Spectre-like attack against an Intel SGX enclave.
- ↑ Peter Bright - Jul 10, 2018 9:00 pm UTC (2018-07-10). "New Spectre-like attack uses speculative execution to overflow buffers". Ars Technica. Retrieved 2018-11-02.
- ↑ Bright, Peter (2019-02-12). "Researchers use Intel SGX to put malware beyond the reach of antivirus software". Ars Technica (به انگلیسی). Retrieved 2019-02-15.
- ↑ "Plundervolt steals keys from cryptographic algorithms". Rambus Blog (به انگلیسی). 2019-12-11. Retrieved 2020-03-20.
- ↑ "LVI: Hijacking Transient Execution with Load Value Injection". lviattack.eu. Retrieved 2020-03-12.
- ↑ "Load Value Injection". software.intel.com. Retrieved 2020-03-12.
- ↑ "SGAxe: How SGX Fails in Practice".
- ↑ "CacheOut: Leaking Data on Intel CPUs via Cache Evictions".
- ↑ "SGAxe & CrossTalk Attacks: New Intel SGX Vulnerability Leaks Data". Hack Reports (به انگلیسی). 2020-06-12. Retrieved 2020-06-12.