Библиотека скриптов
Куда я попал?
Раздел предназначен для различных скриптов цель которых обогатить информацией сервис или выполнить действия во внешних системах.
KUMA
Данный скрипт и настройки позволяют отправить API запрос из KUMA в SECURITM при сработке правила корреляции, например при возникновении алерта.
Для импорта данных потребуется выполнить:
Для импорта данных потребуется выполнить:
- Определить список импортируемых данных из KUMA;
- При необходимости создать поля и добавить их в соответствующий тип актива;
- Сформировать шаблон Импорт Kuma;
- Сформировать токен в Профиль команды - API токены;
- Настроить KUMA для запуска скрипта.
Пример скрипта:
#!/bin/bash
# === КОНСТАНТЫ ===
# Эти значения определяются один раз и используются при отправке запроса.
# Токен авторизации (Bearer Token)
# Используется для аутентификации в API SecurITM.
# Должен быть действительным токеном с правами на импорт активов.
TOKEN='укажите Ваш токен'
# Название шаблона импорта в сервисе SECURITM
# Данный шаблон определяет, как будут интерпретироваться переданные поля.
# В данном случае используется шаблон c названием "Импорт Kuma" который мы создали заранее.
TEMPLATE='Импорт Kuma'
# API-сервиса SECURITM
URI='https://веб адрес вашего сервера securitm/api/v1/assets/import'
# Объявляем массив для хранения полей актива.
# Это позволяет нам работать с параметрами в формате "ключ -> значение".
declare -A ARGS
# Зададим аргументы для командной строки
# Поддерживается два формата:
# 1. --ключ значение (например: --ip 192.168.1.1)
# 2. ключ:значение (например: name:"Сервер Kuma")
# В логике SECURITM ключ это внешнее поле в шаблоне импорта, значение - импортируемые данные
while [[ $# -gt 0 ]]; do
case $1 in
# Если аргумент начинается с "--", считаем его флагом
--*)
# Проверяем, что следующий аргумент существует и не является новым флагом
if [[ -n "$2" && ! "$2" =~ ^-- ]]; then
if [[ "$2" =~ ^[0-9]+$ ]]; then
ARGS["${1#--}"]="$2"
else
# Иначе оборачиваем значение в двойные кавычки (для JSON)
ARGS["${1#--}"]=\""$2"\"
fi
else
echo "Предупреждение: Указан флаг '$1', но отсутствует значение."
fi
shift # Пропускаем текущий флаг
shift # Пропускаем значение после флага
;;
# Обработка простых аргументов в формате ключ:значение
*)
# Разделяем строку по символу ':'
IFS=':' read -r key value <<< "$1"
# Проверяем, что есть и ключ, и значение
if [[ -n "$key" && -n "$value" ]]; then
# Если значение — число, передаём как число (без кавычек в JSON)
if [[ "$value" =~ ^[0-9]+$ ]]; then
ARGS["$key"]="$value"
else
# Строковые значения оборачиваются в кавычки
ARGS["$key"]=\""$value"\"
fi
else
echo "Ошибка: Неверный формат аргумента: '$1'. Ожидается 'ключ:значение' или '--ключ значение'."
exit 1
fi
shift # Переходим к следующему аргументу
;;
esac
done
# Поле шаблона 'template' обязательно для корректной обработки импорта в SECURITM.
ARGS[template]=\"${TEMPLATE}\"
# сформируем тело json запроса
JSON=""
# Перебираем все ключи в массиве ARGS
for KEY in "${!ARGS[@]}"; do
if [[ -n "$JSON" ]]; then
JSON="${JSON},"
fi
# Добавляем пару "ключ":значение
JSON="${JSON}\"${KEY}\":${ARGS[$KEY]}"
done
JSON="{${JSON}}"
if [[ -z "$JSON" || "$JSON" == "{}" ]]; then
echo "Ошибка: Не передано ни одного поля для импорта. JSON пуст."
exit 1
fi
# Отладочная печать JSON
echo "Сформированный JSON: $JSON"
# Используем curl для POST-запроса к API
curl -k -s -X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ${TOKEN}" \
-d "${JSON}" \
"${URI}"
# Пояснение флагов curl:
# -k : игнорировать проверку SSL-сертификата (не рекомендуется в продакшене)
# -s : тихий режим (без прогресс-бара)
# -X POST : метод запроса
# -H : заголовки (тип содержимого и авторизация)
# -d : тело запроса (наш JSON)
# "${URI}" : адрес назначения
Настройки KUMA
Установка скрипта импорта на сервер KUMA.
- Подключиться к серверу KUMA SIEM через SSH
- Поместить скрипт securitm-api.sh в каталог /opt/kaspersky/kuma/correlator/<идентификатор>/scripts/
- Файл скрипта хранится на сервере, где установлен сервис коррелятора
- На данный каталог необходимо установить права chmod -x
Настройка консоли администрирования KUMA.
- Далее переходим в консоль администрирования KUMA (web) – выбираем раздел Ресурсы
- Выбираем блок Правила реагирования
- Нажимаем кнопку Добавить
- Заполняем следующие поля:
- Название - указываем название правила
- Тип – указываем тип действия «Запуск скрипта»
- Время ожидания – устанавливаем время ожидания для выполнения скрипта «0»
- Название скрипта – указываем полное название скрипта с расширением (как указано в каталоге) securitm-api.sh
- Аргументы скрипта – Указываем аргументы, с которыми будет работать скрипт, например: -- name {{.CorrelationRuleName}} -- IP {{.SourceAddress}}
- Нажимаем кнопку Сохранить.
В логике SECURITM Аргументы скрипта-- nameи-- IP это внешнее поле в шаблоне импорта, значение переменной обрамленной в фигурные скобки {{.}} - импортируемые данные.
- О сервисе
- Управление активами
- Управление рисками
- Угрозы
- Каталоги
- Уязвимости
- Соответствие требованиям
- Управление защитными мерами
- Управление техническими уязвимостями
- Области
- Метрики
- Опросы и Заявки
- Управление задачами
- Автоматизация процессов (RPA)
- Профиль команды
- Глобальные настройки
- Интеграции
- API
- Установка SECURITM
- Мой профиль
- Библиотека скриптов
- О компании
- Правила технической поддержки
- Оферта
- EULA
- Согласие на обработку персональных данных
- Согласие на получение рассылок
- Политика обработки ПДн
- Политика cookie
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для вас с целью персонализации сервисов и предложений. Вы может прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом, вы даёте согласие на использование ваших cookie-файлов и соглашаетесь с Политикой обработки персональных данных.