Повністю ізолюйте машину VirtualBox


17

Я хотів би використати VirtualBox для встановлення частини програмного забезпечення, яке не повинно мати доступ до мого хост-комп'ютера (і навпаки). Однак я також передбачаю можливість спробувати більш "небезпечні" речі, як-от спробувати запустити подвиги нульового дня та побачити, що вони можуть зробити.

Наскільки ізольованою може бути зроблена віртуальна машина від хоста? Чи повинен я (чи можу я?) Встановити брандмауер між гостем та господарем? Чи є гостьові додатки ризиком для безпеки? А як щодо спільних каталогів?

Зараз гостьова машина працює на тестуванні GNU / Linux Debian.


7
Stack Exchange має групу інформаційної безпеки, якщо ви хочете задати детальні питання безпеки.
кібернард

Відправку @cybernard тут. Трохи розгорнувшись, це було б надзвичайно відповідним питанням для Security.SE, припускаючи, що це не дублікат (що, боюся, це може бути, враховуючи зростання їхньої громади).
0xdd

1
Не слід використовувати VirtualBox, оскільки він взаємодіє з вашою системою через модуль ядра, що є набагато вищим ризиком, ніж чисті реалізації користувачів. І особливо модуль віртуальної коробки ядра вважається лайно розробниками ядра. Кращим вибором є такий емулятор, як qemu, що працює як непривілейований користувач, який не має доступу до будь-яких цікавих і правил брандмауера, які перешкоджають доступу до мережі для цього користувача. (Опублікувавши як коментар, оскільки він не відповідає на запитання щодо VirtualBox безпосередньо)
алло

Відповіді:


36

Почну з того, що це питання дуже широке і показує дуже мало оригінальних досліджень, і що ця відповідь не повинна розглядатися як заохочення такого типу питань. Натомість ця відповідь сподівається надати надзвичайно базові поради щодо безпеки людей, що починаються з аналізу шкідливих програм.

Працюючи за припущенням, що ви використовуєте відому раніше досліджувану шкідливу програму, те, як ви ізолюєте своє середовище, сильно залежить від того, на що здатна ця зловмисна програма. Деякі загальні правила, що застосовуються до більшості сучасних шкідливих програм, можуть:

  • Ізолюйте свій ВМ від Інтернету. Це може бути так само просто, як не налаштовувати переадресацію інтерфейсу на гостьову машину, а також запобігає комунікації зловмисного програмного забезпечення з будь-якими потенційними вузлами команд та управління, які можуть спрямовувати його діяти непередбачувано.

  • Використовуйте відповідний гіпервізор. На ринку є кілька основних з них, включаючи VirtualBox, HyperV, QEMU та macOS Hypervisor.framework, щоб назвати декілька; деякі з них активно націлюються на зловмисне програмне забезпечення, і залежно від версії можуть бути вразливими до зловмисного програмного забезпечення, яке вирветься з гостьової машини.

  • Однозначно не встановлюйте додатки для гостей або аналог іншої платформи. Буквальна мета цього програмного забезпечення - налагодити інтеграцію між гостем та господарем, ефективно послаблюючи розділення між ними. Я не дослідник зловмисного програмного забезпечення, але буду здивований, якби не було зловмисного програмного забезпечення, яке б націлене на таку поверхню.

Щоб звернутись до деяких пунктів безпосередньо:

Наскільки ізольованою може бути зроблена віртуальна машина від хоста?

На даний момент VM може бути досить ретельно ізольований, але деякі функції все-таки повинні проходити через хост більш-менш безпосередньо, з невеликим захистом гіпервізора. Більшість віртуальних машин, що не належать до KVM (як, наприклад, VirtualBox) , не користуються ядром з хост-ОС. Це одне лише служить блокатором проти численних класів експлуатації, особливо помітно блокуючи можливість запускати довільні систематичні виклики проти вашого хост-ядра (з помітною зірочкою, що розбита версія VM-шару може дозволяти шкідливому ПЗ обходити це менш очевидними способами).

Однак у вашому VM все ще є процесний простір в апараті вашого хост-машини - і хоча це, як правило, не є ризиком, оскільки сучасні ОС забезпечують гідну ізоляцію технологічного простору, його все одно можна використовувати для використання надзвичайно низького рівня атак, наприклад, ударного молота , де процес послідовно записує в пам'ять певним чином, поки він не зможе прочитати сусідні блоки пам'яті, якими вона не володіє - ефективно дозволяючи протікати пам'ять між процесами.

Також варто зазначити, що ізоляція, як правило, дещо відходить, коли ви хочете зробити будь-який вид вводу-виводу: вхід і вихід обов'язково означають прохід, що відкриває атакуючу поверхню, яку можна використовувати для виконання хост-дій. Сюди входить прохід HID, як миша та клавіатура, а також такі речі, як мережне проходження через мережу - хоча це, як правило, залежить від того, наскільки добре реалізований перехід вводу / виводу у вашій машині управління.

Чи повинен я (чи можу я?) Встановити брандмауер між гостем та господарем?

Це залежить, але загалом це не погана ідея . Більшість основних платформ підтримують брандмауери на рівні гіпервізорів. Вони максимум настільки ж дозвільні, як і брандмауер на вашій хост-машині, який, у свою чергу, максимум настільки ж дозвільний, як і брандмауер вашої локальної мережі або VLAN. Якщо ви хочете скористатися цим замість того, щоб повністю відключати доступ до мережі, від'єднуючись віртуальними мережевими інтерфейсами, я рекомендую зробити дослідження, які порти та розміщувати вибрані цілі шкідливого програмного забезпечення та переходити звідти.

Чи є гостьові додатки ризиком для безпеки?

Так . Вони дозволяють здійснювати різного роду інтеграції між вашим хост-машиною та гостьовою машиною, і не завжди мають відкриті характеристики, де можна побачити, що відкривається; Дивись вище.

А як щодо спільних каталогів?

Це залежить від того, як ви це робите, але це часто погана ідея . Багато гіпервізорів роблять це, створюючи віртуальний накопичувач, встановлений в гостьовій машині, корінь якої знаходиться в цьому каталозі. Залежно від реалізації цього механізму, який може дещо відрізнятися між рамками, ви можете бути, а може і не бути безпечними, залежно від того, яку зловмисну ​​програму ви намагаєтеся протестувати.


Мене хвилює те, що ви провели дуже мало досліджень у цьому напрямку, і що ви можете врешті нашкодити машині чи вашим даним. Перш ніж продовжити, я б порадив вивчити різні механізми ізоляції на загальних ОС (KVM, як вони інтегруються в рамки віртуалізації вищого рівня ( ), контейнери ( ) та chrootмеханізм ( ) для назви кілька), коли кожен підходить, і що вони можуть, а що не можуть зробити. У цей момент ви зможете краще оцінити, чи можете ви сміливо грати зі шкідливим програмним забезпеченням у належно ізольованому середовищі.

Нарешті, вам не слід брати участь у спробах працювати з новою або маловідомою шкідливою програмою (якщо ви не досвідчений дослідник безпеки, але ця відповідь не спрямована на досвідчених дослідників безпеки). Зловмисні актори надзвичайно креативні, коли мова йде про те, що вони експлуатують та як вони це експлуатують. Щоб зрозуміти це, подивіться на будь-які нещодавні переговори DEFCON, які не зосереджені на соціальній інженерії чи фізичному доступі за допомогою механічних засобів.


3
Я не думаю, що в принципі є велика різниця в ізоляції між KVM і VirtualBox / VMWare / ..., оскільки всі вони потребують підтримки модуля ядра та використовують апаратну віртуалізацію. Можливо, ви мали на увазі контейнери / докери? Це, мабуть, чисті подробиці qemu було б лише в просторі користувачів, але в наші дні він, мабуть, набагато менший огляд, ніж kvm (див. Також експлуатування дискети), але ні kvm, ні qemu не дозволяють прямі сискали в ядро, але обидва дозволяють побічно (за допомогою віртуалізації або пара-віртуалізації) .
Maciej Piechotka

@MaciejPiechotka моя помилка, це було неправильно. Я оновив відповідь, але дякую, що ви довели це!
0xdd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.