Raccogliere i dati syslog di Apple macOS
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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agente di raccolta.
- Scarica il file di autenticazione dell'importazione.
Ottenere l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa BindPlane Agent
- 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
. - 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
. - Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.
Configurare l'agente BindPlane per importare i syslog e inviarli a Google SecOps
- Accedi al computer su cui è installato BindPlane.
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
Riavviare BindPlane Agent per applicare le modifiche utilizzando il seguente comando:
sudo systemctl bindplane restart
Esportazione di Syslog da macOS
Installa
syslog-ng
utilizzando Homebrew:brew install syslog-ng
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 suudp
. - Sostituisci
<BindPlaneAgent_IP>
e<BindPlaneAgent_Port>
con l'indirizzo IP e la porta effettivi dell'agente BindPlane:
- A seconda della configurazione di BindPlane, puoi impostare il metodo di importazione su
source s_local { system(); internal(); }; destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); }; log { source(s_local); destination(d_secops); };
- Modifica il file
Riavvia il servizio
syslog-ng
:brew services restart syslog-ng
Controlla lo stato di
syslog-ng
(dovresti vederesyslog-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.