Raccogliere i dati syslog di Apple macOS

Supportato in:

Questo parser utilizza pattern grok per estrarre i campi dai messaggi syslog di Apple macOS e compila il modello di dati unificato (UDM) con i valori estratti, tra cui timestamp, nome host, host intermedio, riga di comando, ID processo e descrizione. Il parser classifica l'evento come STATUS_UPDATE se è presente un nome host; in caso contrario, assegna all'evento la categoria GENERIC_EVENT. Infine, il parser arricchisce l'evento UDM con informazioni su fornitore e prodotto.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di disporre dell'accesso come utente root all'host Auditd.
  • Assicurati di aver installato rsyslog sull'host Auditd.
  • Assicurati di avere Windows 2012 SP2 o versioni successive o un host Linux con systemd.
  • Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.

Recupera il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agente di raccolta.
  3. Scarica il file di autenticazione dell'importazione.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa BindPlane Agent

  1. Per l'installazione su Windows, esegui il seguente script:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Per l'installazione su Linux, esegui il seguente script:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.

Configurare l'agente BindPlane per importare i syslog e inviarli a Google SecOps

  1. Accedi al computer su cui è installato BindPlane.
  2. Modifica il file config.yaml come segue:

    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
    
  3. Riavviare BindPlane Agent per applicare le modifiche utilizzando il seguente comando: sudo systemctl bindplane restart

Esportazione di Syslog da macOS

  1. Installa syslog-ng utilizzando Homebrew:

    brew install syslog-ng
    
  2. Configura syslog-ng:

    • Modifica il file syslog-ng.conf (di solito in /usr/local/etc/syslog-ng/syslog-ng.conf):
    sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
    
    • Aggiungi il seguente blocco di configurazione.
      • A seconda della configurazione di BindPlane, puoi impostare il metodo di importazione su tcp o lasciarlo su udp.
      • Sostituisci <BindPlaneAgent_IP> e <BindPlaneAgent_Port> con l'indirizzo IP e la porta effettivi dell'agente BindPlane:
    source s_local { system(); internal(); };
    destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); };
    log { source(s_local); destination(d_secops); };
    
  3. Riavvia il servizio syslog-ng:

    brew services restart syslog-ng
    
  4. Controlla lo stato di syslog-ng (dovresti vedere syslog-ng come avviato):

    brew services list
    

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
dati read_only_udm.metadata.description Il valore del campo description viene estratto dal campo data nel log non elaborato utilizzando un pattern Grok.
dati read_only_udm.principal.hostname Il nome host viene estratto dal campo data utilizzando un pattern Grok.
dati read_only_udm.intermediary.hostname Il nome host intermedio viene estratto dal campo data utilizzando un pattern Grok.
dati read_only_udm.principal.process.command_line La riga di comando del processo viene estratta dal campo data utilizzando un pattern Grok.
dati read_only_udm.principal.process.pid L'ID processo viene estratto dal campo data utilizzando un pattern Grok.
dati read_only_udm.metadata.event_timestamp Il timestamp dell'evento viene estratto dal campo data utilizzando un pattern Grok e convertito in un oggetto timestamp. Hardcoded su "MacOS" nel parser. Hardcoded su "Mela" nel parser. Imposta su "STATUS_UPDATE" se un nome host viene estratto dai log, altrimenti imposta su "GENERIC_EVENT".
log_type read_only_udm.metadata.log_type Mappato direttamente dal campo log_type del log non elaborato.

Modifiche

2022-05-04

  • Parser appena creato.