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

این حمله‌ی کانالِ جانبیِ از راه دور جدید NetSpectre نامیده شده است که مربوط به Spectre نوع ۱ است و از اجرای بر اساس گمان(۱) بهره‌برداری می‌کند تا دور زدن bounds-check را پیاده‌سازی کند و می‌تواند برای شکست دادن address-space layout randomization بر روی سیستم از راه دور مورد استفاده قرار گیرد.

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

اجرای بر اساس گمان یک جزء اصلیِ طراحیِ پردازنده‌های مدرن است که بر اساس گمان دستورالعمل‌‌هایی را بر اساس فرض‌هایی انجام می‌دهد که احتمالاً درست هستند. اگر فرضیه‌ها معتبر باشند، اجرا ادامه می‌یابد و اگر نباشد، رد می‌شود.

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

محققان به‌جای استفاده از کانال کشِ پنهان، حمله NetSpectre را با استفاده از کانال پنهان مبتنی بر AVX انجام دادند که به آن‌ها اجازه داد تا اطلاعات را با سرعت کمِ ۶۰ بیت در ساعت از سیستم مورد هدف دریافت کند.

این تیم در مقاله منتشرشده خود اشاره کردند[۲]: “همان‌طور که حمله NetSpectre ما بر روی شبکه mount شده است، دستگاه قربانی نیاز به رابط شبکه‌ای دارد که مهاجم می‌تواند به آن دست یابد. مهاجم باید بتواند تعداد زیادی از بسته‌های شبکه را برای قربانی ارسال کند.”

حمله netspectre می‌تواند مهاجمان را قادر به خواندن حافظه دلخواه از سیستم‌های موجود در شبکه حاوی گدجت‌های Spectre موردنیاز کند. در حقیقت یک کد که عملیاتی مانند خواندن را از طریق یک آرایه(۴) در یک حلقه(۵) با بررسی محدوده‌ها(۶) در هر تکرار(۷) انجام می‌دهد.

محققان دراین‌باره گفتند: “بسته به محل گدجت، مهاجم به حافظه کل برنامه مربوطه یا کل حافظه کرنل دسترسی دارد، که معمولاً شامل کل حافظه سیستم می‌شود.”

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

محققان گفتند: “حملات NetSpectre نیاز به تعداد زیادی اندازه‌گیری برای تشخیص بیت‌ها با اطمینان قطعی دارند. ما تأیید کردیم که حملات NetSpectre ما در شبکه‌های محلی و همچنین بین ماشین‌های مجازی در cloud گوگل کار می‌کنند.”

این تیم این آسیب‌پذیری را به اینتل در ماه مارس سال ۲۰۱۸ گزارش کرد و حمله NetSpectre توسط اینتل با انتشار وصله‌های اولیه برای اشتباهات طراحی اجرای بر اساس گمان برطرف شد.

بنابراین، اگر شما قبلاً کد و برنامه‌های خود را برای مقابله با بهره‌بردارهای Spectre قبلی به‌روزرسانی کرده‌اید، نباید در موردحمله NetSpectre نگران باشید.

جزئیات حمله NetSpectre تقریباً دو هفته پس‌ازآن که اینتل مبلغ ۱۰۰٫۰۰۰ دلاری را به یک گروه از محققان برای یافتن این آسیب‌پذیری‌های جدید پردازنده که به نوع یک Spectre نیز مربوط بود، پرداخت کرد[۳]، منتشر شد.

در ماه می سال ۲۰۱۸، محققان امنیتی از مایکروسافت و گوگل همچنین نوع چهارم از Spectre که پردازنده‌های مدرن بر روی میلیون‌ها کامپیوتر ازجمله کامپیوترهای به فروش رسیده توسط اپل را تحت تأثیر قرار داده بود، گزارش کردند[۴].

هیچ دژافزاری تاکنون از هیچ‌یک از نسخه‌های Specter یا Meltdown در سطح اینترنت بهره‌برداری نکرده است.

اینتل اعلام کرده است که مقاله خود را تحت عنوانAnalyzing potential bounds check bypass vulnerabilities برای اطلاعات تکمیلی مربوط به حمله NetSpectre به‌روز کرده است[۵].

منابع

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

[۲] http://misc0110.net/web/files/netspectre.pdf

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

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

[۵] https://software.intel.com/sites/default/files/managed/4e/a1/337879-analyzing-potential-bounds-Check-bypass-vulnerabilities.pdf

[۶] https://thehackernews.com/2018/07/netspectre-remote-spectre-attack.html


(۱) speculative execution
(۲) speculative stores
(۳) CPU store cache
(۴) array
(۵) loop
(۶) bounds
(۷) iteration