Общие сведения о компоненте LVM
Local Vulnerability Manager – компонент сканирования внутренней локальной сети с целью инвентаризации хостов, портов, сервисов и их параметров; включает в себя следующие инструменты:
Требования к аппаратному и программному обеспечению
Основная часть продукта предоставляется как сервис, который развёрнут в выделенном облаке исполнителя. SolidLab VMS может быть развёрнут на мощностях исполнителя в рамках использования компонентов LVM и HVM. При развёртывании компонента LVM на собственных мощностях заказчика к серверному оборудованию предъявляются следующие минимальные требования:
- Процессор – 8 процессорных ядер архитектуры x86-64;
- Оперативная память – 8 Гб;
- Устройство хранения данных – 256 Гб SSD;
- Сетевой адаптер Ethernet с пропускной способностью 1000 Мб/с.
- Операционная система – семейства Debian версии 11. Для корректной работы LVM требуется:
- компилятор языка Golang версии не ниже go1.20;
- интерпретатор языка Python версии не ниже 3.8.5;
- пакетного менеджера pip версии не ниже 20.0.2;
- библиотеки python-gvm версии 21.5.2;
- средства поддержки контейнеризации кода Docker Compose версии не ниже 2.17. Компонент LVM предоставляется Заказчику в виде готового OVA образа, в котором предустановлены все необходимые зависимости для развёртывания внутри инфраструктуры Заказчика.
Установка OVA образа агента LVM
На примере VMware Identity Manager 2.9.1
Для установки OVA-образа необходимо выполнить следующую последовательность действий:
- В клиенте vSphere Client или vSphere Web Client выберите «Файл» > «Развернуть шаблон OVF».
- На страницах развертывания шаблона OVF введите данные для развертывания соединителя:
- На странице «Источник» необходимо перейти к расположению пакета OVA или ввести допустимый URL-адрес.
- На странице «Сведения о шаблоне OVA» необходимо убедиться, что выбрана правильная версия.
- На странице «Лицензия» необходимо ознакомиться с условиями лицензионного соглашения и нажать кнопку «Принимаю».
- На странице «Имя и расположение» следует ввести имя виртуального устройства. Имя должно быть уникальным в пределах папки иерархии и содержать не более 80 символов. Имена следует вводить с учетом регистра. После ввода имени необходимо указать расположение для виртуального устройства.
- На странице «Узел или кластер» нужно указать узел или кластер, чтобы запустить развернутый шаблон, после чего на странице «Пул ресурсов» нужно указать пул ресурсов.
- На странице «Хранилище» нужно указать расположение, в котором будут храниться файлы виртуальной машины.
- На странице «Формат диска» нужно указать формат диска для файлов. Для производственных сред следует использовать формат «толстой» подготовки. Для оценки и тестирования используйте формат «тонкой» подготовки.
- На странице «Сопоставление сетей» нужно сопоставить сети в производственной среде с сетями в шаблоне OVF.
- На странице «Свойства» необходимо выполнить следующую последовательность действий:
- В поле «Часовой пояс» выберите правильный часовой пояс.
- Флаг «Программа улучшения качества программного обеспечения» установлен по умолчанию. В рамках этой программы VMware собирает анонимные данные о развертывании, чтобы лучше удовлетворять требованиям пользователей. При необходимости нужно снять флаг.
- Ввести имя узла в текстовом поле «Имя узла». Если оставить это поле пустым, для поиска имени узла будет использоваться обратный поиск DNS.
- Чтобы настроить статический IP-адрес соединителя, нужно внести адрес шлюза по умолчанию, DNS-сервера, маски сети, а также IP-адрес.
Важно: Если оставить хотя бы одно поле пустым, включая поле «Имя узла», будет использоваться протокол DHCP. Чтобы настроить протокол DHCP, оставьте адресные поля пустыми.
10. На странице «Готово к завершению» необходимо проверить выбранные параметры и нажать кнопку «Готово».
Развертывание может занять несколько минут в зависимости от скорости сети. Ход выполнения можно просмотреть в соответствующем диалоговом окне. После завершения развертывания необходимо выбрать устройство и щелкнуть по устройству правой кнопкой мыши, в появившемся окне выбрать «Питание» > «Включить питание». Предоставить удалённый доступ к развёрнутой системе сотрудникам VMS. Устройство будет инициализировано. Сведения можно просмотреть на вкладке «Консоль». После завершения инициализации виртуального устройства на экране консоли отобразится версия и URL-адреса, с помощью которых можно войти в мастер настройки для завершения настройки.
Сканирование компонентом LVM
Vuln Scan
-
Переходим в папку LVM /home/{USER}/LVM/VulnScan
-
Что бы запустить сканирование, запускаем скрипт full_scan.py
python3 full_scan.py <target1>[,<target2>,...]
-
target1, target 2 и прочее - это цели сканирования. Если их несколько, то пишутся слитно через запятую.
-
При запуске сканирования получаем ID который нужен будет при приостановки скана. Во время выполнения скрипта обновляется регулярно статус и процент выполнения сканирования .

Приостановка и возобновление сканирования
- Что бы остановить или запустить сканирование после остановку, нужно запустить скрипт stop-start_scan.py
python3 stop-start_scan.py <command> <scan_id>
-
scan_id - ID скана, получаемый при создании сканирования.
-
command - resume или stop. resume запустит остановленный скан. Если скан уже работал, ничего не произойдет. stop остановит скан. Если скан уже был остановлен, ничего не произойдет
Для запуска скриптов приостановки и возобновления сканирования нужно открывать отдельное окно терминала
Примеры использования
Остановка скана
python3 stop-start_scan.py stop fe49de1d-c88f-4401-a71c-188e57da8087

Возобновление скана
python3 stop-start_scan.py resume fe49de1d-c88f-4401-a71c-188e57da8087

-
По окончанию сканирования вы увидите надпись Сканированое завершенно, а так же в директории /LVM/PortScan появится файл с результатом сканированя result.csv
-
Что бы отправить результаты в DT нужно запустить send_vulnarability-scan.py
python3 send_vulnarability-scan.py -
Скрипт попросит вас ввести наименование теста в DT Например: 192.168.52.131 или test и указать имя файла с результатом - {NAME}.
-
Результатом выполнения будет создание теста в DT с находками.
Если вы укажите наименования теста в DT, который уже существует будет осуществлен реимпорт скана в тот же тест.
Template Scan
-
Переходим в папку LVM /home/{USER}/LVM/TemplateScan/
-
Сканируемые хосты указываются в файле target txt (каждый хост с новой строки )

-
Что бы запустить сканирование, запускаем скрипт templatescan.py ( python3 templatescan.py )
-
Далее нужно указать наименование файла {NAME} в который будут сохраняться результаты сканированя (в название не должно быть спецсимволов)
-
Запустится сканирование, на экран будет выведен примерный прогресс выполнения

- Что бы приостановить скан запускаем скрипт pause_TemplScan.py ( python3 pause_TemplScan.py ). Нужно указать ID скана,
ID можно узнать загляну в файл pid (cat pid)
- Что бы возобновить скан запускаем resume_TemplScan.py ( python3 resume_TemplScan.py )
Для запуска скриптов приостановки и возобновления сканирования нужно открывать отдельное окно терминала
-
По окончанию сканирования вы увидите надпись Сканированое завершенно, а так же в директории /LVM/TemplateScan/ появится файл с результатом сканированя {NAME}.json
-
Что бы отправить результаты в DT нужно запустить send_template-scan.py(python3 send_template-scan.py).
-
Скрипт попросит вас ввести наименование теста в DT Например: 192.168.52.131 или test и указать имя файла с результатом - {NAME}.
-
Результатом выполнения будет создание теста в DT с находками.
Если вы укажите наименования теста в DT, который уже существует будет осуществлен реимпорт скана в тот же тест.
Port Scan
-
Что бы запустить сканирование, запускаем скрипт portscan.py ( python3 portscan.py )
-
Скрипт попросит ввести сканируемые хосты например: 127.0.0.1 или 192.168.52.131 192.168.52.132, обратите вниманеи, что хосты указываются через пробел. Так же можно указать подсеть целиком: 192.168.52.0/24
-
Далее нужно указать наименование файла {NAME} в который будут сохраняться результаты сканированя (в название не должно быть спецсимволов)
-
Запустится сканирование, на экран будет выведен примерный прогресс выполнения

-
Что бы приостановить скан запускаем скрипт pause_portscan.py ( python3 pause_portscan.py ). Нужно указать ID скана.
ID можно узнать загляну в файл pid (cat pid)
- Что бы возобновить скан запускаем resume_portscan.py ( python3 resume_portscan.py )
Для запуска скриптов приостановки и возобновления сканирования нужно открывать отдельное окно терминала
- По окончанию сканирования вы увидите надпись Сканированое завершенно, а так же в директории /LVM/PortScan появится файл с результатом сканированя {NAME}.xml

-
Что бы отправить результаты в DT нужно запустить send_port-scan.py (python3 send_port-scan.py).
-
Скрипт попросит вас ввести наименование теста в DT Например: 192.168.52.131 или test и указать имя файла с результатом - {NAME}.

- Результатом выполнения будет создание теста в DT с находками.


Если вы укажите наименования теста в DT, который уже существует будет осуществлен реимпорт скана в тот же тест.