Collecter les journaux du résolveur DNS BlueCat Edge

Compatible avec :

Ce document explique comment ingérer BlueCat Edge DNS Resolver dans Google Security Operations à l'aide de Bindplane. L'analyseur tente d'abord d'analyser le message d'entrée au format JSON. Si l'opération réussit, elle extrait et structure différents champs dans le schéma UDM (Unified Data Model), en se concentrant particulièrement sur les informations liées au DNS. Si l'analyse JSON échoue, il essaie d'autres méthodes d'analyse, comme grok et les paires clé/valeur, pour extraire les données pertinentes et les mapper au schéma 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é à BlueCat DNS/DHCP

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. 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

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. 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 Syslog et l'envoyer à Google SecOps

  1. 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).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    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: 'BLUECAT_EDGE'
                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é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 Syslog sur le résolveur BlueCat Edge DNS

  1. Connectez-vous à l'interface utilisateur Web BDDS.
  2. Accédez à Configuration > onglet "Serveurs".
  3. Sélectionnez le nom d'un BDDS pour ouvrir l'onglet Détails du serveur.
  4. Cliquez sur le menu du nom du serveur> Configuration du service.
  5. Cliquez sur Type de service> Syslog.
  6. Fournissez les informations de configuration suivantes :
    • Cochez la case Code temporel ISO 8601 pour utiliser le format de code temporel ISO 8601 pour les messages enregistrés localement.
    • Serveur : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane.
    • Niveau : sélectionnez Informationnel.
    • Cochez la case Utiliser le protocole Syslog RFC5 424 pour utiliser le protocole Syslog RFC5 424 pour les messages Syslog.
    • Cochez la case Code temporel ISO 8601 pour utiliser le format de code temporel ISO 8601 pour les messages syslog redirigés vers un serveur syslog distant.
    • Sous Type de service, sélectionnez DNS, DHCP et Tous les autres services.
    • Transport : sélectionnez UDP.
    • Cliquez sur Ajouter.
  7. Cliquez sur Mettre à jour.

Table de mappage UDM

Champ de journal Mappage UDM Logique
answer.domainName network.dns.answers.name Nom de domaine de la section answer de la réponse DNS. La valeur . finale est supprimée.
answer.recordTypeId network.dns.answers.type ID du type d'enregistrement de la section answer de la réponse DNS, converti en entier non signé.
answer.ttl network.dns.answers.ttl Valeur TTL (Time to Live) de la section answer de la réponse DNS, convertie en entier non signé.
customerId target.user.userid Numéro client du journal, représentant l'utilisateur qui a lancé la requête DNS.
domain.domainName network.dns.authority.data Nom de domaine des sections authority ou additional de la réponse DNS. La valeur . finale est supprimée.
nom d'hôte principal.hostname Nom d'hôte extrait de l'en-tête Host dans le journal brut, uniquement si le journal n'est pas au format JSON.
méthode network.http.method Méthode HTTP extraite du journal brut, uniquement si le journal n'est pas au format JSON.
parentDomain principal.administrative_domain Domaine parent du nom DNS interrogé. La valeur . finale est supprimée.
port principal.port Numéro de port extrait de l'en-tête Host dans le journal brut, uniquement si le journal n'est pas au format JSON, converti en entier.
question.domainName network.dns.questions.name Nom de domaine de la section question de la requête DNS. La valeur . finale est supprimée.
question.questionTypeId network.dns.questions.type ID du type de question de la section question de la requête DNS, converti en entier non signé.
responseData.header.aa network.dns.authoritative Indique si la réponse DNS fait autorité. Cette information est extraite de la section responseData.
responseData.header.id network.dns.id ID du message DNS, extrait de la section responseData et converti en entier non signé.
responseData.header.opcode network.dns.opcode Opcode du message DNS, extrait de la section responseData et converti en entier non signé.
responseData.header.ra network.dns.recursion_available Indique si la récursivité est disponible. Cette information est extraite de la section responseData.
responseData.header.rcode network.dns.response_code Code de réponse DNS, extrait de la section responseData et converti en entier non signé.
responseData.header.rd network.dns.recursion_desired Indique si la récursivité est sélectionnée, extraite de la section responseData.
responseData.header.tc network.dns.truncated Indique si le message DNS est tronqué, extrait de la section responseData.
servicePointId additional.fields.value.string_value ID du point de service à partir du journal.
siteId additional.fields.value.string_value ID du site provenant du journal.
socketProtocol network.ip_protocol Protocole réseau utilisé pour la requête DNS (TCP ou UDP).
sourceAddress principal.ip Adresse IP du client DNS.
sourcePort principal.port Numéro de port du client DNS, converti en entier.
threat.indicators security_result.category_details Indicateurs associés à une menace détectée.
threat.type security_result.threat_name Type de menace détectée.
temps metadata.event_timestamp.seconds Horodatage de l'événement DNS, extrait du champ time et converti de millisecondes en secondes.
User-agent network.http.user_agent Chaîne de l'agent utilisateur extraite du journal brut, uniquement si le journal n'est pas au format JSON.
additional.fields.key servicePointId, siteId, Content-Type ou Content-Length, selon le contenu du journal brut.
metadata.event_type Type d'événement. Il est défini sur NETWORK_DNS si une question DNS est présente, sinon sur GENERIC_EVENT.
metadata.log_type Type de journal, toujours défini sur BLUECAT_EDGE.
network.application_protocol Protocole d'application, défini sur DNS si une question DNS est présente, sinon défini sur HTTP si une méthode HTTP est extraite, ou laissé vide.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.