یک آسیبپذیری جالب در برخی پردازندههای قدیمی AMD کشف شده که با اجرای تنها یک دستور میتواند نگاشت حافظه را تغییر دهد و دسترسی به بخشهای ممنوعه حافظه را امکانپذیر کند. این نقص در نهایت میتواند کنترل در سطح سختافزار را در اختیار مهاجم قرار دهد.
این اکسپلویت که Skitter Creek Bath Salts یا به اختصار Skitter نام دارد، توسط پژوهشگر امنیتی و هکر شناختهشده Christopher Domas توسعه داده شده است. Domas پیش از این نیز آسیبپذیریهایی مانند Sandsifter و God Mode Unlocked را در پردازندهها کشف کرده بود.
کدام پردازندههای AMD در معرض خطر هستند؟
Skitter تنها پردازندههای AMD از خانوادههای 15h و 16h را هدف قرار میدهد که تقریباً مربوط به محصولات عرضهشده بین سالهای 2011 تا 2015 هستند. خانواده 15h شامل پردازندههای دسکتاپ سری FX و برخی مدلهای Opteron میشود.
بر اساس گزارش tomshardware خانواده 16h نیز تراشههای مبتنی بر معماریهای Jaguar و Puma را دربرمیگیرد که در محصولاتی مانند PlayStation 4 و Xbox One نیز مورد استفاده قرار گرفتهاند. برخی مدلهای Athlon، Sempron و Opteron-X نیز در این دسته قرار دارند.
البته بهرهبرداری از این نقص به دسترسی سطح کرنل نیاز دارد؛ یعنی مهاجم باید از قبل توانایی اجرای درایور یا کد موردنظر خود در سطح کرنل سیستم را داشته باشد. بنابراین این آسیبپذیری بهتنهایی برای نفوذ اولیه به یک سیستم کافی نیست. با این حال، اگر مهاجم این سطح دسترسی را داشته باشد، Skitter میتواند امکان دستکاری بخشهای بسیار حساس حافظه را فراهم کند.
AMD نیز این مشکل را تایید و اعلام کرده پردازندههای تحت تأثیر، دیگر در چرخه پشتیبانی امنیتی این شرکت قرار ندارند. از طرف دیگر، نیاز به دسترسی کرنل باعث میشود مهاجم در زمان استفاده از این اکسپلویت، عملاً کنترل قابل توجهی روی سیستم داشته باشد.

نحوه استفاده هکرها از آسیبپذیری Skitter
برای درک نحوه عملکرد این اکسپلویت باید به شیوه مدیریت حافظه در پردازندههای قدیمی AMD توجه کرد. سیستمعامل معمولاً تصور میکند حافظه RAM بهصورت خطی از آدرس ابتدایی تا انتها در اختیار آن قرار دارد، اما در عمل بخشهایی از حافظه برای دادههای سیستمی و سختافزاری رزرو شدهاند.
علاوه بر این، کنترلر حافظه پردازنده برای افزایش کارایی از روشی به نام Bank Interleaving استفاده میکند که باعث میشود دادهها در بانکهای مختلف DRAM به شکلی متفاوت از ترتیب مشاهدهشده توسط سیستمعامل قرار بگیرند.
در پردازندههای موردنظر، تنظیمی به نام BankSwizzleMode یا به اختصار Swizzle مسئول کنترل این قابلیت است. نکته مهم اینجاست که وضعیت Swizzle از طریق بخشی از حافظه که برای سیستمعامل قابل دسترسی است، قابل تغییر است.
هکر با استفاده از یک دستور پردازنده میتواند این حالت را خاموش و روشن کند. با خاموش کردن Swizzle و بررسی محل قرارگیری دادههای مشخص در حافظه، مهاجم میتواند بهتدریج نقشه دقیق تبدیل آدرسهای قابل مشاهده توسط سیستمعامل به آدرسهای فیزیکی DRAM را به دست آورد.
در نگاه اول، خاموش و روشن کردن Swizzle باید باعث بههمریختگی شدید حافظه و احتمالاً کرش سیستم شود. اما پردازنده هنگام تغییر این وضعیت، اقداماتی برای آمادهسازی انجام میدهد که از جمله آنها میتوان به غیرفعال کردن وقفهها اشاره کرد.
با این حال، مرحله جمعآوری نقشه حافظه همچنان میتواند باعث از کار افتادن سیستم شود. خوشبختانه این مرحله فقط یک بار لازم است انجام شود و پس از مشخص شدن نقشه، مهاجم میتواند مستقیماً مکانهای موردنظر را هدف قرار دهد که احتمال کرش را کاهش میدهد.













نظر خود را اضافه کنید.
برای ارسال نظر وارد شوید
ارسال نظر بدون عضویت در سایت