Collecter les journaux Netscout Arbor Sightline
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
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
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sc query observiq-otel-collectorLe service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sudo systemctl status observiq-otel-collectorLe 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.yamlWindows :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifiez le fichier de configuration
Remplacez l'intégralité du contenu de
config.yamlpar 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_sightlineRemplacez 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,
1514pour les installations Linux non root), modifiez la valeurlisten_address. - Si vous préférez le syslog TCP, remplacez
udplogpartcplogdans la section des récepteurs et dans le pipeline.
- Le récepteur est configuré pour écouter sur le port UDP 514 sur toutes les interfaces (
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
- Linux :
<CUSTOMER_ID>: ID client de l'étape précédenteendpoint: 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.
- États-Unis :
log_type: définie surARBOR_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 surEnter, puis surCtrl+X. - Windows : cliquez sur Fichier > Enregistrer.
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 observiq-otel-collectorVérifiez que le service est en cours d'exécution :
sudo systemctl status observiq-otel-collectorRecherchez les erreurs dans les journaux :
sudo journalctl -u observiq-otel-collector -f
Pour redémarrer l'agent Bindplane sous Windows :
Choisissez l'une des options suivantes :
Invite de commandes ou PowerShell en tant qu'administrateur :
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Localisez observIQ OpenTelemetry Collector.
- Effectuez un clic droit, puis sélectionnez Redémarrer.
- Appuyez sur
Vérifiez que le service est en cours d'exécution :
sc query observiq-otel-collectorRecherchez 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
- Connectez-vous à l'interface Web Netscout Arbor Sightline en tant qu'administrateur.
- Accédez à Administration > Notifications > Groupes.
- Cliquez sur Ajouter un groupe de notifications.
- 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 que1514). - Installation : sélectionnez une installation syslog (par exemple,
local0ouuser). - Gravité : sélectionnez
info. Le niveau de gravité "Informations" collecte tous les messages d'événement de ce niveau et des niveaux supérieurs.
- Destinations : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple,
- Cliquez sur Enregistrer.
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.
- Dans l'interface Web Netscout Arbor Sightline, accédez à Administration > Notification > Global Settings (Paramètres généraux).
- Dans le champ Groupe de notifications par défaut, sélectionnez le groupe de notifications que vous avez créé pour Google SecOps.
- Cliquez sur Enregistrer.
- 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).
- Connectez-vous à l'interface de ligne de commande Netscout Arbor Sightline en tant qu'administrateur.
Affichez la configuration actuelle des alertes système :
services sp alerts system_errors showPour 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 ?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 enableRemplacez
<alert_name>par le nom du champ d'alerte système spécifique (par exemple,disk_full,flow_collector_down,license_expiring).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.
- Dans l'interface Web Netscout Arbor Sightline, accédez à Administration > Notification > Rules (Règles).
- 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.
- 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,HighouCritical). 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.
- Nom : saisissez un nom descriptif pour la règle (par exemple,
- Répétez ces étapes pour configurer d'autres règles si nécessaire pour différents niveaux de ressources ou d'importance.
- Cliquez sur Enregistrer.
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.
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éé.La commande doit renvoyer :
Server returned: SuccessConsultez 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 -fWindows :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"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.