Collecter les journaux FireEye HX

Compatible avec :

Ce document explique comment collecter les journaux FireEye Endpoint Security (HX) dans Google Security Operations à l'aide de Bindplane. L'analyseur tente de traiter le message d'entrée au format JSON. Si le message n'est pas au format JSON, il utilise des modèles Grok pour extraire les champs, puis effectue un mappage UDM conditionnel en fonction du type d'événement extrait et d'autres critères.

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 le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
  • Assurez-vous de disposer d'un accès privilégié à FireEye Endpoint Security.

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

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :

    1. 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.
    2. 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: '/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: 'FIREEYE_HX'
                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 le syslog FireEye HX Event Streamer à l'aide de l'UI

  1. Connectez-vous à la console de gestion FireEye HX.
  2. Accédez à Event Streamer.
  3. Sélectionnez Activer Event Streamer sur l'hôte.
  4. Enregistrez les modifications apportées au règlement.
  5. Accédez à Destinations > Paramètres du serveur > Ajouter une destination syslog.
  6. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour identifier le collecteur de journaux Google SecOps.
    • Adresse IP : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane.
  7. Enregistrez les modifications pour les appliquer.

Configurer le syslog FireEye HX Event Streamer à l'aide de la CLI

  1. Connectez-vous à l'appliance FireEye HX à l'aide de l'interface de ligne de commande (CLI).
  2. Exécutez la commande suivante pour activer le mode configuration :

    enable
    configure terminal
    
  3. Exécutez la commande suivante pour ajouter une destination de serveur syslog distant :

    logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
    
    • Remplacez l'élément suivant :
      • BINDPLANE_IP_ADDRESS : adresse IP du redirecteur Google SecOps
      • PORT_NUMBER : numéro de port.
  4. Exécutez la commande suivante pour enregistrer les informations de configuration :

    write mem
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
alert.agent._id principal.asset.asset_id ID de l'agent provenant du journal brut, précédé de AGENT ID:
alert.agent.url principal.labels.value URL de l'agent à partir du journal brut.
alert.condition._id additional.fields.value.string_value ID de la condition du journal brut, sans les caractères =.
alert.condition.url additional.fields.value.string_value URL de la condition extraite du journal brut, avec = caractères supprimés.
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 security_result.threat_name Famille de logiciels malveillants du rapport FireEye dans le champ "decorators" du journal brut.
alert.decorators[].data.fireeye_report.risk_summary security_result.description Résumé des risques du rapport FireEye dans le champ "decorators" du journal brut.
alert.decorators[].data.fireeye_verdict security_result.severity_details Verdict FireEye du champ des décorateurs du journal brut.
alert.event_at read_only_udm.metadata.event_timestamp Code temporel de l'événement à partir du journal brut.
alert.event_id read_only_udm.metadata.product_log_id ID de l'événement provenant du journal brut.
alert.event_type read_only_udm.metadata.product_event_type Type d'événement du journal brut.
alert.event_values.fileWriteEvent/fullPath target.file.full_path Chemin d'accès complet du fichier écrit à partir du journal brut.
alert.event_values.fileWriteEvent/md5 target.file.md5 Hachage MD5 du fichier écrit à partir du journal brut.
alert.event_values.fileWriteEvent/pid principal.process.pid ID du processus qui a écrit le fichier à partir du journal brut.
alert.event_values.fileWriteEvent/processPath principal.process.file.full_path Chemin d'accès au processus qui a écrit le fichier à partir du journal brut. Combiné à alert.event_values.fileWriteEvent/process pour créer le chemin d'accès complet si l'OS est Windows.
alert.event_values.fileWriteEvent/size target.file.size Taille du fichier écrit à partir du journal brut.
alert.event_values.fileWriteEvent/username principal.user.userid Utilisateur qui a écrit le fichier à partir du journal brut.
alert.event_values.ipv4NetworkEvent/localIP principal.ip Adresse IP locale extraite du journal brut.
alert.event_values.ipv4NetworkEvent/localPort principal.port Port local du journal brut.
alert.event_values.ipv4NetworkEvent/pid principal.process.pid ID du processus à partir du journal brut.
alert.event_values.ipv4NetworkEvent/process principal.process.file.full_path Nom du processus à partir du journal brut. Combiné à alert.event_values.ipv4NetworkEvent/processPath pour créer le chemin d'accès complet si l'OS est Windows.
alert.event_values.ipv4NetworkEvent/processPath principal.process.file.full_path Chemin d'accès au processus à partir du journal brut. Combiné à alert.event_values.ipv4NetworkEvent/process pour créer le chemin d'accès complet si l'OS est Windows.
alert.event_values.ipv4NetworkEvent/protocol network.ip_protocol Protocole réseau du journal brut.
alert.event_values.ipv4NetworkEvent/remoteIP target.ip Adresse IP distante du journal brut.
alert.event_values.ipv4NetworkEvent/remotePort target.port Port distant du journal brut.
alert.event_values.ipv4NetworkEvent/timestamp read_only_udm.metadata.event_timestamp Code temporel de l'événement à partir du journal brut.
alert.event_values.ipv4NetworkEvent/username principal.user.userid Utilisateur du journal brut.
alert.event_values.processEvent/md5 target.process.file.md5 Hachage MD5 du processus à partir du journal brut.
alert.event_values.processEvent/parentPid principal.process.pid ID du processus parent à partir du journal brut.
alert.event_values.processEvent/parentProcess principal.process.file.full_path Nom du processus parent à partir du journal brut.
alert.event_values.processEvent/parentProcessPath principal.process.file.full_path Chemin du processus parent à partir du journal brut.
alert.event_values.processEvent/pid target.process.pid ID du processus à partir du journal brut.
alert.event_values.processEvent/process target.process.file.full_path Nom du processus à partir du journal brut.
alert.event_values.processEvent/processCmdLine target.process.command_line Ligne de commande du processus à partir du journal brut.
alert.event_values.processEvent/processPath target.process.file.full_path Chemin d'accès au processus à partir du journal brut.
alert.event_values.processEvent/timestamp read_only_udm.metadata.event_timestamp Code temporel de l'événement à partir du journal brut.
alert.event_values.processEvent/username principal.user.userid Utilisateur du journal brut.
alert.event_values.urlMonitorEvent/hostname target.hostname Nom d'hôte du journal brut.
alert.event_values.urlMonitorEvent/localPort principal.port Port local du journal brut.
alert.event_values.urlMonitorEvent/pid principal.process.pid ID du processus à partir du journal brut.
alert.event_values.urlMonitorEvent/process principal.process.file.full_path Nom du processus à partir du journal brut. Combiné à alert.event_values.urlMonitorEvent/processPath pour créer le chemin d'accès complet si l'OS est Windows.
alert.event_values.urlMonitorEvent/processPath principal.process.file.full_path Chemin d'accès au processus à partir du journal brut. Combiné à alert.event_values.urlMonitorEvent/process pour créer le chemin d'accès complet si l'OS est Windows.
alert.event_values.urlMonitorEvent/remoteIpAddress target.ip Adresse IP distante du journal brut.
alert.event_values.urlMonitorEvent/remotePort target.port Port distant du journal brut.
alert.event_values.urlMonitorEvent/requestUrl target.url URL demandée à partir du journal brut.
alert.event_values.urlMonitorEvent/timestamp read_only_udm.metadata.event_timestamp Code temporel de l'événement à partir du journal brut.
alert.event_values.urlMonitorEvent/urlMethod network.http.method Méthode HTTP du journal brut.
alert.event_values.urlMonitorEvent/userAgent network.http.user_agent User-agent du journal brut.
alert.event_values.urlMonitorEvent/username principal.user.userid Utilisateur du journal brut.
alert.indicator._id security_result.about.labels.value ID de l'indicateur du journal brut.
alert.indicator.name read_only_udm.security_result.summary Nom de l'indicateur dans le journal brut.
alert.indicator.url security_result.about.labels.value URL de l'indicateur à partir du journal brut.
alert.multiple_match read_only_udm.metadata.description Message de correspondance multiple du journal brut.
alert.source additional.fields.value.string_value Source de l'alerte à partir du journal brut.
authmethod extensions.auth.mechanism Méthode d'authentification à partir du journal brut. Définissez la valeur sur LOCAL si elle est égale à local ou LOCAL, sinon définissez-la sur MECHANISM_OTHER.
authsubmethod extensions.auth.auth_details Sous-méthode d'authentification du journal brut, convertie en majuscules.
Client principal.ip Adresse IP du client à partir du journal brut.
conditions.data.tests[].token security_result.detection_fields.key Jeton issu des tests de conditions dans le journal brut.
conditions.data.tests[].value security_result.detection_fields.value La valeur des tests de conditions dans le journal brut.
description read_only_udm.metadata.description Description issue du journal brut.
host.agent_version read_only_udm.metadata.product_version Version de l'agent à partir du journal brut.
host.containment_state read_only_udm.principal.containment_state État de confinement à partir du journal brut.
host.domain read_only_udm.principal.administrative_domain Domaine du journal brut.
host.hostname read_only_udm.principal.hostname Nom d'hôte du journal brut.
host.os.platform read_only_udm.principal.platform Plate-forme du système d'exploitation à partir du journal brut.
host.os.product_name read_only_udm.principal.platform_version Nom du produit du système d'exploitation à partir du journal brut.
host.primary_ip_address read_only_udm.principal.ip Adresse IP principale du journal brut.
host.primary_mac read_only_udm.principal.mac Adresse MAC principale du journal brut, avec les caractères - remplacés par :.
host_ principal.hostname Nom d'hôte du journal brut.
host_details.data.agent_version read_only_udm.metadata.product_version Version de l'agent à partir du journal brut.
host_details.data.containment_state read_only_udm.security_result.severity_details État de confinement à partir du journal brut.
host_details.data.domain read_only_udm.principal.administrative_domain Domaine du journal brut.
host_details.data.hostname read_only_udm.principal.hostname Nom d'hôte du journal brut.
host_details.data.os.platform read_only_udm.principal.platform Plate-forme du système d'exploitation à partir du journal brut.
host_details.data.os.product_name read_only_udm.principal.platform_version Nom du produit du système d'exploitation à partir du journal brut.
host_details.data.primary_ip_address read_only_udm.principal.ip Adresse IP principale du journal brut.
host_details.data.primary_mac read_only_udm.principal.mac Adresse MAC principale du journal brut, avec les caractères - remplacés par :.
indicators.data.description read_only_udm.metadata.description Description de l'indicateur à partir du journal brut.
ligne target.application Ligne du journal brut.
localusername target.user.user_display_name Nom d'utilisateur local extrait du journal brut.
principal_ip principal.ip Adresse IP principale du journal brut.
de diffusion inverse read_only_udm.principal.application Nom du processus à partir du journal brut.
process_id read_only_udm.principal.process.pid ID du processus à partir du journal brut.
referrer network.http.referral_url URL de provenance du journal brut.
remoteaddress principal.ip Adresse distante du journal brut.
request additional.fields.value.string_value Requête du journal brut.
rôle target.user.role_name Rôle issu du journal brut.
serveur target.resource.attribute.labels.value Serveur à partir du journal brut.
sessionID network.session_id ID de session du journal brut.
de gravité, security_result.severity Définissez-le sur LOW, MEDIUM ou HIGH en fonction de la gravité du journal brut.
target_host read_only_udm.target.hostname Nom d'hôte cible du journal brut.
target_ip target.ip Adresse IP cible du journal brut.
target_ip1 target.ip Adresse IPv6 cible du journal brut.
timestamp timestamp Code temporel du journal brut.
en amont target.url URL en amont du journal brut.
nom d'utilisateur target.user.userid Nom d'utilisateur extrait du journal brut.

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