Collecter les journaux DDI BlueCat
Cet analyseur gère les messages syslog au format LEEF et non LEEF de Bluecat DDI (DNS, DHCP, IPAM). Il extrait des champs de différents types de journaux (par exemple, named, dhcpd, audit et CRON) à l'aide de modèles grok et de logique conditionnelle, les met en correspondance avec l'UDM en fonction du type de journal et renseigne les champs DNS, DHCP ou liés aux utilisateurs 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 l'application 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 le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.
Installer l'agent BindPlane
- Pour l'installation sous Windows, exécutez le script suivant:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Pour l'installation 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
- Pour en savoir plus sur les options d'installation, consultez ce guide d'installation.
Configurer l'agent BindPlane pour ingérer Syslog et l'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'un BDDS.
- L'onglet Détails du serveur devrait s'ouvrir.
- Cliquez sur le menu nom du serveur.
- Sélectionnez Configuration du service.
- Cliquez sur Service Type > Syslog (Type de service > Syslog). Le Gestionnaire d'adresses 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 nouvellement ajouté apparaît dans la liste.
- Cliquez sur Update (Mettre à jour).
Configurer les paramètres Syslog dans BlueCat DDI
- Connectez-vous à BlueCat Address Manager.
- Accédez à Configuration > Paramètres système > Journalisation.
- Dans la section 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 :
- Urgent: problèmes critiques nécessitant une attention immédiate
- Alerte: alerte nécessitant une action rapide
- Critique: conditions critiques
- Erreur: événements d'erreur
- Avertissement: événements d'avertissement
- Remarque: événements normaux, mais significatifs
- Info: messages d'information
- Débogage: informations de débogage détaillées
- Facultatif: Ajoutez un service Syslog personnalisé pour catégoriser les journaux (par exemple, local0 ou local1).
- Enregistrez la configuration.
Appliquer des paramètres Syslog aux appareils DDI
- Accédez à Servers > Manage Servers (Serveurs > Gérer les serveurs).
- Sélectionnez les serveurs DNS/DHCP sur lesquels le journal système 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, les requêtes DNS ou les baux DHCP).
- Enregistrez les modifications.
Tableau 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 |
Extrait des messages DHCP (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE). |
client_mac |
target.mac |
Extrait des messages DHCP (DHCPOFFER, DHCPNAK). |
client_mac |
network.dhcp.chaddr |
Extrait 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 |
Extrait de différents types de journaux, ce qui fournit 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ésente le chemin d'accès complet d'un fichier. |
file_path |
target.process.file.full_path |
Extrait des journaux agetty, représentant le chemin d'accès complet d'un fichier associé à un processus. |
inner_message |
metadata.description |
Utilisé comme description des événements GENERIC_EVENT 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. Voici des valeurs possibles: 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 et "DHCP" pour les journaux DHCP. | |
network.dns.answers |
Tableau contenant les enregistrements de réponse. Le champ data de answers est renseigné avec target_ip , le cas échéant. |
|
network.dns.questions |
Tableau contenant les 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éfini sur "true" si rec_flag est "+". |
|
qclass |
network.dns.questions.class |
Extrait des journaux de requêtes DNS et mappé sur une valeur entière à l'aide du fichier dns_query_class_mapping.include . |
query_type |
network.dns.questions.type |
Extrait des journaux de requêtes DNS et mappé sur une valeur entière à l'aide du fichier dhcp_qtype_mapping.include . |
relay_ip |
intermediary.ip |
Extrait des journaux DNS et DHCP, représente l'adresse IP d'un relais ou d'un serveur intermédiaire. |
server_host |
target.hostname |
Extrait de différents types de journaux, représente 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 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é dans les messages DHCPINFORM pour renseigner 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 l'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 renseigner le champ ciaddr. |
target_ip |
network.dns.answers.data |
Utilisé dans les journaux DNS pour renseigner les données de réponse. |
tgt_port |
target.port |
Extrait des journaux syslog-ng, représentant le port cible. |
Modifications
2022-11-08
- Ajout de grok pour les nouveaux journaux ingérés pour log_type : "agetty", "syslog-ng", "systemd".
- Ajout d'un modèle Grok pour log_type (named, systemd, CRON, agetty, syslog-ng) et de ses mappages respectifs pour les champs du log_type mentionné ci-dessus.
2022-09-01
- Modification de
event_type
de "GENERIC_EVENT" à "USER_UNCATEGORIZED" pour réduire le pourcentage générique.
2022-08-16
- Ajout d'un mappage UDM
metadata.vendor_name
à "Bluecat Networks"metadata.product_name
à "Bluecat DDI"
2022-05-05
- Ajout de vérifications pour le champ
query_type
.