Spectre

اینتل مبلغ ۱۰۰٫۰۰۰ دلار جایزه را برای کشف آسیب‌پذیری‌های جدید پردازنده که مربوط به Spectre  نوع ۱ می‌باشد (CVE-2017-5753) پرداخت کرده است[۱].

انواع Spectre جدید با عنوان Spectre 1.1 یا CVE-2018-3693 و Spectre 1.2 خوانده می‌شوند که Spectre 1.1 را با عنوان یک حمله bounds-check bypass store توصیف کردند که خطرناک‌تر در نظر گرفته شده است.

در اوایل سال جاری محققان پروژه صفر گوگل جزئیات نوع ۱ و ۲ (CVE-2017-5753 و CVE-2017-5715) که با عنوان Spectre و نوع ۳ که با عنوان Meltdown شناخته می‌شوند را منتشر کردند[۲].

نقص‌های Spectre از اجرای بر اساس گمان(۱) سود می‌برند، یک روش بهینه‌سازی که توسط پردازنده‌های مدرن استفاده می‌شود، که به‌طور بالقوه داده‌های حساس را از طریق یک کانال جانبی با مشاهده سیستم افشا می‌کند.

اجرای بر اساس گمان یک جزء اصلی از طراحی پردازنده‌های مدرن است که به‌صورت گمانه‌زنی(۲) دستورالعمل‌هایی را بر اساس فرض‌هایی انجام می‌دهد که احتمالاً درست هستند[۳]. اگر فرضیه‌ها معتبر باشند، اجرا ادامه می‌یابد، در غیر این صورت رد می‌شود.

آسیب‌پذیری‌های جدید پردازنده در کلاس Spectre 

یک تیم از محققان شامل Vladimir Kiriansky از MIT و Carl Waldspurger در حال حاضر دو نوع متفاوت از Spectre  نوع ۱ را کشف کرده‌اند[۴].

انواع Spectre جدید تقریباً یک ماه پس‌ازآنکه محققان مایکروسافت و گوگل یک Spectre نوع ۴ را افشا کردند که بر روی پردازنده‌های مدرن در میلیون‌ها کامپیوتر شامل کامپیوترهایی فروخته‌شده توسط اپل تأثیرگذار بودند [۵]، منتشر شدند.

Spectre 1.1: Bounds Check Bypass on Loads

Spectre نوع ۱٫۱ یک نسخه از Spectre نوع ۱ اصلی است که از محل‌های ذخیره گمانه‌زنی شده(۳) برای ایجاد سرریزهای بافر بر اساس گمان استفاده می‌کند.

این مسئله سرریز بافر در کشِ ذخیره‌سازی پردازنده می‌تواند یک مهاجم را مجاز به نوشتن و اجرای کد موذی کند که به‌طور بالقوه می‌تواند برای استخراج داده‌ها ازجمله کلمات عبور، کلیدهای رمزنگاری و سایر اطلاعات حساس از حافظه‌ی پردازنده قبلاً امن شده(۴)، مورد بهره‌برداری قرار گیرد.

محققان در مقاله تحقیقاتی خود نوشتند: “قابلیت اجرای writeهای گمانه‌زنی شده‌ی(۵) دلخواه، خطرات جدید قابل‌توجهی را ارائه می‌دهد که شامل اجرای بر اساس گمان دلخواه می‌شود.”

“این قابلیت همچنین اجازه می‌دهد تا مهاجمان اقدامات کاهش شدتِ(۶) نرم‌افزاریِ توصیه‌شده برای حملات اجرای بر اساس گمان(۷) قبلی را دور بزنند.”

Spectre1.2: دور زدن حفاظت فقط-خواندنی(۸)

نوع Spectre 1.2 بستگی به اجرای(۹) lazy PTE دارد، همان مکانیسمی است که بهره‌برداری از نقص Meltdown به آن متکی است.

این نقص می‌تواند به یک مهاجم بالقوه اجازه دهد که flag های PTE از نوع Read/Write را دور بزند، که درنهایت آن‌ها را قادر می‌سازد تا حافظه داده‌های فقط-خواندنی، مِتادیتای کد(۱۰) و اشاره‌گرهای(۱۱) کد را بازنویسی(۱۲) کنند تا از sandbox ها اجتناب کنند.

محققان گفتند: “در یک حمله Spectre 1.2، محل‌های ذخیره بر اساس گمان مجاز هستند که داده‌های فقط خواندنی، نشانگرهای کد و مِتادیتای کد را ازجمله vtable ها، GOT/IAT و مِتادیتای پیشگیری جریان-کنترل(۱۳) را بازنویسی کنند.”

اگرچه ARM در پست وبلاگ خود که در تاریخ ۱۱ جولای ۲۰۱۸ منتشر شد همچنین اعلام کرد که نقص Spectre 1.1 وجود دارد اما این سازنده تراشه به‌صراحت اشاره نکرد که کدام‌یک از پردازنده‌های ARM به‌طور خاص به Specter 1.1 و Spectre 1.2 آسیب‌پذیر هستند. AMD هنوز وجود این نقص‌ها را تأیید نکرده است.

مایکروسافت، Red Hat و اوراکل[۶-۸] نیز اطلاعیه رسمی خود را دراین‌باره منتشر کرده‌اند و گفته‌اند که هنوز در حال تحقیق هستند که آیا دیگر محصولاتشان نیز به انواع جدید Spectre آسیب‌پذیر است هست یا نه.

Eric Maurice، مدیر امنیت اوراکل دراین‌باره گفت: “این مسائل احتمالاً عمدتاً بر روی سیستم‌عامل‌ها و پلتفرم‌های مجازی‌سازی(۱۴) تأثیرگذار هستند و ممکن است به به‌روزرسانی نرم‌افزار، به‌روزرسانی میکرو کد یا هر دو نیازمند باشند.”

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

اینتل از Kiriansky و Waldspurger برای گزارش این آسیب‌پذیری‌های جدید به این سازنده تراشه تشکر کرد و به Kiriansky از طریق برنامه bug bounty خودش در HackerOne مبلغ ۱۰۰٫۰۰۰ دلار پرداخت کرد.

منابع

[۱] https://thehackernews.com/2018/01/meltdown-spectre-patches.html

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

[۳] https://apa.aut.ac.ir/?p=5008

[۴] https://people.csail.mit.edu/vlk/spectre11.pdf

[۵] https://apa.aut.ac.ir/?p=4474

[۶] https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002

[۷] https://access.redhat.com/security/cve/cve-2018-3693

[۸]https://blogs.oracle.com/oraclesecurity/updates-about-the-spectre-series-of-processor-vulnerabilities-and-cve-2018-3693

[۹] https://thehackernews.com/2018/07/intel-spectre-vulnerability.html


(۱) speculative execution
(۲) speculatively
(۳) speculative stores
(۴) previously-secured
(۵) speculative
(۶) mitigations
(۷) speculative-execution attacks
(۸) read-only
(۹) enforcement
(۱۰) code metadata
(۱۱) pointers
(۱۲) overwrite
(۱۳) ontrol-flow mitigation metadata
(۱۴) virtualization