Зыбучие пески или установка песочницы CAPE
Привет, Хабр, на связи лаборатория кибербезопасности AP Security. В данной статье предлагаем разобрать процесс установки и первоначальной настройки такой песочницы, как CAPE.
Зачем взрослым песочница?
В такой сфере, как компьютерная безопасность песочница (Sandbox) — это виртуальная среда, в которой вредоносное ПО может безопасно запускаться и анализироваться, не причиняя вреда хост-системе. Иными словами песочница запускает файл в изолированной виртуальной среде, анализирует действия, которые он совершает в системе, и выдает вердикт о том, безопасен этот файл или нет. Если говорить совсем просто, то наша цель — запустить неизвестное и ненадежное приложение или файл в изолированной среде и получите информация о том, что он делает.
Песочница для анализа вредоносных программ — это практическое применение динамического анализа: вместо статического анализа двоичного файла он выполняется и отслеживается в режиме реального времени. Очевидно, что у данного подхода есть плюсы и минусы, но это ценный метод для получения дополнительной информации о вредоносном ПО, например о его поведении в сети. Поэтому рекомендуется выполнять как статический, так и динамический анализ подозрительных файлов, чтобы получить более глубокое представление о них.
Прежде чем приступить к установке, настройке и использованию песочницы, следует подумать о том, как и чего вы хотите добиться.
Некоторые вопросы, которые стоит задать себе:
Какие файлы я хочу проанализировать?
Какую платформу я хочу использовать для проведения анализа?
Какую информацию я хочу получить о файле?
Создание изолированной среды (виртуальной машины) и её настройка, вероятно, является самой важной частью развертывания песочницы: это следует делать аккуратно и с планированием каждого этапа установки.
После выбора продукта виртуализации, следует построить план проектирования, который определяет:
Какую операционную систему, язык и уровень исправлений использовать.
Какое программное обеспечение устанавливать и какие версии (особенно важно при анализе эксплойтов).
Учтите, что автоматический анализ вредоносного ПО не является детерминированным, и его успех может зависеть от миллиона факторов: вы пытаетесь запустить вредоносное ПО в виртуализированной системе так же, как и в собственной, что бывает очень сложно. Вашей целью должно быть создание системы, способной удовлетворить все требования, необходимые вам, а также постарайтесь сделать систему для анализа как можно более реалистичной.
Закончив проектирование и подготовку прототипа желаемой системы, можете приступать к созданию и развертыванию песочницы и виртуальной среды. Вы всегда успеете изменить что-то или немного исправить, но помните, что хорошее планирование всегда влечет меньше проблем в долгосрочной перспективе.
КАПЕ? Может быть МЫС? А нет, скорее всего ПЛАЩ!
CAPE (Malware Configuration And Payload Extraction) — это автоматизированная система анализа вредоносного ПО с открытым исходным кодом.
Песочница используется для автоматического запуска и анализа файлов, а также для сбора полной информации. Результаты анализа показывают, что делает вредоносное ПО во время работы внутри изолированной операционной системы (в основном ОС Windows).
CAPE может получить следующие типы результатов:
Следы вызовов Win32 API, которые выполнялись всеми процессами, порожденными вредоносным ПО.
Файлы, которые были созданы, удалены и загружены вредоносной программой во время ее выполнения.
Дампы памяти процессов вредоносного ПО.
Трассировка сетевого трафика в формате PCAP.
Снимки экрана рабочего стола Windows, сделанные во время работы вредоносной программы.
Полные дампы памяти виртуальных машин.
CAPE является «выходцем» из одной достаточно популярной песочницы Cuckoo Sandbox и и предназначен для использования как в качестве автономного приложения, так и в качестве интегрированного решения в более крупные структуры благодаря своей модульной конструкции.
Что можно анализировать:
Общие исполняемые файлы Windows
DLL-файлы
PDF-документы
Документы Microsoft Office
URL-адреса и HTML-файлы
PHP-скрипты
CPL-файлы
Сценарии Visual Basic (VB)
ZIP-файлы
Java-JAR-файл — Файлы Python
Почти все остальное
CAPE обладает мощными возможностями, которые благодаря модульности архитектуры позволяет создавать неограниченное количество различных сценариев.
На чём стоит мыс
CAPE Sandbox состоит из программного обеспечения для централизованного управления, которое обрабатывает образцы, выполнение и анализ.Каждый анализ запускается на новой изолированной виртуальной машине, либо из состояния снимка одной ВМ (snapshot). Инфраструктура CAPE состоит из хост-машины (управляющей машины) и ряда гостевых машин (виртуальных машин для анализа). Хост запускает основной компонент песочницы, который управляет всем процессом анализа, в то время как «гости» представляют собой изолированную среду, где образцы вредоносного ПО безопасно выполняются и анализируются.
На следующем рисунке объясняется основная архитектура CAPE:
Подготовка и настройка хоста
В данной статье конфигурация песочницы будет представлять собой совокупность Ubuntu 22.04 LTS в качестве хост-системы и виртуальной машины на операционной системе Windows 7 Pro. Такая сборка предлагается и разработчиками CAPE, поскольку позволяет максимально задействовать возможности песочницы и обладает хорошей устойчивостью к обнаружению вредоносным ПО. Не запрещается использовать и другие решения, экспериментировать с конфигурацией хоста и гостя.
Скачать CAPE на хост можно из официального репозитория git, где находится стабильная и упакованная версия продукта.
Рекомендуется устанавливать гипервизор KVM, хотя можно использовать и любой другой. Для его скачивания в директории CAPE находится скрипт установки всего необходимого kvm-qemu.sh.
Перед выполнением сценария вам следует заменить вхождения
в самом сценарии реальными шаблонами оборудования. Вы можете использовать acpidump в Linux и acpiextract в Windows для получения таких шаблонов, как указано в самом скрипте.
Для создания простой лабораторной среды достаточно заменить
в коде скрипта на 4 любых символа.
Делаем файл скрипта исполняемым:
cmod a+x kvm-qemu.sh
И устанавливаем сам KVM. выполняя следующую команду:
sudo ./kvm-qemu.sh all | tee kvm-qemu.log
заменяя
После установки обязательно необходимо перезагрузиться.
Если необходимо установить Virtual Machine Manager (virt-manager), выполните следующую команду:
sudo ./kvm-qemu.sh virtmanager | tee kvm-qemu-virt-manager.log
заменяя
После установки обязательно необходимо перезагрузиться.
Далее для установки самого CAPE необходимо сделать исполняемым скрипт cape2.sh:
chmod a+x cape2.sh
Чтобы установить CAPE со всеми оптимизациями, используйте одну из следующих команд:
sudo ./cape2.sh base cape | tee cape.log
sudo ./cape2.sh all cape | tee cape.log
Не забудьте перезагрузиться после установки.
Рекомендуется использовать Poetry (это инструмент для управления проектами на Python) для установки зависимостей. Поскольку все службы настроены на использование poetry и лучше справляются с конфликтами зависимостей.
Для установки традиционным способом:
pip3 install -r requirements.txt
Чтобы установить зависимости с помощью poetry, выполните следующую команду (из основного рабочего каталога CAPE, обычно /opt/CAPEv2/
):
poetry install
После завершения установки вы можете подтвердить создание виртуальной среды с помощью:
poetry env list
Вывод должен быть похож на:
poetry env list
capev2-t2x27zRb-py3.10 (Activated)
С этого момента вам придется запускать CAPE в виртуальной среде Poetry. Для этого вам нужно всего лишь написать команду poetry run
. Например:
sudo -u cape poetry run python3 cuckoo.py
Данная команда, в будущем, будет основной командой запуска CAPE.
ВНИМАНИЕ! Только установочные скрипты и некоторые утилиты типа
rooter.py
должен быть выполнены сsudo
, остальные конфигурационные файлы и программы ДОЛЖНЫ выполняться под пользователемcape
, который создается в системе после выполненияcape2.sh
.
По умолчанию у пользователя cape
нет логина. Чтобы использовать терминал от его имени, вы можете выполнить следующую команду:
sudo su - cape -c /bin/bash
Подготовка гостя
На этом этапе хост является практически настроенным, в дальнейшем мы вернемся к его конфигурации.
Сейчас пришло время создать виртуальную машину и настроить её.
Запускаем Менеджер виртуальных машин, который устанавливался ранее и создаем новую ВМ. Как упоминалось выше в качестве ОС будет использоваться рекомендованная Windows 7 Pro.
При создании виртуальной машины и настройке её параметров CAPE не требует каких-либо особых требований к конфигурация. Выбирайте варианты, которые лучше всего соответствуют вашим потребностям. В любом случае, при необходимости, каждый параметр в будущем (разве что кроме размера диска) можно будет изменить.
Для правильной работы CAPE в виртуальной машине следует установить необходимое программное обеспечение и библиотеки.
Строгим требованием является установка Python, в настоящее время для Windows поддерживаются только 32-разрядные (x86) версии Python3 из-за особенностей взаимодействия анализатора с низкоуровневыми библиотеками. Для других ОС версия Python может быть 64-битной (x64).
Скачать установщик Windows / Linux можно с официального сайта. Предпочтительная версия Python > 3.6.
При установке Python рекомендуется выбрать параметр «Добавить Python<версии> в PATH»
После завершения установки следует проверить, правильно ли указан Python в переменной среды PATH с помощью ввода в командной строке команды :
python --version
Следующие библиотеки Python не являются строго обязательными для CAPE, но рекомендуется установить их, если вы хотите иметь доступ ко всем доступным функциям.
python -m pip install --upgrade pip
python -m pip install Pillow==9.5.0
ВАЖНО!!! Необходимо отключить функцию «Автообновления» или «Проверку обновлений». Также стоит установить дополнительное программное обеспечение, такое как браузеры, офисные пакеты. Не рекомендуется использовать версии Office более поздние, чем 2016, из-за отсутствия доказанной совместимости как с Maldocs, так и с CAPE.
Пришло время настроить некоторые параметры сети виртуальной машины. Двумя наиболее важными настройками являются отключение брандмауэра Windows и Автоматических обновлений . Причина этого в том, что эти особенности могут повлиять на поведение вредоносных программ в обычных условиях и могут загрязнять сетевой анализ, выполняемый CAPE, путем удаления соединений или включения ненужных запросов.
Следующий шаг — отключение автоматических обновлений. Для этого в Панели управления открываем Администрирование (Administrative Tools), затем открываем Службы (Services). Ищем Центр обновления Windows (Windows Update). Устанавливаем тип запуска Отключено и останавливаем работу службы.
Теперь вам нужно решить, хотите ли вы, чтобы ваша виртуальная машина имела доступ к Интернету. или вашей локальной сети. Чтобы сеть виртуальной машины работала правильно, вам необходимо настроить сети, чтобы Хост и Гость могли общаться.
Предупреждение: Диапазон
192.168.122.0/24
— это диапазон по умолчанию для первого интерфейса KVM (обычноvirbr01
) и его можно использовать в качестве проверки ANTI VM .
При настройке статического IP-адреса (объяснять как это делается не имеет смысла) в качестве шлюза необходимо указать IP-адрес интерфейса virbr<номер интерфейса> (по умолчанию virbr1)
Проверка доступа к сети путем проверки связи гостя и хоста является хорошей практикой, чтобы убедиться, что виртуальная сеть настроена правильно.
Используйте только статические IP-адреса для своих гостей, поскольку CAPE не поддерживает DHCP (по крайней мере, на момент написания этой статьи).
Предлагаемая разработчиками настройка — использование изолированной сети (hostonly) для вашей виртуальной машины. В этом случае будет отсутствовать подключение к сети Интернет. Для этого вы можете следовать приведенным ниже инструкциям, если вы используете KVM и virt-manager (менеджер виртуальных машин).
Cначала в графическом интерфейсе диспетчера виртуальных машин нажмите «Правка» → «Сведения о подключении» .
Если после создания новой изолированной сети вы уже создали виртуальную машину, вы можете выбрать ее в диспетчере виртуальных машин.
Следующее — проверка того, что новый интерфейс действительно создан и виртуальная машина действительно его использует. На своем хосте выполните следующую команду из командной строки: ip a
. Должен быть интерфейс с IP-адресом, который вы указали при его создании.
Гостевая виртуальная машина и хост должны иметь соединение между собой. Чтобы проверить это, вы можете использовать такие инструменты, как ping
или telnet
.
При успешной конфигурации внутренней сети между виртуальной машиной и хостом можно переходить к установке агента. Агент CAPE разработан как кроссплатформенный, поэтому вы имете возможность использовать его как в Windows, так и в Linux.
На хосте в каталоге аgent/ вы найдете файл аgent.py, просто скопируйте его в гостевую операционную систему (любым способом, возможно, в временную общую папку, загрузив ее с хост-веб-сервера или монтирование компакт-диска с файлом аgent.py) и запустите его. Предлагаю запустить HTTP-сервер из директории /opt/CAPEv2/agent
c помощью команды :
python3 -m http.server
Далее заходим в браузер по адресу 192.168.122.1:8000
на виртуальной машине и копируем нужный файл agent.py.
Предупреждение: Рекомендуется использовать агент в его безоконной версии (
.pyw
расширение) учитывая, что открытиеcmd
определенно будет мешать работе human.py, вызывая несколько проблем, таких как блокировка agent.py.
Не забудьте протестировать агент перед сохранением снимка. Вы можете сделать это, перейдя к VM_IP:8000
с помощью браузера с вашего хоста или выполните: curl VM_IP:8000
. Вы должны увидеть вывод, аналогичный следующему:
Если вы хотите, чтобы скрипт запускался при загрузке Windows, поместите файл в папке автозагрузки администратора. Чтобы получить доступ к этой папке, откройте приложение с помощью Win+R и найдите «shell: common Startup», который откроет нужную папку (обычно C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
). Не помещайте агент в папку автозагрузки пользователя (обычно C:\Users\
), так как он запустит агент без прав администратора, что приводит к неправильной работе агента.
Редактирование conf-файлов
Следующим шагом в нашей настройке будет редактирование конфигурационных файлов которые находятся в директории /opt/CAPEv2/conf
ВАЖНО!!! Редактирование conf-файлов обязательно нужно производить от пользователя cape
Пройдемся по основным настройкам необходимым для первоначального запуска песочницы и её безошибочной работы. Первым делом открываем файл cuckoo.conf и обращаем внимание на параметры:
machinery = kvm (либо название используемого вами гипервизора)
memory_dump = off (либо on, если вам необходим полный дамп памяти машины после завершения анализа)
ip = 192.168.122.1 (в данном параметре указываем ip-адрес используемого интерфейса хостовой системы, который мы указывали в качестве шлюза при настройке сети)
port = 2042 (порт, используемый CAPE по умолчанию)
Следующий конфигурируемый файл — kvm.conf (при условии, что в качестве гипервизора вы использовали рекомендованный KVM):
machines = win7 (указываем наименования созданной нами виртуальной машины)
interface = virbr1 (используемый для внутренней сети интерфейс)
label = win7 (название ВМ)
platform = windows (операционная система ВМ)
ip = 192.168.122.191 (адрес ВМ)
arch = x64 (архитектура используемой ВМ)
После открываем файл qemu.conf. Параметры его настройки аналогичны параметрам из предыдущих conf-файлов:
Если виртуальная машина имеет доступ в Интернет, то в файле routing.conf обязательно следует указать параметр route = internet
Назначение и параметры настройки остальных файлов вы можете прочитать в официальной документации. В основном, благодаря конфигурации других файлов, можно сделать песочницу достаточно гибкой и адаптивной системой анализа, включить необходимые функции или отключить то, что мешает или ненужно, активировать vpn или настроить использование tor. Также существует несколько файлов для настройки CAPE при наличии других гипервизоров.
Запуск песочницы
Предупреждение: Не забудьте сделать снимок готовой к работе виртуальной машины (snapshot). При использовании песочницы ВМ всегда будет запускаться из состояния снимка, а после выполнения анализа обратно возвращаться к нему.
Чтобы создать снимок ВМ, необходимо в Менеджере виртуальных машин (virt-manger) в окне «Управление снимками» слева внизу нажать на кнопку «Создать снимок»
Запуск CAPE производится из корневой папки /opt/CAPEv2
под пользователем cape.
Для запуска CAPE используйте команду:
python3 cuckoo.py
Но, поскольку для установки зависимостей мы использовали poetry, следует запускать CAPE с помощью следующей команды:
sudo -u cape poetry run python3 cuckoo.py
и с помощью команды
poetry run python3 cuckoo.py
если терминал уже используется пользователем cape.
Примерный вывод:
CAPE ждёт загрузки необходимого файла для проведения анализа.
Иногда, после перезапуска работы песочницы используемый порт не освобождается, для устранения этого достаточно прописать следующую команду:
sudo fuser -n tcp -k 2042
(2042 — порт по умолчанию)
CAPE предоставляет полноценный веб-интерфейс в виде приложения Django. Этот интерфейс позволит вам отправлять файлы, а также просматривать отчеты по всем результатам анализа.
Для доступа к нему (после запуска cuckoo.py в терминале) в браузере переходим по адресу localhost:8000
:
Загрузку подозрительного файла можно выполнить с помощью вкладки «Submit»:
Выбираем нужный файл, выставляем необходимые настройки и запускаем анализ. Необходимо некоторое время, чтобы CAPE запустила созданную виртуальную машину и провела в ней все необходимые тесты и процедуры анализа. По окончании работы песочницы во вкладке «Recent» можно наблюдать результат проведенного анализа:
Подводя итог, следует сказать, что в данной статье рассмотрен один из вариантов конфигурации для установки CAPE, которая позволяет экспериментировать, гибко настраивать и выбирать конфигурацию песочницы в зависимости от своих целей. Если в процессе установки возникли вопросы, нерассмотренные в статье, вы можете обратиться к официальной документации разработчиков по детальной установке и настройке.