Collecter les journaux APM F5 BIG-IP

Compatible avec:

Ce document explique comment collecter les journaux du Gestionnaire de règles d'accès (APM, Access Policy Manager) F5 BIG-IP à l'aide d'un transfert Google Security Operations.

Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.

Un libellé d'ingestion identifie l'analyseur qui normalise les données de journal brutes au format UDM structuré. Les informations de ce document s'appliquent à l'analyseur avec le libellé d'ingestion F5_BIGIP_APM.

Configurer l'APM F5 BIG-IP

  1. Connectez-vous au portail de l'utilitaire de configuration BIG-IP à l'aide d'identifiants administrateur.
  2. Sélectionnez Principal > Système > Journaux > Configuration > Journalisation à distance.
  3. Dans la section Propriétés, procédez comme suit:

    • Dans le champ Adresse IP distante, saisissez l'adresse IP du forwarder Google Security Operations.
    • Dans le champ Port distant, saisissez un numéro de port élevé.
  4. Cliquez sur Ajouter.

  5. Cliquez sur Mettre à jour.

    Pour les journaux d'APM, seul le format syslog BSD (Berkeley Software Distribution) est accepté.

    En fonction des signatures de l'APM, le collecteur ne traite que les journaux APM. Le collecteur d'événements APM F5 BIG-IP est également compatible avec les journaux multithreads des appareils LTM 11.6 à 12.1.1.

    Si vous utilisez une iRule, utilisez le format recommandé. Google Security Operations n'accepte que le format d'iRule suivant:

    # log_header_requests
    ###################################################################################
    #################################################
    # Purpose: logs header information to Local Traffic log
    # #
    #
    # Update-Log Date By Description
    # Created 02/07/2020 E01961 Initial implementation
    #
    #
    ###################################################################################
    ################################################
    when HTTP_REQUEST {
    set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host]
    [HTTP::uri]"
    log local5. "================="
    log local5. "$LogString (request)"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # set UserID [URI::query "?[HTTP::payload]" "UserID"]
    # log local0. "User $UserID attempted login from [IP::client_addr] and referer:
    [HTTP::header "Referer"]"
    # log local0. "============================================="
    }
    when HTTP_RESPONSE {
    log local5. "=================="
    log local5. "$LogString (response) - status: [HTTP::status]"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # log local0. "============================================="
    

Configurer le DNS F5 BIG-IP

Pour configurer le DNS F5 BIG-IP, procédez comme suit:

Créer un pool de serveurs de journalisation distants

  1. Dans l'onglet Principal, sélectionnez DNS > Diffusion > Équilibrage de charge > Pools ou trafic local > Pools.
  2. Dans la fenêtre Liste des pools qui s'affiche, cliquez sur Créer.
  3. Dans la fenêtre Nouveau pool qui s'affiche, dans le champ Nom, indiquez un nom unique pour le pool.
  4. Dans la section Nouveaux membres, ajoutez l'adresse IP de chaque serveur de journalisation à distance que vous souhaitez inclure dans le pool :
    1. Dans le champ Adresse, saisissez l'adresse IP du forwarder Google Security Operations ou sélectionnez une adresse de nœud dans la liste des nœuds.
    2. Dans le champ Port de service, saisissez un numéro de service ou sélectionnez un nom de service dans la liste. Assurez-vous d'avoir configuré le port de journalisation à distance approprié.
  5. Cliquez sur Ajouter, puis sur Terminé.

Créer une destination de journalisation à distance à haut débit

  1. Dans l'onglet Principal, sélectionnez Système > Journaux > Configuration > Destinations des journaux.
  2. Dans la fenêtre Destinations des journaux qui s'affiche, cliquez sur Créer.
  3. Dans le champ Nom, indiquez un nom unique et identifiable pour cette destination.
  4. Dans la liste Type, sélectionnez Journalisation à distance haute vitesse.
  5. Dans la liste Nom du pool, sélectionnez le pool de serveurs de journaux distants auxquels le système BIG-IP doit envoyer des messages de journal.
  6. Dans la liste Protocole, sélectionnez le protocole utilisé par les membres du pool de journalisation haute vitesse.
  7. Cliquez sur Terminé.

Créer une destination de journalisation distante haute vitesse formatée

  1. Dans l'onglet Principal, sélectionnez Système > Journaux > Configuration > Destinations des journaux.
  2. Dans la fenêtre Destinations des journaux qui s'affiche, cliquez sur Créer.
  3. Dans le champ Nom, indiquez un nom unique et identifiable pour cette destination.
  4. Dans la liste Type, sélectionnez Syslog distant comme destination de journalisation formatée. Le système BIG-IP est maintenant configuré pour envoyer une chaîne de texte formatée aux serveurs de journaux.
  5. Dans la liste Type, sélectionnez un format pour les journaux.
  6. Dans l'onglet Forward To (Transférer vers), sélectionnez la liste High-speed log destination (Destination des journaux haut débit), puis la destination qui pointe vers un pool de serveurs syslog distants auxquels vous souhaitez que le système BIG-IP envoie des messages de journal.
  7. Cliquez sur Terminé.

Créer un éditeur

  1. Dans l'onglet Principal, sélectionnez Système > Journaux > Configuration > Éditeurs de journaux.
  2. Dans la fenêtre Éditeurs de journaux qui s'affiche, cliquez sur Créer.
  3. Dans le champ Nom, indiquez un nom unique et identifiable pour l'éditeur.
  4. Dans la liste Éditeur de journaux, sélectionnez la destination créée précédemment dans la liste disponible.
  5. Pour déplacer la destination vers la liste sélectionnée, cliquez sur << Déplacer.
  6. Si vous utilisez une destination formatée, sélectionnez la destination nouvellement créée qui correspond à vos serveurs de journaux, tels que syslog distant, Splunk ou ArcSight.
  7. Cliquez sur Terminé.

Créer un profil de journalisation DNS personnalisé

  1. Dans l'onglet Principal, sélectionnez DNS > Livraison > Profils > Autre Journalisation DNS ou Trafic local > Profils > Autre > Journalisation DNS.
  2. Dans la fenêtre Liste des profils de journalisation DNS qui s'affiche, cliquez sur Créer.
  3. Dans le champ Nom, saisissez un nom unique pour le profil.
  4. Dans la liste Éditeur de journaux, sélectionnez une destination à laquelle le système BIG-IP envoie des entrées de journal DNS.
  5. Si vous souhaitez que le système BIG-IP :
    • Pour journaliser toutes les requêtes DNS, assurez-vous que la case à cocher Journaliser les requêtes est activée.
    • Pour consigner toutes les réponses DNS, cochez la case d'activation du paramètre Log responses (Journaliser les réponses).
    • Pour inclure l'ID de requête envoyé par le client dans les messages de journal, cochez la case d'activation du paramètre Inclure l'ID de requête.
  6. Cliquez sur Terminé.

Ajouter un profil de journalisation DNS à l'écouteur

  1. Dans l'onglet Principal, sélectionnez DNS > Diffusion > Écouteurs > Écouteur DNS.
  2. Dans la section Service, dans la liste DNS profile (Profil DNS), sélectionnez le profil DNS que vous avez configuré précédemment.
  3. Cliquez sur Mettre à jour.

Configurer le transfert Google Security Operations pour ingérer les journaux APM F5 BIG-IP

  1. Accédez à Paramètres du SIEM > Transferts.
  2. Cliquez sur Ajouter un forwarder.
  3. Dans le champ Nom du transmettant, saisissez un nom unique pour le transmettant.
  4. Cliquez sur Envoyer. Le forwarder est ajouté, et la fenêtre Ajouter une configuration de collecteur s'affiche.
  5. Dans le champ Nom du collecteur, saisissez un nom.
  6. Sélectionnez F5 BIGIP Access Policy Manager comme Type de journal.
  7. Sélectionnez Syslog comme type de collecteur.
  8. Configurez les paramètres d'entrée obligatoires suivants :
    • Protocole: spécifiez le protocole.
    • Adresse: spécifiez l'adresse IP ou le nom d'hôte cible où se trouve le collecteur et les adresses des données syslog.
    • Port: spécifiez le port cible sur lequel se trouve le collecteur et sur lequel il écoute les données syslog.
  9. Cliquez sur Envoyer.

Pour en savoir plus sur les transferts Google Security Operations, consultez Gérer les configurations de transfert via l'interface utilisateur de Google Security Operations.

Si vous rencontrez des problèmes lors de la création de transmetteurs, contactez l'assistance Google Security Operations.

Référence du mappage de champs

Cet analyseur APM F5 BIG-IP extrait des champs des messages syslog et les catégorise en fonction de la source de l'application (tmsh, tmm, apmd, httpd ou autre). Il mappe ensuite ces champs extraits sur l'UDM, gère différents formats de journaux et enrichit les données avec des métadonnées telles que la gravité, l'emplacement et les informations utilisateur.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
application principal.application La valeur est extraite du champ application par le filtre grok.
bytes_in network.received_bytes La valeur est extraite du champ bytes_in par le filtre grok et convertie en entier sans signature.
bytes_out network.sent_bytes La valeur est extraite du champ bytes_out par le filtre grok et convertie en entier sans signature.
cmd_data principal.process.command_line La valeur est extraite du champ cmd_data par le filtre kv.
destination_ip target.ip La valeur est extraite du champ destination_ip par le filtre grok.
destination_port target.port La valeur est extraite du champ destination_port par le filtre grok et convertie en entier.
dossier principal.process.file.full_path La valeur est extraite du champ folder par le filtre kv.
geoCountry principal.location.country_or_region La valeur est extraite du champ geoCountry par le filtre grok.
geoState principal.location.state La valeur est extraite du champ geoState par le filtre grok.
inner_msg security_result.description La valeur est extraite du champ inner_msg par le filtre grok lorsqu'aucune autre description spécifique n'est disponible.
ip_protocol network.ip_protocol La valeur est extraite du champ ip_protocol par le filtre grok.
principal_hostname principal.hostname La valeur est extraite du champ principal_hostname par le filtre grok.
principal_ip principal.ip La valeur est extraite du champ principal_ip par le filtre grok.
process_id principal.process.pid La valeur est extraite du champ process_id par le filtre grok.
rôle user_role.name La valeur est extraite du champ role par le filtre grok. Si le champ role contient "admin" (non sensible à la casse), la valeur est définie sur "ADMINISTRATEUR".
de gravité, security_result.severity_details La valeur d'origine du message syslog est stockée ici. La valeur est dérivée du champ severity à l'aide d'une logique conditionnelle:
CRITICAL -> CRITICAL
ERR -> ERROR
ALERT, EMERGENCY -> HIGH
INFO, NOTICE -> INFORMATIONAL
DEBUG -> LOW
WARN -> MEDIUM
source_ip principal.ip La valeur est extraite du champ source_ip par le filtre grok.
source_port principal.port La valeur est extraite du champ source_port par le filtre grok et convertie en entier.
état security_result.summary La valeur est extraite du champ status par le filtre kv.
timestamp metadata.event_timestamp, timestamp La valeur est extraite du champ timestamp par le filtre grok et analysée dans un objet horodatage. Le champ timestamp de l'objet event de niveau supérieur reçoit également cette valeur.
utilisateur principal.user.userid La valeur est extraite du champ user extrait par le filtre grok, après suppression des préfixes "id\" ou "ID\". La valeur est dérivée en fonction de la présence d'autres champs:
Si user existe: USER_UNCATEGORIZED
Si source_ip et destination_ip existent: NETWORK_CONNECTION
Si principal_ip ou principal_hostname existent: STATUS_UPDATE
Sinon: GENERIC_EVENT Codé en dur sur "BIGIP_APM". Code codé en dur sur "F5". Si le champ result est défini sur "failed", la valeur est définie sur "BLOCK".

Modifications

2023-06-06

  • Analyseur nouvellement créé.

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