Skip to main content

Массовое обновление KUMA агентов

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

ДляДанный настройкимеханизм базовогоработает аудитас Clickhouseверсии понадобится:3.4 KUMA, т.к именно в ней добавилась поддержка ключа --accept-eula

С сервера, на котором будем запускать скрипт понадобятся сетевые доступы к серверам по 5985/TCP для запуска команд и 445/TCP для передачи файлов, также права локального администратора на сервере.

За основу берем скрипт

И заполняем в нём ключевые поля, а именно:

# Список серверов
$servers = @("server1.domain.local", "server2.domain.local")

# Задаем переменную версии
$version = "3.4.0.551"

# Локальный путь к файлу, который нужно скопировать
$localFilePath = "C:\Temp\kuma.exe"

# Путь на удаленном сервере, куда будет скопирован файл (если используется нестандартный путь для установки KUMA агента)
$remoteFilePath = "C$\Program Files\Kaspersky Lab\KUMA\kuma.exe"
Принцип работы скрипта:

1. ДляПодключаемся логированияк обычныхсерверу
запросов
2. Проверяем, томесть числели grant,служба create)KUMA включитьна логированиесервере
3. Остановка службы KUMA
4. Копируем обновленный файл kuma.exe в основномдиректорию KUMA
5. Правим файл с лицензионным соглашением (обновляем значение версии в файле
.license-version
/etc/clickhouse-server/config.xml
6.

Добавляем в секцииреестре, loggerв какслужбе минимумKUMA необходимоключ задать--accept-eula

формат
7. information
#########################################
<clickhouse>
    <logger>
        <level>information</level>
#########################################

2. Для логирования подключений, таких как:

    вход пользователя выход пользователя неуспешный вход

    потребуется создать отдельный файл 

    /etc/clickhouse-server/config.d/session_log.xml

     с содержимым:

    <clickhouse>
        <session_log>
            <database>system</database>
            <table>session_log</table>
            <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        </session_log>
    </clickhouse>

    3. ПерезапуститьЗапускаем службу командой systemctl restart clickhouse-server

    В базе system появится новая таблица со следующими колонками:

    image.png

    Создаём пользователя для подключения к БД для KUMA и выдаём ему необходимые права следующим командами:

    ###Создание пользователя для коллектора KUMA
    CREATE USER kuma HOST IP '10.10.10.1/32' IDENTIFIED WITH sha256_password BY 'supersecretpassword';
    
    ####Создание VIEW для вывода нескольких запросов
    CREATE VIEW combined_logs AS
    SELECT event_time,
           user,
           query_kind,
           exception,
           client_hostname,
           client_name,
           http_user_agent,
           type,
           replace(toString(initial_address), '::ffff:', '') AS ipv4_address,
           query
    FROM system.query_log ql
    WHERE match(toString(initial_address), '^::ffff:') 
      AND query_kind IN ('Grant', 'Create', 'Drop')
    
    UNION ALL
    
    SELECT event_time,
           user,
           NULL AS query_kind,  -- Добавляем NULL для отсутствующего столбца `query_kind`
           NULL AS exception,   -- Добавляем NULL для отсутствующего столбца `exception`
           NULL AS client_hostname,  -- Добавляем NULL для отсутствующего столбца `client_hostname`
           NULL AS client_name,      -- Добавляем NULL для отсутствующего столбца `client_name`
           NULL AS http_user_agent,  -- Добавляем NULL для отсутствующего столбца `http_user_agent`
           type,
           replace(toString(client_address), '::ffff:', '') AS ipv4_address,
           NULL AS query  -- Добавляем NULL для отсутствующего столбца `query`
    FROM system.session_log
    WHERE `type` = '0';
    
    ####Назначение прав на VIEW
    GRANT SELECT ON combined_logs TO kuma
    

     

    Настройка инстанса завершена, можно приступать к подключению логов в KUMA.

    агента

    В KUMA необходимо создать коллектор с транспортом sql (плейсхолдер для Clickhouse - ?) и параметрами как на скриншоте:

    image.png

    Создаём нормализатор, мапим колонки БД в нужные нам поля KUMA и получаем лог.