Collecter les journaux CyberArk Privilege Cloud

Compatible avec :

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

  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:
        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.

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

    sudo systemctl restart bindplane-agent
    
  2. 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

  1. Assurez-vous que votre ID de machine est unique, même lorsque les machines sont déployées dans plusieurs domaines.
  2. 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.
  3. Exécutez l'installation à partir du dossier décompressé.
  4. Sur la page Sélectionner le dossier d'installation, saisissez l'emplacement du dossier d'installation, puis cliquez sur Suivant.
  5. Sur la page Prêt à l'installation, cliquez sur Installer.
  6. Une fois l'installation terminée, cliquez sur Terminer. L'outil de configuration est lancé.

Configurer Secure Tunnel

  1. 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.
  2. 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.
  3. 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.
  4. 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.