Collecter les journaux F5 AFM

Compatible avec :

Ce document explique comment ingérer des journaux F5 Advanced Firewall Management dans Google Security Operations à l'aide de Bindplane. L'analyseur transforme les journaux au format SYSLOG et CSV ou CSV en Unified Data Model (UDM). Il tente d'abord d'analyser le message de journal à l'aide de modèles Grok spécifiques au format SYSLOG. S'il n'y parvient pas, il le traite comme un fichier CSV, en extrayant et en mappant les champs à la structure UDM.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • 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 et F5 Advanced Firewall Management

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 les journaux Syslog et les 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:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:5145"
    
    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
            ingestion_labels:
                log_type: 'F5_AFM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                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 en indiquant le chemin d'accès 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
    

Activer F5 BIG-IP Advanced Firewall Manager

  1. Connectez-vous à la console de gestion de l'appliance BIG-IP.
  2. Accédez à Système > Licence.
  3. Vérifiez que le Gestionnaire de pare-feu avancé est sous licence et activé.
  4. Pour activer le Gestionnaire de pare-feu avancé, accédez à Système > Ressource > Provisionnement.
  5. Cochez la case dans la colonne "Provisionnement", puis sélectionnez Nominal dans la liste.
  6. Cliquez sur Envoyer.

Configurer le pool de journalisation dans F5 AFM

  1. Accédez à Trafic local > Pools.
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom pour le pool de journaux (par exemple, logging_pool).
    • Health Monitor (Surveillance de l'état) : dans la liste Available (Disponible), sélectionnez TCP, puis cliquez sur <<.
  4. Dans l'onglet Ressource, sélectionnez le pool de journaux que vous avez créé précédemment dans la liste Nom du nœud.
  5. Dans le champ Adresse, saisissez l'adresse IP de l'agent Bindplane.
  6. Dans le champ Port du service, saisissez 5145 ou un autre port tel que vous l'avez défini dans l'agent Bindplane.
  7. Cliquez sur Ajouter.
  8. Cliquez sur Terminer.

Configurer la destination du journal mis en forme dans F5 AFM

  1. 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 pour la destination du format de journalisation (par exemple, Logging_Format_Destination).
    • Description : saisissez une description.
    • Type : sélectionnez Syslog distant.
    • Format Syslog : sélectionnez Syslog.
    • Destination des journaux à haut débit : sélectionnez la destination des journaux à haut débit (par exemple, Logging_HSL_Destination).
  4. Cliquez sur Terminé.

Configurer Log Publisher dans F5 AFM

  1. 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 pour l'éditeur (par exemple, Log_Publisher).
    • Description : saisissez une description.
    • Destinations : sélectionnez le nom de la destination du journal que vous avez créé à l'étape Configurer le pool de journalisation dans F5 AFM, puis cliquez sur << pour ajouter des éléments à la liste Sélectionné.

Configurer le profil de journalisation dans F5 AFM

  1. Accédez à Sécurité > Journaux d'événements > Profil de journalisation.
  2. Cliquez sur Créer.
  3. Fournissez les informations de configuration suivantes :
    • Nom : saisissez un nom pour le profil de journal (par exemple, Logging_Profile).
    • Pare-feu réseau : cochez la case Activé.
    • Éditeur : sélectionnez l'éditeur de journaux que vous avez configuré précédemment (par exemple, Log_Publisher).
    • Correspondances des règles de journalisation : cochez les cases Accepter, Supprimer et Refuser.
    • Enregistrer les erreurs d'adresse IP : cochez la case Activé.
    • Consigner les erreurs TCP : cochez la case Activé.
    • Consigner les événements TCP : cochez la case Activé.
    • Format de stockage : sélectionnez Liste de champs.
    • Délimiteur : saisissez , (virgule) comme délimiteur pour les événements.
    • Options de stockage : sélectionnez toutes les options dans la liste Éléments disponibles, puis cliquez sur <<.
    • Dans l'onglet IP Intelligence, sélectionnez l'éditeur de journaux que vous avez configuré (par exemple, Log_Publisher).
  4. Cliquez sur Terminé.

Configurer l'association de profil de serveur virtuel dans F5 AFM

  1. Accédez à Trafic local> Serveurs virtuels.
  2. Sélectionnez le serveur virtuel à modifier.
  3. Accédez à l'onglet Sécurité> Règles.
  4. Dans la liste Profil de journal, sélectionnez Activé.
  5. Dans le champ Profil, sélectionnez Logging_Profile, puis cliquez sur <<.
  6. Cliquez sur Mettre à jour.

Table de mappage UDM

Champ du journal Mappage UDM Logique
acl_policy_name security_result.detection_fields.acl_policy_name Valeur de la colonne 22 si le format du journal est SYSLOG, sinon valeur de la colonne 13
acl_policy_type security_result.detection_fields.acl_policy_type Valeur de la colonne 21 si le format du journal est SYSLOG, sinon valeur de la colonne 18
acl_rule_name security_result.rule_name Valeur de la colonne 23 si le format du journal est SYSLOG, sinon valeur de la colonne 11
acl_rule_uuid security_result.rule_id Valeur du champ "acl_rule_uuid" du modèle Grok
action security_result.action Si la valeur de la colonne 25 est Drop, Reject ou Block, alors BLOCK. Sinon, si la valeur de la colonne 25 est Accept, Accept decisively, Established ou Allow, alors ALLOW.
attackID security_result.detection_fields.attackID Valeur de la colonne 12 si le format du journal est CSV sans src_ip
bigip_hostname intermediary.hostname Valeur de la colonne 2 si le format du journal est SYSLOG, sinon valeur de la colonne 3
bigip_ip intermediary.ip Valeur de la colonne 2 si le format du journal est SYSLOG, sinon valeur de la colonne 1
context_name additional.fields.context_name.string_value Valeur de la colonne 4 si le format du journal est SYSLOG, sinon valeur de la colonne 10 si src_ip est présent, sinon valeur de la colonne 5
context_type additional.fields.context_type.string_value Valeur de la colonne 3 si le format du journal est SYSLOG, sinon valeur de la colonne 4 si src_ip est présent, sinon valeur de la colonne 4
dest_fqdn additional.fields.dest_fqdn.string_value Valeur de la colonne 7 si le format du journal est SYSLOG, sinon valeur de la colonne 13
dest_geo additional.fields.dest_geo.string_value Valeur de la colonne 14
dest_ip target.asset.ip, target.ip Valeur de la colonne 8 si le format du journal est SYSLOG, sinon valeur de la colonne 6 si src_ip est présent, sinon valeur de la colonne 6
dest_port target.port Valeur de la colonne 10 si le format du journal est SYSLOG, sinon valeur de la colonne 8 si src_ip est présent, sinon valeur de la colonne 8
drop_reason security_result.summary Valeur de la colonne 26 si le format du journal est SYSLOG, sinon valeur de la colonne 19
eventId additional.fields.eventId.string_value Valeur capturée dans le modèle Grok
flow_id additional.fields.flow_id.string_value Valeur de la colonne 29 si le format du journal est SYSLOG, sinon valeur de la colonne 17
loglevel security_result.severity Si la valeur du champ "loglevel" du modèle Grok est warning, debug ou notice, le niveau de gravité est "MEDIUM". Si la valeur est info ou informational, le niveau de gravité est "INFORMATIONAL". Si la valeur est err ou error, le niveau de gravité est "HIGH". Si la valeur est alert, crit ou emer, le niveau de gravité est "CRITICAL".
packetsReceived network.received_packets Valeur de la colonne 15 si le format du journal est CSV sans src_ip
de diffusion inverse target.application Valeur du champ de processus à partir du modèle grok
protocol_number_src network.ip_protocol Valeur de la colonne 12 si le format du journal est SYSLOG, sinon valeur extraite de la variable ip_protocol_out
route_domain additional.fields.route_domain.string_value Valeur de la colonne 13 si le format du journal est SYSLOG, sinon valeur de la colonne 9
source_fqdn additional.fields.source_fqdn.string_value Valeur de la colonne 5 si le format du journal est SYSLOG, sinon valeur de la colonne 7
src_geo additional.fields.src_geo.string_value Valeur de la colonne 8
src_ip principal.asset.ip, principal.ip Valeur de la colonne 6 si le format du journal est SYSLOG, sinon valeur de la colonne 9 si le format du journal est CSV sans src_ip, sinon valeur de la colonne 5
src_port principal.port Valeur de la colonne 9 si le format du journal est SYSLOG, sinon valeur de la colonne 7 si le format du journal est CSV sans src_ip, sinon valeur de la colonne 7
ts metadata.event_timestamp Valeur du champ "ts" du modèle grok
vlan additional.fields.vlan.string_value Valeur de la colonne 11 si le format du journal est SYSLOG, sinon valeur de la colonne 21
metadata.event_type Si src_ip et dest_ip existent, NETWORK_CONNECTION. Sinon, si seul src_ip existe, STATUS_UPDATE. Sinon, GENERIC_EVENT.
metadata.log_type F5_AFM
metadata.product_name Gestion avancée du pare-feu
metadata.vendor_name F5

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