README.md

Назначение

Приложение позволяет направить произвольный PDQL-запрос по API в MaxPatrol VM и получить соответствующий ответ, включающий в себя результаты выполнения PDQL-запроса.

Использование

  1. Обязательно указывайте путь до конфигурационного файла;
  2. В случае отсутствия пути до файла с PDQL-запросом, необходимо указать параметр query;
  3. При выводе результата в файл - укажите путь до файла сохранения результата.

Файл конфигурации

  • host - Имя сервера MaxPatrol VM;
  • username - Логин учетной записи пользователя PT MC;
  • password - Пароль учетной записи;
  • client_id - Идентификатор приложения. Например, mpx для MaxPatrol 10, ptkb для Knowledge Base, idmgr для Management and Configuration;
  • client_secret - Ключ доступа к приложению;
  • grant_type - Тип разрешений на аутентификацию, в приложении выставлено по умолчанию password;
  • response_type - Тип ответа, в приложении выставлено по умолчанию code id_token;
  • scope - Права доступа по токену, в приложении выставлено по умолчанию authorization offline_access mpx.api.

    Настройки журналирования

  • file - Путь к файлу для записи логов (событий), в приложении выставлено по умолчанию /var/log/mpvm-api-example.log
  • level - Уровень логгирования, в приложении выставлено по умолчанию debug; возможные варианты: error, warn, info, debug.

PDQL-запросы

Для примера в корневом каталоге присутствует файл pdql.txt с запросом, позволяющим получить список подсетей на осонвании таблиц маршрутизации вашего сетевого оборудования.

select(NetworkDeviceHost.RoutingTables.Routes.Destination.NetworkID as NetID, NetworkDeviceHost.RoutingTables.Routes.Destination.Prefix as NetPrefix) | filter(NetID in 10.0.0.0/8 and NetID != 10.31.0.0/16 and NetPrefix not in [0,8,32]) | sort(NetID ASC) | unique()

Чтобы получить список уязвимостей ОС в вашей инфраструктуре, вы можете вписать в файл pdql.txt соответствующий запрос, как бы вы выполняли его в обычном web-интерфейсе MaxPatrol VM.

select(@Host, Host.OsName, Host.OsVersion, Host.@NodeVulners) | filter(Host.@NodeVulners)

Параметры командной строки

  • -c --config - путь до конфигурационного файла (обязательно);
  • --query-file - путь до файла с pdql-запросом (необязательно, если указан параметр query);
  • -q --query - pdql-запрос (необязательно, если указан параметр query-file);
  • -o --output - путь до файла для сохранения результата (необязательно);
  • -g --group - идентификатор группы MP VM (необязательно);
  • -l --limit - максимальное количество записей для отображения (необязательно), применимо только к формату вывода json;
  • -f --format - формат результата (необязательно), возможные значения: csv, json.

Примеры запуска

Запуск с указанием PDQL-запроса в файле, вывода в файл output.

> app -c ./assets/config.yaml --query-file ./pdql.txt -o ./output

Запуск с указанием PDQL-запроса в параметре запуска (в командной строке), вывода в файл в формате json.

> app -c ./config.yaml -q "select(@Host, Host.OsName, Host.OsVersion, Host.@NodeVulners) | filter(Host.@NodeVulners)" -o ./output.json -f json

Описание

Пример работы с Maxpatrol VM

Конвейеры
0 успешных
0 с ошибкой