Collecter les journaux F5 DNS

Compatible avec :

Ce document explique comment ingérer des journaux DNS F5 dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les champs des messages syslog F5 DNS à l'aide de modèles Grok basés sur le champ d'application, puis les mappe au modèle de données unifié (UDM). Il gère diverses applications F5 telles que gtmd, mcpd, big3d et d'autres, en analysant des champs spécifiques et en définissant le type d'événement UDM, la gravité et les descriptions appropriés en fonction du niveau de journalisation et de l'application.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Un hôte Windows 2016 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
  • Accès privilégié à F5 BIG-IP

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
    

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
    

Ressources d'installation supplémentaires

Pour plus d'options d'installation, consultez le guide d'installation.

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. 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 (par exemple, nano, vi ou le Bloc-notes).
  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_file_path: '/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
            log_type: 'F5_DNS'
            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 <customer_id> par le numéro client réel.
    • Mettez à jour /path/to/ingestion-authentication-file.json avec le chemin d'accès à l'emplacement où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'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 un pool de serveurs de journalisation à distance

  1. Connectez-vous à l'interface utilisateur Web F5 BIG-IP.
  2. Dans l'onglet Principal, accédez à DNS > Delivery > Load Balancing > Pools ou Local Traffic > Pools.
  3. Cliquez sur Créer.
  4. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour le pool.
    • À l'aide du paramètre Nouveaux membres :
      • Saisissez l'adresse IP de l'agent Bindplane dans le champ Adresse.
      • Saisissez le numéro de port de l'agent Bindplane dans le champ Port du service.
  5. Cliquez sur Ajouter > Terminer.

Configurer la destination du journal à distance

  1. Dans l'onglet Principal, accédez à Système > Journaux > Configuration > Destinations des journaux.
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour cette destination.
    • Type : sélectionnez Journal à distance à haut débit.
    • Nom du pool : sélectionnez le pool de serveurs de journaux à distance auxquels vous souhaitez que le système BIG-IP envoie les messages de journaux.
    • Protocole : sélectionnez le protocole utilisé.
  4. Cliquez sur Terminé.

Créer une destination de journal à distance formatée

  1. Dans l'onglet Principal, accédez à Système > Journaux > Configuration > Destinations des journaux.
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour cette destination.
    • Type : sélectionnez Syslog distant.
    • Format : sélectionnez le format du journal.
    • Transférer vers : sélectionnez Destination du journal à haut débit > la destination qui pointe vers le pool de serveurs Syslog distants.
  4. Cliquez sur Terminé.

Configurer Log Publisher

  1. Dans l'onglet Principal, accédez à Système > Journaux > Configuration > Éditeurs de journaux.
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour cet éditeur.
    • Destinations : sélectionnez la destination Remote Syslog que vous venez de créer dans la liste Available (Disponible), puis cliquez sur keyboard_double_arrow_left Move (Déplacer) pour déplacer la destination vers la liste Selected (Sélectionnée).
  4. Cliquez sur Terminé.

Configurer un profil de journalisation DNS personnalisé

  1. Dans l'onglet Main (Principal), accédez à DNS > Delivery > Profiles &gt Other > DNS Logging or Local Traffic > Profiles > Other > DNS Logging (DNS > Distribution > Profils > Autre > Journalisation DNS ou trafic local > Profils > Autre > Journalisation DNS).
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom unique pour ce profil.
    • Éditeur de journaux : sélectionnez la destination que vous venez de créer et vers laquelle le système envoie les entrées de journal DNS.
    • Enregistrer les requêtes : cochez la case Activé.
    • Enregistrer les réponses : cochez la case Activé.
    • Inclure l'ID de requête : cochez la case Activé.
  4. Cliquez sur Terminé.

Ajouter le profil DNS à l'écouteur DNS

  1. Dans l'onglet Main (Principal), accédez à DNS > Delivery > Listeners > select DNS listener (DNS > Distribution > Écouteurs > sélectionner l'écouteur DNS).
  2. Dans la section Service, sélectionnez le profil DNS que vous avez configuré précédemment.
  3. Cliquez sur Mettre à jour.

Table de mappage UDM

Champ de journal Mappage UDM Logique
application principal.application Mappé directement à partir du champ application.
cipher_name network.tls.cipher Mappé directement à partir du champ cipher_name.
command_line principal.process.command_line Mappé directement à partir du champ command_line.
desc security_result.description Mappé directement à partir du champ desc.
desc_icrd security_result.description Mappé directement à partir du champ desc_icrd.
dest_ip target.ip Mappé directement à partir du champ dest_ip.
dest_port target.port Mappé directement à partir du champ dest_port.
file_path principal.process.file.full_path Mappé directement à partir du champ file_path. Défini sur true si level est "alert", sinon absent. Défini sur true si level est "alert", sinon absent.
msg3 security_result.description Mappé directement à partir du champ msg3 lorsque application est défini sur "run-parts".
metadata.event_type Définie sur GENERIC_EVENT si event_type est vide, sinon mappée à partir de event_type. Codé en dur sur "DNS". Codé en dur sur "F5".
principal_hostname principal.hostname Mappé directement à partir du champ principal_hostname.
proc_id principal.process.pid Mappé directement à partir du champ proc_id.
received_bytes network.received_bytes Mappé directement à partir du champ received_bytes.
resource_id target.resource.id Mappé directement à partir du champ resource_id.
resource_parent principal.resource.parent Mappé directement à partir du champ resource_parent.
response_code network.http.response_code Mappé directement à partir du champ response_code. Déterminé en fonction du champ level.
src_ip principal.ip Mappé directement à partir du champ src_ip.
src_port principal.port Mappé directement à partir du champ src_port.
tls_version network.tls.version Mappé directement à partir du champ tls_version.
userName principal.user.userid Mappé directement à partir du champ userName.
when event.timestamp Calculé à partir de datetime1 et timezone ou datetime et timezone.

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