Collecter les journaux Radware WAF
Ce document explique comment collecter les journaux Radware Web Application Firewall (WAF) à l'aide d'un redirecteur Google Security Operations.
Le parseur extrait les champs des messages syslog du pare-feu Radware à l'aide de modèles grok et les mappe à l'UDM. Il gère différents formats de journaux, remplit les champs de résultats de sécurité en fonction des détails de l'attaque et catégorise les événements en fonction de attack_id
, enrichissant ainsi les données pour l'ingestion Google SecOps.
Avant de commencer
- Assurez-vous de disposer d'une instance Google Security Operations.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec
systemd
. - Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous que Radware Vision Reporter est installé et configuré sur AppWall.
- Assurez-vous de disposer d'un accès privilégié au portail Radware WAF.
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 l'agent 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
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 ce 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: udplog: # Replace with your specific IP and port listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Path to the ingestion authentication file creds: '/path/to/your/ingestion-auth.json' # Your Chronicle customer ID customer_id: 'your_customer_id' endpoint: malachiteingestion-pa.googleapis.com ingestion_labels: log_type: SYSLOG namespace: radware_waf raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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émarrer 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
Configurer Radware AppWall WAF
Pour effectuer les tâches, effectuez les trois configurations suivantes :
- Configurez AppWall en mode autonome à l'aide de Vision Reporter.
- Configurez l'AppWall intégré dans Alteon à l'aide de Vision Reporter (incluez les données de requête HTTP dans les détails de l'événement).
- Configurez Vision Reporter pour envoyer des journaux à l'agent Bindplane.
Configurer AppWall Standalone à l'aide de Vision Reporter
- Connectez-vous à la console Radware WAF à l'aide d'identifiants administrateur.
- Accédez à Configuration > Services > Vision Support > Vision Reporter.
- Activez la journalisation en sélectionnant la case à cocher Envoyer les événements à Vision Reporter.
- Adresse Vision Reporter : saisissez l'adresse IP de Vision Reporter.
- Port : saisissez le numéro de port.
- Protocole : sélectionnez UDP ou TCP.
- Pour inclure les données de réponse HTTP, cochez la case Envoyer les réponses à Vision Reporter.
- Cliquez sur Enregistrer.
Configurer Integrated AppWall dans Alteon à l'aide de Vision Reporter (méthode recommandée pour la journalisation des données de requête HTTP)
- Connectez-vous à la console Radware WAF à l'aide d'identifiants administrateur.
- Accédez à Configuration > Sécurité > Sécurité Web > Vision Reporter.
- Activez la journalisation en sélectionnant la case à cocher Envoyer les événements à Vision Reporter.
- Cochez la case Envoyer les événements au rapporteur Vision.
- Adresse IP de Vision Reporter : saisissez l'adresse IP de Vision Reporter.
- Port : saisissez un numéro de port élevé.
- Sécurité : sélectionnez UDP ou TCP.
- Cliquez sur Enregistrer.
Configurer Vision Reporter pour envoyer des journaux à l'agent Bindplane
- Connectez-vous à la console d'administration Radware Vision Reporter.
- Accédez à Configuration > SIEM et journalisation externe.
- Cliquez sur + Ajouter une destination SIEM.
- Nom de la destination : saisissez Google SecOps Forwarder.
- Type d'exportation des journaux : sélectionnez Syslog (format RFC 5424) pour la journalisation structurée.
- Dans Adresse IP du serveur Syslog distant, saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez un port sur lequel l'agent Bindplane écoute (par exemple, 514 pour UDP ou 601 pour TCP).
- Protocole : sélectionnez UDP ou TCP en fonction de la configuration Bindplane.
- Cliquez sur Enregistrer.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
action |
event.idm.read_only_udm.security_result.action |
Si action est défini sur "drop", définissez-le sur "BLOCK". |
attack_desc |
event.idm.read_only_udm.security_result.description |
Mappé directement. |
attack_type |
event.idm.read_only_udm.security_result.threat_name |
Mappé directement. |
command |
event.idm.read_only_udm.principal.process.command_line |
Mappé directement. |
description |
event.idm.read_only_udm.security_result.description |
Mappé directement si attack_desc est vide. |
dst_ip |
event.idm.read_only_udm.target.ip |
Mappé directement. |
dst_port |
event.idm.read_only_udm.target.port |
Mappé directement, converti en entier. Définissez sur "MACHINE" si username est présent et command ne l'est pas. Copié à partir du champ collection_time du journal brut. La valeur par défaut est "NETWORK_CONNECTION". Définissez sur "GENERIC_EVENT" si src_ip ou dst_ip sont manquants. Définissez sur "USER_LOGIN" si username est présent et command est absent. Peut être remplacé par une logique basée sur attack_id . Définissez-le sur "RADWARE_FIREWALL". Mappé à partir du champ product . Définissez-le sur "Radware". |
intermediary_ip |
event.idm.read_only_udm.intermediary.ip |
Mappé directement. |
obv_ip |
event.idm.read_only_udm.observer.ip |
Mappé directement. |
product |
event.idm.read_only_udm.metadata.product_name |
Mappé directement. |
protocol_number_src |
event.idm.read_only_udm.network.ip_protocol |
Analysé à l'aide de la logique parse_ip_protocol.include . |
rule_id |
event.idm.read_only_udm.security_result.rule_id |
Mappé directement. Dérivé de la valeur de attack_id . Les valeurs incluent "ACL_VIOLATION", "NETWORK_DENIAL_OF_SERVICE", "NETWORK_SUSPICIOUS" et "NETWORK_RECON". |
src_ip |
event.idm.read_only_udm.principal.ip |
Mappé directement. |
src_port |
event.idm.read_only_udm.principal.port |
Mappé directement, converti en entier. |
ts |
event.idm.read_only_udm.metadata.event_timestamp |
Analysé et converti en code temporel. |
username |
event.idm.read_only_udm.target.user.userid |
Mappé directement si command n'est pas présent. |
username |
event.idm.read_only_udm.principal.user.userid |
Mappé directement si command est présent. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.