Sysdig-Logs erfassen
Dieser Parser extrahiert Sicherheitsereignisdaten aus Sysdig-JSON-Protokollen, transformiert und ordnet die Rohprotokollfelder dem UDM-Format von Google Security Operations zu. Es verarbeitet verschiedene Felder, darunter Metadaten, Informationen zu Prinzipalen oder Zielen, Details zu Sicherheitsergebnissen und Kubernetes-bezogenen Kontext, und reichert die Daten für die Analyse in Google SecOps an. Der Parser führt auch Datentypkonvertierungen, Fehlerbehandlungen und bedingte Logik basierend auf Feldwerten durch, um eine genaue und umfassende UDM-Darstellung zu gewährleisten.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Privilegierter Zugriff auf Sysdig Secure.
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.
Option 1
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. Sysdig Logs (Sysdig-Logs).
- Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Sysdig 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.
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 SecOps.SECRET
: Der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.
Webhook in Sysdig konfigurieren
- Melden Sie sich mit Administratorberechtigungen in Sysdig Secure an.
- Rufen Sie das Profil > Einstellungen > Event-Weiterleitung auf.
- Klicken Sie auf + Integration hinzufügen und wählen Sie im Drop-down-Menü Webhook aus.
Geben Sie Werte für die folgenden Eingabeparameter an:
- Integrationsname: Geben Sie einen aussagekräftigen Namen für den Webhook an, z. B. Google SecOps-Webhook.
- Endpunkt: Geben Sie den Webhook
<ENDPOINT_URL>
ein, gefolgt von<API_KEY
und<SECRET>
. Zu sendende Daten: Wählen Sie im Drop-down-Menü die Typen von Sysdig-Daten aus, die weitergeleitet werden sollen.
Testen Sie die Integration und stellen Sie dann Aktiviert auf „Ein“, um sie zu aktivieren.
Klicken Sie auf Speichern.
Option 2
Daten direkt an Google SecOps weiterleiten
- Melden Sie sich mit Ihren Administratoranmeldedaten in Sysdig Secure an.
- Rufen Sie die Einstellungen > Event-Weiterleitung auf.
- Klicken Sie auf + Integration hinzufügen und wählen Sie im Drop-down-Menü Google Chronicle aus.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Name der Integration: Geben Sie einen aussagekräftigen Namen für die Integration an, z. B. Google SecOps-Integration.
- Kundennummer: Die Google-Kundennummer, die mit Ihrem Google Cloud Konto verknüpft ist. In Google SecOps finden Sie diese Option unter Einstellungen > Profil.
- Namespace: Optional: Kann als Tag verwendet werden, um die entsprechende Datendomäne für die Indexierung und Anreicherung zu identifizieren.
- JSON-Anmeldedaten: Laden Sie Ihre Google SecOps-JSON-Anmeldedaten hoch.
- Region: Wählen Sie Ihre Region aus, z. B. USA, Europa oder Asien.
- Zu sendende Daten: Wählen Sie im Drop-down-Menü die Typen von Sysdig-Daten aus, die weitergeleitet werden sollen.
- Testen Sie die Integration und stellen Sie dann Aktiviert auf „Ein“, um sie zu aktivieren.
- Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
agentId |
read_only_udm.metadata.product_deployment_id |
Der Wert von agentId aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
category |
read_only_udm.security_result.category_details |
Der Wert von category aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.container.id |
read_only_udm.target.asset.asset_id |
Der Wert von content.fields.container.id aus dem Rohlog wird mit „container_id:“ vorangestellt und diesem UDM-Feld zugeordnet. Wird verwendet, wenn containerId leer ist. |
content.fields.container.image.repository |
read_only_udm.target.file.full_path |
Der Wert von content.fields.container.image.repository aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.container.image.tag |
read_only_udm.metadata.ingestion_labels.value , wobei der Schlüssel tag ist |
Der Wert von content.fields.container.image.tag aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.evt.res |
read_only_udm.metadata.ingestion_labels.value , wobei der Schlüssel evt_res ist |
Der Wert von content.fields.evt.res aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.evt.type |
read_only_udm.metadata.event_type |
Der Wert von content.fields.evt.type aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.falco.rule |
read_only_udm.security_result.rule_name |
Der Wert von content.fields.falco.rule aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. Wird verwendet, wenn content.ruleName leer ist. |
content.fields.group.gid |
read_only_udm.target.group.product_object_id |
Der Wert von content.fields.group.gid aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.group.name |
read_only_udm.target.group.group_display_name |
Der Wert von content.fields.group.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.proc.cmdline |
read_only_udm.target.process.command_line |
Der Wert von content.fields.proc.cmdline aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.proc.pcmdline |
read_only_udm.target.process.parent_process.command_line |
Der Wert von content.fields.proc.pcmdline aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.proc.pid |
read_only_udm.target.process.pid |
Der Wert von content.fields.proc.pid aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.proc.ppid |
read_only_udm.target.process.parent_process.pid |
Der Wert von content.fields.proc.ppid aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.proc.sid |
read_only_udm.metadata.ingestion_labels.value , wobei der Schlüssel sid ist |
Der Wert von content.fields.proc.sid aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.user.loginname |
read_only_udm.principal.user.user_display_name |
Der Wert von content.fields.user.loginname aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.fields.user.uid |
read_only_udm.principal.user.userid |
Der Wert von content.fields.user.uid aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.output |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel content_output ist |
Der Wert von content.output aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.policyId |
read_only_udm.security_result.rule_id |
Der Wert von content.policyId aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.policyOrigin |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel content_policyOrigin ist |
Der Wert von content.policyOrigin aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.policyVersion |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel content_policyVersion ist |
Der Wert von content.policyVersion aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.ruleName |
read_only_udm.security_result.rule_name |
Der Wert von content.ruleName aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
content.ruleTags |
read_only_udm.security_result.rule_labels |
Die Werte im content.ruleTags -Array aus dem Rohlog werden diesem UDM-Feld zugeordnet. Die Schlüssel werden dynamisch als „ruletag_index“ generiert. |
content.ruleType |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel content_ruleType ist |
Der Wert von content.ruleType aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
containerId |
read_only_udm.target.asset.asset_id |
Der Wert von containerId aus dem Rohlog wird mit „container_id:“ vorangestellt und diesem UDM-Feld zugeordnet. |
description |
read_only_udm.metadata.description |
Der Wert von description aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
id |
read_only_udm.metadata.product_log_id |
Der Wert von id aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.container.label.io.kubernetes.container.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel container_name ist |
Der Wert von labels.container.label.io.kubernetes.container.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.container.label.io.kubernetes.pod.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel pod_name ist |
Der Wert von labels.container.label.io.kubernetes.pod.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. Wird verwendet, wenn labels.kubernetes.pod.name leer ist. |
labels.container.label.io.kubernetes.pod.namespace |
read_only_udm.principal.namespace |
Der Wert von labels.container.label.io.kubernetes.pod.namespace aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. Wird verwendet, wenn labels.kubernetes.namespace.name leer ist. |
labels.aws.instanceId |
read_only_udm.target.resource.product_object_id |
Der Wert von labels.aws.instanceId aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.aws.region |
read_only_udm.target.resource.attribute.cloud.availability_zone |
Der Wert von labels.aws.region aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.host.hostName |
read_only_udm.principal.ip ODER read_only_udm.principal.hostname |
Wenn der Wert „ip“ enthält, wird er als IP-Adresse geparst und principal.ip zugeordnet. Andernfalls wird sie principal.hostname zugeordnet. |
labels.host.mac |
read_only_udm.principal.mac |
Der Wert von labels.host.mac aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. Wird verwendet, wenn machineId leer ist. |
labels.kubernetes.cluster.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel kubernetes_cluster_name ist |
Der Wert von labels.kubernetes.cluster.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.kubernetes.deployment.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel kubernetes_deployment_name ist |
Der Wert von labels.kubernetes.deployment.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.kubernetes.namespace.name |
read_only_udm.principal.namespace |
Der Wert von labels.kubernetes.namespace.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.kubernetes.node.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel kubernetes_node_name ist |
Der Wert von labels.kubernetes.node.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.kubernetes.pod.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel pod_name ist |
Der Wert von labels.kubernetes.pod.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
labels.kubernetes.service.name |
read_only_udm.additional.fields.value.string_value , wobei der Schlüssel kubernetes_service_name ist |
Der Wert von labels.kubernetes.service.name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
machineId |
read_only_udm.principal.mac |
Der Wert von machineId aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
name |
read_only_udm.security_result.summary |
Der Wert von name aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
severity |
read_only_udm.security_result.severity |
Der Wert von severity aus dem Rohlog wird anhand dieser Bereiche einem Stringwert zugeordnet: <4 = HIGH, >3 und <6 = MEDIUM, 6 = LOW, 7 = INFORMATIONAL. |
source |
read_only_udm.security_result.description |
Der Wert von source aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
timestampRFC3339Nano |
read_only_udm.metadata.event_timestamp |
Der Wert von timestampRFC3339Nano aus dem Rohlog wird als Zeitstempel geparst und diesem UDM-Feld zugeordnet. |
type |
read_only_udm.metadata.product_event_type |
Der Wert von type aus dem Rohlog wird direkt diesem UDM-Feld zugeordnet. |
(Parserlogik) | read_only_udm.metadata.product_name |
Fest codiert auf „SYSDIG“. |
(Parserlogik) | read_only_udm.metadata.vendor_name |
Fest codiert auf „SYSDIG“. |
(Parserlogik) | read_only_udm.metadata.event_type |
Standardmäßig auf „PROCESS_UNCATEGORIZED“ festgelegt oder auf „GENERIC_EVENT“, wenn labels.host.hostName leer ist. |
(Parserlogik) | read_only_udm.metadata.log_type |
Fest codiert auf „SYSDIG“. |
(Parserlogik) | read_only_udm.target.resource.resource_type |
Wird auf „CLOUD_PROJECT“ gesetzt, wenn labels.aws.instanceId vorhanden ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten