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 с ошибкой