Recopila registros del sistema de macOS

Versión del analizador: 2.0

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo puedes transferir registros del sistema de macOS a Google Security Operations con Bindplane. macOS usa el sistema de registro unificado de Apple para capturar eventos a nivel del sistema, como la autenticación, la ejecución de procesos, la actividad del kernel y el comportamiento de las aplicaciones. Estos registros se pueden reenviar a través de syslog a un recopilador remoto para realizar análisis y supervisión de seguridad centralizados.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Es una instancia de Google SecOps.
  • Un host de Windows 2016 o posterior, o Linux con systemd
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de Bindplane.
  • Acceso administrativo a los extremos de macOS que reenviarán los registros.
  • macOS 10.12 (Sierra) o versiones posteriores con compatibilidad con el registro unificado

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agente de recopilación.
  3. Descarga el archivo de autenticación de transferencia.
    • Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de Bindplane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalación adicionales

Para obtener más opciones de instalación, consulta esta guía de instalación.

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    • Ubica el archivo config.yaml. Por lo general, se encuentra en el directorio /observiq-otel-collector/ en Linux o en el directorio de instalación en Windows.
    • Abre el archivo con un editor de texto (por ejemplo, nano, vi o Notepad).
  2. Edita el archivo config.yaml de la siguiente manera:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'MACOS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
  • Reemplaza <PLACEHOLDER_CUSTOMER_ID> por el ID de cliente real.
  • Actualiza /path/to/ingestion-authentication-file.json a la ruta de acceso del archivo en la que se guardó el archivo de autenticación en la sección Cómo obtener el archivo de autenticación de la transferencia de Google SecOps.

Reinicia el agente de Bindplane para aplicar los cambios

Para reiniciar el agente de Bindplane en Linux, haz lo siguiente:

  1. Ejecuta el comando siguiente:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifica que el servicio esté en ejecución:

    sudo systemctl status observiq-otel-collector
    
  3. Revisa los registros en busca de errores:

    sudo journalctl -u observiq-otel-collector -f
    

Para reiniciar el agente de Bindplane en Windows, haz lo siguiente:

  1. Elige una de las siguientes opciones:

    • Símbolo del sistema o PowerShell como administrador:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Consola de Services:
      1. Presiona Win+R, escribe services.msc y presiona Intro.
      2. Busca observIQ OpenTelemetry Collector.
      3. Haz clic con el botón derecho y selecciona Reiniciar.
  2. Verifica que el servicio esté en ejecución:

    sc query observiq-otel-collector
    
  3. Revisa los registros en busca de errores:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

Cómo configurar el reenvío de Syslog en macOS

macOS usa el sistema de registro unificado. Para reenviar registros al agente de Bindplane a través de syslog, configura el servicio syslogd integrado en cada extremo de macOS.

Opción 1: Configura el reenvío de Syslog con syslog.conf

  1. Abre Terminal en el extremo de macOS.
  2. Edita el archivo de configuración de syslog:

    sudo nano /etc/syslog.conf
    
  3. Agrega la siguiente línea al final del archivo para reenviar todos los registros a través de UDP al agente de Bindplane:

    *.*     @<BINDPLANE_IP_ADDRESS>:514
    
    • Reemplaza <BINDPLANE_IP_ADDRESS> por la dirección IP del host del agente de Bindplane (por ejemplo, 192.168.1.100).
  4. Guarda el archivo y cierra.

  5. Reinicia el daemon de syslog:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Opción 2: Configura el reenvío de syslog con asl.conf

  1. Abre Terminal en el extremo de macOS.
  2. Edita el archivo de configuración de ASL:

    sudo nano /etc/asl.conf
    
  3. Agrega la siguiente línea para reenviar los registros al servidor syslog remoto:

    ? [= Sender kernel] forward <BINDPLANE_IP_ADDRESS>:514
    ? [<= Level notice] forward <BINDPLANE_IP_ADDRESS>:514
    
    • Reemplaza <BINDPLANE_IP_ADDRESS> por la dirección IP del host del agente de Bindplane.
  4. Guarda el archivo y cierra.

  5. Reinicia el daemon de syslog:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Verifica el reenvío de registros

  1. En el extremo de macOS, genera un mensaje de registro de prueba:

    logger -p user.notice "Test syslog message for Bindplane"
    
  2. En el host del agente de BindPlane, verifica los registros del agente para ver los mensajes entrantes:

    sudo journalctl -u observiq-otel-collector -f
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
activityIdentifier_label additional.fields Combinado
backtrace_label additional.fields Combinado
bootUUID_label additional.fields Combinado
category_label additional.fields Combinado
chronicle_log_type_label additional.fields Combinado
formatString_label additional.fields Combinado
log_type_label additional.fields Combinado
machTimestamp_label additional.fields Combinado
messageType_label additional.fields Combinado
parentActivityIdentifier_label additional.fields Combinado
processImageUUID_label additional.fields Combinado
senderImageUUID_label additional.fields Combinado
senderProgramCounter_label additional.fields Combinado
subprocess_label additional.fields Combinado
subsystem_label additional.fields Combinado
threadID_label additional.fields Combinado
traceID_label additional.fields Combinado
intermediary_host intermediary.hostname Asignada directamente
attributes.message metadata.description Asignada directamente
description metadata.description Asignada directamente
eventMessage metadata.description Asignada directamente
timestamp metadata.event_timestamp Se analizó como ISO8601
has_principal metadata.event_type Asignado: true → STATUS_UPDATE
has_user metadata.event_type Asignado: true → USER_UNCATEGORIZED
attributes.process metadata.product_event_type Asignada directamente
eventType metadata.product_event_type Asignada directamente
attributes.host principal.asset.hostname Asignada directamente
hostname principal.asset.hostname Asignada directamente
source principal.asset.hostname Asignada directamente
senderImagePath principal.file.full_path Asignada directamente
attributes.host principal.hostname Asignada directamente
hostname principal.hostname Asignada directamente
source principal.hostname Asignada directamente
command_line principal.process.command_line Asignada directamente
processImagePath principal.process.file.full_path Asignada directamente
attributes.pid principal.process.pid Asignada directamente
processID principal.process.pid Asignada directamente
process_id principal.process.pid Asignada directamente
userID principal.user.userid Asignada directamente
N/A metadata.event_type Constante: USER_UNCATEGORIZED
N/A metadata.product_name Constante: MacOS
N/A metadata.vendor_name Constante: Apple
N/A principal.platform Constante: MAC
eventMessage event.idm.read_only_udm.metadata.description Se asignó desde el registro de cambios
eventType event.idm.read_only_udm.metadata.product_event_type Se asignó desde el registro de cambios
senderImagePath event.idm.read_only_udm.principal.file.full_path Se asignó desde el registro de cambios
processImagePath event.idm.read_only_udm.principal.process.file.full_path Se asignó desde el registro de cambios
userID event.idm.read_only_udm.principal.user.userid Se asignó desde el registro de cambios
activityIdentifier event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
bootUUID event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
category event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
formatString event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
machTimestamp event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
messageType event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
parentActivityIdentifier event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
processImageUUID event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
senderImageUUID event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
senderProgramCounter event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
subsystem event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
threadID event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
traceID event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
backtrace.frames event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
processID event.idm.read_only_udm.principal.process.pid Se asignó desde el registro de cambios
source event.idm.read_only_udm.principal.hostname Se asignó desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.