Экспорт логов безопасности во внешние системы

Интеграция с внешними системами мониторинга безопасности.

Введение

Для интеграции с SIEM в кластере должен быть включён Модуль локального сбора логов (Vector, shturval-log-collector). Перенаправление логов настраивается через ShturvalServicePatch, который применяется к спецификации сервиса shturval-log-collector; общий порядок работы с custom values описан в разделе Как управлять CustomValues сервисов.

Vector использует:

  • sources — источники данных;
  • transforms — преобразование и фильтрацию данных;
  • sinks — получателей, в которые отправляются логи.

Какие логи можно отправлять

В customvalues.shturval укажите типы логов, которые нужно перенаправлять. Поддерживаются:

  • auditd — системные логи аудита;
  • journald — логи containerd, kubelet, shturvald;
  • k8s_audit — логи аудита API Kubernetes;
  • k8s_events — события Kubernetes;
  • k8s_logs — логи контейнеров.

В блоке shturval должны быть перечислены все типы логов, для которых требуется перенаправление. Для каждого типа логов задайте получателей в sinks. Если требуется изменить записи перед отправкой, настройте transforms.


Общий порядок настройки

  1. Подготовьте ShturvalServicePatch для shturval-log-collector.
  2. В customvalues.shturval укажите типы логов, transforms при необходимости и sinks с параметрами подключения.
  3. Загрузите манифест в кластере через импорт манифестов.
  4. Дождитесь применения изменений.

Отправка в SIEM через socket

В этом примере в SIEM отправляются k8s_audit, journald и k8s_logs. Чтобы изменить перечень отправляемых логов, удалите из блока shturval ненужный блок с типом логов.

apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-log-collector
  customvalues:
    shturval:
      k8s_audit:
        enable: true
        sinks:
          siem:
            type: socket
            inputs:
              - critical_level
            address: "<ваше значение параметра>"
            mode: <ваше значение параметра>
            encoding:
              codec: json
      journald:
        sinks:
          siem:
            type: socket
            inputs:
              - critical_level
            address: "<ваше значение параметра>"
            mode: <ваше значение параметра>
            encoding:
              codec: json
      k8s_logs:
        transforms:
          filter_backend:
            condition: |
              .kubernetes.pod_namespace == "shturval-backend" &&
              (
                (.kubernetes.container_name == "opa" && starts_with(string!(.kubernetes.pod_name), "shturval-backend-")) ||
                (.kubernetes.container_name == "authn" && starts_with(string!(.kubernetes.pod_name), "authn-"))
              )              
            inputs:
              - post_transforms_system_namespaces
            type: filter
        sinks:
          siem:
            type: socket
            inputs:
              - filter_backend
            address: "<ваше значение параметра>"
            mode: <ваше значение параметра>
            encoding:
              codec: json
Параметр Описание Тип данных Пример
metadata.name Имя ShturvalServicePatch string shturval-log-collector-siem
address Сокет SIEM: IP-адрес и порт string 10.11.12.13:514
mode Протокол подключения string udp

Vector поддерживает подтверждение доставки данных. При некорректной доставке выполняется повторная отправка, что позволяет снизить влияние особенностей UDP-протокола.


Загрузка манифеста

Загрузите подготовленный ShturvalServicePatch в кластере через импорт манифестов.

Скриншот: импорт ShturvalServicePatch для SIEM

Импорт ShturvalServicePatch для SIEM

Скриншот: импорт ShturvalServicePatch для перенаправления логов

Импорт ShturvalServicePatch для перенаправления логов

Скриншот: импорт ShturvalServicePatch для syslog

Импорт ShturvalServicePatch для syslog

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.


Проверка применения

Чтобы проверить, что ShturvalServicePatch применён:

  1. В кластере откройте раздел Сервисы и репозитории.
  2. Перейдите на страницу Установленные сервисы.
  3. Найдите Модуль локального сбора логов (shturval-log-collector) и откройте управление сервисом.
  4. Проверьте вкладку Сервис: после применения патча статус должен обновиться до Patched.
  5. Проверьте вкладку Примененные ShturvalServicePatch: в списке должен отображаться загруженный ShturvalServicePatch.
Скриншоты: применённый ShturvalServicePatch

Статус Patched

Примененные ShturvalServicePatch


См. также