حمله SWAPGS، نقص جدید اجرایی Speculative بر تمام CPU های مدرن اینتل تأثیر می گذارد

مایکروسافت و Red Hat هشدار دادهاند نوع جدیدی از آسیب پذیری side-channel (Variant 1) Spectre کشف شده است که بر تمام پردازنده های مدرن اینتل و احتمالا برخی از پردازندههای AMD نیز تأثیر میگذارد.
این آسیب پذیری با عنوان CVE-2019-1125 شناخته میشود و به مهاجمین محلی غیر شخصی اجازه دسترسی میدهد تا بتوانند به اطلاعات حساس ذخیره شده در حافظه کرنل سیستم عامل، از جمله رمزهای عبور و کلیدهای رمزنگاری دسترسی پیدا کنند که در غیر این صورت غیرقابل دسترسی خواهند بود.
اجرای Speculative یکی از اجزای اصلی طراحی ریزپردازنده مدرن است که دستورالعملهایی را بر اساس فرضیاتی اجرا میکند که به نظر درست هستند. اگر فرضیهها صحیح باشند، اجرا ادامه مییابد و در غیر این صورت رد میشود.
اجراهای Speculative دارای عوارض جانبی نیز هستند که در صورت unwound بودن CPU ترمیم نمیشوند و منجر به افشای اطلاعات میگردند که پس از آن با استفاده از حملات کانال جانبی قابل دستیابی هستند.
مایکروسافت در بروزرسانی امنیتی سهشنبه جولای ۲۰۱۹، بدون اطلاع وصلههایی را برای آسیبپذیری جدید speculative execution منتشر کرد که توسط محققان شرکت امنیتی Bitdefender کشف و با مسئولیت آنها افشا شده بود.
طبق مشاوره امنیتی که امروز توسط Red Hat منتشر شد، این حمله به دستورالعملهای غیرمنتظره SWAPGS بعد از عدم پیشبینی انشعابی از آن وابسته است.
دستورالعمل SWAPGS یک دستورالعمل privileged سیستم است که مقادیر موجود در ثبات GS را با مقادیر MSR مبادله میکند و فقط در دستگاههای با معماری x86-64 وجود دارد.
محققان Bitdefender میگویند: « با سوءاستفاده از این واقعیت که دستورالعمل SWAPGS میتواند به صورت speculative انجام شود، این حمله صورت میگیرد. یک مهاجم میتواند memory dereferenceهای دلخواه را روی کرنل اجرا کند که باعث میشود در حافظههای کش اطلاعات، اثراتی از خود به جا بگذارد. مهاجم میتواند این سیگنالها را ردیابی کند تا به مقدار موجود در آدرس کرنل دست یابد. »
Intel تصدیق کرد که حمله SWAPGS باعث جدا شدن جدول جداسازی هستهی (KPTI) ارائه شده توسط CPUهای مدرن میشود و میتواند برای فاش کردن اطلاعات حساس حافظه هسته از حالت کاربر unprivileged استفاده شود.
RedHat در مشاوره خود بیان میکند: « این امکان وجود دارد که این انشعابات شرطی در کد ورودی کرنل به اشتباه کدهایی را حدس بزنند که SWAPGS را اجرا نمیکنند و در نتیجه پنجرهای از اجرای speculative ایجاد شود که در طی آن از GS اشتباه برای عملیات حافظه وابسته استفاده شود. »
به گفته محققانBitdefender ، حمله جدید همه اقدامات کاهشی اعمال شده بعد از کشف آسیب پذیریهای Spectre و Meltdown در اوایل سال ۲۰۱۸ را دور میزند که عملاً هر رایانهای در جهان را در معرض خطر قرار میدهد.
محققان معتقدند سوءاستفاده از سیستم عاملهای لینوکس میتواند کمی سختتر از رایانههای دارای ویندوز باشد، اگرچه کرنل لینوکس دارای ابزاری است که میتواند برای حمله به سیستمهای لینوکس، از آن سوءاستفاده شود.
از آنجایی که این حمله نمیتواند از راه دور انجام پذیرد، بعید است که باعث ایجاد آلودگی به بدافزار به صورت گسترده شود، مانند EternalBlue که برای WannaCry استفاده شده است؛ درعوض، میتواند به عنوان بخشی از یک حمله بسیار هدفمند مورد سوء استفاده قرار بگیرد.
کاربران آلوده می توانند این مشکل را از طریق بروزرسانی نرم افزار برای سیستم عاملهای خود برطرف کنند که باعث میشود چگونگی دستیابی CPU به حافظه به صورت speculative کاهش یابد.
در همین حال،Google نیز یک وصله برای رفع این آسیبپذیری در سیستم عامل Chrome 4.19 خود ارائه داده که به زودی منتشر خواهد شد و در این بروزرسانی نقص مورد نظر را شرح داده است:
« یک مهاجم میتواند پیشبینی کننده انشعاب را آموزش دهد تا به صورت پیش فرض از مسیر swapgs برای اجرای یک وقفه یا استثنا رد شود. اگر ثبات GS به مقدار user-space تنظیم شود، و اگر swapgs به صورت speculative رد شود، دسترسیهای GS-relatedبعدی CPU در پنجره speculation با مقدار GS کنترل شده توسط مهاجم انجام خواهد شد. این امر میتواند موجب دسترسی به حافظه privileged و نشت اطلاعات حافظه گردد. »
AMD در بیانیه اظهار داشت:
« براساس آنالیز داخلی و خارجی،AMD معتقد است که در برابر حملات نوع SWAPGS آسیب پذیر نیست زیرا محصولات AMD به گونهای طراحی شدهاند که به دنبال یک speculative SWAPGS، مقدار جدید GS را حدس نزنند. برای جلوگیری از حملهای که از نوع SWAPGS نباشد، میتوان توصیههای موجود برای Specter variant 1 را اجرا کرد.
نظرات کاربران