Collecter les journaux BlueCat DDI
Ce parseur gère les messages syslog au format LEEF et non-LEEF provenant de Bluecat DDI (DNS, DHCP, IPAM). Il extrait les champs de différents types de journaux (par exemple, named, dhcpd, audit et CRON) à l'aide de modèles Grok et d'une logique conditionnelle, les mappe à l'UDM en fonction du type de journal et remplit les champs DNS, DHCP ou liés à l'utilisateur en conséquence.
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é à Bluecat.
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.
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
- Pour installer sous Windows, exécutez le script suivant :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Pour installer sous Linux, exécutez le script suivant :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Vous trouverez d'autres options d'installation dans ce guide d'installation.
Configurer l'agent Bindplane pour ingérer les journaux Syslog et les envoyer à Google SecOps
- Accédez à la machine sur laquelle Bindplane est installé.
Modifiez le fichier
config.yaml
comme suit :receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: bluceat_ddi raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Redémarrez l'agent Bindplane pour appliquer les modifications :
sudo systemctl restart bindplane
Configurer Syslog sur Bluecat DDI
- Connectez-vous à Bluecat Address Manager (BAM).
- Dans le menu configuration, sélectionnez une configuration.
- Sélectionnez l'onglet Serveurs.
- Sous Serveurs, cliquez sur le nom d'une BDDS.
- L'onglet Détails du serveur doit s'ouvrir.
- Cliquez sur le menu Nom du serveur.
- Sélectionnez Configuration du service.
- Cliquez sur Type de service> Syslog (Address Manager interroge le serveur et renvoie les valeurs actuelles).
- Dans Général, définissez les valeurs suivantes :
- Serveur Syslog : adresse IP de votre serveur Syslog (Bindplane).
- Port Syslog : port de votre serveur Syslog (Bindplane).
- Transport Syslog : sélectionnez TCP ou UDP (selon votre configuration Bindplane).
- Cliquez sur Ajouter.
- Le serveur Syslog que vous venez d'ajouter s'affiche dans la liste.
- Cliquez sur Mettre à jour.
Configurer les paramètres Syslog dans BlueCat DDI
- Connectez-vous à BlueCat Address Manager.
- Accédez à Configuration > Paramètres système > Journalisation.
- Dans Logging Settings (Paramètres de journalisation), recherchez la section Syslog Servers (Serveurs Syslog).
- Cliquez sur Ajouter un serveur Syslog.
- Indiquez les valeurs requises :
- Nom du serveur : nom unique du serveur syslog (par exemple, BindplaneServer).
- Adresse IP : adresse IP ou nom d'hôte du serveur syslog.
- Protocole : sélectionnez TCP, UDP (par défaut) ou TLS (en fonction de votre configuration syslog).
- Port : spécifiez le port pour la communication syslog (par défaut : 514 pour UDP/TCP, 6514 pour TLS).
- Configurez le niveau de journalisation. Choisissez le niveau approprié en fonction de vos besoins. Voici quelques exemples d'options :
- Urgence : problèmes critiques nécessitant une attention immédiate
- Alerte : alerte nécessitant une action immédiate
- Critique : conditions critiques
- Erreur : événements d'erreur
- Avertissement : événements d'avertissement
- Avis : événements normaux, mais importants
- Info : messages d'information
- Debug : informations de débogage détaillées
- Facultatif : Ajoutez une fonctionnalité Syslog personnalisée pour catégoriser les journaux (par exemple, local0 ou local1).
- Enregistrez la configuration.
Appliquer les paramètres Syslog aux appliances DDI
- Accédez à Serveurs > Gérer les serveurs.
- Sélectionnez les serveurs DNS/DHCP sur lesquels le syslog doit être activé.
- Cliquez sur Modifier le serveur.
- Dans la section Journalisation :
- Sélectionnez le serveur syslog que vous avez configuré précédemment.
- Activez la journalisation pour des services spécifiques (par exemple, requêtes DNS ou baux DHCP).
- Enregistrez les modifications.
Table de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
client_ip |
network.dhcp.ciaddr |
Extrait du message DHCPREQUEST. Rempli uniquement pour les messages DHCPREQUEST. |
client_mac |
principal.mac |
Extraite des messages DHCP (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE). |
client_mac |
target.mac |
Extraite des messages DHCP (DHCPOFFER, DHCPNAK). |
client_mac |
network.dhcp.chaddr |
Extraites des messages DHCP (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK, DHCPRELEASE). |
cmd |
target.process.command_line |
Extrait des journaux CRON. Les esperluettes et les espaces sont supprimés. |
description |
metadata.description |
Extraites de différents types de journaux, elles fournissent un contexte supplémentaire. |
description |
metadata.description |
Extrait des journaux syslog-ng, fournissant un contexte supplémentaire. |
file_path |
target.file.full_path |
Extrait de différents types de journaux, représentant le chemin d'accès complet à un fichier. |
file_path |
target.process.file.full_path |
Extrait des journaux agetty, représentant le chemin d'accès complet à un fichier lié à un processus. |
inner_message |
metadata.description |
Utilisé comme description pour les GENERIC_EVENTs lorsque le type d'opération n'est pas défini et pour les journaux MEM-MON. |
metadata.event_type |
Déterminé par l'analyseur en fonction du type et du contenu du journal. Les valeurs possibles sont les suivantes : NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, NETWORK_CONNECTION. Toujours "BLUECAT_DDI". | |
metadata.vendor_name |
Toujours "Bluecat Networks". | |
metadata.product_name |
Toujours "Bluecat DDI". | |
metadata.event_timestamp |
Copié à partir de l'horodatage analysé de l'entrée de journal. | |
network.protocol |
Définissez la valeur sur "DNS" pour les journaux DNS ou sur "DHCP" pour les journaux DHCP. | |
network.dns.answers |
Tableau contenant les enregistrements de réponse. Le champ data dans answers est renseigné avec target_ip , le cas échéant. |
|
network.dns.questions |
Tableau contenant des enregistrements de questions. Le champ name est renseigné avec target_host , le champ type est dérivé des champs query_type ou question_type , et le champ class est dérivé du champ qclass . |
|
network.dns.recursive |
Définissez sur "true" si le rec_flag est "+". |
|
qclass |
network.dns.questions.class |
Extraite des journaux de requêtes DNS et associée à une valeur entière à l'aide du fichier dns_query_class_mapping.include . |
query_type |
network.dns.questions.type |
Extraite des journaux de requêtes DNS et associée à une valeur entière à l'aide du fichier dhcp_qtype_mapping.include . |
relay_ip |
intermediary.ip |
Extraite des journaux DNS et DHCP, elle représente l'adresse IP d'un serveur relais ou intermédiaire. |
server_host |
target.hostname |
Extrait de différents types de journaux, représentant le nom d'hôte du serveur. |
server_host |
network.dhcp.sname |
Extrait des journaux DHCP, représentant le nom d'hôte du serveur. |
server_host |
principal.hostname |
Extrait de systemd, agetty et de certains journaux d'audit, représentant le nom d'hôte du compte principal. |
server_ip |
target.ip |
Extrait des journaux au format LEEF, représentant l'adresse IP du serveur. |
src_ip |
principal.ip |
Extrait de différents types de journaux, représentant l'adresse IP source. |
src_ip |
network.dhcp.yiaddr |
Utilisée dans les messages DHCPINFORM pour remplir le champ yiaddr. |
src_port |
principal.port |
Extrait de différents types de journaux, représentant le port source. |
src_user |
principal.user.userid |
Extrait des journaux CRON et d'audit, représentant l'ID utilisateur. |
target_host |
target.hostname |
Extrait de différents types de journaux, représentant le nom d'hôte cible. |
target_host |
network.dns.questions.name |
Utilisé dans les journaux DNS pour renseigner le nom de la question. |
target_ip |
target.ip |
Extrait de différents types de journaux, représentant l'adresse IP cible. |
target_ip |
network.dhcp.ciaddr |
Utilisé dans les messages BOOTREQUEST pour remplir le champ ciaddr. |
target_ip |
network.dns.answers.data |
Utilisé dans les journaux DNS pour remplir les données de réponse. |
tgt_port |
target.port |
Extrait des journaux syslog-ng, représentant le port cible. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.