Полностью изолировать машину VirtualBox


17

Я хотел бы использовать VirtualBox для установки некоторого программного обеспечения, которое не должно иметь доступа к моему хост-компьютеру (и наоборот). Тем не менее, я также предполагаю возможность попробовать более «опасные» вещи, такие как попытка использовать эксплойты нулевого дня и посмотреть, что они могут сделать.

Насколько изолирована виртуальная машина от хоста? Должен ли я (или могу я?) Настроить брандмауэр между гостем и хозяином? Являются ли гостевые дополнения угрозой безопасности? Как насчет общих каталогов?

Прямо сейчас на гостевой машине выполняется тестирование Debian GNU / Linux.


7
В Stack Exchange есть группа информационной безопасности, если вы хотите задать подробные вопросы безопасности.
Cybernard

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

1
Вы не должны использовать VirtualBox, потому что он взаимодействует с вашей системой через модуль ядра, который представляет собой гораздо более высокий риск, чем чистые реализации пользовательского пространства. И особенно модуль ядра виртуальной коробки считается дерьмом разработчиками ядра. Лучшим выбором будет эмулятор, такой как qemu, работающий как непривилегированный пользователь, который не имеет доступа к чему-либо интересному и правилам брандмауэра, которые запрещают доступ к сети для этого пользователя. (Проводка в качестве комментария , поскольку это не дает ответа на вопрос о VirtualBox напрямую)
алло

Ответы:


36

Я начну с того, что этот вопрос очень широк и показывает очень мало оригинальных исследований, и что этот ответ не следует рассматривать как поощрение такого типа вопроса. Вместо этого этот ответ надеется дать некоторые чрезвычайно простые советы по безопасности для людей, только начинающих с анализа вредоносного ПО.

Работая в предположении, что вы используете известное, ранее исследованное вредоносное ПО, то, как вы изолируете свою среду, сильно зависит от того, на что оно способно. Некоторые общие правила, которые применяются к большинству современных вредоносных программ, могут быть следующими:

  • Изолируйте свою виртуальную машину от Интернета. Это может быть так же просто, как и не настраивать переадресацию интерфейса на гостевую машину, и предотвращает связь вредоносного ПО с любыми потенциальными узлами управления и контроля, которые могут заставить его действовать непредсказуемым образом.

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

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

Чтобы обратиться к некоторым из ваших пунктов напрямую:

Насколько изолирована виртуальная машина от хоста?

На этом этапе виртуальная машина может быть довольно тщательно изолирована, но некоторые функции все равно должны проходить через хост более или менее напрямую, с небольшой защитой гипервизора.Сразу же большинство виртуальных машин, не являющихся KVM (например, VirtualBox) , не будут совместно использовать ядро ​​с операционной системой хоста. Это само по себе служит блокировщиком против многочисленных классов эксплойтов, в частности блокирует возможность запуска произвольных системных вызовов для ядра вашего хоста (с заметной звездочкой, что реализация сломанного уровня виртуальной машины может позволить вредоносным программам обойти это менее очевидными способами).

Тем не менее, ваша виртуальная машина все еще имеет пространство процессов в аппаратном обеспечении вашего хост-компьютера - и хотя это, как правило, не представляет опасности, поскольку современные операционные системы обеспечивают достойную изоляцию пространства процессов, она все же может использоваться для использования атак крайне низкого уровня, таких как молоток строки , где процесс последовательно записывает в память определенным образом, пока он не сможет прочитать смежные блоки памяти, которые ему не принадлежат, что эффективно приведет к утечке памяти между процессами.

Также стоит отметить, что изоляция имеет тенденцию к некоторому исчезновению, когда вы хотите выполнить практически любой ввод / вывод: вход и выход обязательно означают сквозное прохождение, которое открывает поверхность атаки, которую можно использовать для выполнения действий хоста. Это включает в себя HID passthrough, как мышь и клавиатура, а также такие вещи, как passthrough сети - хотя это, как правило, зависит от того, насколько хорошо реализовано passthrough I / O реализовано в вашей виртуальной машине.

Должен ли я (или я могу?) Установить межсетевой экран между гостем и хостом?

Это зависит, но это, как правило, неплохая идея . Большинство основных платформ поддерживают брандмауэры на уровне гипервизора. Они не более, чем брандмауэр на вашем хост-компьютере, который, в свою очередь, не хуже, чем брандмауэр в вашей локальной сети или VLAN. Если вы хотите использовать это вместо того, чтобы полностью отключать доступ к сети путем отключения виртуальных сетевых интерфейсов, я бы порекомендовал изучить, какие порты и узлы для выбранных вами вредоносных программ являются целевыми и как они будут развиваться.

Являются ли гостевые дополнения угрозой безопасности?

Да . Они допускают всевозможные интеграции между вашим хост-компьютером и гостевым компьютером, и не всегда имеют открытые спецификации, где вы можете видеть, что открывается; смотри выше.

Как насчет общих каталогов?

Это зависит от того, как вы это делаете, но часто это плохая идея . Многие гипервизоры делают это, создавая виртуальный диск, смонтированный на гостевой машине, корень которой находится в этом каталоге. В зависимости от реализации этого механизма, который может незначительно отличаться в разных средах, вы можете быть или не быть в безопасности, в зависимости от того, какое вредоносное ПО вы пытаетесь протестировать.


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

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


3
Я не думаю, что в принципе существует большая разница с точки зрения изоляции между KVM и VirtualBox / VMWare / ..., поскольку все они требуют поддержки модулей ядра и используют аппаратную виртуализацию. Может быть, вы имели в виду контейнеры / докеры? Тем не менее, возможно, что чисто эксплойты qemu будут только в пользовательском пространстве, но в настоящее время они, вероятно, гораздо менее тщательно проверяются, чем kvm (см. Также эксплойт дисковода гибких дисков), но ни kvm, ни qemu не допускают прямых системных вызовов в ядре, но оба допускают косвенные (посредством виртуализации или паравиртуализации). ,
Мачей Печотка

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