Collecter les journaux Forseti Open Source

Version de l'analyseur : 2.0

Compatible avec :

Ce document explique comment ingérer les journaux Forseti Open Source dans Google Security Operations à l'aide de Google Cloud Storage V2.

Forseti Security est un ensemble d'outils Open Source axés sur la communauté et conçus pour améliorer la sécurité des environnements Google Cloud Platform. Forseti prend des instantanés d'inventaire des ressources GCP, recherche la conformité du contrôle des accès et offre une visibilité sur les stratégies Cloud IAM.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Une instance Google SecOps.
  • Un projet GCP avec l'API Cloud Storage activée.
  • Autorisations permettant de créer et de gérer des buckets GCS et des règles IAM.
  • Un déploiement Forseti Security existant.
  • Accès au fichier de configuration du serveur Forseti (forseti_conf_server.yaml).

Créer un bucket Google Cloud Storage

Utiliser la console Google Cloud

  1. Accédez à la console Google Cloud.
  2. Sélectionnez votre projet ou créez-en un.
  3. Dans le menu de navigation, accédez à Cloud Storage > Buckets.
  4. Cliquez sur Créer un bucket.
  5. Fournissez les informations de configuration suivantes :

    Paramètre Valeur
    Attribuez un nom au bucket Saisissez un nom unique (par exemple, forseti-violations-export).
    Type d'emplacement Choisissez en fonction de vos besoins (région, birégion, multirégion).
    Emplacement Sélectionnez l'emplacement (par exemple, us-central1).
    Classe de stockage Standard (recommandé pour les journaux auxquels vous accédez fréquemment)
    Access control (Contrôle des accès) Uniforme (recommandé)
    Outils de protection Facultatif : Activez la gestion des versions des objets ou la règle de conservation.
  6. Cliquez sur Créer.

Utiliser l'outil de ligne de commande gcloud

  • Vous pouvez également créer un bucket à l'aide de la commande gcloud :

    gcloud storage buckets create gs://forseti-violations-export \
        --location=us-central1 \
        --default-storage-class=STANDARD
    
  • Remplacez forseti-violations-export par le nom de bucket unique dont vous avez besoin.

  • Remplacez us-central1 par la région de votre choix.

Configurer Forseti Security pour exporter les cas de non-respect vers GCS

Forseti Security utilise une configuration de notificateur dans le fichier forseti_conf_server.yaml pour exporter les violations du scanner vers GCS.

  1. Connectez-vous à votre VM de serveur Forseti à l'aide de SSH : bash gcloud compute ssh forseti-server-vm --project=YOUR_PROJECT_ID --zone=YOUR_ZONE
  2. Ouvrez le fichier de configuration pour le modifier : bash sudo nano /home/ubuntu/forseti-security/configs/forseti_conf_server.yaml Si vous utilisez une configuration basée sur GCS, téléchargez-la d'abord : bash gsutil cp gs://YOUR_FORSETI_SERVER_BUCKET/configs/forseti_conf_server.yaml ~/forseti_conf_server.yaml
  3. Accédez à la section notifier et localisez la sous-section resources.
  4. Pour chaque type de ressource de non-respect que vous souhaitez exporter, configurez le notificateur gcs_violations :

    notifier:
        resources:
            - resource: iam_policy_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: firewall_rule_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: cloudsql_acl_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: bucket_acl_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: config_validator_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
    

    Paramètres clés :

    • resource : type de non-respect (par exemple, iam_policy_violations).
    • data_format : définissez sur csv ou json.
    • gcs_path : chemin d'accès Cloud Storage (doit inclure une barre oblique à la fin).
  5. Enregistrez le fichier et, si nécessaire, importez-le de nouveau dans GCS.

  6. Rechargez la configuration : bash forseti server configuration reload

  7. Valider : bash forseti server configuration get | grep gcs_violations

Récupérer le compte de service Google SecOps

Configurer un flux dans Google SecOps

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur Ajouter un flux, puis sélectionnez Configurer un seul flux.
  3. Nom du flux : saisissez un nom (par exemple, Forseti Violations).
  4. Type de source : sélectionnez Google Cloud Storage V2.
  5. Type de journal : sélectionnez Open Source Forseti.
  6. Cliquez sur Obtenir un compte de service.
  7. Copiez l'adresse e-mail unique du compte de service (par exemple, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
  8. Cliquez sur Suivant.
  9. Spécifiez les paramètres d'entrée :
    • URL du bucket de stockage : gs://forseti-violations-export/violations/
    • Option de suppression de la source : sélectionnez l'option de votre choix (par exemple, Jamais pour les tests).
  10. Cliquez sur Suivant, vérifiez la configuration, puis cliquez sur Envoyer.

Accorder des autorisations IAM au compte de service Google SecOps

Utiliser la console Google Cloud

  1. Accédez à Cloud Storage > Buckets.
  2. Cliquez sur le nom de votre bucket, puis accédez à l'onglet Autorisations.
  3. Cliquez sur Accorder l'accès.
  4. Ajouter des comptes principaux : collez l'adresse e-mail du compte de service Google SecOps.
  5. Attribuer des rôles : sélectionnez Lecteur d'objets Storage. (Utilisez Administrateur des objets Storage si vous avez sélectionné une option de suppression dans le flux.)
  6. Cliquez sur Enregistrer.
  • Utiliser l'outil de ligne de commande gcloud

    gcloud storage buckets add-iam-policy-binding gs://forseti-violations-export \
        --member="serviceAccount:CHRONICLE_SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.objectViewer"
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
data.resource_data.instanceGroupUrls about Fusionné à partir d'un tableau d'URL instanceGroupUrls.
data.resource_data.nodePools.*.statusMessage metadata.description Valeur issue de nodePool.statusMessage.
data.resource_type metadata.event_type Types spécifiques pour KMS/FW ; sinon, GENERIC_EVENT.
data.scanner_index_id metadata.product_log_id Valeur copiée directement sous forme de chaîne.
N/A metadata.product_name Définissez la valeur sur FORSETI SECURITY.
N/A metadata.vendor_name Définissez-le sur FORSETI.
data.resource_data.direction network.direction Définissez la valeur sur INBOUND si la direction est INGRESS.
data.resource_data.endpoint principal.ip Valeur copiée directement.
data.full_name, serviceAccount principal.user.userid Extrait de full_name ou serviceAccount.
data.violation_type security_result.category Correspond à POLICY_VIOLATION ou ACL_VIOLATION.
data.rule_name security_result.rule_name Valeur copiée directement.
data.full_name target.asset.attribute.cloud.project.id Extrait de full_name à l'aide de grok.
data.resource_type target.resource.resource_type Mappé à un type spécifique en fonction de resource_type.

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