Collecter les journaux de sécurité Lacework Cloud

Compatible avec:

Présentation

Cet analyseur extrait des champs des journaux JSON Lacework Cloud Security et les transforme au format UDM. Il met en correspondance les champs de journal bruts avec les champs UDM, gère différents types de données et enrichit l'événement avec du contexte supplémentaire provenant des balises, puis classe le type d'événement en fonction de la présence d'informations sur l'utilisateur principal et la cible.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google SecOps.
  • Assurez-vous de disposer d'un accès privilégié à FortiCNAPP Lacework.

Configurer un flux dans Google SecOps pour ingérer les journaux Lacework

  1. Accédez à Paramètres du SIEM > Flux.
  2. Cliquez sur Ajouter.
  3. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Lacework).
  4. Sélectionnez Webhook comme type de source.
  5. Sélectionnez Lacework comme Type de journal.
  6. Cliquez sur Suivant.
  7. 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 journal, par exemple \n.
    • Espace de noms des éléments: espace de noms des éléments.
    • Libellés d'ingestion: libellé appliqué aux événements de ce flux.
  8. Cliquez sur Suivant.
  9. Vérifiez la configuration du flux dans l'écran Finaliser, puis cliquez sur Envoyer.
  10. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  11. 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 cette action rend l'ancienne clé secrète obsolète.
  12. Dans l'onglet Détails, copiez l'URL du point de terminaison du flux dans le champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
  13. Cliquez sur OK.

Créer une clé API pour le flux webhook

  1. Accédez à Google Cloud Console > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API.

  3. Limitez l'accès de la clé API à l'API Chronicle.

Spécifier l'URL du point de terminaison

  1. Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
  2. 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 plutôt que dans l'URL.

  3. Si votre client webhook n'est pas compatible avec 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 permettant de s'authentifier 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

  1. Connectez-vous à la console Lacework FortiCNAPP avec des droits d'administrateur.
  2. Accédez à Paramètres > Notifications > Canaux d'alerte.
  3. Cliquez sur + Ajouter.
  4. Sélectionnez Webhook.
  5. Cliquez sur Suivant.
  6. Attribuez un nom unique au canal (par exemple, Google SecOps).
  7. URL du webhook: saisissez <ENDPOINT_URL>, suivi de <API_KEY> et de <SECRET>.
  8. Cliquez sur Enregistrer.
  9. Sélectionnez Règles d'alerte, puis configurez les informations de routage des alertes requises.

Tableau 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, 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 diverses chaînes d'OS (Linux, Windows, Mac) en valeurs d'énumération UDM (LINUX, WINDOWS, MAC). La valeur par défaut est UNKNOWN_PLATFORM si aucune correspondance n'est trouvée.
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 "ID d'instance de l'appareil: ".
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. Code codé en dur sur "LACEWORK". Code dur "Lacework Cloud Security".
metadata.event_type metadata.event_type Déterminé par la logique. Défini sur "NETWORK_CONNECTION" si les valeurs principal.ip et target.ip sont présentes, sur "STATUS_UPDATE" si seule la valeur principal.ip est présente, et sur "GENERIC_EVENT" dans le cas contraire.

Modifications

2023-11-09

  • Analyseur nouvellement créé.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.