Collecter les journaux de l'équilibreur de charge réseau A10
Ce document explique comment exporter les journaux de l'équilibreur de charge réseau A10 vers Google Security Operations à l'aide d'un agent Bindplane. L'analyseur utilise d'abord des modèles grok
pour extraire les champs pertinents. Il utilise ensuite des instructions conditionnelles (if
) pour mapper les champs extraits sur le modèle de données unifié (UDM) en fonction de leur présence et de leur contenu, et catégorise finalement le type d'événement.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec
systemd
. - Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié à l'équilibreur de charge A10.
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 le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande 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 de Linux
- Ouvrez un terminal avec des 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.sh
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps
Accédez au fichier de configuration:
- 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. - Ouvrez le fichier à l'aide d'un éditeur de texte (
nano
,vi
ou Bloc-notes, par exemple).
- Recherchez le fichier
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: A10_LOAD_BALANCER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.Remplacez
/path/to/ingestion-authentication-file.json
par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'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 serveur Syslog dans l'équilibreur de charge A10
- Établissez une connexion SSH à l'équilibreur de charge A10 à l'aide d'un client SSH.
Accédez au mode de configuration en exécutant la commande suivante:
config
Configurez le serveur syslog distant à l'aide de la commande suivante:
logging host <bindplane-server-ip> <port-number>
- Remplacez
<bindplane-server-ip>
par l'adresse IP de Bindplane et<port-number>
par celle configurée dans Bindplane (par exemple,514
).
- Remplacez
Pour définir le niveau de gravité, utilisez la commande suivante:
logging level information
- Des messages d'information (comme des avertissements et des erreurs) seront envoyés à l'agent Bindplane.
Assurez-vous que la journalisation syslog est activée en exécutant la commande suivante:
logging enable
Enregistrez la configuration pour vous assurer qu'elle persiste après un redémarrage:
write memory
Exemple de configuration complète de la CLI:
config logging host 192.168.1.100 514 logging level info logging enable write memory
Tableau de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
dns | additional.fields.dns.value.string_value | La valeur est extraite du champ dns par le format grok. |
dns_server | additional.fields.dns_server.value.string_value | La valeur est extraite du champ dns_server par le format grok. |
gslb | additional.fields.gslb.value.string_value | La valeur est extraite du champ gslb par le format grok. |
host_name | principal.hostname principal.asset.hostname |
La valeur est extraite du champ host_name par le format grok. |
httpmethod | network.http.method | La valeur est extraite du champ httpmethod par le format grok. |
partion_id | additional.fields.partion_id.value.string_value | La valeur est extraite du champ partion_id par le format grok. |
prin_ip | principal.ip principal.asset.ip |
La valeur est extraite du champ prin_ip par le format grok. |
prin_mac | principal.mac | La valeur est extraite du champ prin_mac par le modèle grok, les points sont supprimés et des deux-points sont insérés tous les deux caractères. |
prin_port | principal.port | La valeur est extraite du champ prin_port par le format grok et convertie en entier. |
proto | network.ip_protocol | La valeur est extraite du champ proto par le format grok. Si le champ message contient UDP , la valeur est définie sur UDP . |
sessionid | network.session_id | La valeur est extraite du champ sessionid par le format grok. |
status_code | network.http.response_code | La valeur est extraite du champ status_code par le format grok et convertie en entier. |
tar_ip | target.ip target.asset.ip |
La valeur est extraite du champ tar_ip par le format grok. |
tar_mac | target.mac | La valeur est extraite du champ tar_mac par le modèle grok, les points sont supprimés et des deux-points sont insérés tous les deux caractères. |
tar_port | target.port | La valeur est extraite du champ tar_port par le format grok et convertie en entier. |
temps | metadata.event_timestamp.seconds | La valeur est analysée à partir du champ time extrait par le format grok, à l'aide de plusieurs formats de date possibles. |
url | target.url | La valeur est extraite du champ url par le format grok. |
utilisateur | principal.user.userid | La valeur est extraite du champ user par le format grok. |
N/A | metadata.event_type | Déterminé par la logique de l'analyseur en fonction de la présence d'informations principales et cibles: - NETWORK_CONNECTION : si les informations principales et cibles sont toutes deux présentes.- STATUS_UPDATE : si seules les informations principales sont présentes.- GENERIC_EVENT : sinon. |
N/A | metadata.log_type | Codé en dur sur A10_LOAD_BALANCER . |
N/A | network.application_protocol | Définissez cette valeur sur HTTP si le champ proto est HTTP . |
Modifications
2024-12-27
Amélioration :
- Ajout de modèles Grok pour analyser les journaux non analysés.
- Ajout d'un bloc KV pour analyser les journaux.
- Mappage de
prin_host
surprincipal.hostname
etprincipal.asset.hostname
. - Mappage de
app
surtarget.application
. - Mappage de
device_version
surmetadata.product_version
. - Mappage de
device_vendor
surmetadata.vendor_name
. - Mappage de
device_product
surmetadata.product_name
. - Mappage de
event_name
etdevice_event_class_id
surmadeta.product_event_type
. - Mappage de
severity
sursecurity_result.severity
. - Mappage de
src
surprincipal.ip
etprincipal.asset.ip
. - Mappage de
spt
surprincipal.port
. - Mappage de
dst
surtarget.ip
ettarget.asset.ip
. - Mappage de
dpt
surtarget.port
. - Mappage de
msg
surmetadata.description
. - Mappage de
suser
surprincipal.user.user_display_name
. - Mappage de
act
etcn1
suradditional.fields
. - Mappage de
method
surnetwork.http.method
. - Mappage de
app_proto
surnetwork.application_protocol
. - Mappage de
tls_version
surnetwork.tls.version
.
2024-01-28
- Analyseur nouvellement créé.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.