متخصصان امنیتی، آسیبپذیری جدی در افزونههای برچسبگذاری حافظه (MTE) پردازنده ARM را کشف کردهاند. این افزونهها برای محافظت در برابر نشت حافظه طراحی شدهاند، اما محققان امنیتی از طریق اجرای مضاربهای (speculative execution) MTE را دور زدهاند. اهمیت و جذابیت این موضوع، دلیل اختصاص دادن این مقاله در سایت Abazi به این بحث می باشد.
محققان امنیتی در جدیدترین کشف خود، حفرهای بزرگ در افزونههای برچسبگذاری حافظه (MTE) پردازنده ARM یافتهاند. MTE برای محافظت از سیستم در برابر نشت حافظه طراحی شده بود، اما به نظر میرسد هکرها با استفاده از تکنیکی به نام اجرای مضاربهای، میتوانند از آن عبور کنند. این امر به هکرها امکان میدهد به اطلاعات حساس در حافظه سیستم دست پیدا کنند.
محققان این آسیبپذیری را به پردازنده ARM گزارش دادهاند و وصلهای برای آن در حال توسعه است. با این حال، تا زمانی که وصله منتشر شود، بهروزرسانی نرمافزار و فعالسازی راهحلهای امنیتی برای محافظت از MTE ضروری است.
علاوه بر این، کاربران باید از آنتیویروس و فایروال قوی استفاده کنند و به طور مرتب سیستم خود را بهروزرسانی کنند تا از خطرات امنیتی جدید در امان باشند.
این امر میتواند منجر به دسترسی هکرها به اطلاعات حساس در حافظه سیستم شود. محققان این آسیبپذیری را به پردازنده ARM گزارش دادهاند و وصلهای برای آن در حال توسعه است.
تیمی متشکل از متخصصان امنیت از دانشگاه ملی سئول و سامسونگ ریسرچ، آسیبپذیری را در افزونههای برچسبگذاری حافظه (MTEs) که توسط پردازنده ARM به عنوان روشی برای محافظت در برابر نشت حافظه استفاده میشود، کشف کردهاند. این گروه یافتههای خود را در مقالهای در سرور پیشچاپ arXiv منتشر کردهاند.
در سال ۲۰۱۸، شرکت Arm، Ltd. یک ویژگی سختافزاری جدید برای رایانههای مجموعه دستورالعملهای کاهشیافته پیشرفته (RISC) ( پردازنده ARM ) معرفی کرد که میتوانست توسط سازندگان نرمافزار برای شناسایی نقض حافظه استفاده شود. MTEs بلوکهای حافظه فیزیکی را با ابرداده برچسبگذاری میکنند.
فهرست مطالب
دور زدن MTE در پردازنده ARM با اجرای مضاربهای!
هنگامی که نرمافزار یک فراخوان حافظه را در یک منطقه برچسبگذاری شده انجام میدهد، بهطور کلی با استفاده از یک اشاره گر، سختافزار جدید بررسی میکند که آیا اشاره گر کلید مطابقی برای بلوک حافظه مرجع شده دارد یا خیر. در غیر این صورت، یک خطا برگردانده میشود و از نوشتن داده در مکانی که نباید اتفاق بیفتد (مانند در هنگام سرریز بافر) جلوگیری میشود.
معرفی MTE به عنوان یک افزودنی جذاب به معماری پردازنده ARM در نظر گرفته شده است زیرا به برنامهنویسان در جلوگیری از خرابی حافظه و آسیبپذیریهای احتمالی مانند دسترسی هکرها به دادهها در مناطق ناامن کمک میکند. متأسفانه، به نظر میرسد که معرفی MTEs منجر به ایجاد یک آسیبپذیری جدید نیز شده است.
آسیبپذیری جدید به مهاجمان بالقوه اجازه میدهد تا از طریق اجرای مضاربهای (speculative execution) این افزونهها را دور بزنند. اجرای مضاربه تکنیکی است که پردازنده برای بهبود عملکرد از آن استفاده میکند، اما در این مورد میتواند مورد سوءاستفاده قرار گیرد.
این آسیبپذیری به مهاجمان بالقوه این امکان را میدهد تا به اطلاعات حساس در حافظه سیستم دست پیدا کنند. محققان این آسیبپذیری را به پردازنده ARM گزارش دادهاند و وصلهای برای آن در حال توسعه است.
دور زدن MTE در پردازنده ARM با TIKTAG!
در این پژوهش جدید، تیم تحقیقاتی دو تکنیک به نامهای TIKTAG-v1 و v2 را توسعه دادند که ادعا میکنند قادر به استخراج تگهای MTE برای نواحی آدرس حافظه تصادفی هستند. آنها توضیح میدهند که هر دو تکنیک شامل استفاده از نرمافزار برای نظارت بر تأثیر عملیات حدسی بر نحوه پیشخوانی دادهها است.
سیستمهای نرمافزاری از پیشخوانی برای سرعت بخشیدن به عملیات استفاده میکنند و از زمانهای تأخیر مرتبط با انتظار برای بازیابی داده جلوگیری میکنند. اجرای حدسی نیز به همین ترتیب کار میکند، کدی را به صورت پیشفرض اجرا میکند که ممکن است در آینده مفید باشد، گاهی اوقات از دادههای پیشخوانی شده استفاده میکند و به حافظه مینویسد.
اگر نتایج چنین اجراهایی مورد نیاز نباشد، به سادگی دور ریخته میشوند. آسیبپذیریهایی که تیم پیدا کرد، شامل سوءاستفاده از چنین اطلاعات پیشخوانیشده و/یا دورریختهشده بود.
تیم تحقیقاتی دریافتند که در 95 درصد از تلاشهای خود توانستهاند تگهای MTE را استخراج کنند، که به گفته آنها میتواند منجر به سوءاستفاده شود. آنها همچنین راهحلهای احتمالی متعددی را برای رفع این مشکل پیشنهاد کردند و برای شرکت Arm، Ltd. ارسال کردند.
جزئیات بیشتر در مورد TIKTAG و آسیبپذیری MTE در پردازنده ARM
TIKTAG مخفف Timing-based Inference of Key Tags for ARM Memory Tagging Extension است و به دو ابزار (gadget) به نامهای TIKTAG-v1 و TIKTAG-v2 اشاره دارد که توسط محققان برای استخراج تگهای MTE از آدرسهای حافظه تصادفی توسعه یافتهاند.
MTE مخفف Memory Tagging Extension است و یک ویژگی امنیتی در پردازنده ARM است که برای محافظت در برابر نشت حافظه (memory leaks) و سایر آسیبپذیریهای حافظه طراحی شده است. MTE با اختصاص تگهای 4 بیتی به بلوکهای 16 بایتی حافظه فیزیکی عمل میکند.
هنگامی که یک برنامه به حافظهای که با تگ MTE محافظت میشود دسترسی پیدا میکند، پردازنده بررسی میکند که آیا تگ اشاره گر با تگ حافظه مطابقت دارد یا خیر. اگر مطابقت نداشته باشد، خطایی رخ میدهد و از دسترسی غیرمجاز به حافظه جلوگیری میشود.
TIKTAG-v1 از انقباض حدسی در پیشبینی شاخه و رفتار پیشخوانی داده CPU برای استخراج تگهای MTE استفاده میکند. این ابزار با استفاده از تماسهای سیستمی برای ایجاد مسیر اجرای حدسی و اندازهگیری وضعیت حافظه کش برای استنباط تگهای حافظه عمل میکند. TIKTAG-v1 در برابر هسته لینوکس، به ویژه در عملکردهایی که شامل دسترسی حدسی به حافظه هستند، مؤثر است.
TIKTAG-v2 از رفتار انتقال ذخیره به بارگیری در اجرای حدسی سوء استفاده میکند. هنگامی که یک مقدار به طور حدسی در یک آدرس حافظه ذخیره میشود و بلافاصله از همان آدرس بارگیری میشود، اگر تگها مطابقت داشته باشند، مقدار بارگیری میشود و وضعیت حافظه کش را تحت تأثیر قرار میدهد. در غیر این صورت، بارگیری انجام نمیشود و وضعیت حافظه کش بدون تغییر باقی میماند.
TIKTAG-v2 با اندازهگیری وضعیت حافظه کش پس از اجرای حدسی میتواند تگهای حافظه را استنباط کند. این ابزار در برابر مرورگر گوگل کروم، به ویژه موتور جاوا اسکریپت V8، مؤثر است.
محققان دریافتند که TIKTAG-v1 و TIKTAG-v2 میتوانند در 95 درصد موارد تگهای MTE را با موفقیت استخراج کنند. این امر به هکرها اجازه میدهد تا از MTE دور بزنند و به اطلاعات حساس در حافظه سیستم دسترسی پیدا کنند.
راهحلهای پیشنهادی برای رفع آسیبپذیری MTE و رفع خطر از پردازنده ARM
محققان چندین راهحل را برای رفع این آسیبپذیری و محافظت از حافظه سیستم در برابر حملات هکری پیشنهاد کردهاند:
تقویت بررسیهای MTE
- تغییر الگوی تخصیص تگ: ARM میتواند الگوی تخصیص تگهای MTE را به گونهای تغییر دهد که پیشبینی آنها برای مهاجمان دشوارتر باشد.
- افزایش تنوع تگها: ARM میتواند تعداد تگهای MTE را افزایش دهد و از الگوهای تصادفیتر برای تخصیص آنها استفاده کند.
- استفاده از رمزگذاری: ARM میتواند از رمزگذاری برای محافظت از تگهای MTE در برابر افشا شدن استفاده کند.
محدود کردن اجرای حدسی؛ گامی ضروری برای مقابله با TIKTAG و محافظت از MTE
- محدود کردن پیشخوانی حافظه: پردازنده ARM میتواند پیشخوانی حافظه را در مناطق حساس حافظه محدود کند یا به طور کامل غیرفعال کند.
- کنترل رفتار پیشبینی شاخه: همچنین این پردازش کننده میتواند رفتار پیشبینی شاخه را در پردازندههای خود به گونهای کنترل کند که از سوء استفاده مهاجمان جلوگیری کند.
- ارائه حالتهای اجرای امن: پردازنده ARM میتواند حالتهای اجرای امنی را ارائه دهد که در آنها اجرای حدسی به طور پیش فرض غیرفعال باشد.
ارائه APIهای امن
- APIهای MTE امن: ARM میتواند APIهای امنی را برای دسترسی به حافظه محافظتشده MTE ارائه دهد که از حملات حدسی محافظت میکنند.
- مکانیزمهای تأیید قوی: ARM میتواند مکانیزمهای تأیید قوی را برای دسترسی به حافظه محافظتشده MTE پیادهسازی کند.
- حالتهای امن برای برنامهها: ARM میتواند حالتهای امنی را برای برنامهها ارائه دهد که در آنها دسترسی به حافظه محافظتشده MTE به طور پیش فرض محدود باشد.
علاوه بر این راهحلها، پردازنده ARM باید به طور فعال به دنبال آسیبپذیریهای جدید در MTE باشد و بهطور منظم وصلههایی برای رفع آنها منتشر کند.
مهم است که توجه داشته باشید که هیچ راهحلی 100% امن نیست. هکرها خلاق هستند و همیشه به دنبال راههای جدیدی برای دور زدن اقدامات امنیتی هستند.
بنابراین، کاربران باید همیشه احتیاط کنند و از بهروزرسانی نرمافزار و سیستمعامل خود به آخرین نسخهها اطمینان حاصل کنند.
همچنین استفاده از آنتیویروس و فایروال قوی و احتیاط در مورد کلیک کردن بر روی پیوندها و دانلود فایلهای مشکوک میتواند به محافظت از سیستم شما در برابر حملات هکری کمک کند.
با این حال می توان راهکارهایی هرچند موقتی برای ایمن سازی در نظر گرفت که در ادامه به آن ها اشاره می کنیم.
راهکارهای موقتی برای مقابله با خطر MTE در پردازنده ARM
با وجود کشف آسیبپذیری MTE در پردازنده ARM، جای نگرانی نیست! راهکارهایی برای محافظت از سیستم شما تا زمان انتشار وصله رسمی وجود دارد.
- بهروزرسانی نرمافزار:
اولین قدم، بهروزرسانی تمام نرمافزارها و سیستمعامل شما به آخرین نسخهها است. این کار میتواند شامل بهروزرسانی هسته لینوکس، مرورگر گوگل کروم و سایر برنامههایی باشد که ممکن است تحت تأثیر این آسیبپذیری قرار گرفته باشند.
- فعالسازی راهحلهای امنیتی
فعالسازی راهحلهای امنیتی مانند آنتیویروس و فایروال قوی میتواند به محافظت از سیستم شما در برابر حملات هکری احتمالی کمک کند. این راهحلها میتوانند فعالیتهای مشکوک را شناسایی کرده و از دسترسی غیرمجاز به سیستم شما جلوگیری کنند.
- محدود کردن اجرای حدسی
برخی از نرمافزارها و سیستمعاملها دارای تنظیماتی برای محدود کردن یا غیرفعال کردن اجرای حدسی هستند. این کار میتواند تا حدی از سوء استفاده هکرها از این تکنیک برای دور زدن MTE جلوگیری کند.
- استفاده از حالتهای اجرای امن
اگر سیستمعامل شما از حالتهای اجرای امن پشتیبانی میکند، میتوانید از آنها برای جداسازی برنامهها و فرآیندها استفاده کنید. این کار میتواند به محدود کردن دامنه آسیب احتمالی در صورت وقوع حمله هکری کمک کند.
- احتیاط در استفاده از مرورگر
از مرورگرهای ناامن یا دانلود فایلهای مشکوک از اینترنت خودداری کنید. این اقدامات میتواند خطر ابتلا به بدافزار و هک شدن را افزایش دهد.
- بهروزرسانی منظم
به طور مرتب سیستم خود را بهروزرسانی کنید و از جدیدترین وصلههای امنیتی استفاده کنید. این کار به شما کمک میکند تا از آسیبپذیریهای جدید و تهدیدات امنیتی در امان باشید.
به یاد داشته باشید که این راهکارها موقتی هستند و تا زمان انتشار وصله رسمی ARM، باید احتیاط بیشتری را در استفاده از سیستم خود به خرج دهید.
بهروزرسانی نرمافزار و فعالسازی راهحلهای امنیتی ضروری است!
تاریخ آخرین آپدیت: ۳۱ام خرداد ۱۴۰۳