Collecter les journaux Barracuda WAF
Ce document explique comment collecter les journaux Barracuda Web Application Firewall (WAF) à l'aide de Bindplane. L'analyseur extrait les champs des journaux aux formats JSON et Syslog, les normalise et les mappe au modèle de données unifié (UDM). Il gère différents types de journaux (trafic, pare-feu Web) et effectue des transformations conditionnelles en fonction des valeurs des champs, y compris la résolution des adresses IP/noms d'hôte, le mappage de la directionnalité et la normalisation de la gravité.
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 de disposer d'un accès privilégié au Barracuda 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 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 Syslog et l'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:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/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: SYSLOG namespace: barracuda_waf 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
Configurer Barracuda WAF
- Connectez-vous à la console Barracuda WAF à l'aide des identifiants administrateur.
- Cliquez sur l'onglet Avancé > Exporter les journaux.
- Dans la section Exporter les journaux, cliquez sur Ajouter un serveur d'exportation des journaux.
- Indiquez les valeurs suivantes :
- Nom : saisissez un nom pour le redirecteur Google SecOps.
- Type de serveur de journaux : sélectionnez Syslog.
- Adresse IP ou nom d'hôte : saisissez l'adresse IP
Bindplane
. - Port : saisissez le port
Bindplane
. - Type de connexion : sélectionnez le type de connexion
TCP
(TCP est recommandé). Toutefois, les protocoles UDP ou SSL peuvent également être utilisés. - Valider le certificat du serveur : sélectionnez Non.
- Certificat client : sélectionnez Aucun.
- Code temporel et nom d'hôte du journal : sélectionnez Oui.
- Cliquez sur Ajouter.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
action |
security_result.action |
Si action est défini sur DENY , définissez-le sur BLOCK . Sinon, définissez-la sur ALLOW (spécifiquement pour le type de journal WF ). Également utilisé pour les événements de pare-feu génériques. |
appProtocol |
network.application_protocol |
Si appProtocol correspond à TLSv , définissez sur HTTPS . Sinon, utilisez la valeur appProtocol . |
attackDetails |
security_result.description |
Extrait du journal brut pour le type de journal WF . |
attackType |
security_result.summary |
Fait partie de security_result.summary , combiné à ruleType . |
bytesReceived |
network.received_bytes |
Converti en entier non signé et mappé pour le type de journal TR . |
bytesSent |
network.sent_bytes |
Converti en entier non signé et mappé pour le type de journal TR . |
hostName |
target.hostname |
Si hostName n'est pas une adresse IP, utilisez sa valeur. Sinon, il est fusionné dans target.ip . |
httpMethod loginId |
principal.user.userid |
Mappé pour le type de journal TR lorsqu'il n'est pas égal à emptyToken . |
logType |
metadata.product_event_type |
Si la valeur est TR , définissez metadata.product_event_type sur Barracuda Access Log . Si la valeur est WF , la valeur est définie sur Barracuda Web Firewall Log . |
message |
metadata.description |
Utilisé lorsque desc n'est pas vide. |
referrer |
network.http.referral_url |
Mappé pour le type de journal TR lorsqu'il n'est pas égal à emptyToken . |
responseCode |
network.http.response_code |
Converti en entier et mappé pour le type de journal TR . |
rule |
security_result.rule_name |
Mappé pour le type de journal WF . |
ruleType |
security_result.summary |
Fait partie de security_result.summary , combiné à attackType . |
sec_desc |
security_result.rule_name |
Utilisé pour les événements de pare-feu génériques. |
server |
target.ip |
Fusionné dans target.ip . |
serv |
target.ip |
Fusionné dans target.ip . |
severity |
security_result.severity |
Pour le type de journal WF : converti en majuscules. Si la valeur est EMERGENCY , ALER ou CRITICAL , définissez security_result.severity sur CRITICAL . Si la valeur est ERROR , la valeur est définie sur HIGH . Si la valeur est WARNING , la valeur est définie sur MEDIUM . Si la valeur est NOTICE , la valeur est définie sur LOW . Sinon, définissez-la sur INFORMATIONAL . |
src |
principal.ip |
Également utilisé pour les événements de pare-feu génériques et certaines mises à jour d'état. |
srcPort |
principal.port |
Converti en entier. |
target targetPort |
target.port |
Converti en entier. |
time |
metadata.event_timestamp.seconds , metadata.event_timestamp.nanos , timestamp.seconds , timestamp.nanos |
Combiné à tz et analysé pour créer l'horodatage de l'événement. Les secondes et les nanosecondes sont extraites et renseignées dans les champs correspondants. |
url urlParams |
target.url |
Ajouté à url s'il n'est pas égal à emptyToken pour le type de journal TR . |
userAgent userName |
target.user.userid , target.user.user_display_name |
Utilisé pour les événements de pare-feu génériques. Si la valeur n'est pas égale à emptyToken pour le type de journal TR , elle est mappée sur target.user.user_display_name . Codé en dur sur Barracuda . Définie sur NETWORK_HTTP si src et target sont présents. Définie sur STATUS_UPDATE si seul src est présent. Définissez la valeur sur GENERIC_EVENT par défaut ou pour d'autres scénarios, comme l'analyse CEF. Codé en dur sur BARRACUDA_WAF . |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.