Collecter les journaux Brocade ServerIron

Compatible avec :

Cet analyseur extrait les champs des messages syslog Brocade ServerIron à l'aide de la correspondance des expressions régulières et les mappe au modèle de données unifié (UDM). Il gère différents formats de journaux, y compris l'état du réseau, l'authentification des utilisateurs et les événements de sécurité. L'analyseur effectue les conversions et l'enrichissement des types de données si nécessaire.

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é à l'instance Brocade ServerIron.

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.

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

  1. 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
  2. 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
  3. 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

  1. Accédez à la machine sur laquelle Bindplane est installé.
  2. 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: Brocade_ServerIron
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Redémarrez l'agent Bindplane pour appliquer les modifications :

    sudo systemctl restart bindplane
    

Configurer l'exportation Syslog à partir de Brocade ServerIron ADX

  1. Connectez-vous à l'appareil ADX et passez en mode de configuration globale :

    enable
    configure terminal
    
  2. Activez la journalisation Syslog :

    logging on
    
  3. Spécifiez l'adresse IP ou le nom d'hôte et le port du serveur syslog, y compris le protocole souhaité (Bindplane) :

    logging host <syslog-server-ip> [udp | tcp] port <port-number>
    

    Exemple pour TCP sur le port 54525 :

      logging host 10.10.10.10 tcp port 54525
    
  4. Facultatif : définissez la fonctionnalité Syslog (local0 à local7) :

    logging facility local0
    
  5. Définissez le niveau de gravité minimal des journaux à envoyer au serveur syslog :

    logging trap <severity-level>
    
  6. Enregistrez la configuration :

    write memory
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
%{GREEDYDATA} metadata.description Le champ %{GREEDYDATA} est mappé sur metadata.description lorsqu'il correspond au modèle "-- %{GREEDYDATA} --".
%{GREEDYDATA:auth_result} security_result.description Le champ %{GREEDYDATA:auth_result} est concaténé avec le champ %{GREEDYDATA:desc} pour former security_result.description lorsque %{GREEDYDATA:desc} est présent.
%{GREEDYDATA:desc} security_result.description Le champ %{GREEDYDATA:desc} est utilisé pour renseigner le champ security_result.description. Il peut être concaténé avec d'autres champs en fonction du format du journal brut.
%{GREEDYDATA:login_to} security_result.description Le champ %{GREEDYDATA:login_to} est concaténé avec le champ %{GREEDYDATA:desc} pour former security_result.description lorsque %{GREEDYDATA:desc} est présent.
%{GREEDYDATA:user} target.user.userid Le champ %{GREEDYDATA:user} est mappé à target.user.userid.
%{HOST:principal_host} principal.hostname Le champ %{HOST:principal_host} est mappé à principal.hostname.
%{HOST:target_host} target.hostname Le champ %{HOST:target_host} est mappé sur target.hostname.
%{INT:http_port} additional.fields.value.string_value Le champ %{INT:http_port} est mappé sur additional.fields.value.string_value avec la clé "HTTP Port".
%{INT:target_port} target.port Le champ %{INT:target_port} est mappé à target.port et converti en nombre entier.
%{INT:telnet_port} additional.fields.value.string_value Le champ %{INT:telnet_port} est mappé sur additional.fields.value.string_value avec la clé "Telnet Port".
%{INT:tftp_port} additional.fields.value.string_value Le champ %{INT:tftp_port} est mappé sur additional.fields.value.string_value avec la clé "TFTP Port".
%{IP:principal_ip} principal.ip Le champ %{IP:principal_ip} est mappé sur principal.ip.
%{IP:target_ip} target.ip Le champ %{IP:target_ip} est mappé sur target.ip.
%{IPV4:principal_ip} principal.ip Le champ %{IPV4:principal_ip} est mappé à principal.ip.
%{IPV4:target_ip} target.ip Le champ %{IPV4:target_ip} est mappé sur target.ip.
%{MAC:principal_mac} principal.mac Le champ %{MAC:principal_mac} est mappé à principal.mac après avoir été converti au format [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}.
%{USERNAME:target_host} target.hostname Le champ %{USERNAME:target_host} est mappé sur target.hostname.
%{USERNAME:user} target.user.userid Le champ %{USERNAME:user} est mappé sur target.user.userid.
%{WORD:auth_result} security_result.description Le champ %{WORD:auth_result} est concaténé avec le champ %{GREEDYDATA:desc} pour former security_result.description lorsque %{GREEDYDATA:desc} est présent.
%{WORD:proto} network.application_protocol Le champ %{WORD:proto} est mappé sur network.application_protocol lorsque sa valeur est "SSH".
timestamp metadata.event_timestamp Le champ d'horodatage est analysé à partir des données brutes du journal à l'aide d'un modèle Grok et converti en objet d'horodatage.
extensions.auth.type La valeur est définie sur "MACHINE" si le champ proto n'est pas vide et si le champ auth_action est "logout" ou "login".
metadata.description Le champ est renseigné avec la valeur du champ "metadata_description" s'il n'est pas vide.
metadata.event_type Le champ est renseigné en fonction des valeurs d'autres champs à l'aide d'une logique conditionnelle :
- STATUS_STARTUP : si target_port_status est défini sur "up".
 : STATUS_SHUTDOWN si target_port_status est défini sur "down".
 : USER_LOGOUT si le proto n'est pas vide et que auth_action est "logout".
 : USER_LOGIN si le proto n'est pas vide et que auth_action est défini sur "login".
 : STATUS_UPDATE si metadata_description correspond à "state changed" (état modifié).
 : GENERIC_EVENT si aucune des conditions ci-dessus n'est remplie.
metadata.log_type La valeur est codée en dur sur "BROCADE_SERVERIRON".
metadata.product_name La valeur est codée en dur sur "ServerIron".
metadata.vendor_name La valeur est codée en dur sur "Brocade".
security_result.action La valeur est définie sur "BLOCK" si le champ "desc" contient "fail" ou si le champ "auth_result" contient "fail" ou "rejected".

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