Collecter les journaux CyberArk Privilege Cloud
Ce document explique comment ingérer les journaux CyberArk Privilege Cloud dans Google Security Operations à l'aide de Bindplane. Le code de l'analyseur transforme les journaux de leur format SYSLOG + KV brut au format UDM (Unified Data Model) de Google SecOps. Il extrait d'abord les champs des messages au format CEF à l'aide de modèles grok et de l'analyse clé-valeur, puis mappe ces champs et d'autres à leurs champs UDM correspondants, en enrichissant les données avec des valeurs standardisées pour le fournisseur, le produit et la gravité.
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é à CyberArk Privilege Cloud
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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:6514" 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 log_type: 'CYBERARK_PRIVILEGE_CLOUD' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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
Installer Secure Tunnel
- Assurez-vous que votre ID de machine est unique, même lorsque les machines sont déployées dans plusieurs domaines.
- Téléchargez le package logiciel Privilege Cloud à partir de Déployer le connecteur Privilege Cloud (Standard), copiez le fichier ZIP Secure Tunnel, puis décompressez-le.
- Exécutez l'installation à partir du dossier décompressé.
- Sur la page Sélectionner le dossier d'installation, saisissez l'emplacement du dossier d'installation, puis cliquez sur Suivant.
- Sur la page Prêt à l'installation, cliquez sur Installer.
- Une fois l'installation terminée, cliquez sur Terminer. L'outil de configuration est lancé.
Configurer Secure Tunnel
- Sur la page S'authentifier auprès de Privilege Cloud, saisissez les informations suivantes, puis cliquez sur Suivant :
- Sous-domaine ou ID client : le sous-domaine est l'identifiant de votre système dans l'adresse système, tel qu'il apparaît dans le nom de domaine complet du portail Privilege Cloud :
https://<subdomain>.Privilegecloud.cyberark.com
. Ne saisissez que l'identifiant<subdomain>
, et non l'URL complète. Vous pouvez également utiliser l'ID client fourni par CyberArk. - Nom d'utilisateur et mot de passe : saisissez les identifiants fournis par l'assistance CyberArk.
- Sous-domaine ou ID client : le sous-domaine est l'identifiant de votre système dans l'adresse système, tel qu'il apparaît dans le nom de domaine complet du portail Privilege Cloud :
- Sur la page Configurer les composants sur site, ajoutez les composants que vous souhaitez connecter via le Secure Tunnel, puis cliquez sur Configurer les composants.
- Fournissez les informations de configuration suivantes :
- Type de composant : sélectionnez SIEM.
- Adresse de l'hôte : saisissez l'adresse de l'hôte de l'agent Bindplane (le composant SIEM doit inclure un nom d'hôte).
- Port de destination : saisissez le numéro de port de l'agent Bindplane.
- Port distant : port utilisé par CyberArk pour l'interface avec votre Secure Tunnel (le port distant vous est fourni par l'assistance CyberArk. Il s'agit généralement du port
1468
). - Cliquez sur Avancé pour afficher cette colonne.
- Accès via des tunnels sécurisés : vous pouvez configurer les tunnels sécurisés auxquels vos serveurs accéderont, même s'ils s'exécutent sur une autre machine.
- Cliquez sur Configurer les composants > Fermer.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
agir | security_result.action_details | Mappé directement à partir du champ act dans le journal brut. |
application | network.application_protocol | Mappé à partir du champ app dans le journal brut et transformé à l'aide de la logique de parse_app_protocol.include . |
cn1 | additional.fields.value.string_value | Mappé directement à partir du champ cn1 dans le journal brut. |
cn1Label | additional.fields.key | Mappé directement à partir du champ cn1Label dans le journal brut. |
cn2 | additional.fields.value.string_value | Mappé directement à partir du champ cn2 dans le journal brut. |
cn2Label | additional.fields.key | Mappé directement à partir du champ cn2Label dans le journal brut. |
cs1 | additional.fields.value.string_value | Mappé directement à partir du champ cs1 dans le journal brut. |
cs1Label | additional.fields.key | Mappé directement à partir du champ cs1Label dans le journal brut. |
cs2 | additional.fields.value.string_value | Mappé directement à partir du champ cs2 dans le journal brut. |
cs2Label | additional.fields.key | Mappé directement à partir du champ cs2Label dans le journal brut. |
cs3 | additional.fields.value.string_value | Mappé directement à partir du champ cs3 dans le journal brut. |
cs3Label | additional.fields.key | Mappé directement à partir du champ cs3Label dans le journal brut. |
cs4 | additional.fields.value.string_value | Mappé directement à partir du champ cs4 dans le journal brut. |
cs4Label | additional.fields.key | Mappé directement à partir du champ cs4Label dans le journal brut. |
cs5 | additional.fields.value.string_value | Mappé directement à partir du champ cs5 dans le journal brut. |
cs5Label | additional.fields.key | Mappé directement à partir du champ cs5Label dans le journal brut. |
device_event_class_id | metadata.product_event_type | Mappé directement à partir du champ device_event_class_id dans le journal brut. |
device_version | metadata.product_version | Mappé directement à partir du champ device_version dans le journal brut. |
dhost | target.hostname | Mappé directement à partir du champ dhost dans le journal brut. |
duser | target.user.user_display_name | Mappé directement à partir du champ duser dans le journal brut. |
dvc | about.ip | Mappé directement à partir du champ dvc dans le journal brut. |
event_name | metadata.product_event_type | Mappé directement à partir du champ event_name dans le journal brut. |
externalId | metadata.product_log_id | Mappé directement à partir du champ externalId dans le journal brut. |
fname | additional.fields.value.string_value | Mappé directement à partir du champ fname dans le journal brut. |
Message | metadata.description | Mappé directement à partir du champ msg dans le journal brut. |
reason | security_result.summary | Mappé directement à partir du champ reason dans le journal brut. |
de gravité, | security_result.severity | Mappé à partir du champ severity dans le journal brut et transformé en "LOW", "MEDIUM", "HIGH" ou "CRITICAL" en fonction de sa valeur. |
shost | principal.ip | Mappé directement à partir du champ shost dans le journal brut. |
suser | principal.user.user_display_name | Mappé directement à partir du champ suser dans le journal brut. |
temps | metadata.event_timestamp.seconds | Directement mappé à partir du champ time du journal brut après avoir été analysé et converti en code temporel. |
metadata.event_type | Définissez sur "USER_UNCATEGORIZED" si suser est présent et duser ne l'est pas. Sinon, définissez-le sur "GENERIC_EVENT". |
|
metadata.log_type | Défini sur "CYBERARK_PRIVILEGE_CLOUD". | |
metadata.product_name | Défini sur "CYBERARK_PRIVILEGE_CLOUD". | |
principal.asset.hostname | Valeur extraite des champs shost ou dvc , s'ils contiennent un nom d'hôte. |
|
principal.asset.ip | Valeur extraite des champs shost ou dvc , s'ils contiennent une adresse IP. |
|
principal.hostname | Valeur extraite des champs shost ou dvc , s'ils contiennent un nom d'hôte. |
|
target.asset.hostname | Valeur extraite du champ dhost , s'il contient un nom d'hôte. |
|
additional.fields.key | La clé des champs supplémentaires est déterminée par le champ de libellé correspondant (par exemple, cn1Label pour cn1 ). |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.