Collecter les journaux Netscout Arbor Sightline

Compatible avec :

Ce document explique comment ingérer des journaux Netscout Arbor Sightline dans Google Security Operations à l'aide de l'agent Bindplane.

Netscout Arbor Sightline (anciennement Peakflow SP) est une plate-forme de détection des attaques DDoS et de visibilité sur le réseau. Elle offre des fonctionnalités robustes, de la planification de la capacité à l'échelle du réseau à l'identification et à la gestion de l'atténuation des attaques DDoS et d'autres menaces pour le réseau. Journal de bord collecte et analyse les données de flux, les informations de routage BGP et les données SNMP pour détecter les anomalies, générer des alertes et coordonner les réponses d'atténuation.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et l'appliance Netscout Arbor Sightline
  • 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 administrateur à l'interface Web Netscout Arbor Sightline
  • Accès administrateur à l'interface de ligne de commande (CLI) Netscout Arbor Sightline pour la configuration des alertes système

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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Ressources d'installation supplémentaires

Pour obtenir d'autres options d'installation et de dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  1. Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/arbor_sightline:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: ARBOR_SIGHTLINE
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/arbor_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/arbor_sightline
    
  2. Remplacez les espaces réservés suivants :

    • Configuration du récepteur :

      • Le récepteur est configuré pour écouter sur le port UDP 514 sur toutes les interfaces (0.0.0.0:514).
      • Si vous devez utiliser un autre port (par exemple, 1514 pour les installations Linux non root), modifiez la valeur listen_address.
      • Si vous préférez le syslog TCP, remplacez udplog par tcplog dans la section des récepteurs et dans le pipeline.
    • Configuration de l'exportateur :

      • <CREDS_FILE_PATH> : chemin d'accès complet au fichier d'authentification de l'ingestion :

        • Linux : /etc/bindplane-agent/ingestion-auth.json
        • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • <CUSTOMER_ID> : ID client de l'étape précédente

      • endpoint : URL du point de terminaison régional (l'URL par défaut affichée correspond à la région des États-Unis) :

        • États-Unis : malachiteingestion-pa.googleapis.com
        • Europe : europe-malachiteingestion-pa.googleapis.com
        • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
        • Pour obtenir la liste complète, consultez Points de terminaison régionaux.
      • log_type : définie sur ARBOR_SIGHTLINE (correspondance exacte requise)

      • ingestion_labels : libellés facultatifs au format YAML (à modifier selon votre environnement)

Exemple de configuration

  • receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/arbor_sightline:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ARBOR_SIGHTLINE
        raw_log_field: body
        ingestion_labels:
          env: production
          source: sightline
    
    service:
      pipelines:
        logs/arbor_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/arbor_sightline
    

Enregistrez le fichier de configuration.

Après avoir modifié le fichier, enregistrez-le :

  • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
  • Windows : cliquez sur Fichier > Enregistrer.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux :

    1. Exécutez la commande suivante :

      sudo systemctl restart observiq-otel-collector
      
    2. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    3. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane sous Windows :

    1. Choisissez l'une des options suivantes :

      • Invite de commandes ou PowerShell en tant qu'administrateur :

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Console Services :

        1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
        2. Localisez observIQ OpenTelemetry Collector.
        3. Effectuez un clic droit, puis sélectionnez Redémarrer.
    2. Vérifiez que le service est en cours d'exécution :

      sc query observiq-otel-collector
      
    3. Recherchez les erreurs dans les journaux :

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Configurer le transfert syslog Netscout Arbor Sightline

Pour envoyer des journaux à Google SecOps, vous devez configurer Netscout Arbor Sightline afin qu'il transfère les événements syslog à l'agent Bindplane. Cela implique de créer un groupe de notifications, de configurer les paramètres de notification globaux et de définir des règles de notification d'alerte.

Créer un groupe de notifications

  1. Connectez-vous à l'interface Web Netscout Arbor Sightline en tant qu'administrateur.
  2. Accédez à Administration > Notifications > Groupes.
  3. Cliquez sur Ajouter un groupe de notifications.
  4. Fournissez les informations de configuration suivantes :
    • Destinations : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
    • Port : saisissez 514 (ou le port configuré dans l'agent Bindplane, tel que 1514).
    • Installation : sélectionnez une installation syslog (par exemple, local0 ou user).
    • Gravité : sélectionnez info. Le niveau de gravité "Informations" collecte tous les messages d'événement de ce niveau et des niveaux supérieurs.
  5. Cliquez sur Enregistrer.
  6. Cliquez sur Configuration Commit (Valider la configuration) pour appliquer les modifications de configuration.

Configurer les paramètres de notification généraux

Les notifications globales de Netscout Arbor Sightline fournissent des notifications système qui ne sont pas associées à des règles d'alerte spécifiques.

  1. Dans l'interface Web Netscout Arbor Sightline, accédez à Administration > Notification > Global Settings (Paramètres généraux).
  2. Dans le champ Groupe de notifications par défaut, sélectionnez le groupe de notifications que vous avez créé pour Google SecOps.
  3. Cliquez sur Enregistrer.
  4. Cliquez sur Configuration Commit (Valider la configuration) pour appliquer les modifications de configuration.

Activer les notifications d'alerte système

Les alertes système nécessitent une configuration supplémentaire via l'interface de ligne de commande (CLI).

  1. Connectez-vous à l'interface de ligne de commande Netscout Arbor Sightline en tant qu'administrateur.
  2. Affichez la configuration actuelle des alertes système :

    services sp alerts system_errors show
    
  3. Pour lister les noms de champs d'alertes système disponibles qui peuvent être configurés, exécutez la commande suivante :

    services sp alerts system_errors ?
    
  4. Activez les notifications pour les alertes système. Pour chaque type d'alerte que vous souhaitez activer, exécutez la commande suivante :

    services sp alerts system_errors <alert_name> notifications enable
    

    Remplacez <alert_name> par le nom du champ d'alerte système spécifique (par exemple, disk_full, flow_collector_down, license_expiring).

  5. Effectuez un commit sur les modifications de configuration :

    config write
    

Configurer des règles de notification d'alerte

Les règles de notification d'alerte déterminent quelles alertes déclenchent des notifications syslog vers Google SecOps.

  1. Dans l'interface Web Netscout Arbor Sightline, accédez à Administration > Notification > Rules (Règles).
  2. Choisissez l'une des options suivantes :
    • Cliquez sur une règle existante pour la modifier.
    • Cliquez sur Ajouter une règle pour créer une règle de notification.
  3. Configurez les valeurs suivantes :
    • Nom : saisissez un nom descriptif pour la règle (par exemple, Chronicle-DDoS-Alerts).
    • Ressource : saisissez une adresse CIDR ou sélectionnez un objet géré dans la liste des ressources journal de bord. Pour appliquer la règle à toutes les ressources, laissez ce champ vide ou sélectionnez Toutes.
    • Importance : sélectionnez le niveau d'importance minimal des alertes (par exemple, Low, Medium, High ou Critical). Les alertes de ce niveau ou d'un niveau supérieur déclenchent des notifications.
    • Groupe de notification : sélectionnez le groupe de notification que vous avez créé pour Google SecOps.
  4. Répétez ces étapes pour configurer d'autres règles si nécessaire pour différents niveaux de ressources ou d'importance.
  5. Cliquez sur Enregistrer.
  6. Cliquez sur Configuration Commit (Valider la configuration) pour appliquer les modifications de configuration.

Tester la connectivité syslog

Après avoir configuré le groupe de notifications et les règles, vérifiez que les messages syslog sont envoyés à l'agent Bindplane.

  1. Dans la CLI Netscout Arbor Sightline, testez la connexion Syslog :

    services sp notification test syslog group <notification_group_name>
    

    Remplacez <notification_group_name> par le nom du groupe de notification que vous avez créé.

  2. La commande doit renvoyer :

    Server returned: Success
    
  3. Consultez les journaux de l'agent Bindplane pour vérifier que les messages de test sont bien reçus :

    Linux :

    sudo journalctl -u observiq-otel-collector -f
    

    Windows :

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    
  4. Dans la console Google SecOps, accédez à Rechercher et vérifiez que les journaux Netscout Arbor Sightline s'affichent avec le libellé d'ingestion ARBOR_SIGHTLINE.

Types d'événements transférés vers Google SecOps

  • Netscout Arbor Sightline transfère les catégories d'événements suivantes via syslog :

    • Événements de déni de service (DoS) : alertes de détection d'attaques DDoS, y compris les attaques volumétriques, de protocole et de couche application
    • Événements d'authentification : réussites et échecs de connexion des utilisateurs, tentatives d'authentification
    • Événements d'exploitation : tentatives d'exploitation détectées et schémas de trafic suspects
    • Événements d'activité suspecte : comportement anormal du trafic et menaces potentielles pour la sécurité
    • Événements système : état de l'appliance, état du service, modifications de la configuration et alertes opérationnelles
    • Événements d'atténuation : début, fin et état de l'atténuation des attaques DDoS

Table de mappage UDM

Champ de journal Mappage UDM Logique
msg1 additional.fields Fusionné avec les libellés de chaque champ s'ils ne sont pas vides, à l'aide de clés spécifiques telles que "message_description" pour msg1, "config_version" pour config_version, etc.
config_version additional.fields
prin_user additional.fields
old_bgp_attributes additional.fields
new_bgp_attributes additional.fields
reason additional.fields
sample_rate additional.fields
proto additional.fields
basés sur l'IA additional.fields
identifiant additional.fields
expected_bps additional.fields
actual_bps additional.fields
serveur additional.fields
état additional.fields
pourcentage additional.fields
taux additional.fields
rateunit additional.fields
flags additional.fields
routeur additional.fields
interface additional.fields
ip_ver additional.fields
protocol_id additional.fields
router_name additional.fields
interface_id additional.fields
interface_name additional.fields
priorité additional.fields
log_level additional.fields
piscine additional.fields
thread_id additional.fields
délai avant expiration additional.fields
tentatives additional.fields
vulns extensions.vulns.vulnerabilities Fusionné si la liste des failles n'est pas vide
décroiss. metadata.description Défini sur "%{desc}: %{desc2}" si desc et desc2 ne sont pas vides, sinon desc ; remplacé par message_desc s'il n'est pas vide
desc2 metadata.description
message_desc metadata.description
event_time metadata.event_timestamp Converti à l'aide du filtre de date au format MMM dd HH:mm:ss ou MMM d HH:mm:ss, fuseau horaire Europe/Londres
desc2 metadata.event_type Définissez la valeur sur "SCAN_PROCESS" si desc2 correspond à "(DNS Amplification
message metadata.event_type
src_ip metadata.event_type
has_target_ip metadata.event_type
has_network_protocol metadata.event_type
host_name metadata.event_type
message metadata.product_event_type Définissez la valeur sur "Host Detection" (Détection de l'hôte) si le message correspond à "Host Detection" (Détection de l'hôte), sur "TMS Mitigation started" (Atténuation TMS démarrée) si le message correspond à " started" (démarrée), ou sur "TMS Mitigation stopped" (Atténuation TMS arrêtée) si le message correspond à " stopped" (arrêtée).
metadata.product_name metadata.product_name Définissez-le sur "ARBOR_SIGHTLINE".
metadata.vendor_name metadata.vendor_name Défini sur "NETSCOUT"
direction network.direction Définissez sur "INBOUND" si la direction est "incoming"
proto network.ip_protocol Définissez sur "TCP" si le proto est "6", sinon définissez sur network_protocol en majuscules si la valeur correspond à "(?i)(TCP
network_protocol network.ip_protocol
bytes network.sent_bytes Valeur copiée directement, convertie en uinteger
paquets network.sent_packets Valeur copiée directement, convertie en entier
duration network.session_duration.seconds Valeur copiée directement si elle n'est pas vide et n'est pas égale à "0", convertie en entier
host_name principal.hostname Valeur copiée directement
src_ip principal.ip Fusionné à partir de src_ip et nameserver_ip
nameserver_ip principal.ip
espace de noms principal.namespace Valeur copiée directement
filename principal.process.file.full_path Valeur copiée directement
alert_id principal.process.pid Valeur copiée directement
prin_url principal.url Valeur copiée directement
prin_user principal.user.userid Valeur copiée directement
impact security_result.detection_fields Fusionné avec les clés "Impact" de impact, "Importance" de importance, "Signature" de signature, "Leader" de leader, "parent_managed_object" de parent_managed_object, "Alert ID" de alert_id
importance security_result.detection_fields
signature security_result.detection_fields
leader security_result.detection_fields
parent_managed_object security_result.detection_fields
alert_id security_result.detection_fields
de gravité, security_result.severity Définissez la valeur sur "INFORMATIONAL" si la gravité est dans ["10","9"], sur "LOW" si elle est dans ["8","7"], sur "MEDIUM" si elle est égale à "6", sur "HIGH" si elle est dans ["5","4"] et sur "CRITICAL" si elle est dans ["3","2","1"].
desc2 security_result.threat_status Définissez la valeur sur "ACTIVE" si la description correspond à "Alerte de détection d'hôte" et que le message est "start" (démarrer) et non "stop" (arrêter). Définissez la valeur sur "CLEARED" (Résolu) si la description correspond à "Alerte de détection d'hôte" et que le message est "stop" (arrêter).
message security_result.threat_status
intem_host target.group.product_object_id Valeur copiée directement
dst_ip target.ip Valeur copiée directement
dst_port target.port Valeur copiée directement, convertie en entier
file_path target.process.file.full_path Valeur copiée directement
stop_time vulns.vulnerabilities.scan_end_time Converti à l'aide du filtre de date au format aaaa-MM-jj HH:mm:ss
start_time vulns.vulnerabilities.scan_start_time Converti à l'aide du filtre de date au format yyyy-MM-dd HH:mm:ss ou yyyy-MM-dd

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