Lacework Cloud Security-Logs erfassen
Übersicht
Mit diesem Parser werden Felder aus JSON-Logs von Lacework Cloud Security extrahiert und in das UDM-Format umgewandelt. Dabei werden Rohlogfelder UDM-Feldern zugeordnet, verschiedene Datentypen verarbeitet und das Ereignis mit zusätzlichem Kontext aus Tags angereichert. Schließlich wird der Ereignistyp anhand der vorhandenen Haupt- und Zielinformationen klassifiziert.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google Security Operations-Instanz.
- Privilegierter Zugriff auf FortiCNAPP Lacework.
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. Lacework Logs (Lacework-Protokolle).
- Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Lacework 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 Chronicle 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 SecOps.SECRET
: Der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.
Lacework-Webhook für Google SecOps konfigurieren
- Melden Sie sich mit Administratorberechtigungen in der Lacework FortiCNAPP Console an.
- Rufen Sie die Einstellungen > Benachrichtigungen > Benachrichtigungschannels auf.
- Klicken Sie auf + Neu hinzufügen.
- Wählen Sie Webhook aus.
- Klicken Sie auf Weiter.
- Geben Sie einen eindeutigen Namen für den Channel an, z. B. Google SecOps.
- Webhook-URL: Geben Sie
<ENDPOINT_URL>
gefolgt von<API_KEY>
und<SECRET>
ein. - Klicken Sie auf Speichern.
- Wählen Sie Benachrichtigungsregeln aus und konfigurieren Sie die erforderlichen Details für das Benachrichtigungsrouting.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Direkt aus dem Feld AGENT_VERSION zugeordnet. |
CREATED_TIME |
metadata.event_timestamp |
Direkt aus dem Feld CREATED_TIME abgeleitet und in einen Zeitstempel umgewandelt. |
FILEDATA_HASH |
target.file.sha256 |
Direkt aus dem Feld FILEDATA_HASH zugeordnet. |
FILE_PATH |
target.file.full_path |
Direkt aus dem Feld FILE_PATH zugeordnet. |
IP_ADDR |
principal.ip |
Direkt aus dem Feld IP_ADDR zugeordnet. |
OS |
target.platform |
Wird aus dem Feld OS zugeordnet. Logic wandelt verschiedene Betriebssystem-Strings (Linux, Windows, Mac) in UDM-Enum-Werte (LINUX, WINDOWS, MAC) um. Wenn keine Übereinstimmung gefunden wird, wird standardmäßig UNKNOWN_PLATFORM verwendet. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Direkt aus dem Feld STATUS als zusätzliches Feld zugeordnet. |
TAGS.Account |
metadata.product_deployment_id |
Direkt aus dem Feld TAGS.Account zugeordnet. |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Direkt aus dem Feld TAGS.AmiId als zusätzliches Feld zugeordnet. |
TAGS.ExternalIp |
target.ip |
Direkt aus dem Feld TAGS.ExternalIp zugeordnet. |
TAGS.Hostname |
principal.hostname |
Direkt aus dem Feld TAGS.Hostname zugeordnet. |
TAGS.InstanceId |
target.asset_id |
Direkt aus dem Feld TAGS.InstanceId zugeordnet, mit dem Präfix „Device Instance Id: “. |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Direkt aus dem Feld TAGS.LwTokenShort als zusätzliches Feld zugeordnet. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Direkt aus dem Feld MID als zusätzliches Feld zugeordnet. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Direkt aus dem Feld MODE als zusätzliches Feld zugeordnet. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Direkt aus dem Feld TAGS.Name als zusätzliches Feld zugeordnet. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Direkt aus dem Feld TAGS.QSConfigName-vfzg0 als zusätzliches Feld zugeordnet. |
TAGS.ResourceType |
target.resource.resource_subtype |
Direkt aus dem Feld TAGS.ResourceType zugeordnet. |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Direkt aus dem Feld TAGS.SubnetId als Label in „target.resource.attribute“ zugeordnet. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Direkt aus dem Feld TAGS.VmInstanceType als Label in „target.resource.attribute“ zugeordnet. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Direkt aus dem Feld TAGS.VmProvider als Label in „target.resource.attribute“ zugeordnet. |
TAGS.VpcId |
target.resource.product_object_id |
Direkt aus dem Feld TAGS.VpcId zugeordnet. |
TAGS.Zone |
target.cloud.availability_zone |
Direkt aus dem Feld TAGS.Zone zugeordnet. |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Direkt aus dem Feld TAGS.alpha.eksctl.io/nodegroup-name als zusätzliches Feld zugeordnet. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Direkt aus dem Feld TAGS.alpha.eksctl.io/nodegroup-type als zusätzliches Feld zugeordnet. |
TAGS.arch |
principal.platform_version |
Direkt aus dem Feld TAGS.arch zugeordnet. |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Direkt aus dem Feld TAGS.aws:autoscaling:groupName als zusätzliches Feld zugeordnet. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Direkt aus dem Feld TAGS.aws:ec2:fleet-id als zusätzliches Feld zugeordnet. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Direkt aus dem Feld TAGS.aws:ec2launchtemplate:id als zusätzliches Feld zugeordnet. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Direkt aus dem Feld TAGS.aws:ec2launchtemplate:version als zusätzliches Feld zugeordnet. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Direkt aus dem Feld TAGS.aws:eks:cluster-name als zusätzliches Feld zugeordnet. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Direkt aus dem Feld TAGS.enableCrowdStrike als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/application als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/environment als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/managedBy als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/project als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/proxy-type als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/service als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Direkt aus dem Feld TAGS.falconx.io/team als zusätzliches Feld zugeordnet. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Direkt aus dem Feld TAGS.k8s.io/cluster-autoscaler/enabled als zusätzliches Feld zugeordnet. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Direkt aus dem Feld TAGS.k8s.io/cluster-autoscaler/falcon als zusätzliches Feld zugeordnet. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Direkt aus dem Feld TAGS.kubernetes.io/cluster/falcon als zusätzliches Feld zugeordnet. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Direkt aus dem Feld TAGS.lw_KubernetesCluster als zusätzliches Feld zugeordnet. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Direkt aus dem Feld LAST_UPDATE als zusätzliches Feld zugeordnet. Fest codiert als „LACEWORK“. Fest codiert auf „Lacework Cloud Security“. |
metadata.event_type |
metadata.event_type |
Wird durch die Logik bestimmt. Wird auf „NETWORK_CONNECTION“ festgelegt, wenn sowohl „principal.ip“ als auch „target.ip“ vorhanden sind, auf „STATUS_UPDATE“, wenn nur „principal.ip“ vorhanden ist, und andernfalls auf „GENERIC_EVENT“. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten