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,viou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme 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.jsonen 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-agentPour 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
5145ou 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.