Recopila datos de syslog de macOS de Apple
Este analizador usa patrones de Grok para extraer campos de los mensajes de syslog de macOS de Apple y completa el Modelo de datos unificado (UDM) con los valores extraídos, incluidos 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 presente; de lo contrario, le asigna la categoría GENERIC_EVENT
. Por último, el analizador enriquece el evento del UDM con información del proveedor y del producto.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de tener acceso raíz al host de Auditd.
- Asegúrate de haber instalado rsyslog en el host de Auditd.
- Asegúrate de tener un host de Windows 2012 SP2 o posterior, o bien un host de Linux con systemd.
- Si ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agent.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración del SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
- Para la instalación 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 la instalación en 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 encontrar opciones de instalación adicionales en esta guía de instalación.
Configura el agente de Bindplane para que ingiera Syslog y lo envíe a Google SecOps
- Accede a la máquina en la 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
Cómo exportar Syslog desde macOS
Instala
syslog-ng
con Homebrew:brew install syslog-ng
Configura syslog-ng:
- Edita el archivo
syslog-ng.conf
(por lo general, se encuentra en/usr/local/etc/syslog-ng/syslog-ng.conf
):
sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
- Agrega el siguiente bloque de configuración.
- Según la configuración de Bindplane, puedes cambiar el método de entrega a
tcp
o dejarlo comoudp
. - Reemplaza
<BindPlaneAgent_IP>
y<BindPlaneAgent_Port>
por la dirección IP y el puerto reales de tu agente de Bindplane:
- Según 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
Verifica el estado de
syslog-ng
(deberías versyslog-ng
como iniciado):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 en el registro sin procesar con un patrón de Grok. |
datos | read_only_udm.principal.hostname | El nombre de host se extrae del campo data con un patrón de Grok. |
datos | read_only_udm.intermediary.hostname | El nombre de host intermedio se extrae del campo data con un patrón de Grok. |
datos | read_only_udm.principal.process.command_line | La línea de comandos del proceso se extrae del campo data con un patrón de Grok. |
datos | read_only_udm.principal.process.pid | El ID del proceso se extrae del campo data con un patrón de Grok. |
datos | read_only_udm.metadata.event_timestamp | La marca de tiempo del evento se extrae del campo data con un patrón de Grok y se convierte en un objeto de marca de tiempo. Está codificado como "MacOS" en el analizador. Se codifica como "Apple" en el analizador. Se establece en "STATUS_UPDATE" si se extrae un nombre de host de los registros; de lo contrario, se establece en "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? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.