بهبود وباسمبلی یا ناکارآمد شدن وصلههای Meltdown و Spectre!
خلاصه: محققان امنیتی دریافتند که تغییرات جدید در استاندارد WebAssembly میتواند اقدامات سطح مرورگر در مقابله با حملات Meltdown و Spectre را ناکارآمد کند. درواقع اضافه کردن پشتیبانی از "نخها" در وباسمبلی باعث میشود که بهروزرسانیهای مرورگرهای کروم و فایرفاکس برای مقابله در برابر حملات Meltdown و Spectre و سایر حملات جانبی ناکارآمد شوند.
به گفته محققان امنیتی Forcepoint، با توجه به تغییرات جدیدی که قرار است در استاندارد webAssembly رخ دهد ممکن است بعضی از اقداماتی که در سطح مرورگر در برابر حملات Meltdown و Spectre انجام میشوند، ناکارآمد شوند.
WebAssembly یا (WA or WAsm) تکنولوژی جدیدیست که سال پیش به وجود آمده و در حال حاضر توسط همهی مرورگرها اعم از Chrome، Firefox، Edge و Safari پشتیبانی میشود. این تکنولوژی یک زبان باینری فشرده است که یک مرورگر آنرا به کد ماشین تبدیل کرده و به طور مستقیم روی CPU اجرا میکند.
سازندگان مرورگر، وباسمبلی را برای بهبود سرعت تحویل و کارایی کد جاوا اسکریپت ایجاد کردند، همچنین دست توسعهدهندگان را باز گذاشتند تا بتوانند کدها را از زبانهای سطح بالا مانند (C, C++, others) به Wasm تبدیل کرده و سپس آنها را داخل مرورگر اجرا کنند. استاندارد وباسمبلی در انجمن توسعه دهندگان وب، به عنوان یک موفقیت بزرگ محسوب میشود.
وباسمبلی در مقابل سوءاستفاده ایمن نیست!
اما همانند همه فناوریها، این تکنولوژی نیز با برخی اثرات سوء و یا موارد سوءاستفاده پیشبینی نشده همراه است. برای مثال، ظهور استخراجکنندگان رمز-ارز را میتوان بدون هیچ ابهامی، به اضافه شدن وباسمبلی در مرورگرهای اصلی، مرتبط دانست، چراکه همهی ماینرها با استفاده از وباسمبی اجرا میشوند.
اما این تنها تاثیر سوء وباسمبلی نیست و محققان Forcepoint تاثیر جانبی دیگری را نیز در وباسمبلی کشف کردهاند.
بهگفتهی محققان زمانی که Wasm از نخها با حافظهی اشتراکی پشتیبانی میکند، تایمرهای بسیار دقیق جاوااسکریپت میتوانند ایجادشوند، که این کار ممکن است باعث شود که مرورگر برای مقابله با یرخی از حملات جانبی CPU به صورت غیر موثر عمل کند.
webAssembly ممکن است برخی از ویژگیهای موثر در کاهش و مقابله با حملات در مرورگر، را دوربزند.
در این رابطه محققان به طور دقیقتری به حملات زمانبندی اشاره دارند. حملات زمانبندی (timing)، دستهای از حملات رمزنگاری هستند که از طریق آن یک ناظر شخص ثالث میتواند محتویات دادههای رمز شده را با ثبت و تجزیه و تحلیل زمان انجام شده برای اجرای الگوریتم رمزنگاری محاسبه کند. آسیبپذیریهای Meltdown و Spectre برای پردازنده، که اخیرا کشف شدند، نمونهای از حملات زمانبندی هستند.
این حملات به توانایی مهاجمان برای اندازهگیری فواصل زمانی دقیق متکی هستند. این پارامتر، برای انجام حملات کانال جانبی و بازیابی اطلاعات کافی از دادههای رمزشده، مورد نیاز است.
هنگامی که Meltdown و Spectre در ماه ژانویه نمایان شدند، محققان کدهای اثبات مفهومی را برای آنها منتشر کردند که مهاجم میتوانست از آنها برای بهرهبرداری از این آسیبپذیریها از راه دور (از طریق اینترنت با استفاده از کد جاوااسکریپت که در مرورگر اجرا میشود.) استفاده کند. این کد حمله از توابع داخلی مرورگرها مانند “SharedArrayBuffer” و “Performance.now” برای اندازهگیری فواصل زمانی استفاده میکند.
مرورگرهایی مانند فایر فاکس و کروم با بهروزرسانیهایی که دقت عملکرد این تایمرها را کاهش میدادند توانستند حملات Meltdown و Spectre و دیگر حملات کانال جانبی را ناکارآمد کنند. اما اکنون محققان متوجه شدند که ازآنجایی که پشتیبانی از نخها در وباسمبلی اضافه میشود و این ویژگی به مرورگرهای مدرن رسیده است، این اقدامات مرورگرها بیفایده خواهندبود، چراکه مهاجم راه جدیدی برای اندازهگیری فواصل زمانی دقیق از طریق WebAssembly را در اختیار دارد. جلوگیری از این اتفاق مستلزم آن است که توسعهدهندگان مرورگرها، پشتبانی وباسمبلی از "نخها" را محدود کنند.