همین ابتدا خیال شما را راحت کنم؛ اگر دستگاهی پردازندهی کامپیوتری دارد، به احتمال خیلی زیاد در معرض خطرات بزرگ امنیتی Meltdown و Spectre هست. موضوع آنقدر جدی است که Brian Krebs یکی از متخصصین مطرح امنیت اطلاعات در وصف آن گفته: «رخنههای ترسناکِ تراشه، شبح فروپاشی را احضار میکنند». اگر میخواهید درباره این خطر جدی و مقابله با آن بدانید، پیشنهاد میکنم تا انتهای مطلب همراه باشید.
این نوشته بطور اختصاصی برای بلاگ ابر آروان در این لینک نوشته و توسط محمد کلانتری ویرایش شدهاست.
پیشنهاد میکنم وبلاگ ابر آروان را دنبال کنید!
شبح فروپاشی
در هفتههای پایانی سال ۲۰۱۷، سیستمعاملهای ویندوزی و لینوکسی یک سری بهروزرسانی امنیتی دریافت کردند که نحوهی مدیریت حافظهی مجازی (Virtual Memory) توسط سیستمعامل را تغییر میداد. حتی در برخی موارد باعث کاهش راندمان ۱۷٪ تا ۵۰٪ هم شده است. هرچند که تحلیلها و گمانهزنیهای مختلفی وجود داشت، اما در ابتدا علت این بهروزرسانیها و اینکه با چه مشکل امنیتی مقابله میکند، مشخص نبود. تا اینکه در سومین روز سال جدید میلادی، کارشناسان امنیتی خبر از وجود باگهای سختافزاری بسیار جدی بنام Spectre و Meltdown دادند که مستقیما ریشه در شیوهی کارکرد پردازندههای رایانهای (CPU) دارد. بهوسیلهی باگهای این دو خانواده، امکان نشت اطلاعات و دسترسی به محتوای برنامههای در حال اجرا فراهم میشود.
هرچند که برنامهها عموما دسترسی خواندن اطلاعات جاری برنامههای دیگر را ندارند، یک بدافزار میتواند با بهرهگیری از حفرههای امنیتی Meltdown و Spectre، اطلاعات مربوط به حافظهی سایر برنامههای در حال اجرا را به دست آورد. یعنی مثلا رمز شما که در مرورگر یا نرمافزار مدیریت رمز ذخیره شده، عکسهای خصوصی، ایمیل، پیغامهای داخل پیامرسان، و حتی اسناد حساس کاری.
حفرههای Meltdown و Spectre بر روی کامپیوتر شخصی، موبایل و حتی روی ابر هم وجود دارند. گروههای مستقل امنیتی جداگانه این آسیبپذیری را کشف کردهاند، که در راس آنها پروژه Zero گوگل قرار دارد. وصلههای امنیتی لازم برای مقابله با آن هم پیش از اعلام عمومی تا جای ممکن آماده شده بود. ولی این حفرهها بیشتر جنبهی سختافزاری دارد و در نتیجه عمیقتر و زیرساختیتر از آن است که به راحتی بتوان جلوی آنها را گرفت.
سعی کردهام گویش این مطلب تا حد امکان عمومی و خلاصه باشد، اما به خاطر ذات بسیار فنی این اتفاق، پیشاپیش از پیچیده بودن برخی توضیحات عذرخواهی میکنم.
وقتی بهینهسازی کاربر را کباب میکند یا شتر دیدی؟ دیدم!
پردازندههای امروزی جهت بهینهسازی رایانش و افزایش کارایی، دستورات را به روش Speculative Execution (اجرای گمانهای) اجرا میکنند. یعنی چه؟ یعنی پردازنده فرض را بر صحت یک شرط گذاشته و دستورات بعد از آن را اجرا میکند؛ ولی اگر پس از اجرا مشخص شد که شرط نادرست بوده، دستورات اجرا شده نادیده گرفته میشود (شتر دیدی ندیدی) و هیچ تاثیری در پردازش برنامه ندارد. هرچند که نتیجهی اعمال اجرا شده از دیدگاه برنامه نادیده گرفته شده، با این حال تغییراتی در قسمتهای پایینی معماری پردازنده صورت گرفته است؛ مثلاً فرض کنید اجرای گمانهای منجر به cache شدن اطلاعات شود. همانطور که احتمالا میدانید، دسترسی به اطلاعات در cache راحتتر و سریعتر از محتوایی است که cache نشده.
هر دو خانواده Meltdown و Spectre دقیقا با سوءاستفاده از همین شیوهی اجرای پردازندهها، حمله میکنند.
Meltdown
آسیبپذیری Meltdown با سوءاستفاده از شیوهی اجرای گمانهای پردازندهها، مرز بنیانی بین فضای کاربر و Kernel سیستمعامل را میشکند و باعث نشت اطلاعات از Kernel به برنامههای کاربر میشود. همین آسیبپذیری بود که در ابتدا منجر به سیلی از وصلههای امنیتی شد.
هرچند که تمام پردازندههای مدرن، از جمله Intel، AMD و ARM کمابیش از دسترسی گمانهای به حافظه استفاده میکنند، اما پیادهسازی اینتل بیشتر از بقیه از این تکنیک بهره میجوید. حافظهی مربوط به سیستمعامل با استفاده از metadata یا فراداده مشخص میکند که آیا برنامهی کاربری اجازه دسترسی به حافظه را دارد، یا دسترسی برنامه به حافظه از طریق Kernel محدود شده است. نکتهی مهم دربارهی Chipهای اینتل این است که ابتدا به برنامهها این اجازه را میدهد که بطور گمانهای از حافظهی مربوط به Kernel استفاده کنند، و پس از شروع اجرای دستور، اجازهی دسترسی را بررسی میکند؛ هرچند که درصورت عدم صحت شرط، جلوی اجرا گرفته خواهد شد، اما با زمانبندی خوب از سمت برنامه، امکان دسترسی به محتوای cache وجود خواهد داشت.
با توجه به موارد ذکر شده، اغلب کامپیوترهای دسکتاپ، لپتاپ، و سیستمهای ابری که از پردازندههای Intel استفاده میکنند در معرض خطر هستند. دقیقتر بگویم، تقریبا تمام پردازندههای تولید شده از سال ۱۹۹۵ (به جز Intel Itanium و Intel Atom قبل از ۲۰۱۳). هرچند هنوز مشخص نیست که پردازندههای AMD و ARM هم در برابر Meltdown آسیبپذیرند یا خیر، اما این احتمال میرود که بتوان برای این دسته از پردازندهها نیز حملاتی از این قبیل ترتیب داد.
Spectre
خب، شاید تا اینجا دارندگان سیستمهایی که از پردازندههای AMD یا ARM بهره میبرد نفس راحتی کشیدهاند، اما Spectre یا «شبح» شما را تنها نگذاشته است. آسیبپذیری Spectre حملهای عمومیتر درنظر گرفته میشود چرا که با استفاده از قابلیتهای وسیعتری از Speculative Execution قربانی میگیرد، به نحوی که در کنار سرور، لپتاپ و دسکتاپ، تلفن هوشمند و تبلت نیز جزو قربانیان آن محسوب میشود. حملات Spectre نه تنها میتواند باعث نشت اطلاعات از فضای Kernel به فضای کاربری شود، بلکه حتی میتواند باعث درز اطلاعات از Hypervisorهای مجازیسازی به ماشینهای مجازی مهمان روی سرور میزبان هم بشود.
سوءاستفاده از «شبح» سختتر از ملتداون است، اما مقابله با آن هم پیچیدهتر است. با این حال پیشگیری از بعضی سوءاستفادههای شناخته شده از این راه به کمک وصلههای نرمافزاری ممکن است. مثلا تغییراتی در کد سختافزار که پردازنده را وادار به اجرای سریالی دستورات میکند تا قبل از اجرا تمام اعمال read و write حافظه تمام شده باشد، که منجر به جلوگیری از اغلب گمانهزنیها میشود. چنین پیادهسازی روی پردازندهههای ARM، پردازندههای x86 اینتل و AMD اعمال شده است.
ما همه در خطریم! اگر عمل نکنیم.
با توجه به گستردگی و پیچیدگی این ایرادات، به احتمال زیاد شما نیز در برابر آن آسیبپذیرید و ممکن است حتی رمز عبور اکانتهای شما نشت کند؛ مگر اینکه برای سیستم شما هم وصلهی امنیتی مربوطه ارائه شده و شما آن را نصب کرده باشید و در ادامه نیز موارد امنیت رمزعبور را جدی بگیرید.
بررسی این امر که آیا در برابر یک سیستم خاص این حملات صورت گرفته بسیار سخت یا حتی نشدنی است، چرا که در چنین حملاتی معمولا هیچ اثری در لاگهای سیستم وجود ندارد. همچنین، باید در نظر داشت که برخلاف تئوری، نرمافزارهای ضد ویروس در عمل در برابر چنین حملاتی تقریبا نمیتوانند کاری کنند و حتی گاهی در بهروزرسانیهای امنیتی مربوطه هم باعث اختلال شدهاند.
مهمترین کار این است که در اولین زمان تمامی بهروزرسانیهای امنیتی جدید را برای سیستمعاملها و دستگاههای مختلفتان (حتی اندرویدی) نصب کنید. این کار را عقب نیاندازید. همینطور نرمافزارهای وب و اینترنت خود را بهروز نگهدارید. مثلا گوگل در نسخه بعدی مرورگر کروم که در ۲۳ ژانویه منتشر میشود با این دو ایراد امنیتی مقابله میکند.
برگرفته از:
Meltdown and Spectre FAQ: Fix for Intel CPU flaws could slow down PCs and Macs
Meltdown Paper
What’s behind the Intel design flaw forcing numerous patches
Spectre Paper
این نوشته بطور اختصاصی برای بلاگ ابر آروان در این لینک نوشته و توسط محمد کلانتری ویرایش شدهاست.
پیشنهاد میکنم وبلاگ ابر آروان را دنبال کنید!