Collecter les journaux ADVA Fiber Service Platform

Compatible avec :

Ce document explique comment ingérer des journaux ADVA Fiber Service Platform (ADVA FSP) dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les champs des messages syslog du routeur et du commutateur, et les convertit en paires clé-valeur. Il mappe ensuite ces champs extraits et leurs valeurs aux champs correspondants du schéma UDM Chronicle, ce qui enrichit les données pour l'analyse de la sécurité.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Un hôte Windows 2012 SP2 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • Accès privilégié à la console de gestion des appareils ADVA FSP

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
    

Autres ressources d'installation

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

  1. Accédez au fichier de configuration :

    1. Trouvez le fichier config.yaml. Il se trouve généralement 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. Voici deux options de récepteur fonctionnel. Choisissez celle qui correspond à la façon dont votre appareil envoie les journaux :

    • Option A : Récepteur de journaux UDP (UDP simple)
    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Option B : récepteur Syslog (recommandé pour un cadrage Syslog strict)
    receivers:
      syslog:
        tcp:
          listen_address: "0.0.0.0:514"
        protocol: rfc5424   # or rfc3164 if your device uses BSD syslog
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
          source: 'adva-fsp'
          env: 'production'
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - syslog
          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 transfert Syslog sur ADVA FSP

  1. Connectez-vous à la console de gestion ADVA FSP.
  2. Accédez à Node (Nœud) > General (Général) &gt Controls (Commandes).
  3. Dans la section Destinataires d'événements à distance (SysLog), cliquez sur Ajouter.
  4. Fournissez les informations de configuration suivantes :
    • Adresse IPv4/v6 : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane (par exemple, 514).
    • Protocole : sélectionnez UDP ou TCP, en fonction de la configuration réelle de votre agent Bindplane.
    • Extension de message : facultatif : cliquez sur Ajouter un libellé utilisateur pour inclure des identifiants supplémentaires dans les messages.
  5. Cliquez sur Enregistrer pour activer la configuration.

Table de mappage UDM

Champ du journal Mappage UDM Logique
ACCESSORDER (COMMANDE D'ACCÈS) additional.fields.value.string_value La valeur est extraite du champ ACCESSORDER du journal brut.
ADDRESS principal.ip La valeur est extraite du champ ADDRESS du journal brut et analysée en tant qu'adresse IP.
ADMINSTATE additional.fields.value.string_value La valeur est extraite du champ ADMINSTATE du journal brut.
AISCLIENTMDLEVEL additional.fields.value.string_value La valeur est extraite du champ "AISCLIENTMDLEVEL" du journal brut.
AISGENENABLED additional.fields.value.string_value La valeur est extraite du champ AISGENENABLED du journal brut.
AISPRIORITY additional.fields.value.string_value La valeur est extraite du champ AISPRIORITY du journal brut.
AISTXPERIOD additional.fields.value.string_value La valeur est extraite du champ AISTXPERIOD du journal brut.
AISTRIGGERTYPES additional.fields.value.string_value La valeur est extraite du champ AISTRIGGERTYPES du journal brut.
BUFFERSIZE additional.fields.value.string_value La valeur est extraite du champ BUFFERSIZE du journal brut.
CCIENABLED (CCI ACTIVÉ) additional.fields.value.string_value La valeur est extraite du champ CCIENABLED du journal brut.
CCMINTERFACESTATUSTLVCONTROL additional.fields.value.string_value La valeur est extraite du champ CCMINTERFACESTATUSTLVCONTROL du journal brut.
CCMLTMPRIORITY additional.fields.value.string_value La valeur est extraite du champ CCMLTMPRIORITY du journal brut.
CFMTAGETHERTYPE additional.fields.value.string_value La valeur est extraite du champ CFMTAGETHERTYPE du journal brut.
CIR additional.fields.value.string_value La valeur est extraite du champ "CIR" du journal brut.
COS additional.fields.value.string_value La valeur est extraite du champ COS du journal brut.
CT metadata.description La valeur est extraite du champ "CT" du journal brut.
DESTBMAC target.mac La valeur est extraite du champ DESTBMAC du journal brut et analysée en tant qu'adresse MAC.
DHCPCIDENABLED additional.fields.value.string_value La valeur est extraite du champ DHCPCIDENABLED du journal brut.
DHCPENABLED additional.fields.value.string_value La valeur est extraite du champ "DHCPENABLED" du journal brut.
DHCPHOSTNAME network.dhcp.client_hostname La valeur est extraite du champ DHCPHOSTNAME du journal brut.
DHCPHOSTNAMEENABLED additional.fields.value.string_value La valeur est extraite du champ DHCPHOSTNAMEENABLED du journal brut.
DHCPHOSTNAMETYPE additional.fields.value.string_value La valeur est extraite du champ DHCPHOSTNAMETYPE du journal brut.
DHCPLOGSERVERENABLED additional.fields.value.string_value La valeur est extraite du champ DHCPLOGSERVERENABLED du journal brut.
DHCPNTPSERVERENABLED additional.fields.value.string_value La valeur est extraite du champ DHCPNTPSERVERENABLED du journal brut.
DHCPV6CIDENABLED additional.fields.value.string_value La valeur est extraite du champ DHCPV6CIDENABLED du journal brut.
DHCPV6ENABLED additional.fields.value.string_value La valeur est extraite du champ "DHCPV6ENABLED" du journal brut.
DHCPV6ROLE additional.fields.value.string_value La valeur est extraite du champ DHCPV6ROLE du journal brut.
DHCPVENDORINFOTYPE additional.fields.value.string_value La valeur est extraite du champ DHCPVENDORINFOTYPE du journal brut.
DIR additional.fields.value.string_value La valeur est extraite du champ "DIR" du journal brut.
DIRECTION network.direction La valeur est définie sur "OUTBOUND" si le champ DIRECTION du journal brut est "UP" (non sensible à la casse), sur "INBOUND" s'il est "DOWN" et est laissée vide dans le cas contraire.
ENCAPSULATIONTYPE additional.fields.value.string_value La valeur est extraite du champ ENCAPSULATIONTYPE du journal brut.
GUARANTEEDA2NBW additional.fields.value.string_value La valeur est extraite du champ "GUARANTEEDA2NBW" du journal brut.
HCOSMGMTENABLED additional.fields.value.string_value La valeur est extraite du champ HCOSMGMTENABLED du journal brut.
ENT additional.fields.value.string_value La valeur est extraite du champ INT du journal brut.
IPMODE additional.fields.value.string_value La valeur est extraite du champ IPMODE du journal brut.
IPV6ADDR principal.ip La valeur est extraite du champ IPV6ADDR du journal brut et analysée en tant qu'adresse IP.
IPV6ADDRPREFIXLENGTH additional.fields.value.string_value La valeur est extraite du champ IPV6ADDRPREFIXLENGTH du journal brut.
IPV6MTU additional.fields.value.string_value La valeur est extraite du champ "IPV6MTU" du journal brut.
ITAG additional.fields.value.string_value La valeur est extraite du champ ITAG du journal brut.
ITAGENABLED (TAG ACTIVÉ) additional.fields.value.string_value La valeur est extraite du champ ITAGENABLED du journal brut.
LBMTXDESTTYPE additional.fields.value.string_value La valeur est extraite du champ LBMTXDESTTYPE du journal brut.
LBMTXNUMMSGS additional.fields.value.string_value La valeur est extraite du champ LBMTXNUMMSGS du journal brut.
LBMTXVLANDROPENABLE additional.fields.value.string_value La valeur est extraite du champ LBMTXVLANDROPENABLE du journal brut.
LBMTXVLANPRIORITY additional.fields.value.string_value La valeur est extraite du champ "LBMTXVLANPRIORITY" du journal brut.
LLRESPONDERENABLED additional.fields.value.string_value La valeur est extraite du champ LLRESPONDERENABLED du journal brut.
LLVIDLIST additional.fields.value.string_value La valeur est extraite du champ LLVIDLIST du journal brut.
LMDUALENDEDCOUNTALLPRIOS additional.fields.value.string_value La valeur est extraite du champ "LMDUALENDEDCOUNTALLPRIOS" du journal brut.
LMINPROFILEONLY additional.fields.value.string_value La valeur est extraite du champ LMINPROFILEONLY du journal brut.
LMRXCOUNTALLPRIOS additional.fields.value.string_value La valeur est extraite du champ LMRXCOUNTALLPRIOS du journal brut.
LMTXCOUNTALLPRIOS additional.fields.value.string_value La valeur est extraite du champ LMTXCOUNTALLPRIOS du journal brut.
LOC additional.fields.value.string_value La valeur est extraite du champ "LOC" du journal brut.
LOCN additional.fields.value.string_value La valeur est extraite du champ LOCN du journal brut.
LOGINTIMEOUT additional.fields.value.string_value La valeur est extraite du champ LOGINTIMEOUT du journal brut.
LOOPBACKBLOCKINGENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKBLOCKINGENABLED" du journal brut.
LOOPBACKCONFIG additional.fields.value.string_value La valeur est extraite du champ LOOPBACKCONFIG du journal brut.
LOOPBACKDESTMAC target.mac La valeur est extraite du champ LOOPBACKDESTMAC du journal brut et analysée en tant qu'adresse MAC.
LOOPBACKDESTMACCONTROL additional.fields.value.string_value La valeur est extraite du champ LOOPBACKDESTMACCONTROL du journal brut.
LOOPBACKINNERVLAN1 additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKINNERVLAN1" du journal brut.
LOOPBACKINNERVLAN1ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKINNERVLAN1ENABLED" du journal brut.
LOOPBACKINNERVLAN2 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKINNERVLAN2 du journal brut.
LOOPBACKINNERVLAN2ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKINNERVLAN2ENABLED" du journal brut.
LOOPBACKINNERVLAN3 additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKINNERVLAN3" du journal brut.
LOOPBACKINNERVLAN3ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKINNERVLAN3ENABLED" du journal brut.
LOOPBACKOUTERITAG1 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERITAG1 du journal brut.
LOOPBACKOUTERITAG1ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKOUTERITAG1ENABLED" du journal brut.
LOOPBACKOUTERITAG2 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERITAG2 du journal brut.
LOOPBACKOUTERITAG2ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKOUTERITAG2ENABLED" du journal brut.
LOOPBACKOUTERITAG3 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERITAG3 du journal brut.
LOOPBACKOUTERITAG3ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKOUTERITAG3ENABLED" du journal brut.
LOOPBACKOUTERVLAN1 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERVLAN1 du journal brut.
LOOPBACKOUTERVLAN1ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKOUTERVLAN1ENABLED" du journal brut.
LOOPBACKOUTERVLAN2 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERVLAN2 du journal brut.
LOOPBACKOUTERVLAN2ENABLED additional.fields.value.string_value La valeur est extraite du champ "LOOPBACKOUTERVLAN2ENABLED" du journal brut.
LOOPBACKOUTERVLAN3 additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERVLAN3 du journal brut.
LOOPBACKOUTERVLAN3ENABLED additional.fields.value.string_value La valeur est extraite du champ LOOPBACKOUTERVLAN3ENABLED du journal brut.
LOOPBACKSOURCEMAC principal.mac La valeur est extraite du champ LOOPBACKSOURCEMAC du journal brut et analysée en tant qu'adresse MAC.
LOOPBACKSWAPSADA additional.fields.value.string_value La valeur est extraite du champ LOOPBACKSWAPSADA du journal brut.
LOOPBACKTIMER additional.fields.value.string_value La valeur est extraite du champ LOOPBACKTIMER du journal brut.
LOWESTPRIODEFECT (DÉFAUT DE PRIX LE PLUS BAS) additional.fields.value.string_value La valeur est extraite du champ LOWESTPRIODEFECT du journal brut.
LTMTXDESTTYPE additional.fields.value.string_value La valeur est extraite du champ LTMTXDESTTYPE du journal brut.
LTMTXEGRESSID metadata.product_log_id La valeur est extraite du champ LTMTXEGRESSID du journal brut.
LTMTXFLAGS additional.fields.value.string_value La valeur est extraite du champ LTMTXFLAGS du journal brut.
LTMTXTTL additional.fields.value.string_value La valeur est extraite du champ LTMTXTTL du journal brut.
MT additional.fields.value.string_value La valeur est extraite du champ "MT" du journal brut.
MAXIMUMA2NBW additional.fields.value.string_value La valeur est extraite du champ MAXIMUMA2NBW du journal brut.
MVAL additional.fields.value.string_value La valeur est extraite du champ MVAL du journal brut.
NOM additional.fields.value.string_value La valeur est extraite du champ NAME du journal brut.
NC additional.fields.value.string_value La valeur est extraite du champ "NC" du journal brut.
PORTEID additional.fields.value.string_value La valeur est extraite du champ PORTEID du journal brut.
PORTLLENABLED additional.fields.value.string_value La valeur est extraite du champ PORTLLENABLED du journal brut.
PRIMARYSERVER target.ip La valeur est extraite du champ PRIMARYSERVER du journal brut et analysée en tant qu'adresse IP.
PRIMARYVID additional.fields.value.string_value La valeur est extraite du champ PRIMARYVID du journal brut.
QUEUEPROFILEID additional.fields.value.string_value La valeur est extraite du champ QUEUEPROFILEID du journal brut.
RXSHAPEREID additional.fields.value.string_value La valeur est extraite du champ RXSHAPEREID du journal brut.
SATRESPONDENABLED additional.fields.value.string_value La valeur est extraite du champ SATRESPONDENABLED du journal brut.
SE additional.fields.value.string_value La valeur est extraite du champ "SE" du journal brut.
SHAREDVIM additional.fields.value.string_value La valeur est extraite du champ SHAREDVIM du journal brut.
SVLANENABLED (SVLAN ACTIVÉ) additional.fields.value.string_value La valeur est extraite du champ SVLANENABLED du journal brut.
SVLANID additional.fields.value.string_value La valeur est extraite du champ SVLANID du journal brut.
SYSLOCATION principal.location.country_or_region La valeur est extraite du champ SYSLOCATION du journal brut.
THVAL additional.fields.value.string_value La valeur est extraite du champ THVAL du journal brut.
TYPE additional.fields.value.string_value La valeur est extraite du champ TYPE du journal brut.
USERACCESSTYPE (TYPE D'ACCÈS UTILISATEUR) additional.fields.value.string_value La valeur est extraite du champ USERACCESSTYPE du journal brut.
USERAUTHKEY additional.fields.value.string_value La valeur est extraite du champ USERAUTHKEY du journal brut.
USERAUTHKEYLOCAL additional.fields.value.string_value La valeur est extraite du champ USERAUTHKEYLOCAL du journal brut.
USERAUTHPROTOCOL additional.fields.value.string_value La valeur est extraite du champ USERAUTHPROTOCOL du journal brut.
USERENGINEID additional.fields.value.string_value La valeur est extraite du champ USERENGINEID du journal brut.
USERKEYSLOCAL additional.fields.value.string_value La valeur est extraite du champ USERKEYSLOCAL du journal brut.
NOM D'UTILISATEUR principal.user.userid La valeur est extraite du champ USERNAME du journal brut.
USERPRIVKEY additional.fields.value.string_value La valeur est extraite du champ USERPRIVKEY du journal brut.
USERPRIVKEYLOCAL additional.fields.value.string_value La valeur est extraite du champ USERPRIVKEYLOCAL du journal brut.
USERPRIVPROTOCOL additional.fields.value.string_value La valeur est extraite du champ USERPRIVPROTOCOL du journal brut.
USERSECURITYLEVEL additional.fields.value.string_value La valeur est extraite du champ USERSECURITYLEVEL du journal brut.
USERSECURITYNAME principal.user.user_display_name La valeur est extraite du champ USERSECURITYNAME du journal brut.
application principal.application La valeur est extraite du champ d'application par l'analyseur grok.
description security_result.description La valeur est extraite du champ de description par l'analyseur grok.
metadata.description La valeur est définie sur "Backup NTP Server Failed" (Échec du serveur NTP de sauvegarde) si le champ CT du journal brut est "Backup NTP Server Failed".
metadata.event_timestamp.seconds La valeur est extraite du champ d'horodatage par l'analyseur grok et convertie en secondes epoch.
metadata.event_type La valeur est définie selon la logique suivante :
 = NETWORK_DHCP si network_dhcp_present est défini sur "true" et si principal_present ou target_present est défini sur "true".
 : NETWORK_CONNECTION si target_present et principal_present sont tous les deux définis sur "true".
 : USER_RESOURCE_ACCESS si user_present est défini sur "true".
 : STATUS_UPDATE si principal_present est défini sur "true".
 : GENERIC_EVENT sinon.
metadata.product_log_id La valeur est extraite du champ LTMTXEGRESSID du journal brut.
metadata.product_name La valeur est définie sur "ADVA_FSP".
metadata.vendor_name La valeur est définie sur "ADVA_FSP".
network.application_protocol La valeur est définie sur "DHCP" si network_dhcp_present est défini sur "true" et si principal_present ou target_present sont définis sur "true".
principal.hostname La valeur est extraite du champ principal_hostname par l'analyseur grok, sans les traits de soulignement.
principal.ip La valeur est extraite du champ IPADDR du journal brut et analysée en tant qu'adresse IP.
timestamp.seconds La valeur est extraite du champ d'horodatage par l'analyseur grok et convertie en secondes epoch.

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