Collecter les journaux de l'équilibreur de charge réseau A10

Compatible avec:

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

  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 le numéro client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.

Installer l'agent Bindplane

Installation de Windows

  1. Ouvrez l'invite de commande 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 des 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 qu'il ingère les journaux Syslog et les envoie à Google SecOps

  1. Accédez au fichier de configuration:

    1. 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.
    2. Ouvrez le fichier à l'aide d'un éditeur de texte (nano, vi ou Bloc-notes, par exemple).
  2. 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
    
  3. Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.

  4. Remplacez <customer_id> par le numéro client réel.

  5. 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

  1. Établissez une connexion SSH à l'équilibreur de charge A10 à l'aide d'un client SSH.
  2. Accédez au mode de configuration en exécutant la commande suivante:

    config
    
  3. 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).
  4. 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.
  5. Assurez-vous que la journalisation syslog est activée en exécutant la commande suivante:

    logging enable
    
  6. 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 sur principal.hostname et principal.asset.hostname.
  • Mappage de app sur target.application.
  • Mappage de device_version sur metadata.product_version.
  • Mappage de device_vendor sur metadata.vendor_name.
  • Mappage de device_product sur metadata.product_name.
  • Mappage de event_name et device_event_class_id sur madeta.product_event_type.
  • Mappage de severity sur security_result.severity.
  • Mappage de src sur principal.ip et principal.asset.ip.
  • Mappage de spt sur principal.port.
  • Mappage de dst sur target.ip et target.asset.ip.
  • Mappage de dpt sur target.port.
  • Mappage de msg sur metadata.description.
  • Mappage de suser sur principal.user.user_display_name.
  • Mappage de act et cn1 sur additional.fields.
  • Mappage de method sur network.http.method.
  • Mappage de app_proto sur network.application_protocol.
  • Mappage de tls_version sur network.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.