Прием сообщений системного журнала и CEF в Microsoft Sentinel с помощью агента Azure Monitor

В этой статье описывается, как использовать системный журнал с помощью AMA и общего формата событий (CEF) через соединители AMA для быстрого фильтрации и приема сообщений системного журнала, в том числе с компьютеров Linux и устройств безопасности сети и (модуль). Дополнительные сведения об этих соединителях данных см. в статье Syslog с помощью AMA и общего формата событий (CEF) через соединители AMA для Microsoft Sentinel.

Необходимые компоненты

Перед началом работы необходимо настроить ресурсы и соответствующие разрешения, описанные в этом разделе.

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

  • Необходимо включить соответствующее решение Microsoft Sentinel — системный журнал и (или) общий формат событий. Дополнительные сведения см. в статье "Обнаружение и управление содержимым Microsoft Sentinel вне поля".

  • Ваша учетная запись Azure должна иметь следующие роли управления доступом на основе ролей Azure (Azure RBAC):

    Встроенная роль Область Причина
    - Участник виртуальной машины
    - Компьютер с Подключение Azure
       Ресурс Администратор istrator
  • Виртуальные машины
  • Масштабируемые наборы виртуальных машин
  • Серверы с поддержкой Azure Arc
  • Развертывание агента
    Любая роль, которая включает действие
    Microsoft.Resources/deployments/*
  • Подписка
  • Группа ресурсов
  • Существующее правило сбора данных
  • Развертывание шаблонов Azure Resource Manager
    Monitoring Contributor (Участник мониторинга)
  • Подписка
  • Группа ресурсов
  • Существующее правило сбора данных
  • Создание или изменение правил сбора данных

Предварительные требования для пересылки журналов

Если вы собираете сообщения из средства пересылки журналов, применяются следующие дополнительные предварительные требования:

  • Для сбора журналов требуется назначенная виртуальная машина Linux ( сервер пересылки журналов).

  • Если средство пересылки журналов не является виртуальной машиной Azure, на ней должен быть установлен агент azure Arc Подключение ed Machine.

  • Виртуальная машина пересылки журналов Linux должна быть установлена на Python 2.7 или 3. Для проверки используйте команду python --version или python3 --version. Если вы используете Python 3, убедитесь, что он задан в качестве команды по умолчанию на компьютере или выполните приведенные ниже скрипты с помощью команды Python3 вместо python.

  • Средство пересылки журналов должно включать syslog-ng управляющая программа или rsyslog управляющая программа.

  • Сведения о требованиях к пространству для сервера пересылки журналов см. в справочнике по производительности агента Azure Monitor. Вы также можете просмотреть эту запись блога, включающую проекты для масштабируемого приема.

  • Источники журналов (устройства безопасности и (модуль)) должны быть настроены для отправки сообщений журнала в управляющая программа syslog средства пересылки журналов вместо локальной управляющей программы Системного журнала.

Избегайте дублирования данных

Использование одного и того же средства для сообщений Системного журнала и CEF может привести к дублированию данных между таблицами CommonSecurityLog и Syslog.

Чтобы избежать этого сценария, используйте один из следующих методов:

  • Если исходное устройство включает настройку целевого объекта: на каждом исходном компьютере, который отправляет журналы в средство пересылки журналов в формате CEF, измените файл конфигурации системного журнала, чтобы удалить средства, используемые для отправки сообщений CEF. Таким образом, объекты, отправленные в CEF, также не будут отправлены в Системном журнале. Убедитесь, что каждый DCR, настроенный в следующих шагах, использует соответствующий объект для CEF или Syslog соответственно.

    Чтобы просмотреть пример того, как упорядочить DCR для приема сообщений syslog и CEF из одного агента, перейдите к потокам Syslog и CEF в одном DCR далее в этой статье.

  • Если изменение объекта для исходного (модуль) неприменимо: используйте преобразование времени приема для фильтрации сообщений CEF из потока системного журнала, чтобы избежать дублирования, как показано в приведенном ниже примере запроса. Данные будут отправляться дважды с компьютера сборщика в рабочую область.

    source |
    where ProcessName !contains "CEF"
    

Настройка безопасности компьютера

Настраивать безопасность машины необходимо в соответствии с политикой безопасности организации. Например, вы можете настроить сеть в соответствии с корпоративной политикой безопасности сети, изменив порты и протоколы в управляющей программе согласно своим требованиям. Чтобы улучшить конфигурацию безопасности компьютера, защитить виртуальную машину в Azure или ознакомьтесь с этими рекомендациями по обеспечению безопасности сети.

Если устройства отправляют журналы Syslog и CEF через TLS (например, сервер пересылки журналов находится в облаке), необходимо настроить управляющая программа Системного журнала (rsyslog или syslog-ng) для обмена данными в TLS:

Настройка соединителей данных

Выберите соответствующую вкладку, чтобы просмотреть инструкции для системного журнала или CEF.

Настройка системного журнала с помощью соединителя AMA

Процесс установки системного журнала через соединитель AMA состоит из двух частей:

  1. Установите агент Azure Monitor и создайте правило сбора данных (DCR).

  2. Если вы собираете журналы с других компьютеров с помощью средства пересылки журналов, запустите сценарий установки в средстве пересылки журналов, чтобы настроить управляющая программа Syslog для прослушивания сообщений с других компьютеров и открыть необходимые локальные порты.

Установите AMA и создайте правило сбора данных (DCR)

Этот шаг можно выполнить одним из двух способов.

  • Разверните и настройте системный журнал с помощью AMA или общего формата событий (CEF) через соединитель данных AMA на портале Microsoft Sentinel. С помощью этой установки вы можете создавать, управлять и удалять контроллеры домена для каждой рабочей области. AMA будет автоматически установлен на виртуальных машинах, которые выбраны в конфигурации соединителя.
    —ИЛИ—
  • Отправьте HTTP-запросы в API приема журналов. С помощью этой установки можно создавать, управлять и удалять контроллеры домена. Этот параметр является более гибким, чем портал. Например, с помощью API можно фильтровать по определенным уровням журналов, где с пользовательским интерфейсом можно выбрать только минимальный уровень журнала. Недостатком является то, что перед созданием DCR необходимо вручную установить агент Azure Monitor в средство пересылки журналов.

Выберите соответствующую вкладку ниже, чтобы просмотреть инструкции по каждому способу.

Откройте страницу соединителя и запустите мастер DCR

  1. Войдите на портал Azure и перейдите к службе Microsoft Sentinel.

  2. Выбор соединителей данных в меню навигации

  3. Введите системный журнал в поле поиска . В результатах выберите системный журнал через соединитель AMA .

  4. На панели сведений выберите страницу "Открыть соединитель".

  5. В области конфигурации выберите пункт +Создать правило сбора данных.

    Снимок экрана: страница CEF через соединитель AMA.

  6. На вкладке "Базовый " :

    • Введите имя DCR.
    • Выберите свою подписку.
    • Выберите группу ресурсов, в которой нужно найти DCR.

    Снимок экрана: сведения о DCR на вкладке

  7. Выберите Далее: Ресурс >.

Определение ресурсов (виртуальные машины)

На вкладке "Ресурсы" выберите компьютеры, на которых требуется установить AMA, в этом случае компьютер пересылки журналов. (Если средство пересылки журналов не отображается в списке, возможно, не установлен агент azure Подключение machine.)

  1. Используйте доступные фильтры или поле поиска, чтобы найти виртуальную машину пересылки журналов. Вы можете развернуть подписку в списке, чтобы просмотреть ее группы ресурсов и группу ресурсов, чтобы просмотреть ее виртуальные машины.

  2. Выберите виртуальную машину пересылки журналов, на которую вы хотите установить AMA. (Поле проверка появится рядом с именем виртуальной машины при наведении на него указателя мыши.)

    Снимок экрана: выбор ресурсов при настройке DCR.

  3. Просмотрите изменения и нажмите кнопку "Далее: Собрать >".

Выбор объектов и серьезности и создание DCR

Примечание.

Использование одного и того же объекта для сообщений Системного журнала и CEF может привести к дублированию данных. Узнайте, как избежать дублирования данных.

  1. На вкладке "Сбор" выберите минимальный уровень журнала для каждого объекта. При выборе уровня журнала Microsoft Sentinel собирает журналы для выбранного уровня и других уровней с более высоким уровнем серьезности. Например, если выбрать LOG_ERR, Microsoft Sentinel собирает журналы для уровней LOG_ERR, LOG_CRIT, LOG_ALERT и LOG_EMERG.

    Снимок экрана: выбор уровней журнала при настройке DCR.

  2. Просмотрите выбранные варианты и нажмите кнопку "Далее: просмотр и создание".

  3. На вкладке "Рецензирование" и "Создать " нажмите кнопку "Создать".

    Снимок экрана: просмотр конфигурации DCR и его создание.

  • Соединитель установит агент Azure Monitor на компьютерах, выбранных при создании DCR.

  • Вы увидите уведомления из портал Azure при создании DCR и установке агента.

  • Выберите "Обновить" на странице соединителя, чтобы увидеть DCR, отображаемый в списке.

Примеры разделов объектов и уровней журналов

Просмотрите эти примеры параметров объектов и уровней журналов. Поле name содержит имя фильтра.

Для приема сообщений CEF значение "streams" должно быть "Microsoft-CommonSecurityLog" вместо "Microsoft-Syslog".

В этом примере собираются события из cronобъектов , local0daemonlocal3 и uucp объектов с AlertWarningErrorCriticalEmergency уровнями журнала , а также уровнями журналов:

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Потоки системного журнала и CEF в одном DCR

В этом примере показано, как собирать сообщения системного журнала и CEF в одном DCR.

Дополнительные сведения о приеме сообщений Syslog и CEF с помощью одного агента и DCR см . в статье об устранении дублирования данных.

DCR собирает сообщения о событиях CEF для:

  • И authpriv объекты с Infoуровнями журнала , WarningEmergencyNoticeErrorCriticalAlertmark
  • Объект daemon с уровнями журналов, а ErrorEmergencyAlertCriticalтакже уровнями журнала Warning

Он собирает сообщения о событиях системного журнала для:

  • kern, local0local5и news объекты с CriticalAlertуровнями журнала и Emergency
  • Объекты mail и uucp объекты с Emergency уровнем журнала
    "dataSources": {
      "syslog": [
        {
          "name": "CEFStream1",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "authpriv", 
            "mark"
          ],
          "logLevels": [
            "Info",
            "Notice", 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "CEFStream2",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "daemon"
          ],
          "logLevels": [ 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream3",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "kern",
            "local0",
            "local5", 
            "news"
          ],
          "logLevels": [ 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream4",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "mail",
            "uucp"
          ],
          "logLevels": [ 
            "Emergency"
          ]
        }
      ]
    }

Запуск скрипта "установка"

Скрипт "install" не устанавливает ничего, но настраивает управляющая программа Syslog в сервере пересылки журналов правильно для сбора журналов.

  1. На странице соединителя скопируйте командную строку, которая отображается в разделе Выполнить следующую команду, чтобы установить и применить сборщик CEF: выбрав значок копирования рядом с ним.

    Снимок экрана: командная строка на странице соединителя.

    Вы также можете скопировать его здесь:

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. Войдите на компьютер пересылки журналов, где вы только что установили AMA.

  3. Вставьте команду, скопированную на последнем шаге, чтобы запустить скрипт установки.
    Скрипт настраивает rsyslog управляющая syslog-ng программа для использования требуемого протокола и перезапускает управляющая программа. Скрипт открывает порт 514 для прослушивания входящих сообщений в протоколах UDP и TCP. Чтобы изменить этот параметр, обратитесь к файлу конфигурации управляющей программы Системного журнала в соответствии с типом управляющей программы, запущенным на компьютере:

    • rsyslog: /etc/rsyslog.conf;
    • syslog-ng: /etc/syslog-ng/syslog-ng.conf.

    Примечание.

    Чтобы избежать сценариев полного диска, в которых агент не может функционировать, рекомендуется установить или rsyslog настроить syslog-ng конфигурацию, чтобы не хранить ненужные журналы. Сценарий полного диска нарушает функцию установленной AMA. Дополнительные сведения о RSyslog или Syslog-ng.

Тестирование соединителя

  1. Чтобы проверить, запущена ли управляющая программа системного журнала на порту UDP и прослушивается ли AMA, выполните следующую команду:

    netstat -lnptv
    

    Вы увидите rsyslog управляющую программу, syslog-ng прослушивающую порт 514.

  2. Чтобы записать сообщения, отправленные из средства ведения журнала или подключенного устройства, выполните следующую команду в фоновом режиме:

    tcpdump -i any port 514 -A -vv &
    
  3. После завершения проверки рекомендуется остановить tcpdump: введите fg и нажмите клавиши CTRL+C.

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

    • Используйте служебную программу netcat. В этом примере служебная программа считывает данные, размещенные по команде echo , с отключенным параметром новой строки. Затем программа записывает данные в порт 514 UDP в localhost без времени ожидания. Чтобы выполнить служебную программу netcat, может потребоваться установить дополнительный пакет.

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • Используйте средство ведения журнала. В этом примере сообщение записывается в local 4 объект на уровне Warningсерьезности, в порт 514на локальном узле в формате RFC CEF. --rfc3164 Флаги -t используются для соответствия ожидаемому формату RFC.

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. Чтобы убедиться, что соединитель установлен правильно, запустите скрипт устранения неполадок с помощью одной из следующих команд:

    • Для журналов CEF выполните следующую команду:

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • Для журналов адаптивного устройства безопасности Cisco (ASA) выполните следующую команду:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • Для журналов Cisco Firepower Threat Defense (FTD) выполните следующую команду:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd