Raccogliere i dati syslog di Apple macOS

Supportato in:

Questo parser utilizza i pattern grok per estrarre i campi dai messaggi syslog di Apple macOS e compila il modello di dati unificato (UDM) con i valori estratti, inclusi 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 sul fornitore e sul prodotto.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di avere accesso root all'host Auditd.
  • Assicurati di aver installato rsyslog sull'host Auditd.
  • Assicurati di avere un host Windows 2012 SP2 o versioni successive o Linux con systemd.
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.

Recuperare il file di autenticazione importazione di Google SecOps

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

Recuperare 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 l'agente Bindplane

  1. Per l'installazione di 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 di 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.

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi alla macchina in cui è installato l'agente 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. Riavvia Bindplane Agent per applicare le modifiche utilizzando il seguente comando: sudo systemctl bindplane restart

Esportare 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 si trova 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 modificare il metodo di distribuzione in tcp o lasciarlo come 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 visualizzare syslog-ng come avviato):

    brew services list
    

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
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 dell'intermediario 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. Codificato come "Apple" nel parser. Impostato su "STATUS_UPDATE" se un nome host viene estratto dai log, altrimenti impostato su "GENERIC_EVENT".
log_type read_only_udm.metadata.log_type Mappato direttamente dal campo log_type del log non elaborato.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.