تصور کنید مهاجمی که داخل یک ماشین مجازی اکانتی با دسترسی محدود دارد، در شرایط خاص بتواند از مرزهای ایزولهسازی لینوکس میزبان عبور کند و روی آن اثر بگذارد. این سناریویی است که آسیبپذیری ۱۶ سالهی Januscape در صورت برآورده شدن شرایطی مشخص در لینوکس رقم میزند؛ اما خوشبختانه بهروزرسانی و راهکارهای لازم برای برطرفسازی آن، همین حالا در دسترس مدیران شبکه است.
نقص فنی Januscape چگونه عمل میکند؟
ریشه این مشکل که با نام مستعار Januscape ردیابی میشود، بهنحوه مدیریت حافظه در ماژول Shadow MMU1 مربوط است. در شرایط خاص، این ماژول ممکن است یک صفحه حافظه را تنها بر اساس شناسه صفحه مهمان (GFN) بازیابی کند و برخی ویژگیهای مرتبط با آن را نادیده بگیرد.
مشکل از آنجا آغاز میشود که KVM در زمان نیاز به تخصیص حافظه، با نادیده گرفتن نوع یا نقش پیشین آن صفحهها، دوباره از آنها استفاده میکند. این وضعیت میتواند باعث استفاده نادرست از ساختارهای حافظه داخلی KVM و در نهایت منجر به کرش حافظه هسته در سیستمعامل میزبان شود.
این کد آسیبپذیر، حدود ۱۶ سال در هسته لینوکس وجود داشت تا اینکه توسط یک پژوهشگر امنیتی و از طریق برنامه باگبانتی گوگل کشف شد. برخلاف بسیاری از آسیبپذیریهای پیشین که به نرمافزارهای جانبی مانند QEMU متکی بودند، این نقص مستقیماً در خود هسته KVM اتفاق میافتد.
بیشتر بخوانید
پیامدهای امنیتی: از قطعی سراسری تا تسلط بر میزبان
در دنیای رایانش ابری، مهمترین خط قرمز امنیتی، ایزوله ماندن ماشینهای مجازی از یکدیگر و از میزبان است. آسیبپذیری Januscape با امکان دور زدن جداسازی میان ماشین مهمان و میزبان، در دسته آسیبپذیریهای VM Escape قرار میگیرد.
زنگ خطر برای دیتاسنترها و کاربران ایرانی
بسیاری از دیتاسنترها و شرکتهای ابری داخلی، خدمات سرور مجازی و زیرساختهای خود را بر بستر مجازیساز قدرتمند و متنباز KVM به کاربران ارائه میدهند. از آنجا که KVM یکی از گزینههای رایج برای ارائه سرویسهای VPS و زیرساخت ابری در بسیاری از دیتاسنترهای داخلی است، وجود چنین حفرهای یک ریسک قابل توجه برای اکوسیستم کسبوکارهای ابری به شمار میرود. در این شرایط، یک فرد خرابکار میتواند با پرداخت هزینهای ناچیز بابت یک سرور مجازی داخلی، عملکرد سرویسهای دیگری را که روی همان میزبان فیزیکی قرار دارند، مختل کند.
راهکار مقابله به زبان ساده
توسعهدهندگان لینوکس این مشکل را با انتشار یک اصلاحیه برطرف کردند. برای رفع این خطر، مدیران شبکه باید اقدامات زیر را انجام دهند:
- بهروزرسانی هسته سرور: سیستمعامل میزبان را به نسخهای ارتقا دهید که شامل وصله امنیتی
81ccda30b4e8باشد. - غیرفعالسازی مجازیسازی تودرتو: در برخی سناریوهای بهرهبرداری، فعال بودن Nested Virtualization میتواند شرایط حمله را فراهم یا سادهتر کند. بنابراین با غیرفعالکردن آن در محیطهایی که مورد نیاز نیست، ریسک این نوع حمله را کاهش دهید.
- محدودسازی مجوزها: سطح دسترسی به فایل دستگاه
/dev/kvmرا بررسی و محدود کنید تا فقط کاربران یا سرویسهایی که واقعاً به آن نیاز دارند امکان استفاده از قابلیت مجازیسازی داشته باشند.
پیشنهاد میشود برای دریافت اطلاعات تکمیلی و بررسی دقیق سازوکار، به گزارش هکرنیوز و صفحه گیتهاب محقق این آسیبپذیری رجوع کنید.
- ماژول Shadow MMU بخشی از زیرسیستم مجازیسازی KVM در هسته لینوکس است که وظیفه مدیریت نگاشت حافظه ماشینهای مجازی را برعهده دارد. ↩︎
