Collecter les journaux ForgeRock OpenAM

Compatible avec :

Ce document explique comment ingérer les journaux ForgeRock OpenAM dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les champs des journaux aux formats CSV, Syslog+KV ou JSON, les normalise et les mappe au modèle de données unifié (UDM). Il gère différents types d'événements OpenAM, y compris les connexions/déconnexions, les résultats d'accès et les journaux généraux, en enrichissant les données avec des informations sur les utilisateurs, les groupes et le réseau, tout en effectuant des transformations spécifiques pour différents formats de journaux et types d'événements. L'analyseur donne la priorité à l'analyse JSON, puis revient à Syslog+KV et enfin à CSV, en supprimant les journaux dont le format n'est pas compatible.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Windows 2016 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
  • Accès privilégié à Forgerock OpenAM (par exemple, amAdmin)

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

Installation de fenêtres

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Ressources d'installation supplémentaires

Pour plus d'options d'installation, consultez le guide d'installation.

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :
    • Recherchez le fichier config.yaml. En règle générale, il se trouve dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'OPENAM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.

  4. Remplacez <customer_id> par le numéro client réel.

  5. Mettez à jour /path/to/ingestion-authentication-file.json en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart bindplane-agent
    
  • Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer la journalisation d'audit dans Forgerock OpenAM

  1. Connectez-vous à la console AM.
  2. Accédez à Configurer > Services mondiaux > Journalisation des audits.
  3. Activez la journalisation d'audit pour démarrer la fonctionnalité de journalisation d'audit.
  4. Dans les listes "Filtres de la liste d'autorisation des champs" et "Filtres de la liste de blocage des champs", saisissez les valeurs à inclure (liste d'autorisation) ou à exclure (liste de blocage) des journaux des événements d'audit.
  5. Cliquez sur Enregistrer.

Configurer les gestionnaires Syslog pour Forgerock OpenAM

  1. Connectez-vous à la console AM en tant qu'administrateur, par exemple amAdmin.
  2. Pour créer le gestionnaire d'événements dans la configuration globale, accédez à Configurer > Services globaux > Journalisation des audits.
  3. Pour créer le gestionnaire d'événements dans un realm, accédez à Realms > Nom du realm > Services > Journalisation des audits.
  4. Cliquez sur Ajouter une configuration secondaire > Syslog.
  5. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom pour le gestionnaire d'événements (par exemple, Google SecOps Syslog Event Handler).
    • Nom d'hôte du serveur : saisissez l'adresse IP de l'agent Bindplane.
    • Port du serveur : saisissez le numéro de port de l'agent Bindplane (par exemple, 514 pour UDP).
    • Protocole de transport : sélectionnez UDP.
    • Délai avant expiration de la connexion : saisissez le nombre de secondes pour se connecter (par exemple, 120).
    • Facultatif : Activez l'option Mise en mémoire tampon.
  6. Cliquez sur Créer.
  7. Une fois le gestionnaire d'événements d'audit syslog créé, plusieurs onglets de configuration s'affichent.
  8. Dans l'onglet Configuration générale du gestionnaire, sélectionnez Activé pour activer le gestionnaire d'événements, s'il est désactivé.
  9. Sélectionnez les thèmes pour les journaux d'audit :
    • Accès
    • Activité
    • Authentification
    • Configuration
  10. Cliquez sur Enregistrer.
  11. Dans l'onglet Configuration Syslog, fournissez les informations de configuration suivantes :
    • Nom d'hôte du serveur : saisissez l'adresse IP de l'agent Bindplane.
    • Port du serveur : saisissez le numéro de port de l'agent Bindplane.
    • Délai avant expiration de la connexion : saisissez le nombre de secondes pour se connecter (par exemple, 120).
    • Protocole de transport : sélectionnez UDP.
    • Établissement : sélectionnez Local0.
    • Tous les sujets définissent la gravité sur INFORMATIONAL.
  12. Cliquez sur Enregistrer.
  13. Dans l'onglet Mise en mémoire tampon, sélectionnez Mise en mémoire tampon activée pour l'activer.

  14. Cliquez sur Enregistrer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
client.ip principal.ip Adresse IP du client à l'origine de la requête.
client.ip principal.asset.ip Adresse IP de l'élément client à l'origine de la requête.
client.port principal.port Port utilisé par le client à l'origine de la requête.
entries[0].info.authLevel principal.resource.resource_subtype Niveau d'authentification associé à l'événement. Préfixé par "authLevel:".
entries[0].info.displayName security_result.description Nom descriptif du nœud dans l'arborescence d'authentification.
entries[0].info.ipAddress principal.asset.ip Adresse IP associée au principal dans l'événement.
entries[0].info.ipAddress principal.ip Adresse IP associée au principal dans l'événement.
entries[0].info.nodeId principal.resource.id Identifiant unique du nœud dans l'arborescence d'authentification. Préfixé par "nodeId:".
entries[0].info.nodeOutcome principal.resource.attribute.labels.value Résultat du nœud dans l'arborescence d'authentification.
entries[0].info.nodeType principal.resource.type Type de nœud dans l'arborescence d'authentification. Préfixé par "nodeType:".
entries[0].info.treeName principal.resource.name Nom de l'arborescence d'authentification. Préfixé par "treeName:".
eventName metadata.product_event_type Nom de l'événement brut provenant des journaux OpenAM.
http.request.headers.host[0] target.asset.hostname Nom d'hôte du serveur cible, extrait de l'en-tête host.
http.request.headers.host[0] target.hostname Nom d'hôte du serveur cible, extrait de l'en-tête host.
http.request.headers.user-agent[0] network.http.user_agent User-agent de la requête HTTP.
http.request.method network.http.method Méthode HTTP utilisée dans la requête.
http.request.path target.url Chemin d'URL de la requête HTTP.
info.failureReason security_result.summary Motif de l'échec de l'authentification. Codé en dur sur "SSO". Déterminé par une logique basée sur eventName et d'autres champs. Il peut s'agir de GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP ou STATUS_UPDATE. Codé en dur sur "OPENAM". Codé en dur sur "OpenAM". Codé en dur sur "ForgeRock".
principal target.user.userid ID utilisateur impliqué dans l'événement, extrait des champs userId, principal ou runAs.
result security_result.action_details Résultat de l'événement (par exemple, "SUCCESSFUL", "FAILED").
response.detail.reason security_result.summary Raison d'un échec dans un événement de résultat d'accès.
response.status security_result.action_details État de la réponse dans un événement de résultat d'accès.
runAs target.user.userid ID utilisateur impliqué dans l'événement, extrait des champs userId, principal ou runAs.
security_result.action security_result.action Action entreprise à la suite de l'événement de sécurité (par exemple, "ALLOW", "BLOCK").
server.ip target.asset.ip Adresse IP du serveur cible.
server.ip target.ip Adresse IP du serveur cible.
server.port target.port Port du serveur cible.
timestamp metadata.event_timestamp Horodatage de l'événement.
trackingIds metadata.product_log_id ID de suivi associé à l'événement.
transactionId metadata.product_deployment_id ID de la transaction associée à l'événement.
userId target.user.userid ID utilisateur impliqué dans l'événement, extrait des champs userId, principal ou runAs.
userId target.user.group_identifiers Identifiants de groupe associés à l'utilisateur.
am_group target.user.group_identifiers Identifiants de groupe associés à l'utilisateur.
am_user target.user.email_addresses Adresse e-mail de l'utilisateur, si elle est présente dans le champ am_user.
loginID[0] target.user.userid ID de connexion utilisé dans l'événement.
loginID[0] target.user.email_addresses Adresse e-mail utilisée pour la connexion, si elle est présente dans le champ loginID.
hostip intermediary.hostname Nom d'hôte d'un appareil intermédiaire.
hostip intermediary.ip Adresse IP d'un appareil intermédiaire.
src_ip principal.asset.ip Adresse IP source.
src_ip principal.ip Adresse IP source.
desc metadata.description Description de l'événement.
payload metadata.description Charge utile de l'événement.

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