Варианты конфигурации и сценарии настройки Cuckoo Sandbox
Подготовка хоста Linux
В первую очередь установите зависимости для Cuckoo Sandbox. В терминале выполните:
$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
Для корректной работы веб-интерфейса Cuckoo Sandbox необходимо установить mongodb:
sudo apt-get install mongodb
Для работы с БД разработчик рекомендует использовать PostgreSQL:
sudo apt-get install postgresql libpq-dev
Pydeep — необязательный плагин, который можно установить вручную. Исходный код и инструкции: pydeep на GitHub. Для сборки нужен пакет libfuzzy-dev.
Установка Pydeep. Сначала установите пакет libfuzzy-dev:
sudo apt install libfuzzy-dev
Теперь необходимо установить ssdeep. Это утилита для использования алгоритма нечёткого хеширования. Для этого в терминале выполните:
sudo apt install ssdeep
Обновите кэш общих библиотек при помощи команды:
sudo ldconfig
Чтобы установить pydeep – его нужно загрузить и разархивировать:
Скачайте исходники pydeep и соберите пакет:
cd ~/Downloads
wget https://github.com/kbandla/pydeep/archive/refs/heads/master.tar.gz
tar -xvf master.tar.gz
cd pydeep-master/
python setup.py build
python setup.py test
sudo python setup.py install
После python setup.py test в терминале должно появиться Test successful. Команда sudo python setup.py install завершает установку pydeep.
Чтобы убедиться, что pydeep установлен корректно, выполните в терминале команду вне каталога с исходниками pydeep:
python -c "import pydeep; print(pydeep)"
Вы увидите в терминале строку вида:
<module 'pydeep' from '/usr/local/lib/python2.7/dist-packages/pydeep.so'>
Теперь необходимо установить ПО для виртуализации (virtualbox). Cuckoo Sandbox поддерживает VirtualBox 4.3, 5.0, 5.1 и 5.2:
echo deb http://download.virtualbox.org/virtualbox/debian xenial contrib | sudo tee -a /etc/apt/sources.list.d/virtualbox.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.2
Подробности см. в официальной документации VirtualBox.
Разработчики Cuckoo Sandbox рекомендуют выделить отдельного пользователя ОС для запуска песочницы. Это необходимо для минимальной безопасности, если, например, машина Cuckoo Sandbox создана не только для песочницы. Если вы хотите создать отдельного пользователя – ознакомьтесь с официальной документацией.
Для того чтобы получить доступ к сетевой активности, выполняемой вредоносным ПО во время его запуска, вам потребуется правильно настроенный сетевой анализатор, способный перехватывать трафик и сохранять его в файл. Tcpdump – утилита для захвата и анализа пакетов в компьютерных сетях. Cuckoo Sandbox использует tcpdump по умолчанию. Для установки в терминале выполните:
sudo apt-get install tcpdump apparmor-utils
sudo aa-disable /usr/sbin/tcpdump
Так как отдельный пользователь не создаётся, для tcpdump включите бит setuid:
sudo chmod +s /usr/sbin/tcpdump
Установка m2crypto. В настоящее время библиотека M2Crypto поддерживается только при установленном SWIG. В системах типа Ubuntu/Debian это можно сделать следующим образом:
sudo apt-get install swig
Если в системе установлен SWIG, M2Crypto можно установить следующим образом:
sudo pip install m2crypto==0.24.0
Установка guacd. guacd — это необязательная служба, которая обеспечивает слой трансляции для RDP, VNC и SSH для функций удаленного управления в веб-интерфейсе Cuckoo. Если вы используете Ubuntu версии 16.04.7 используйте следующие команды для установки:
sudo apt -y install libcairo2-dev libjpeg-turbo8-dev libpng-dev libossp-uuid-dev libfreerdp-dev
mkdir /tmp/guac-build && cd /tmp/guac-build
wget https://archive.apache.org/dist/guacamole/0.9.14/source/guacamole-server-0.9.14.tar.gz
tar xvf guacamole-server-0.9.14.tar.gz && cd guacamole-server-0.9.14
./configure --with-init-dir=/etc/init.d
make && sudo make install && cd ..
sudo ldconfig
sudo /etc/init.d/guacd start
В журнале запуска должны появиться строки вида:
Starting guacd: guacd [3603]: INFO: Guacamole proxy daemon (guacd) version 0.9.14 started
SUCCESS
При установке из исходного кода убедитесь, что из менеджера пакетов не установлена другая версия библиотек libguac*: иначе возможны конфликты и сбои guacd.
Проверка установленных пакетов с libguac в имени:
apt list --installed | grep libguac
Если в выводе что-то есть — удалите конфликтующие пакеты вручную, например: sudo apt remove имя_пакета.
Обратите внимание, что для использования функциональности Cuckoo Control, предоставляемой Guacamole, также необходимо установить VirtualBox Extension Pack. Проверьте версию установленной Oracle VirtualBox:
vboxmanage --version
Ожидаемый формат вывода — строка с номером сборки, например 5.2.44r139111 (у вас может отличаться).
Загрузите extension pack в папку ~/Downloads при помощи:
wget -P ~/Downloads https://download.virtualbox.org/virtualbox/5.2.44/Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack
Затем запустите VirtualBox графически. В верхнем меню выберите: Файл → Настройки → Расширения. Нажмите + и выберите скачанный .vbox-extpack. Нажмите Install. Согласитесь с условиями и введите пароль root.
Установка Cuckoo Sandbox. Установка последней версии Cuckoo очень проста и выполняется следующим образом. Обратите внимание, что рекомендуется сначала обновить библиотеки pip и setuptools, поскольку они часто устаревают, что приводит к проблемам при попытке установить Cuckoo (см. также DistributionNotFound / No distribution matching the version..). Вполне вероятно, что у вас могут отсутствовать один или несколько системных пакетов, необходимых для сборки различных зависимостей Python. Пожалуйста, прочтите и перечитайте раздел «Требования», чтобы решить подобные проблемы.
Настоятельно рекомендуется устанавливать Cuckoo в виртуальном окружении Python 2. Работайте из домашнего каталога (~), а не из корня файловой системы (/).
virtualenv cuckoovenv
. cuckoovenv/bin/activate
pip install -U pip setuptools
pip install -U cuckoo
В зависимости от настроек вашей среды (virtualenvs и т. д.) вам может потребоваться указать версию pip для использования. Просто замените pip в приведенных выше командах на pip2.
Конфигурационные файлы Cuckoo
Настройка конфигурации Cuckoo. Cuckoo использует несколько основных конфигурационных файлов:
-
cuckoo.conf— общее поведение и параметры анализа. -
auxiliary.conf— вспомогательные модули. -
<machinery.conf>— параметры гипервизора (имя файла совпадает с модулем machinery вcuckoo.conf; для VirtualBox это, как правило,virtualbox.conf). -
memory.conf— Volatility и дампы памяти. -
processing.conf— модули обработки результатов. -
reporting.conf— форматы отчётов.
Для работы Cuckoo вам следует как минимум отредактировать файлы cuckoo.conf и конфиг machinery (например, virtualbox.conf).
cuckoo.conf. Первый файл для правки — $CWD/conf/cuckoo.conf. Далее под $CWD имеется в виду рабочий каталог Cuckoo. В cuckoo.conf задаются общие параметры: их стоит просмотреть перед первым запуском. Файл подробно прокомментирован; ниже перечислены разделы, которые чаще всего требуют внимания:
machinery в cuckoo
Этот параметр определяет, какой модуль Machinery вы хотите использовать для взаимодействия Cuckoo с вашими машинами анализа. Значение должно быть именем модуля без расширения (например, virtualbox или vmware).
ip и port в resultserver
Эти параметры определяют локальный IP-адрес и порт, к которому Cuckoo будет пытаться подключиться к серверу результатов. Убедитесь, что они соответствуют сетевой конфигурации ваших аналитических машин, иначе они не смогут вернуть результаты.
connection в database
Строка подключения к базе данных определяет, как Cuckoo будет подключаться к внутренней базе данных. Вы можете использовать любую СУБД, поддерживаемую SQLAlchemy, используя допустимый синтаксис URL-адресов базы данных.
Важно: проверьте IP-адрес сервера результатов на выбранном сетевом интерфейсе. Некоторые программы виртуализации (например, VirtualBox) не поднимают виртуальные сетевые интерфейсы до запуска виртуальной машины. Cuckoo необходимо активировать интерфейс, на котором вы привязываете сервер результатов, до запуска, поэтому проверьте настройки вашей сети. Если вы не уверены, как активировать интерфейс, хороший способ — вручную запустить и остановить виртуальную машину анализа, это активирует виртуальную сеть. Если вы используете NAT/PAT в своей сети, вы можете установить IP-адрес сервера результатов на 0.0.0.0, чтобы он прослушивал все интерфейсы, а затем использовать специальные параметры resultserver_ip и resultserver_port в файле machinery.conf, чтобы указать адрес и порт, которые видят все машины. Обратите внимание, что если вы установите IP-адрес сервера результатов на 0.0.0.0 в cuckoo.conf, вам необходимо установить resultserver_ip для всех ваших виртуальных машин.
Откройте файл /home/ваш_пользователь/.cuckoo/conf/cuckoo.conf в gedit или другом редакторе. Параметр machinery = virtualbox задан по умолчанию — убедитесь, что значение верное. Если Cuckoo и гостевые ВМ на одной физической машине, проверьте адрес сервера результатов (resultserver / 192.168.56.1): обычно это адрес host-only интерфейса VirtualBox после создания vboxnet0. Установите reschedule = yes, version_check = no, memory_dump = no. Остальное оставьте по умолчанию или скорректируйте по комментариям в файле. Сохраните изменения.
auxiliary.conf. Вспомогательные модули — это скрипты, которые выполняются одновременно с анализом вредоносного ПО; этот файл определяет их параметры. В файле auxiliary.conf нужно проверить параметр # Enable PCAP replay capabilities. enabled = yes и установить значение no. Остальные параметры настраивайте по необходимости. Если нет, то оставьте значения по умолчанию и сохраните файл.
machinery.conf. Модули machinery — скрипты взаимодействия Cuckoo с гипервизором; у каждого модуля свой конфигурационный файл и список ВМ. Например, для VMware в cuckoo.conf указывают machinery = vmware, а машины перечисляют в $CWD/conf/vmware.conf. Далее в инструкции предполагается VirtualBox: откройте virtualbox.conf и задайте параметры:
В секции cuckoo1 параметр ip по умолчанию — 192.168.56.101. Если адрес гостевой машины другой, укажите фактический IPv4: после установки Windows 10 x64 и настройки сетевого адаптера выполните в cmd команду ipconfig и возьмите адрес из вывода (в примере ниже используется 192.168.56.101).
Параметр snapshot — имя снимка, к которому Cuckoo возвращает гостевую виртуальную машину после каждого анализа (например, Snapshot1, как в примерах команд ниже).
Остальные параметры задайте по необходимости или оставьте по умолчанию. Ниже описан вариант: хост Ubuntu, гостевая ОС Windows 10 x64.
processing.conf. Этот файл позволяет включать, отключать и настраивать все модули обработки. Эти модули расположены в каталоге cuckoo.processing и определяют способ обработки необработанных данных, собранных в ходе анализа. Раздел для каждого модуля обработки находится в файле $CWD/conf/processing.conf. Откройте файл processing.conf при помощи любого текстового редактора и настройте следующие параметры:
Найдите секцию [memory] и установите параметр enabled значение = no. Также найдите параметр extract_dll в секции [procmemory] и установите значение = yes. Проверьте параметр tesseract в секции [screenshots], чтобы значение было установлено = no.
reporting.conf. Файл $CWD/conf/reporting.conf содержит параметры генерации отчётов. Указывая yes или no, вы можете разрешить или запретить создание таких отчётов. Откройте файл reporting.conf при помощи любого текстового редактора и настройте следующие параметры:
В этом файле обязательно нужно в секции mongodb указать enabled = yes. В параметре identifier = указать имя хоста (его можно получить, используя команду hostname в терминале). Остальные параметры задайте по необходимости. Сохраните файл.
routing.conf. В этой документации рассматривается способ маршрутизации inetsim. Поэтому дальнейшая настройка файла routing.conf описана только для него. Если вам необходимо использовать другой(-ие) способ(-ы) - обратитесь к официальной документации Cuckoo Sandbox. Откройте файл routing.conf при помощи любого текстового редактора и настройте следующие параметры:
Параметр 'route = none' укажите inetsim. В секции [inetsim] параметр enabled = no укажите yes. server = 192.168.56.1 (или ваш адрес, на котором работает inetsim сервер). Сохраните и закройте файл.
INetSim
Установка INetSim. Последовательно выполните в терминале (запись в /etc и установка пакетов требуют прав суперпользователя):
sudo sh -c 'echo "deb http://www.inetsim.org/debian/ binary/" > /etc/apt/sources.list.d/inetsim.list'
sudo sh -c 'echo "deb-src http://www.inetsim.org/debian/ source/" >> /etc/apt/sources.list.d/inetsim.list'
wget -O - https://www.inetsim.org/inetsim-archive-signing-key.asc | sudo apt-key add -
sudo apt update
sudo apt install -y inetsim
(Не пропустите завершающее тире в конце команды с wget и apt-key.)
Проверка версии и службы:
inetsim --version
sudo systemctl status inetsim
curl http://127.0.0.1
Затем, необходимо открыть и отредактировать файл /etc/inetsim/inetsim.conf. В нем нужно найти секцию #service_bind_address 10.10.10.1, убрать символ # перед параметром и указать адрес IP хоста в Host-Only сети. Это тот адрес, который вы получите после создания Host-only network интерфейса внутри VirtualBox (vboxnet0). Также в этом файле нужно найти параметр dns_default_ip. Также убрать символ # перед ним и указать тот же адрес Host-only network интерфейса. Это нужно для того, чтобы вредоносное ПО во время анализа не зависало и получало DNS-resolve. В примере ниже оба параметра задаются как 192.168.56.1. После изменения настроек проверьте статус inetsim:
sudo systemctl status inetsim
Если inetsim Active(Running) - перезапустите его при помощи:
sudo systemctl restart inetsim
InetSim будет перезапущен с новыми настройками.
Подготовка гостевой машины
После установки гипервизора можно создавать виртуальные машины для анализа. Cuckoo не диктует жёсткие требования к шаблону ВМ — ориентируйтесь на свои задачи и рекомендации по проектированию песочницы в остальной документации.
Образ Windows 10 и создание виртуальной машины [#guest-vm-os]
Используйте установочный образ ОС с английской локализацией: иначе Cuckoo Sandbox может работать некорректно. Образы с другой локализацией устанавливать не рекомендуется (речь о языке дистрибутива, а не только о языке интерфейса после установки). В примере ниже — образ Windows_10_x64; дальнейшие шаги описаны для него.
Создайте виртуальную машину Windows 10 64-bit с именем cuckoo1, объёмом ОЗУ 2048 МБ, диском VDI 32 ГБ и подключите ISO установки (Windows_10_x64). На этапе OOBE по возможности отключите лишние пункты (геолокация, персонализированная реклама и т.п.).
Host-only интерфейс в VirtualBox
Пока Windows 10 устанавливается, перейдем к созданию host-only интерфейса. Для этого в GUI VirtualBox перейдите в Global Tools (стрелочка на этой кнопке) → Host Network Manager. У вас откроется новое окно.
Нажмите Create слева: появится интерфейс vboxnet0 с адресом по умолчанию 192.168.56.1/24. Тот же адрес укажите в cuckoo.conf в параметре сервера результатов (resultserver). Снимите флажок DHCP Server (Enable), если он включён.
Завершение установки Windows и Guest Additions
Возвращаемся к установке Windows 10. Когда просят авторизоваться нажмите Domain Instead. Name указываем cuckoo. Password оставляем пустым и нажимаем Next. Privacy settings отключаем все. После появления рабочего стола установите VirtualBox Guest Additions. Когда у вас откроется Microsoft Edge браузер - нажмите Start without your data. Уберите галочку Bring over your data… и нажмите confirm and continue. Затем continue without Google data. Уберите галочку Make your Microsoft experience more useful to you и нажмите Confirm and start browsing. Браузером для анализа будет использоваться Firefox в любом случае. Как только вы увидите рабочий стол - начните установку дополнительных зависимостей для работы с Cuckoo Sandbox.
Передача установщиков на гостевую ВМ
Есть 2 варианта как загружать все установщики дополнительных зависимостей. 1. Использовать Shared Folder между host и guest машиной. 2. Загружать на гостевой виртуальной машине все вручную при помощи Microsoft Edge браузера (в настройках сетевых адаптеров виртуальной машины должен быть выбран NAT в таком случае). Загрузите установщик python-2.7.10.amd64.msi с официального сайта https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi (прямая ссылка на скачивание). Выполните установку с базовыми настройками без изменений. Чтобы передать файл через Shared Folder - в окне виртуальной машины перейдите в Machine → Settings → Shared Folders. Справа нажмите на знак + и укажите папку Downloads на хостовой машине. Нажмите OK. Теперь нужно установить Guest Additions CD Image VirtualBox. Для этого в окне виртуальной машины сверху откройте Devices → Insert Guest Additions CD image… В Computer на VM вы увидите CD Drive. Откройте его и запустите файл VBoxWindowsAdditions. Оставьте все настройки по умолчанию и завершите установку. Разрешите создать ПО, когда появится окно. В конце установки выберите Reboot Now и нажмите Finish. После перезагрузки перейдите в Computer и для VirtualBox Guest Storage выполните Eject. На гостевой машине в This Computer вы увидите Network locations (1) Downloads (\\vboxsrv) VBoxSharedFolderFS. Открыв его, вы увидите папку downloads с машины хоста и сможете запускать установщики прямо оттуда. Если таковой нет – перейдите в Network и вы увидите папку там.
Установка вспомогательного ПО на гостевую систему
Затем установите на гостевую Windows 10 x64 следующее ПО:
-
Adobe Acrobat Reader X — установка с параметрами по умолчанию. После установки включите режим Always Open with Protected Mode disabled.
-
.NET Framework 4.5 — на Windows 10 часто уже установлена более новая версия; при сомнениях проверьте состав компонентов через
regedit. -
Пакеты Microsoft Visual C++ Redistributable для x86 и x64 (для каждой годовой ветки нужны оба разряда): 2005, 2008, 2010, 2012, 2013, 2015.
-
Pillow 2.9.0 для Python 2.7 — установщик
Python Pillow 2.9.0.win-amd64-py2.7.exe. -
По желанию: Microsoft Office 2010 x64; после установки отключите встроенные защиты в каждом приложении пакета.
-
Firefox (актуальная версия для Windows 10) с интерфейсом на английском языке. В мастере установки откажитесь от Maintenance Service. Назначение Firefox браузером по умолчанию на работу Cuckoo не влияет. На первом запуске пропустите мастер настройки и нажмите Start browsing.
Важно: в этом Firefox не используйте расширения, вход в учётные записи, синхронизацию и «боевой» интернет — браузер на гостевой ВМ предназначен только для сценариев анализа.
Настройка Firefox на госте
Настройте Firefox. В меню Settings → Privacy & Security → Security снимите флажки Block dangerous and deceptive content, Block dangerous downloads, Warn about unwanted software. Для Enhanced Tracking Protection выберите Standard, не Strict. Снимите Block pop-ups and third-party redirects и Warn when websites try to install extensions. В разделе Firefox data collection and use отключите все пункты сбора данных. Отключите HTTPS-Only Mode и DNS over HTTPS. На вкладке General в блоке Firefox Updates отключите автообновления.
Откройте about:config (без пробела в адресе). Снимите флажок Warn me when I attempt to access these preferences, нажмите Accept the Risk and Continue и задайте параметры:
-
browser.safebrowsing.enabled— тип String, значениеfalse(создайте вручную, если параметра нет). -
browser.safebrowsing.malware.enabled—false. -
browser.safebrowsing.downloads.enabled—false. -
browser.download.useDownloadDir—true. -
browser.helperApps.neverAsk.saveToDisk—application/octet-stream(при необходимости нажмите значок карандаша и введите значение вручную). -
security.enterprise_roots.enabled—true.
По желанию: security.sandbox.content.level = 0 ослабляет изоляцию контента и может понадобиться для отдельных сценариев анализа.
Настройка Adobe Acrobat Reader
Также необходимо настроить Adobe Acrobat Reader. Откройте его и перейдите в Edit → Preferences → Updater → Check for updates поставить Do not download or install updates automatically. Затем перейдите в Trust Manager → Internet Access from PDF files outside the web browser - Change Settings → Allow PDF files to access all web sites → OK. Затем вкладка Security - Verify signatures when the document is opened уберите галочку. Вкладка Internet - Connection Speed - укажите LAN. Затем нажмите OK → Yes, когда появится запрос Adobe Reader Updater (разрешение на смену параметров обновления). Закройте Acrobat.
Перед снимком состояния ВМ запустите каждое установленное приложение хотя бы один раз и завершите первичные мастера настройки, чтобы они не мешали автоматическому анализу.
Перезагрузите виртуальную машину после проделанных шагов.
После перезагрузки откройте Windows Security → Virus & threat protection → Manage settings. Выключите все пункты. Вернитесь в Windows Security и откройте Firewall & network protection → Firewall notification settings → Manage notifications → выключите все пункты.
Откройте Control Panel → User Accounts → User Accounts → Change User Account Control Settings → опустите ползунок в самый низ Never Notify → OK.
Вернитесь в Control Panel → System and Security → Windows Defender Firewall → Turn Windows Defender Firewall on or off → Поставьте везде Turn off → OK.
Откройте Settings → Windows Update → Advanced Options → убедитесь, что все выключено.
Нажмите ПКМ по Пуск → Run → gpedit.msc → Computer configuration → Administrative Templates → Windows Components → Microsoft Defender Antivirus. Справа в меню выберите Turn off Microsoft Defender Antivirus и нажмите дважды. Укажите Enabled → Apply → OK.
Затем перейдите в Computer Configuration → Administrative Templates → Windows Components → Windows Update. Справа в меню найдите параметр Configure Automatic Updates и нажмите дважды. Укажите Disabled → Apply → OK. Перезагрузите систему.
Статический IP и проверка связи гостя с хостом [#guest-network]
Виртуальные сети. Для корректной работы вам потребуется настроить сеть вашей машины таким образом, чтобы хост и гостевая система могли общаться. Рекомендуется проверить доступ к сети, отправив ping на гостевую систему, чтобы убедиться, что виртуальная сеть была настроена правильно. Используйте только статические IP-адреса для вашей гостевой системы, поскольку Cuckoo не поддерживает DHCP, и его использование нарушит вашу настройку. Этот этап во многом зависит от ваших собственных требований и характеристик вашего программного обеспечения для виртуализации.
Ошибки в настройке виртуальной сети — частая причина сбоев. Виртуальная сеть критична для Cuckoo: между хостом и гостевой ОС должен быть стабильный обмен данными. Большинство проблем, о которых сообщают пользователи, связаны с неправильной настройкой их сети. Если вы не уверены в этом, проверьте документацию к вашему программному обеспечению для виртуализации и проверьте связь с помощью ping и telnet.
Нажмите в окне виртуальной машины сверху Machine → Settings. Перейдите в вкладку Network. Adapter 1 укажите Attached to Host-only adapter и укажите vboxnet0. Перезапустите виртуальную машину. После перезагрузки, внутри виртуальной машины перейдите в Network & Internet Settings (ПКМ по значку интернета на панели быстрого доступа). Перейдите в Change adapter settings внизу этого окна. У интерфейса Local Area Connection (у вас он может называться по-другому, например, Ethernet) нажмите ПКМ → Properties. Уберите галочку с Internet Protocol Version 6. Выберите Internet Protocol Version 4 и нажмите properties. Выберите Use the following IP address и укажите адрес 192.168.56.101 (или ваш другой; в типовой конфигурации из этой документации используется 192.168.56.101), mask 255.255.255.0, default gateway 192.168.56.1, Preferred DNS server укажите 192.168.56.1. Alternate указывать не нужно. Поставьте галочку Validate Settings upon exit → OK. Если появится окно проверки с предупреждением, его можно закрыть без изменений. Проверьте настройки, используя ipconfig в cmd.
Проверьте доступность хоста с гостевой системы: при адресе хоста в host-only сети 192.168.56.1 в командной строке Windows выполните:
ping 192.168.56.1
Если ответы есть, проверьте обратное направление — с хоста на гостевую ВМ (в примере адрес гостя 192.168.56.101):
ping 192.168.56.101
Если обмен ICMP проходит в обе стороны, сеть настроена верно. Установите агент Cuckoo Sandbox. Если ICMP не проходит, проверьте /etc/inetsim/inetsim.conf и состояние службы: sudo systemctl status inetsim.
Агент Cuckoo на гостевой Windows
Начиная с версии 0.4, Cuckoo использует собственный агент, работающий внутри гостевой системы и обрабатывающий связь и обмен данными с хостом. Этот агент разработан как кроссплатформенный, поэтому вы сможете использовать его на Windows, Android, Linux и macOS. Для корректной работы Cuckoo необходимо установить и запустить этот агент. Это довольно просто. В каталоге $CWD/agent/ лежит файл agent.py. Скопируйте этот файл в гостевую операционную систему (во временную общую папку) и запустите его. Агент запустит небольшой API-сервер, с которым сможет взаимодействовать хост.
Переместите agent.py на рабочий стол гостевой Windows и переименуйте в agent.pyw. Если расширения не отображаются: This PC → меню View → Options → вкладка View → снимите флажок Hide extensions for known file types.
Запустите Command Prompt от имени администратора и перейдите в каталог Python 2.7 (типичный путь — C:\Python27):
cd \
cd Python27
Запуск агента (подставьте путь к своему рабочему столу):
python.exe C:\Users\ваш_пользователь\Desktop\agent.pyw
для запуска агента. Окно командной строки оставьте открытым: агент работает в фоне, пока сессия активна.
Снимок состояния гостевой ВМ
Сохранение состояния виртуальной машины. Теперь вы готовы сохранить виртуальную машину в состояние снапшота. Перед этим убедитесь, что вы выполнили перезагрузку и что она запущена, агент Cuckoo запущен, и Windows полностью загружена. Теперь вы можете приступить к сохранению машины. Способ сохранения, очевидно, зависит от используемого вами программного обеспечения для виртуализации. Если вы правильно выполните все описанные ниже шаги, ваша виртуальная машина будет готова к использованию Cuckoo.
Если вы используете VirtualBox, вы можете сделать снимок через графический пользовательский интерфейс или из командной строки хост-машины:
VBoxManage snapshot "cuckoo1" take "Snapshot1" --pause
cuckoo1 - название VM, Snapshot1 - название снапшота (оно нужно для конфигурации virtualbox.conf). После завершения создания снапшота вы можете выключить машину и восстановить ее:
VBoxManage controlvm "cuckoo1" poweroff
VBoxManage snapshot "cuckoo1" restorecurrent
Все эти команды выполняются в терминале хост-машины.
Запуск Cuckoo, rooter и веб-интерфейса
Использование Cuckoo Sandbox. Перейдите в cuckoovenv окружение при помощи команды в терминале хост-машины:
. cuckoovenv/bin/activate
Выполните команду загрузки сигнатур сообщества (cuckoo community):
cuckoo community
Далее — запуск Cuckoo. Здесь описан вариант на одной машине без отдельного API-сервера. Cuckoo Rooter (только Linux: Ubuntu и Debian-подобные дистрибутивы) — процесс с правами root для сетевой маршрутизации; основной демон Cuckoo обычно работает без root. Cuckoo и rooter обмениваются данными через сокет UNIX. Подробнее: маршрутизация для каждого анализа.
Откройте отдельное окно терминала. Выполните команду для запуска rooter:
sudo ~/cuckoovenv/bin/cuckoo rooter -g ваш_пользователь
Параметр -g задаёт группу для rooter; обычно это основная группа учётной записи, под которой выполнялась установка (узнать: id -gn или whoami). Это окно терминала будет открыто, пока работает rooter. Если закрыть это окно, маршрутизация для Cuckoo перестанет работать. В нём отображается журнал сетевых команд, выполняемых с правами root.
Запуск Cuckoo Sandbox. Откройте отдельное окно в терминале. Выполните команду:
. cuckoovenv/bin/activate
cuckoo -d
Вы увидите большой debug log, в котором множество информации о том, какие сигнатуры были загружены и состояние Cuckoo Sandbox. Если в последней строке вы видите:
INFO: Waiting for analysis tasks.
Значит, основной процесс Cuckoo запущен и ожидает задачи анализа. Далее запустите веб-интерфейс. Для этого в отдельном окне терминала используйте команды:
. cuckoovenv/bin/activate
cuckoo web --host 0.0.0.0 --port 8080
Чтобы открыть веб-интерфейс, откройте Firefox на хост-машине и в URL строке введите http://localhost:8080.
Первый пробный анализ в веб-интерфейсе
Счётчики Usage statistics останутся нулевыми, пока не будет ни одного завершённого анализа. Ознакомьтесь с веб-интерфейсом.
Загрузите тестовый архив EICAR: https://virusanalyst.com/eicar.zip. В веб-интерфейсе нажмите кнопку SUBMIT A FILE FOR ANALYSIS, выберите eicar.zip и Open.
В поле Network Routing по умолчанию должен быть выбран InetSim (подсветка в интерфейсе). Если нет — выберите вручную. Если пункт недоступен, проверьте службу INetSim и файл /etc/inetsim/inetsim.conf.
Выберите eicar.zip и нажмите по пустому квадрату рядом с ним для выделения.
Чтобы анализ шёл через Firefox (в этой инструкции Internet Explorer не настраивается), слева откройте Package → default и в списке выберите ff (пакет Firefox в Cuckoo).
В настройках слева внизу отключите Process Memory Dump: модуль Volatility в этой инструкции не устанавливается.
Запустите анализ, нажав на синюю кнопку Analyze справа сверху. Если вы увидели красную ошибку Something went wrong после нажатия на кнопку, откройте окно терминала с cuckoo. Если там начался анализ – все нормально, это ошибка веб-интерфейса.
Текст журнала анализа может отличаться от скриншотов. Красные сообщения в логе часто связаны с необязательными модулями (например, tesseract), если они включены в processing.conf, но не установлены или настроены неверно.
После завершения анализа, перейдите на главную страницу Cuckoo Sandbox в веб-интерфейсе. Пролистайте вниз, там вы увидите историю анализов. Откройте отчет eicar.zip.
Ознакомьтесь с отчетом. Если вы установили Python Pillow на гостевую машину, вы также увидите скриншоты, прикрепленные к отчету. Слева вы можете увидеть выдвигающееся меню, оно тоже относится к этому анализу. Просмотрите вкладки в меню слева.
Следующая страница: Анализ производительности и варианты оптимизации Cuckoo Sandbox.