Collecter les journaux ForgeRock OpenAM
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- 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
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
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
- 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).
- Recherchez le fichier
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
Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.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
- Connectez-vous à la console AM.
- Accédez à Configurer > Services mondiaux > Journalisation des audits.
- Activez la journalisation d'audit pour démarrer la fonctionnalité de journalisation d'audit.
- 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.
- Cliquez sur Enregistrer.
Configurer les gestionnaires Syslog pour Forgerock OpenAM
- Connectez-vous à la console AM en tant qu'administrateur, par exemple amAdmin.
- Pour créer le gestionnaire d'événements dans la configuration globale, accédez à Configurer > Services globaux > Journalisation des audits.
- Pour créer le gestionnaire d'événements dans un realm, accédez à Realms > Nom du realm > Services > Journalisation des audits.
- Cliquez sur Ajouter une configuration secondaire > Syslog.
- 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.
- Nom : saisissez un nom pour le gestionnaire d'événements (par exemple, Google SecOps
- Cliquez sur Créer.
- Une fois le gestionnaire d'événements d'audit syslog créé, plusieurs onglets de configuration s'affichent.
- Dans l'onglet Configuration générale du gestionnaire, sélectionnez Activé pour activer le gestionnaire d'événements, s'il est désactivé.
- Sélectionnez les thèmes pour les journaux d'audit :
- Accès
- Activité
- Authentification
- Configuration
- Cliquez sur Enregistrer.
- 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.
- Cliquez sur Enregistrer.
Dans l'onglet Mise en mémoire tampon, sélectionnez Mise en mémoire tampon activée pour l'activer.
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.