حفره امنیتی در پردازنده مرکزی ای.ام.دی
به گزارش واحد متخصصین سایبربان، شرکت ای.ام.دی (AMD) در کدهای مخصوص پردازنده خود دارای حفره امنیتی است که هکر با استفاده از آن میتواند از ماشین مجازی عبور کرده و کنترل سرور اصلی را در اختیار بگیرد.
تمامی تجهیزاتی که از پردازندههای پایلدرایور (Piledriver) شرکت ای.ام.دی استفاده میکنند دارای آسیبپذیری هستند. هنگامیکه از این آسیبپذیری استفاده شود، پروسه فعال قطعشده و به کاربر ماشین مجازی اجازه داده میشود تا کدهای مخرب را با دسترسی مدیریتی در هسته سیستمعامل میزبان (Host) اجرا کند. بدین ترتیب از راه یک ماشین مجازی در حال اجرا، میتوان کل سرور را در اختیار گرفت.
آسیبپذیری ذکرشده مربوط به پیادهسازی مجازیسازی از راه Qemu-KVM است و دیگر شرکتها امن گزارششدهاند. در سیستمعامل لینوکس با بهروزرسانی بسته میکروکد ای.ام.دی به نام amd64-microcode میتوان مشکل فوق را برطرف ساخت.
هنگامی که پروسه فعال قطع میشود درواقع تابع ttwu_stat() از کار میافتد. به همین دلیل تابع try_to_wake_up() در سیستمعامل فراخوانی میشود تا پروسه دوباره فعال شود. یکی از کارهایی که تابع try_to_wake_up() انجام میدهد، دستور mov $0x16e80,%r15 است.
در این دستور مقدار 0x16e80 به رجیستر %r15 منتقل میشود. سپس ttwu_stat() فراخوانی میشود که R15 و دیگر رجیسترها را در پشته ذخیره میکند. هنگامیکه ttwu_stat() به پایان میرسد، باید مقادیر موجود در پشته نیز خارج شوند که این شامل R15 هم میشود. طبق دستور انتقال (mov) این مقدار باید 0x16e80 باشد. اما با تعجب مقدار این رجیستر به 0xffff8800bb2a7c80 تغییر کرده است و رجیستر R14 دارای مقدار 0x16e80 است. این به این دلیل است که پشته یک 64 بیت شیفت داده شده است که مشکل اصلی در میکروکد ای.ام.دی است.