Collecter les journaux Lacework Cloud Security
Présentation
Ce parseur extrait les champs des journaux JSON Lacework Cloud Security et les transforme au format UDM. Il mappe les champs de journaux bruts aux champs UDM, gère différents types de données et enrichit l'événement avec un contexte supplémentaire provenant des tags. Enfin, il classe le type d'événement en fonction de la présence d'informations sur le principal et la cible.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google Security Operations.
- Accès privilégié à FortiCNAPP Lacework.
Configurer des flux
Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :
- Paramètres SIEM> Flux
- Plate-forme de contenu > Packs de contenu
Configurer des flux à partir de Paramètres SIEM > Flux
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Lacework).
- Sélectionnez Webhook comme type de source.
- Sélectionnez Lacework comme Type de journal.
- Cliquez sur Suivant.
- Facultatif : Spécifiez les valeurs des paramètres d'entrée suivants :
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
\n
.
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
- Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
- Copiez et stockez la clé secrète. Vous ne pourrez plus afficher cette clé secrète. Si nécessaire, vous pouvez générer une nouvelle clé secrète, mais l'ancienne deviendra obsolète.
- Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Cliquez sur OK.
Configurer des flux depuis le Hub de contenu
Indiquez les valeurs des champs suivants :
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
\n
.
Options avancées
- Nom du flux : valeur préremplie qui identifie le flux.
- Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
- Espace de noms de l'élément : espace de noms associé au flux.
Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
Copiez et stockez la clé secrète. Vous ne pourrez plus afficher cette clé secrète. Si nécessaire, vous pouvez générer une nouvelle clé secrète, mais l'ancienne deviendra obsolète.
Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
Créer une clé API pour le flux de webhook
Accédez à la consoleGoogle Cloud > Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
Restreignez l'accès à la clé API à l'API Chronicle.
Spécifier l'URL du point de terminaison
- Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
Activez l'authentification en spécifiant la clé API et la clé secrète dans l'en-tête personnalisé au format suivant :
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recommandation : Spécifiez la clé API en tant qu'en-tête au lieu de la spécifier dans l'URL.
Si votre client de webhook n'accepte pas les en-têtes personnalisés, vous pouvez spécifier la clé API et la clé secrète à l'aide de paramètres de requête au format suivant :
ENDPOINT_URL?key=API_KEY&secret=SECRET
Remplacez les éléments suivants :
ENDPOINT_URL
: URL du point de terminaison du flux.API_KEY
: clé API pour l'authentification auprès de Google SecOps.SECRET
: clé secrète que vous avez générée pour authentifier le flux.
Configurer un webhook Lacework pour Google SecOps
- Connectez-vous à la console Lacework FortiCNAPP avec des droits d'administrateur.
- Accédez à Paramètres > Notifications > Canaux d'alerte.
- Cliquez sur + Ajouter.
- Sélectionnez Webhook.
- Cliquez sur Suivant.
- Spécifiez un nom unique pour le canal (par exemple, Google SecOps).
- URL du webhook : saisissez
<ENDPOINT_URL>
, suivi de<API_KEY>
et<SECRET>
. - Cliquez sur Enregistrer.
- Sélectionnez Règles d'alerte et configurez les détails de routage des alertes requis.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Mappé directement à partir du champ AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Mappé directement à partir du champ CREATED_TIME et converti en code temporel. |
FILEDATA_HASH |
target.file.sha256 |
Mappé directement à partir du champ FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Mappé directement à partir du champ FILE_PATH . |
IP_ADDR |
principal.ip |
Mappé directement à partir du champ IP_ADDR . |
OS |
target.platform |
Mappé à partir du champ OS . La logique convertit différentes chaînes d'OS (Linux, Windows, Mac) en valeurs d'énumération UDM (LINUX, WINDOWS, MAC). Si aucune correspondance n'est trouvée, la valeur par défaut est UNKNOWN_PLATFORM. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Mappé directement à partir du champ STATUS en tant que champ supplémentaire. |
TAGS.Account |
metadata.product_deployment_id |
Mappé directement à partir du champ TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Mappé directement à partir du champ TAGS.AmiId en tant que champ supplémentaire. |
TAGS.ExternalIp |
target.ip |
Mappé directement à partir du champ TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Mappé directement à partir du champ TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Mappé directement à partir du champ TAGS.InstanceId , avec le préfixe "Device Instance Id: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Mappé directement à partir du champ TAGS.LwTokenShort en tant que champ supplémentaire. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Mappé directement à partir du champ MID en tant que champ supplémentaire. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Mappé directement à partir du champ MODE en tant que champ supplémentaire. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Mappé directement à partir du champ TAGS.Name en tant que champ supplémentaire. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Mappé directement à partir du champ TAGS.QSConfigName-vfzg0 en tant que champ supplémentaire. |
TAGS.ResourceType |
target.resource.resource_subtype |
Mappé directement à partir du champ TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Mappé directement à partir du champ TAGS.SubnetId en tant que libellé dans target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Mappé directement à partir du champ TAGS.VmInstanceType en tant que libellé dans target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Mappé directement à partir du champ TAGS.VmProvider en tant que libellé dans target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Mappé directement à partir du champ TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Mappé directement à partir du champ TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Mappé directement à partir du champ TAGS.alpha.eksctl.io/nodegroup-name en tant que champ supplémentaire. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Mappé directement à partir du champ TAGS.alpha.eksctl.io/nodegroup-type en tant que champ supplémentaire. |
TAGS.arch |
principal.platform_version |
Mappé directement à partir du champ TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Mappé directement à partir du champ TAGS.aws:autoscaling:groupName en tant que champ supplémentaire. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Mappé directement à partir du champ TAGS.aws:ec2:fleet-id en tant que champ supplémentaire. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Mappé directement à partir du champ TAGS.aws:ec2launchtemplate:id en tant que champ supplémentaire. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Mappé directement à partir du champ TAGS.aws:ec2launchtemplate:version en tant que champ supplémentaire. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Mappé directement à partir du champ TAGS.aws:eks:cluster-name en tant que champ supplémentaire. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Mappé directement à partir du champ TAGS.enableCrowdStrike en tant que champ supplémentaire. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/application en tant que champ supplémentaire. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/environment en tant que champ supplémentaire. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/managedBy en tant que champ supplémentaire. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/project en tant que champ supplémentaire. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/proxy-type en tant que champ supplémentaire. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/service en tant que champ supplémentaire. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Mappé directement à partir du champ TAGS.falconx.io/team en tant que champ supplémentaire. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Mappé directement à partir du champ TAGS.k8s.io/cluster-autoscaler/enabled en tant que champ supplémentaire. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Mappé directement à partir du champ TAGS.k8s.io/cluster-autoscaler/falcon en tant que champ supplémentaire. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Mappé directement à partir du champ TAGS.kubernetes.io/cluster/falcon en tant que champ supplémentaire. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Mappé directement à partir du champ TAGS.lw_KubernetesCluster en tant que champ supplémentaire. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Mappé directement à partir du champ LAST_UPDATE en tant que champ supplémentaire. Codé en dur sur "LACEWORK". Codé en dur sur "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Déterminé par la logique. Définissez sur "NETWORK_CONNECTION" si principal.ip et target.ip sont tous deux présents, sur "STATUS_UPDATE" si seul principal.ip est présent, et sur "GENERIC_EVENT" dans le cas contraire. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.