Recoger datos de syslog de Apple macOS
Este analizador usa patrones grok para extraer campos de mensajes syslog de Apple macOS y rellena el modelo de datos unificado (UDM) con los valores extraídos, como la marca de tiempo, el nombre de host, el host intermediario, la línea de comandos, el ID de proceso y la descripción. El analizador clasifica el evento como STATUS_UPDATE
si hay un nombre de host. De lo contrario, asigna la categoría GENERIC_EVENT
al evento. Por último, el analizador enriquece el evento de UDM con información sobre el proveedor y el producto.
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- Asegúrate de que tienes acceso de superusuario al host de Auditd.
- Asegúrate de que has instalado rsyslog en el host de Auditd.
- Asegúrate de tener un host Windows 2012 SP2 o posterior, o un host Linux con systemd.
- Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agente de recogida.
- Descarga el archivo de autenticación de ingestión.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instalar el agente de Bindplane
- Para instalar en Windows, ejecuta la siguiente secuencia de comandos:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - Para instalar Linux, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
. - Puedes consultar otras opciones de instalación en esta guía de instalación.
Configurar el agente de Bindplane para ingerir Syslog y enviarlo a Google SecOps
- Accede al equipo en el que está instalado el agente de Bindplane.
Edita el archivo
config.yaml
de la siguiente manera:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: auditd raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicia el agente de Bindplane para aplicar los cambios con el siguiente comando:
sudo systemctl bindplane restart
Exportar Syslog desde macOS
Instala
syslog-ng
con Homebrew:brew install syslog-ng
Configura syslog-ng:
- Edita el archivo
syslog-ng.conf
(normalmente se encuentra en/usr/local/etc/syslog-ng/syslog-ng.conf
):
sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
- Añade el siguiente bloque de configuración.
- En función de la configuración de Bindplane, puedes cambiar el método de entrega a
tcp
o dejarlo comoudp
. - Sustituye
<BindPlaneAgent_IP>
y<BindPlaneAgent_Port>
por la dirección IP y el puerto reales de tu agente de Bindplane:
- En función de la configuración de Bindplane, puedes cambiar el método de entrega a
source s_local { system(); internal(); }; destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); }; log { source(s_local); destination(d_secops); };
- Edita el archivo
Reinicia el servicio
syslog-ng
:brew services restart syslog-ng
Comprueba el estado de
syslog-ng
(debería aparecer como iniciado):syslog-ng
brew services list
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
datos | read_only_udm.metadata.description | El valor del campo description se extrae del campo data del registro sin procesar mediante un patrón grok. |
datos | read_only_udm.principal.hostname | El nombre de host se extrae del campo data mediante un patrón grok. |
datos | read_only_udm.intermediary.hostname | El nombre de host intermediario se extrae del campo data mediante un patrón grok. |
datos | read_only_udm.principal.process.command_line | La línea de comandos del proceso se extrae del campo data mediante un patrón grok. |
datos | read_only_udm.principal.process.pid | El ID de proceso se extrae del campo data mediante un patrón grok. |
datos | read_only_udm.metadata.event_timestamp | La marca de tiempo del evento se extrae del campo data mediante un patrón grok y se convierte en un objeto de marca de tiempo. Se ha codificado como "MacOS" en el analizador. Codificado como "Apple" en el analizador. Se define como "STATUS_UPDATE" si se extrae un nombre de host de los registros. De lo contrario, se define como "GENERIC_EVENT". |
log_type | read_only_udm.metadata.log_type | Se asigna directamente desde el campo log_type del registro sin procesar. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.