Как устроен Dr.Web vxCube

Продукт состоит из нескольких компонентов и сервисов, взаимодействующих между собой. Схема устройства представлена ниже.

vxCube_flowchart (1)

vxCube Web App
Основное приложение, предоставляющее удобный интерфейс для взаимодействия с системой анализа файлов. Также предоставляет API для автоматизации задач анализа файлов. Для удобства использования API реализована библиотека на Python hyper link.

vxCube Flow API
Компонент, отвечающий за логику распределения заданий по анализу файлов между различными сервисами. Позволяет удобно добавлять новые сервисы в систему анализа.

Windows Sandbox Service
Сервис запуска файлов в специальной виртуальной среде ОС Windows. Виртуальная машина реализована в виде модифицированного гипервизора с установкой перехватов и применением техник аппаратной виртуализации.

Linux Sandbox Service
Сервис динамического анализа ELF-файлов. Файлы запускаются на виртуальной машине с соответствующей архитектурой и разрядностью, и действия файла логирует специальный драйвер, установленный на виртуальной машине.

warning_green

Если все компоненты, входящие в состав vxCube, будут установлены на одном сервере, может наблюдаться замедление работы сервиса Linux Sandbox Service. Это связано с тем, что виртуализация на нем реализуется программно. Поэтому рекомендуем устанавливать каждый компонент на отдельный сервер.

Android Sandbox Service (опционально)
Сервис запуска файлов в специализированной виртуальной среде Android, представленный в виде уникальной реализации образа ОС Android.

Analyser Service
Сервис анализа поведения, записанного в виртуальной машине. В нем оценивается вредоносность поведения файла, а также формируются описания (текстовое, MAEC, STIX).

Dr.Web Scan Service
Сервис сканирования файлов и дампов памяти, полученных в процессе запуска образца.

Передача файлов между компонентами осуществляется через общее хранилище (на схеме Storage), реализованное в виде FTP-сервера. Для хранения данных о пользователях и результатах анализа используется база данных PostgreSQL. Для передачи заданий между сервисами используется брокер сообщений RabbitMQ.

Чтобы обеспечить максимальную безопасность, каждая виртуальная машина имеет свое собственное изолированное сетевое пространство. Для доступа в интернет используется VPN-сервер. Для корректной работы VPN-сервер должен быть сконфигурирован самостоятельно. Более подробная информация приведена в Приложении В. Настройка отдельного VPN-сервера.

warning_green

Рекомендуется использовать выделенный VPN-сервер, поскольку публичные сервисы могут быть сконфигурированы некорректно.