رایانهای ویندوزی که اشتباههای احمقانه در آن هیچ پیامدی ندارند، محیطی بینقص برای آزمودن نرمافزارهای مشکوک است. Windows Sandbox تا آستانه تحقق این ایده پیش میرود، اما هر نشست را با محیط عمومی و پیکربندینشده مایکروسافت آغاز میکند.
راه دیگر، استفاده از اسنپشاتهای VMware است؛ چون وضعیت دستگاهی را که پیشتر پیکربندی کردهام حفظ میکنند. متأسفانه، پس از پایان کار همچنان باید به یاد داشته باشم که اسنپشات درست را بازیابی کنم. آنچه واقعاً میخواستم، مزایای هر دو روش بود.
دستگاه آزمایشی آرمانی من باید رایانهای کامل با ویندوز ۱۱، مجهز به ابزارهای دلخواهم و در عین حال خودپاکشونده باشد. حالت دیسک مستقل و ناپایدار در VMware Workstation دقیقاً همین کار را انجام میدهد. میتوانم برنامه نصب کنم، فایل بسازم و رجیستری را تغییر دهم و مطمئن باشم که تنها با یک بار خاموشکردن، همهچیز پاک میشود و vDisk بدون حتی یک بایت تغییر به حالت نخست بازمیگردد.
ویندوز سندباکس دورریختنی بود، اما هرگز محیط «خودم» نبود
نقطه شروعی پاک میخواستم که همه ابزارهای آزمایشم را از پیش داشته باشد

اگر فقط بخواهم یک فایل دانلودشده مشکوک را بیازمایم، Windows Sandbox بیتردید همچنان سریعترین گزینه است. ظرف چند ثانیه اجرا میشود، محیطی امن و جداافتاده از ویندوز را بر پایه نسخه میزبان در اختیارم میگذارد و با بستن آن، تمام وضعیتش را پاک میکند.
فایل پیکربندی .wsb میتواند پوشهای را نگاشت کند یا هنگام اجرا فرمانی را به کار بیندازد، اما برنامههایی را که در طول نشست بهصورت تعاملی نصب کردهام برای نشست بعدی نگه نمیدارد. مشکل اینجا بود که وقتی میخواستم چند ابزار در هر بار اجرا آماده باشند، بازسازی پیوسته همان محیط چنان دردسرساز میشد که در نهایت ترجیح میدادم از اسنپشات ماشین مجازی استفاده کنم؛ البته تا روزی که یادم رفت اصلاً اسنپشات بگیرم.

برای آنکه یکبار برای همیشه این مشکل را حل کنم، ماشین مجازی کاملی با Windows ۱۱ 25H2 Pro ساختم، نام DISPOSABLE-PC را روی آن گذاشتم و با یکی از کلیدهای اضافیام فعالش کردم. ۸ گیگابایت رم، چهار vCPU و یک vDisk با ظرفیت پویای ۸۰ گیگابایت به آن اختصاص دادم. هنگام نصب، بهجای ورود به حساب مایکروسافت، یک حساب محلی ساختم و سپس VMware Tools، ۷-Zip، Notepad++، Process Explorer و Wireshark را نصب کردم.
هنوز هم میتوان ویندوز ۱۱ را نصب کرد و یک حساب محلی ساخت: کافی است سیستمعامل را بهعنوان دستگاه کاری یا آموزشی راهاندازی کنید و سپس برای ایجاد حساب، گزینه «پیوستن به دامنه» (Domain Join) را برگزینید.
پیش از ثابتکردن دیسک، یک نشانگر دائمی ساختم:
New-Item C:\Baseline -ItemType Directory "PERMANENT BASELINE" | Set-Content C:\Baseline\BASELINE.txt
آن فایل، دادهای شناختهشده و دارای برچسب زمانی در اختیارم میگذاشت که از تمام نشستهای دورریختنی جان سالم به در میبرد. برخلاف Windows Sandbox، این روش نقطه شروعی پاک پدید آورد که برای همیشه از آنِ خودم بود و میتوانستم بارها پیکربندیاش کنم و دوباره به کار بگیرم.
یک گزینه دیسک در VMware، خط پایه را تثبیت کرد بیآنکه ویندوز را از کار بیندازد
نوشتنهای تازه به فایل موقت Redo میرفتند و دیسک پاک سیستم دستنخورده میماند

وقتی پیکربندی خط پایه کاملاً رضایتم را جلب کرد، ویندوز را خاموش کردم و به Snapshot Manager در VMware سر زدم. این بخش خالی بود؛ گامی مهم، زیرا میخواستم در نهایت ثابت کنم که بازنشانیها خودکار انجام میشوند و هیچ اسنپشات پنهانی پشت صحنه کار را پیش نمیبرد.
پیش از آنکه وضعیت دیسک را تثبیت کنم، هش SHA-۲۵۶ فایل VMDK را از دستگاه میزبان ثبت کردم:
Get-FileHash "C:\VM\Disposable Windows 11\Windows 11 x64.vmdk" -Algorithm SHA256

سپس تنظیمات پیشرفته vDisk را باز کردم، نخست «مستقل» (Independent) و پس از آن «ناپایدار» (Nonpersistent) را برگزیدم. VMware این تغییر را ثبت کرد و میشد آن را مستقیماً در پیکربندی VMX دید:
nvme0:0.mode = "independent-nonpersistent"
راهاندازی بعدی، فایل Windows 11 x64.vmdk.REDO_a40316 را ساخت. VMware با VMDK اصلی من مانند دیسک مرجع رفتار میکرد و تمام خواندنها و نوشتنهای تازه را از مسیر این فایل موقت Redo انجام میداد.

وقتی فایلها را بررسی کردم، لایه Redo در کنار vDisk اصلیِ تقریباً ۲۶ گیگابایتی فقط ۱۰ مگابایت فضا گرفته بود. نکته مهم اینکه این لایه اسنپشات نبود؛ زیرا دیسکهای مستقل اساساً بهطور کامل از اسنپشاتهای VMware کنار گذاشته میشوند.
البته نگهداری این سامانه یک دردسر نسبتاً بزرگ دارد. باید با دیسک تثبیتشده مانند یک تصویر مرجع طلایی رفتار کرد؛ یعنی برای نصب بهروزرسانیهای ویندوز، نخست باید آن را از حالت ناپایدار خارج کرد. پس از اطمینان از درستکارکردن بهروزرسانیها نیز باید vDisk را دوباره به حالت ناپایدار بازگردانم.
پنج راه متفاوت را آزمودم تا ببینم ویندوز مرا به خاطر میسپارد یا نه
فایلها، برنامهها، تاریخچه مرور، شخصیسازی و ویرایشهای رجیستری همگی با آزمونی یکسان روبهرو شدند





بازگشتن میزکار پاکیزه پس از خاموشکردن سیستم، بهتنهایی چیز زیادی را ثابت نمیکند. برای آزمایشی درستوحسابی، عمداً نشست را به پنج روش گوناگون آلوده کردم.
ابتدا پاورشل یک پوشه آزمایشی، یک فایل نشانگر درون آن و فایل دیگری روی میزکار ساخت:
New-Item C:\Session-Test -ItemType Directory "This file should disappear" | Set-Content C:\Session-Test\THIS-SHOULD-DISAPPEAR.txt "Erase me too!!" | Set-Content "$HOME\Desktop\Temporary session.txt"
برای ایجاد تغییری کاملاً آشکار، تصویر زمینه دوستداشتنی پیشفرض ویندوز را با زشتترین رنگ قرمزی که Paint مایکروسافت در چنته داشت جایگزین کردم و برچسب TEMPORARY SESSION را روی آن گذاشتم. سپس VLC را با Winget نصب و بهصورت دستی اجرا کردم.
تغییرات کمتر آشکار نیز به همان اندازه اهمیت داشتند. در رجیستری، کلید HKCU\Software\DisposablePC-Test را ساختم و مقدار SessionStatus = THIS SHOULD DISAPPEAR را به آن افزودم. در پایان نیز با Edge به example.com و wikipedia.org سر زدم تا هر دو در تاریخچه محلی مرورگر ثبت شوند.
در اینترنت خوانده بودم که اگر ماشین مجازی ویندوز را از منوی «شروع» بازراهاندازی کنم، تغییرات حفظ میشوند. این یکی از سودمندترین ویژگیهای این چیدمان بود، زیرا بسیاری از برنامهها پس از نصب به بازراهاندازی نیاز دارند. ناپدیدشدن تغییراتم پس از هر بازراهاندازی چندان مطلوب نبود؛ بنابراین باید آزمایش میکردم که آیا این قابلیت واقعاً کار میکند یا نه.

ویندوز بازراهاندازی شد، اما VMware با شبیهسازی رفتار یک رایانه واقعی، هیچگاه ماشین مجازی را خاموش نکرد. در نتیجه، همان فایل Redo همچنان به آن متصل ماند. پس از بازراهاندازی، تغییرات از بین نرفته بودند: تصویر زمینه بدمنظر هنوز سر جایش بود، VLC همچنان اجرا میشد و همه فایلهای تغییریافته، تاریخچه مرورگر و کلیدهای رجیستری نیز باقی مانده بودند.
سپس مسیر «شروع > روشن/خاموش > خاموشکردن» را انتخاب کردم. بهمحض خاموششدن ماشین مجازی، VMware Workstation لایه Redo را حذف کرد. در راهاندازی بعدی، تصویر زمینه ثابت و ابزارهای آزمایشی دائمیام بازگشتند. VLC ناپدید شده بود، هر دو فایل موقت پاک شده بودند، دیگر اثری از کلید رجیستری نبود و Edge نیز هر دو وبسایت را فراموش کرده بود.
مهمتر از همه برای این آزمایش، فایل C:\Baseline\BASELINE.txt دقیقاً همانجایی مانده بود که رهایش کرده بودم. ماشین مجازی ویندوز پیکربندی و برنامههای پایهام را به خاطر سپرده و هرآنچه پس از آن ایجاد شده بود کنار گذاشته بود.
VMware همچنین امکان کنترل گستره اتصال رایانه یکبارمصرف را فراهم کرد
بازگردانی دیسک ردپاهای محلی را پاک کرد و شبکه مجازی دامنه دسترسی دستگاه را مهار کرد

ذخیرهسازی نیمی از مرز امنیتی را تشکیل میداد و شبکه مجازی VMware Workstation نیم دیگر آن بود. ماشین مجازی را عمداً روی شبکه NAT ویامور نگه داشتم، چون برای بهروزرسانی ویندوز و بارگیری برنامهها به اینترنت نیاز داشتم. این کار همچنین مانع میشد ماشین مجازی در شبکه فیزیکیام مانند رایانهای مستقل و بیحفاظ در معرض دسترسی قرار گیرد؛ هرچند همچنان میتوانست به دستگاههای شبکه محلی من دسترسی پیدا کند.
ویامور متناسب با نیاز هر آزمایش، چند گزینه دیگر نیز در اختیارم میگذاشت؛ قابلیتی که یکی از بزرگترین برتریهای این چیدمان نسبت به Windows Sandbox است:
- حالت پلدار (Bridged) برای قراردادن مستقیم ماشین مجازی روی شبکه فیزیکی از طریق یکی از سازوارگرهای میزبان.
- حالت فقط میزبان (Host-only) بدون سازوارگر مجازی میزبان، تا ماشینهای مجازی بتوانند با یکدیگر ارتباط برقرار کنند.
- حالت فقط میزبان (Host-only) همراه با سازوارگر مجازی میزبان، تا ماشینهای مجازی افزون بر یکدیگر بتوانند با میزبان نیز ارتباط برقرار کنند.
اگر برنامهای دیگر به اینترنت نیاز نداشته باشد، برداشتن تیک گزینه «متصل» (Connected) در منوی تنظیمات، سادهترین همتای مجازی بیرونکشیدن کابل اترنت آن است.
Windows Sandbox امکان فعال و غیرفعالکردن شبکه را دارد و برای آزمایشهای ساده و یکباره مناسب است. بااینحال، آرایشهای شبکهای افزوده ویامور زمانی بسیار سودمندتر میشوند که بخواهم رایانه یکبارمصرف را به آزمایشگاه خانگیام یا حتی فقط به یک ماشین مجازی دیگر متصل کنم.

برای جداسازی بیشتر، پوشههای اشتراکی، کشیدن و رهاکردن، تختهگیره و اتصال خودکار دستگاههای USB را نیز غیرفعال کردم. این کار بخش زیادی از آسودگی استفاده را از بین میبرد، اما این تنظیمات بیرون از محدوده حفاظت VMDK ناپایدار قرار دارند و به همین دلیل باید کاملاً محدود شوند.
بازنشانی خودکار بسیار کارراهانداز است، اما زندانی نفوذناپذیر برای بدافزارها نیست
ماشین مجازی پایه من حدود ۲۵ گیگابایت از فضای دیسک را اشغال میکند و هنگام اجرا ۸ گیگابایت از حافظه رم میزبان را به کار میگیرد. آمادهسازی آن نیز بسیار بیشتر از یک نشست Windows Sandbox زمان میبرد. هر بهروزرسانی که در حالت ناپایدار نصب شود از بین خواهد رفت؛ بنابراین برای نگهداری سیستم باید دیسک را دوباره نوشتنی کرد، بهروزرسانیها را نصب کرد و سپس آن را بار دیگر در وضعیت ثابت قرار داد.
این مرز حفاظتی نیز دقیقاً در VMDK پایان مییابد. بدافزار میتواند VMware Tools را هدف بگیرد، اگر بهاندازه کافی هوشمند باشد برای گریز از ناظر ماشین مجازی تلاش کند یا به دستگاههای در دسترس از راه شبکه حمله کند. وبسایتها، تحلیلگرهای DNS و مسیریابها نیز فعالیتهای ایجادشده بهدست ماشین مجازی را بهسادگی فراموش نمیکنند. هر چیزی که در پوشه اشتراکی میزبان، تختهگیره یا حافظه USB کپی شود نیز باقی میماند و روز دیگری به حیات خود ادامه میدهد؛ هرچند غیرفعالکردن این یکپارچگیها خطر را به میزان چشمگیری کاهش میدهد.
برای آزمونهای تکرارپذیر نرمافزارها و پیکربندیها، این چیدمان ماشین مجازی بسیار بیشتر به کارم میآید.
البته قابلیت ناپایدار به VMware محدود نیست؛ VirtualBox نیز دیسکهای تغییرناپذیر ارائه میدهد. برای بررسی یک فایل ناشناس همچنان Windows Sandbox را ترجیح میدهم و وقتی به چند نقطهٔ بازیابی نامگذاریشده نیاز داشته باشم، اسنپشاتها هنوز گزینهٔ بهتری هستند.
برای آزمونهای تکرارپذیر نرمافزارها و پیکربندیها، این چیدمان ماشین مجازی بسیار بیشتر به کارم میآید. راهاندازی دوبارهٔ سیستم مهمان نشست را حفظ میکند و خاموشکردن، آن را خودکار پاک میکند.
هش نهایی SHA-۲۵۶ با مقدار مبنایی که پیش از آزمایش ثبت کرده بودم، یکسان بود. این نتیجه ثابت میکند که ماشین مجازی فقط در ظاهر بازیابی نشده، بلکه دیسک مجازی سیستمی آن دقیقاً بایتبهبایت به وضعیت نخست بازگشته است. از این محیط برای آزمونها و وبگردیهای یکبارمصرف استفاده خواهم کرد؛ بااینحال، پلتفرمهای برخطی مانند Hybrid Analysis را نیز جدی در نظر میگیرم که امکان اجرای بدافزار در محیطی واقعاً ایزوله را فراهم میکنند.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Gregory Gibson است. مشاهده مقاله اصلی