Описание системы
Список обозначений
- Система - развернутое и работающее в сети заказчика решение "Vulns.io Enterprise VM"
- Актив - компьютер, сервер, виртуальная машина, гипервизор или сетевое устройство, мониторинг которого ведется с помощью Системы.
- Агент - программа, устанавливаемая на Актив, для обеспечения его сканирования в агентном режиме.
- Кабинет - основной web-интерфейс системы для работы пользователей.
- Лицензия - право на использование продукта на заданный срок с оговоренными ограничениями и функционалом.
- Ключ лицензии - буквенно-цифровой код для идентификации активированной лицензии.
- БДУ - база данных уязвимостей, на основе которой производится сканирование Активов.
Краткое описание
Vulns.io Enterprise VM - многофункциональная система для управления уязвимостями, анализа, усиления защищенности и управления обновлениями активов IT-инфраструктуры в автоматическом режиме.
Первый релиз системы вышел в сентябре 2022 года. В марте 2023 года продукт добавлен в Реестр российского ПО.
Решаемые задачи
Система предназначена для решения следующих задач:
Управление уязвимостями
Аудит, мониторинг и приоритизация (в том числе по методике ФСТЭК) уязвимостей:
- операционных систем,
- установленного программного обеспечения,
- сетевых устройств,
- docker-образов в docker-реестрах, на хостах и пайплайнах CI/CD,
- запущенных docker-контейнеров.
Управления обновлениями
Мониторинг доступных обновлений и централизованная установка для оперативного устранения уязвимостей.
Контроль изменений
Анализ изменений уязвимости и инвентаризации активов.
Усиление защищенности
Аудит и мониторинг конфигураций операционных систем в соответствии с лучшими практиками для обеспечения повышенной защищенности.
Инвентаризация
Учет активов IT-инфраструктуры, программного обеспечения и настроек операционной системы. Обеспечивает полную видимость инфраструктуры и отслеживание изменений.
Автоматизация контроля защищенности
- Аудит уязвимостей по расписанию или по требованию.
- Автоматическая выгрузка отчетов в системы заказчика.
- Автоматическая рассылка отчетов.
Мониторинг соответствия уровню риска
Аудит и мониторинг конфигураций операционных систем на соответствие заданному уровню риска, соответствие политики безопасности или требованиям регуляторов.
Формирование отчетов
Формирование различных типов отчетов в рамках решаемых задач в человекочитаемом (PDF, HTML) и машиночитаемых форматах (XML, JSON).
Архитектура решения
Архитектурно Vulns.io Enterprise VM является on-premise решением на физическом или виртуальном сервере, работающим в сети и на мощностях заказчика:
Система в сети заказчика
Компоненты системы
Описание компонентов Системы в соответствие элементам, указанным на схеме взаимодействия.
Сервисы, работающие в Системе:
- mongodb - Main DB - хранение информации об активах, результатах сканирования, БДУ и пр.,
- redisdb - Cache DB - очередь задач,
- worker-main - Workers - выполнение задач аудита и инвентаризации активов в Системе,
- worker-images-scanner - Workers - выполнение задач аудита и инвентаризации docker-образов (на хостах и в docker registry),
- worker-reports - Workers - генерация отчетов,
- worker-software-manager - Workers - обновление Windows-ПО,
- logrotate - Workers - менеджер лог-файлов всех компонентов системы,
- data-updater - Updater - запрос обновлений БДУ с Vulns.io Cloud и обновление локальной БДУ,
- nginx - Reverse proxy - поддержка SSL, ограничение сетевого доступа,
- centrifugo - Websocket server - поддержка двусторонней связи с Агентами,
- cli - vio-cli - утилита командной строки, хранение исполняемого файла vio-cli и docker-сompose, используется при установке системы и обновлении на новую версию,
- vault - Vault - хранилище учетных записей,
- vault-init - Vault - инициализация хранилища в системе (подключение к vault),
- frontend - Не указан как явный компонент - хранилище статистических файлов веб-интерфейса Системы,
- api-server - Не указан как явный компонент - менеджер API-запросов, создает задачи для соответствующих воркеров на основе входящих запросов.
Представление активов заказчика в качестве компонентов Системы:
- Asset with Agent - целевой актив с установленным агентом (физический/виртуальный хост)
- vulns.io_agent - Agent - выполнение всех соответствующих типов задач на linux-активах/windows-активах,
- Asset without Agent - целевой актив без агента (хост, сетевое устройство).
Web-сервисы, работающие на стороне вендора Vulns.io:
- облачное API - для получения списка файлов обновлений,
- сервер обновлений - для скачивания файлов обновлений БД уязвимостей,
- сервер лицензирования - для проверки лицензии Системы,
- реестр docker-контейнеров - для получения обновлений docker-контейнеров.
Схема взаимодействия компонентов Системы
Требования к серверу и ОС
- физический сервер или виртуальная машина с поддержкой AVX-инструкций,
- любой linux-дистрибутив, поддерживающий:
- Docker 19.03.13+,
- Docker Compose V1 1.29.0+ или Docker Compose V2 2.8.0+,
- доступ в Интернет.
Конфигурация сервера
Количество активов | Количество ядер | Объем памяти | Тип хранилища |
---|---|---|---|
до 100 | 6 | 24 ГБ | HDD |
100 - 500 | 8 | 32 ГБ | HDD |
500 - 2000 | 12 | 48 ГБ | SSD |
2000 - 5000 | 16 | 64 ГБ | SSD |
5000 - 10000 | 32 | 128 ГБ | SSD |
10000+ | * | * | * |
* Для инфраструктур с количеством активов 10000+ разворачивание системы рекомендуется производить на нескольких серверах с оркестрацией контейнеров Docker Swarm или Kubernetes (для получения рекомендаций и помощи обратитесь в техподдержку).
Разворачивание системы в Kubernetes позволяет организовать автоматическое масштабирование ключевых компонентов системы для ускорения сканирования больших инфраструктур.
Конфигурация хранилища
Ниже приведены примеры ориентировочных объемов хранилища для разных вариантов частоты сканирования (каждого актива тремя типами задач) и глубины хранения:
- Вариант 1 - ежедневное сканирование, хранение истории 30 дней.
- Вариант 2 - ежедневное сканирование, хранение истории 180 дней.
- Вариант 3 - еженедельное сканирование, хранение истории 1 год.
- Вариант 4 - еженедельное сканирование, хранение истории 3 года.
Количество активов | Вариант 1 | Вариант 2 | Вариант 3 | Вариант 4 |
---|---|---|---|---|
до 100 | 36 ГБ | 40 ГБ | 37 ГБ | 40 ГБ |
100 - 500 | 40 ГБ | 60 ГБ | 42 ГБ | 55 ГБ |
500 - 2000 | 55 ГБ | 130 ГБ | 65 ГБ | 120 ГБ |
2000 - 5000 | 75 ГБ | 270 ГБ | 105 ГБ | 240 ГБ |
5000 - 10000 | 112 ГБ | 500 ГБ | 170 ГБ | 440 ГБ |
Приведенные объемы хранилища определены условно и будут зависеть от инфраструктуры, в которой развернута система.
Сетевые доступы
В интернет
Для установки и дальнейшего обновления решения серверу Системы требуется ряд сетевых доступов в сеть Интернет:
Доменное имя | Порт | Тип ресурса | Предназначение |
---|---|---|---|
api.vulns.io | 443 | API | Получение списка файлов обновлений |
data.vulns.io | 443 | Сервер обновлений | Получение файлов обновлений БДУ |
hub.vulns.io cr.yandex storage.yandexcloud.net |
443 | Реестр docker-контейнеров |
Получение обновлений docker-контейнеров |
Опционально может потребоваться доступ к следующим сайтам для установки Docker и Docker-compose:
Внутри инфраструктуры
Источник | Назначение | Порт | Описание трафика |
---|---|---|---|
Рабочее место пользователя Системы |
Система | 80,443 / TCP | HTTP-трафик Кабинета |
Актив с Агентом |
Система | 443 / TCP | Подключение Агентов к серверу Системы |
Система | linux-активы без Агента |
22 / TCP | Подключение к linux-активам |
Система | windows-активы без Агента |
135,137-139, 445, 5985, 5986 / TCP/UDP |
Подключение к windows-активам |
Система | сетевое оборудование * | 22 / TCP, 161,162 / UDP |
Подключение к сетевым устр-вам |
Система | почтовый сервер | 25 / TCP | Отправка сообщений на email |
Система | реестры контейнеров | 443 / TCP | Подключение к реестрам контейнеров для сканирования образов |
Система | LDAPS-сервер | 389 / TCP, 636 / TCP | Подключение к серверу LDAPS |
Система | AD-сервер | 3268 / TCP, 3269 / TCP | Подключение к контроллеру доменов |
* сетевые доступы будут зависеть от конкрентного оборудования.
Как работает сканирование
Агентный и безагентный подход
Система поддерживает два подхода к сканированию активов: агентный и безагентный. Оба подхода реализуют сканирование в режиме белого ящика, т.е. получают доступ к данным актива непосредственно внутри операционной системы актива.
Агентный подход
Подразумевает установку на актив специальной программы (Агента), работающей в режиме постоянно запущенной службы. Служба инициирует и поддерживает постоянное сетевое соединение с Системой, получает от Системы команды на выполнение необходимых действий (сканирование, инвентаризация, обновление и пр.), выполняет их и отправляет результаты обратно в Систему.
Для агентного подхода необходим только сетевой доступ от актива к Системе. Нет необходимости хранить учетную запись актива.
Безагентный подход
Для проведения сканирования в безагентном режиме Система:
- Выполняет сетевое подключение к активу с заранее заведенной учетной записью.
- Копирует на актив утилиту для выполнения сканирования.
- Выполняет сканирование или другие необходимые действия (инвентаризация, обновление и пр.)
- Выгружает результаты выполнения в Систему.
- Удаляет утилиту и все временные файлы, созданные на активе.
- Закрывает сетевое соединение.
Для безагентного сканирования linux-активов необходимы:
- сетевой доступ от Системы к активу,
- учетная запись с привилегиями
sudo
или находящаяся в группеroot
.
Сравнение подходов
Агентный | Безагентный | |
---|---|---|
Не требует настройки сетевого доступа к активу | Да | - |
Не требует хранения учетной записи актива | Да | - |
Не требует установки Агента | - | Да |
Может сканировать сетевые устройства | - | Да |
Поддерживает все действия на активе (аудит, инвентаризация, обновление и пр.) |
Да | Да |
Скорость сканирования | максимальная | средняя* |
* появляются дополнительные затраты времени на сетевое подключение, загрузку утилиты сканирования и очистку после завершения сканирования.
Как выполняется сканирование
Сканирование уязвимостей
Для проведения сканирования (аудита) уязвимостей на активе собирается и отправляется в Систему:
- информация об операционной системе: название дистрибутива, версия,
- список установленного программного обеспечения с версиями,
- список установленных обновлений (для некоторых ОС).
Полученная информация анализируется с использованием имеющейся в Системе базы данных уязвимостей.
Формируется результат сканирования:
- список уязвимого ПО,
- список доступных обновлений,
- список найденных уязвимостей,
- список отсутствующих обновлений безопасности (для некоторых ОС),
- фиксируется список проанализированного ПО,
- фиксируется сопутствующая метаинформация: дата и время сканирования, CVSS-метрики, критичность уязвимостей по методике ФСТЭК (V) и прочее.
Инвентаризация
Для проведения инвентаризации на активе запускается ряд системных команд ОС, собирается и отправляется в Систему подробная информации об активе:
- сведения об операционной системе,
- сведения о железе: CPU, память, диски,
- информация о сетевых интерфейсах и маршрутах,
- списки локальных групп и пользователей,
- список установленного ПО с версиями,
- список запущенных сервисов,
- список обнаруженных docker-образов и запущенных контейнеров.
На стороне Системы для соответствующего актива формируется результат инвентаризации.
Сканирование образов контейнеров
На хосте
Сканирование образов контейнеров на хосте производится Агентом на данном хосте или с помощью безагентного подключения без запуска контейнеров.
О каждом обнаруженном docker-образе собирается и отправляется в Систему:
- информация об операционной системе образа: название дистрибутива, версия,
- список установленного в образе программного обеспечения с версиями,
- размер образа, архитектура и идентификатор образа (sha256),
- список слоев с информацией о каждом слое: дата создания, команда создания, размер, Layer ID.
Полученная информация анализируется с использованием имеющейся в Системе базы данных уязвимостей.
Формируется результат сканирования образа:
- список уязвимого ПО,
- список доступных обновлений,
- список найденных уязвимостей,
- фиксируется список проанализированного ПО,
- фиксируется сопутствующая метаинформация: дата и время сканирования, CVSS-метрики, критичность уязвимостей по методике ФСТЭК (V) и прочее.
В реестре
Для проведения сканирования образов контейнеров в реестрах:
- Производится подключение к реестру с заранее заданной учетной записью.
- Собирается список репозиториев и тэгов реестра (всех или только заданных пользователем).
- При необходимости, если образы не сканировались ранее, производится скачивание образов в хранилище Системы.
- Проводится сканирование образов без запуска контейнеров и формирование результата аналогично сканированию образов на хостах (см. выше).
- Все скачанные и просканированные образы удаляются из хранилища Системы.
Система может сканировать образы в реестрах контейнеров, поддерживающих Docker Registry HTTP API V2.
Сканирование производится задачей типа "Образы контейнеров" с указанием хоста или реестра (см. раздел "Задачи").
В пайплайнах CI/CD
Для проведения сканирования образов в пайплайнах CI/CD используются:
- Специальный образ-компаньон, который содержит необходимый инструментарий для сканирования образов (образ-компаньон доступен для свободного скачивания из реестра hub.vulns.io).
- Vulns.io Common API, доступный в Системе.
Common API также доступен в облаке Vulns.io по адресу https://api.vulns.io/v1/. При его использовании не требуется разворачивать Систему, но необходимо получить токен для доступа.
В процесс CI/CD необходимо добавить новый этап, в рамках которого определить задачу сканирования целевого образа: указать необходимые параметры задачи, данные о целевом образе, данные для авторизации в реестре, токен API.
В ходе задачи сканирования выполняется:
- Скачивание образа-компаньона (из реестра hub.vulns.io или локального реестра организации) и запуск процедуры сканирования.
- Скачивание целевого образа из указанного реестра контейнеров.
- Анализ файлов целевого образа и сбор исходных данных для проведения аудита (определение дистрибутива и его версии, сбор установленных пакетов и их версий) без запуска целевого контейнера.
- Отправка собранных данных в Vulns.io Common API для анализа уязвимостей.
- Формирование отчета о найденных уязвимостях в виде артефакта задачи.
Подробное описание сканирования образов в пайплайнах CI/CD с примерами конфигураций описаны в "Руководстве пользователя" в разделе "Образы контейнеров / Сканирование в CI/CD".
Скорость сканирования и сетевой трафик
Сканирование хостов
Агентный | Безагентный | |
---|---|---|
Аудит уязвимостей: | ||
- время сканирования | 1..3 сек | 3..4 сек |
- трафик к хосту | ~ 1КБ | ~12 МБ |
- трафик от хоста | 5..50 КБ * | 5..50 КБ * |
Инвентаризация: | ||
- время сканирования | 5..60 сек ** | 8..65 сек ** |
- трафик к хосту | ~ 1КБ | ~12 МБ |
- трафик от хоста | 50..100 КБ ** | 50..100 КБ ** |
* зависит от количества установленного программного обеспечения и обновлений безопасности (KB),
** зависит от конфигурации хоста.
Сканирование образов контейнеров
Агентный | Безагентный | |
---|---|---|
На хостах: | ||
- время сканирования 1 образа | 3..5 сек | 5..7 сек |
- трафик к хосту | ~ 1КБ | ~12 МБ |
- трафик от хоста | 5..50 КБ * | 5..50 КБ * |
В реестрах: | ||
- время сканирования 1 образа | ..** | |
- трафик к реестру | ..** | |
- трафик от реестра | ..** |
* зависит от количества установленного в образе программного обеспечения
** зависит от размера образа.
Поддержка ОС, ПО и сетевых устройств
Список сканируемых операционных систем
Linux-дистрибутивы
- Alma Linux 8, 9
- Alpine 3.2 - 3.17
- Amazon Linux 1, 2, 2023
- Arch Linux
- Centos 5 - 8
- Debian 3 - 12
- Fedora Linux (21+)
- Gentoo
- Manjaro Linux
- openSUSE, openSUSE Leap
- Oracle 5 - 8
- RedHat 5 - 9
- Rocky 8, 9
- SUSE (SLED, SLES)
- Ubuntu 12.04 - 22.10
- Virtuozzo 6,7
- Virtuozzo Hybrid Server 7
- Altlinux 8, 9, 10, 11
- Astra Linux 1.6, 1.7, 4,7, 2.12
- Rosa Cobalt 7.3, 7.9
- Rosa Enterprise Desktop 7.3, 7.9
- RedOS 7.3
- МСВ Сфера
- ОСнова
Версии Windows
- Все текущие десктопные и серверные версии Windows
Список сканируемого программного обеспечения
Linux
- Все пакеты из официальных репозиториев поддерживаемых linux-дистрибутивов
Windows
Полный список сканируемого ПО Windows содержится в отдельном документе "Список поддерживаемых операционных систем и программного обеспечения"
Список сканируемых сетевых устройств
Тип устройства / Вендор | Инвентаризация | Аудит уязвимостей |
---|---|---|
Маршрутизаторы | ||
Cisco IOS | да | да |
Cisco IOS-XE | да | да |
Cisco NX-OS | да | да |
Huawei (NetEngine) | да | да |
Juniper (JunOS) | да | да |
Fortinet (FortiOS) | да | да |
MikroTik (RouterOS) | да | да |
Eltex | да | да |
Aruba | да | да |
Межсетевые экраны | ||
Cisco ASA | да | да |
Cisco FTD | да | да |
Cisco FMC | да | да |
Huawei | да | |
Juniper (JunOS) | да | да |
Fortinet (FortiOS) | да | да |
Palo Alto (PAN-OS) | да | да |
CheckPoint (Gaia OS) | да | да |
Коммутаторы | ||
Huawei (CloudEngine) | да | да |
Eltex | да | да |
Гипервизоры | ||
VMWare ESXi | да | да |
Функциональные возможности
Пользовательский интерфейс
Пользовательский web-интерфейс позволяет выполнять весь спектр решаемых Системой задач, контролировать статусы их выполнения, управлять активами, генерировать отчеты и экспортировать данные, мониторить состояние обновлений БДУ и пр.
Карточка актива в системе Vulns.io VM
Активы
Управление активами
- добавление/удаление активов,
- обновление агентов,
- группировка активов в статические и динамические группы,
- отображение актуальной информации об активе: уязвимости, обновления, инвентаризация, статус и версия агента и пр.,
- назначение параметров активов, влияющих на приоритизацию уязвимостей по методике ФСТЭК:
- важность (критическая, высокая, средняя, низкая),
- тип актива (сервер, рабочая станция, другой),
- влияние на периметр (да, нет),
- работа со списком активов,
- приоритизация активов по методике ФСТЭК или CVSS Score,
- указание технологических окон, ограничивающих время для работы с активом,
- тэгирование произвольными текстовыми цветными метками.
Сканирование уязвимостей
- непосредственное выполнение или планирование по расписанию задач сканирования уязвимостей,
- сканирование одного/нескольких или групп активов,
- аудит уязвимостей без пересканирования,
- журналирование хода выполнения задач сканирования,
- история сканирований актива и их результатов,
- отображение метаданных результатов сканирования,
- отображение результатов сканирования:
- список уязвимого ПО с текущими версиями и найденными уязвимостями,
- список доступных обновлений для уязвимого ПО,
- список найденных уязвимостей с информацией:
- ID бюллетеня,
- описание,
- Severity,
- CVSS Score,
- CVSS Vector,
- CWE,
- V (критичность уязвимости по методике ФСТЭК),
- EPSS Score,
- EPSS Percentile,
- о наличии эксплойтов,
- о присутствии в базе CISA KEV,
- дата публикации,
- список связанных URL для дополнительного анализа,
- список связанных бюллетеней,
- список отсутствующих обновлений безопасности (для некоторых ОС: например, KB* для windows-систем) со статусом проверки обновления в БДУ ФСТЭК,
- полный список проанализированного ПО с версиями.
Инвентаризация
- непосредственное выполнение или планирование по расписанию задач инвентаризации активов,
- инвентаризация одного/нескольких или групп активов,
- журналирование хода выполнения задач инвентаризации,
- история инвентаризаций актива и их результатов,
- отображение метаданных результатов инвентаризации,
- отображение результатов инвентаризации:
- сведения о системе:
- имя хоста,
- UUID,
- аптайм,
- локальное время,
- часовой пояс,
- unix-время на активе,
- информация об операционной системе:
- имя,
- версия,
- тип,
- архитектура,
- платформа,
- дата установки,
- смонтированные устройства (для linux-систем):
- путь монтирования,
- тип устройства,
- общий размер, использовано, доступно,
- таблица маршрутизации,
- список сетевых интерфейсов с названиями, ip- и mac-адресами,
- список локальных пользователей,
- список локальных групп пользователей,
- список установленного ПО:
- название,
- версия,
- занимаемый размер на диске,
- издатель,
- ссылка на сайт вендора,
- дата установки,
- место установки,
- список запущенных сервисов:
- имя,
- описание,
- статус,
- состояние,
- тип запуска,
- PID,
- путь к файлу описания,
- информация о CPU:
- модель,
- сокет,
- производитель,
- тип,
- количество ядер,
- количество логических ядер,
- текущая частота,
- максимальная частота,
- разрядность,
- физические диски:
- модель,
- производитель,
- серийный номер,
- идентификатор в системе,
- тип,
- объем,
- количество разделов,
- метка,
- подробная информация о разделах на диске,
- оперативная память:
- доступный объем памяти,
- свободный объем памяти,
- буферы,
- кэши,
- swap,
- физические модули памяти:
- объем,
- форм-фактор,
- тип памяти,
- номер банка,
- производитель,
- part number,
- серийный номер,
- разрядность,
- скорость,
- docker-контейнеры:
- список найденных на хосте образов:
- путь к репозиторию,
- тэг,
- идентификатор,
- размер,
- дата создания,
- список запущенных контейнеров:
- идентификатор,
- хэш,
- образ,
- время запуска,
- статус,
- командная строка запуска,
- маппинг портов,
- маппинг хранилищ.
Контроль изменений
Для любых собранных в процессе сканирования уязвимостей или инвентаризации данных можно провести сравнение во времени с помощью механизма контроля изменений. Данный функционал позволяет увидеть изменившиеся данные между двумя любыми аудитами.
Для уязвимостей также существует Дифференциальный отчет об уязвимостях
, в котором отображается динамика уязвимостей на активе за указанный период (закрытые, новые, изменение метрик)
Установка обновлений
Система позволяет производить выборочную или полную установку обновлений пакетов на Linux-активы. А также установку обновлений ПО(из списка поддерживаемого ПО) и безопасности KB на Windows-активы.
Образы контейнеров
Управление образами и реестрами
- добавление/удаление реестров,
- редактирование настроек реестра,
- добавление/изменение учетной записи для реестра,
- отображение актуальной информации о реестре: список репозиториев с образами и уязвимостями,
- отображение актуальной информации об образе: уязвимости, обновления пакетов, слои и пр.,
- работа со списками реестров и образов,
- получение вебхука для запуска сканирования реестра.
Сканирование уязвимостей
- непосредственное выполнение или планирование по расписанию задач сканирования уязвимостей образов:
- на хостах,
- в реестрах,
- в пайплайнах CI/CD,
- журналирование хода выполнения задач сканирования,
- история сканирований образа и их результатов,
- отображение метаданных результатов сканирования,
- отображение результатов сканирования:
- список уязвимого ПО с текущими версиями и найденными уязвимостями,
- список доступных обновлений для уязвимого ПО,
- список найденных уязвимостей с информацией:
- ID бюллетеня,
- описание,
- Severity,
- CVSS Score,
- CVSS Vector,
- CWE,
- V (критичность уязвимости по методике ФСТЭК),
- EPSS Score,
- EPSS Percentile,
- о наличии эксплойтов,
- о присутствии в базе CISA KEV,
- дата публикации,
- список связанных URL для дополнительного анализа,
- список связанных бюллетеней,
- полный список проанализированного ПО с версиями.
Учетные записи
Система поддерживает следующие типы учетных записей:
ssh
- для безагентного сканирования linux-активов и сетевых устройств,winrm
- для безагентного сканирования windows-активов,container_registry
- для сканирования образов контейнеров в реестрах,snmp
- для безагентного сканирования ESXi
Протокол будет выбран автоматически в зависимости от типа записи. Порт подключения можно настроить вручную.
Управление учетными записями
- создание и удаление,
- редактирование,
- проверка подключения,
- привязка к активу,
- работа со списком учетных записей.
Хранилище учетных записей
Для хранения учетных записей в Системе используется специальное защищенное хранилище HashiCorp Vault, которое обеспечивает безопасный и надежный способ хранения паролей, ssh-ключей и любых других реквизитов доступа.
Все данные в хранилище хранятся в зашифрованном виде и не могут быть извлечены обращением к методам REST API.
Списки исключений
Списки исключений - механизм Системы, позволяющий скрыть из результатов аудита указанные уязвимости. Как правило, это относится к уязвимостям, которые по мнению пользователя Системы:
- не могут быть проэксплуатированы в инфраструктуре или на конкретных типах активов в силу специфичных настроек или условий окружения последних,
- закрыты компенсирующими мерами.
В Системе можно создавать множество списков исключений, каждый со своей областью применимости.
Подробнее о списках исключений см. в разделе "Списки исключений" "Руководства пользователя".
Формирование отчетов
- непосредственное выполнение или планирование по расписанию задач генерации отчетов,
- генерация отчетов для одного/нескольких или групп активов,
- журналирование хода выполнения генерации отчетов,
- консолидированный отчет по выбранным активам или индивидуальный отчет по каждому активу,
- архив сгенерированных отчетов,
- различные типы отчетов: на основе аудита уязвимостей, инвентаризации и пр.,
- различные форматы отчетов: PDF, HTML, машиночитаемые JSON/XML,
- отправка отчетов на email.
Дашборды
Каждый дашборд представляет собой набор тематически объединенных виджетов. Расположение и размер виджетов в дашборде может устанавливаться пользователем. Информация дашборда может автоматически обновляться с заданным интервалом.
- Дашборд по результатам сканирования уязвимостей:
- Топ-10 уязвимых активов,
- Топ-10 уязвимостей по количеству активов,
- Топ-10 уязвимостей по оценке V ФСТЭК,
- Диаграмма CVSS Score,
- Давность аудита,
- Количество активов по типу,
- Количество активов по типу проводимого аудита,
- Общее количество уязвимостей,
- Топ-10 уязвимого ПО,
-
Диаграмма статусов агентов,
-
Дашборд по результатам инвентаризации активов:
- Топ-10 версий Linux,
- Топ-10 версий Windows,
- Активы по ОС,
- Всего активов,
- Диаграмма статусов агентов,
- Диаграмма давности инвентаризации,
- Диаграмма типа аудита.
Разграничение доступа и управление пользователями
В Системе существует возможность ограничения доступа по Организации, Роли пользователя и ip-адресу.
Организация - обособленная сущность для объединения группы пользователей и активов. Пользователи Организации могут работать только с Активами своей организации.
Роль определяет набор прав для работы с данными:
- Супер-администратор - имеет полные права на работу с данными всех организаций, создание организаций, управление любыми пользователями, конфигурирование и обновление системы.
- Администратор организации - имеет полные права на работу с данными конкретной организации (активы, пользователи, отчеты), запуск задач.
- Пользователь - имеет доступ только в рамках своей организации: добавление активов, создание задач, генерация отчетов.
Интерфейс позволяет:
- создавать/редактировать/удалять организации,
- создавать/редактировать/удалять пользователей,
- привязывать пользователей к организациям,
- назначать пользователям определенные роли доступа.
Кроме того, в Системе предусмотрен механизм ограничения сетевого доступа по ip-адресу (см. "Руководство администратора":"Конфигурирование":"Ограничение доступа по IP-адресам).
Настройки системы
В разделе настроек отображаются следующие данные Системы:
- текущая версия Системы и агентов,
- информация о лицензии,
- список каналов обновления БД уязвимостей и время последнего обновления,
- сервер обновления БД уязвимостей,
- расписание проверки обновлений БД уязвимостей,
- некоторые другие параметры, влияющие на работу Системы.
База данных уязвимостей
В Системе доступны к просмотру и поиску все загруженные в Систему бюллетени уязвимостей.
Отображается статистическая информация по базе:
- общее количество уязвимостей в БДУ,
- количество каналов обновлений,
- количество источников,
- количество добавленных бюллетеней за сутки/неделю,
- дата последнего обновления БДУ,
- диаграмма количества бюллетеней по типу: CVE / Advisory / ФСТЭК / KB,
- помесячное количество добавленных бюллетеней за послений год.
Возможности интеграции
API
В Системе реализован мощный REST API, позволяющий организовать сложные интеграции со сторонними системами заказчика:
- отправка данных в системы управления инцидентами,
- безагентный аудит уязвимостей на основе данных систем инвентаризации,
- обогащение событий в Центрах информационной безопасности (SOC),
- обогащение панелей визуализации и анализа информации.
C API Системы также может работать бесплатный продукт Vulns.io Linux Scanner - консольная linux-программа с псевдографическим интерфейсом для проведения аудита уязвимостей linux-дистрибутивов.
Доступ к API осуществляется с использованием специальных токенов и может быть ограничен:
- ip-адресами,
- конкретными методами API,
- активами/группами активов,
- организациями.
Как лицензируется продукт
Лицензия "Vulns.io Enterprise VM" определяет:
- максимальное количество Активов, которое можно зарегистрировать в Системе,
- доступные каналы обновления БД уязвимостей,
- срок действия работы Системы.
Лицензия является именной, имеет уникальный Ключ и поставляется в активированном виде в специальном файле license.txt
, наличие которого является обязательным для установки и эксплуатации Системы.
Вместе с файлом лицензии заказчик получает ключ к облачному API Vulns.io, посредством которого Система получает обновления. Действие ключа API синхронизировано со сроком действия лицензии.
Лимит активов
Любой Актив, добавленный в Систему вручную или с помощью API, будет учитываться в лимите лицензии. При достижении лимита функционал добавления новых Активов перестает работать. Ранее добавленные Активы и накопленные результаты сканирования продолжают быть доступны в обычном режиме.
Каналы обновлений
Система может получать обновления БД уязвимостей только для каналов, указанных в Лицензии.
Канал обновления - условное понятие для определения потока обновлений различных разделов БД уязвимостей или Системы.
Каналы обновлений бывают:
- системные - включены в поставку Системы, не зависят от Лицензии и не могут быть отключены пользователем,
- лицензионные - подхватываются Системой из Лицензии, могут быть отключены пользователем.
Системные
- Канал
agent/*
- бинарные файлы Агентов для различных операционных систем и разрядностей. - Канал
service/*
- метаданные базы уязвимостей, вспомогательные данные для проведения аудита уязвимостей. - Канал
bulletins
- база бюллетеней безопасности.
Лицензионные
- Канал
linux/*
- уязвимости для всех поддерживаемых Vulns.io linux-дистрибутивов, - Канал
windows/*
- уязвимости для всех поддерживаемых Vulns.io версий ОС Windows и ПО для Windows.
Срок лицензии
Лицензия является срочной, т.е. имеет срок окончания действия. По истечении этого срока весь основной функционал Системы прекращает работу (сканирование, генерация отчетов, добавление активов), а Система прекращает получать обновления функционала и БД уязвимостей. Активы и накопленные результаты сканирования продолжают быть доступны.
Техническое сопровождение
Как обновляется система
Обновление Системы осуществляется с помощью команды:
/opt/vulns.io/onpremise/cli/vio-cli update
Скачивание обновленных образов контейнеров займет какое-то время, затем они будут автоматически перезапущены.
Как обновляется БД уязвимостей
Обновление по расписанию
Все активные каналы обновляются автоматически в соответствии с настроенным расписанием.
Ручное обновление
Чтобы принудительно запустить обновление БД уязвимостей, необходимо перезапустить сервис data-updater
командой:
/opt/vulns.io/onpremise/cli/vio-cli restart data-updater
Как обновляются Агенты
После установки на Актив Агент самостоятельно соединяется с Системой и переходит в режим ожидания команд от Системы.
Одной из таких команд является команда обновления Агента, при получении которой он самостоятельно скачивает с сервера Системы новую версию бинарного файла, производит обновление и перезапуск.
В целом процедура обновления Агента состоит из следующих шагов:
- Система автоматически по заданному расписанию получает новые бинарные файлы Агентов по каналу обновления
agent/*
(см. раздел "Обновление БД уязвимостей / Каналы обновлений") - Агент, получив от Системы команду на обновление (в рамках выполнения соответствующей задачи), скачивает с сервера Системы новую версию бинарного файла.
- Агент самостоятельно выполняет обновление до новой версии.
- (Опционально) В случае неудачного обновления Агент самостоятельно производит откат на предыдущую рабочую версию.
Таким образом, регламентные работы по обновлению Агентов на Активах производятся непосредственно из Кабинета Системы ручным или автоматическим способом без использования сторонних средств администрирования.
Текущую версию установленного на Активе Агента можно узнать на детальной странице Актива.
Ручное обновление
Для ручного обновления Агентов необходимо запустить задачу типа "Активы / Обновление агентов":
- Перейти на страницу "Аудит / Задачи" -> кнопка "Создать задачу"
- Выбрать:
- тип задачи: "Активы",
- время запуска: "Сейчас" или "В заданное время",
- список активов, на которых необходимо обновить Агентов,
- действие: "Обновление агентов"
- Нажать кнопку "Создать задачу"
Задача будет запущена сразу или в заданное время. Агентам будет отправлена команда на обновление, а результат обновления Агентов будет отражен на детальной странице запуска задачи.
Автоматическое обновление по расписанию
Для автоматического обновления Агентов по расписанию необходимо создать периодическую задачу типа "Активы / Обновление агентов" (см. "Ручное обновление ") с временем запуска "По Cron'у", задав нужное расписание запуска в формате CRON.
Инструменты администрирования
Утилита командной строки vio-cli
входит в состав Системы и предназначена для выполнения базовых операций с сервисами Системы: мониторинг состояния, обновление, перезапуск и пр.
Список выполняемых операций:
- отображение статуса состояния сервисов Системы,
- обновление Системы (полностью или только указанных сервисов),
- получение терминального доступа к конкретному сервису,
- запуск/остановка/перезапуск Системы или конкретных сервисов.
Эксплуатация в больших инфраструктурах
Скорость сканирования инфраструктуры Системой в целом зависит от следующих факторов:
- производительности базы данных (сервис
mongodb
), - количества сервисов
worker-main
(воркеров), обрабатывающих задачи сканирования, - количества других параллельно выполняемых задач: генерации отчетов, обновления БД и прочих.
Возможны следующие способы увеличения производительности Системы:
-
Вертикальное масштабирование:
-
увеличение количества ядер CPU сервера и количества воркеров
worker-main
, -
использование высокоскоростных NVMe накопителей.
-
Горизонтальное масштабирование:
- запуск Системы на нескольких серверах с помощью оркестрации Docker Swarm или Kubernetes.
Горизонтальное масштабирование
Компоненты Системы, производительность которых влияет на скорость сканирования инфраструктуры, могут горизонтально масштабироваться с помощью оркестрации Docker Swarm:
- основная БД может шардироваться на необходимое количество хостов,
- количество воркеров может быть увеличено и распределено на дополнительных хостах.
Развертывание в Kubernetes
Развертывание в Kubernetes позволяет автоматизировать горизонтальное масштабирование критичных к скорости сканирования компонентов при высоких нагрузках на Систему.