Collecter les journaux F5 AFM
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- 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
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
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
- 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).
- Recherchez le fichier
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
- Connectez-vous à la console de gestion de l'appliance BIG-IP.
- Accédez à Système > Licence.
- Vérifiez que le Gestionnaire de pare-feu avancé est sous licence et activé.
- Pour activer le Gestionnaire de pare-feu avancé, accédez à Système > Ressource > Provisionnement.
- Cochez la case dans la colonne "Provisionnement", puis sélectionnez Nominal dans la liste.
- Cliquez sur Envoyer.
Configurer le pool de journalisation dans F5 AFM
- Accédez à Trafic local > Pools.
- Cliquez sur Créer.
- 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 <<.
- Dans l'onglet Ressource, sélectionnez le pool de journaux que vous avez créé précédemment dans la liste Nom du nœud.
- Dans le champ Adresse, saisissez l'adresse IP de l'agent Bindplane.
- Dans le champ Port du service, saisissez
5145
ou un autre port tel que vous l'avez défini dans l'agent Bindplane. - Cliquez sur Ajouter.
- Cliquez sur Terminer.
Configurer la destination du journal mis en forme dans F5 AFM
- Accédez à Système> Journaux> Configuration> Destinations des journaux.
- Cliquez sur Créer.
- 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
).
- Nom : saisissez un nom pour la destination du format de journalisation (par exemple,
- Cliquez sur Terminé.
Configurer Log Publisher dans F5 AFM
- Accédez à Système> Journaux> Configuration> Éditeurs de journaux.
- Cliquez sur Créer.
- 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é.
- Nom : saisissez un nom pour l'éditeur (par exemple,
Configurer le profil de journalisation dans F5 AFM
- Accédez à Sécurité > Journaux d'événements > Profil de journalisation.
- Cliquez sur Créer.
- 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
).
- Cliquez sur Terminé.
Configurer l'association de profil de serveur virtuel dans F5 AFM
- Accédez à Trafic local> Serveurs virtuels.
- Sélectionnez le serveur virtuel à modifier.
- Accédez à l'onglet Sécurité> Règles.
- Dans la liste Profil de journal, sélectionnez Activé.
- Dans le champ Profil, sélectionnez Logging_Profile, puis cliquez sur <<.
- 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.