Collecter les journaux Cylance PROTECT

Compatible avec :

Ce document explique comment ingérer les journaux Cylance PROTECT dans Google Security Operations à l'aide de Bindplane. Le code de l'analyseur Logstash transforme les messages syslog Cylance PROTECT en Unified Data Model (UDM). Il extrait les champs du message syslog, les normalise, les mappe aux champs UDM et enrichit les données avec des informations sur la gravité et la catégorie des menaces.

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é à Cylance PROTECT

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

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: 'CYLANCE_PROTECT'
                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 Syslog dans Cylance Protect

  1. Connectez-vous à la console de gestion Cylance.
  2. Accédez à Paramètres > Application.
  3. Cochez la case Syslog/SIEM.
  4. Sélectionnez tous les événements.
  5. Fournissez les informations de configuration suivantes :
    • SIEM : sélectionnez Syslog.
    • Protocole : sélectionnez UDP.
    • Cochez la case Autoriser les messages de plus de 2 Ko.
    • Adresse IP/Domaine : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane (par exemple, 514 pour UDP).
    • Établissement : sélectionnez le type de journalisation des applications.
  6. Cliquez sur Test Connection (Tester la connexion).
  7. Cliquez sur Enregistrer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
Version de l'agent metadata.product_version Valeur extraite de Agent Version: <value>
Score Cylance security_result.severity_details Valeur extraite de Cylance Score: <value>
security_result.severity Mappé selon la logique suivante :
- ÉLEVÉ : si le score Cylance > 67
- MOYEN : si le score Cylance > 33
- FAIBLE : si le score Cylance <= 33
Détecté par security_result.detection_fields.value Valeur extraite de Detected By: <value>
ID de l'appareil principal.asset_id Valeur extraite de Device Id: <value> et précédée de Cylance:
ID des appareils principal.asset_id Valeur extraite de Device Ids: <value> et précédée de Cylance:, utilisée lorsque Device Id n'est pas présent
Nom de l'appareil principal.hostname Valeur extraite de Device Name: <value>
Nom de l'appareil target.hostname Valeur extraite de Device Name: <value>, utilisée pour des types d'événements spécifiques tels que ScriptControl
Noms des appareils principal.hostname Valeur extraite de Device Names: <value>, utilisée lorsque Device Name n'est pas présent
Description security_result.summary Valeur extraite de Description: <value>, utilisée pour des types d'événements spécifiques tels que OpticsCaeNetworkEvent
Adresse IP de destination target.ip Valeur extraite de Destination IP: <value>
Port de destination target.port Valeur extraite de Destination Port: <value>
ID de l'événement metadata.product_log_id Valeur extraite de Event Id: <value>
Nom de l'événement Permet de déterminer des sous-types d'événements spécifiques et d'appliquer la logique correspondante.
Type d'événement metadata.product_event_type Valeur extraite de Event Type: <value>
metadata.event_type Mappé en fonction des champs Event Type et Event Name, la valeur par défaut est GENERIC_EVENT
Nom du fichier principal.process.file.full_path Valeur extraite de File Name: <value> et combinée à Path: <value> pour former le chemin d'accès complet
Chemin d'accès au fichier target.file.full_path Valeur extraite de File Path: <value>
Instigating Process ImageFileSha256 principal.process.file.sha256 Valeur extraite de Instigating Process ImageFileSha256: <value>
Nom du processus déclencheur principal.process.file.full_path Valeur extraite de Instigating Process Name: <value>
Propriétaire du processus initiateur principal.user.userid Valeur extraite de Instigating Process Owner: <value>. Le nom d'utilisateur est extrait après avoir été divisé par //, le cas échéant.
Propriétaire du processus initiateur principal.administrative_domain Nom de domaine extrait de Instigating Process Owner: <value> en le divisant par //, le cas échéant
Adresse IP principal.ip Adresse(s) IP extraite(s) de IP Address: (<value>)
Interpréteur security_result.rule_labels.value Valeur extraite de Interpreter: <value>
Version de l'interprète security_result.rule_labels.value Valeur extraite de Interpreter Version: <value>
Utilisateurs connectés about.user.userid Noms d'utilisateur extraits de Logged On Users: (<value>)
Adresse MAC principal.mac Adresse MAC extraite de MAC Address: (<value>) et mise en forme avec des deux-points
MD5 principal.process.file.md5 Valeur extraite de MD5: <value>
Message Utilisé pour extraire des données pour des types d'événements spécifiques, comme AuditLog
OS principal.platform Mappé sur WINDOWS si le champ OS contient Windows
Chemin d'accès principal.process.file.full_path Valeur extraite de Path: <value> et combinée à File Name: <value> pour former le chemin d'accès complet
Nom de la règle security_result.rule_name Valeur extraite de Policy Name: <value>
ID du processus principal.process.pid Valeur extraite de Process ID: <value>
Nom du processus principal.process.file.full_path Valeur extraite de Process Name: <value>
Adresse résolue network.dns.answers.name Valeur extraite de Resolved Address: <value>
SHA256 principal.process.file.sha256 Valeur extraite de SHA256: <value>
Adresse IP source principal.ip Valeur extraite de Source IP: <value>, utilisée pour des types d'événements spécifiques
État security_result.action Mappé à des actions UDM spécifiques en fonction de la valeur :
 – Quarantined : QUARANTINE
 – Cleared : ALLOW_WITH_MODIFICATION
Nom de domaine cible network.dns.questions.name Valeur extraite de Target Domain Name: <value>
Target Process ImageFileSha256 target.process.file.sha256 Valeur extraite de Target Process ImageFileSha256: <value>
Nom du processus cible target.process.file.full_path Valeur extraite de Target Process Name: <value>
Propriétaire du processus cible target.user.userid Valeur extraite de Target Process Owner: <value>. Le nom d'utilisateur est extrait après avoir été divisé par //, le cas échéant.
Propriétaire du processus cible target.administrative_domain Nom de domaine extrait de Target Process Owner: <value> en le divisant par //, le cas échéant
Chemin de clé de registre cible target.registry.registry_key Valeur extraite de Target Registry KeyPath: <value>
Classification des menaces security_result.threat_name Valeur extraite de Threat Classification: <value>
Utilisateur principal.user.userid Nom d'utilisateur extrait de User: <value>, s'il est présent, utilisé lorsque User Name n'est pas présent
Utilisateur principal.user.email_addresses Adresse e-mail extraite de User: <value>, si elle est présente, utilisée lorsque User Name n'est pas présent
Nom de l’utilisateur principal.user.userid Valeur extraite de User Name: <value>
Type de cas de non-conformité security_result.summary Valeur extraite de Violation Type: <value> et précédée de ExploitAttempt:
Type de cas de non-conformité security_result.threat_name Valeur extraite de Violation Type: <value>
Noms des zones security_result.description Valeur extraite de Zone Names: (<value>) et précédée de Zone_Names:
metadata.vendor_name Codé en dur sur Cylance
metadata.product_name Valeur extraite du message de journal, PROTECT ou OPTICS
metadata.log_type Codé en dur sur CYLANCE_PROTECT
network.ip_protocol Codé en dur sur TCP pour les événements OpticsCaeNetworkEvent
network.application_protocol Codé en dur sur DNS pour les événements OpticsCaeDnsEvent
security_result.rule_labels.key Définissez-le sur Interpreter ou Interpreter Version en fonction du champ disponible.
security_result.detection_fields.key Codé en dur sur Detected By
security_result.category Les valeurs possibles sont les suivantes :
(SOFTWARE_SUSPICIOUS),
(AUTH_VIOLOATION),
(POLICY_VIOLATION),
(NETWORK_SUSPICIOUS),
(EXPLOIT) et
(SOFTWARE_MALICIOUS).
security_result.action Mappées en fonction du type d'événement et de conditions spécifiques, les valeurs possibles incluent :
 : AUTORISER
 : BLOQUER
 : METTRE EN QUARANTAINE
 : AUTORISER_AVEC_MODIFICATION

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