Почну з того, що це питання дуже широке і показує дуже мало оригінальних досліджень, і що ця відповідь не повинна розглядатися як заохочення такого типу питань. Натомість ця відповідь сподівається надати надзвичайно базові поради щодо безпеки людей, що починаються з аналізу шкідливих програм.
Працюючи за припущенням, що ви використовуєте відому раніше досліджувану шкідливу програму, те, як ви ізолюєте своє середовище, сильно залежить від того, на що здатна ця зловмисна програма. Деякі загальні правила, що застосовуються до більшості сучасних шкідливих програм, можуть:
Ізолюйте свій ВМ від Інтернету. Це може бути так само просто, як не налаштовувати переадресацію інтерфейсу на гостьову машину, а також запобігає комунікації зловмисного програмного забезпечення з будь-якими потенційними вузлами команд та управління, які можуть спрямовувати його діяти непередбачувано.
Використовуйте відповідний гіпервізор. На ринку є кілька основних з них, включаючи VirtualBox, HyperV, QEMU та macOS Hypervisor.framework
, щоб назвати декілька; деякі з них активно націлюються на зловмисне програмне забезпечення, і залежно від версії можуть бути вразливими до зловмисного програмного забезпечення, яке вирветься з гостьової машини.
Однозначно не встановлюйте додатки для гостей або аналог іншої платформи. Буквальна мета цього програмного забезпечення - налагодити інтеграцію між гостем та господарем, ефективно послаблюючи розділення між ними. Я не дослідник зловмисного програмного забезпечення, але буду здивований, якби не було зловмисного програмного забезпечення, яке б націлене на таку поверхню.
Щоб звернутись до деяких пунктів безпосередньо:
Наскільки ізольованою може бути зроблена віртуальна машина від хоста?
На даний момент VM може бути досить ретельно ізольований, але деякі функції все-таки повинні проходити через хост більш-менш безпосередньо, з невеликим захистом гіпервізора. Більшість віртуальних машин, що не належать до KVM (як, наприклад, VirtualBox) , не користуються ядром з хост-ОС. Це одне лише служить блокатором проти численних класів експлуатації, особливо помітно блокуючи можливість запускати довільні систематичні виклики проти вашого хост-ядра (з помітною зірочкою, що розбита версія VM-шару може дозволяти шкідливому ПЗ обходити це менш очевидними способами).
Однак у вашому VM все ще є процесний простір в апараті вашого хост-машини - і хоча це, як правило, не є ризиком, оскільки сучасні ОС забезпечують гідну ізоляцію технологічного простору, його все одно можна використовувати для використання надзвичайно низького рівня атак, наприклад, ударного молота , де процес послідовно записує в пам'ять певним чином, поки він не зможе прочитати сусідні блоки пам'яті, якими вона не володіє - ефективно дозволяючи протікати пам'ять між процесами.
Також варто зазначити, що ізоляція, як правило, дещо відходить, коли ви хочете зробити будь-який вид вводу-виводу: вхід і вихід обов'язково означають прохід, що відкриває атакуючу поверхню, яку можна використовувати для виконання хост-дій. Сюди входить прохід HID, як миша та клавіатура, а також такі речі, як мережне проходження через мережу - хоча це, як правило, залежить від того, наскільки добре реалізований перехід вводу / виводу у вашій машині управління.
Чи повинен я (чи можу я?) Встановити брандмауер між гостем та господарем?
Це залежить, але загалом це не погана ідея . Більшість основних платформ підтримують брандмауери на рівні гіпервізорів. Вони максимум настільки ж дозвільні, як і брандмауер на вашій хост-машині, який, у свою чергу, максимум настільки ж дозвільний, як і брандмауер вашої локальної мережі або VLAN. Якщо ви хочете скористатися цим замість того, щоб повністю відключати доступ до мережі, від'єднуючись віртуальними мережевими інтерфейсами, я рекомендую зробити дослідження, які порти та розміщувати вибрані цілі шкідливого програмного забезпечення та переходити звідти.
Чи є гостьові додатки ризиком для безпеки?
Так . Вони дозволяють здійснювати різного роду інтеграції між вашим хост-машиною та гостьовою машиною, і не завжди мають відкриті характеристики, де можна побачити, що відкривається; Дивись вище.
А як щодо спільних каталогів?
Це залежить від того, як ви це робите, але це часто погана ідея . Багато гіпервізорів роблять це, створюючи віртуальний накопичувач, встановлений в гостьовій машині, корінь якої знаходиться в цьому каталозі. Залежно від реалізації цього механізму, який може дещо відрізнятися між рамками, ви можете бути, а може і не бути безпечними, залежно від того, яку зловмисну програму ви намагаєтеся протестувати.
Мене хвилює те, що ви провели дуже мало досліджень у цьому напрямку, і що ви можете врешті нашкодити машині чи вашим даним. Перш ніж продовжити, я б порадив вивчити різні механізми ізоляції на загальних ОС (KVM, як вони інтегруються в рамки віртуалізації вищого рівня ( віртуальна машина ), контейнери ( контейнер ) та chroot
механізм ( chroot ) для назви кілька), коли кожен підходить, і що вони можуть, а що не можуть зробити. У цей момент ви зможете краще оцінити, чи можете ви сміливо грати зі шкідливим програмним забезпеченням у належно ізольованому середовищі.
Нарешті, вам не слід брати участь у спробах працювати з новою або маловідомою шкідливою програмою (якщо ви не досвідчений дослідник безпеки, але ця відповідь не спрямована на досвідчених дослідників безпеки). Зловмисні актори надзвичайно креативні, коли мова йде про те, що вони експлуатують та як вони це експлуатують. Щоб зрозуміти це, подивіться на будь-які нещодавні переговори DEFCON, які не зосереджені на соціальній інженерії чи фізичному доступі за допомогою механічних засобів.