Collecter les journaux des commutateurs Brocade

Compatible avec:

Cet analyseur extrait des champs des journaux des commutateurs Brocade à l'aide de modèles Grok correspondant à différents formats de journaux. Il mappe ensuite ces champs extraits sur des champs UDM, gère différentes structures de journaux et enrichit les données avec des métadonnées telles que des informations sur les fournisseurs et les produits. L'analyseur effectue également des transformations de données, telles que la conversion des niveaux de gravité et la gestion des messages répétés, avant de générer la sortie UDM finale.

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 administrateur à la CLI du commutateur Brocade.

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_Switch
            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 d'un commutateur Brocade

  1. Connectez-vous au commutateur Brocade à l'aide de SSH ou de Telnet avec les identifiants appropriés.
  2. Exécutez la commande suivante pour spécifier l'adresse IP ou le nom d'hôte et le port du serveur syslog (Bindplane):

    syslogadmin --set -ip <IP> -port <Port>
    

    Exemple :

    syslogadmin --set -ip 10.10.10.10 -port 54525
    
  3. Exécutez la commande suivante pour afficher les serveurs syslog configurés:

    syslogadmin --show -ip
    

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
application additional.fields[].key: "application"
additional.fields[].value.string_value:
Valeur extraite du champ application@1588 dans le journal brut lorsque le champ KV_DATA existe.
class additional.fields[].key: "class"
additional.fields[].value.string_value:
Valeur extraite du champ class@1588 dans le journal brut lorsque le champ KV_DATA existe.
domain principal.administrative_domain Valeur extraite du modèle Grok correspondant au champ domain.
Event additional.fields[].key: "event_category"
additional.fields[].value.string_value:
Valeur extraite du champ arg0@1588 dans le journal brut lorsque le champ KV_DATA existe.
event_id metadata.product_log_id Valeur extraite du modèle Grok correspondant au champ event_id.
event_type metadata.product_event_type Valeur extraite du modèle Grok correspondant au champ event_type.
flags additional.fields[].key: "flags"
additional.fields[].value.string_value:
Valeur extraite du modèle Grok correspondant au champ flags.
Info metadata.description Valeur extraite du champ Info, analysée à l'aide de grok.
interface app_protocol_src Valeur extraite du champ interface@1588 dans le journal brut lorsque le champ KV_DATA existe. Utilisé pour dériver network.application_protocol.
ip principal.ip Valeur extraite du champ ip, analysée à l'aide de grok. Fusionné dans principal.ip s'il n'est pas identique à l'adresse IP extraite du champ Info.
Info, IP Addr principal.ip Valeur extraite du champ IP Addr dans le champ Info, analysée à l'aide de grok.
log additional.fields[].key: "log"
additional.fields[].value.string_value:
Valeur extraite du champ log@1588 dans le journal brut lorsque le champ KV_DATA existe.
msg metadata.description Valeur extraite du champ msg, analysée à l'aide de grok.
msgid additional.fields[].key: "msgid"
additional.fields[].value.string_value:
Valeur extraite du champ msgid@1588 dans le journal brut lorsque le champ KV_DATA existe.
prin_host principal.hostname
principal.asset.hostname
Valeur extraite du modèle Grok correspondant au champ prin_host.
product_version metadata.product_version Valeur extraite du modèle Grok correspondant au champ product_version.
repeat_count additional.fields[].key: "repeat_count"
additional.fields[].value.string_value:
Valeur extraite du champ msg, analysée à l'aide de grok.
role, user_role principal.user.attribute.roles[].name Valeur extraite du champ role@1588 ou user_role. Si la valeur est "admin", elle est remplacée par "Admin".
sequence_number additional.fields[].key: "sequence_number"
additional.fields[].value.string_value:
Valeur extraite du modèle Grok correspondant au champ sequence_number.
severity security_result.severity Valeur extraite du champ severity, analysée à l'aide de grok. Correspond aux valeurs de gravité UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM).
Status security_result.summary Valeur extraite du champ Status.
switch_name additional.fields[].key: "switch_name"
additional.fields[].value.string_value:
Valeur extraite du modèle Grok correspondant au champ switch_name.
target_application target.application Valeur extraite du modèle Grok correspondant au champ target_application.
time additional.fields[].key: "time"
additional.fields[].value.string_value:
Valeur extraite du champ time dans le champ kv_data3.
timestamp metadata.event_timestamp.seconds Valeur extraite du champ timestamp, analysée à l'aide du filtre de date.
user principal.user.userid
principal.user.user_display_name
Valeur extraite du champ user ou user@1588, analysée à l'aide de grok. Copié depuis principal.hostname. Copié depuis principal.ip. Copié à partir de metadata.product_event_type ou défini sur "STATUS_UPDATE" en fonction des conditions. Copié à partir de create_time.nanos du journal. Déterminé par la logique de l'analyseur en fonction des valeurs de has_principal, has_target, has_userid et event_type. Valeurs possibles : "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" ou "GENERIC_EVENT". Codé en dur sur "BROCADE_SWITCH". Code codé en dur sur "BROCADE". Codé en dur sur "BROCADE_SWITCH". Dérivé du champ interface ou défini sur "SSH" si le champ interface contient "SSH".

Modifications

2024-04-15

  • Ajout de la compatibilité avec les journaux spécifiques au client.

2023-12-01

  • Analyseur nouvellement créé.