Skip to main content

Общие сведения о компоненте 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-образа необходимо выполнить следующую последовательность действий:

  1. В клиенте vSphere Client или vSphere Web Client выберите «Файл» > «Развернуть шаблон OVF».
  2. На страницах развертывания шаблона OVF введите данные для развертывания соединителя:
    1. На странице «Источник» необходимо перейти к расположению пакета OVA или ввести допустимый URL-адрес.
    2. На странице «Сведения о шаблоне OVA» необходимо убедиться, что выбрана правильная версия.
    3. На странице «Лицензия» необходимо ознакомиться с условиями лицензионного соглашения и нажать кнопку «Принимаю».
    4. На странице «Имя и расположение» следует ввести имя виртуального устройства. Имя должно быть уникальным в пределах папки иерархии и содержать не более 80 символов. Имена следует вводить с учетом регистра. После ввода имени необходимо указать расположение для виртуального устройства.
    5. На странице «Узел или кластер» нужно указать узел или кластер, чтобы запустить развернутый шаблон, после чего на странице «Пул ресурсов» нужно указать пул ресурсов.
    6. На странице «Хранилище» нужно указать расположение, в котором будут храниться файлы виртуальной машины.
    7. На странице «Формат диска» нужно указать формат диска для файлов. Для производственных сред следует использовать формат «толстой» подготовки. Для оценки и тестирования используйте формат «тонкой» подготовки.
    8. На странице «Сопоставление сетей» нужно сопоставить сети в производственной среде с сетями в шаблоне OVF.
    9. На странице «Свойства» необходимо выполнить следующую последовательность действий:
      • В поле «Часовой пояс» выберите правильный часовой пояс.
      • Флаг «Программа улучшения качества программного обеспечения» установлен по умолчанию. В рамках этой программы 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, который уже существует будет осуществлен реимпорт скана в тот же тест.