Skip to main content

Интеграция с Kaspersky MDR

Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.

Предварительные требования

  • На пограничном МСЭ создайте правило доступа к mdr.kaspersky.com по порту TCP/443 (https://mdr.kaspersky.com)
  • В KUMA добавьте пользователя с ролью Администратор, сгенерируйте токен для взаимодействия по API и разрешите доступ к следующим методам API:
    • POST /events
    • POST /incidents/create
    • POST /incidents/comment
    • POST /incidents/close
  • В консоли MDR сгенерируйте токен для доступа к API:
    • Перейдите в Settings -> API
    • Нажмите Add и укажите Connection Name (данное имя будет использоваться, как имя пользователя при создании инцидентов/комментариев/вложений и т.д., так как токен доступа не привязан к конкретному пользователю)
    • Укажите Role, чтобы определить права доступа для токена
    • Укажите Tenant при необходимости
    •  

      Если для создаваемых в консоли MDR инцидентов в поле "Тенант" отсутствует значение, добавьте значение "Корень без тенанта", чтобы скрипт при подключении обнаружил данные инциденты

    •  

      image.png

      • Нажмите Generate
      • После завершения процесса генерации будут получены:
        • JWT Token - он же refresh_token, который требуется активировать, чтобы получить новую пару refresh_token и access_token
        • ClientID - ID-клиента для подключения к API (требуется указывать при каждом запросе к API MDR)

image.png

  • Скачайте содержимое репозитория MDR-integrations. В качестве альтернативы можно:
    • Загрузить только папку mdr_integration с помощью сервиса https://download-directory.github.io/
    • Загрузить содержимое репозитория MDR-integrations напрямую на сервер KUMA с помощью git clone:
git clone https://github.com/KUMA-Community/MDR-integrations.git
  • Загрузите актуальную цепочку сертификатов для консоли mdr.kaspersky.com в формате pem. После загрузки файлов выполните объединение сертификатов в один файл mdr.pem (см. скриншот ниже). 

    image.png

    image.png

    Описание интеграции

    Описанная в данной статье интеграция с Kaspersky Managed Detection and Response позволяет автоматически импортировать инциденты из консоли MDR в KUMA.

    Настройка

    • Скопируйте архив MDR-integrations-main.zip на сервер (в случае распределенной инсталяции на сервер Core) и распакуйте его в папку /opt с помощью следующей команды:

       

      unzip MDR-integrations-main.zip -d /opt/
    • Уберите лишнюю вложенность (уровень MDR-integrations-main):
    mv /opt/MDR-integrations-main/mdr_integration /opt/
    rm -rf /opt/MDR-integrations-main
    • Перейдите в папку /opt/mdr_integration/conf и создайте файл config.yml из шаблона sample_config.yaml:
    cp sample_config.yml config.yml
    • Отредактируйте файл config.yml:
      • В секции General settings укажите client_id.
      • В секции Modules settings  -> kuma укажите:
        • api_url (FQDN/IP:порт API-интерфейса KUMA, по умолчанию, 7223)
        • api_token (гененируется в процессе создания учетной записи пользователя KUMA)
        • tenant_id (тенант, в котором будут создаваться инциденты)

    TenantID можно получить из события аудита KUMA.

    • Перейдите в папку /opt/mdr_integration/conf и создайте файлы .refresh_token и .access_token
    touch /opt/mdr_integration/conf/.refresh_token
    touch /opt/mdr_integration/conf/.access_token
    • Добавьте в файл .refresh_token ранее сгенерированный токен для доступа к API MDR.

    После добавления токена в файл .refresh_token проверьте, что в конце файла отсутствует символ новой строки \n , из-за которого попытка аутентификации будет неуспешной. См. команды ниже:

    # проверяем наличие символа новой строки
    wc -l /opt/mdr_integration/conf/.refresh_token
    # если вывод "1 .refresh_token", то удаляем символ
    perl -p -i -e 'chomp if eof' /opt/mdr_integration/conf/.refresh_token
    # проверяем, что символ новой строки успешно удален
    wc -l /opt/mdr_integration/conf/.refresh_token
    # должен быть вывод "0 .refresh_token"
    • Перейдите в папку /opt/mdr_integration/conf и в файле .last_check укажите время, начиная с которого необходимо начать собирать инциденты. Для теста можно указать время до появления последнего инцидента. Формат в милисекундах, то есть должно быть 13 цифр (пример, 1672520400000)
    • Замените существующий файл /opt/mdr_integration/conf/mdr.pem на актуальный (см. этап "Предварительные требования")
    • Запустите скрипт main.py с помощью команды:
      python3 ./main.py

      Если при запуске скрипта появляются сообщения об отсутствии необходимых пакетов - выполните их установку.

      • Если после запуска скрипта в консоли отсутствую ошибки (кроме предупреждений о невалидном сертификате), значит интеграция работает корректно.

      Лог работы скрипта пишется в /opt/mdr_integration/log/app.log

      • Убедитесь, что выполнен импорт инцидентов, созданных в консоли MDR, начиная с момента времени, указанного в файле .last_check

        image.png

      • Остановите выполнение скритпа main.py
      • Запустите скрипт main.py в фоновом режиме с помощью команды:
      nohup python3 /opt/mdr_integration/main.py &
      • Настройте автоматический запуск скрипта после перезагрузки сервера:
      sudo crontab -e
      @reboot sleep 300 && python3 /opt/mdr_integration/main.py & # sleep в 5 минут добавлен, чтобы сервис kuma-core успел стартовать