Collecter les journaux Brocade ServerIron

Compatible avec:

Cet analyseur extrait des champs des messages syslog Brocade ServerIron à l'aide d'une correspondance d'expression régulière et les met en correspondance avec le 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 des conversions et un enrichissement de type 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 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é à 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 le numéro client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.

Installer l'agent BindPlane

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

  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 accédez au 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 le service 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
    

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
%{GREEDYDATA} metadata.description Le champ %{GREEDYDATA} est mappé sur metadata.description lorsqu'il correspond au format "-- %{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} permet de renseigner le champ security_result.description. Il peut être concaténé avec d'autres champs en fonction du format de 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é sur target.user.userid.
%{HOST:principal_host} principal.hostname Le champ %{HOST:principal_host} est mappé sur 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é "Port HTTP".
%{INT:target_port} target.port Le champ %{INT:port_cible} est mappé sur "port_cible" et converti en 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é "Port Telnet".
%{INT:tftp_port} additional.fields.value.string_value Le champ %{INT:tftp_port} est mappé sur additional.fields.value.string_value avec la clé "Port TFTP".
%{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é sur 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é sur 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 extrait des données de journal brutes à l'aide d'un format grok et converti en objet code temporel.
extensions.auth.type La valeur est définie sur "MACHINE" si le champ "proto" n'est pas vide et que 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 l'état de port cible est "up".
- STATUS_SHUTDOWN: si l'état de target_port_status est "down".
 : USER_LOGOUT : si proto n'est pas vide et que auth_action est "logout".
 : USER_LOGIN : si proto n'est pas vide et que auth_action est "login".
: STATUS_UPDATE si la description des métadonnées correspond à "é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".

Modifications

2022-01-13

  • Analyseur ajouté