Share via


Ingesta de mensajes CEF y Syslog en Microsoft Sentinel con el agente de Azure Monitor

En este artículo se describe cómo usar los conectores Syslog a través de AMA y formato de evento común (CEF) a través de AMA para filtrar e ingerir rápidamente mensajes de Syslog, incluidos los de formato de evento común (CEF), desde máquinas Linux y desde dispositivos de seguridad y red. Para obtener más información sobre estos conectores de datos, consulte Syslog a través del AMA y los conectores de formato de evento común (CEF) mediante el AMA para Microsoft Sentinel.

Requisitos previos

Antes de comenzar, es necesario tener los recursos configurados y los permisos adecuados descritos en esta sección.

Requisitos previos de Microsoft Azure Sentinel

Requisitos previos del reenviador de registros

Si va a recopilar mensajes de un reenviador de registros, se aplicarán los siguientes requisitos previos adicionales:

  • Debe tener una máquina virtual Linux designada (el reenviador de registros) para recopilar registros.

  • Si el reenviador de registros no es una máquina virtual de Azure, debe tener instalado el agente de Connected Machine de Azure Arc.

  • La máquina virtual del reenviador de registros de Linux debe tener instalado Python 2.7 o 3. Use el comando python --version o python3 --version para comprobarlo. Si usa Python 3, asegúrese de que se establece como el comando predeterminado en la máquina o ejecute los scripts siguientes con el comando "python3" en lugar de "python".

  • El reenviador de registros debe tener habilitada el demonio de syslog-ng o rsyslog.

  • Para conocer los requisitos de espacio para el reenviador de registros, consulte Punto de referencia de rendimiento de Azure Monitor Agent. También puede revisar esta entrada de blog, que incluye diseños para la ingesta escalable.

  • Los orígenes de registro (los dispositivos y dispositivos de seguridad) deben configurarse para enviar sus mensajes de registro al demonio de Syslog del reenviador de registros en lugar de a su demonio de Syslog local.

Evitar la duplicación de ingesta de datos

El uso de la misma facilidad para los mensajes Syslog y CEF puede dar lugar a la duplicación de ingesta de datos entre las tablas CommonSecurityLog y Syslog.

Para evitar esta situación, usa uno de estos métodos:

  • Si el dispositivo de origen permite la configuración de la instalación de destino: en cada máquina de origen que envía registros al reenviador de registros en formato CEF, edita el archivo de configuración de Syslog para eliminar las instalaciones utilizadas y así enviar mensajes CEF. De esta forma, las instalaciones que se envían en CEF no se enviarán también en Syslog. Asegúrate de que cada DCR que configures en los siguientes pasos utilice la función correspondiente para CEF o Syslog, respectivamente.

    Para ver un ejemplo de cómo organizar un DCR para ingerir mensajes de Syslog y CEF del mismo agente, vaya a Flujos de Syslog y CEF en el mismo DCR más adelante en este artículo.

  • Si no se puede aplicar el cambio de instalación en el dispositivo de origen: use una transformación de tiempo de ingesta para filtrar los mensajes CEF del flujo de Syslog y evitar la duplicación, tal y como se muestra en el ejemplo de consulta abajo. Los datos se enviarán dos veces desde la máquina del recopilador al área de trabajo.

    source |
    where ProcessName !contains "CEF"
    

Configuración de la seguridad de la máquina

Asegúrese de configurar la seguridad de la máquina de acuerdo con la directiva de seguridad de su organización. Por ejemplo, puede configurar la red para que se alinee con la directiva de seguridad de la red corporativa y cambiar los puertos y protocolos del demonio para que se adapten a sus requisitos. Para mejorar la configuración de seguridad de la máquina, proteja la máquina virtual en Azure o revise estos procedimientos recomendados para la seguridad de red.

Si los dispositivos envían registros de Syslog y CEF sobre TLS (por ejemplo, porque el reenviador de registros está en la nube), deberá configurar el demonio de Syslog (rsyslog o syslog-ng) para que se comunique en TLS:

Configuración de los conectores de datos

Seleccione la pestaña adecuada para ver las instrucciones de Syslog o CEF.

Configuración del conector Syslog a través de AMA

El proceso de configuración del conector Syslog a través de AMA tiene dos partes:

  1. Instale el agente de Azure Monitor y cree una regla de recopilación de datos (DCR).

  2. Si va a recopilar registros de otras máquinas mediante un reenviador de registros, ejecute el script "instalación" en el reenviador de registros para configurar el demonio de Syslog y escuchar mensajes de otras máquinas y abrir los puertos locales necesarios.

Instalación del AMA y creación de una regla de recopilación de datos (DCR)

Puede realizar este paso de dos maneras:

  • Implemente y configure el conector de datos de Syslog a través del AMA o formato de evento común (CEF) a través del AMA en el portal de Microsoft Sentinel. Con esta configuración, puede crear, administrar y eliminar controladores de dominio por área de trabajo. El AMA se instalará automáticamente en las máquinas virtuales que seleccione en la configuración del conector.
    —O—
  • Enviar solicitudes HTTP a la API de ingestión de registros. Con esta configuración, puede crear, administrar y eliminar varios controladores de dominio. Esta opción es más flexible que el portal. Por ejemplo, con la API, puede filtrar por niveles de registro específicos, donde con la interfaz de usuario, solo puede seleccionar un nivel de registro mínimo. El inconveniente es que tiene que instalar manualmente el agente de Azure Monitor en el reenviador de registros antes de crear una DCR.

Seleccione a continuación la pestaña correspondiente para ver las instrucciones de cada forma.

Abra la página del conector e inicie el asistente de DCR

  1. Abra Azure Portal y vaya al servicio Microsoft Sentinel.

  2. Seleccione Conectores de datos en el menú de navegación

  3. Escriba Syslog en el cuadro Buscar. En los resultados, seleccione el conectorSyslog a través de AMA.

  4. Seleccione Abrir página del conector en el panel de detalles.

  5. En el área Configuración, seleccione +Crear regla de recopilación de datos.

    Captura de pantalla que muestra la página de CEF a través del conector del AMA.

  6. En la pestaña Básico:

    • Escriba un nombre de DCR.
    • Seleccione su suscripción.
    • Seleccione el grupo de recursos en el que se encuentra su DCR.

    Captura de pantalla que muestra los detalles de DCR en la pestaña Aspectos básicos.

  7. Seleccione Siguiente: Recursos>.

Definición de recursos (VM)

En la pestaña Recursos, seleccione las máquinas en las que desea instalar el AMA, en este caso, la máquina del reenviador de registro. (Si el reenviador de registros no aparece en la lista, es posible que no tenga instalado el agente de Azure Connected Machine).

  1. Use los filtros disponibles o el cuadro de búsqueda para buscar la máquina virtual del reenviador de registro. Puede expandir una suscripción en la lista para ver sus grupos de recursos y un grupo de recursos para ver sus máquinas virtuales.

  2. Seleccione la máquina virtual del reenviador de registros en la que desea instalar el AMA. (La casilla aparecerá junto al nombre de la máquina virtual al mantener el puntero sobre ella).

    Captura de pantalla que muestra cómo seleccionar recursos al configurar el controlador de dominio.

  3. Revise los cambios y seleccione Siguiente: Recopilar >.

Seleccione las instalaciones y las gravedades y cree la DCR

Nota:

El uso de la misma facilidad para los mensajes Syslog y CEF puede dar lugar a la duplicación de ingesta de datos. Aprenda a evitar la duplicación de ingesta de datos.

  1. En la pestaña Recopilar, seleccione el nivel de registro mínimo para cada instalación. Al seleccionar un nivel de registro, Microsoft Sentinel recopila registros para el nivel seleccionado y otros niveles con una gravedad mayor. Por ejemplo, si selecciona LOG_ERR, Microsoft Sentinel recopila registros para los niveles LOG_ERR, LOG_CRIT, LOG_ALERT, y LOG_EMERG.

    Captura de pantalla que muestra cómo seleccionar los niveles de registro al configurar el controlador de dominio.

  2. Revise las selecciones y seleccione Siguiente: Revisar y crear.

  3. En la pestaña Revisar y crear, seleccione Crear.

    Captura de pantalla que muestra cómo revisar la configuración de DCR y crearla.

  • El conector instalará el agente de Azure Monitor en las máquinas que seleccionó al crear la DCR.

  • Verá las notificaciones de Azure Portal cuando se cree la DCR y el agente esté instalado.

  • Seleccione Actualizar en la página del conector para ver la DCR que se muestra en la lista.

Ejemplos de secciones de instalaciones y niveles de registro

Revise estos ejemplos de la configuración de las instalaciones y los niveles de registro. El campo name incluye el nombre del filtro.

Para la ingesta de mensajes CEF, el valor de "streams" debe ser "Microsoft-CommonSecurityLog" en lugar de "Microsoft-Syslog".

En este ejemplo se recopilan eventos de las instalaciones cron, daemon, local0, local3 y uucp, con los niveles de registro Warning, Error, Critical, Alert y Emergency:

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Flujos de Syslog y CEF en el mismo DCR

En este ejemplo se muestra cómo se pueden recopilar mensajes de Syslog y CEF en el mismo DCR.

Consulte Evitar la duplicación de la ingesta de datos más arriba en este artículo para obtener más información sobre los pasos que se deben seguir al ingerir mensajes de Syslog y CEF mediante un único agente y DCR.

El DCR recopila mensajes de eventos CEF para:

  • Las instalaciones authpriv y mark con los niveles de registro Info, Notice, Warning, Error, Critical, Alert, y Emergency
  • La instalación daemon con los niveles de registro Warning, Error, Critical, Alert y Emergency

Recopila mensajes de eventos de Syslog para:

  • Los niveles de registro kern, local0, local5 y news con los niveles de registro Critical, Alert y Emergency
  • Las instalaciones mail y uucp con el nivel de registro 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"
          ]
        }
      ]
    }

Ejecución del script de “instalación”

El script de "instalación" no instala realmente nada, pero configura el demonio de Syslog en el reenviador de registros correctamente para recopilar los registros.

  1. En la página del conector, copie la línea de comandos que aparece en Ejecutar el siguiente comando para instalar y aplicar el recopilador CEF: seleccionando el icono copiar situado junto a él.

    Captura de pantalla de la línea de comandos en la página del conector.

    También puede copiarlo desde aquí:

    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. Inicie sesión en la máquina del reenviador de registros donde acaba de instalar el AMA.

  3. Pegue el comando que copió en el último paso para iniciar el script de instalación.
    El script configura el demonio de rsyslog o syslog-ng para usar el protocolo necesario y reinicia el demonio. El script abre el puerto 514 para escuchar los mensajes entrantes en los protocolos UDP y TCP. Para cambiar esta configuración, consulte el archivo de configuración del demonio de Syslog según el tipo de demonio que se ejecuta en la máquina:

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

    Nota:

    Para evitar escenarios de disco completo en los que el agente no puede funcionar, se recomienda establecer la configuración de syslog-ng o rsyslog en no almacenar los registros innecesarios. Un escenario de disco completo interrumpe la función del conector de AMA instalado. Obtenga más información sobre RSyslog o Syslog-ng.

Prueba del conector

  1. Para validar que el demonio de syslog se ejecuta en el puerto UDP y que AMA está escuchando, ejecute este comando:

    netstat -lnptv
    

    Debería ver el demonio rsyslog o syslog-ng escuchando en el puerto 514.

  2. Para capturar mensajes enviados desde un registrador o un dispositivo conectado, ejecute este comando en segundo plano:

    tcpdump -i any port 514 -A -vv &
    
  3. Después de completar la validación, se recomienda detener tcpdump: Type fg y, a continuación, seleccione Ctrl+C.

  4. Para enviar mensajes de demostración, realice una de las siguientes acciones:

    • Use la utilidad netcat. En este ejemplo, la utilidad lee los datos publicados a través del comando echo con el modificador de nueva línea desactivado. A continuación, la utilidad escribe los datos en el puerto UDP 514 en el host local sin tiempo de espera. Para ejecutar la utilidad netcat, es posible que tenga que instalar un paquete 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 el registrador. En este ejemplo se escribe el mensaje en la instalación local 4, en el nivel de gravedad Warning, en el puerto 514, en el host local, en el formato RFC CEF. Las marcas -t y --rfc3164 se usan para cumplir con el 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 comprobar que el conector está instalado correctamente, ejecute el script de solución de problemas con uno de estos comandos:

    • Para los registros CEF, ejecute:

       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 los registros de Cisco Adaptive Security Appliance (ASA), ejecute:

      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 los registros de Cisco Firepower Threat Defense (FTD), ejecute:

      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