Ingerir mensagens do Syslog e do CEF para o Microsoft Sentinel com o agente do Azure Monitor
Este artigo descreve como usar o Syslog do por meio do AMA e o CEF (Formato Comum de Evento) por meio de conectores AMA para filtrar e ingerir rapidamente mensagens do Syslog, incluindo as do CEF, de computadores Linux e de dispositivos de rede e segurança. Para saber mais sobre esses conectores de dados, confira Conectores do Syslog por meio do AMA e Formato Comum de Evento (CEF) por meio do AMA para Microsoft Sentinel.
Pré-requisitos
Antes de iniciar, você deve ter os recursos configurados e as permissões adequadas descritas nesta seção.
Pré-requisitos do Microsoft Sentinel
A solução apropriada do Microsoft Sentinel deve estar habilitada — Syslog e/ou Formato Comum de Evento. Para obter mais informações, consulte Descobrir e gerenciar o conteúdo pronto para uso do Microsoft Sentinel.
Sua conta Azure deve ter as seguintes funções de controle de acesso baseado em função do Azure (RBAC do Azure):
Função interna Escopo Motivo - Colaborador de Máquina Virtual
- Azure Connected Machine
Administrador de recursos- Máquinas virtuais
- Conjuntos de Dimensionamento de Máquinas Virtuais
- Servidores habilitados para Azure Arc
Para implantar o agente Qualquer função que inclua a ação
Microsoft.Resources/deployments/*- Subscription
- Grupo de recursos
- Regra de coleta de dados existente
Para implantar os modelos do Azure Resource Manager Colaborador de monitoramento - Subscription
- Grupo de recursos
- Regra de coleta de dados existente
Criar ou editar regras de coleta de dados
Pré-requisitos do encaminhador de log
Se você estiver coletando mensagens de um encaminhador de log, os seguintes pré-requisitos adicionais se aplicam:
Você deve ter uma VM do Linux designada (seu encaminhador de log) para coletar logs.
Se o encaminhador de log não for uma máquina virtual do Azure, ele deverá ter o agente do Connected Machine do Azure Arc instalado nele.
A VM do encaminhador de log do Linux deve ter o Python 2.7 ou 3 instalado. Use o comando
python --version
oupython3 --version
para verificar. Se estiver usando o Python 3, garanta que ele está definido como o comando padrão no computador ou execute os scripts abaixo com o comando 'python3' em vez de 'python'.O encaminhador de log deve ter o daemon
syslog-ng
oursyslog
habilitado.Para obter requisitos de espaço para o encaminhador de log, confira o Parâmetro de comparação de desempenho do agente do Azure Monitor. Você também pode ler essa postagem no blog, que inclui designs para uma ingestão escalável.
Suas fontes de log (dispositivos de segurança) devem ser configuradas para enviar suas mensagens de log para o daemon do Syslog do encaminhador de log em vez de para o daemon do Syslog local.
Evitar duplicação de ingestão de dados
Usar o mesmo recurso para mensagens Syslog e CEF pode resultar em duplicação de ingestão de dados entre as tabelas CommonSecurityLog e Syslog.
Para evitar esse cenário, use um destes métodos:
Se o dispositivo de origem permitir a configuração da instalação de destino: Em cada computador de origem que envia logs para o encaminhador de log no formato CEF, edite o arquivo de configuração do Syslog para remover as instalações usadas para enviar mensagens do CEF. Dessa forma, os recursos enviados no CEF também não serão enviados no Syslog. Verifique se cada DCR configurada nas próximas etapas usa a instalação relevante para CEF ou Syslog, respectivamente.
Para ver um exemplo de como organizar uma DCR para ingerir mensagens do Syslog e CEF do mesmo agente, acesse Fluxos do Syslog e CEF no mesma DCR posteriormente neste artigo.
Se a alteração da instalação do dispositivo de origem não for aplicável: use uma transformação de tempo de ingestão para filtrar mensagens do CEF no fluxo do Syslog para evitar duplicação, conforme aparece no exemplo de consulta abaixo. Os dados serão enviados duas vezes do computador coletor para o workspace.
source | where ProcessName !contains "CEF"
Configurar a segurança do computador
Configure a segurança do computador de acordo com a política de segurança da organização. Por exemplo, você pode configurar a rede para ser alinhada à política de segurança de rede corporativa e alterar as portas e os protocolos do daemon para que sejam alinhados aos requisitos. Para melhorar a configuração de segurança do computador, proteja sua VM no Azure ou examine estas melhores práticas para segurança de rede.
Se seus dispositivos estiverem enviando logs de Syslog e CEF por TLS (porque, por exemplo, o encaminhador de log está na nuvem), você precisará configurar o daemon do Syslog (rsyslog
ou syslog-ng
) para se comunicar no TLS:
Configurar os conectores de dados
Selecione a guia adequada para ver as instruções para syslog ou CEF.
Configurar o Syslog por meio do conector AMA
O processo de instalação do Syslog por meio do conector AMA tem duas partes:
Instale o agente do Azure Monitor e crie uma regra de coleta de dados (DCR).
Se você estiver coletando logs de outros computadores usando um encaminhador de log, execute o script de "instalação" no encaminhador de log para configurar o daemon do Syslog para escutar mensagens de outros computadores e abrir as portas locais necessárias.
Instalar o AMA e criar uma regra de coleta de dados (DCR)
Você pode executar esta etapa de duas maneiras:
- Implante e configure o conector de dados do Syslog por meio do AMA ou Formato Comum de Evento (CEF) por meio do AMA no portal do Microsoft Sentinel. Com esta configuração, você pode criar, gerenciar e excluir DCRs por workspace. O AMA será instalado automaticamente nas VMs selecionadas na configuração do conector.
— OU— - Enviar solicitações HTTP para a API de ingestão de logs. Com esta configuração, você pode criar, gerenciar e excluir DCRs. Essa opção é mais flexível do que o portal. Por exemplo, com a API, você pode filtrar por níveis de log específicos enquanto, com a interface do usuário, você só pode selecionar um nível de log mínimo. A desvantagem é que você precisa instalar manualmente o agente do Azure Monitor no encaminhador de log antes de criar uma DCR.
Selecione a guia apropriada abaixo para ver as instruções de cada maneira.
Abra a página do conector e inicie o assistente de DCR
Abra o portal do Azure, navegue até o serviço Microsoft Azure Sentinel.
Selecione Conectores de dados no menu de navegação
Digite Syslog na caixa Pesquisar. Nos resultados, selecione o conector do Syslog por meio do AMA.
Selecione Abrir página do conector no painel de detalhes.
Na área Configuração, selecione +Criar regra de coleta de dados.
Na guia Básico:
- Digite um nome para a DCR.
- Selecione sua assinatura.
- Selecione o grupo de recursos em que deseja localizar a DCR.
Selecione Avançar: Recursos>.
Definir recursos (VMs)
Na guia Recursos, selecione os computadores nos quais você deseja instalar o AMA, nesse caso, seu computador de encaminhador de log. (Se o encaminhador de log não aparecer na lista, talvez ele não tenha o agente do Azure Connected Machine instalado.)
Use os filtros disponíveis ou a caixa de pesquisa para localizar a VM do encaminhador de log. Você pode expandir uma assinatura na lista para ver seus grupos de recursos, e um grupo de recursos para ver suas VMs.
Selecione a VM do encaminhador de log na qual você deseja instalar o AMA. (A caixa de seleção será exibida ao lado do nome da VM quando você passar o mouse sobre ela.)
Examine suas alterações e selecione Avançar: Coletar >.
Selecionar instalações e severidades e criar a DCR
Observação
Usar o mesmo recurso para mensagens do Syslog e CEF pode resultar em duplicação de ingestão de dados. Saiba como evitar a duplicação de ingestão de dados.
Na guia Coletar, selecione o nível mínimo de log para cada instalação. Quando você seleciona um nível de log, o Microsoft Sentinel coleta logs para o nível selecionado e outros níveis com gravidade mais alta. Por exemplo, se você selecionar LOG_ERR, o Microsoft Sentinel coletará logs para os níveis LOG_ERR, LOG_CRIT, LOG_ALERT e LOG_EMERG.
Examine suas seleções e selecione Avançar: Examinar + criar.
Na guia Examinar e criar, selecione Criar.
O conector instalará o agente do Azure Monitor nos computadores selecionados ao criar a DCR.
Você verá notificações do portal do Azure quando a DCR for criada e o agente estiver instalado.
Selecione Atualizar na página do conector para ver a DCR exibida na lista.
Exemplos de instalações e seções de níveis de log
Examine esses exemplos das configurações de níveis de instalações e log. O campo name
inclui o nome do filtro.
Para a ingestão de mensagens CEF, o valor para "streams"
deve ser "Microsoft-CommonSecurityLog"
em vez de "Microsoft-Syslog"
.
Este exemplo coleta eventos das instalações cron
, daemon
, local0
, local3
e uucp
, com os níveis de log Warning
, Error
, Critical
, Alert
e Emergency
:
"dataSources": {
"syslog": [
{
"name": "SyslogStream0",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"cron",
"daemon",
"local0",
"local3",
"uucp"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
}
]
}
Fluxos do Syslog e CEF na mesma DCR
Este exemplo mostra como você pode coletar mensagens do Syslog e CEF na mesma DCR.
Consulte Evitar a duplicação de ingestão de dados anteriormente neste artigo para obter mais informações sobre as etapas a serem seguidas ao ingerir mensagens do Syslog e CEF usando um único agente e uma DCR.
O DCR coleta mensagens de evento do CEF para:
- As instalações
authpriv
emark
com os níveis de logInfo
,Notice
,Warning
,Error
,Critical
,Alert
eEmergency
- A instalação
daemon
com os níveis de logWarning
,Error
,Critical
,Alert
eEmergency
Coleta mensagens de evento do Syslog para:
- As instalações
kern
,local0
,local5
enews
com os níveis de logCritical
,Alert
eEmergency
- As instalações
mail
euucp
com o nível de logEmergency
"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"
]
}
]
}
Executar o script de "instalação"
O script de "instalação" não instala nada, mas configura o daemon do Syslog no encaminhador de log corretamente para coletar os logs.
Na página do conector, copie a linha de comando que aparece em Execute o seguinte comando para instalar e aplicar o coletor CEF: selecionando o ícone de cópia ao lado dele.
Você também pode copiá-lo daqui:
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
Faça logon no computador do encaminhador de log no qual você acabou de instalar o AMA.
Cole o comando copiado na última etapa para iniciar o script de instalação.
O script configura o daemonrsyslog
ousyslog-ng
para usar o protocolo necessário e reinicia o daemon. O script abre a porta 514 para ouvir mensagens de entrada em protocolos UDP e TCP. Para alterar essa configuração, confira o arquivo de configuração de daemon do Syslog de acordo com o tipo daemon em execução no computador:- Rsyslog:
/etc/rsyslog.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Observação
Para evitar cenários de Disco Completo em que o agente não pode funcionar, recomendamos que você defina a configuração
syslog-ng
oursyslog
para não armazenar logs desnecessários. Um cenário de Disco Completo interrompe a função do AMA instalado. Leia mais sobre RSyslog ou Syslog-ng.- Rsyslog:
Testar o conector
Para validar se o daemon syslog está em execução na porta UDP e que se o AMA está escutando, execute este comando:
netstat -lnptv
Você deve ver o daemon
rsyslog
ousyslog-ng
escutando na porta 514.Para capturar mensagens enviadas de um agente ou de um dispositivo conectado, execute este comando em segundo plano:
tcpdump -i any port 514 -A -vv &
Depois de concluir a validação, recomendamos que você pare o
tcpdump
: digitefg
e selecione Ctrl+C.Para enviar mensagens de demonstração, siga um destes procedimentos:
Use o utilitário netcat. Neste exemplo, o utilitário lê os dados postados por meio do comando
echo
com a opção newline desativada. Em seguida, o utilitário grava os dados na porta UDP514
no localhost sem tempo limite. Para executar o utilitário netcat, talvez seja necessário instalar um pacote adicional.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
Use o agente. Este exemplo grava a mensagem na instalação
local 4
, no nível de severidadeWarning
, na porta514
, no host local, no formato RFC CEF. Os sinalizadores-t
e--rfc3164
são usados para manter a conformidade com o formato RFC esperado.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"
Para verificar se o conector está instalado corretamente, execute o script de solução de problemas com um destes comandos:
Para logs do CEF, execute:
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
Para logs do ASA (Cisco Adaptive Security Appliance), execute:
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
Para logs do FTD (Cisco Firepower Threat Defense), execute:
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