Lacework Cloud Security-Protokolle erfassen
Übersicht
Dieser Parser extrahiert Felder aus JSON-Logs von Lacework Cloud Security und wandelt sie in das UDM-Format um. Dabei werden Rohprotokollfelder UDM-Feldern zugeordnet, verschiedene Datentypen werden verarbeitet und das Ereignis wird mit zusätzlichen Kontextinformationen aus Tags angereichert. Der Ereignistyp wird schließlich basierend auf der Anwesenheit von Informationen zum Haupt- und Zielnutzer klassifiziert.
Hinweis
- Sie benötigen eine Google SecOps-Instanz.
- Sie benötigen Berechtigungen für FortiCNAPP Lacework.
Feed in Google SecOps für die Aufnahme der Lacework-Protokolle konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Lacework-Protokolle.
- Wählen Sie als Quelltyp Webhook 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 die Aufteilung: Das Trennzeichen, mit dem Logzeilen getrennt werden, z. B.
\n
. - Asset-Namespace: der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- Trennzeichen für die Aufteilung: Das Trennzeichen, mit dem Logzeilen getrennt werden, z. B.
- Klicken Sie auf Weiter.
- Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
- Klicken Sie auf Secret-Schlüssel generieren, um einen Secret-Schlüssel zur Authentifizierung dieses Feeds zu generieren.
- Kopieren und speichern Sie den geheimen Schlüssel. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen Secret-Schlüssel generieren. Dadurch wird der vorherige Secret-Schlüssel jedoch ungültig.
- Kopieren Sie auf dem Tab Details die Feedendpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
- Klicken Sie auf Fertig.
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.
Beschränken Sie den API-Schlüsselzugriff auf die Chronicle API.
Endpunkt-URL angeben
- Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed angegeben ist.
Aktiviere die Authentifizierung, indem du den API-Schlüssel und den geheimen Schlüssel als Teil der benutzerdefinierten Kopfzeile im folgenden Format angibst:
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 Header unterstützt, können Sie den API-Schlüssel und den geheimen Schlüssel mithilfe von Suchparametern im folgenden Format angeben:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ersetzen Sie Folgendes:
ENDPOINT_URL
: die URL des Feedendpunkts.API_KEY
: Der API-Schlüssel, mit dem Sie sich bei Google SecOps authentifizieren.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.
- Gehen Sie zu Einstellungen > Benachrichtigungen > Benachrichtigungskanäle.
- Klicken Sie auf + Neuen Vergleich 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 Routing von Benachrichtigungen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Direkt aus dem Feld AGENT_VERSION zugeordnet. |
CREATED_TIME |
metadata.event_timestamp |
Wird 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 |
Aus dem Feld OS zugeordnet. Die Logik wandelt verschiedene Betriebssystemstrings (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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld TAGS.InstanceId mit dem Präfix „Geräteinstanzen-ID: " zugeordnet. |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Wird direkt aus dem Feld TAGS.LwTokenShort als zusätzliches Feld zugeordnet. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Wird direkt aus dem Feld MID als zusätzliches Feld zugeordnet. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Wird direkt aus dem Feld MODE als zusätzliches Feld zugeordnet. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Wird direkt aus dem Feld TAGS.Name als zusätzliches Feld zugeordnet. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Wird 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 |
Wird direkt aus dem Feld TAGS.SubnetId als Label in „target.resource.attribute“ zugeordnet. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Wird direkt aus dem Feld TAGS.VmInstanceType als Label in „target.resource.attribute“ zugeordnet. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld TAGS.aws:eks:cluster-name als zusätzliches Feld zugeordnet. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Wird direkt aus dem Feld TAGS.enableCrowdStrike als zusätzliches Feld zugeordnet. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld TAGS.lw_KubernetesCluster als zusätzliches Feld zugeordnet. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Wird direkt aus dem Feld LAST_UPDATE als zusätzliches Feld zugeordnet. Hartcodiert auf „LACEWORK“. Hartcodiert auf „Lacework Cloud Security“. |
metadata.event_type |
metadata.event_type |
Wird durch Logik bestimmt. Legen Sie „NETWORK_CONNECTION“ fest, wenn sowohl „principal.ip“ als auch „target.ip“ vorhanden sind, „STATUS_UPDATE“, wenn nur „principal.ip“ vorhanden ist, und andernfalls „GENERIC_EVENT“. |
Änderungen
2023-11-09
- Neu erstellter Parser.