Collecter les journaux Aruba IPS
Version de l'analyseur : 3.0
Ce document explique comment ingérer des journaux Aruba IPS dans Google Security Operations à l'aide de l'agent Bindplane. L'analyseur extrait les événements, les notifications, les points d'accès non autorisés et les informations sur les points d'accès WIDS à partir des journaux au format JSON. Il transforme les données de journaux brutes en UDM en mappant les champs, en gérant différents types d'événements (connexion/déconnexion de l'utilisateur, événements réseau, événements liés à la sécurité) et en enrichissant les données avec des informations contextuelles telles que le canal, le SSID, le BSSID et la gravité. L'analyseur effectue également la normalisation des codes temporels et la gestion des exceptions pour les fichiers JSON mal formés.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Un hôte Windows 2016 ou version ultérieure, ou Linux avec
systemd - Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts conformément aux exigences de l'agent BindPlane.
- Accès privilégié à la console de gestion ou à la CLI des appareils Aruba
Obtenir des identifiants Google SecOps pour l'agent BindPlane
Pour authentifier l'agent Bindplane auprès de Google SecOps, choisissez l'une des méthodes suivantes :
- Nouveaux déploiements : utilisez l'API Chronicle (option 1).
- Déploiements existants : continuez à utiliser le fichier d'authentification pour l'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
Option 1 : Créer un compte de service pour l'API Chronicle (recommandé)
- Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
- Accédez à IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- Fournissez les informations de configuration suivantes :
- Nom du compte de service : saisissez un nom pour le compte (par exemple,
bindplane-ingest). - Description du compte de service : saisissez une description (par exemple,
Bindplane agent log ingestion).
- Nom du compte de service : saisissez un nom pour le compte (par exemple,
- Cliquez sur Créer et continuer.
- Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
- Cliquez sur Continue (Continuer), puis sur Done (OK).
- Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
- Cliquez sur Ajouter une clé > Créer une clé.
- Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
- Enregistrez le fichier de clé sous le nom
ingestion-auth.jsondans le répertoire du collecteur BindPlane (/opt/observiq-otel-collector/ingestion-auth.jsonsous Linux ouC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonsous Windows), ou mettez à jourcreds_file_pathdansconfig.yamlpour qu'il corresponde au chemin d'accès où vous l'enregistrez. - Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour la configuration de l'exportateur.
Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres 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 l'agent 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 dans 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 Windows
- 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" /quiet
Installation sous Linux
- Ouvrez un terminal avec des privilèges 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.sh
Ressources d'installation supplémentaires
Pour découvrir d'autres options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
Accédez au fichier de configuration :
- Trouvez le fichier
config.yaml. Il se trouve généralement dans le répertoire/opt/observiq-otel-collector/sous Linux ou dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple,
nano,viou Bloc-notes).
- Trouvez le fichier
Modifiez le fichier
config.yamlcomme suit :receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: YOUR_CUSTOMER_ID_HERE endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'ARUBA_IPS' raw_log_field: body ingestion_labels: 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
YOUR_CUSTOMER_ID_HEREpar le numéro client réel. - Remplacez
/path/to/ingestion-authentication-file.jsonpar le chemin d'accès au fichier de clé du compte de service (option 1) enregistré à l'étape 1. - Remplacez
<LOCATION>par la région de votre instance Google SecOps (par exemple,us,europeouasia-southeast1). L'exportateur ajoute cette valeur en préfixe àchronicle.googleapis.com. Pour obtenir la liste complète, consultez Points de terminaison régionaux. - Remplacez
<PROJECT_NUMBER>par le numéro de projet indiqué dans IAM et administration > Paramètres.
Ancien exportateur d'API d'ingestion
Si vous utilisez le fichier d'authentification d'ingestion de l'option 2, remplacez le bloc
exporterspar le code suivant. Définissezcreds_file_pathsur le chemin d'accès au fichier d'authentification d'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacezmalachiteingestion-pa.googleapis.compar votre point de terminaison régional (par exemple,europe-malachiteingestion-pa.googleapis.com).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: YOUR_CUSTOMER_ID_HERE endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'ARUBA_IPS' raw_log_field: body ingestion_labels:
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-collectorPour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :
net stop observiq-otel-collector && net start observiq-otel-collector
Configurer le transfert Syslog sur les appareils Aruba
Choisissez la méthode de configuration en fonction de votre type d'appareil Aruba :
Option A : Contrôleurs Aruba (AOS-8)
Utiliser l'interface utilisateur Web (recommandé pour le format CEF)
- Connectez-vous à l'interface Web du contrôleur Aruba.
- Dans la hiérarchie des nœuds Managed Network (Réseau géré), accédez à Configuration > System > Logging > Syslog Servers (Configuration > Système > Journalisation > Serveurs Syslog).
- Pour ajouter un serveur de journalisation, cliquez sur + dans la section Serveurs Syslog.
- Fournissez les informations de configuration suivantes :
- Adresse IP du serveur : saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez
514(ou le port configuré dans Bindplane). - Protocole : sélectionnez UDP ou TCP, selon la configuration de votre agent Bindplane.
- Cliquez sur Appliquer.
- Pour sélectionner les types de messages que vous souhaitez consigner, sélectionnez Niveaux de journalisation.
- Sélectionnez la catégorie ou la sous-catégorie à consigner.
- Pour sélectionner le niveau de gravité de la catégorie ou de la sous-catégorie, sélectionnez le niveau dans la liste déroulante Niveau de journalisation.
- Sélectionnez le format de journalisation CEF ou BSD-standard dans la liste déroulante Format.
- Le format CEF (Common Event Format) d'ArcSight est recommandé pour la journalisation structurée.
- Cliquez sur Envoyer.
- Cliquez sur Modifications à finaliser.
- Dans la fenêtre Modifications en attente, cochez la case, puis cliquez sur Déployer les modifications.
Option B : Aruba Instant AP
Utiliser l'UI Web
- Connectez-vous à l'interface Web Aruba Instant.
- Dans la fenêtre principale d'Instant, cliquez sur le lien System (Système).
- Cliquez sur Afficher les options avancées pour afficher les options avancées.
- Cliquez sur l'onglet Surveillance.
- Les détails de l'onglet "Surveillance" s'affichent.
- Dans la zone de texte Serveur Syslog de la section Serveurs, saisissez l'adresse IP de l'agent BindPlane.
- Dans la section Niveaux de fonctionnalité Syslog, sélectionnez les valeurs requises pour configurer les niveaux de fonctionnalité Syslog.
- Niveau Syslog : journal détaillé sur les niveaux Syslog.
- AP-Debug : journal détaillé sur l'appareil Instant AP.
- Réseau : journalise les modifications apportées au réseau, par exemple lorsqu'un nouveau point d'accès instantané est ajouté à un réseau.
- Sécurité : journal concernant la sécurité du réseau, par exemple lorsqu'un client se connecte avec un mot de passe incorrect.
- Système : journal sur la configuration et l'état du système.
- Utilisateur : journaux importants concernant le client.
- User-Debug : journal détaillé sur le client.
- Sans fil : journal concernant la radio.
- Cliquez sur OK pour enregistrer la configuration.
Utiliser la CLI
- Connectez-vous à la CLI Aruba Instant AP.
Passez en mode configuration :
configure terminalConfigurez le serveur et le niveau Syslog :
syslog-server <BINDPLANE_IP_ADDRESS> syslog-level warnings- Remplacez
<BINDPLANE_IP_ADDRESS>par l'adresse IP de l'hôte de votre agent BindPlane. - Ajustez le niveau de gravité si nécessaire.
- Remplacez
Option C : Aruba AOS-S (commutateurs)
- Connectez-vous à la CLI du commutateur Aruba AOS-S.
Passez en mode de configuration :
configureConfigurer le serveur Syslog :
logging <BINDPLANE_IP_ADDRESS> logging severity warnings- Remplacez
<BINDPLANE_IP_ADDRESS>par l'adresse IP de l'hôte de votre agent Bindplane. - Ajustez le niveau de gravité si nécessaire.
- Remplacez
Enregistrez la configuration :
write memory
Option D : Aruba Central (sur site)
- Connectez-vous à l'interface Web Aruba Central.
- Accédez à System> System Administration> Notifications> Syslog Server (Système > Administration système > Notifications > Serveur Syslog).
- Cliquez sur Ajouter ou Activer.
- Fournissez les informations de configuration suivantes :
- Hôte : saisissez l'adresse IP de l'agent BindPlane.
- Port : saisissez
514(ou le port configuré dans Bindplane). - Protocole : sélectionnez UDP ou TCP, en fonction de la configuration de votre agent Bindplane.
- Établissement : sélectionnez Local7 ou selon vos besoins.
- Gravité : sélectionnez le niveau de journalisation minimal (par exemple, Avertissement ou Info).
- Cliquez sur Enregistrer.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
notifications.created_timestamp |
metadata.event_timestamp.seconds |
Le champ de journal brut notifications.created_timestamp est converti en secondes et mappé. Les nanosecondes sont perdues lors de la conversion. |
notifications.customer_id |
metadata.product_log_id |
Mappage direct. |
notifications.device_id |
principal.resource.product_object_id |
Mappage direct. |
notifications.group_name |
principal.group.group_display_name |
Mappage direct. |
notifications.id |
metadata.product_log_id |
Mappage direct. |
notifications.timestamp |
metadata.event_timestamp.seconds |
Le champ de journal brut notifications.timestamp est converti en secondes et mappé. |
rogue_aps.acknowledged |
security_result.detection_fields.value où security_result.detection_fields.key est "acknowledged" |
Converti en chaîne et mappé. |
rogue_aps.containment_status |
metadata.description |
Mappage direct. |
rogue_aps.cust_id |
metadata.product_log_id |
Mappage direct. |
rogue_aps.encryption |
security_result.detection_fields.value où security_result.detection_fields.key est "encryption" |
Mappage direct. |
rogue_aps.first_det_device |
principal.resource.product_object_id |
Mappage direct. |
rogue_aps.first_det_device_name |
principal.hostname |
Mappage direct. |
rogue_aps.first_seen |
principal.domain.first_seen_time.seconds |
Analysé en tant que date et les secondes depuis l'epoch sont mappées. |
rogue_aps.group_name |
principal.group.group_display_name |
Mappage direct. |
rogue_aps.id |
principal.mac |
Convertis en minuscules et mappés. |
rogue_aps.labels |
security_result.detection_fields.value où security_result.detection_fields.key correspond à "labels" |
Mappage direct. |
rogue_aps.last_det_device |
security_result.about.user.product_object_id |
Mappage direct. |
rogue_aps.last_det_device_name |
target.hostname |
Mappage direct. |
rogue_aps.last_seen |
principal.domain.last_seen_time.seconds |
Analysé en tant que date, et les secondes depuis l'epoch sont mappées. Il est également utilisé comme code temporel de l'événement, le cas échéant. |
rogue_aps.mac_vendor |
target.administrative_domain |
Mappage direct. |
rogue_aps.name |
target.user.userid |
Mappage direct. |
rogue_aps.overriden |
security_result.detection_fields.value où security_result.detection_fields.key est "overriden" |
Converti en chaîne et mappé. |
rogue_aps.signal |
security_result.detection_fields.value où security_result.detection_fields.key est "signal" |
Converti en chaîne et mappé. |
rogue_aps.ssid |
security_result.detection_fields.value où security_result.detection_fields.key est "ssid" |
Mappage direct. |
site |
principal.location.name |
Mappage direct. |
wids_aps_info_list.attack_type |
metadata.description |
Mappage direct. |
wids_aps_info_list.detected_ap |
principal.hostname |
Mappage direct. |
wids_aps_info_list.description |
security_result.description |
Mappage direct. Également utilisé pour extraire plusieurs champs à l'aide de grok. |
wids_aps_info_list.event_time |
metadata.event_timestamp.seconds |
Converti en chaîne et utilisé comme code temporel de l'événement, le cas échéant. |
wids_aps_info_list.event_type |
metadata.product_event_type |
Mappage direct. |
wids_aps_info_list.macaddr |
principal.mac |
Convertis en minuscules et mappés. |
wids_aps_info_list.radio_band |
security_result.detection_fields.value où security_result.detection_fields.key est "radio_band" |
Mappage direct. |
wids_aps_info_list.virtual_controller |
target.hostname |
Mappage direct. Définissez la valeur sur true si notifications.severity est défini sur "Emergency", "Alert" ou "Critical". Définissez sur true si notifications.severity est "Emergency", "Alert" ou "Critical". Déterminée par les champs events.event_type ou notifications.type, ou définie sur GENERIC_EVENT par défaut. Plusieurs mappages sont dérivés de la logique : STATUS_STARTUP, STATUS_SHUTDOWN, STATUS_UPDATE, USER_LOGIN, USER_LOGOUT. Toujours défini sur "ARUBA_IPS". Toujours défini sur "ARUBA_IPS". Toujours défini sur "ARUBA". Définissez-le sur "DHCP" si events.event_type est défini sur "Accusé de réception DHCP du client" ou "Délai d'expiration DHCP du client". Définissez cette option sur "BOOTREPLY" si events.event_type est défini sur "Client DHCP Acknowledged" ou "Client DHCP Timeout". Extrait de events.description à l'aide de grok si events.event_type est "Client DHCP Acknowledged". Définissez cette option sur "ACK" si events.event_type est défini sur "Client DHCP Acknowledged" et que events.description contient une adresse IP. Sinon, définissez-la sur "WIN_EXPIRED". Définissez sur "ACCESS POINT" si events.event_type commence par "Radio", "WLAN", "AP" ou est "Security". Définissez la valeur sur "DEVICE" si events.event_type commence par "Radio", "WLAN", "AP" ou est défini sur "Security". Mappé à partir de events.client_mac pour la plupart des événements client ou de rogue_aps.last_det_device pour les événements AP non autorisés. Définissez la valeur sur "AUTH_VIOLATION" pour des valeurs events.event_type spécifiques ou si notifications.description contient "DoS Attack" ou "disconnect attack". Définissez des valeurs events.event_type spécifiques. Plusieurs paires clé-valeur sont ajoutées en fonction des champs extraits, tels que bssid, channel, previous_channel, ssid, previous bssid, acknowledged, overriden, encryption, signal, labels et radio_band. Mappé à partir de wids_aps_info_list.description pour les événements wids. Déterminé par notifications.severity ou wids_aps_info_list.level. Définissez sur "level: %{wids_aps_info_list.level}" pour les événements WIDS. Définissez des valeurs events.event_type spécifiques. Mappé à partir de rogue_aps.mac_vendor pour les événements de point d'accès non autorisé. Mappé à partir de rogue_aps.last_det_device_name pour les événements AP non autorisés ou de wids_aps_info_list.virtual_controller pour les événements WIDS. Extrait de events.description à l'aide de grok si events.event_type est "Security". Mappé à partir de notifications.client_mac pour les événements de notification, de events.client_mac pour les événements client, de target_mac extrait de wids_aps_info_list.description pour les événements WIDS ou de rogue_aps.id pour les événements de point d'accès non autorisé. Définissez la valeur sur "CLIENT" pour la plupart des événements client. Définissez cette valeur sur "DEVICE" pour la plupart des événements client. Définissez la valeur sur "ACTIVE" si events.event_type est "Security". Mappé à partir de rogue_aps.name pour les événements de point d'accès non autorisé. |
events.bssid |
security_result.detection_fields.value où security_result.detection_fields.key est "bssid" |
Mappage direct. |
events.client_mac |
target.mac |
Mappage direct. Également utilisé pour renseigner security_result.about.user.product_object_id pour les événements client et target.ip pour les événements "Sécurité". |
events.description |
metadata.description |
Mappage direct pour les événements de PA et de radio. Utilisé pour extraire plusieurs champs à l'aide de grok pour d'autres types d'événements. |
events.device_mac |
principal.mac |
Mappage direct. |
events.device_serial |
principal.resource.product_object_id |
Mappage direct. |
events.events_details.2.channel |
security_result.detection_fields.value où security_result.detection_fields.key est "channel" |
Mappage direct. |
events.group_name |
principal.group.group_display_name |
Mappage direct. |
events.hostname |
principal.hostname |
Mappage direct. |
events.timestamp |
metadata.event_timestamp.seconds |
Converti en chaîne, les millisecondes sont supprimées, puis mappées. Également utilisé comme code temporel de l'événement, le cas échéant. |
timestamp |
metadata.event_timestamp |
Utilisé comme code temporel de l'événement si d'autres champs de code temporel ne sont pas présents. Définissez cette option sur "ACTIVE" pour la plupart des événements client et les événements "Security". Définissez cette option sur "AUTHTYPE_UNSPECIFIED" si events.event_type est défini sur "Client 802.1x Radius Reject". Extrait de events.description à l'aide de grok si events.event_type est "Security". |
Journal des modifications
Afficher le journal des modifications de ce parseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.