GitHub-Audit-Logs erfassen

Unterstützt in:

Übersicht

Dieser Parser verarbeitet GitHub-Audit-Logs im JSON-Format. Dabei werden zahlreiche Felder aus der Eingabe entfernt, basierend auf dem Feld process_type werden mehrere Grok- und Schlüssel/Wert-Vorgänge ausgeführt, um relevante Informationen zu extrahieren, die extrahierten Felder werden der UDM zugeordnet und die Ausgabe wird für die Aufnahme in Google SecOps strukturiert. Außerdem werden bestimmte Grenzfälle behandelt und Datentransformationen für verschiedene Log-Untertypen in den GitHub-Audit-Logs durchgeführt.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz.
  • Privilegierter Zugriff auf GitHub-Repositories.

Feeds einrichten

Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:

  • SIEM-Einstellungen > Feeds
  • Content Hub> Content-Pakete

Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten

So konfigurieren Sie einen Feed:

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. GitHub Logs (GitHub-Protokolle).
  5. Wählen Sie Webhook als Quelltyp aus.
  6. Wählen Sie GitHub als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Optional: Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B. \n.
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
  11. Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
  12. Kopieren Sie den geheimen Schlüssel und speichern Sie ihn. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen geheimen Schlüssel generieren. Dadurch wird der vorherige geheime Schlüssel jedoch ungültig.
  13. Kopieren Sie auf dem Tab Details die Feed-Endpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
  14. Klicken Sie auf Fertig.

Feeds über den Content Hub einrichten

Geben Sie Werte für die folgenden Felder an:

  • Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B. \n.

Erweiterte Optionen

  • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
  • Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
  • Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
  • Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.

  • Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.

  • Kopieren Sie den geheimen Schlüssel und speichern Sie ihn. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen geheimen Schlüssel generieren. Dadurch wird der vorherige geheime Schlüssel jedoch ungültig.

  • Kopieren Sie auf dem Tab Details die Feed-Endpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.

API-Schlüssel für den Webhook-Feed erstellen

  1. Rufen Sie die Google Cloud Console > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.

  3. Schränken Sie den API-Schlüsselzugriff auf die Google Security Operations API ein.

Endpunkt-URL angeben

  1. Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed bereitgestellt wird.
  2. Aktivieren Sie die Authentifizierung, indem Sie den API-Schlüssel und den geheimen Schlüssel als Teil des benutzerdefinierten Headers im folgenden Format angeben:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Empfehlung: Geben Sie den API-Schlüssel als Header an, anstatt ihn in der URL anzugeben. Wenn Ihr Webhook-Client keine benutzerdefinierten Headern unterstützt, können Sie den API-Schlüssel und den geheimen Schlüssel mit Suchparametern im folgenden Format angeben:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

Ersetzen Sie Folgendes:

  • ENDPOINT_URL: Die URL des Feed-Endpunkts.
  • API_KEY: Der API-Schlüssel für die Authentifizierung bei Google Security Operations.
  • SECRET: Der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.

Webhook auf GitHub erstellen

In dieser Anleitung wird Schritt für Schritt beschrieben, wie Sie einen Webhook auf GitHub erstellen, um Daten an Google SecOps zu senden.

  1. Rufen Sie Ihr GitHub-Repository auf.
  2. Gehen Sie zu Einstellungen.
  3. Klicken Sie auf Webhooks.
  4. Klicken Sie auf Add webhook (Webhook hinzufügen).
  5. Geben Sie im Feld Payload URL (Nutzlast-URL) die Google SecOps API-Endpunkt-URL ein.
  6. Wählen Sie application/json als Inhaltstyp aus.

    Optional: Für erhöhte Sicherheit können Sie ein Secret festlegen. Dadurch wird eine Signatur für Webhook-Nutzlasten generiert, mit der Sie ihre Authentizität auf der Google SecOps-Seite überprüfen können. Wenn Sie ein Secret verwenden, konfigurieren Sie es auch in Ihrem Google SecOps-Feed.

  7. Wählen Sie die Ereignisse aus, die den Webhook auslösen. Für eine umfassende Protokollierung wählen Sie Let me select individual events (Ich möchte einzelne Ereignisse auswählen) aus und setzen Sie ein Häkchen bei den relevanten Ereignissen (z. B. Push, Pull Request, Issue). Wenn Sie sich nicht sicher sind, beginnen Sie mit Nur das Ereignis push.

  8. Achten Sie darauf, dass das Kästchen Aktiv angeklickt ist.

  9. Klicken Sie auf Webhook hinzufügen, um die Konfiguration zu speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
_document_id read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Das _document_id aus dem Rohlog wird einem Schlüssel/Wert-Paar im additional.fields-Array innerhalb des UDM zugeordnet.
action read_only_udm.metadata.product_event_type, read_only_udm.security_result.summary Das Feld action wird in den Metadaten product_event_type und in der security_result summary zugeordnet.
actor read_only_udm.principal.user.userid Das Feld actor, das den Nutzer darstellt, der die Aktion ausführt, wird principal.user.userid zugeordnet.
actor_id read_only_udm.principal.user.attribute.labels.[].key, read_only_udm.principal.user.attribute.labels.[].value actor_id wird als Label im Array principal.user.attribute.labels zugeordnet.
actor_ip read_only_udm.principal.ip Die IP-Adresse des Akteurs ist principal.ip zugeordnet.
actor_location.country_code read_only_udm.principal.location.country_or_region Der Ländercode des Akteurs wird principal.location.country_or_region zugeordnet.
application_name read_only_udm.target.application Der Anwendungsname wird target.application zugeordnet.
business read_only_udm.target.user.company_name, read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Der Unternehmensname wird target.user.company_name und als Schlüssel/Wert-Paar in additional.fields zugeordnet.
business_id read_only_udm.target.resource.attribute.labels.[].key, read_only_udm.target.resource.attribute.labels.[].value Die Unternehmens-ID wird als Label im target.resource.attribute.labels-Array zugeordnet.
config.url read_only_udm.target.url Die Konfigurations-URL wird target.url zugeordnet.
created_at read_only_udm.metadata.event_timestamp Der Zeitstempel created_at wird in das entsprechende Format konvertiert und metadata.event_timestamp zugeordnet.
data.cancelled_at read_only_udm.extensions.vulns.vulnerabilities.scan_end_time Der data.cancelled_at-Zeitstempel wird konvertiert und extensions.vulns.vulnerabilities.scan_end_time zugeordnet.
data.email read_only_udm.target.email Die E-Mail-Adresse aus dem Datenfeld wird target.email zugeordnet.
data.event read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Das Ereignis aus dem Datenfeld wird als Label im Array security_result.about.labels zugeordnet.
data.events read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Ereignisse aus dem Datenfeld werden als Labels im security_result.about.labels-Array zugeordnet.
data.head_branch read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Der Head-Branch aus dem Datenfeld wird als Label im security_result.about.labels-Array zugeordnet.
data.head_sha read_only_udm.target.file.sha256 Der Head-SHA aus dem Datenfeld wird target.file.sha256 zugeordnet.
data.hook_id read_only_udm.target.resource.attribute.labels.[].key, read_only_udm.target.resource.attribute.labels.[].value Die Hook-ID aus dem Datenfeld wird als Label im Array target.resource.attribute.labels zugeordnet.
data.started_at read_only_udm.extensions.vulns.vulnerabilities.scan_start_time Der data.started_at-Zeitstempel wird konvertiert und extensions.vulns.vulnerabilities.scan_start_time zugeordnet.
data.team read_only_udm.target.user.group_identifiers Das Team aus dem Datenfeld wird target.user.group_identifiers zugeordnet.
data.trigger_id read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Die Trigger-ID aus dem Datenfeld wird als Label im Array security_result.about.labels zugeordnet.
data.workflow_id read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Die Workflow-ID aus dem Datenfeld wird als Label im Array security_result.about.labels zugeordnet.
data.workflow_run_id read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Die Workflow-Lauf-ID aus dem Datenfeld wird als Label im security_result.about.labels-Array zugeordnet.
enterprise.name read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Der Unternehmensname wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
external_identity_nameid read_only_udm.target.user.userid, read_only_udm.target.user.email_addresses Wenn external_identity_nameid eine E-Mail-Adresse ist, wird der Nutzername extrahiert und target.user.userid zugeordnet. Die vollständige E-Mail-Adresse wird target.user.email_addresses hinzugefügt. Andernfalls wird der gesamte Wert auf target.user.userid abgebildet.
external_identity_username read_only_udm.target.user.user_display_name Der Nutzername der externen Identität ist target.user.user_display_name zugeordnet.
hashed_token read_only_udm.network.session_id Der gehashte Token wird network.session_id zugeordnet.
org read_only_udm.target.administrative_domain Die Organisation ist target.administrative_domain zugeordnet.
org_id read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Die Organisations-ID wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
programmatic_access_type read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Der programmatische Zugriffstyp wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
public_repo read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value, read_only_udm.target.location.name Der Wert public_repo bestimmt den Wert, der einem Schlüssel/Wert-Paar in additional.fields und target.location.name zugeordnet wird. „false“ wird „PRIVATE“ zugeordnet, andere Werte werden „PUBLIC“ zugeordnet.
query_string read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Der Abfragestring wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
rate_limit_remaining read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Das verbleibende Ratenlimit wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
repo read_only_udm.target.resource.name Das Repository wird target.resource.name zugeordnet.
repo_id read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Die Repository-ID wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
repository_public read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Das öffentliche Flag des Repositorys wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
request_body read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Der Anfragetext wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
request_method read_only_udm.network.http.method Die Anfragemethode wird in Großbuchstaben umgewandelt und network.http.method zugeordnet.
route read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Die Route wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
status_code read_only_udm.network.http.response_code Der Statuscode wird in eine Ganzzahl konvertiert und network.http.response_code zugeordnet.
token_id read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Die Token-ID wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
token_scopes read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Die Tokenbereiche werden als Schlüssel/Wert-Paar in additional.fields zugeordnet.
transport_protocol_name read_only_udm.network.application_protocol Der Name des Transportprotokolls wird in Großbuchstaben umgewandelt und network.application_protocol zugeordnet.
url_path read_only_udm.target.url Der URL-Pfad ist target.url zugeordnet.
user read_only_udm.target.user.user_display_name Der Nutzer ist target.user.user_display_name zugeordnet.
user_agent read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Der User-Agent wird network.http.user_agent zugeordnet und die geparste Version network.http.parsed_user_agent.
user_id read_only_udm.target.user.userid Die Nutzer-ID ist target.user.userid zugeordnet.
workflow.name read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Der Workflowname wird als Label im Array security_result.about.labels zugeordnet.
workflow_run.event read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Das Workflow-Ausführungsereignis wird als Schlüssel/Wert-Paar in additional.fields zugeordnet.
workflow_run.head_branch read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Der Head-Branch des Workflow-Laufs wird als Label im security_result.about.labels-Array zugeordnet.
workflow_run.head_sha read_only_udm.target.file.sha256 Der SHA des Workflow-Laufkopfes wird target.file.sha256 zugeordnet.
workflow_run.id read_only_udm.target.resource.attribute.labels.[].key, read_only_udm.target.resource.attribute.labels.[].value Die Workflow-Lauf-ID wird als Label im Array target.resource.attribute.labels zugeordnet.
workflow_run.workflow_id read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Die Workflow-ID für die Workflow-Ausführung wird als Label im Array security_result.about.labels zugeordnet.
(Parserlogik) read_only_udm.metadata.event_type Der Ereignistyp wird vom Parser anhand des Vorhandenseins und der Werte anderer Felder wie data.team, action und actor bestimmt. Der Standardwert ist USER_RESOURCE_ACCESS, wenn keine andere spezifische Bedingung erfüllt ist.
(Parserlogik) read_only_udm.metadata.log_type Der Logtyp ist fest auf „GITHUB“ codiert.
(Parserlogik) read_only_udm.metadata.product_name Der Produktname ist fest auf „GITHUB“ codiert.
(Parserlogik) read_only_udm.metadata.vendor_name Der Name des Anbieters ist fest auf „GITHUB“ codiert.
(Parserlogik) read_only_udm.target.resource.resource_type Der Ressourcentyp wird auf STORAGE_OBJECT festgelegt, wenn das Feld repo vorhanden ist.
(Parserlogik) read_only_udm.target.resource.type Der Ressourcentyp wird aus dem Feld action abgeleitet.
(Parserlogik) read_only_udm.security_result.action Die Sicherheitsmaßnahme (ALLOW/BLOCK) wird aus den Feldern at oder raw.at abgeleitet, sofern sie vorhanden sind und „success“ entsprechen oder nicht.
(Parserlogik) read_only_udm.security_result.severity Der Schweregrad der Sicherheitslücke wird aus den Feldern level oder SeverityText abgeleitet, sofern sie vorhanden sind. „INFO“ wird „INFORMATIONAL“ zugeordnet, „WARN“ wird „MEDIUM“ zugeordnet und andere Werte werden direkt zugeordnet. Bei git-daemon-Logs wird „fatal“ dem Schweregrad „CRITICAL“ zugeordnet.
(Parserlogik) read_only_udm.network.application_protocol Das Anwendungsprotokoll wird aus den Feldern protocol, proto, babeld_proto, transport_protocol_name oder raw.protocol abgeleitet. Dabei wird in Großbuchstaben umgewandelt und nach „HTTP“, „HTTPS“ und „SSH“ gesucht.
(Parserlogik) read_only_udm.network.application_protocol_version Die Version des Anwendungsprotokolls wird aus dem Feld http_version abgeleitet, sofern es vorhanden ist.
(Parserlogik) read_only_udm.network.http.parsed_user_agent Der geparste User-Agent wird aus den Feldern user_agent, column5, http_ua oder content abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.network.received_bytes Die empfangenen Byte werden aus den Feldern column3, read_bytes, fs_recv oder uploaded_bytes abgeleitet, sofern vorhanden, und in eine vorzeichenlose Ganzzahl umgewandelt.
(Parserlogik) read_only_udm.network.received_packets Die empfangenen Pakete werden aus dem Feld client_recv abgeleitet, sofern vorhanden, und in eine Ganzzahl umgewandelt.
(Parserlogik) read_only_udm.network.response_code Der Antwortcode wird aus den Feldern column2, status, status_code oder http_status abgeleitet, sofern vorhanden, und in eine Ganzzahl konvertiert.
(Parserlogik) read_only_udm.network.sent_bytes Die gesendeten Bytes werden aus dem Feld client_sent abgeleitet, sofern es vorhanden ist, und in eine vorzeichenlose Ganzzahl konvertiert.
(Parserlogik) read_only_udm.network.sent_packets Die gesendeten Pakete werden aus dem Feld fs_sent abgeleitet, sofern vorhanden, und in eine Ganzzahl umgewandelt.
(Parserlogik) read_only_udm.network.session_duration.seconds Die Sitzungsdauer in Sekunden wird aus dem Feld time_duration abgeleitet, sofern es vorhanden ist, und in eine Ganzzahl umgewandelt.
(Parserlogik) read_only_udm.target.file.full_path Der vollständige Pfad der Zieldatei wird aus den Feldern path, git_dir oder dir abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.file.sha1 Der SHA1-Hash der Zieldatei wird aus dem Feld sha abgeleitet, falls vorhanden.
(Parserlogik) read_only_udm.target.hostname Der Zielhostname wird aus dem Feld client_hostname abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.ip Die Ziel-IP wird aus den Feldern x_real_ip, remote_address, client_ip oder remote_addr abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.location.name Der Name des Zielstandorts wird aus den Feldern datacenter oder public_repo abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.port Der Zielport wird aus den Feldern client_port, dstp oder remote_port abgeleitet, sofern vorhanden, und in eine Ganzzahl konvertiert.
(Parserlogik) read_only_udm.target.process.command_line Die Befehlszeile des Zielprozesses wird aus den Feldern command, ssh_cmd, cmdline oder cmd abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.process.parent_process.pid Die ID des übergeordneten Prozesses des Zielprozesses wird aus dem Feld ppid abgeleitet, sofern vorhanden, und in einen String konvertiert.
(Parserlogik) read_only_udm.target.process.pid Die Zielprozess-ID wird aus dem Feld pid abgeleitet, sofern vorhanden, und in einen String konvertiert.
(Parserlogik) read_only_udm.target.url Die Ziel-URL wird aus den Feldern url, http_url, request_url, http_request, dest_url, config.url oder url_path abgeleitet, sofern vorhanden. Sie kann auch aus path_info und query_string erstellt werden.
(Parserlogik) read_only_udm.target.user.attribute.roles.[].name Die Zielnutzerrollen werden aus den Feldern actor_type oder user_type abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.user.email_addresses Die E-Mail-Adressen der Zielnutzer werden aus dem Feld external_identity_nameid abgeleitet, sofern es sich um eine E-Mail-Adresse handelt.
(Parserlogik) read_only_udm.target.user.group_identifiers Die Kennungen der Zielnutzergruppe werden aus dem Feld data.team abgeleitet, sofern es vorhanden ist.
(Parserlogik) read_only_udm.target.user.userid Die Zielnutzer-ID wird aus den Feldern userid, external_identity_nameid, current_user, member, user_id, actor_id oder raw.user_id abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.target.user.user_display_name Der Anzeigename des Zielnutzers wird aus den Feldern login, user, external_identity_username, user_login oder raw.login abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.asset.asset_id Die ID des Haupt-Assets wird aus dem Feld guid abgeleitet und mit „GUID: “ vorangestellt.
(Parserlogik) read_only_udm.principal.hostname Der Prinzipal-Hostname wird aus den Feldern hostname, request_host, host oder principal_hostname abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.ip Die primäre IP-Adresse wird aus den Feldern column6, ip, x_real_ip, remote_address, raw.ip, actor_ip oder log:source:ip abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.location.country_or_region Das Land oder die Region des Hauptstandorts wird aus dem Feld actor_location.country_code abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.port Der Hauptport wird aus den Feldern srcp oder log:source:port abgeleitet, sofern vorhanden, und in eine Ganzzahl konvertiert.
(Parserlogik) read_only_udm.principal.resource.name Der Ressourcenname des Prinzipal wird aus dem Feld service.name abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.resource.product_object_id Die ID des Hauptressourcenproduktobjekts wird aus den Feldern service.instance.id oder subject_id abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.url Die Hauptkonto-URL wird aus dem Feld repo abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.principal.user.userid Die Hauptnutzer-ID wird aus dem Feld repository_owner_id abgeleitet, sofern vorhanden, und in einen String konvertiert.
(Parserlogik) read_only_udm.principal.user.user_display_name Der Anzeigename des Hauptnutzers wird aus dem Feld repo_name abgeleitet, falls vorhanden.
(Parserlogik) read_only_udm.intermediary.hostname Der Zwischen-Hostname wird aus dem Feld hostname abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.intermediary.ip Die Zwischen-IP wird aus den Feldern x_forwarded_for oder xff_ip abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.metadata.description Die Metadatenbeschreibung wird aus den Feldern content, at oder raw.message abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.metadata.product_event_type Der Produktereignistyp wird, sofern vorhanden, aus den Feldern process_type oder action abgeleitet.
(Parserlogik) read_only_udm.metadata.product_log_id Die Produktlog-ID wird aus den Feldern github_request_id, id, request_id oder raw.request_id abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.metadata.product_version Die Produktversion wird aus dem Feld version abgeleitet, sofern es vorhanden ist.
(Parserlogik) read_only_udm.security_result.about.labels.[].key, read_only_udm.security_result.about.labels.[].value Dem security_result.about.labels-Array werden verschiedene Labels hinzugefügt, je nachdem, ob Felder wie data.events, data.workflow_id, workflow.name, data.head_branch, data.trigger_id, data.workflow_run_id und data.event vorhanden sind und welche Werte sie haben.
(Parserlogik) read_only_udm.security_result.description Die Beschreibung des Sicherheitsergebnisses wird aus den Feldern auth_status, data_msg, msg, Body, desc oder content abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.security_result.severity_details Die Details zum Schweregrad des Sicherheitsergebnisses werden aus dem Feld userid abgeleitet, sofern es vorhanden ist.
(Parserlogik) read_only_udm.security_result.summary Die Zusammenfassung der Sicherheitsergebnisse wird aus den Feldern creason, action oder reason abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.network.http.referral_url Die HTTP-Referrer-URL wird aus den Feldern column4 oder referer abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.network.http.user_agent Der HTTP-User-Agent wird aus den Feldern column5, http_ua oder user_agent abgeleitet, sofern vorhanden.
(Parserlogik) read_only_udm.network.sent_bytes Die gesendeten Netzwerkbytes werden aus den Feldern client_sent oder fs_sent abgeleitet, sofern vorhanden, und in eine vorzeichenlose Ganzzahl konvertiert.
(Parserlogik) read_only_udm.additional.fields.[].key, read_only_udm.additional.fields.[].value.string_value Viele Felder werden bedingt als Schlüssel/Wert-Paare im Array additional.fields zugeordnet, darunter auth_fingerprint, controller, oauth_access_id, oauth_application_id, oauth_scopes, route, worker_request_count, repo, repo_visibility, auth, content_length, elapsed, catalog_service, action, method, failure_type, failure_reason, hashed_token, token_type, gitauth_version, enterprise.name, programmatic_access_type, token_id, token_scopes, integration, query_string, rate_limit_remaining, request_body, org_id, repo_id, repository_public, raw.method, raw.failure_type, raw.failure_reason, raw.from, raw.raw_login, device_cookie, operation, operation_type, category_type, business, note, read, pre_perform_allocation_count, backend, queue, class, success, env, job_id und job. Die spezifische Logik für jedes Feld wird im Parsercode beschrieben.
(Parserlogik) read_only_udm.security_result.detection_fields.[].key, read_only_udm.security_result.detection_fields.[].value Die Felder controller_action, two_factor, delay_time, queued_time, delivery_build, delivery_send und stages werden bedingt dem Array security_result.detection_fields zugeordnet.
(Parserlogik) read_only_udm.target.resource.attribute.labels.[].key, read_only_udm.target.resource.attribute.labels.[].value Die Felder hook_id, job_name, job_workflow_ref, runner_group_id, runner_group_name, runner_name, runner_id, workflow_run_id und business_id werden bedingt als Labels im target.resource.attribute.labels-Array zugeordnet.
(Parserlogik) read_only_udm.metadata.event_timestamp Wenn der Zeitstempel nicht direkt in einem unterstützten Format verfügbar ist, versucht der Parser, ihn aus verschiedenen Feldern zu extrahieren und zu konvertieren, darunter ts, now, created_at, Timestamp, time und raw.now.
(Parserlogik) read_only_udm.network.http.method Die HTTP-Methode wird aus den Feldern method, column1, request_method, http_method oder raw.method abgeleitet und in Großbuchstaben umgewandelt.
(Parserlogik) read_only_udm.target.application Die Zielanwendung wird aus den Feldern process, program oder app abgeleitet, sofern vorhanden.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten