GitHub-Audit-Logs erfassen
Ü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:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. GitHub Logs (GitHub-Protokolle).
- Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie GitHub als Logtyp aus.
- Klicken Sie auf Weiter.
- 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
.
- Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B.
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
- 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.
- 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
Rufen Sie die Google Cloud Console > Anmeldedaten auf.
Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
Schränken Sie den API-Schlüsselzugriff auf die Google Security Operations API ein.
Endpunkt-URL angeben
- Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed bereitgestellt wird.
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.
- Rufen Sie Ihr GitHub-Repository auf.
- Gehen Sie zu Einstellungen.
- Klicken Sie auf Webhooks.
- Klicken Sie auf Add webhook (Webhook hinzufügen).
- Geben Sie im Feld Payload URL (Nutzlast-URL) die Google SecOps API-Endpunkt-URL ein.
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.
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
.Achten Sie darauf, dass das Kästchen Aktiv angeklickt ist.
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