Collecter les journaux F5 BIG-IP APM

Compatible avec :

Ce document explique comment collecter les journaux F5 BIG-IP Access Policy Manager (APM) à l'aide d'un transmetteur 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 journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur avec le libellé d'ingestion F5_BIGIP_APM.

Configurer F5 BIG-IP APM

  1. Connectez-vous au portail de l'utilitaire de configuration BIG-IP à l'aide des identifiants administrateur.
  2. Sélectionnez Main > System > Logs > Configuration > Remote logging.
  3. Dans la section Propriétés, procédez comme suit :

    • Dans le champ Adresse IP distante, saisissez l'adresse IP du redirecteur 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 APM, seul le format syslog Berkeley Software Distribution (BSD) est accepté.

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

    Si vous utilisez iRule, respectez le format recommandé. Google Security Operations n'accepte que le format 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 F5-BIG-IP DNS

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

Créer un pool de serveurs de journalisation à distance

  1. Dans l'onglet Principal, sélectionnez DNS > Distribution > Équilibrage de charge > Pools ou trafic local > Pools.
  2. Dans la fenêtre Liste de pools qui s'affiche, cliquez sur Créer.
  3. Dans la fenêtre Nouveau pool qui s'affiche, saisissez un nom unique pour le pool dans le champ Nom.
  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 redirecteur Google Security Operations ou sélectionnez l'adresse d'un 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 bon port de journalisation à distance.
  5. Cliquez sur Ajouter, puis sur Terminer.

Créer une destination de journaux à distance et à 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 Journal à distance à haut débit.
  5. Dans la liste Nom du pool, sélectionnez le pool de serveurs de journaux à distance auquel vous souhaitez que le système BIG-IP envoie les messages de journaux.
  6. Dans la liste Protocole, sélectionnez le protocole utilisé par les membres du pool de journaux à haut débit.
  7. Cliquez sur Terminé.

Créer une destination de journalisation à distance 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 une destination de journalisation formatée en tant que Syslog distant. Le système BIG-IP est désormais 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 Transférer vers, sélectionnez la liste Destination des journaux à haut débit, puis sélectionnez la destination qui pointe vers un pool de serveurs syslog distants vers lesquels vous souhaitez que le système BIG-IP envoie les messages de journaux.
  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.
  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, comme Syslog distant, Splunk ou ArcSight.
  7. Cliquez sur Terminé.

Créer un profil de journalisation DNS personnalisé

  1. Dans l'onglet Main (Principal), sélectionnez DNS > Delivery > Profiles > Other DNS Logging (Journalisation DNS) ou Local traffic > Profiles > Others > DNS logging (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 vers laquelle le système BIG-IP envoie les entrées de journal DNS.
  5. Si vous souhaitez que le système BIG-IP :
    • Pour consigner toutes les requêtes DNS, assurez-vous que la case à cocher Activer est sélectionnée dans le paramètre Consigner les requêtes.
    • Pour consigner toutes les réponses DNS, cochez la case Activer dans le paramètre Consigner les réponses.
    • Pour inclure l'ID de requête envoyé par le client dans les messages du journal, cochez la case 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 > Distribution > Écouteurs > Écouteur DNS.
  2. Dans la section Service, dans la liste Profil DNS, sélectionnez le profil DNS que vous avez configuré précédemment.
  3. Cliquez sur Mettre à jour.

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

  1. Accédez à Paramètres SIEM > Transférateurs.
  2. Cliquez sur Ajouter un nouveau transfert.
  3. Dans le champ Nom du transitaire, saisissez un nom unique pour le transitaire.
  4. Cliquez sur Envoyer. Le redirecteur 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 cibles où réside le collecteur et les adresses des données syslog.
    • Port : spécifiez le port cible sur lequel le collecteur réside et écoute les données syslog.
  9. Cliquez sur Envoyer.

Pour en savoir plus sur les répartiteurs Google Security Operations, consultez Gérer les configurations des répartiteurs dans l'interface utilisateur Google Security Operations.

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

Référence du mappage de champs

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

Table 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 non signé.
bytes_out network.sent_bytes La valeur est extraite du champ bytes_out par le filtre grok et convertie en entier non signé.
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" (sans tenir compte de 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 d'horodatage. Le champ timestamp de l'objet event de premier niveau reçoit également cette valeur.
utilisateur principal.user.userid La valeur est extraite du champ user 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". Codé en dur sur "F5". Si le champ result est défini sur "failed", la valeur est définie sur "BLOCK".

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