Collecter les journaux CyberArk EPM
Ce code d'analyseur transforme les données de journal CyberArk EPM en modèle de données unifié (UDM). Il itère sur chaque événement du journal, met en correspondance les champs pertinents avec leurs champs UDM correspondants, gère des structures de données spécifiques telles que "exposedUsers" et enrichit la sortie avec des informations statiques sur les fournisseurs et les produits.
Avant de commencer
- Assurez-vous de disposer d'une instance Google Security Operations.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec systemd.
- Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous d'avoir un accès privilégié à la console de gestion du serveur EPM.
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.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.
Installer l'agent BindPlane
- Pour l'installation sous Windows, exécutez le script suivant:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Pour l'installation Linux, exécutez le script suivant:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Pour en savoir plus sur les options d'installation, consultez ce guide d'installation.
Configurer l'agent BindPlane pour ingérer Syslog et l'envoyer à Google SecOps
- Accédez à la machine sur laquelle BindPlane est installé.
Modifiez le fichier
config.yaml
comme suit :receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Cyberark_EPM raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Redémarrez l'agent BindPlane pour appliquer les modifications:
sudo systemctl restart bindplane
Configurer le transfert d'événements tiers dans EPM
- Connectez-vous à la console de gestion du serveur EPM.
- Accédez à Paramètres avancés > Configuration du serveur.
- Dans la section Écouteurs d'événements, recherchez le paramètre Écouteurs tiers.
- Définissez la valeur sur Activé pour activer les écouteurs tiers.
- Configurez l'écouteur Syslog en fournissant les informations suivantes :
- Adresse IP du serveur syslog: saisissez l'adresse IP du serveur syslog (Bindplane).
- Port Syslog: spécifiez le numéro de port du serveur Syslog (Bindplane).
- Protocole: choisissez le protocole configuré sur le serveur syslog (TCP ou UDP).
- Format: sélectionnez Syslog comme format des journaux.
- Cliquez sur Enregistrer.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
agentId | principal.asset.asset_id | Concatenate "agentId:" avec la valeur du champ agentId. |
computerName | principal.hostname | Mappe directement le champ computerName. |
displayName | metadata.description | Mappe directement le champ displayName. |
eventType | metadata.product_event_type | Mappe directement le champ eventType. |
exposedUsers.[].accountName | target.user.attribute.labels | Crée un libellé avec la clé "accountName_[index]" et la valeur issue de exposedUsers.[index].accountName. |
exposedUsers.[].domain | target.user.attribute.labels | Crée un libellé avec la clé "domain_[index]" et la valeur de exposedUsers.[index].domain. |
exposedUsers.[].username | target.user.attribute.labels | Crée un libellé avec la clé "username_[index]" et la valeur issue de exposedUsers.[index].username. |
filePath | target.file.full_path | Mappe directement le champ filePath. |
hash | target.file.sha1 | Mappe directement le champ de hachage. |
operatingSystemType | principal.platform | Mappe "Windows" sur "WINDOWS" si le champ "operatingSystemType" est défini sur "Windows". |
policyName | security_result.rule_name | Mappe directement le champ policyName. |
processCommandLine | target.process.command_line | Mappe directement le champ processCommandLine. |
diffuseur | additional.fields | Crée un champ avec la clé "Éditeur" et la valeur string_value à partir du champ "Éditeur". |
sourceProcessCommandLine | target.process.parent_process.command_line | Mappe directement le champ sourceProcessCommandLine. |
sourceProcessHash | target.process.parent_process.file.sha1 | Mappe directement le champ sourceProcessHash. |
sourceProcessSigner | additional.fields | Crée un champ avec la clé "sourceProcessSigner" et la valeur string_value à partir du champ sourceProcessSigner. |
threatProtectionAction | security_result.action_details | Mappe directement le champ threatProtectionAction. |
metadata.event_timestamp | Définit le code temporel de l'événement sur la valeur "create_time" de l'entrée de journal. | |
metadata.event_type | Code dur "STATUS_UPDATE". | |
metadata.log_type | Code codé en dur sur "CYBERARK_EPM". | |
metadata.product_name | Code codé en dur sur "EPM". | |
metadata.vendor_name | Code codé en dur sur "CYBERARK". | |
security_result.alert_state | Code en dur sur "ALERTING". | |
userName | principal.user.userid | Mappe directement le champ userName. |
Modifications
2023-08-22
- Analyseur nouvellement créé