
ویندوز ۱۱ نیز مانند نسخههای پیشین ویندوز، مجموعهای از محافظتهای امنیتی مربوط به آسیبپذیریهای Spectre را بهصورت پیشفرض فعال نگه میدارد؛ محافظتهایی که نخستین بار در سال ۲۰۱۸ و پس از افشای گسترده این آسیبپذیریها در پردازندهها به ویندوز اضافه شدند. این محافظتها از یک سو امنیت سیستم را در برابر سوءاستفاده از اجرای حدسی (Speculative Execution) افزایش میدهند و از سوی دیگر میتوانند در برخی بارهای کاری، هزینه عملکردی (Performance Cost) ایجاد کنند.
محافظتهای Spectre هنوز فعال هستند
Spectre در واقع خانوادهای از حملات علیه یک تکنیک پردازشی رایج در تقریباً همه پردازندههای مدرن است. پردازنده برای سریعتر ماندن، مسیر احتمالی اجرای کد را حدس میزند و حدسهای نادرست را دور میریزد. اما ردپای این حدسهای نادرست در حافظه نهان (Cache) باقی میماند و یک برنامه دقیقاً نوشتهشده میتواند بر اساس همین ردپا، اطلاعات حساس را استنتاج کند.
نسخهای که از این سازوکار سوءاستفاده میکند، Spectre variant 2 یا تزریق هدف انشعاب (Branch Target Injection) نام دارد. در این روش، مهاجم پیشبینیگر انشعاب (Branch Predictor) پردازنده را آموزش میدهد تا حدسزنی را به سمتی هدایت کند که برای او مفید است؛ برای نمونه به سمت کد هسته (Kernel) که اطلاعات حساس را مدیریت میکند.
محافظتهایی که ویندوز فعال کرده است، این نوع حدسزنی را در مرز میان برنامهها و هسته محدود میکند و هزینه عملکردی نیز دقیقاً همینجا ایجاد میشود. این محدودیت بیشتر یک کاهش عملکرد (Performance Throttling) واقعی نیست، بلکه کار اضافهای است که هر بار یک برنامه وظیفهای را به سیستمعامل میسپارد. بارهای کاریای که زیاد از مرزهای سیستم عبور میکنند، مانند ذخیرهسازی (Storage) و کامپایل کد (Code Compiling)، این هزینه را بیشتر حس میکنند. در مقابل، برنامههایی که صرفاً روی هستههای پردازنده اجرا میشوند و به هسته سیستمعامل فراخوانی نمیکنند، تأثیر عملکردی محسوسی نخواهند دید.
هزینه عملکرد میتواند واقعی باشد
مایکروسافت هنگام عرضه این محافظتها در سال ۲۰۱۸، نتایج آزمونهای خود را نیز منتشر کرد. بر اساس آن نتایج، کندی ایجادشده روی رایانههای ویندوز ۱۰ مجهز به پردازندههای Skylake یا جدیدتر اینتل، تکرقمی بود. اما روی پردازندههای Haswell و قدیمیتر، برخی بنچمارکها افت بیشتری نشان میدادند که کاربران قطعاً آن را حس میکردند. مایکروسافت همچنین اشاره کرد که نسخه اول Spectre و Meltdown را میتوان بدون کندی چشمگیر وصله (Patch) کرد و از نظر عملکرد، Spectre variant 2 گرانترین گزینه برای وصلهگذاری باقی ماند.
مقدار رجیستری (Registry) با نام FeatureSettingsOverride مشخص میکند کدام محافظتهای سمت سیستمعامل (OS-side Mitigations) فعال باشند. برخی ابزارهای رایگان نیز وجود دارند که بدون استفاده از ویرایشگر رجیستری (Regedit) این محافظتها را خاموش میکنند؛ از جمله محافظتهای مربوط به Meltdown. اگر این مقدار رجیستری را به عدد ۳ تغییر دهید، که رایجترین مقدار منتشرشده در اینترنت است، محافظت Meltdown نیز غیرفعال میشود. در حالی که مقدار ۱ فقط محافظت Spectre variant 2 را خاموش میکند. در هر دو حالت، تغییر تنها بر بخش دفاعی سمت سیستمعامل اثر میگذارد.
پردازندههای جدیدتر سود کمتری میبرند
هرچه پردازنده جدیدتر باشد، غیرفعال کردن محافظتهای Spectre سود کمتری به همراه دارد. تراشههای تازهتر بخشی از این نقصها را مستقیماً در سیلیکون برطرف میکنند و هزینه محافظت از بقیه را نیز کاهش میدهند. خود ویندوز هم از سال ۲۰۱۹ به روشهای کمهزینهتری مانند retpoline روی آورده است. روی یک پردازنده جدید Ryzen یا Intel، غیرفعال کردن محافظت در سیستمعامل احتمالاً افزایش عملکرد قابلاندازهگیری ایجاد نمیکند.
ریسک این کار نیز صرفاً نظری نیست. در سال ۲۰۲۱، پژوهشگری به نام Julien Voisin اکسپلویتهای عملی Spectre را برای ویندوز و لینوکس در VirusTotal پیدا کرد. این اکسپلویتها به پلتفرم تجاری تست نفوذ Canvas از شرکت Immunity نسبت داده شدند. بعدتر در سال ۲۰۲۴، پژوهشگران دانشگاه Vrije Universiteit Amsterdam حملهای به نام Native BHI را نمایش دادند که با وجود محافظتهای فعال، حافظه هسته (Kernel Memory) را در سیستمهای اینتل مجهز به لینوکس افشا میکرد. مایکروسافت نیز انتشار راهنمایی برای نسخههای جدیدتر این آسیبپذیریها را ادامه داده است.
چه کسانی واقعاً در معرض خطر هستند؟
البته برای این نوع اکسپلویتها، کد مخرب (Malicious Code) باید وجود داشته باشد و بهطور فعال روی سیستم اجرا شود. بنابراین سیستمی که صرفاً برای بازی استفاده میشود یا بهعنوان جعبه رسانهای (Media Box) در اتاق نشیمن قرار دارد، واقعاً در معرض این نوع سوءاستفادهها نیست. غیرفعال کردن Spectre ممکن است عملکرد زیادی به شما ندهد، اما مایکروسافت به قابلیتهایی مانند Memory Integrity و Virtual Machine Platform اشاره میکند که میتوانند در سناریوهای مشخصی به عملکرد آسیب بزنند؛ هرچند خاموش کردن آنها نیز مجموعهای از معاوضههای امنیتی (Security Trade-offs) خاص خود را دارد.
جمعبندی
غیرفعال کردن محافظتهای Spectre برای افزایش عملکرد، افسانه کامل نیست؛ اما این کار دیگر به اندازه گذشته مؤثر نیست. روی یک پردازنده دهساله، میتواند عملکرد واقعی را به بارهای کاریای برگرداند که به هسته سیستمعامل تکیه دارند و بین اجزای مختلف سیستم جابهجا میشوند. اما روی یک پردازنده مدرن، این کار حفاظت امنیتی را با چند امتیاز بنچمارک معاوضه میکند. اینکه این معاوضه برای شما ارزشمند باشد یا نه، به سیستم و بار کاری مشخص شما بستگی دارد.