نقص امنیتی در فریمور پرکاربرد تراشه وای فای

نوشته شده توسط :
نقص امنیتی در فریمور پرکاربرد تراشه وای فای

نقص امنیتی موجود در فریمور تراشه Marvell Avastar 88W8897 SoC که در تکنولوژی‌های بلوتوث، WiFi و NFC در دستگاه‌های PS4، تبلت و لپ‌تاپ‌های مایکروسافت سرفیس، دستگاه ایکس‌باکس وان، گوشی‌های هوشمند و کروم‌بوک سامسونگ و غیره... مورد استفاده قرار می‌گیرد، باعث شده است تا دسترسی به حافظه موقت دستگاه برای نفوذگران مقدور شود. فریمور مارول بر مبنای سیستم‌عامل ThreadX که یک سیستم‌عامل Real Time Operating System است، تهیه شده و توسعه این سیستم‌عامل توسط شرکت Express Logic صورت گرفته است. هنگامی که هزینه خرید لایسنس RTOS پرداخت شود، امکان دسترسی به کُد منبع این فریمور برای بررسی بیشتر امکان‌پذیر خواهد بود و این خود باعث کشف ایرادات و آسیب‌پذیری‌ها روی آن می‌شود. همچنین شرکت این سیستم‌عامل ادعا می‌کند که ThreadX بیش از ۶ میلیون‌بار در دستگاه‌های IoT مورد استفاده قرار گرفته و محبوب‌ترین نرم‌افزار مورد استفاده در ارتباط با تراشه‌های WiFi در دنیا است.

به‌طور معمول، راه‌اندازی یک تراشه WiFi و هماهنگی آن با راه‌انداز (Driver) مربوطه در هنگام شروع به کار دستگاه، توسط بارگزاری فریمور آن انجام می‌شود. سیستم بیسیم System On Chip مارول با برخی از راه‌اندازهای معروف لینوکسی که مستقیماً با هسته‌ی لینوکس در ارتباط هستند، همکاری دارد؛ مانند: mwifiex که سورس کُد آن در مخازن لینوکس رسمی موجود است، mlan و mlinux که سورس کُد آن‌ها در مخازن steamlink-sdk در دسترس است. هر دو مورد توانایی debug و خواندن و نوشتن داده‌ها در حافظه‌ی موقت ماژول WiFi را برای سیستم‌عامل فراهم می‌کنند.

یکی از آسیب‌پذیری‌های گزارش‌شده در فریمور، مربوط‌به سرریز بخشی از بلوک حافظه در زمانی‌ است که تراشه درحال جست‌وجو برای شبکه‌های WiFi است؛ فرایندی که هر ۵ دقیقه یک‌بار انجام خواهد شد، حتی اگر دستگاه قبلاً به یک شبکه‌ی WiFi متصل بوده باشد که در این حالت دانستن نام یا پسورد شبکه‌های WiFi بی‌اهمیت است. دنیس سلیانین، محقق شرکت Embedi که در زمینه امنیت دستگاه‌های IoT فعالیت دارد؛ می‌گوید که این خود باعث جالب بودن این آسیب‌پذیری می‌شود؛ چراکه حتی قبل از اتصال به یک شبکه WiFi و در مرحله‌ی Scanning امکان سوءاستفاده از این آسیب‌پذیری مقدور است. به همین دلیل امکان اجرای کُد مخرب از راه دور یا همان Remote Code Execution روی Chromebook سامسونگ وجود خواهد داشت.

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

اکسپلویت کردن آسیب‌پذیری در Avastar SoC مارول شامل انجام عملیات مهندسی معکوس بر مقادیر داده در بلوک حافظه مورد نظر نیز می‌شود که برای بلاک‌های اشغال‌شده‌ی بعدی هم امکان‌پذیر خواهد بود. توابع استفاده‌شده در ابتدای بلاک حافظه ThreadX هر کدام یک هدر metadata همراه‌با اشاره‌گر خاصی را قبل از آزادسازی بلاک حافظه فراخوانی می‌کنند. این اطلاعات برای اجرای کُدهای مخرب در SoC وایرلس کافی است.

سلیانین از یک ابزار سفارشی برای dump کامل فریمور تراشه WiFi استفاده کرده که از سخت‌افزار دستگاه‌های Valve Steam Link است و برای چک کردن امکان انجام عملیات اکسپلویت از ابزار فازینگ afl-unicorn استفاده کرده است. محقق امکان اجرای کُد روی پردازنده دستگاه Valve توسط اکسپلویت کردن آسیب‌پذیری روی درایور پردازنده را داشته است که این کار توسط کمک گرفتن از حق دسترسی به‌دست‌آمده از آسیب‌پذیری دوم ممکن می‌شود. سلیانین توضیح می‌دهد که تنها تفاوت موجود این است که نفوذگر، داده‌ها را از یک SoC وایرلس کنترل‌شده توسط پُل SDIO ارسال می‌کند، نه توسط ارتباطات شبکه‌ای. به خاطر وجود درایور به‌عنوان یک پُل ارتباطی بین دستگاه و سیستم‌عامل، داده‌ها از دستگاه گرفته می‌شود، تحلیل شده و برای سیستم‌عامل ارسال می‌شود.

آسیب‌پذیری دیگری که محققان کشف کرده‌اند، از نوع سرریزبافر Stack Base بوده که امکان اکسپلویت کردن آن راحت‌تر است؛ چراکه براساس توضیحات سلیانین، مارول از هسته لینوکس 3.8.13-mrvl استفاده می‌کند که برای مقابله با سوء استفاده توسط روش‌های اکسپلویت باینری مقاوم‌سازی نشده است. نفوذگر برای اکسپلویت کردن آسیب‌پذیری تنها دو کار انجام می‌دهد، اول تابع v7_flush_kern_cache_louis را از هسته لینوکس فراخوانی می‌کند و بعد shellcode مورد نظر خود را اجرا می‌کند! در ویدئو زیر روند اکسپلویت شدن Marvell Avastar WiFi روی Valve SteamLink را مشاهده می‌کنیم که استفاده از این آسیب‌پذیری بدون هیچ‌گونه تعاملی با کاربر بوده و به‌صورت خودکار در شرایط over-the-air صورت می‌گیرد. سلیانین انگیزه‌ی خود را از انتشار این آسیب‌پذیری‌ها این‌گونه اعلام کرده است که دستگاه هایی که از این تراشه‌ها برای ارتباطات بی‌سیم استفاده می‌کنند، توسط جامعه امنیت سایبری به اندازه کافی مورد بررسی قرار نگرفته‌اند و باید بررسی‌های عمیق‌تری روی این‌گونه دستگاه‌ها توسط محققین انجام بگیرد.

 

منبع : زومیت