امنیت و هک, ایرادات سخت افزار, همه مطالب

Meltdown ، Spectre چیست و راهکارهای جلوگیری از آن‌ها

Meltdown و Spectre چیست؟

در اولین روزهای سال 2018، تحقیقات منتشر شده نشان داد که تقریباً هر تراشه رایانه‌ای که در 20 سال گذشته تولید شده است، دارای نقص‌های امنیتی اساسی است. که دو نوع مهم از آن نقص‌ها عبارتند از:آسیب‌ پذیری های Spectre و Meltdown.

نقص‌ها از ویژگی‌های تعبیه‌ شده در تراشه‌ها ناشی می‌شوند و به آن‌ها کمک می‌کنند تا سریع‌تر اجرا شوند، و اگر پچ‌های نرم‌افزاری در دسترس باشند، ممکن است بر عملکرد سیستم تأثیر بگذارند.

هنوز هیچ مدرکی مبنی بر بهره‌برداری از این نقص‌ها در طبیعت وجود ندارد، اما شناسایی چنین سوءاستفاده‌هایی دشوار است و این نقص‌ها به‌قدری اساسی و گسترده هستند که محققان امنیتی آن‌ها را فاجعه‌بار می‌نامند.

در حال حاضر، 13 نوع Spectre و 14 نوع Meltdown شناسایی شده است.

ما در این مقاله قصد داریم که در مورد چیستی Spectre و Meltdown ، تفاوت این دو، خطرات و انواع مختلف آن‌ها ، نحوه‌ی عملکرد Spectre و Meltdown  و همین‌ طور راه‌های جلوگیری از آن‌ها بپردازیم.

اما در ابتدا شاید بهتر است که برای روشن‌تر شدن این حوزه کمی در مورد ماهیت CPU، توضیحات مختصری بدهیم.

در ضمن اگر علاقمند به آگاهی در مورد دیگر حملات سایبری هستید می‌توانید در مقاله‌ی معرفی جامع کریپتوجکینگ، در مورد یکی از خطرناک‌ترین این حملات مطالعه بفرمایید.

فهرست مطالب

CPU چیست؟

واحد پردازش مرکزی یا CPU، مغز یک کامپیوتر است که تمام اعمالی را که در داخل سیستم شما انجام می‌شود، کنترل می‌کند.

CPU که به‌عنوان پردازنده یا تراشه نیز شناخته می‌شود، دارای ترانزیستورهای کوچکی است. ایجاد یک مشکل جزئی در هر یک از ترانزیستورها می‌تواند باعث ازکار‌افتادن پردازنده‌ی اصلی شود. خازن‌های بد، استفاده طولانی مدت و مشکلات ولتاژ همگی می‌توانند باعث خرابی CPU شوند.

خبر خوب این است که CPUها به شما نشانه‌هایی می‌دهند که مشکلی در راه است.

تشخیص به‌موقع این علائم و رفع مشکلات می‌تواند عمر پردازنده‌ی شما را برای سال‌های طولانی افزایش دهد.

Spectre و Meltdown چیست؟

Spectre و Meltdown به انواع مختلفی از یک آسیب‌پذیری اساسی گفته می‌شوند که تقریباً بر هر تراشه‌ی رایانه‌ای که در 20 سال گذشته تولید شده است، تأثیر می‌گذارند.

همچنین به مهاجمان اجازه می‌دهند که به داده‌هایی که قبلاً کاملاً محافظت شده در نظر گرفته می‌شدند، دسترسی پیدا کنند.

محققان امنیتی در اواخر سال 2017 این نقص‌ها را کشف کردند و در اوایل سال 2018 آن‌ها را به اطلاع عموم رساندند. دو نوع از این آسیب‌پذیری‌ها در یک گروه با عنوان Spectre قرار می‌گیرند و نوع سوم مستقلا در یک گروه به نام Meltdown قرار دارد.

نحوه‌ی عملکرد Meltdown  و Spectre چگونه است؟

همه‌ی انواع این آسیب‌پذیری‌ها زیربنایی برای دسترسی یک برنامه‌ی مخرب به داده‌هایی است که اجازه‌ی دیدن آن‌ها را ندارد، و این کار را با بهره‌برداری از دو تکنیک مهم مورد استفاده برای افزایش سرعت تراشه‌های کامپیوتری به نام‌های اجرای گمانه‌زنی و حافظه پنهان انجام می‌دهد.

در ادامه نحوه‌ی عملکرد این دو تکنیک را به اختصار توضیح خواهیم داد:

  1. اجرای گمانه‌زنی
  2. حافظه پنهان

1) تکنیک گمانه‌زنی یا Speculative execution

اجرای گمانه‌زنی شامل یک تراشه است که سعی می‌کند آینده را پیش‌بینی کند تا بتواند سریع‌تر کار کند.

اگر تراشه بداند که یک برنامه شامل چندین شاخه‌ی منطقی است، قبل از اینکه برنامه بین چند شاخه تصمیم بگیرد، شروع به کار ریاضی برای همه آن شاخه‌ها می‌کند.

به‌عنوان مثال، اگر برنامه بگوید: اگر A درست است، تابع X را محاسبه کنید، اگر A نادرست است، تابع Y را محاسبه کنید، تراشه می‌تواند قبل از اینکه بداند A درست است یا خیر، شروع به محاسبه‌ی موازی هر دو تابع X و Y کند. به‌طور کلی سرعت پردازش را افزایش می‌دهد.

 یا در یک حالت دیگر، اگر یک تراشه یاد بگیرد که یک برنامه به‌طور مکرر از یک تابع استفاده می‌کند، ممکن است از زمان بیکاری برای محاسبه‌ی آن تابع استفاده کند، حتی زمانی که از آن خواسته نشده است که آن را محاسبه کند، فقط به این دلیل که آنچه را که فکر می‌کند درست است، در دست داشته باشد.

قبل از اینکه سراغ مفهوم Protected memory رویم بهتر از توضیح مختصری در مورد کش بدهیم.

بیشتر بدانید:

کش چیست؟

کش کردن در واقع تکنیکی است که برای سرعت بخشیدن دسترسی به حافظه، استفاده می‌شود.

زمان نسبتاً زیادی طول می‌کشد تا CPU داده‌ها را از RAM که روی یک تراشه جداگانه وجود دارد، دریافت کند.

بنابراین یک حافظه کوچک (به نام حافظه‌ی پنهان )CPU روی آن قرار دارد که روی تراشه‌ی CPU زندگی می‌کند و می‌توان به‌سرعت به آن دسترسی پیدا کرد. این حافظه با داده‌هایی پر می‌شود که تراشه به زودی یا اغلب به آن‌ها نیاز دارد.

آنچه برای وضعیت ما اهمیت درد این است که داده‌هایی که توسط اجرای گمانه‌زنی تولید می‌شوند، اغلب در حافظه پنهان ذخیره می‌شوند، که در واقع بخشی از چیزی است که اجرای فرضی را به یک عامل مهم تقویت‌کننده سرعت تبدیل می‌کند.

این مشکل زمانی به وجود می‌آید که حافظه پنهان و اجرای گمانه‌زنی با Protected memory دست و پنجه نرم می‌کنند.

2) تکنیک حافظه پنهان

یکی از مفاهیم اساسی امنیت رایانه، حافظه محافظت شده یا Protected memory است. در اصل، هیچ فرآیندی در رایانه نباید قادر به دسترسی به داده‌ها باشد، مگر اینکه اجازه انجام این کار را داشته باشد.

Protected memory به یک برنامه اجازه می‌دهد تا برخی از داده‌های خود را از برخی از کاربران خود خصوصی نگه دارد. و به سیستم‌عامل اجازه می‌دهد تا از دیدن داده‌های متعلق به آن برنامه‌ جلوگیری کند.

برای دسترسی به داده‌ها، یک فرآیند بررسی امتیاز وجود دارد، که مشخص می‌کند آیا برنامه مجاز به دیدن آن داده‌ها می‌باشد؟ یا خیر.

اما بررسی امتیاز می‌تواند زمان نسبتا زیادی طول بکشد. بنابراین در حالی که CPU منتظر است تا متوجه شود که آیا اجازه دسترسی به آن داده‌ها را دارد یا خیر، به لطف اجرای گمانه‌زنی، حتی قبل از دریافت مجوز، شروع به کار با آن داده‌ها می‌کند.

در تئوری، این فرایند همچنان امن است. زیرا نتایج آن اجرای گمانه‌زنی در سطح سخت افزار نیز محافظت می‌شود. فرایند اجرا شده، امکان دیدن داده‌ها را تا زمانی که اجازه‌ی دسترسی را بدست بیاورد، ندارد. در مقابل اگر مجاز نشد، داده‌ها دور ریخته می‌شوند.

مشکل اینجاست؛ حتی اگر فرآیند هرگز اجازه دسترسی به Protected memory را دریافت نکند، در حافظه پنهان CPU ذخیره می‌شوند.

و از آنجایی که دسترسی به حافظه پنهان CPU سریع‌تر از حافظه معمولی است، این فرآیند سعی می‎‌کند به مکان‌های خاصی در حافظه دسترسی پیدا کند. تا متوجه شود که داده‌های موجود، در حافظه پنهان ذخیره شده‌اند یا خیر( به‌عنوان مثال فرض کنید که به جعبه ای ضربه می‌زنید تا متوجه شوید آیا خالی است یا خیر).  

با این وجود هنوز هم نمی‌تواند به داده‌ها دسترسی پیدا کند، اما اگر آن‌ها ذخیره شده باشند، تلاش آن برای خواندن داده‌ها بسیار سریع‌تر از زمانی است که ذخیره نباشند.

تفاوت بین Spectre و Meltdown چیست؟

تفاوت بین Metdown ملتدوان و اسپکتر Spectre

اگر بخواهیم به‌صورت مختصر بیان کنیم باید بگوییم که، Spectre و Meltdown هر دو می‌توانند به مهاجمان بالقوه اجازه دهند تا با استفاده از تکنیک‌های ذکر شده در بالا به داده‌هایی که مجاز به دسترسی به آن‌ها نیستند، دست پیدا کنند.

دلیل نام‌گذاری Meltdown این است که مرزهای امنیتی که معمولاً توسط سخت افزارها اعمال می‌شوند را “ذوب” می‌کند. مهاجم با بهره‌برداری از Meltdown، می‌تواند از برنامه‌ای که روی یک دستگاه اجرا می‌شود برای دسترسی به داده‌هایی که مجاز به دسترسی به آن‌ها نیست، استفاده کند. از جمله داده‌های متعلق به سایر برنامه‌ها و داده‌هایی که فقط مدیران باید به آن‌ها دسترسی داشته باشند.

Meltdown به دانش زیادی درباره‌ی نحوه‌ی عملکرد برنامه‌ای که توسط مهاجم ربوده می‌شود، نیاز ندارد. زیرا تنها با انواع خاصی از تراشه‌های اینتل و اپل کار می‌کند. این یک مشکل بسیار جدی است، که در حال برطرف کردن آن هستند.

یک مهاجم می‌تواند با بهره‌برداری از انواع Spectre، برنامه ای را وادار کند که برخی از داده‌های مخفی خود را، فاش کند.

این امر نیاز به دانش دقیق‌تری از عملکرد درونی برنامه قربانی را، دارد. اما تقریباً روی هر تراشه‌‌ی کامپیوتری کار می‌کند. نام Spectre از اجرای گمانه‌زنی می‌آید، همچنین از این واقعیت ناشی می‌شود که متوقف کردن آن بسیار دشوارتر خواهد بود.

دلیل دیگر این نام نیز این است که: Spectre برای مدتی ما را آزار خواهد داد.

در واقع Spectre برای پردازنده‌های Intel، Apple، ARM و AMD کاربرد دارد. و با فریب پردازنده‌ها برای اجرای دستورالعمل‌هایی که نباید آن‌ها را اجرا کنند، کار می‌کند. و در نهایت به اطلاعات حساس موجود در فضای حافظه برنامه‌های دیگر، دسترسی پیدا می‌کند.

پچ‌های نرم‌افزاری برای هر دو آسیب‌پذیری وجود دارند، اما پچ‌ها برای Meltdown ساده‌تر و برای Spectre ظریف‌تر و دشوارتر هستند.

آیا کسی می‌تواند کد را روی دستگاه شما اجرا کند یا خیر؟

  • احتمال اینکه چقدر در معرض خطر هستید بسته به:
  1. پلتفرم‌های سخت‌افزاری مورد استفاده،
  2. سیستم‌عامل‌هایی که بر روی آن پلتفرم‌ها اجرا می‌شوند
  3. و سطوح مختلف پچ شما در هر زمان متفاوت خواهد بود. اما مفهوم اصلی برای این دو حمله این است که باید داده‌ها را (در هر مکانی که هستند) برای مهاجمان قابل دستیابی در نظر بگیرید.
  • Meltdown و Spectre هر دو به کاربران با امتیاز پایین اجازه می‌دهند که کد را روی سیستم شما اجرا کنند و اطلاعات حساس را از طریق Speculative Execution از حافظه شما بدست بیاورند.
  • تفاوت این است که Meltdown از افزایش امتیاز ویژه اینتل برای انجام این کار استفاده می‌کند، در حالی که Spectre از ترکیب اجرای Speculative و Branch Prediction استفاده می‌کند.
  • هر دو مشکل را می‌توان با پچ‌های نرم‌افزاری حل کرد، اما همان طور که گفتیم این روش برای Meltdown موثرتر از Spectre است.

چرا Spectre و Meltdown خطرناک هستند؟

Spectre و Meltdown هر دو فرصت‌هایی را برای حملات خطرناک ایجاد می‌کنند.

به‌عنوان مثال، کد جاوا اسکریپت در یک وب‌سایت می‌تواند از Spectre برای فریب مرورگر وب جهت افشای اطلاعات کاربر و رمز عبور آن استفاده کند.

مهاجمان می‌توانند از Meltdown برای مشاهده داده‌های متعلق به سایر کاربران و حتی سایر سرورهای مجازی که روی همان سخت‌افزار میزبانی می‌شوند، سوءاستفاده کنند.

اما فراتر از حملات خاص، این واقعیت وجود دارد؛ که نقص‌ها برای پلتفرم‌های سخت‌افزاری و نرم‌افزاری که ما هر روز استفاده می‌کنیم، اساسی هستند.

حتی کدهایی که به‌طور رسمی ایمن شده‌اند همچنان آسیب‌پذیرند، زیرا مفروضات نهفته در فرآیندهای امنیتی ساخته شده در کد (که در واقع، در تمام برنامه نویسی کامپیوتری تعبیه شده است) نادرست هستند.

این دوآسیب‌پذیری برای استخراج داده‌های انبوه نسبتاً ناکارآمد هستند. زیرا تحقیقات نشان می‌دهد که Meltdown قادر به دسترسی به داده‌ها در حدود 120 کیلوبایت بر ثانیه و Spectre حدود 1.5 تا 2 کیلوبایت بر ثانیه است.

علاوه بر این، Spectre-BTB (Variant 2) به 10 الی 30 دقیقه برای initialization  یا ارزش‌دهی اولیه روی سیستمی با 64 گیگابایت رم نیاز دارد.

بهره‌برداری از این دو آسیب‌پذیری را، می‌توان به‌صورت غیرقابل ردیابی انجام داد (یعنی بدون باقی ماندن هیچ شواهدی در گزارش‌های سیستم). این امر شناسایی این 2 را در حملات هدفمند بدافزار، دشوار می‌کند.

راهکارهای محافظت از خود در برابر حملات Meltdown و Spectre

معمولا آسیب پذیری‌های اساسی که قابل اصلاح نیستند، در سطح سخت افزار وجود دارند.

 پچ KAISER که به‌طور تصادفی در سال 2017 برای بهبود امنیت لینوکس طراحی شد، در واقع دارای اثر جانبی جلوگیری از حملات Meltdown بوده است. فروشندگان بزرگ ابر به‌طور کلی سرورهای خود را اصلاح کرده‌اند.

پچ‌ها قبلاً توسط اینتل، مایکروسافت، اپل و گوگل منتشر شده‌اند و موارد بیشتری نیز در راه است.

J.M. Porup از CSO مجموعه خوبی از مراحلی است که باید در کوتاه‌مدت انجام دهید.

Rendition Infosec همچنین منبع بسیار خوبی برای ایجاد یک استراتژی برای سازمان شما دارد که سیستم‌ها و عملکردهای شما را سخت‌تر می‌کند. همچنین در صورت وقوع حمله‌ای که از Spectre یا Meltdown سوءاستفاده می‌کند، از آسیب بیشتر شما جلوگیری می‎‌کنند.

از آنجایی که اجرای کد جاوا اسکریپت در مرورگر، یکی از روش‌های خطرناک برای حملات Spectre است، به همین دلیل مهم است که مرورگرهای خود را همواره به‌روز نگهدارید.

قابل ذکر است، سیستم‌های قدیمی‌تر، به‌ویژه ویندوز XP، تقریباً هرگز وصله نمی‌شوند.

به دلیل ماهیت Spectre و Meltdown، اطمینان از نصب آخرین پچ‌های موجود برای سیستم شما بسیار ضروری است.

به‌طور کلی این اقدامات را برای محافظت از کامپیوترتان باید انجام دهید:

  • سیستم‌عامل خود را به‌روز کنید.
  • به‌روزرسانی‌های موجود برای ثابت‌افزارها (firmware)  را بررسی کنید.
  • مرورگر خود را به‌روز کنید.
  • سعی کنید برنامه‌های کامپیوتر را به روز نگهدارید.
  • آنتی ویروس خود را فعال کنید.

خط مقدم دفاع از شما در مقابل انواع عامل‌های مخرب، استفاده از آنتی ویروسی است که قابلیت اطمینان بالایی داشته باشد و مدام به روزرسانی شود. ما در مجموعه‌ی شیدافزار برای این نگرانی شما عزیزان، ضدویروس شید را پیشنهاد می‌کنیم.

در صورت تمایل به آشنایی با آنتی‌ویروس شید می‌توانید روی دکمه‌ی زیر کلیک کنید.

تازه‌ترین پچ‌ها

  • از تاریخ 11 ژانویه، مایکروسافت پچ‌های سیستم عامل را از نسخه‌های ویندوز 7 به بعد منتشر کرد. همچنین پچ‌های منتشر شده، مرورگرهای  Internet Explorerو Edge را نیز ساپورت می‌کنند.
  • اپل نسخه‌های پچ شده‌ی سیستم‌عامل‌های macOS، iOS و tvOS و همچنین مرورگر سافاری خود را در 3 ژانویه منتشر کرد.
  • گوگل لیستی از مدل‌های Chromebook کروم بوک:
  1. که پچ شده‌اند،
  2. اکثر آن‌ها نیازی به پچ ندارند،
  3. به زودی پچ می‌شوند،
  4. و آن‌هایی که عمرشان تمام شده و دیگری پچی ندارند را، منتشر کرده است.
  • فایرفاکس در 23 ژانویه یک پچ منتشر کرد.
  • مرورگر گوگل کروم نیز در ۲۳ ژانویه یک پچ که به‌وسیله‌ی آن کاربران می‌توانند برای محافظت از خود ویژگی آزمایشی Site Isolation را روشن کنند، منتشر کرد.
  • به دلیل تعداد زیاد گوشی‌ها با سیستم‌عامل اندروید، پاسخ به این سوال که؛ آیا گوشی اندرویدی شما پچ شده است یا خیر، دشوار می‌باشد. اکثر گوشی‌هایی که مستقیماً از کمپانی‌های گوگل یا غول‌هایی مانند سامسونگ خریداری می‌شوند، پچ شده‌اند یا خواهند شد. اما بسیاری از آن‌ها نیز این کار را نخواهند کرد. شرکت ایتالیایی RiCompo سایتی دارد که شما را در مورد برندها و مدل‌های مختلف به‌روز نگه‌ می‌دارد.

این پچ‌ها عموماً با تغییر یا غیرفعال کردن کد نرم‌افزار و از طریق اجرای گمانه‌زنی و حافظه پنهان تعبیه‌شده در سخت‌افزار اصلی، آسیب‌پذیری‌ها را کاهش می‌دهند. البته نقطه ضعف این کار این است که این ویژگی‌ها برای بهبود عملکرد سیستم طراحی شده‌اند و بنابراین می‌توانند سرعت سیستم شما را کاهش دهند.

اگر علاقه‌مند به کسب اطلاعات بیشتر در مورد این دو آسیب‌پذیری هستید، فایل پی‌دی‌اف Meltdown و Spectre را مطالعه بفرمایید.

جمع‌بندی

در این مقاله شما به چیستی آسیب‌پذیری‌های Spectre و Meltdown ، نحوه‌ی عملکرد آن‌ها و راه‌های جلوگیری از این حملات آگاه شدید. امروزه با افزایش تعداد جرایم سایبری، آگاهی از این حوزه و راه‌های افزایش امنیت رایانه، شبکه و اطلاعات خود امری حیاتی است.

دوست عزیز

به انتهای این مقاله رسیدیم. از اینکه تا به اینجای کار با ما همراه بودید، سپاسگزاریم. خوشحال می‌شویم که نظر شما عزیزان را در قسمت کامنت مطالعه کنیم. اگر به مطالب بیشتر در حوزه‌ی امنیت و هک علاقمندید می‌توانید وبلاگ ما را دنبال کنید.

۲ نظر در “Meltdown ، Spectre چیست و راهکارهای جلوگیری از آن‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.