Прием сообщений системного журнала и CEF в Microsoft Sentinel с помощью агента Azure Monitor
В этой статье описывается, как использовать системный журнал с помощью AMA и общего формата событий (CEF) через соединители AMA для быстрого фильтрации и приема сообщений системного журнала, в том числе с компьютеров Linux и устройств безопасности сети и (модуль).
Эти соединители устанавливают агент Azure Monitor (AMA) на любом компьютере Linux, с которого требуется собирать сообщения системного журнала и (или) CEF. Этот компьютер может быть источником сообщений, или это может быть средство пересылки, которое собирает сообщения с других компьютеров, таких как сетевые устройства или устройства безопасности и (модуль). Соединитель отправляет инструкции агентов на основе определяемого вами правила сбора данных (DCR ). Контроллеры домена указывают системы для отслеживания и типов журналов или сообщений для сбора, и они определяют фильтры, применяемые к сообщениям перед приемом, для повышения производительности и повышения эффективности запросов и анализа.
- Настройка соединителя
- Дополнительные сведения о соединителе
- Дополнительные сведения о правилах сбора данных
Внимание
28 февраля 2023 года мы внесли изменения в схему таблицы CommonSecurityLog. После этих изменений может потребоваться просмотреть и обновить пользовательские запросы. Дополнительные сведения см. в разделе "Рекомендуемые действия" в этой записи блога. Содержимое вне поля (обнаружения, запросы охоты, книги, синтаксический анализ и т. д.) обновлено Microsoft Sentinel.
Обзор
Системный журнал и CEF — это два распространенных формата для ведения журнала данных с разных устройств и приложений. Они помогают системным администраторам и аналитикам безопасности отслеживать и устранять неполадки сети и выявлять потенциальные угрозы или инциденты.
Что такое Системный журнал?
Системный журнал — это стандартный протокол для отправки и получения сообщений между различными устройствами или приложениями по сети. Изначально она была разработана для систем Unix, но в настоящее время она широко поддерживается различными платформами и поставщиками. Сообщения системного журнала имеют предопределенную структуру, состоящую из приоритета, метки времени, имени узла, имени приложения, идентификатора процесса и текста сообщения. Сообщения системного журнала можно отправлять по протоколу UDP, TCP или TLS в зависимости от конфигурации и требований к безопасности.
Что такое общий формат событий (CEF)?
CEF или Общий формат событий — это нейтральный от поставщика формат для ведения журнала данных с сетевых и (модуль) устройств и (модуль), таких как брандмауэры, маршрутизаторы, решения обнаружения и реагирования, а также системы обнаружения вторжений, а также другие виды систем, таких как веб-серверы. Расширение Системного журнала было разработано специально для решений для управления сведениями о безопасности и событиями (SIEM). Сообщения CEF имеют стандартный заголовок, содержащий такие сведения, как поставщик устройства, продукт устройства, версия устройства, класс событий, серьезность события и идентификатор события. Сообщения CEF также имеют переменное число расширений, которые предоставляют дополнительные сведения о событии, такие как исходные и конечные IP-адреса, имя пользователя, имя файла или действие, выполняемое.
Как Microsoft Sentinel собирает сообщения системного журнала и CEF с помощью агента Azure Monitor
На следующих схемах показана архитектура сбора сообщений Syslog и CEF в Microsoft Sentinel с помощью системного журнала с помощью AMA и общего формата событий (CEF) через соединители AMA .
На этой схеме показаны сообщения системного журнала, собираемые с одной отдельной виртуальной машины Linux, на которой установлен агент Azure Monitor (AMA).
Процесс приема данных с помощью агента Azure Monitor использует следующие компоненты и потоки данных:
Источники журналов: это различные виртуальные машины Linux в вашей среде, которые создают сообщения системного журнала. Эти сообщения собираются локальной управляющей программой системного журнала на TCP или UDP-порте 514 (или другом порту на ваш выбор).
Локальная управляющая программа системного журнала (
rsyslog
либоsyslog-ng
) собирает сообщения журнала на TCP или UDP-порте 514 (или другом порту на ваш выбор). Затем управляющая программа отправляет эти журналы агенту Azure Monitor (см. примечание ниже).Агент Azure Monitor, установленный на каждой виртуальной машине Linux, из которой требуется собирать сообщения системного журнала, настраивая соединитель данных в соответствии с приведенными ниже инструкциями. Агент анализирует журналы и отправляет их в рабочую область Microsoft Sentinel (Log Analytics).
Рабочая область Microsoft Sentinel (Log Analytics): сообщения системного журнала, отправленные здесь, отображаются в таблице Системного журнала, где можно запрашивать журналы и выполнять аналитику для их обнаружения и реагирования на угрозы безопасности.
Примечание.
Агент Azure Monitor поддерживает syslog RFCs 3164 и 5424.
Если вы хотите использовать порт, отличный от 514 для получения сообщений Syslog/CEF, убедитесь, что конфигурация порта в управляющей программе Системного журнала соответствует тому, что приложение создает сообщения.
Управляющая программа Системного журнала отправляет журналы агенту Azure Monitor двумя способами в зависимости от версии AMA:
- AMA версии 1.28.11 и более поздних версий получают журналы на TCP-порте 28330.
- Более ранние версии AMA получают журналы через сокет домена Unix.
Настройка соединителей данных
Настройка системного журнала с помощью соединителя AMA
Процесс установки системного журнала через соединитель AMA состоит из двух частей:
Установите агент Azure Monitor и создайте правило сбора данных (DCR).
Если вы собираете журналы с других компьютеров с помощью средства пересылки журналов, запустите сценарий установки в средстве пересылки журналов, чтобы настроить управляющая программа Syslog для прослушивания сообщений с других компьютеров и открыть необходимые локальные порты.
Необходимые компоненты
Необходимо включить соответствующее решение Microsoft Sentinel — системный журнал и (или) общий формат событий.
У вашей учетной записи Azure должны быть следующие роли и разрешения:
Встроенная роль Область Причина - Участник виртуальной машины
- Компьютер с Подключение 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:
- Шифрование трафика системного журнала с помощью TLS — rsyslog
- Шифрование сообщений журнала с помощью TLS — syslog-ng
Установите AMA и создайте правило сбора данных (DCR)
Этот шаг можно выполнить одним из двух способов.
- Разверните и настройте системный журнал с помощью соединителя данных AMA на портале Microsoft Sentinel. С помощью этой установки вы можете создавать, управлять и удалять контроллеры домена для каждой рабочей области. AMA будет автоматически установлен на виртуальных машинах, которые выбраны в конфигурации соединителя.
—ИЛИ— - Отправьте HTTP-запросы в API приема журналов. С помощью этой установки можно создавать, управлять и удалять контроллеры домена. Этот параметр является более гибким, чем портал. Например, с помощью API можно фильтровать по определенным уровням журналов, где с пользовательским интерфейсом можно выбрать только минимальный уровень журнала. Недостатком является то, что перед созданием DCR необходимо вручную установить агент Azure Monitor в средство пересылки журналов.
Выберите соответствующую вкладку ниже, чтобы просмотреть инструкции по каждому способу.
Откройте страницу соединителя и запустите мастер DCR
Войдите на портал Azure и перейдите к службе Microsoft Sentinel.
Выбор соединителей данных в меню навигации
Введите системный журнал в поле поиска . В результатах выберите системный журнал через соединитель AMA .
На панели сведений выберите страницу "Открыть соединитель".
В области конфигурации выберите пункт +Создать правило сбора данных.
На вкладке "Базовый " :
- Введите имя DCR.
- Выберите свою подписку.
- Выберите группу ресурсов, в которой нужно найти DCR.
Выберите Далее: Ресурс >.
Определение ресурсов (виртуальные машины)
На вкладке "Ресурсы" выберите компьютеры, на которых требуется установить AMA, в этом случае компьютер пересылки журналов. (Если средство пересылки журналов не отображается в списке, возможно, не установлен агент azure Подключение machine.)
Используйте доступные фильтры или поле поиска, чтобы найти виртуальную машину пересылки журналов. Вы можете развернуть подписку в списке, чтобы просмотреть ее группы ресурсов и группу ресурсов, чтобы просмотреть ее виртуальные машины.
Выберите виртуальную машину пересылки журналов, на которую вы хотите установить AMA. (Поле проверка появится рядом с именем виртуальной машины при наведении на него указателя мыши.)
Просмотрите изменения и нажмите кнопку "Далее: Собрать >".
Выбор объектов и серьезности и создание DCR
Примечание.
Использование одного и того же объекта для сообщений Системного журнала и CEF может привести к дублированию данных. Узнайте, как избежать дублирования данных.
На вкладке "Сбор" выберите минимальный уровень журнала для каждого объекта. При выборе уровня журнала Microsoft Sentinel собирает журналы для выбранного уровня и других уровней с более высоким уровнем серьезности. Например, если выбрать LOG_ERR, Microsoft Sentinel собирает журналы для уровней LOG_ERR, LOG_CRIT, LOG_ALERT и LOG_EMERG.
Просмотрите выбранные варианты и нажмите кнопку "Далее: просмотр и создание".
На вкладке "Рецензирование" и "Создать " нажмите кнопку "Создать".
Соединитель установит агент Azure Monitor на компьютерах, выбранных при создании DCR.
Вы увидите уведомления из портал Azure при создании DCR и установке агента.
Выберите "Обновить" на странице соединителя, чтобы увидеть DCR, отображаемый в списке.
Примеры разделов объектов и уровней журналов
Просмотрите эти примеры параметров объектов и уровней журналов. Поле name
содержит имя фильтра.
Для приема сообщений CEF значение "streams"
должно быть "Microsoft-CommonSecurityLog"
вместо "Microsoft-Syslog"
.
В этом примере собираются события из cron
объектов , local0
daemon
local3
и uucp
объектов с Alert
Warning
Error
Critical
Emergency
уровнями журнала , а также уровнями журналов:
"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
уровнями журнала ,Warning
Emergency
Notice
Error
Critical
Alert
mark
- Объект
daemon
с уровнями журналов, аError
Emergency
Alert
Critical
также уровнями журналаWarning
Он собирает сообщения о событиях системного журнала для:
kern
,local0
local5
иnews
объекты сCritical
Alert
уровнями журнала и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 в сервере пересылки журналов правильно для сбора журналов.
На странице соединителя скопируйте командную строку, которая отображается в разделе Выполнить следующую команду, чтобы установить и применить сборщик 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
Войдите на компьютер пересылки журналов, где вы только что установили AMA.
Вставьте команду, скопированную на последнем шаге, чтобы запустить скрипт установки.
Скрипт настраивает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.- rsyslog:
Тестирование соединителя
Чтобы проверить, запущена ли управляющая программа системного журнала на порту UDP и прослушивается ли AMA, выполните следующую команду:
netstat -lnptv
Вы увидите
rsyslog
управляющую программу,syslog-ng
прослушивающую порт 514.Чтобы записать сообщения, отправленные из средства ведения журнала или подключенного устройства, выполните следующую команду в фоновом режиме:
tcpdump -i any port 514 -A -vv &
После завершения проверки рекомендуется остановить
tcpdump
: введитеfg
и нажмите клавиши CTRL+C.Чтобы отправить демонстрационные сообщения, выполните одно из следующих действий:
Используйте служебную программу 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"
Чтобы убедиться, что соединитель установлен правильно, запустите скрипт устранения неполадок с помощью одной из следующих команд:
Для журналов 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