Завтра в 15:00 пройдёт вебинар по API MaxPatrol VM. Зарегался, буду смотреть. Я так-то базово умею пользоваться, даже пост по выгрузке данных по PDQL-запросу делал. Но наверняка коллеги расскажут что-нибудь новое и интересное. 🙂🍿
Архив метки: API
Экспорт данных из MaxPatrol VM через API по PDQL-запросу
Экспорт данных из MaxPatrol VM через API по PDQL-запросу. К завтрашнему выступлению выкладываю небольшой мануал и пример скрипта.
1. Для работы с API вам понадобится логин и пароль пользователя, а также параметр ClientSecret, который лежит на сервере в /var/lib/deployer/role_instances/Core/params.yaml
2. Делаем запрос к mpvm_url + ':3334/connect/token', получаем токен, который подставляем в хидер authorization в виде 'Bearer ' + token. ⚠️ Получение токена у идёт по порту 3334, а дальнейшая работа с API по порту 443!
3. Делаем запрос к assets_grid с PDQL-запросом, получаем pdql_token. Затем с этим токеном делаем запросы к assets_grid/data увеличивая offset. Упёрлись в лимит 50000 результатов? Добавьте "| limit(0)" в конец PDQL-запроса.
🧠 Отлаживать PDQL-запросы удобнее в web-gui и затем смотреть какие запросы браузер шлёт, т.к. используется тот же API.
📄 Пример python-скрипта для экcпорта всех трендовых уязвимостей.
Изменения в источнике данных NVD для Vulristics
Изменения в источнике данных NVD для Vulristics. В NVD стали гораздо менее толерантно подходить к использованию своего API. После 5 последовательных запросов начинает отдаваться такое:
Это аффектило, в том числе и мой скрипт в Vulristics, который запрашивает данные из NVD. 😐
Согласно документации:
Публичный rate limit (без ключа API) составляет 5 запросов в скользящем 30-секундном окне; rate limit с ключом API составляет 50 запросов в скользящем 30-секундном окне.
Поэтому, если вы используете NVD API, ставьте sleep-ы. 🤷♂️
✅ Для Vulristics сделал поддержку аутентификации по ключу NVD и sleep-ы в 0.6 секунд при использовании ключа и 6 секунды без использования ключа.
Для получения ключа NVD API нужно указать организацию, тип организации и email в форме. Через несколько секунд на email придёт одноразовая ссылка, по которой отдаётся ключ.
VulnsIO добавили гибкую работу с API-токенами в веб-интерфейсе
VulnsIO добавили гибкую работу с API-токенами в веб-интерфейсе. 👍 Поправил свой пост про экспорт уязвимостей из VulnsIO и скрипт.
Также на прошлой неделе разобрался как экспортировать уязвимости из on-prem инсталляции VulnsIO через API
Также на прошлой неделе разобрался как экспортировать уязвимости из on-prem инсталляции VulnsIO через API. Описания RestAPI в паблике пока нет, т.к. оно сейчас в активной разработке. Запрашивайте через поддержку, скинут очень качественно описанный swagger-файл. 👍 Экспортировать уязвимости просто:
1. API доступен по 443 порту, где и web-интерфейс - удобно. upd 01.09. Теперь ключ выпускается в веб-интерфейсе. Прописываем ключ в x-api-key хидер.
2. Забираем список всех активов. Одним запросом без пагинации.
3. Для каждого актива можно получить список аудитов (сканов). Получаем последний скан через .
4. Разбираем ссылки на CVE в vulnerableObjects.
📄 Выкладываю python-скрипт, в котором формирую дикт, где для каждого хостнейма хранится список cve-шек и дата сканирования.
В общем, хорошая интуитивная API-шка. 👍 Накидал скрипт очень быстро и без затыков.
На неделе разобрался как экспортировать уязвимости из RedCheck через API
На неделе разобрался как экспортировать уязвимости из RedCheck через API. Всё достаточно просто. Описание API есть в паблике, вроде оно вполне себе RESTful. Также у API сервера есть встроенный swagger. Порядок действий для экспорта уязвимостей следующий:
1. По логину-паролю пользователя RedCheck получаем токен, который нужно прописывать в заголовки запросов для аутентификации.
2. Забираем все хосты, заведённые в RedCheck.
3. Для каждого хоста через специальный метод получаем уязвимости из последнего скана. Обратите внимание, что обязательно нужно указать тип скана (для аудита уязвимостей Type=5).
4. Информация по уязвимостям хранится в структуре "ovalDefinitions", но XML парсить не придётся, т.к. всё уже удобно разложено в JSON-е. 😊 CVEшки забираем из references.
📄 Выкладываю python-скрипт, в котором формирую дикт, где для каждого хостнейма хранится список cve-шек и дата сканирования.
В общем, нормальная APIшка, жить можно. 🙂👍