Я начну с того, что этот вопрос очень широк и показывает очень мало оригинальных исследований, и что этот ответ не следует рассматривать как поощрение такого типа вопроса. Вместо этого этот ответ надеется дать некоторые чрезвычайно простые советы по безопасности для людей, только начинающих с анализа вредоносного ПО.
Работая в предположении, что вы используете известное, ранее исследованное вредоносное ПО, то, как вы изолируете свою среду, сильно зависит от того, на что оно способно. Некоторые общие правила, которые применяются к большинству современных вредоносных программ, могут быть следующими:
Изолируйте свою виртуальную машину от Интернета. Это может быть так же просто, как и не настраивать переадресацию интерфейса на гостевую машину, и предотвращает связь вредоносного ПО с любыми потенциальными узлами управления и контроля, которые могут заставить его действовать непредсказуемым образом.
Используйте соответствующий гипервизор. На рынке есть несколько основных, в том числе VirtualBox, HyperV, QEMU и macOS Hypervisor.framework
; некоторые из них активно используются вредоносными программами и, в зависимости от версии, могут быть уязвимы для проникновения вредоносных программ на гостевую машину.
Определенно не устанавливайте гостевые дополнения или аналог какой-либо другой платформы. Буквальная цель такого программного обеспечения - установить интеграцию между гостем и хостом, эффективно ослабляя разделение между ними. Я не исследователь вредоносных программ, но я бы удивился, если бы не было вредоносных программ, специально предназначенных для такого рода поверхностей.
Чтобы обратиться к некоторым из ваших пунктов напрямую:
Насколько изолирована виртуальная машина от хоста?
На этом этапе виртуальная машина может быть довольно тщательно изолирована, но некоторые функции все равно должны проходить через хост более или менее напрямую, с небольшой защитой гипервизора.Сразу же большинство виртуальных машин, не являющихся KVM (например, VirtualBox) , не будут совместно использовать ядро с операционной системой хоста. Это само по себе служит блокировщиком против многочисленных классов эксплойтов, в частности блокирует возможность запуска произвольных системных вызовов для ядра вашего хоста (с заметной звездочкой, что реализация сломанного уровня виртуальной машины может позволить вредоносным программам обойти это менее очевидными способами).
Тем не менее, ваша виртуальная машина все еще имеет пространство процессов в аппаратном обеспечении вашего хост-компьютера - и хотя это, как правило, не представляет опасности, поскольку современные операционные системы обеспечивают достойную изоляцию пространства процессов, она все же может использоваться для использования атак крайне низкого уровня, таких как молоток строки , где процесс последовательно записывает в память определенным образом, пока он не сможет прочитать смежные блоки памяти, которые ему не принадлежат, что эффективно приведет к утечке памяти между процессами.
Также стоит отметить, что изоляция имеет тенденцию к некоторому исчезновению, когда вы хотите выполнить практически любой ввод / вывод: вход и выход обязательно означают сквозное прохождение, которое открывает поверхность атаки, которую можно использовать для выполнения действий хоста. Это включает в себя HID passthrough, как мышь и клавиатура, а также такие вещи, как passthrough сети - хотя это, как правило, зависит от того, насколько хорошо реализовано passthrough I / O реализовано в вашей виртуальной машине.
Должен ли я (или я могу?) Установить межсетевой экран между гостем и хостом?
Это зависит, но это, как правило, неплохая идея . Большинство основных платформ поддерживают брандмауэры на уровне гипервизора. Они не более, чем брандмауэр на вашем хост-компьютере, который, в свою очередь, не хуже, чем брандмауэр в вашей локальной сети или VLAN. Если вы хотите использовать это вместо того, чтобы полностью отключать доступ к сети путем отключения виртуальных сетевых интерфейсов, я бы порекомендовал изучить, какие порты и узлы для выбранных вами вредоносных программ являются целевыми и как они будут развиваться.
Являются ли гостевые дополнения угрозой безопасности?
Да . Они допускают всевозможные интеграции между вашим хост-компьютером и гостевым компьютером, и не всегда имеют открытые спецификации, где вы можете видеть, что открывается; смотри выше.
Как насчет общих каталогов?
Это зависит от того, как вы это делаете, но часто это плохая идея . Многие гипервизоры делают это, создавая виртуальный диск, смонтированный на гостевой машине, корень которой находится в этом каталоге. В зависимости от реализации этого механизма, который может незначительно отличаться в разных средах, вы можете быть или не быть в безопасности, в зависимости от того, какое вредоносное ПО вы пытаетесь протестировать.
Я обеспокоен тем, что вы провели очень мало исследований в этой области и что вы можете нанести вред вашей машине или вашим данным. Прежде чем продолжить, я бы посоветовал вам изучить различные механизмы изоляции в распространенных ОС (KVM), как они интегрируются с высокоуровневыми средами виртуализации ( виртуальная машина ), контейнерами ( контейнер ) и chroot
механизмом ( chroot). ) для именования. несколько), когда каждый уместен, и что они могут и не могут сделать. На этом этапе вы сможете лучше судить, можете ли вы безопасно поиграть с вредоносными программами в надлежащим образом изолированной среде.
Наконец, вам не следует пытаться работать с новыми или малоизвестными вредоносными программами (если вы не опытный исследователь безопасности, но этот ответ не предназначен для опытных исследователей безопасности). Злонамеренные актеры чрезвычайно креативны, когда дело доходит до того, что они используют и как они это используют. Чтобы получить представление об этом, взгляните на любые недавние выступления DEFCON, которые не связаны с социальной инженерией или получением физического доступа с помощью механических средств.