Linux-Audit- und AIX-Systemlogs erfassen
In diesem Dokument wird beschrieben, wie Sie Linux-Audit-Logs von auditd- und AIX-Systemen erfassen und in UDM umwandeln. Der Parser verarbeitet sowohl JSON-formatierte als auch Nur-Text-Logmeldungen. Dabei werden Felder mithilfe von Grok-, XML- und JSON-Parsing-Techniken extrahiert und dem Ereignistyp entsprechend den entsprechenden UDM-Feldern zugeordnet. Der Parser verarbeitet auch bestimmte Audit-Log-Formate von AIX-Systemen und reichert das UDM mit zusätzlichen Feldern wie security_result und Vermittlerdetails an.
Es gibt zwei primäre Methoden zum Erfassen von auditd-Logs: über die lokale Logdatei oder über Syslog. Unabhängig von der Methode sind bestimmte allgemeine Konfigurationen in auditd erforderlich.
Hinweis
- Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
- Sie benötigen Root-Zugriff auf den Auditd-Host.
- Achten Sie darauf, dass Sie einen Windows 2012 SP2-Host oder höher oder einen Linux-Host mit systemd für den Bindplane-Agent haben.
- Wenn Sie die Software hinter einem Proxy ausführen, müssen die Firewallports geöffnet sein.
- Achten Sie bei der syslog-basierten Erfassung darauf, dass
rsyslogauf dem Auditd-Host installiert ist.
Authentifizierungsdatei für die Google SecOps-Aufnahme abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Der BindPlane-Agent erfasst Logs aus verschiedenen Quellen und sendet sie an Google SecOps. Sie können die Agents lokal oder in der Cloud installieren. Der BindPlane-Agent wird auch als BindPlane-Collector, Erfassungsagent, Collector oder Agent bezeichnet. Weitere Informationen und zusätzliche Installationsoptionen finden Sie unter Bindplane mit Google SecOps verwenden.
- Führen Sie für die Windows-Installation das folgende Skript aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet - Führen Sie für die Linux-Installation das folgende Skript aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Allgemeine AuditD-Konfiguration
Damit auditd-Logs die erforderlichen Quellinformationen wie den Hostnamen enthalten, führen Sie die folgenden Schritte aus:
Erforderliche Pakete installieren Installieren Sie den
audit-Daemon und dieaudispd-Plug-ins (für die Syslog-Weiterleitung in vielen Distributionen erforderlich).- RHEL/CentOS:
bash sudo yum install audit audispd-plugins - Ubuntu/Debian:
bash sudo apt-get install auditd audispd-plugins
- RHEL/CentOS:
AuditD so konfigurieren, dass der Hostname enthalten ist Bearbeiten Sie die Konfigurationsdatei des Audit-Daemons unter
/etc/audit/auditd.confund aktualisieren Sie die Optionname_format:# Add or update the following line: name_format = hostnameAudit-Regeln konfigurieren Definieren Sie Ihre Audit-Regeln in
/etc/audit/rules.d/audit.rules, damit sie nach einem Neustart erhalten bleiben. Wenn Sie beispielsweise die Ausführung von Prozessen für 32‑Bit- und 64‑Bit-Architekturen prüfen möchten, fügen Sie Folgendes hinzu:-a always,exit -F arch=b64 -S execve -k execve -a always,exit -F arch=b32 -S execve -k execveSie können diese Regeln durch Ihre eigenen ersetzen.
AuditD neu starten: Starten Sie den Dienst neu, damit die Änderungen übernommen werden:
sudo systemctl restart auditd
Erfassungsmethode 1: Dateibasierte Aufnahme
Bei dieser Methode wird ein lokaler BindPlane-Agent verwendet, um die Roh-Audit-Logdatei direkt von /var/log/audit/audit.log auf der Festplatte zu lesen.
So konfigurieren Sie den Bindplane-Agent für die Dateiaufnahme:
Bearbeiten Sie die Datei
config.yamlauf dem Computer, auf dem Bindplane installiert ist, um die AuditD-Logdatei zu überwachen: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_fileStarten Sie den Bindplane-Agent neu:
sudo systemctl restart bindplane
Erfassungsmethode 2: Syslog-basierte Aufnahme
Bei dieser Methode wird der Audit-Dispatcher (audispd) verwendet, um Logs an den lokalen rsyslog-Daemon zu senden, der die Ereignisse dann weiterleitet. Ein BindPlane-Agent ist für den Empfang dieser Syslog-Nachrichten konfiguriert.
Schritt 1: AuditD-Syslog-Plug-in konfigurieren
Sie müssen das Syslog-Plug-in aktivieren, um Audit-Logs an eine Syslog-Einrichtung weiterzuleiten. Je nach Linux-Distribution und Audit-Version bearbeiten Sie entweder /etc/audisp/plugins.d/syslog.conf (ältere Systeme) oder /etc/audit/plugins.d/syslog.conf (Audit 3.0 und höher):
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6
format = string
Schritt 2: rsyslog-Weiterleitung konfigurieren
Erstellen Sie unter /etc/rsyslog.d/50-auditd.conf eine spezielle rsyslog-Konfigurationsdatei (oder aktualisieren Sie eine vorhandene Datei wie 50-default.conf), um die LOCAL6-Einrichtung umzuleiten.
Option A: An einen Remote-Bindplane-Agent weiterleiten
Wenn Ihr BindPlane-Agent remote gehostet wird, geben Sie seine IP-Adresse (REMOTE_BINDPLANE_IP) und den Listening-Port an (z. B. Port 11655):
local6.* @@REMOTE_BINDPLANE_IP:11655
Option B: An einen lokalen Listener weiterleiten
Wenn Sie einen lokalen Erfassungsagenten ausführen, der auf demselben Host an einem bestimmten Port auf Syslog-Traffic wartet, geben Sie den LOCAL_LISTENER_PORT an:
local6.* @@127.0.0.1:LOCAL_LISTENER_PORT
Schritt 3: Bindplane-Agent für die Syslog-Aufnahme konfigurieren
Bearbeiten Sie die Datei config.yaml auf dem Computer, auf dem BindPlane installiert ist, um Syslog-Nachrichten zu erfassen. Bei dieser Konfiguration wird davon ausgegangen, dass Sie TCP an Port 11655 verwenden, wie in den Beispielen in Schritt 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
Schritt 4: Erforderliche Dienste neu starten
Starten Sie die folgenden Dienste neu, damit die Syslog-Weiterleitung und die Bindplane-Konfiguration wirksam werden:
sudo systemctl restart auditd
sudo systemctl restart rsyslog
sudo systemctl restart bindplane
Mit einem Tool wie tail können Sie das Syslog überwachen und prüfen, ob Auditd-Logs gesendet werden:
tail -f /var/log/syslog | grep auditd
# Follow syslog and filter for auditd messages (the path may vary depending on your system).
Beispiel-Logs für das unterstützte Linux-Auditing-System (AuditD)
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 (allgemein)
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 (Cloud Storage-Logging oder 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 (Windows-Ereignis)
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" } ] } } } } } }
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Bemerkung |
|---|---|---|
acct |
target.user.user_display_name |
Der Wert von acct aus dem Rohlog wird dem Feld target.user.user_display_name im UDM zugeordnet. Das Konto, das mit dem Ereignis verknüpft ist. |
addr |
principal.ip |
Der Wert von addr aus dem Rohlog wird dem Feld principal.ip im UDM zugeordnet. Dies ist die IP-Adresse des Hauptkontos, das an der Aktion beteiligt ist. |
additional.fields |
additional.fields |
Dem additional.fields-Array im UDM werden zusätzliche Felder aus geparsten Schlüssel/Wert-Paaren oder Labels hinzugefügt. |
agent.googleapis.com/log_file_path |
(Nicht zugeordnet) | Dieses Label ist in einigen Rohlogs vorhanden, wird aber nicht dem IDM-Objekt im UDM zugeordnet. |
algo |
(In diesem Beispiel nicht verwendet) | Dieses Feld ist zwar im Parser und in einigen Rohlogs vorhanden, wird aber im bereitgestellten Beispiel nicht verwendet und erscheint nicht im endgültigen UDM. |
application |
principal.application |
Abgeleitet vom Feld terminal im Rohlog oder von anderen Feldern wie exe, je nach Logtyp. Stellt die beteiligte Anwendung dar. |
arch |
security_result.about.platform_version |
Die Architektur aus dem Feld arch des Rohlogs wird security_result.about.platform_version zugeordnet. |
auid |
about.user.userid, security_result.detection_fields.auid |
Die Audit-Nutzer-ID (auid) wird about.user.userid zugeordnet und als Erkennungsfeld in security_result hinzugefügt. |
cmd |
target.process.command_line |
Der Befehl aus dem Feld cmd des Rohlogs wird target.process.command_line zugeordnet. |
collection_time |
(Nicht zugeordnet) | Dieses Feld enthält den Zeitpunkt der Protokollerfassung und wird nicht dem IDM-Objekt im UDM zugeordnet. |
comm |
principal.application |
Der Befehlsname (comm) wird principal.application zugeordnet. |
COMMAND |
target.process.command_line |
|
compute.googleapis.com/resource_name |
principal.hostname |
Der Ressourcenname dieses Labels wird principal.hostname zugeordnet. |
create_time |
(Nicht zugeordnet) | Dieses Feld wird im UDM nicht dem IDM-Objekt zugeordnet. |
cwd |
security_result.detection_fields.cwd |
Das aktuelle Arbeitsverzeichnis (cwd) wird als Erkennungsfeld in security_result hinzugefügt. |
data |
(Verarbeitet) | Das Feld data enthält den Haupt-Logeintrag und wird vom Parser verarbeitet, um verschiedene Felder zu extrahieren. Es wird nicht direkt einem einzelnen UDM-Feld zugeordnet. |
exe |
target.process.file.full_path |
Der Programmdateipfad (exe) ist target.process.file.full_path zugeordnet. |
extensions.auth.type |
extensions.auth.type |
Der Authentifizierungstyp wird von der Parserlogik basierend auf dem Ereignistyp festgelegt. Wird häufig auf MACHINE oder AUTHTYPE_UNSPECIFIED festgelegt. |
fp |
network.tls.client.certificate.sha256 |
Der Fingerabdruck (fp) wird geparst, um den SHA256-Hash zu extrahieren und network.tls.client.certificate.sha256 zuzuordnen. |
_Item_Id |
metadata.product_log_id |
|
insertId |
(Nicht zugeordnet) | Dieses Feld wird im UDM nicht dem IDM-Objekt zugeordnet. |
jsonPayload.message |
(Verarbeitet) | Dieses Feld enthält den Haupt-Logeintrag im JSON-Format und wird vom Parser verarbeitet. |
key |
security_result.about.registry.registry_key |
Das Schlüsselfeld ist security_result.about.registry.registry_key zugeordnet. |
labels |
(Verarbeitet) | Labels aus dem Rohlog werden verarbeitet und verschiedenen UDM-Feldern zugeordnet oder additional.fields hinzugefügt. |
logName |
(Nicht zugeordnet) | Dieses Feld wird im UDM nicht dem IDM-Objekt zugeordnet. |
metadata.product_event_type |
SECCOMP | Die Kurve für den Schlüsselaustausch wird aus dem Rohlog extrahiert und diesem Feld zugeordnet. |
msg |
security_result.summary |
Die Nachricht (msg) wird häufig verwendet, um das Feld security_result.summary auszufüllen. |
network.application_protocol |
network.application_protocol |
Wird von der Parserlogik basierend auf dem Ereignistyp (z.B. SSH, HTTP) festgelegt. |
network.direction |
network.direction |
Wird von der Parserlogik basierend auf dem Ereignistyp festgelegt (z.B. INBOUND, OUTBOUND). |
network.ip_protocol |
network.ip_protocol |
Wird von der Parserlogik festgelegt, in der Regel auf TCP für SSH-Ereignisse. |
network.session_id |
network.session_id |
Wird aus dem Feld ses zugeordnet oder aus anderen Feldern abgeleitet. |
network.tls.cipher |
network.tls.cipher |
Die Chiffrierinformationen werden aus dem Rohprotokoll extrahiert und diesem Feld zugeordnet. |
network.tls.curve |
network.tls.curve |
Die Kurve für den Schlüsselaustausch wird aus dem Rohlog extrahiert und diesem Feld zugeordnet. |
pid |
principal.process.pid, target.process.pid |
Die Prozess-ID (pid) wird je nach Kontext entweder principal.process.pid oder target.process.pid zugeordnet. |
ppid |
principal.process.parent_process.pid, target.process.parent_process.pid |
Die ID des übergeordneten Prozesses (ppid) wird je nach Kontext entweder principal.process.parent_process.pid oder target.process.parent_process.pid zugeordnet. |
principal.asset.hostname |
principal.asset.hostname |
Kopiert von principal.hostname. |
principal.asset.ip |
principal.asset.ip |
Kopiert von principal.ip. |
principal.platform |
principal.platform |
Wird von der Parserlogik basierend auf dem Betriebssystem (z.B. LINUX) festgelegt. |
principal.port |
principal.port |
Die Portnummer, die mit dem Prinzipal verknüpft ist. |
principal.user.group_identifiers |
principal.user.group_identifiers |
Gruppen-IDs, die dem Hauptnutzer zugeordnet sind. |
process.name |
target.process.file.full_path |
|
receiveTimestamp |
(Nicht zugeordnet) | Dieses Feld enthält den Zeitstempel für den Empfang des Logs und wird nicht dem IDM-Objekt im UDM zugeordnet. |
res |
security_result.action_details |
Das Ergebnis (res) wird security_result.action_details zugeordnet. |
_Resource_Id |
target.resource.product_object_id |
|
resource.labels |
(Nicht zugeordnet) | Diese Labels sind in einigen Rohlogs vorhanden, werden aber im UDM nicht dem IDM-Objekt zugeordnet. |
resource.type |
(Nicht zugeordnet) | Dieses Feld ist in einigen Rohlogs vorhanden, wird aber nicht dem IDM-Objekt im UDM zugeordnet. |
security_result.action |
security_result.action |
Wird von der Parserlogik basierend auf dem Feld res festgelegt (z.B. ALLOW, BLOCK). |
security_result.detection_fields |
security_result.detection_fields |
Diesem Array werden verschiedene Felder aus dem Rohlog als Schlüssel/Wert-Paare für den Kontext hinzugefügt. |
security_result.rule_id |
security_result.rule_id |
Wird von der Parserlogik festgelegt, häufig auf type_name für Syscall-Ereignisse. |
security_result.severity |
security_result.severity |
Wird von der Parserlogik basierend auf dem Schweregrad im Rohlog festgelegt. |
security_result.summary |
security_result.summary |
Eine Zusammenfassung des Ereignisses, die oft aus dem Feld msg oder anderen relevanten Feldern abgeleitet wird. |
ses |
network.session_id |
Die Sitzungs-ID (ses) wird network.session_id zugeordnet. |
source |
(Nicht zugeordnet) | Dieses Feld enthält Metadaten zur Protokollquelle und wird nicht dem IDM-Objekt im UDM zugeordnet. |
subj |
(Verarbeitet) | Das Betrefffeld (subj) wird verarbeitet, um Nutzer- und Sicherheitskontextinformationen zu extrahieren. |
syscall |
security_result.about.labels.Syscall |
Die Syscall-Nummer wird als Label in security_result.about hinzugefügt. |
target.administrative_domain |
target.administrative_domain |
Die Domain des Zielnutzers. |
target.group.group_display_name |
target.group.group_display_name |
Der Name der Zielgruppe. |
target.ip |
target.ip |
Die IP-Adresse des Ziels. |
target.port |
target.port |
Die mit dem Ziel verknüpfte Portnummer. |
target.process.command_line |
target.process.command_line |
Die Befehlszeile des Zielprozesses. |
target.resource.type |
target.resource.type |
Der Typ der Zielressource, der von der Parserlogik festgelegt wird (z.B. CREDENTIAL, SETTING). |
target.user.attribute.permissions |
target.user.attribute.permissions |
Berechtigungen, die sich auf den Zielnutzer beziehen. |
target.user.group_identifiers |
target.user.group_identifiers |
Gruppen-IDs, die dem Zielnutzer zugeordnet sind. |
target.user.userid |
target.user.userid |
Die Nutzer-ID des Ziels. |
TenantId |
metadata.product_deployment_id |
|
textPayload |
(Verarbeitet) | Die Textnutzlast des Logs, die vom Parser verarbeitet wird, um verschiedene Felder zu extrahieren. |
timestamp |
metadata.event_timestamp |
Der Zeitstempel des Ereignisses. |
tty |
security_result.about.labels.tty |
Das TTY wird als Label in security_result.about hinzugefügt. |
type |
metadata.product_event_type |
Der Ereignistyp (type) wird metadata.product_event_type zugeordnet. |
uid |
target.user.userid |
Die Nutzer-ID (uid) wird target.user.userid zugeordnet. |
UDM-Abgleichsdelta-Referenz
Am 23. September 2025 hat Google SecOps eine neue Version des Okta-Parsers veröffentlicht, die erhebliche Änderungen bei der Zuordnung von Okta-Logfeldern zu UDM-Feldern und bei der Zuordnung von Ereignistypen enthält.
Delta der Zuordnung von Logfeldern
In der folgenden Tabelle ist das Zuordnungsdelta für Okta-Log-zu-UDM-Felder aufgeführt, die vor dem 23. September 2025 und danach verfügbar waren (in den Spalten Alte Zuordnung bzw. Aktuelle Zuordnung).
| Logfeld | Alte Zuordnung | Aktuelle Zuordnung | Beispiel für Referenzlog |
|---|---|---|---|
1.1.1.1 (IP-Adresse) |
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 (IP-Adresse) |
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 (Nutzer) |
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 (Nutzer) |
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)" |
Delta der Ereignistypzuordnung
Mehrere Ereignisse, die zuvor als generisches Ereignis klassifiziert wurden, werden jetzt korrekt mit aussagekräftigen Ereignistypen klassifiziert.
In der folgenden Tabelle ist die Änderung bei der Verarbeitung von Okta-Ereignistypen vor dem 23. September 2025 und danach aufgeführt (in den Spalten Old event_type und Current event_type).
| eventType aus dem Log | Alter event_type | Aktueller 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 |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten