Raccogliere i log di Lacework Cloud Security
Panoramica
Questo parser estrae i campi dai log JSON di Lacework Cloud Security, trasformandoli in formato UDM. Mappa i campi dei log non elaborati ai campi UDM, gestisce vari tipi di dati e arricchisce l'evento con un contesto aggiuntivo proveniente dai tag, classificando infine il tipo di evento in base alla presenza di informazioni principali e di destinazione.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi a FortiCNAPP Lacework.
Configura un feed in Google SecOps per importare i log di Lacework
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuova.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log Lacework).
- Seleziona Webhook come Tipo di origine.
- Seleziona Lacework come Tipo di log.
- Fai clic su Avanti.
- (Facoltativo) Specifica i valori per i seguenti parametri di input:
- Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
. - Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Delimitatore di split: il delimitatore utilizzato per separare le righe di log, ad esempio
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
- Copia e memorizza la chiave segreta. Non potrai più visualizzare questa chiave segreta. Se necessario, puoi rigenerare una nuova chiave segreta, ma questa azione rende obsoleta la chiave segreta precedente.
- Dalla scheda Dettagli, copia l'URL dell'endpoint del feed dal campo Informazioni endpoint. Devi specificare questo URL endpoint nell'applicazione client.
- Fai clic su Fine.
Crea una chiave API per il feed webhook
Vai alla console Google Cloud > Credenziali.
Fai clic su Crea credenziali e poi seleziona Chiave API.
Limita l'accesso della chiave API all'API Chronicle.
Specifica l'URL dell'endpoint
- Nell'applicazione client, specifica l'URL dell'endpoint HTTPS fornito nel feed webhook.
Attiva l'autenticazione specificando la chiave API e la chiave segreta nell'intestazione personalizzata nel seguente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Consiglio: specifica la chiave API come intestazione anziché nell'URL.
Se il client webhook non supporta le intestazioni personalizzate, puoi specificare la chiave API e la chiave segreta utilizzando parametri di ricerca nel seguente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Sostituisci quanto segue:
ENDPOINT_URL
: l'URL dell'endpoint del feed.API_KEY
: la chiave API per l'autenticazione in Google SecOps.SECRET
: la chiave segreta che hai generato per autenticare il feed.
Configurare un webhook Lacework per Google SecOps
- Accedi alla console Lacework FortiCNAPP con privilegi amministrativi.
- Vai a Impostazioni > Notifiche > Canali di avviso.
- Fai clic su + Aggiungi nuovo.
- Seleziona Webhook.
- Fai clic su Avanti.
- Specifica un nome univoco per il canale (ad esempio Google SecOps).
- URL webhook: inserisci
<ENDPOINT_URL>
seguito da<API_KEY>
e<SECRET>
. - Fai clic su Salva.
- Seleziona Regole di avviso e configura i dettagli di inoltro degli avvisi richiesti.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Mappato direttamente dal campo AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Mappato direttamente dal campo CREATED_TIME , convertito in un timestamp. |
FILEDATA_HASH |
target.file.sha256 |
Mappato direttamente dal campo FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Mappato direttamente dal campo FILE_PATH . |
IP_ADDR |
principal.ip |
Mappato direttamente dal campo IP_ADDR . |
OS |
target.platform |
Mappato dal campo OS . La logica converte varie stringhe del sistema operativo (Linux, Windows, Mac) in valori enumerati UDM (LINUX, WINDOWS, MAC). Se non viene trovata alcuna corrispondenza, il valore predefinito è UNKNOWN_PLATFORM. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Mappato direttamente dal campo STATUS come campo aggiuntivo. |
TAGS.Account |
metadata.product_deployment_id |
Mappato direttamente dal campo TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Mappato direttamente dal campo TAGS.AmiId come campo aggiuntivo. |
TAGS.ExternalIp |
target.ip |
Mappato direttamente dal campo TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Mappato direttamente dal campo TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Mappato direttamente dal campo TAGS.InstanceId , con il prefisso "Device Instance Id: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Mappato direttamente dal campo TAGS.LwTokenShort come campo aggiuntivo. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Mappato direttamente dal campo MID come campo aggiuntivo. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Mappato direttamente dal campo MODE come campo aggiuntivo. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Mappato direttamente dal campo TAGS.Name come campo aggiuntivo. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Mappato direttamente dal campo TAGS.QSConfigName-vfzg0 come campo aggiuntivo. |
TAGS.ResourceType |
target.resource.resource_subtype |
Mappato direttamente dal campo TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Mappato direttamente dal campo TAGS.SubnetId come etichetta in target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Mappato direttamente dal campo TAGS.VmInstanceType come etichetta in target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Mappato direttamente dal campo TAGS.VmProvider come etichetta in target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Mappato direttamente dal campo TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Mappato direttamente dal campo TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Mappato direttamente dal campo TAGS.alpha.eksctl.io/nodegroup-name come campo aggiuntivo. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Mappato direttamente dal campo TAGS.alpha.eksctl.io/nodegroup-type come campo aggiuntivo. |
TAGS.arch |
principal.platform_version |
Mappato direttamente dal campo TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Mappato direttamente dal campo TAGS.aws:autoscaling:groupName come campo aggiuntivo. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Mappato direttamente dal campo TAGS.aws:ec2:fleet-id come campo aggiuntivo. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Mappato direttamente dal campo TAGS.aws:ec2launchtemplate:id come campo aggiuntivo. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Mappato direttamente dal campo TAGS.aws:ec2launchtemplate:version come campo aggiuntivo. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Mappato direttamente dal campo TAGS.aws:eks:cluster-name come campo aggiuntivo. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Mappato direttamente dal campo TAGS.enableCrowdStrike come campo aggiuntivo. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/application come campo aggiuntivo. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/environment come campo aggiuntivo. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/managedBy come campo aggiuntivo. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/project come campo aggiuntivo. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/proxy-type come campo aggiuntivo. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/service come campo aggiuntivo. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Mappato direttamente dal campo TAGS.falconx.io/team come campo aggiuntivo. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Mappato direttamente dal campo TAGS.k8s.io/cluster-autoscaler/enabled come campo aggiuntivo. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Mappato direttamente dal campo TAGS.k8s.io/cluster-autoscaler/falcon come campo aggiuntivo. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Mappato direttamente dal campo TAGS.kubernetes.io/cluster/falcon come campo aggiuntivo. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Mappato direttamente dal campo TAGS.lw_KubernetesCluster come campo aggiuntivo. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Mappato direttamente dal campo LAST_UPDATE come campo aggiuntivo. Hardcoded su "LACEWORK". Hardcoded su "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Determinato dalla logica. Impostato su "NETWORK_CONNECTION" se sono presenti sia principal.ip che target.ip, su "STATUS_UPDATE" se è presente solo principal.ip e su "GENERIC_EVENT" in caso contrario. |
Modifiche
2023-11-09
- Parser appena creato.