Collecter les journaux Trellix DLP

Compatible avec :

Ce document explique comment ingérer les journaux Trellix (anciennement McAfee) DLP (Data Loss Prevention) dans Google Security Operations à l'aide de Bindplane. Cet analyseur traite les journaux McAfee DLP au format CSV et les transforme en modèle de données unifié (UDM). Il nettoie l'entrée, analyse les données CSV, mappe les champs à l'UDM, gère des types et des niveaux de gravité spécifiques d'événements DLP, et enrichit l'UDM avec des métadonnées supplémentaires et des détails sur les résultats de sécurité.

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é à McAfee EPO
  • L'extension McAfee DLP Endpoint est installée et active.

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:
        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: 'MCAFEE_DLP'
                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 le serveur Syslog dans McAfee ePO

  1. Connectez-vous à la console McAfee ePO.
  2. Accédez à Menu > Configuration > Serveurs enregistrés.
  3. Cliquez sur Nouveau serveur> Serveur Syslog.
  4. Fournissez les informations de configuration suivantes :
    • Nom : nom unique du serveur Syslog (par exemple, Google SecOps).
    • Adresse du serveur : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane (la valeur par défaut est 514).
    • Protocole : sélectionnez UDP ou TCP (selon l'installation de votre agent Bindplane).
    • Format : utilisez CSV ou CEF.
  5. Cliquez sur Enregistrer.

Configurer le transfert d'événements DLP

  1. Accédez à Menu > Protection des données > Gestionnaire de règles DLP.
  2. Cliquez sur l'onglet Règles d'attribution de règles DLP.
  3. Modifiez la règle qui s'applique à vos systèmes cibles ou créez-en une.
  4. Accédez à l'onglet Actions de la règle.
  5. Cochez la case Journaliser sur le serveur Syslog, puis sélectionnez le serveur Syslog que vous avez créé précédemment.
  6. Enregistrez la règle.

Activer le transfert des incidents DLP

  1. Accédez à Menu > Protection des données > Gestionnaire d'incidents DLP.
  2. Cliquez sur Actions liées à l'incident.
  3. Créez ou modifiez une action à transférer vers le serveur Syslog.
  4. Attribuez cette action à une règle de votre règlement de protection contre la perte de données.

Déployer la règle

  1. Accédez à Arborescence du système> sélectionnez le groupe ou le système souhaité.
  2. Cliquez sur Actions > Agent > Réactiver les agents.
  3. Sélectionnez les conditions d'envoi.
  4. Cliquez sur OK.

Table de mappage UDM

Champ de journal Mappage UDM Logique
action security_result.action_details Mappé directement à partir du champ action.
action security_result.action Dérivé du champ action. Si action est défini sur 1, la valeur est BLOCK. Si action est défini sur 0, la valeur est ALLOW. Si action est défini sur 6, la valeur est UNKNOWN_ACTION.
agent_ver metadata.product_version Mappé directement à partir du champ agent_ver (qui provient de column8).
class_count additional.fields[4].key La valeur est ClassCount.
class_count additional.fields[4].value.string_value Mappé directement à partir du champ class_count.
class_display additional.fields[5].key La valeur est ClassDisplay.
class_display additional.fields[5].value.string_value Mappé directement à partir du champ class_display.
count additional.fields[6].key La valeur est Count.
count additional.fields[6].value.string_value Mappé directement à partir du champ count.
device_name principal.hostname Mappé directement à partir du champ device_name.
dst target.hostname Mappé directement à partir du champ dst si inc_type est défini sur 10000.
dst target.user.userid Mappé directement à partir du champ dst si inc_type n'est pas 10000.
dst_app target.application Mappé directement à partir du champ dst_app.
dst_url target.url Mappé directement à partir du champ dst_url.
encrypt security_result.detection_fields[1].key La valeur est EncryptionProvider.
encrypt security_result.detection_fields[1].value Mappé directement à partir du champ encrypt.
evidence_count additional.fields[2].key La valeur est EvidenceCount.
evidence_count additional.fields[2].value.string_value Mappé directement à partir du champ evidence_count.
fail_reason additional.fields[3].key La valeur est FailReason.
fail_reason additional.fields[3].value.string_value Mappé directement à partir du champ fail_reason.
fail_reason security_result.description Si fail_reason est défini sur 0, la valeur est No Failure. Sinon, la valeur est Failure Occurred.
file target.file.full_path Mappé directement à partir du champ file.
file_size target.file.size Directement mappé à partir du champ file_size, converti en entier non signé.
group principal.user.attribute.labels.key La valeur est group.
group principal.user.attribute.labels.value Mappé directement à partir du champ group.
inc_id metadata.product_log_id Mappé directement à partir du champ inc_id (qui provient de column1).
inc_type metadata.event_type Utilisé dans la logique conditionnelle pour déterminer la valeur metadata.event_type. Pour en savoir plus, consultez la logique.
inc_type metadata.product_event_type Mappé directement à partir du champ inc_type (qui provient de column2).
ip principal.ip Adresse IP extraite du champ ip à l'aide de grok.
local_date metadata.event_timestamp Code temporel du champ local_date, analysé et converti en secondes depuis l'epoch.
name principal.user.user_display_name Mappé directement à partir du champ name. Si inc_type est dans [10000,10001,10002,40101,40400,40500,40700] et que ip est une adresse IP valide, la valeur est SCAN_NETWORK. Si inc_type est défini sur 40102 et que file n'est pas vide, la valeur est SCAN_FILE. Si inc_type est compris entre 40301 et 40602, la valeur est PROCESS_UNCATEGORIZED. Sinon, la valeur est GENERIC_EVENT. Valeur codée en dur : GCP_CLOUDAUDIT. Valeur codée en dur : Mcafee DLP. Valeur codée en dur : Mcafee. Si status_id est compris entre 1 et 2, la valeur est NEW. Si status_id est compris entre 3 et 4, la valeur est CLOSED. Si status_id est compris entre 5 et 6, la valeur est REVIEWED. La valeur est StatusId. La valeur est Resolution Id. La valeur est Expected Action.
process_name target.process.file.full_path Mappé directement à partir du champ process_name.
resolution_id security_result.about.labels[0].value Mappé directement à partir du champ resolution_id.
rule_name security_result.rule_name Mappé directement à partir du champ rule_name.
rule_set security_result.rule_labels.key La valeur est rule_set.
rule_set security_result.rule_labels.value Mappé directement à partir du champ rule_set.
sev security_result.severity Dérivé du champ sev. Si sev est défini sur 1, le message est de type INFORMATIONAL. Si sev est défini sur 2, il s'agit d'une erreur. Si sev est défini sur 3, le niveau est FAIBLE. Si sev est défini sur 4, la priorité est HAUTE. Si sev est défini sur 5, le problème est CRITIQUE.
sev security_result.severity_details Mappé directement à partir du champ sev.
status_id principal.labels.value Mappé directement à partir du champ status_id.
total_count additional.fields[1].key La valeur est TotalCount.
total_count additional.fields[1].value.string_value Mappé directement à partir du champ total_count.
total_size additional.fields[0].key La valeur est TotalSize.
total_size additional.fields[0].value.string_value Mappé directement à partir du champ total_size.
usb_serial_number security_result.detection_fields[0].key La valeur est USBSerialNumber.
usb_serial_number security_result.detection_fields[0].value Mappé directement à partir du champ usb_serial_number.
user principal.user.userid Mappé directement à partir du champ user.
user_ou principal.user.group_identifiers Mappé directement à partir du champ user_ou.
volume_serial_number security_result.detection_fields[2].key La valeur est VolumeSerialNumber.
volume_serial_number security_result.detection_fields[2].value Mappé directement à partir du champ volume_serial_number.
expected_action security_result.about.labels[1].value Mappé directement à partir du champ expected_action.

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