Raccogliere i log di sistema Linux auditd e AIX
Questo documento descrive come raccogliere i log di controllo Linux dai sistemi auditd e AIX, trasformandoli in UDM. Il parser gestisce i messaggi di log in formato JSON e in testo normale, estraendo i campi utilizzando le tecniche di analisi grok, XML e JSON e mappandoli ai campi UDM appropriati in base al tipo di evento. Il parser gestisce anche formati di log di controllo specifici dei sistemi AIX e arricchisce UDM con campi aggiuntivi come security_result e dettagli intermedi.
Esistono due metodi principali per raccogliere i log auditd: dal file di log locale o utilizzando syslog. Indipendentemente dal metodo, in auditd sono necessarie alcune configurazioni generali.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di disporre dell'accesso root all'host Auditd.
- Assicurati di avere un host Windows 2012 SP2 o versioni successive o Linux con systemd per l'agente Bindplane.
- Se l'applicazione viene eseguita dietro un proxy, assicurati che le porte del firewall siano aperte.
- Per la raccolta basata su syslog, assicurati che
rsyslogsia installato sull'host Auditd.
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione 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 l'agente Bindplane
L'agente Bindplane raccoglie i log da varie origini e li invia a Google SecOps. Puoi installare gli agenti on-premise o nel cloud. L'agente Bindplane può essere chiamato anche Bindplane Collector, agente di raccolta, collector o agente. Per maggiori informazioni e opzioni di installazione aggiuntive, consulta Utilizzare Bindplane con Google SecOps.
- 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 - Per l'installazione di Linux, esegui questo script:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Configurazione generale di AuditD
Per assicurarti che i log di auditd contengano le informazioni di origine necessarie, come il nome host, completa i seguenti passaggi:
Installa i pacchetti richiesti. Installa il daemon
audite i plug-inaudispd(necessari per l'inoltro di syslog su molte distribuzioni).- RHEL/CentOS:
bash sudo yum install audit audispd-plugins - Ubuntu/Debian:
bash sudo apt-get install auditd audispd-plugins
- RHEL/CentOS:
Configurare AuditD in modo che includa il nome host. Modifica il file di configurazione del daemon di controllo in
/etc/audit/auditd.confe aggiorna l'opzionename_format:# Add or update the following line: name_format = hostnameConfigura le regole di audit. Definisci le regole di controllo in
/etc/audit/rules.d/audit.rulesin modo che vengano mantenute dopo un riavvio. Ad esempio, per controllare le esecuzioni dei processi per le architetture a 32 bit e a 64 bit, aggiungi:-a always,exit -F arch=b64 -S execve -k execve -a always,exit -F arch=b32 -S execve -k execvePuoi sostituire queste regole con le tue.
Riavvia AuditD. Riavvia il servizio per applicare le modifiche:
sudo systemctl restart auditd
Metodo di raccolta 1: importazione basata su file
Questo metodo prevede l'utilizzo di un agente Bindplane locale per leggere il file di log di controllo non elaborato direttamente da /var/log/audit/audit.log sul disco.
Per configurare l'agente Bindplane per l'importazione di file:
Modifica il file
config.yamlsulla macchina in cui è installato Bindplane per monitorare il file di log AuditD:receivers: filelog/auditd: include: [ "/var/log/audit/audit.log" ] start_at: end read_batch_size: 65536 poll_interval: 1s exporters: chronicle/auditd_file: compression: gzip # Adjust the creds location below according to the placement of the credentials file you downloaded. creds: '{ json file for creds }' # Replace CUSTOMER_ID 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: AUDITD namespace: auditd raw_log_field: body service: pipelines: logs/auditd_file_to_chronicle: receivers: - filelog/auditd exporters: - chronicle/auditd_fileRiavvia l'agente Bindplane:
sudo systemctl restart bindplane
Metodo di raccolta 2: importazione basata su Syslog
Questo metodo utilizza il dispatcher di controllo (audispd) per inviare i log al daemon rsyslog locale, che poi inoltra gli eventi. Un agente Bindplane è configurato per ricevere questi messaggi syslog.
Passaggio 1: configura il plug-in syslog AuditD
Devi attivare il plug-in syslog per indirizzare i log di controllo a una struttura syslog. A seconda della distribuzione Linux e della versione di Audit, modifica /etc/audisp/plugins.d/syslog.conf (sistemi precedenti) o /etc/audit/plugins.d/syslog.conf (Audit 3.0 e versioni successive):
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6
format = string
Passaggio 2: configura l'inoltro di rsyslog
Crea un file di configurazione rsyslog dedicato in /etc/rsyslog.d/50-auditd.conf (o aggiorna un file esistente come 50-default.conf) per reindirizzare la funzionalità LOCAL6.
Opzione A: inoltra a un agente Bindplane remoto
Se l'agente Bindplane è ospitato in remoto, specifica il suo indirizzo IP (REMOTE_BINDPLANE_IP) e la porta di ascolto (ad esempio, la porta 11655):
local6.* @@REMOTE_BINDPLANE_IP:11655
Opzione B: inoltro a un listener locale
Se stai eseguendo un agente di raccolta locale che ascolta il traffico syslog su una porta specifica dello stesso host, specifica LOCAL_LISTENER_PORT:
local6.* @@127.0.0.1:LOCAL_LISTENER_PORT
Passaggio 3: configura l'agente Bindplane per l'importazione di syslog
Modifica il file config.yaml sulla macchina in cui è installato Bindplane per ascoltare i messaggi syslog. Questa configurazione presuppone che tu stia utilizzando TCP sulla porta 11655, in linea con gli esempi del passaggio 2.
receivers:
tcplog:
listen_address: "0.0.0.0:11655"
exporters:
chronicle/auditd_syslog:
compression: gzip
# Adjust the creds location below according to 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/auditd_syslog_to_chronicle:
receivers:
- tcplog
exporters:
- chronicle/auditd_syslog
Passaggio 4: riavvia i servizi necessari
Riavvia i seguenti servizi in modo che il routing syslog e la configurazione di Bindplane abbiano effetto:
sudo systemctl restart auditd
sudo systemctl restart rsyslog
sudo systemctl restart bindplane
Puoi utilizzare uno strumento come tail per monitorare il syslog e verificare che vengano inviati i log di Auditd:
tail -f /var/log/syslog | grep auditd
# Follow syslog and filter for auditd messages (the path may vary depending on your system).
Log di esempio del sistema di controllo Linux (AuditD) supportato
SYSLOG + KV (Linux AuditD)
events_for_log_entry: { events: { timestamp: { seconds: 1718778607 nanos: 898000000 } idm: { read_only_udm: { metadata: { product_log_id: "5512409" event_timestamp: { seconds: 1718778607 nanos: 898000000 } event_type: USER_LOGIN vendor_name: "Linux" product_name: "AuditD" product_event_type: "USER_AUTH" } principal: { hostname: "sec-dev-01.internal" user: { userid: "0" user_display_name: "secuser" } process: { pid: "3306219" } asset: { hostname: "sec-dev-01.internal" ip: "192.168.1.5" } ip: "192.168.1.5" application: "ssh" platform: LINUX } target: { user: { userid: "0" user_display_name: "secuser" } process: { file: { full_path: "/usr/sbin/secure_shell" } } } intermediary: { hostname: "sec-dev-01.internal" } about: { user: { userid: "sysadmin" user_display_name: "unset" } } security_result: { detection_fields: { key: "AUID0" value: "unset" } detection_fields: { key: "UID0" value: "sysadmin" } detection_fields: { key: "acct0" value: "secuser" } detection_fields: { key: "addr0" value: "192.168.1.5" } detection_fields: { key: "auid0" value: "sysadmin" } detection_fields: { key: "exe0" value: "/usr/sbin/secure_shell" } detection_fields: { key: "grantors0" value: "pam_unix" } detection_fields: { key: "hostname0" value: "192.168.1.5" } detection_fields: { key: "msg0" value: "op=PAM:authentication" } detection_fields: { key: "pid0" value: "3306219" } detection_fields: { key: "res0" value: "success" } detection_fields: { key: "ses0" value: "4294967295" } detection_fields: { key: "terminal0" value: "ssh" } detection_fields: { key: "uid0" value: "0" } detection_fields: { key: "AUID_kv0" value: "AUID0:unset" } detection_fields: { key: "UID_kv0" value: "UID0:sysadmin" } detection_fields: { key: "acct_kv0" value: "acct0:secuser" } detection_fields: { key: "addr_kv0" value: "addr0:192.168.1.5" } detection_fields: { key: "auid_kv0" value: "auid0:sysadmin" } detection_fields: { key: "exe_kv0" value: "exe0:/usr/sbin/secure_shell" } detection_fields: { key: "grantors_kv0" value: "grantors0:pam_unix" } detection_fields: { key: "hostname_kv0" value: "hostname0:192.168.1.5" } detection_fields: { key: "msg_kv0" value: "msg0:op=PAM:authentication" } detection_fields: { key: "pid_kv0" value: "pid0:3306219" } detection_fields: { key: "res_kv0" value: "res0:success" } detection_fields: { key: "ses_kv0" value: "ses0:4294967295" } detection_fields: { key: "terminal_kv0" value: "terminal0:ssh" } detection_fields: { key: "uid_kv0" value: "uid0:0" } summary: "authentication secuser" action: ALLOW action_details: "success" } network: { session_id: "4294967295" application_protocol: SSH } extensions: { auth: {} } } } } }SYSLOG (generico)
events_for_log_entry: { events: { timestamp: { seconds: 1754848621 } idm: { read_only_udm: { metadata: { event_timestamp: { seconds: 1754848621 } event_type: PROCESS_LAUNCH vendor_name: "Linux" product_name: "AuditD" product_event_type: "CROND" description: "(monitorsvc) CMD (/opt/monitor/bin/scheduler -j /opt/monitor/cache/jobs/check.jx)" } principal: { hostname: "log-host-05" user: { userid: "monitorsvc" } process: { pid: "124662" } asset: { hostname: "log-host-05" } platform: LINUX } target: { process: { command_line: "/opt/monitor/bin/scheduler -j /opt/monitor/cache/jobs/check.jx" } } intermediary: { hostname: "log-host-05" } } } } }JSON (logging di Cloud Storage o Auditbeat)
events_for_log_entry: { events: { timestamp: { seconds: 1611615589 nanos: 212000000 } idm: { read_only_udm: { metadata: { product_log_id: "32946" event_timestamp: { seconds: 1611615589 nanos: 212000000 } collected_timestamp: { seconds: 1609752843 nanos: 349722230 } event_type: SERVICE_START vendor_name: "Linux" product_name: "AuditD" product_event_type: "SERVICE_START" } additional: { fields: { key: "insertId" value: { string_value: "tf9cuofcnbn6i" } } fields: { key: "logName" value: { string_value: "projects/prj-secops-dev/logs/auditd" } } } principal: { hostname: "gce-test-web" user: { userid: "0" } process: { pid: "1" } asset: { hostname: "gce-test-web" } application: "sysmgr" platform: LINUX } target: { process: { file: { full_path: "/usr/bin/sysmgr" } } cloud: { project: { name: "prj-secops-dev" } } resource: { resource_subtype: "gce_instance" product_object_id: "1000000000000000001" attribute: { cloud: { availability_zone: "us-east4-a" } } } } about: { user: { userid: "9001" user_display_name: "unset" } } security_result: { detection_fields: { key: "AUID0" value: "unset" } detection_fields: { key: "UID0" value: "secsvc" } detection_fields: { key: "auid0" value: "9001" } detection_fields: { key: "comm0" value: "sysmgr" } detection_fields: { key: "exe0" value: "/usr/bin/sysmgr" } detection_fields: { key: "msg0" value: "unit=gce-cert-renew" } detection_fields: { key: "pid0" value: "1" } detection_fields: { key: "res0" value: "success" } detection_fields: { key: "ses0" value: "4294967295" } detection_fields: { key: "subj0" value: "system_u:system_r:init_t:s0" } detection_fields: { key: "uid0" value: "0" } detection_fields: { key: "AUID_kv0" value: "AUID0:unset" } detection_fields: { key: "UID_kv0" value: "UID0:secsvc" } detection_fields: { key: "auid_kv0" value: "auid0:9001" } detection_fields: { key: "comm_kv0" value: "comm0:sysmgr" } detection_fields: { key: "exe_kv0" value: "exe0:/usr/bin/sysmgr" } detection_fields: { key: "msg_kv0" value: "msg0:unit=gce-cert-renew" } detection_fields: { key: "pid_kv0" value: "pid0:1" } detection_fields: { key: "res_kv0" value: "res0:success" } detection_fields: { key: "ses_kv0" value: "ses0:4294967295" } detection_fields: { key: "subj_kv0" value: "subj0:system_u:system_r:init_t:s0" } detection_fields: { key: "uid_kv0" value: "uid0:0" } summary: "unit=gce-cert-renew success" action: ALLOW action_details: "success" } network: { session_id: "4294967295" } } } } }JSON (evento Windows)
JSON (Windows Event) events_for_log_entry: { events: { timestamp: { seconds: 1711012395 nanos: 723000000 } idm: { read_only_udm: { metadata: { event_timestamp: { seconds: 1711012395 nanos: 723000000 } event_type: USER_LOGIN vendor_name: "Microsoft" product_name: "Microsoft-Windows-Security-Auditing" product_event_type: "4624" description: "An account was successfully logged on" } additional: { fields: { key: "Message" value: { string_value: "An account was successfully logged on." "Subject:Security ID:S-1-0-0" "Account Name:-... (omitted for brevity) ..." "New Logon:Security ID:S-1-5-21-1234567890-123456789-1234567890-2001" "Account Name:svc_log_collector" "Account Domain:SEC_LAB... (omitted for brevity) ..." "Network Information:" "Workstation Name:DEV-WS-42" "Source Network Address:172.16.1.100" "Source Port:53856..." } } fields: { key: "Workstation Name" value: { string_value: "DEV-WS-42" } } } principal: { hostname: "DEV-WS-42" process: {} asset: { hostname: "DEV-WS-42" ip: "172.16.1.100" } ip: "172.16.1.100" port: 53856 labels: { key: "Workstation Name" value: "DEV-WS-42" } } target: { user: { userid: "svc_log_collector" windows_sid: "S-1-5-21-1234567890-123456789-1234567890-2001" } administrative_domain: "SEC_LAB" } intermediary: { hostname: "win-server-01" } security_result: { rule_name: "EventID: 4624" action: ALLOW } extensions: { auth: { mechanism: MECHANISM_UNSPECIFIED } } } } } }SYSLOG + XML (Solaris AuditD)
{ "events_for_log_entry": { "events": { "timestamp": { "seconds": 1735824379 }, "idm": { "read_only_udm": { "metadata": { "product_log_id": "1638473100678580410", "event_timestamp": { "seconds": 1735824379 }, "event_type": "PROCESS_LAUNCH", "vendor_name": "Linux", "product_name": "AuditD", "product_version": "2", "product_event_type": "AUE_EXECVE", "description": "<record version=\"2\" event=\"23\" host=\"192.0.2.1\" iso8601=\"1638473100678580410\">\n" " <ntrs hostname=\"sanitized-host-01\" eventstring=\"AUE_EXECVE\" timestamp=\"1638473100.678580410\" ppid=\"2853\"></ntrs>\n" " <path>/usr/bin/find</path>\n" " <attribute mode=\"100555\" uid=\"0\" gid=\"2\" fsid=\"256\" nodeid=\"722\" device=\"18446744073709551615\"/>\n" " <exec_args>\n" " <arg>find</arg>\n" " <arg>/var/log/secure</arg>\n" " <arg>-type</arg>\n" " <arg>f</arg>\n" " <arg>-xdev</arg>\n" " <arg>-prune</arg>\n" " <arg>-name</arg>\n" " <arg>secure_data_file.txt</arg>\n" " <arg>-mtime</arg>\n" " <arg>+3</arg>\n" " <arg>-exec</arg>\n" " <arg>rm</arg>\n" " <arg>-f</arg>\n" " <arg>{}</arg>\n" " <arg>;</arg>\n" " </exec_args>\n" " <path>/lib/ld.so.1</path>\n" " <attribute mode=\"100755\" uid=\"0\" gid=\"2\" fsid=\"256\" nodeid=\"449952\" device=\"18446744073709551615\"/>\n" " <subject audit-uid=\"99999\" uid=\"0\" gid=\"0\" ruid=\"0\" rgid=\"0\" pid=\"2871\" sid=\"1898719819\" tid=\"9307 196630 192.0.2.10\"/>\n" " <return errval=\"0\" retval=\"0\"/>\n" " <sequence seq-num=\"6849431\"/>\n" "</record>" }, "principal": { "hostname": "sanitized-host-01", "user": { "userid": "99999" }, "asset": { "hostname": "sanitized-host-01", "ip": "192.0.2.1" }, "ip": "192.0.2.1", "platform": "LINUX" }, "target": { "process": { "parent_process": { "pid": "2853" }, "command_line": "find /var/log/secure -type f -xdev -prune -name secure_data_file.txt -mtime +3 -exec rm -f {} ;" } }, "intermediary": { "hostname": "internal-proxy.local" }, "security_result": { "detection_fields": [ { "key": "event", "value": "event: 23" }, { "key": "uid", "value": "uid: 0" }, { "key": "gid", "value": "gid: 0" }, { "key": "ruid", "value": "ruid: 0" }, { "key": "rgid", "value": "rgid: 0" }, { "key": "pid", "value": "pid: 2871" }, { "key": "sid", "value": "sid: 1898719819" }, { "key": "tid", "value": "tid: 9307 196630 192.0.2.10" }, { "key": "seq_num", "value": "seq_num: 6849431" }, { "key": "errval", "value": "errval: 0" }, { "key": "retval", "value": "retval: 0" }, { "key": "path", "value": "path: /usr/bin/find" }, { "key": "device", "value": "device: 18446744073709551615" }, { "key": "mode", "value": "mode: 100555" }, { "key": "fsid", "value": "fsid: 256" }, { "key": "nodeid", "value": "nodeid: 722" } ] } } } } } }
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Commento |
|---|---|---|
acct |
target.user.user_display_name |
Il valore di acct del log non elaborato viene mappato al campo target.user.user_display_name in UDM. Rappresenta l'account associato all'evento. |
addr |
principal.ip |
Il valore di addr del log non elaborato viene mappato al campo principal.ip in UDM. Rappresenta l'indirizzo IP del soggetto coinvolto nell'evento. |
additional.fields |
additional.fields |
I campi aggiuntivi delle coppie chiave-valore o delle etichette analizzate vengono aggiunti all'array additional.fields nell'UDM. |
agent.googleapis.com/log_file_path |
(Non mappato) | Questa etichetta è presente in alcuni log non elaborati, ma non è mappata all'oggetto IDM nell'UDM. |
algo |
(Non utilizzato in questo esempio) | Sebbene sia presente nel parser e in alcuni log non elaborati, questo campo non viene utilizzato nell'esempio fornito e non viene visualizzato nell'UDM finale. |
application |
principal.application |
Derivato dal campo terminal nel log non elaborato o da altri campi come exe a seconda del tipo di log. Rappresenta l'applicazione coinvolta. |
arch |
security_result.about.platform_version |
L'architettura del campo arch del log non elaborato viene mappata a security_result.about.platform_version. |
auid |
about.user.userid, security_result.detection_fields.auid |
L'ID utente di controllo (auid) viene mappato a about.user.userid e aggiunto come campo di rilevamento in security_result. |
cmd |
target.process.command_line |
Il comando del campo cmd del log non elaborato viene mappato a target.process.command_line. |
collection_time |
(Non mappato) | Questo campo è l'ora di raccolta dei log e non è mappato all'oggetto IDM in UDM. |
comm |
principal.application |
Il nome del comando (comm) è mappato a principal.application. |
COMMAND |
target.process.command_line |
|
compute.googleapis.com/resource_name |
principal.hostname |
Il nome della risorsa di questa etichetta è mappato su principal.hostname. |
create_time |
(Non mappato) | Questo campo non è mappato all'oggetto IDM in UDM. |
cwd |
security_result.detection_fields.cwd |
La directory di lavoro corrente (cwd) viene aggiunta come campo di rilevamento in security_result. |
data |
(Elaborato) | Il campo data contiene il messaggio di log principale e viene elaborato dal parser per estrarre vari campi. Non è mappato direttamente a un singolo campo UDM. |
exe |
target.process.file.full_path |
Il percorso eseguibile (exe) è mappato a target.process.file.full_path. |
extensions.auth.type |
extensions.auth.type |
Il tipo di autenticazione viene impostato dalla logica del parser in base al tipo di evento. Spesso impostato su MACHINE o AUTHTYPE_UNSPECIFIED. |
fp |
network.tls.client.certificate.sha256 |
L'impronta (fp) viene analizzata per estrarre l'hash SHA256 e mappata a network.tls.client.certificate.sha256. |
_Item_Id |
metadata.product_log_id |
|
insertId |
(Non mappato) | Questo campo non è mappato all'oggetto IDM in UDM. |
jsonPayload.message |
(Elaborato) | Questo campo contiene il messaggio di log principale in formato JSON ed è elaborato dal parser. |
key |
security_result.about.registry.registry_key |
Il campo della chiave è mappato su security_result.about.registry.registry_key. |
labels |
(Elaborato) | Le etichette del log non elaborato vengono elaborate e mappate a vari campi UDM o aggiunte a additional.fields. |
logName |
(Non mappato) | Questo campo non è mappato all'oggetto IDM in UDM. |
metadata.product_event_type |
SECCOMP | La curva di scambio delle chiavi viene estratta dal log non elaborato e mappata a questo campo. |
msg |
security_result.summary |
Il messaggio (msg) viene spesso utilizzato per compilare il campo security_result.summary. |
network.application_protocol |
network.application_protocol |
Impostato dalla logica del parser in base al tipo di evento (ad es. SSH, HTTP). |
network.direction |
network.direction |
Impostato dalla logica del parser in base al tipo di evento (ad es. INBOUND, OUTBOUND). |
network.ip_protocol |
network.ip_protocol |
Impostato dalla logica del parser, in genere su TCP per gli eventi SSH. |
network.session_id |
network.session_id |
Mappato dal campo ses o derivato da altri campi. |
network.tls.cipher |
network.tls.cipher |
Le informazioni sulla crittografia vengono estratte dal log non elaborato e mappate a questo campo. |
network.tls.curve |
network.tls.curve |
La curva di scambio delle chiavi viene estratta dal log non elaborato e mappata a questo campo. |
pid |
principal.process.pid, target.process.pid |
L'ID processo (pid) viene mappato su principal.process.pid o target.process.pid a seconda del contesto. |
ppid |
principal.process.parent_process.pid, target.process.parent_process.pid |
L'ID processo padre (ppid) viene mappato su principal.process.parent_process.pid o target.process.parent_process.pid a seconda del contesto. |
principal.asset.hostname |
principal.asset.hostname |
Copiato da principal.hostname. |
principal.asset.ip |
principal.asset.ip |
Copiato da principal.ip. |
principal.platform |
principal.platform |
Impostato dalla logica del parser in base al sistema operativo (ad es. LINUX). |
principal.port |
principal.port |
Il numero di porta associato all'entità. |
principal.user.group_identifiers |
principal.user.group_identifiers |
ID gruppo associati all'utente principale. |
process.name |
target.process.file.full_path |
|
receiveTimestamp |
(Non mappato) | Questo campo è il timestamp di ricezione del log e non è mappato all'oggetto IDM in UDM. |
res |
security_result.action_details |
Il risultato (res) è mappato a security_result.action_details. |
_Resource_Id |
target.resource.product_object_id |
|
resource.labels |
(Non mappato) | Queste etichette sono presenti in alcuni log non elaborati, ma non sono mappate all'oggetto IDM nel modello UDM. |
resource.type |
(Non mappato) | Questo campo è presente in alcuni log non elaborati, ma non è mappato all'oggetto IDM nell'UDM. |
security_result.action |
security_result.action |
Impostato dalla logica del parser in base al campo res (ad es. ALLOW, BLOCK). |
security_result.detection_fields |
security_result.detection_fields |
A questo array vengono aggiunti vari campi del log non elaborato come coppie chiave-valore per il contesto. |
security_result.rule_id |
security_result.rule_id |
Impostato dalla logica del parser, spesso su type_name per gli eventi syscall. |
security_result.severity |
security_result.severity |
Impostato dalla logica del parser in base al livello di gravità nel log non elaborato. |
security_result.summary |
security_result.summary |
Un riepilogo dell'evento, spesso derivato dal campo msg o da altri campi pertinenti. |
ses |
network.session_id |
L'ID sessione (ses) è mappato a network.session_id. |
source |
(Non mappato) | Questo campo contiene metadati sull'origine log e non è mappato all'oggetto IDM nel modello UDM. |
subj |
(Elaborato) | Il campo Oggetto (subj) viene elaborato per estrarre le informazioni sul contesto di sicurezza e dell'utente. |
syscall |
security_result.about.labels.Syscall |
Il numero della chiamata di sistema viene aggiunto come etichetta in security_result.about. |
target.administrative_domain |
target.administrative_domain |
Il dominio dell'utente di destinazione. |
target.group.group_display_name |
target.group.group_display_name |
Il nome del gruppo target. |
target.ip |
target.ip |
L'indirizzo IP della destinazione. |
target.port |
target.port |
Il numero di porta associato alla destinazione. |
target.process.command_line |
target.process.command_line |
La riga di comando del processo di destinazione. |
target.resource.type |
target.resource.type |
Il tipo di risorsa di destinazione, impostato dalla logica del parser (ad es. CREDENTIAL, SETTING). |
target.user.attribute.permissions |
target.user.attribute.permissions |
Autorizzazioni relative all'utente di destinazione. |
target.user.group_identifiers |
target.user.group_identifiers |
ID gruppo associati all'utente di destinazione. |
target.user.userid |
target.user.userid |
L'ID utente del target. |
TenantId |
metadata.product_deployment_id |
|
textPayload |
(Elaborato) | Il payload di testo del log, elaborato dal parser per estrarre vari campi. |
timestamp |
metadata.event_timestamp |
Il timestamp dell'evento. |
tty |
security_result.about.labels.tty |
Il TTY viene aggiunto come etichetta in security_result.about. |
type |
metadata.product_event_type |
Il tipo di evento (type) è mappato a metadata.product_event_type. |
uid |
target.user.userid |
L'ID utente (uid) è mappato a target.user.userid. |
Riferimento per le differenze tra le mappature UDM
Il 23 settembre 2025, Google SecOps ha rilasciato una nuova versione del parser Okta, che include modifiche significative alla mappatura dei campi di log Okta ai campi UDM e modifiche alla mappatura dei tipi di eventi.
Differenza tra le mappature dei campi dei log
La tabella seguente elenca le differenze di mappatura per i campi di log-to-UDM di Okta esposti prima del 23 settembre 2025 e successivamente (elencati rispettivamente nelle colonne Mappatura precedente e Mappatura attuale).
| Campo log | Mappatura precedente | Mappatura attuale | Esempio di log di riferimento |
|---|---|---|---|
1.1.1.1 (indirizzo IP) |
src.ip |
principal.ip |
"<163>Apr 10 09:00:05 hostname.com sshd[3318513]: Accepted password for abc from 1.1.1.1 port 33988 ssh2" |
1.1.1.1 (indirizzo IP) |
principal.ip |
target.ip |
"<29>Oct 5 08:37:16 abc ProxySG: E0000 Access Log HTTP (main): Connecting to server 1.1.1.1 on port 4433.(0) NORMAL_EVENT alog_stream_http.cpp 261" |
abc (utente) |
principal.user.userid |
target.user.userid |
"<85>Feb 27 08:26:55 offozcav login: FAILED LOGIN 1 FROM ::ffff:1.1.1.1 FOR abc, Authentication failure\r\n\r\n" |
abc.abc (utente) |
principal.user.userid |
target.user.userid |
"<86>Feb 27 08:29:19 offozcav login: LOGIN ON pts/43 BY abc.abc FROM\r\n\r\n::ffff:1.1.1.1" |
COMMAND |
principal.process.command_line |
target.process.command_line |
"<85>Sep 24 14:33:59 abc sudo: abc : \r\nTTY=unknown ; PWD=/abc ; USER=abc ; COMMAND=/sbin/iptables -t nat -nL \r\n--line-number" |
exe |
target.process.file.full_path |
principal.process.file.full_path |
|
_ItemId |
additional.fields |
metadata.product_log_id |
|
metadata.product_event_type |
PATH |
SECCOMP |
|
process.name |
principal.process.file.full_path |
target.process.file.full_path |
|
_ResourceId |
additional.fields |
target.resource.product_object_id |
|
TenantId |
additional.fields |
metadata.product_deployment_id |
|
uid |
principal.user.userid |
target.user.userid |
|
USER |
principal.user.user_display_name |
target.user.userid |
"<85>Sep 24 14:33:59 abc sudo: abc : \r\nTTY=unknown ; PWD=/abc ; USER=abc ; COMMAND=/sbin/iptables -t nat -nL \r\n--line-number" |
user |
principal.user.userid |
target.user.userid |
"29>Jan 16 11:28:00 san-auth-1-irl2 tac_plus[17329]: login failure: user 1.1.1.1 (1.1.1.1) vty0" |
user |
principal.user.userid |
target.user.userid |
"<87>Jul 15 10:27:01 xpgjrconfdb01 crond[1045]: pam_unix(crond:account): expired password for user root (password aged)" |
Differenza tra le mappature dei tipi di eventi
Più eventi precedentemente classificati come eventi generici ora sono classificati correttamente con tipi di eventi significativi.
La tabella seguente elenca il delta per la gestione dei tipi di eventi Okta prima del 23 settembre 2025 e successivamente (elencati rispettivamente nelle colonne Old event_type e Current event-type).
| eventType from log | Old event_type | Current event_type |
|---|---|---|
aix_event_type=CRON_Start |
USER_LOGIN |
PROCESS_LAUNCH |
CRYPTO_KEY_USER |
NETWORK_CONNECTION |
USER_LOGIN |
FILE_Mknod |
USER_LOGIN |
FILE_CREATION |
FILE_Rename |
USER_LOGIN |
FILE_MODIFICATION |
FILE_Stat |
USER_LOGIN |
FILE_OPEN |
FILE_Unlink |
USER_LOGIN |
FILE_DELETION |
FS_Chabc |
USER_LOGIN |
PROCESS_UNCATEGORIZED |
FS_Mkdir |
USER_LOGIN |
FILE_CREATION |
FS_Rmdir |
USER_LOGIN |
FILE_DELETION |
PROC_Execute |
USER_LOGIN |
PROCESS_LAUNCH |
type=ANOM_ABEND |
STATUS_UPDATE |
PROCESS_TERMINATION |
type=ANOM_PROMISCUOUS |
SETTING_MODIFICATION |
|
type=CRED_REFR |
USER_LOGIN |
USER_CHANGE_PERMISSIONS |
type=PROCTILE |
PROCESS_UNCATEGORIZED |
PROCESS_LAUNCH |
type=SERVICE_START |
USER_RESOURCE_ACCESS |
SERVICE_START |
type=SERVICE_STOP |
USER_RESOURCE_ACCESS |
SERVICE_STOP |
type=USER_ACCT |
USER_LOGIN/SETTING_MODIFICTION |
USER_LOGIN |
type=USER_MGMT |
SETTING_MODIFICATION/GROUP_MODIFICATION |
GROUP_MODIFICATION |
USER_ERR |
USER_LOGOUT |
USER_LOGIN |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.