موضوع مقاله: اسپکتر (آسیب‌پذیری امنیتی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اسپکتر (آسیب‌پذیری امنیتی) | مقدمه: اسپکتر آسیبی است که تأثیر آن بر ریزپردازندههای مدرن که پیش‌بینی انشعاب را انجام می‌دهند نمایان می‌شود. | ## بخش 1: اسپکتر (آسیب‌پذیری امنیتی) | در بیشتر ریز پردازنده‌ها، اجرای سوداگرانه ناشی از انشعاب نادرست ممکن است تأثیرات جانبی قابل توجه ای داشته باشد و امکان دارد داده‌های خصوصی را برای مهاجمین آشکار سازد. به عنوان مثال، اگر الگوی دسترسی به حافظه انجام شده توسط چنین اجرای سوداگرانه ای وابسته به داده‌های خصوصی باشد، نتیجه حاصل از حافظه نهان داده یک کانال جانبی را تشکیل می‌دهد که از طریق آن یک مهاجم ممکن است با استفاده از یک حمله زمان‌بندی ، بتواند اطلاعات مربوط به داده‌های خصوصی را استخراج نماید. دو شناسه متداول آسیب‌پذیری و افشای مربوط به اسپکتر عبارتند از: CVE-2017-5753 (گذرگاه بررسی محدوده اسپکتر-نسخه۱، اسپکتر ۱٫۰) و CVE-2017-5715 (تزریق انشعاب هدف، اسپکتر نسخه2). موتورهای JIT که برای جاوا اسکریپت مورد استفاده قرار می‌گرفتند آسیب‌پذیر یافت شدند. یک وب سایت می‌تواند داده‌های ذخیره شده در مرورگر را برای وب سایت دیگری با حافظه مرورگر خود بخواند. در اوایل سال ۲۰۱۸، اینتل اعلام کرد که واحدهای پردازش مرکزی خود را به گونه‌ای طراحی خواهد کرد که در مقابل آسیب‌های اسپکتر، آسیب‌های مرتبط با ملتداون و ضررهای مرتبط با عملکرد، محافظت شود. در ۸ اکتبر سال ۲۰۱۸، گزارش شد که شرکت اینتل جهت آسیب‌پذیری‌های اسپکتر و ملتداون، کاهش سخت‌افزار و سیستم عامل را به جدیدترین پردازنده‌های خود اضافه کرده‌است. در اکتبر سال ۲۰۱۸، محققان MIT رویکرد کاهش جدیدی بنام DAWG (حفاظ راه تخصیص یافته پویا) ارائه دادند که ممکن است نوید امنیت بهتر بدون به خطر انداختن عملکرد را داشته باشد. اگر اطلاعات ازحافظه نهان خوانده شده باشد، زمان دسترسی بسیار کوتاه خواهد بود، این بدان معناست که داده‌های خوانده شده می‌توانند شامل کلید خصوصی الگوریتم‌های رمز شده باشند. سپس پژوهش آسیب‌پذیری مایکروسافت آن را به موتورهای جاوا اسکریپت JIT مستقر در مرورگر تعمیم داد. این پژوهش در رابطه با دیگر آسیب‌پذیری ملتداون، در ۳ ژانویه سال ۲۰۱۸، پس از آن که فروشندگان سخت‌افزار آسیب دیده از قبل در تاریخ ۱ ژوئن ۲۰۱۷ از این موضوع آگاه شدند ، منتشر شد. آسیب‌پذیری به نام اسپکتر نامیده می‌شد، زیرا "بر پایه علت اساسی، اجرا سوداگرانه" بود. " در تاریخ ۲۸ ژانویه ۲۰۱۸، گزارشی از شرکت اینتل منتشر شد مبنی بر آنکه شرکت اینتل قبل از اطلاع از نقص‌های دولت، اخبار مربوط به آسیب‌پذیری‌های امنیتی ملتداون و اسپکتر را با شرکت‌های فناوری چینی به اشتراک گذاشته‌است. در ۲۹ ژانویه ۲۰۱۸، مایکروسافت گزارش داد که یک نسخه به روز شده از ویندوز را منتشر کرده‌است که مشکل ریزکد اینتل در آن رفع شده‌است. این مشکل در بعضی مواقع باعث راه اندازی مجدد، بی‌ثباتی سیستم و اتلاف یا از بین رفتن داده‌ها می‌شد و در گذشته توسط اینتل برای حمله اسپکتر نسخه۲ صادر شده بود. پس از افشای اسپکتر و ملتداون در ژانویه سال ۲۰۱۸، تحقیقات زیادی در مورد آسیب‌پذیری‌های مربوط به اجرای سوداگرانه انجام شده‌است. در تاریخ ۱۰ ژوئیه ۲۰۱۸، اینتل جزئیاتی در زمینه آسیب‌پذیری کلاس دیگر اسپکتر-NG با نام ذخیره گذرگاه بررسی محدوده‌ها (BCCS)، که به عنوان "اسپکتر 1.1" (CVE-۲۰۱۸–۳۶۹۳) نیز شناسایی می‌شود، ارائه داد که قادر به نوشتن و همچنین خواندن خارج از محدوده‌ها بود. در اواخر ژوئیه سال ۲۰۱۸، محققان دانشگاه‌های سارلند و کالیفرنیا "اسپکتر v5" و اسپکترRSB، را ارائه کردند، که نمونه‌های جدیدی از آسیب‌پذیری‌های اجرای کد را با استفاده از بافر پشته ای بازگشتی(RSB) انجام می‌دهند. در پایان ژوئیه سال ۲۰۱۸، محققان دانشگاه گراس «Netاسپکتر» را معرفی نمودند که نوع جدیدی از حمله از راه دور مانند اسپکتر نسخه۱ است. در ۸ اکتبر سال ۲۰۱۸، گزارشی از اینتل به منظور کاهش آسیب اسپکتر و ملتداون، سخت‌افزار و سیستم عامل‌هایی را به جدیدترین پردازنده‌های خود، اضافه کرده‌است. محققان سعی در به خطر انداختن روش‌های حفاطت از واحد پردازنده مرکزی با استفاده از کد را دارند تا به منظور کشف جدول تاریخچه الگوی واحد پردازنده مرکزی، بافر انشعاب هدف، بافر پشته بازگشتی و جدول تاریخچه انشعاب‌ها استفاده شود. در آگوست سال ۲۰۱۹، آسیب‌پذیری واحد پردازنده مرکزی مربوط به اجرای گذرا با نام اسپکتر (SWAPGC (CVE-2019-1125، گزارش شده‌است. سازوکار اسپکتر یک آسیب است که یک برنامه را جهت دسترسی به محل‌های دلخواه در فضای حافظه برنامه ترغیب می‌نماید. یک مهاجم ممکن است محتوای حافظه در دسترس را بخواند و سپس به‌طور بالقوه توانایی دسترسی به داده‌های حساس را داشته باشد. علی‌رغم یک آسیب‌پذیری با اصلاح ساده، اسپکتر کاغذ سفید یک کلاس کامل از آسیب‌پذیری‌های بالقوه است. تمام این آسیب‌پذیری‌ها بر اساس استفاده از اثرات جانبی ناشی از اجرای سوداگرانه، ابزارهای متداول پنهان کردن حافظه و بالا بردت سرعت اجرا در ریزپردازندههای مدرن هستند. بر خلاف آسیب‌پذیری مربوط به ملتداون که در همان زمان آشکار شد، اسپکتر به مشخصات خاصی از سیستم مدیریت و حفاظت از حافظه یک پردازنده تکیه نمی‌کند، بلکه آن یک ایده کلی تر است. | ## بخش 2: اسپکتر (آسیب‌پذیری امنیتی) | نقطه آغاز کاغذ سفید حمله زمانبندی کانال جانبی است که در ماشین‌های پیش‌بینی انشعاب در میکروپروسسورهای مدرن با قابلیت اجرای خارج از نوبت استفاده می‌شود. در حالی که در سطح معماری ثبت شده در کتاب‌های پردازنده داده که، هرگونه نتیجه نادرست تشخیص داده شده جهت حذف کردن پس ازاین واقعیت، اجرای سوداگرانه ای که حاصل می‌شود ممکن است همچنان مانند خطوط حافظه پنهان بارگذاری و تأثیرات جانبی را به همراه داشته باشد و در نتیجه می‌توانند بعدها بر جنبه‌های غیر کاربردی محیط محاسبات تأثیر بگذارند. اگر چنین تأثیرات جانبی وجود داشته ولی محدود به زمان دسترسی به حافظه نباشند، برای یک برنامه مخرب قابل مشاهده است، و می‌توان آن را طوری مهندسی کرد تا به داده‌های حساس نگه داشته شده توسط فرایند قربانی بستگی داشته باشند، سپس این اثرات جانبی می‌توانند منجر به تشخیص داده‌های حساس شوند. این اتفاق می‌تواند با وجود ترتیبات رسمی امنیتی در سطح معماری که به صورت طراحی شده کار می‌کنند رخ دهد. در این مورد، کاهش، بهینه‌سازی سطح ریز معماری در اجرای کد (می‌تواند) اطلاعات غیر ضروری جهت صحت اجرای برنامه عادی را نشت دهد. مقاله اسپکتر یک حمله را در چهار مرحله اصلی ارائه می‌دهد: مرحله اول، نشان می‌دهد که منطق پیش‌بینی انشعاب در پردازنده‌های مدرن می‌تواند جهت موفقیت یا شکست قابل اعتماد بر اساس کارکرد داخلی یک برنامه مخرب آموزش داده شود. در ادامه، تفاوت متعاقب بین موفقیت‌ها و خطاهای حافظه پنهان را می‌توان به صورت قابل اطمینانی زمان‌بندی کرد، بنابراین آنچه که باید یک تفاوت غیرکاربردی ساده باشد، در واقع می‌تواند به یک کانال مخفی تبدیل شود که اطلاعات را از عملکردهای داخلی یک فرایند غیر مرتبط استخراج کند. سومین مرحله، مقاله نتایج را با استفاده از برنامه‌نویسی بازگشتی و سایر اصول با یک نمونه برنامه ساده و یک قطعه کد جاوا اسکریپت که تحت یک مرورگر sandboxing اجرا می‌شود، ترکیب می‌کند. در هر دو مورد، کل فضای آدرس فرایند قربانی (به عبارتی محتویات یک برنامه در حال اجرا) به سادگی با سوء استفاده از اجرای سوداگرانه انشعابات شرطی در کد تولید شده توسط یک مفسر موجود یا ابزارهای جاوا اسکریپت موجود در یک مرورگر موجود قابل خواندن است. ایده اصلی این است که کدهای موجود را در مکانهایی جستجو کنید که حدس جهت دست یابی به داده‌های غیرقابل دسترسی وجود دارد، دستکاری پردازنده در وضعیتی که اجرای سوداگرانه مجبور شود با آن داده تماس پیدا کند و سپس زمان اثر جانبی پردازنده را اگر دستگاه‌های آماده پیش ساخته آن واقعاً خط حافظه نهان را بارگیری کرده باشند، تسریع نماید. سرانجام، مقاله با تعمیم حمله به هر وضعیت غیرعملی فرایند قربانی نتیجه‌گیری می‌نماید. به‌طور خلاصه حتی در مورد اثرات غیر کاربردی و مبهم مانند تأخیر در داوری خط باس بحث می‌شود. تفاوت اساسی بین اسپکتر و ملتداون در این است که می‌توان از اسپکتر برای دستکاری یک فرایند جهت آشکارسازی داده‌های خود استفاده کرد. از طرف دیگر، از ملتداون می‌توان برای خواندن حافظه ممتاز در فضای آدرس فرایند استفاده کرد که حتی خود این فرایند نیز قادر به دستیابی به آن نیست (در برخی از سیستم عامل‌های حافظت نشده این امر شامل داده‌های متعلق به هسته یا سایر فرایندها می‌باشد). مقاله ملتداون دو آسیب‌پذیری را از این رو مشخص می‌نماید: ملتداون به طرق متفاوتی از حملات اسپکتر متمایز است، بویژه این که اسپکتر نیاز به انطباق در محیط نرم‌افزار فرایند قربانی دارد، اما بطور گسترده‌تری برای پردازنده‌ها اعمال می‌شود و توسط KAISER کاهش نمی‌یابد." بهره‌برداری از راه دور در حالی که اسپکتر با بهره‌گیری از زبان تفسیر شده از جمله C یا C ++ با استفاده از اجرای محلی کد ماشین، ساده‌تر است، اما می‌توان توسط کدی که در صفحات وب مخرب از راه دور قرار گرفته‌است، مورد بهره‌برداری از راه دور قرار گیرد، به عنوان مثال می‌توان از زبان‌های تفسیری مانند JavaScript که بصورت محلی از طریق یک مرورگر وب به کار گرفته می‌شود، استفاده کرد. سپس بدافزار اسکریپت شده به تمام حافظه‌های نقشه‌برداری شده به فضای آدرس مرورگر در حال اجرا دسترسی پیدا می‌کند. چندین سیاست اخراج از حافظه نهان خودکار وجود دارد که CPU ممکن است آن را انتخاب کند و حمله به این توانایی متکی است که قادر است آن اخراج را برای استفاده از بهره‌برداری مجبور کند. مشخص شد که استفاده از یک شاخص دوم در آرایه بزرگ، که چندین تکرار در پشت شاخص اول نگه داشته شده‌است، باعث می‌شود از سیاست حداقل استفاده اخیر (LRU) استفاده شود. در نتیحه به کاربر این امکان را می‌دهد تا فقط با انجام خواندن‌های افزایشی روی یک مجموعه داده بزرگ، حافظه نهان را به‌طور مؤثر پاک نماید. پیش‌بینی انشعاب سپس با تکرار بیش از یک مجموعه داده بسیار بزرگ با استفاده از عملیات بیتی جهت تنظیم اشاره گر به مقادیر در محدوده، و سپس با استفاده از یک آدرس خارج از محدوده برای تکرار نهایی دچار خطا می‌شود. یک تایمر دقیق با دقت بالا جهت تشخیص آن که مجموعه ای از خواندن منجر به موفقیت یا شکست حافظه نهان شده‌است، مورد نیاز می‌باشد. برنامه‌نویسی دقیق و تجزیه و تحلیل کد ماشین اجرا شده توسط مفسرفقط در زمان اجرای (JIT) برای اطمینان از پاک کردن حافظه نهان و حمله بهینه‌سازی نشده مورد نیاز بود. ضربه از سال ۲۰۱۸، تقریباً هر سیستم رایانه ای، از جمله صفحه نمایش، رایانه‌های قابل حمل و دستگاه‌های تلفن همراه، تحت تأثیر اسپکتر قرار دارد. AMD در ابتدا آسیب‌پذیری یکی از انواع اسپکتر (نوع یک GPZ) را تأیید کرد، اما اظهار داشت که آسیب‌پذیری نسبت به نوع دیگر (نوع دو GPZ) در پردازنده‌های AMD نشان داده نشده‌است و ادعا می‌کند که به دلیل اختلاف در یک «خطر نزدیک به صفر سوء استفاده» است. چندین منبع اخبار AMD را از آسیب‌پذیری در برابر GPZ نوع ۲ به عنوان یک تغییر از ادعای قبلی AMD در نظر گرفتند، هرچند AMD اظهار داشت که موقعیت آنها تغییر نکرده‌است. به‌طور خاص، پردازنده‌های با اجرای سوداگرانه از این آسیب‌پذیری‌ها تحت تأثیر قرار می‌گیرند. در حالی که ملتداون به برنامه‌های غیرمجاز اجازه خواندن از حافظه ممتاز را می دهدتا داده‌های حساس را از فرایندهای در حال اجرا بر روی همان سرور ابری بدست آورند، اسپکتر می‌تواند به برنامه‌های مخرب اجازه دهد تا یک هایپروایزر را برای انتقال داده‌ها به یک سیستم مهمان در بالای آن اجرا کند. | ## بخش 3: اسپکتر (آسیب‌پذیری امنیتی) | کاهش از آنجا که اسپکتر یک کلاس کلی از حملات را نمایندگی می‌کند، به احتمال زیاد نمی‌توان یک وصله واحد برای آن ایجاد کرد. در حالی که کار برای رسیدگی به موارد خاص از آسیب‌پذیری در حال انجام است، وب سایت اصلی اختصاص داده شده به اسپکتر و ملتداون می گوید: «همان‌طور که اصلاح [اسپکتر] آسان نیست، برای مدت طولانی ما را درگیرخواهد کرد.» در عین حال، طبق گفته دل: "هیچ مورد سوء استفاده از این آسیب پذیری‌ها در دنیای واقعی [یعنی ، Meltdown و Spectre] تاکنون [۷ فوریه ۲۰۱۸] گزارش نشده‌است، گرچه محققان اثبات مفاهیم را تولید کرده‌اند." برای کمک به محافظت از آسیب‌پذیری رایانه‌های خانگی و دستگاه‌های مرتبط چندین روش ارائه شده‌است. گزارش شده‌است که تکه‌های اسپکتر باعث کاهش چشمگیر عملکرد، به خصوص در رایانه‌های قدیمی می‌شوند. در سیستم عامل‌های با هسته نسل هشتم جدید، افت عملکرد معیار ۲ تا ۱۴ درصد اندازه‌گیری شده‌است. در ۱۸ ژانویه ۲۰۱۸، راه اندازی مجدد ناخواسته، حتی برای تراشه‌های جدیدتر اینتل، به دلیل تکه‌های ملتداون و اسپکتر، گزارش شد. پیشنهاد شده‌است که کاهش هزینه را می‌توان با پردازنده‌های بافر چشم‌انداز ترجمه (TLB) که با ویژگی انتخابی فعال می‌شوند، از ویژگی‌هایی که تحت معماری اینتل -فرایند (PCID)، تحت معماری Intel 64 و تحت آلفا (معروف به شماره فضای آدرس ASN) انجام داد. (ASN) این امر به این دلیل است که فعال شدن انتخابی، رفتار TLB را قادر می‌سازد تا بدون اینکه به ور مداوم کل TLB را فعال کند، از سوء استفاده در فرایندهای مختلف جدا شود. در مارس ۲۰۱۸، اینتل اعلام کرد که تنها برای ملتداون و اسپکتر نسخه۲ اصلاحات سخت‌افزاری را ایجاد کرده‌است و اسپکتر نسخه۱ را پوشش نمی‌دهد. این آسیب‌پذیری‌ها توسط سیستم جداسازی جدیدی که باعث بهبود تفکیک فرایند و امتیاز می‌شود، کاهش یافت. در ۸ اکتبر ۲۰۱۸، گزارش شده‌است که اینتل کاهش سخت‌افزار و سیستم عامل را در رابطه با آسیب‌پذیری‌های اسپکتر و ملتداون نسبت به پردازنده‌های رودخانه قهوه (Coffe Lake-R) و به بعد آن اضافه کرده‌است. در تاریخ ۲ مارس ۲۰۱۹، مایکروسافت گزارش داده‌است که یک نرم‌افزار مهم ویندوز 10 (v1809) را برای آسیب‌پذیری واحد پردازنده مرکزی اسپکتر ورژن۲ منتشر کرده‌است. در ابتدا گزارش شده‌است که تکه‌های اسپکتر به خصوص در رایانه‌های قدیمی باعث کاهش چشمگیر عملکرد می‌شود. در سیستم عامل‌های اینتل کور نشخه هشتم، افت عملکرد معیار در بازه ۲ تا ۱۴ درصد اندازه‌گیری شد. در ۱۸ ژانویه ۲۰۱۸، گزارش‌هایی از راه اندازی مجدد ناخواسته حتی برای تراشه‌های جدیدتر اینتل به دست رسید. از آنجا که سوء استفاده از اسپکتر از طریق جاوا اسکریپت نهفته در وب سایت‌ها امکان‌پذیر است، این مسئله وجود داشت که کروم۶۴ به‌طور پیش فرض ضدحمله باشد. از Firefox 57.0.4 به بعد، موزیلا برای کمک به جلوگیری از حملات زمان‌بندی وضوح تایمرهای جاوا اسکریپت را کاهش داد. این عمل به صورت کار اضافی بر روی تکنیک‌های فازی زمان‌بندی که برای نسخه‌های آینده برنامه‌ریزی شده‌است، انجام شد. رویکردهای کلی در ۴ ژانویه سال ۲۰۱۸، بازگشت ترامپولین به عنوان تکنیک جدید در وبلاگ امنیتی گوگل مطرح شد. این امر شامل فرمان کاملاً کامپایلر شاخه‌های غیرمستقیم به سمت هدف دیگری است که منجر به اجرای یک سوداگرانه خارج از دستور کار آسیب‌پذیر نشود. در حالی که این مجموعه برای دستورالعمل x86 ساخته شده‌است، مهندسان گوگل معتقدند که این روش به سایر پردازنده‌ها نیز قابل انتقال است. در تاریخ ۲۵ ژانویه ۲۰۱۸، ملاحظاتی احتمالی به منظور حل آسیب‌پذیری‌های ملتداون و اسپکتر ارائه شد. در ۱۸ اکتبر سال ۲۰۱۸، محققان دانشگاه ماساچوست رویکرد کاهش جدیدی به نام محافظ راه اختصاصی پویا ارائه دادند که ممکن است بدون به خطر انداختن خطر عملکرد، نویدبخش امنیت بهتری باشد. در تاریخ ۱۶ آوریل ۲۰۱۹، محققان دانشگاه‌های سن دیگو و ویرجینیا، یک مکانیسم دفاعی مبتنی بر ریزکد را به نام محصور سازی حساس به بافت پیشنهاد کردند که با اجرای جریان تزریق پویا به صورت جراحی نرده‌ها، با تنها ۸ درصد تخریب عملکرد در برابر تعدادی از گونه‌های اسپکتر محافظت می‌کند. سپس اینگو مولنر استفاده از ماشین آلات ردیابی عملکرد را در هسته لینوکس پیشنهاد کرد تا از پشتیبانی میکروکد طیف بدون انشعاب غیرمستقیم محدود شده (IBRS) پشتیبانی کند. تهدید مداوم بدون امکان کاهش در نرم‌افزار در فوریه ۲۰۱۹ گزارش شد که اسپکتر دارای تهدیدهایی است که به هیچ وجه در نرم‌افزار قابل کاهش نیست. واحدهای پردازنده مرکزی اتمی مورد استفاده در D270 و 1001PXD بسیار آسیب‌پذیر هستند اما احتمالاً مشکل کمتری برای آن‌ها وجود دارد چرا که این دستگاه‌های قدیمی با استفاده از واحد پردازنده مرکزی VT-64x و N455 کار می‌کنند. | ## جمع‌بندی | برای PI شخص ثالث BIOS روی این‌ها امکان‌پذیر است، اما یک مشکل اساسی برای رفع نیاز به تجزیه و تحلیل به روزرسانی‌های میکرو کد موجود است که فراتر از توانایی‌های بیشتر کاربران نهایی است.