مدت هاست که مجازی سازی تبدیل شده به ستون فقرات زیرساخت های محاسباتی. از دیتاسنتر های بزرگ گرفته تا لپتاپ شخصی شما که شاید Parallels روی آن نصب باشد تا ویندوز را کنار مک اجرا کنید. اما یک سؤال که خیلی وقت ها ازش غافل می شویم این است: آیا آن جداسازی که فکر می کنیم بین سیستم مهمان و میزبان وجود دارد، واقعاً نفوذناپذیر است؟
جواب کوتاه: نه. و اینجاست که با مفهومی به اسم VM Escape طرف می شویم.
ماجرا Virtual Machine Escape از کجا شروع شد؟
بگذارید ساده بگویم. شما یک ماشین مجازی دارید که داخلش ویندوز اجرا می شود. سیستم اصلی شما مک است. منطقاً هر اتفاقی که داخل ویندوز بیفتد نباید به مک سرریز کند. این همان مرز امنیتی است که Hypervisor موظف به حفظ آن است.
اما حالا فرض کنید مهاجمی که کنترل کامل ویندوز داخل VM را به دست آورده، بتواند از این مرز عبور کند و روی سیستم مک خودش کد اجرا کند. این دقیقاً همان سناریویی است که به آن Virtual Machine Escape می گوییم و از نظر من یکی از خطرناکترین انواع آسیب پذیری در حوزه مجازی سازی است.
چرا خطرناکترین؟ چون کل مدل امنیتی مجازی سازی بر اساس همین فرض بنا شده که Guest در محدوده خودش محبوس است. اگر این فرض به هم بریزد، تمام زیرساختی که روی مجازیسازی بنا شده زیر سؤال میرود.
معماری ماجرا سیستم مجازی سازی
برای اینکه بهتر درک کنید مشکل کجاست، باید ساختار یک سیستم مجازی سازی را بشناسید:
حالا اگر در همین لایه مدیریت، یک باگ وجود داشته باشد؟ مثلاً Hypervisor یک درخواست خاص از Guest را اشتباه پردازش کند؟ در این صورت مهاجم شانس این را پیدا می کند که از محدوده مجاز خودش خارج بشود.

چند راه اصلی برای عبور از مرز مجازی سازی
در تجربه ای که من از بررسی آسیب پذیری های این حوزه دارم، مسیرهای اصلی برای VM Escape معمولاً از این نقاط عبور می کنند:
- خود Hypervisor: این مهمترین مقصد است. هر نقصی در پردازش درخواست های Guest میتواند پتانسیل عبور از مرز را داشته باشد.
- تجهیزات مجازی: ماشین مجازی برای اینکه Guest فکر کند روی سخت افزار واقعی اجرا می شود، کلی دستگاه مجازی شبیه سازی می کند. کارت شبکه، کارت گرافیک، کنترلر دیسک و هرچه فکرش را بکنید. هرچه این تعامل بیشتر باشد، کد بیشتری نوشته شده و احتمال باگ بیشتر است. این یک واقعیت ساده مهندسی نرم افزار است.
- پوشه های اشتراکی: این یکی را جدی بگیرید. تقریباً همه نرم افزارهای مجازی سازی دسکتاپ قابلیتی دارند که اجازه میدهد Guest به فایل های Host دسترسی داشته باشد. در Parallels Desktop این قابلیت وجود دارد و در نسخه های جدید از ساختار C:\Mac برای دسترسی ویندوز به فایلهای مک استفاده می شود. یک کانال مستقیم بین دو محیط است و هر نقصی در این لایه از نظر امنیتی حیاتی محسوب می شود.
- Clipboard و Drag & Drop: این قابلیت ها که همه عاشقشان هستیم، در واقع سطوح تعامل اضافی بین Guest و Host ایجاد می کنند. هرچی تعامل بیشتر، سطح حمله بزرگتر.
پرونده Parallels Desktop
حالا برویم سراغ مورد مشخص. سال ۱۳۹۶، پژوهشگر امنیتی ایرانی محمدرضا اسپرغم یک آسیب پذیری از نوع VM Escape در Parallels Desktop شناسایی و منتشر کرد. مقاله ای که در ۲۱ خرداد ۱۳۹۶ منتشر شد به این موضوع پرداخته بود و لینک Exploit و Demo هم در آن قرار داشت.
این پژوهش از چند نظر مهم بود. اول اینکه نشان میداد حتی نرم افزارهای تجاری و شناخته شده مجازی سازی دسکتاپ هم از این نوع آسیبپذیری در امان نیستند. دوم اینکه یک پژوهشگر ایرانی توانسته بود در لایه ای که قرار است محکمترین مرز امنیتی باشد، نفوذ کند.
اما یک نکته را صادقانه باید بگویم: آن آسیبپذیری مربوط به همان نسخه و همان دوره زمانی است. نمی شود و نباید آن را به نسخه های امروزی Parallels تعمیم داد.
وضعیت فعلی Parallels Desktop
Parallels در طول سالها آسیب پذیری های مختلفی را در محصولش ثبت و اصلاح کرده است. در صفحه رسمی Security Updates شرکت، مواردی مثل CVE-2024-54189، CVE-2024-52561، CVE-2024-36486، CVE-2025-31359 و CVE-2025-30074 قابل مشاهده هستند.
در فوریه ۲۰۲۵ هم یک آسیب پذیری روی Macهای Intel گزارش شد که به مهاجم با دسترسی محلی (اما غیر Root) اجازه میداد از طریق فرایند ایجاد VM در Parallels سطح دسترسی خود را بالا ببرد. Parallels بعد از انتشار Exploit آن را با Hotfix رفع کرد. این مورد یک VM Escape کلاسیک نبود اما پیام مشابهی داشت: لایه مجازی سازی بخشی از سطح حمله سیستم میزبان است.
چه کار باید بکنیم؟
بعد از سال ها کار در این حوزه، به این جمع بندی رسیده ام که هیچ راه حل جادویی برای صفر کردن ریسک VM Escape وجود ندارد. اما چند اقدام مشخص می تواند ریسک را به شکل معناداری کاهش دهد:
- بروزرسانی. این بدیهی ترین توصیه است اما متأسفانه بیشترین نادیده گرفته شدن را هم دارد. Security Updateها را جدی بگیرید.
- محدود کردن قابلیت های Integration. اگر به Shared Folders یا Clipboard Sharing یا USB Passthrough نیاز ندارید، خاموش شان کنید. هر قابلیتی که بین Guest و Host ارتباط ایجاد میکند، یک سطح تعامل اضافی است.
- جداسازی محیط های غیرقابل اعتماد. اگر برای تحلیل Malware یا اجرای فایل مشکوک از VM استفاده می کنید، آن را مثل یک VM معمولی پیکربندی نکنید. Parallels هم در مستنداتش توصیه کرده که در این سناریوها Shared Folders غیرفعال بشود یا VM کاملاً از Mac جدا باشد.
- امنیت Host. بروزرسانی مجازی سازی به تنهایی کافی نیست. سیستم میزبان هم باید امن باشد.
- واقع گرایی. این جمله را جایی خوانده اید که “فایل مشکوک را داخل VM اجرا کردم پس سیستمم امن است”؟ این تفکر خطرناک است. ماشین مجازی یک لایه دفاعی ارزشمند است، اما Sandbox مطلق نیست.
در نتیجه:
آنچه از این ماجرا باید برداشت کنیم این است که VM Escape یک کلاس مهم از تهدیدات در دنیای مجازی سازی است که همچنان فعال است و نخواهد رفت. سازمان هایی که روی مجازیسازی و Cloud کار می کنند باید این تهدید را در مدل امنیتی خود جدی بگیرند و بهجای تکیه بر یک لایه دفاعی واحد، از رویکرد Defense in Depth استفاده کنند.

خیلی خوب بود، دستتون درد نکنه