ملتداون (آسیبپذیری امنیتی): تفاوت میان نسخهها
جز ربات ردهٔ همسنگ (۳۰.۱) +مرتب (۱۴.۹ core): + رده:حملههای کانال جانبی |
اضافه کردن جزییات پیاده سازی این آسیب پذیری و طیف گستردگی این آسیب پذیری. برچسبها: جمع عربی واژگان فارسی ویرایشگر دیداری |
||
خط ۱: | خط ۱: | ||
[[پرونده:Meltdown logo with text.svg|بندانگشتی]] |
|||
'''ملتدان''' ({{lang-en|Meltdown}}) یک آسیبپذیری سختافزاری است که پردازنده های تولید شده توسط اینتل از سال 1995 را تحت تاثیر قرار میدهد. پردازنده های AMD این آسیبپذیری را ندارند. |
|||
آسیبپذیری سختافزاری '''ملتدان''' {{به انگلیسی|Meltdown}} در اواخر سال 2017 توسط جان هُرن از Google Project Zero و پژوهشگران Cyberus Technology و یک گروه از دانشگاه فناوری Graz در اتریش کشف شد.این آسیبپذیری که با شناسهی [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754 CVE-2017-5754] نام برده میشود، به طور مستقیم ریشه در پردازندههای کامپیوتری دارد و مرز بین فضای کاربر و هستهی سیستم عامل(کرنل) را میشکند که باعث نشت اطلاعات از هستهی مرکزی به برنامههای کاربر میشود. |
|||
در سیستمهای کامپیوتری مکانیزمهای سخت افزاری وجود دارد که از دسترسی برنامههای در حال اجرا به اطلاعات برنامههای در حال اجرای دیگر جلوگیری میکنند، حال یک بدافزار با بهرهگیری از آسیبپذیری سختافزاری Meltdown میتواند اطلاعات مربوط به حافظهی سایر برنامههای در حال اجرا را بدست آورد. علت نامگذاری این آسیبپذیری هم به این دلیل است که محدودیتها و مرزهای امنیتی که توسط سختافزارها ایجاد میشود را ذوب میکند. |
|||
== نحوه عملکرد آسیبپذیری Meltdown == |
|||
همهی پردازندههای امروزی جهت بهبود عملکرد و افزایش کارایی از روش اجرای گمانهای {{به انگلیسی|Speculative Execution}} استفاده میکنند که طبق این روش،اگر پردازنده در حین اجرای یک دستور نیاز به خواندن از حافظه و منتظر ماندن برای آماده شدن دادهها از سمت حافظه باشد برای افزایش کارایی به جای اینکه منتظر بماند و کاری انجام ندهد، دستورات بعدی که باید اجرا شوند را پیشبینی میکند و فرض را بر صحت یک شرط میگذارد و دستورات بعدی را اجرا میکند(Out of Order Execution).با این کار در زمان پردازنده صرفه جویی میشود. حال اگر پس از آماده شدن داده از سمت حافظه و اجرای ترتیبی دستورات، مشخص شد که پیشبینی پردازنده در اجرای دستورات بعدی اشتباه بوده،به حالتی قبل از اجرای این دستورات میرود و اثرات دستورات اجرا شده را از بین میبرد و مقادیر ناشی از محاسبات گمانهای را در [[حافظه نهان (رایانش)|حافظهی نهان]]{{به انگلیسی|Cache}} ذخیره میکند. حال با ذخیره شدن این مقادیر در حافظهی نهان دستیابی به آن برای حملهکننده سادهتر خواهد بود. این نکته حائز اهمیت است که سیستمعامل دسترسی یک برنامهی سطح کاربر به حافظه را بررسی میکند که آیا برنامه مجاز به دسترسی به بخش مورد درخواستش میباشد یا توسط کرنل محدود شده است؛ اما وقتی برنامهها به حالت گمانهای اجرا میشوند اجازهی استفاده از حافظهی مربوط به کرنل را نیز دارند و پس از شروع اجرای دستور به طور عادی مجوز دسترسی بررسی میشود. اگرچه در صورت عدم مجوز دسترسی جلوی اجرا گرفته خواهد شد اما مقادیر حاصل از اجرای گمانهای در حافظهی نهان خواهد بود و حملهکننده با زمانبندی درست میتواند آن مقادیر را بخواند. |
|||
در آسیبپذیری Meltdown حملهکننده با تکه کدی مخرب سیستم را مجبور میکند که برخی اطلاعات حساس را بدون درخواست کاربر و به شکل زود هنگام بارگذاری کند و سپس با بارگذاری این مقادیر در حافظهی نهان، حمله کننده به کمک [[حمله زمانبندی|حملهی کانال جانبی زمانی]] (Timing attack) میتواند مقادیر کلیدهای رمزنگاری و اطلاعات محرمانه را بدست آورد.<ref name=":0">{{یادکرد وب|عنوان=Meltdown and Spectre|نشانی=https://meltdownattack.com/|وبگاه=meltdownattack.com|بازبینی=2020-07-15}}</ref><ref name=":1">{{Cite journal|last=Lipp|first=Moritz|last2=Schwarz|first2=Michael|last3=Gruss|first3=Daniel|last4=Prescher|first4=Thomas|last5=Haas|first5=Werner|last6=Fogh|first6=Anders|last7=Horn|first7=Jann|last8=Mangard|first8=Stefan|last9=Kocher|first9=Paul|date=2018|title=Meltdown: Reading Kernel Memory from User Space|url=https://www.usenix.org/conference/usenixsecurity18/presentation/lipp|language=en|pages=973–990|isbn=978-1-939133-04-5}}</ref><ref>{{یادکرد وب|عنوان=Meltdown|نشانی=https://dl.acm.org/doi/epdf/10.1145/3357033|وبگاه=dl.acm.org|بازبینی=2020-07-15|doi=10.1145/3357033}}</ref> |
|||
== طیف گستردگی == |
|||
* همهی دستگاههای حاوی پردازندههای اینتل |
|||
* همهی دستگاههای حاوی پردازندههای اپل |
|||
* پردازندهههای ARM سری Cortex-A75 |
|||
* برخی پردازندههای IBM از سری: System Z, Power Architecture, POWER8 and POWER9 |
|||
در این میان پردازندههای AMD تحت تاثیر این آسیبپذیری نخواهند بود.<ref name=":1" /> |
|||
بهدنبال آسیبپذیری Meltdown آسیبپذیری دیگری بهنام شبح{{به انگلیسی|Spectre}} نیز مطرح شد که در برخی جنبههای کلی مشابه هستند اما آسیبپذیری شبح عمومیتر است و با استفاده از قابلیتهای وسیعتری از اجرای گمانهای سوء استفاده میکند و حتی روی پردازندههای AMD و ARM هم قابل پیادهسازی است.<ref name=":0" /> |
|||
== مکانیزمهای دفاعی == |
|||
از آنجا که این آسیبپذیری بیشتر جنبهی سختافزاری دارد، عمیقتر از آن است که به راحتی بتوان جلوی آن را گرفت. از راه حلهای مطرح شده برای این آسیبپذیری طراحی پردازندههایی است که دچار این آسیبپذیری نباشند اما این راهحلی است که در آینده و با گذشت زمان باید محقق شود و در حالت فعلی دستگاههای زیادی وجود دارد که پردازندهی آنها در تهدید این آسیبپذیری میباشند. |
|||
از مکانیزمهای مطرح شده برای این آسیبپذیری جداسازی جدول صفحه هسته از حافظه فضای کاربر است {{به انگلیسی|KPTI: Kernel Page Table Isolation}} این سامانه مبتنیبر سامانه KAISER است که در هستهی لینوکس پیادهسازی شده است.<ref>{{Cite journal|last=Gruss|first=Daniel|last2=Lipp|first2=Moritz|last3=Schwarz|first3=Michael|last4=Fellner|first4=Richard|last5=Maurice|first5=Clémentine|last6=Mangard|first6=Stefan|date=2017|editor-last=Bodden|editor-first=Eric|editor2-last=Payer|editor2-first=Mathias|editor3-last=Athanasopoulos|editor3-first=Elias|title=KASLR is Dead: Long Live KASLR|url=https://link.springer.com/chapter/10.1007/978-3-319-62105-0_11|journal=Engineering Secure Software and Systems|series=Lecture Notes in Computer Science|language=en|location=Cham|publisher=Springer International Publishing|pages=161–176|doi=10.1007/978-3-319-62105-0_11|isbn=978-3-319-62105-0}}</ref> مایکروسافت و اپل هم بهدنبال جلوگیری از این آسیبپذیری بهروزرسانیهای امنیتی را برای سیستمعاملها و دستگاههایشان ارائه کردند؛ البته این مکامیزمهای دفاعی تا حدی از کارایی سیستم میکاهد. |
|||
== منابع == |
== منابع == |
نسخهٔ ۱۵ ژوئیهٔ ۲۰۲۰، ساعت ۰۶:۵۱
آسیبپذیری سختافزاری ملتدان (به انگلیسی: Meltdown) در اواخر سال 2017 توسط جان هُرن از Google Project Zero و پژوهشگران Cyberus Technology و یک گروه از دانشگاه فناوری Graz در اتریش کشف شد.این آسیبپذیری که با شناسهی CVE-2017-5754 نام برده میشود، به طور مستقیم ریشه در پردازندههای کامپیوتری دارد و مرز بین فضای کاربر و هستهی سیستم عامل(کرنل) را میشکند که باعث نشت اطلاعات از هستهی مرکزی به برنامههای کاربر میشود.
در سیستمهای کامپیوتری مکانیزمهای سخت افزاری وجود دارد که از دسترسی برنامههای در حال اجرا به اطلاعات برنامههای در حال اجرای دیگر جلوگیری میکنند، حال یک بدافزار با بهرهگیری از آسیبپذیری سختافزاری Meltdown میتواند اطلاعات مربوط به حافظهی سایر برنامههای در حال اجرا را بدست آورد. علت نامگذاری این آسیبپذیری هم به این دلیل است که محدودیتها و مرزهای امنیتی که توسط سختافزارها ایجاد میشود را ذوب میکند.
نحوه عملکرد آسیبپذیری Meltdown
همهی پردازندههای امروزی جهت بهبود عملکرد و افزایش کارایی از روش اجرای گمانهای (به انگلیسی: Speculative Execution) استفاده میکنند که طبق این روش،اگر پردازنده در حین اجرای یک دستور نیاز به خواندن از حافظه و منتظر ماندن برای آماده شدن دادهها از سمت حافظه باشد برای افزایش کارایی به جای اینکه منتظر بماند و کاری انجام ندهد، دستورات بعدی که باید اجرا شوند را پیشبینی میکند و فرض را بر صحت یک شرط میگذارد و دستورات بعدی را اجرا میکند(Out of Order Execution).با این کار در زمان پردازنده صرفه جویی میشود. حال اگر پس از آماده شدن داده از سمت حافظه و اجرای ترتیبی دستورات، مشخص شد که پیشبینی پردازنده در اجرای دستورات بعدی اشتباه بوده،به حالتی قبل از اجرای این دستورات میرود و اثرات دستورات اجرا شده را از بین میبرد و مقادیر ناشی از محاسبات گمانهای را در حافظهی نهان(به انگلیسی: Cache) ذخیره میکند. حال با ذخیره شدن این مقادیر در حافظهی نهان دستیابی به آن برای حملهکننده سادهتر خواهد بود. این نکته حائز اهمیت است که سیستمعامل دسترسی یک برنامهی سطح کاربر به حافظه را بررسی میکند که آیا برنامه مجاز به دسترسی به بخش مورد درخواستش میباشد یا توسط کرنل محدود شده است؛ اما وقتی برنامهها به حالت گمانهای اجرا میشوند اجازهی استفاده از حافظهی مربوط به کرنل را نیز دارند و پس از شروع اجرای دستور به طور عادی مجوز دسترسی بررسی میشود. اگرچه در صورت عدم مجوز دسترسی جلوی اجرا گرفته خواهد شد اما مقادیر حاصل از اجرای گمانهای در حافظهی نهان خواهد بود و حملهکننده با زمانبندی درست میتواند آن مقادیر را بخواند.
در آسیبپذیری Meltdown حملهکننده با تکه کدی مخرب سیستم را مجبور میکند که برخی اطلاعات حساس را بدون درخواست کاربر و به شکل زود هنگام بارگذاری کند و سپس با بارگذاری این مقادیر در حافظهی نهان، حمله کننده به کمک حملهی کانال جانبی زمانی (Timing attack) میتواند مقادیر کلیدهای رمزنگاری و اطلاعات محرمانه را بدست آورد.[۱][۲][۳]
طیف گستردگی
- همهی دستگاههای حاوی پردازندههای اینتل
- همهی دستگاههای حاوی پردازندههای اپل
- پردازندهههای ARM سری Cortex-A75
- برخی پردازندههای IBM از سری: System Z, Power Architecture, POWER8 and POWER9
در این میان پردازندههای AMD تحت تاثیر این آسیبپذیری نخواهند بود.[۲]
بهدنبال آسیبپذیری Meltdown آسیبپذیری دیگری بهنام شبح(به انگلیسی: Spectre) نیز مطرح شد که در برخی جنبههای کلی مشابه هستند اما آسیبپذیری شبح عمومیتر است و با استفاده از قابلیتهای وسیعتری از اجرای گمانهای سوء استفاده میکند و حتی روی پردازندههای AMD و ARM هم قابل پیادهسازی است.[۱]
مکانیزمهای دفاعی
از آنجا که این آسیبپذیری بیشتر جنبهی سختافزاری دارد، عمیقتر از آن است که به راحتی بتوان جلوی آن را گرفت. از راه حلهای مطرح شده برای این آسیبپذیری طراحی پردازندههایی است که دچار این آسیبپذیری نباشند اما این راهحلی است که در آینده و با گذشت زمان باید محقق شود و در حالت فعلی دستگاههای زیادی وجود دارد که پردازندهی آنها در تهدید این آسیبپذیری میباشند.
از مکانیزمهای مطرح شده برای این آسیبپذیری جداسازی جدول صفحه هسته از حافظه فضای کاربر است (به انگلیسی: KPTI: Kernel Page Table Isolation) این سامانه مبتنیبر سامانه KAISER است که در هستهی لینوکس پیادهسازی شده است.[۴] مایکروسافت و اپل هم بهدنبال جلوگیری از این آسیبپذیری بهروزرسانیهای امنیتی را برای سیستمعاملها و دستگاههایشان ارائه کردند؛ البته این مکامیزمهای دفاعی تا حدی از کارایی سیستم میکاهد.
منابع
- ↑ ۱٫۰ ۱٫۱ «Meltdown and Spectre». meltdownattack.com. دریافتشده در ۲۰۲۰-۰۷-۱۵.
- ↑ ۲٫۰ ۲٫۱ Lipp, Moritz; Schwarz, Michael; Gruss, Daniel; Prescher, Thomas; Haas, Werner; Fogh, Anders; Horn, Jann; Mangard, Stefan; Kocher, Paul (2018). "Meltdown: Reading Kernel Memory from User Space" (به انگلیسی): 973–990. ISBN 978-1-939133-04-5.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ «Meltdown». dl.acm.org. doi:10.1145/3357033. دریافتشده در ۲۰۲۰-۰۷-۱۵.
- ↑ Gruss, Daniel; Lipp, Moritz; Schwarz, Michael; Fellner, Richard; Maurice, Clémentine; Mangard, Stefan (2017). Bodden, Eric; Payer, Mathias; Athanasopoulos, Elias (eds.). "KASLR is Dead: Long Live KASLR". Engineering Secure Software and Systems. Lecture Notes in Computer Science (به انگلیسی). Cham: Springer International Publishing: 161–176. doi:10.1007/978-3-319-62105-0_11. ISBN 978-3-319-62105-0.
- مشارکتکنندگان ویکیپدیا. «Meltdown (security vulnerability)». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۴ ژانویه ۲۰۱۸.