Гарда WAF: настройка источника

Гарда WAF — это комплексное решение класса WAAP (Web Application and API Protection), которое включает расширенные инструменты для защиты веб-приложений и API от атак и уязвимостей, выявляет аномалии и угрозы нулевого дня.

Данное руководство описывает процесс настройки сбора и отправки событий программного комплекса Гарда WAF в R-Vision SIEM.

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

  • Сетевой доступ к БД Гарда WAF.

  • Учетная запись в СУБД с правами на чтение БД Гарда WAF (Сбор событий из БД).

Настройка Гарда WAF

Настройки СУБД PostgreSQL

События Гарда WAF записываются в базу данных waf СУБД PostgreSQL. Чтобы подключиться к базе данных (далее — БД) для сбора логов, используйте специально созданную сервисную учетную запись (далее — УЗ).

Создание учетной записи в СУБД PostgreSQL

Чтобы создать сервисную УЗ, подключитесь к СУБД с правами администратора. Для этого выполните следующие действия на сервере с установленной СУБД:

  1. Выполните следующую команду от имени пользователя postgres:

    sudo -u postgres psql
  2. Создайте сервисную учетную запись, выполнив следующие команды:

    CREATE USER "gwaf_reader";
    ALTER ROLE gwaf_reader WITH PASSWORD 'passw0rd';
  3. Выдайте права на чтение БД:

    GRANT SELECT ON ALL TABLES IN SCHEMA public TO gwaf_reader;

Настройка в R-Vision SIEM

Для настройки сбора и нормализации событий источника в R-Vision SIEM выполните следующие шаги:

  1. В интерфейсе R-Vision SIEM создайте секрет со строкой подключения. Для этого:

    1. Перейдите в раздел Ресурсы → Секреты.

    2. Нажмите на кнопку Создать (plus).

    3. В раскрывшемся окне создания секрета заполните поля:

      • Название: введите название секрета.

      • Описание (опционально): опишите, для чего будет использоваться секрет.

      • Тип секрета: выберите вариант Строка подключения.

      • Строка подключения: введите строку вида:

        jdbc:postgresql://DBSERVER:5432/waf?user=gwaf_reader&password=passw0rd

        Здесь:

        • DBSERVER — FQDN или IP-адрес сервера СУБД.

        • 5432 — порт подключения.

        garda waf secret

    4. Нажмите на кнопку Создать.

  2. В интерфейсе R-Vision SIEM создайте новый конвейер в коллекторе.

  3. Добавьте на конвейер элемент Точка входа для событий аудита со следующими параметрами:

    • Название: введите название точки входа.

    • Тип точки входа: выберите вариант Database.

    • Драйвер базы данных: выберите вариант PostgreSQL.

    • Адрес подключения: выберите секрет, созданный ранее.

    • SQL-запрос: введите запрос вида:

      SELECT
          ilr.id AS ilr_id,
          ilr.chain_id,
          ilr.accuracy,
          ilr.intervention_hostname,
          ilr.matched_data,
          ilr.maturity,
          ilr.message,
          ilr.passive,
          ilr.ref,
          ilr.rev,
          ilr.rule_id,
          ilr.severity,
          ilr.uri AS ilr_uri,
          ilr.ver,
          ilt.tags,
          icr.cluster_id,
          icr.cluster_name,
          icr.instance_id,
          icr.timestamp as timestamp,
          icr.worker_process_id,
          icr.worker_thread_id,
          icr.client_address,
          icr.hostname AS icr_hostname,
          icr.request_id,
          icr.request_id_hash,
          icr.server_id,
          icr.is_blocked,
          icr.status_code,
          icr.max_severity,
          icr.min_severity,
          icr.user_agent,
          icr.is_passive,
          rlr.uri AS request_uri,
          rlr.method as method,
          inet_server_addr() AS dvc,
          'Garda WAF' as product
      FROM public.intervention_log_record ilr
      LEFT JOIN
          (
              SELECT
              log_id,
              string_agg(name, ', ') AS tags
              FROM
              public.intervention_log_record_tag
              GROUP BY
              log_id
          ) ilt ON ilr.id = ilt.log_id
      JOIN
          public.interventions_chain_record icr ON ilr.chain_id = icr.id
      LEFT JOIN
          public.request_log_record rlr ON icr.request_id = rlr.request_id
      WHERE icr.timestamp > CAST(? AS BIGINT)
      ORDER BY
      icr.timestamp;
    • Поле идентификатора: введите ключ timestamp со значением 1742380463.

    • Интервал запроса, секунд: введите значение 20.

  4. Добавьте на конвейер вторую точку входа для событий безопасности со следующими параметрами:

    • Название: введите название точки входа.

    • Тип точки входа: выберите вариант Database.

    • Драйвер базы данных: выберите вариант PostgreSQL.

    • Адрес подключения: выберите секрет, созданный ранее.

    • SQL-запрос: введите запрос вида:

      SELECT
          ae.event_id as event_id,
          ae.cluster_id,
          ae.server_index,
          ae.timestamp,
          ae.username,
          ae.event_type,
          ae.entity_type,
          ae.event,
          ae.service_name,
          ae.cluster_name,
          ae.ip_address,
          scah.allowed_hostnames as server_name,
      	inet_server_addr() AS dvc,
      	'Garda WAF' as product,
      	'Audit' as type_event
      FROM public.audit_event ae
      LEFT JOIN public.server_configuration_allowed_hostnames scah
          ON ae.server_index = scah.server_configuration_id
      WHERE ae.event_id > CAST(? AS BIGINT)
      ORDER BY ae.event_id ASC LIMIT 10000;
    • Поле идентификатора: введите ключ event_id со значением 1.

    • Интервал запроса, секунд: введите значение 60.

  5. Добавьте на конвейер элемент Нормализатор с правилом Garda WAF (идентификатор правила: RV-N-223).

  6. Соедините нормализатор с точками входа.

  7. Добавьте на конвейер элемент Конечная точка типа Хранилище событий.

  8. Соедините конечную точку с нормализатором.

  9. Установите конфигурацию конвейера.

Пример конфигурации конвейера:

garda waf pipeline

После настройки передачи событий, если настройка выполнена корректно, в хранилище начнут поступать события Гарда WAF из PostgreSQL.

Найти события Гарда WAF в хранилище можно по следующему фильтру:

device_product = "waf"

pt waf events search

Была ли полезна эта страница?

Обратная связь