
Создаёт виртуальные машины Windows для анализа вредоносного ПО, чтобы вам не пришлось делать это самостоятельно.
= Malboxes :toc: preamble :toclevels: 2 :twob: https://twitter.com/obilodeau :twhg: https://twitter.com/hugospns // github stuff ifdef::env-github[:github:]
ifndef::github[] // local logo image::docs/logos/main.svg[Логотип Malboxes] endif::[]
ifdef::github[] // logo on github image::https://raw.githubusercontent.com/GoSecure/malboxes/master/docs/logos/main.svg?sanitize=true[Логотип Malboxes]
.Состояние проекта // Travis Build Status image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[Статус сборки (Travis CI), link=https://travis-ci.org/GoSecure/malboxes] // BlackHat Arsenal 2017 image:https://raw.githubusercontent.com/toolswatch/badges/master/arsenal/usa/2017.svg?sanitize=true[Black Hat Arsenal, link=https://www.toolswatch.org/2017/06/the-black-hat-arsenal-usa-2017-phenomenal-line-up-announced/] // Gitter Chat image:https://badges.gitter.im/malboxes_/Lobby.svg[link="https://gitter.im/malboxes_/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]
Создаёт виртуальные машины Windows для анализа вредоносного ПО, чтобы вам не пришлось делать это самостоятельно.
https://github.com/gosecure/malboxes
== Требования
=== Минимальные требования к сборочной машине
=== Fedora
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
=== Debian
apt install vagrant git python3-pip
=== Ubuntu
apt install git python3-pip
=== ArchLinux
pacman -Sy vagrant packer python-pip git
== Установка
=== Linux/Unix
pip install malboxes:=== Windows
NOTE: Начиная с Windows 10 Hyper-V всегда работает под операционной системой.
Поскольку VT-X должен использоваться исключительно только одним гипервизором,
https://github.com/GoSecure/malboxes/issues/39[это приводит к сбою VirtualBox (и
malboxes)]. Чтобы отключить Hyper-V и разрешить
VirtualBox работать, выполните следующую команду в командной строке с правами администратора,
затем перезагрузите компьютер: bcdedit /set hypervisorlaunchtype off
==== С помощью Chocolatey
Следующие шаги предполагают, что у вас установлен https://chocolatey.org/[Chocolatey]. В противном случае следуйте <<Manually,процедуре ручной установки>>.
==== Вручную
C:\Windows\System32\=== Для развёртывания на AWS (опционально) Выполните эту команду после обычной установки:
vagrant plugin install vagrant-aws
NOTE: Функция AWS на данный момент протестирована только на Linux, и EC2 не поддерживает 32-разрядную настольную версию Windows 10.
== Использование
=== Создание базового образа
Это создаёт базовый образ, который импортируется в Vagrant. Впоследствии вы можете повторно использовать один и тот же образ для нескольких анализов образцов.
Запустите:
malboxes build <template>
Вы также можете вывести список всех поддерживаемых шаблонов с помощью:
malboxes list
Это создаст образ Vagrant, готовый для анализа вредоносного ПО. Впоследствии вы можете включить его в Vagrantfile.
Например:
malboxes build win10_x64_analyst
<<_configuration,Раздел конфигурации>> содержит дополнительную информацию о том, что можно настроить с помощью malboxes.
=== Экземпляры для каждого анализа
malboxes spin win10_x64_analyst <name>
Это создаст Vagrantfile, готовый к использованию для анализа вредоносного ПО. Переместите
его в каталог по вашему выбору и выполните:
vagrant up
По умолчанию локальный каталог будет общим в ВМ на Рабочем столе. Это
можно изменить, закомментировав соответствующую часть Vagrantfile.
Например:
malboxes spin win7_x86_analyst 20160519.cryptolocker.xyz
=== Для развёртывания на AWS (опционально)
Malboxes может загружать и взаимодействовать с ВМ в Amazon Web Services. Для этого выполните следующие шаги:
. Malboxes потребуется корзина S3 в AWS для загрузки ВМ перед преобразованием в AMI (Amazon Machine Image). Если у вас её нет, link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[создайте её сейчас.]
. Ваш экземпляр также требует link:https://docs.aws.amazon.com/vpc/latest/userguide/VSC_SecurityGroups.html#CreatingSecurityGroups[группу безопасности] как минимум с правилом, разрешающим входящие соединения для WinRM (Тип: WinRM-HTTP, Протокол: TCP, Диапазон портов: 5985, Источник: публичный IP хоста).
. Затем вам необходимо настроить роль службы vmimport.
Следуйте разделу VM Import Service Role из https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html[этого руководства].
Эти шаги должны выполняться с учётной записью, имеющей разрешения iam:CreateRole и iam:PutRolePolicy.
. Если используется <<_configuration,конфигурация по умолчанию>>, измените гипервизор на aws и заполните обязательные параметры, относящиеся к нему. В противном случае убедитесь, что все параметры, связанные с AWS, добавлены в вашу пользовательскую конфигурацию.
. Наконец, вы можете следовать тем же шагам, описанным в разделах <<Создание базового образа>> и <<Экземпляры для каждого анализа>>, чтобы запустить свой экземпляр!
NOTE: Импорт AMI может занять очень много времени (около часа), однако вы можете проверить статус задачи, выполнив <<Статус импорта AMI,это>>. На данный момент можно построить только один AMI на шаблон.
==== Статус импорта AMI Установите awscli с помощью pip:
pip install awscli
link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[Настройте] awscli с помощью:
aws configure
Затем выполните:
aws ec2 describe-import-image-tasks
==== RDP
Чтобы подключиться к экземпляру в облаке через RDP, выполните эту команду в том же каталоге, где находится ваш Vagrantfile:
vagrant rdp -- /cert-ignore
Для этого экземпляру потребуется группа безопасности, разрешающая входящие RDP-соединения (Тип: RDP, Протокол: TCP, Диапазон портов: 3389, Источник: публичный IP хоста).
NOTE: Вы можете спокойно игнорировать следующую ошибку, поскольку rsync ещё не реализован: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
==== Остановка экземпляра
Чтобы остановить экземпляр в облаке, выполните эту команду в том же каталоге, где находится ваш Vagrantfile:
vagrant halt
== Конфигурация
Конфигурация Malboxes находится в каталоге, который соответствует стандартным соглашениям операционной системы:
~/.config/malboxes/~/Library/Application Support/malboxes/C:\Users\<username>\AppData\Local\malboxes\malboxes\Файл называется config.js и копируется из примера при первом запуске.
link:malboxes/config-example.js[Пример конфигурации] документирован.
=== Поддержка ESXi / vSphere
Malboxes по умолчанию использует VirtualBox в качестве бэкенда, но начиная с версии 0.3.0 добавлена поддержка ESXi / vSphere. Заметки о link:docs/esx-setup.adoc[необходимых шагах для поддержки ESXi / vSphere доступны]. Поскольку у каждого настройки немного отличаются, не стесняйтесь открыть issue, если вы столкнётесь с проблемой, или улучшить нашу документацию через pull request.
=== Профили
Мы экспериментируем с концепцией профилей, которые хранятся отдельно от конфигурации и могут использоваться для создания файлов, изменения реестра или установки дополнительных пакетов. Смотрите link:malboxes/profile-example.js[profile-example.js] для примера конфигурации. Эта новая возможность является экспериментальной и может измениться по мере экспериментов.
=== Группы безопасности AWS
В настоящее время Malboxes не поддерживает автоматическое создание групп безопасности, поэтому вам придётся использовать консоль AWS для их создания. Однако, используя библиотеку link:https://boto3.amazonaws.com/v1/documentation/api/latest/index.html[Boto3], можно реализовать это.
== Дополнительная информация
=== Видео
Вводное видео
image::https://img.youtube.com/vi/oq6N3WLAoe8/0.jpg[link="https://www.youtube.com/watch?v=oq6N3WLAoe8"]
=== Статьи в блогах
=== Презентации
malboxes был представлен на https://www.nsec.io/2016/01/applying-devops-principles-for-better-malware-analysis/[NorthSec 2016] в докладе под названием Applying DevOps Principles for Better Malware Analysis, прочитанном link:{twob}[Olivier Bilodeau] и link:{twhg}[Hugo Genesse]
== Лицензия
Код распространяется под лицензией GPLv3+, подробнее см. в LICENSE. Документация
и материалы презентаций распространяются под лицензией Creative Commons
Attribution-ShareAlike 4.0, подробнее см. в docs/LICENSE.
== Благодарности
После того как у меня возникла идея улучшенного рабочего процесса для аналитика вредоносного ПО на основе того, что я использовал для разработки на Linux-серверах (Vagrant), я быстро погуглил, делает ли кто-то уже что-то в этом направлении.
Я нашёл репозиторий https://github.com/m-dwyer/packer-malware[packer-malware] на
GitHub от Mark Andrew Dwyer. Malboxes был создан благодаря его работе, которая
помогла мне особенно в области файлов Autounattend.xml.