شناسه(های) سیویئی | CVE-2017-5754 |
---|---|
تاریخ کشف | ژانویه ۲۰۱۸ |
نرمافزار تحت تأثیر | ریزپردازندههای اینتل اکس۸۶، پردازندههای آیبیام پاور، و برخی ریزپردازندههای مبتنی بر آرم |
وبگاه | meltdownattack |
آسیبپذیری سختافزاری ملتدان (به انگلیسی: Meltdown) در اواخر سال ۲۰۱۷ توسط جان هُرن از Google Project Zero و پژوهشگران Cyberus Technology و یک گروه از دانشگاه فناوری Graz در اتریش کشف شد. این آسیبپذیری که با شناسهٔ CVE-2017-5754 نام برده میشود، بهطور مستقیم ریشه در پردازندههای کامپیوتری دارد و مرز بین فضای کاربر و هستهٔ سیستم عامل (کرنل) را میشکند که باعث نشت اطلاعات از هستهٔ مرکزی به برنامههای کاربر میشود.[۱]
در سیستمهای کامپیوتری مکانیزمهای سختافزاری وجود دارد که از دسترسی برنامههای در حال اجرا به اطلاعات برنامههای در حال اجرای دیگر جلوگیری میکنند، حال یک بدافزار با بهرهگیری از آسیبپذیری سختافزاری Meltdown میتواند اطلاعات مربوط به حافظهٔ سایر برنامههای در حال اجرا را بدست آورد. علت نامگذاری این آسیبپذیری هم به این دلیل است که محدودیتها و مرزهای امنیتی که توسط سختافزارها ایجاد میشود را ذوب میکند.
پردازندههای کامپیوتری امروزی برای بدست آوردن کارایی زیاد از تکنیکهای مختلفی استفاده میکنند که چهار تکنیک رایجی که در عملی شدن آسیبپذیری Meltdown دخیل هستند شامل:
بهطور کلی تکنیکهای نامبرده شده در بالا امن هستند. آسیبپذیری Meltdown از ترکیب این تکنیکها سوءاستفاده میکند و مکانیزمی که مانع دسترسی برنامهها به حافظهٔ برنامههای دیگر میشود را میشکند.
همهٔ پردازندههای امروزی جهت بهبود عملکرد و افزایش کارایی از روش اجرای گمانهای استفاده میکنند که طبق این روش، اگر پردازنده در حین اجرای یک دستور نیاز به خواندن از حافظه و منتظر ماندن برای آماده شدن دادهها از سمت حافظه باشد برای افزایش کارایی به جای اینکه منتظر بماند و کاری انجام ندهد، دستورات بعدی که باید اجرا شوند را پیشبینی میکند و فرض را بر صحت یک شرط میگذارد و دستورات بعدی را اجرا میکند(Out of Order Execution). با این کار در زمان پردازنده صرفه جویی میشود. حال اگر پس از آماده شدن داده از سمت حافظه و اجرای ترتیبی دستورات، مشخص شد که پیشبینی پردازنده در اجرای دستورات بعدی اشتباه بوده، به حالتی قبل از اجرای این دستورات میرود و اثرات دستورات اجرا شده را از بین میبرد و مقادیر ناشی از محاسبات گمانهای را در حافظهٔ نهان ذخیره میکند. حال با ذخیره شدن این مقادیر در حافظهٔ نهان دستیابی به آن برای حملهکننده سادهتر خواهد بود. این نکته حائز اهمیت است که سیستمعامل دسترسی یک برنامهٔ سطح کاربر به حافظه را بررسی میکند که آیا برنامه مجاز به دسترسی به بخش مورد درخواستش میباشد یا توسط کرنل محدود شدهاست؛ اما وقتی برنامهها به حالت گمانهای اجرا میشوند اجازهٔ استفاده از حافظهٔ مربوط به کرنل را نیز دارند و پس از شروع اجرای دستور بهطور عادی مجوز دسترسی بررسی میشود. اگرچه در صورت عدم مجوز دسترسی جلوی اجرا گرفته خواهد شد اما مقادیر حاصل از اجرای گمانهای در حافظهٔ نهان خواهد بود و حملهکننده با زمانبندی درست میتواند آن مقادیر را بخواند.
در آسیبپذیری Meltdown حملهکننده با تکه کدی مخرب سیستم را مجبور میکند که برخی اطلاعات حساس را بدون درخواست کاربر و به شکل زود هنگام بارگذاری کند و سپس با بارگذاری این مقادیر در حافظهٔ نهان، حمله کننده به کمک حملهٔ کانال جانبی زمانی (Timing attack) میتواند مقادیر کلیدهای رمزنگاری و اطلاعات محرمانه را بدست آورد.[۱][۲][۳]
در این میان پردازندههای AMD تحت تأثیر این آسیبپذیری نخواهند بود.[۲]
بهدنبال آسیبپذیری Meltdown آسیبپذیری دیگری بهنام شبح(به انگلیسی: Spectre) نیز مطرح شد که در برخی جنبههای کلی مشابه هستند اما آسیبپذیری شبح عمومیتر است و با استفاده از قابلیتهای وسیعتری از اجرای گمانهای سوء استفاده میکند و حتی روی پردازندههای AMD و ARM هم قابل پیادهسازی است.[۱]
از آنجا که تمام دستگاههای حاوی پردازندههای نامبرده شده در بالا در معرض این آسیبپذیری هستند، سرورهای ارائهدهندهٔ خدمات ابری نیز از این آسیبپذیری در امان نیستند چرا که ارائهدهندگان خدمات ابری به کاربران این امکان را میدهند که برنامههایی را در همان سرورهای فیزیکی که ممکن است دادههای حساس در آن ذخیره شوند، انجام دهند و برای اطمینان از عدم دسترسی غیرمجاز به مکانهای ممتاز حافظه که در آن دادههای حساس ذخیره میشوند از مکانیزمهای امنیتی موجود در پردازنده که پیشتر به آن پرداخته شد استفاده میکنند که همین امر آنها را در معرض خطر آسیبپذیری Meltdown قرار میدهد.
از آنجا که این آسیبپذیری بیشتر جنبهٔ سختافزاری دارد، عمیقتر از آن است که به راحتی بتوان جلوی آن را گرفت. از راه حلهای مطرح شده برای این آسیبپذیری طراحی پردازندههایی است که دچار این آسیبپذیری نباشند اما این راهحلی است که در آینده و با گذشت زمان باید محقق شود و در حالت فعلی دستگاههای زیادی وجود دارد که پردازندهٔ آنها در تهدید این آسیبپذیری میباشند.
از مکانیزمهای مطرح شده برای این آسیبپذیری جداسازی جدول صفحه هسته از حافظه فضای کاربر است (به انگلیسی: KPTI: Kernel Page Table Isolation) این سامانه مبتنیبر سامانه KAISER است که در هستهٔ لینوکس پیادهسازی شدهاست.[۴] مایکروسافت و اپل هم بهدنبال جلوگیری از این آسیبپذیری بهروزرسانیهای امنیتی را برای سیستمعاملها و دستگاههایشان ارائه کردند؛ البته این مکانیزمهای دفاعی تا حدی از کارایی سیستم میکاهد که این کاهش کارایی از حدود ۵ الی ۳۰ درصد گزارش شدهاست.[۵]
همچنین برای جلوگیری آلوده شدن کاربران به این آسیبپذیری توصیههایی مطرح شدهاست:به روزرسانی منظم و بهموقع سیستمعاملها و نرمفزارها، اجتناب از استفادهٔ لینکها و وبسایتهای ناشناخته و عدم بارگیری فایلها یا برنامهها از منابع ناشناخته.
و در آخر بررسی اینکه آیا یک سیستم خاص مورد سوءاستفادهٔ این حمله قرار گرفته یا نه، بسیار سخت یا حتی نشدنی است چرا که در چنین حملاتی معمولاً هیچ اثری در لاگهای سیستم وجود ندارد.
{{cite journal}}
: Cite journal requires |journal=
(help)