Ingerir mensagens Syslog e CEF para o Microsoft Sentinel com o Azure Monitor Agent

Este artigo descreve como usar o Syslog via AMA e o Common Event Format (CEF) por meio de conectores AMA para filtrar e ingerir rapidamente mensagens Syslog, incluindo aquelas em Common Event Format (CEF), de máquinas Linux e de dispositivos e dispositivos de rede e segurança. Para saber mais sobre esses conectores de dados, consulte Syslog via AMA e Common Event Format (CEF) via conectores AMA para o Microsoft Sentinel.

Pré-requisitos

Antes de começar, você deve ter os recursos configurados e as permissões apropriadas descritas nesta seção.

Pré-requisitos do Microsoft Sentinel

  • Você deve ter a solução Microsoft Sentinel apropriada habilitada — Syslog e/ou Common Event Format. Para obter mais informações, consulte Descobrir e gerenciar conteúdo pronto para uso do Microsoft Sentinel.

  • Sua conta do Azure deve ter as seguintes funções de controle de acesso baseado em função do Azure (Azure RBAC):

    Função incorporada Âmbito Razão
    - Contribuidor de Máquina Virtual
    - Azure Connected Machine
       Administrador de Recursos
  • Máquinas virtuais
  • Conjuntos de Dimensionamento de Máquinas Virtuais
  • Servidores compatíveis com o Azure Arc
  • Para implantar o agente
    Qualquer função que inclua a ação
    Microsoft.Recursos/implantações/*
  • Subscrição
  • Grupo de recursos
  • Regra de recolha de dados existente
  • Para implantar modelos do Azure Resource Manager
    Contribuidor de Monitorização
  • Subscrição
  • Grupo de recursos
  • Regra de recolha de dados existente
  • Para 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 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 Azure Arc Connected Machine instalado nele.

  • A VM do encaminhador de log do Linux deve ter o Python 2.7 ou 3 instalado. Use o python --version comando ou python3 --version para verificar. Se estiver usando Python 3, certifique-se de que ele esteja definido como o comando padrão na máquina, ou execute os scripts abaixo com o comando 'python3' em vez de 'python'.

  • O encaminhador de log deve ter o ou rsyslog daemon syslog-ng habilitado.

  • Para obter os requisitos de espaço para seu encaminhador de log, consulte o Benchmark de Desempenho do Agente do Azure Monitor. Você também pode revisar esta postagem do blog, que inclui designs para ingestão escalável.

  • Suas fontes de log (seus dispositivos e dispositivos de segurança) devem ser configuradas para enviar suas mensagens de log para o daemon Syslog do encaminhador de log em vez de para o daemon Syslog local.

Evitar a 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 do recurso de destino: em cada máquina de origem que envia logs para o encaminhador de log no formato CEF, edite o arquivo de configuração Syslog para remover os recursos usados para enviar mensagens CEF. Desta forma, as facilidades enviadas na CEF não serão também enviadas no Syslog. Certifique-se de que cada DCR configurado nas próximas etapas use o recurso relevante para CEF ou Syslog, respectivamente.

    Para ver um exemplo de como organizar um DCR para ingerir mensagens Syslog e CEF do mesmo agente, vá para fluxos Syslog e CEF no mesmo DCR mais adiante neste artigo.

  • Se a alteração do recurso para o dispositivo de origem não for aplicável: use uma transformação de tempo de ingestão para filtrar mensagens CEF do fluxo Syslog para evitar duplicação, conforme mostrado no exemplo de consulta abaixo. Os dados serão enviados duas vezes da máquina coletora para o espaço de trabalho.

    source |
    where ProcessName !contains "CEF"
    

Configurar a segurança da máquina

Certifique-se de configurar a segurança da máquina de acordo com a política de segurança da sua organização. Por exemplo, você pode configurar sua rede para se alinhar com sua política de segurança de rede corporativa e alterar as portas e protocolos no daemon para alinhar com seus requisitos. Para melhorar a configuração de segurança da sua máquina, proteja a sua VM no Azure ou reveja estas práticas recomendadas para a segurança da rede.

Se seus dispositivos estiverem enviando logs Syslog e CEF por TLS (porque, por exemplo, seu encaminhador de log está na nuvem), você precisará configurar o daemon Syslog (rsyslog ou syslog-ng) para se comunicar em TLS:

Configurar os conectores de dados

Selecione a guia apropriada para ver as instruções para syslog ou CEF.

Configurar o Syslog através do conector AMA

O processo de configuração para o conector Syslog via AMA tem duas partes:

  1. Instale o Azure Monitor Agent e crie uma Regra de Coleta de Dados (DCR).

  2. Se você estiver coletando logs de outras máquinas usando um encaminhador de log, execute o script de "instalação" no encaminhador de log para configurar o daemon Syslog para ouvir mensagens de outras máquinas e abrir as portas locais necessárias.

Instale o AMA e crie uma Regra de Coleta de Dados (DCR)

Você pode executar essa etapa de duas maneiras:

  • Implante e configure o Syslog via AMA ou CEF ( Common Event Format) via conector de dados AMA no portal Microsoft Sentinel. Com essa configuração, você pode criar, gerenciar e excluir DCRs por espaço de trabalho. O AMA será instalado automaticamente nas VMs selecionadas na configuração do conector.
    —OU—
  • Envie solicitações HTTP para a API de ingestão de logs. Com essa configuração, você pode criar, gerenciar e excluir DCRs. Esta opção é mais flexível do que o portal. Por exemplo, com a API, você pode filtrar por níveis de log específicos, onde, com a interface do usuário, você só pode selecionar um nível mínimo de log. A desvantagem é que você precisa instalar manualmente o Agente do Azure Monitor no encaminhador de log antes de criar um DCR.

Selecione a guia apropriada abaixo para ver as instruções para cada sentido.

Abra a página do conector e inicie o assistente DCR

  1. Abra o portal do Azure e navegue até o serviço Microsoft Sentinel.

  2. Selecione Conectores de dados no menu de navegação

  3. Digite Syslog na caixa Pesquisar . A partir dos resultados, selecione o Syslog via conector AMA .

  4. Selecione Abrir página do conector no painel de detalhes.

  5. Na área Configuração, selecione +Criar regra de coleta de dados.

    Captura de ecrã a mostrar o CEF através da página do conector AMA.

  6. Na guia Básico:

    • Digite um nome DCR.
    • Selecione a sua subscrição.
    • Selecione o grupo de recursos onde você deseja localizar seu DCR.

    Captura de tela mostrando os detalhes do DCR na guia Básico.

  7. Selecione Next: Recursos >.

Definir recursos (VMs)

Na guia Recursos, selecione as máquinas nas quais você deseja instalar a AMA — neste caso, sua máquina de encaminhamento de log. (Se o encaminhador de log não aparecer na lista, talvez não tenha o agente de Máquina Conectada do Azure instalado.)

  1. Use os filtros disponíveis ou a caixa de pesquisa para localizar sua VM de 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.

  2. Selecione a VM do encaminhador de log na qual você deseja instalar o AMA. (A caixa de seleção aparecerá ao lado do nome da VM quando você passar o mouse sobre ela.)

    Captura de tela mostrando como selecionar recursos ao configurar o DCR.

  3. Reveja as alterações e selecione Seguinte: Recolher >.

Selecione instalações e gravidades e crie o DCR

Nota

Usar o mesmo recurso para mensagens Syslog e CEF pode resultar em duplicação de ingestão de dados. Saiba como evitar a duplicação de ingestão de dados.

  1. Na guia Coletar, selecione o nível mínimo de log para cada recurso. Quando você seleciona um nível de log, o Microsoft Sentinel coleta logs para o nível selecionado e outros níveis com maior gravidade. Por exemplo, se você selecionar LOG_ERR, o Microsoft Sentinel coletará logs para os níveis de LOG_ERR, LOG_CRIT, LOG_ALERT e LOG_EMERG .

    Captura de tela mostrando como selecionar níveis de log ao configurar o DCR.

  2. Reveja as suas seleções e selecione Seguinte: Rever + criar.

  3. Na guia Revisar e criar, selecione Criar.

    Captura de tela mostrando como revisar a configuração do DCR e criá-lo.

  • O conector instalará o Agente do Azure Monitor nas máquinas selecionadas ao criar seu DCR.

  • Você verá notificações do portal do Azure quando o DCR for criado e o agente for instalado.

  • Selecione Atualizar na página do conector para ver o DCR exibido na lista.

Exemplos de seções de instalações e níveis de log

Analise estes exemplos das configurações de instalações e níveis de log. O name campo inclui o nome do filtro.

Para a ingestão de mensagens CEF, o valor for "streams" deve ser "Microsoft-CommonSecurityLog" em vez de "Microsoft-Syslog".

Este exemplo coleta eventos dos cronníveis , daemon, local0local3 , e uucp facilities, com os Warningníveis , Error, Critical, Alert, e Emergency log:

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Fluxos Syslog e CEF no mesmo DCR

Este exemplo mostra como você pode coletar mensagens Syslog e CEF no mesmo DCR.

Consulte Evitar a duplicação de ingestão de dados anteriormente neste artigo para obter mais informações sobre as etapas a serem executadas ao ingerir mensagens Syslog e CEF usando um único agente e DCR.

O DCR recolhe mensagens de eventos CEF para:

  • As authpriv e mark instalações com os Infoníveis , Notice, Warning, Error, Critical, Alert, e Emergency log
  • A daemon instalação com os Warningníveis , Error, Critical, Alert, e Emergency log

Ele coleta mensagens de eventos Syslog para:

  • O kern, local0, local5, e news instalações com os Criticalníveis , Alert, e Emergency log
  • O mail e uucp instalações com o Emergency nível de log
    "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"
          ]
        }
      ]
    }

Execute o script de "instalação"

Na verdade, o script de "instalação" não instala nada, mas configura o daemon Syslog no seu encaminhador de log corretamente para coletar os logs.

  1. Na página do conector, copie a linha de comando que aparece em Executar o seguinte comando para instalar e aplicar o coletor CEF: selecionando o ícone de cópia ao lado dele.

    Captura de tela da linha de comando na página do conector.

    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
    
  2. Faça login na máquina de encaminhador de log onde você acabou de instalar o AMA.

  3. Cole o comando copiado na última etapa para iniciar o script de instalação.
    O script configura o rsyslogsyslog-ng ou daemon para usar o protocolo necessário e reinicia o daemon. O script abre a porta 514 para ouvir mensagens recebidas nos protocolos UDP e TCP. Para alterar essa configuração, consulte o arquivo de configuração do daemon Syslog de acordo com o tipo de daemon em execução na máquina:

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Nota

    Para evitar cenários de disco completo em que o agente não pode funcionar, recomendamos que você defina a syslog-ng configuração ou rsyslog para não armazenar logs desnecessários. Um cenário de disco completo interrompe a função da AMA instalada. Leia mais sobre RSyslog ou Syslog-ng.

Testar o conector

  1. Para validar que o daemon syslog está em execução na porta UDP e que o AMA está escutando, execute este comando:

    netstat -lnptv
    

    Você deve ver o rsyslog ou syslog-ng daemon escutando na porta 514.

  2. Para capturar mensagens enviadas de um registador ou de um dispositivo ligado, execute este comando em segundo plano:

    tcpdump -i any port 514 -A -vv &
    
  3. Depois de concluir a validação, recomendamos que você pare o tcpdump: Type fg e selecione Ctrl+C.

  4. Para enviar mensagens de demonstração, siga um destes procedimentos:

    • Use o utilitário netcat. Neste exemplo, o utilitário lê dados postados através do echo comando com o interruptor newline desligado. Em seguida, o utilitário grava os dados na porta 514 UDP no host local 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 registrador. Este exemplo grava a mensagem no local 4 recurso, no nível Warningde gravidade, na porta 514, no host local, no formato CEF RFC. Os -t sinalizadores e --rfc3164 são usados para cumprir 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"
      
  5. Para verificar se o conector está instalado corretamente, execute o script de solução de problemas com um destes comandos:

    • Para os registos do MIE, executar:

       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 Cisco Adaptive Security Appliance (ASA), 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 Cisco Firepower Threat Defense (FTD), 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