Collecter les journaux de la plate-forme Ribbon Analytics

Compatible avec :

Ce document explique comment ingérer les journaux de la plate-forme Ribbon Analytics dans Google Security Operations à l'aide de l'agent Bindplane.

La plate-forme Ribbon Analytics est une plate-forme d'analyse du réseau et de contrôleur de session pour la surveillance des communications vocales et de données. Il génère des messages syslog pour les enregistrements détaillés des appels, les événements de session et les informations sur l'état du système.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et la plate-forme Ribbon Analytics
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • Accès privilégié à l'interface de gestion de la plate-forme Ribbon Analytics

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. 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 du SIEM > Profil.
  3. Copiez et enregistrez le numéro client dans 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 Windows

  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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

Installation de Linux

  1. Ouvrez un terminal avec des privilèges 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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Autres ressources d'installation

Pour obtenir d'autres options d'installation et de dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux Syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/ribbon_analytics:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: RIBBON_ANALYTICS_PLATFORM
            raw_log_field: body
    
    service:
        pipelines:
            logs/ribbon_analytics_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/ribbon_analytics
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • listen_address : adresse IP et port à écouter :
      • 0.0.0.0 pour écouter sur toutes les interfaces (recommandé)
      • Le port 514 est le port syslog standard (nécessite la racine sur Linux ; utilisez 1514 pour les utilisateurs non racine).
  • Configuration de l'exportateur :

    • creds_file_path : chemin d'accès complet au fichier d'authentification de l'ingestion :
      • Linux : /etc/bindplane-agent/ingestion-auth.json
      • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id : ID client copié depuis la console Google SecOps
    • endpoint : URL du point de terminaison régional :
      • États-Unis : malachiteingestion-pa.googleapis.com
      • Europe : europe-malachiteingestion-pa.googleapis.com
      • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
      • Pour obtenir la liste complète, consultez Points de terminaison régionaux.

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
    • Windows : cliquez sur Fichier > Enregistrer.

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 observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    2. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane dans Windows, choisissez l'une des options suivantes :

    • Invite de commande ou PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Localisez observIQ OpenTelemetry Collector.
      3. Effectuez un clic droit, puis sélectionnez Redémarrer.
      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurer le transfert syslog de la plate-forme Ribbon Analytics

  1. Connectez-vous à l'interface de gestion Ribbon.
  2. Accédez à Paramètres > Serveurs de journaux à distance.
  3. Ajoutez un serveur de journaux à distance avec la configuration suivante :
    • Hôte : saisissez l'adresse IP de l'hôte de l'agent Bindplane.
    • Port : saisissez 514.
    • Protocole : sélectionnez UDP.
  4. Cliquez sur Enregistrer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
type_name about Mappé : SYSCALL → about
type_syscall_props.AUID about.user.user_display_name Mappé directement
type_syscall_props.auid about.user.userid Mappé directement
additional_delay_data additional.fields Fusionné
additional_delays_data additional.fields Fusionné
additional_dns_data additional.fields Fusionné
additional_field additional.fields Fusionné
additional_relay_data additional.fields Fusionné
auth_realm_field additional.fields Fusionné
log_details_label additional.fields Fusionné
_mechanism extensions.auth.mechanism Fusionné
audit_message extensions.auth.type Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
msg2 extensions.auth.type Mappé : login failure → MACHINE
type_name extensions.auth.type Mappé : USER_LOGIN → MACHINE, "LOGIN", "USER_START", "USER_AUTH", "CRED_ACQ", "CRED_REF...
dvc intermediary.hostname Mappé directement
dvc intermediary.ip Fusionné
description metadata.description Mappé directement
error_message metadata.description Mappé directement
msg2 metadata.description Mappé directement
event_timestamp metadata.event_timestamp Analysé en tant que UNIX
timestamp metadata.event_timestamp Analysé en tant que MMM d HH:mm:ss
event_type metadata.event_type Mappé : GENERIC_EVENT → STATUS_UPDATE
has_principal metadata.event_type Mappé : true → STATUS_UPDATE
msg2 metadata.event_type Mappé : HTTP → NETWORK_HTTP, login failure → USER_LOGIN
target_user_present metadata.event_type Mappé : true → USER_UNCATEGORIZED
type_name metadata.event_type Mappé : SYSCALL → USER_UNCATEGORIZED
applica metadata.product_event_type Mappé directement
audit_message metadata.product_event_type Valeurs mappées (6 au total, par exemple pam_krb5.*authentication fails for → PAM_KRB5_AUTH_ERROR, `...
eventType metadata.product_event_type Mappé directement
p_event_type metadata.product_event_type Mappé directement
type metadata.product_event_type Mappé directement
type_name metadata.product_event_type Mappé directement
jsonPayload._AUDIT_ID metadata.product_log_id Mappé directement
product_log_id metadata.product_log_id Mappé directement
audit_message network.application_protocol Mappé : type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → SSH
auth network.application_protocol Mappé : ssh → SSH
message network.application_protocol Mappé : ssh/ssh2 → SSH
tty network.application_protocol Mappé : ssh → SSH
audit_message network.direction Mappé : type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → OUTBOUND, `type=(CRYPTO_SESSION/CRYPTO_K...
mailid network.email.mail_id Mappé directement
to_email network.email.to Mappé : ^.+@.+$ → to_email
response_code network.http.response_code Mappé directement
audit_message network.ip_protocol Mappé : type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → TCP
bytes_sent network.sent_bytes Mappé directement
type_crypto_props.ksize network.sent_bytes Renommé/Mappé
jsonPayload._AUDIT_SESSION network.session_id Mappé directement
sessionid network.session_id Mappé directement
type_anom_props.ses network.session_id Renommé/Mappé
type_syscall_props.ses network.session_id Mappé directement
type_crypto_props.cipher network.tls.cipher Mappé directement
type_crypto_props.pfs network.tls.curve Mappé directement
applica principal.application Mappé directement
jsonPayload._COMM principal.application Mappé directement
type_anom_props.comm principal.application Mappé directement
type_syscall_props.comm principal.application Mappé directement
type_syscall_props.terminal principal.application Mappé directement
%{rhost} principal.asset.hostname Fusionné
rhost principal.asset.hostname Mappé lorsque kvdata != ``
princi_ip principal.asset.ip Fusionné
rhost principal.asset.ip Fusionné
srcIp principal.asset.ip Mappé : `^(?:(25[0-5]/2[0-4][0-9]/1[0-9]{2}/[1-9]?[0-9]).){3}(25[0-5]/2[0-4][0-9]/1[0-9]{2}...
%{rhost} principal.hostname Fusionné
jsonPayload._HOSTNAME principal.hostname Mappé directement
principal_hostname principal.hostname Mappé directement
rhost principal.hostname Mappé lorsque kvdata != ``
audit_message principal.ip Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
prin_ip principal.ip Fusionné
princi_ip principal.ip Fusionné
rhost principal.ip Fusionné
srcIp principal.ip Mappé : `^(?:(25[0-5]/2[0-4][0-9]/1[0-9]{2}/[1-9]?[0-9]).){3}(25[0-5]/2[0-4][0-9]/1[0-9]{2}...
type_crypto_props.laddr principal.ip Fusionné
srcPort principal.port Renommé/Mappé
type_crypto_props.lport principal.port Renommé/Mappé
auth principal.process.command_line Mappé directement
proctitle_value principal.process.command_line Mappé directement
type_syscall_props.cmd principal.process.command_line Mappé directement
event.idm.read_only_udm.target.process.file.full_path principal.process.file.full_path Mappé directement
proctitle_value principal.process.file.full_path Mappé directement
audit_message principal.process.file.names Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
filename principal.process.file.names Fusionné
jsonPayload._PPID principal.process.parent_process.pid Mappé directement
type_syscall_props.ppid principal.process.parent_process.pid Mappé directement
jsonPayload._PID principal.process.pid Mappé directement
pi principal.process.pid Mappé directement
process_pid principal.process.pid Mappé directement
type_crypto_props.spid principal.process.pid Mappé directement
type_syscall_props.pid principal.process.pid Mappé directement
email principal.user.email_addresses Mappé : ^.+@.+$ → email
user_name principal.user.email_addresses Mappé : ^.+@.+$ → user_name
type_syscall_props.UID principal.user.user_display_name Mappé directement
type_syscall_props.acct principal.user.user_display_name Mappé directement
jsonPayload._AUDIT_FIELD_SUID principal.user.userid Mappé directement
principal_user_userid principal.user.userid Mappé directement
ruser principal.user.userid Mappé directement
type_crypto_props.suid principal.user.userid Mappé directement
user_name principal.user.userid Mappé directement
usr principal.user.userid Mappé directement
a0_label security_result.about.labels Fusionné
a1_label security_result.about.labels Fusionné
a2_label security_result.about.labels Fusionné
a3_label security_result.about.labels Fusionné
audit_message security_result.about.labels Valeurs mappées (7 au total, par exemple, "type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CH...
exit_label security_result.about.labels Fusionné
syscall_label security_result.about.labels Fusionné
tty_label security_result.about.labels Fusionné
jsonPayload._AUDIT_FIELD_ARCH security_result.about.platform_version Mappé directement
type_syscall_props.arch security_result.about.platform_version Mappé directement
type_syscall_props.key security_result.about.registry.registry_key Mappé directement
product_log_id security_result.about.registry.registry_value_data Mappé directement
action security_result.action Fusionné
action_data security_result.action Mappé : "authentication failure", "Authentication failure", "Failed password", "Connection ...
audit_message security_result.action Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
security_action security_result.action Fusionné
action_data security_result.action_details Mappé directement
auth security_result.action_details Mappé : sshd → FAILURE
status security_result.action_details Mappé directement
type_crypto_props.res security_result.action_details Renommé/Mappé
type_syscall_props.res security_result.action_details Mappé directement
a0_label security_result.detection_fields Fusionné
a1_label security_result.detection_fields Fusionné
a2_label security_result.detection_fields Fusionné
a3_label security_result.detection_fields Fusionné
audit_message security_result.detection_fields Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
auid_field security_result.detection_fields Fusionné
auth security_result.detection_fields Mappé : sshd → authentication_protocol_field, sshd → authentication_mechanism_field,...
authentication_mechanism_field security_result.detection_fields Fusionné
authentication_protocol_field security_result.detection_fields Fusionné
bootid_label security_result.detection_fields Fusionné
connection_state_field security_result.detection_fields Fusionné
cwd_field security_result.detection_fields Fusionné
exit_label security_result.detection_fields Fusionné
jsonPayload._AUDIT_TYPE_NAME security_result.rule_id Mappé directement
type_name security_result.rule_id Mappé directement
msg_desc security_result.summary Mappé directement
secsummary security_result.summary Mappé directement
type_anom_props.reason security_result.summary Mappé directement
type_syscall_props.op security_result.summary Mappé directement
type_syscall_props.res security_result.summary Mappé directement
type_syscall_props.success security_result.summary Mappé directement
type_path1_props.name src.file.full_path Renommé/Mappé
type_crypto_props.terminal target.application Renommé/Mappé
target_hostname target.asset.hostname Mappé directement
type_crypto_props.hostname target.asset.hostname Mappé directement
dst_ip target.asset.ip Fusionné
resource.labels.project_id target.cloud.project.name Mappé directement
filepath target.file.full_path Mappé directement
jsonPayload._AUDIT_FIELD_FILE target.file.full_path Mappé directement
target_file_full_path target.file.full_path Mappé directement
jsonPayload._AUDIT_FIELD_HASH target.file.sha256 Mappé directement
target_hostname target.hostname Mappé directement
type_crypto_props.hostname target.hostname Mappé directement
audit_message target.ip Mappé : type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → tar_ip
dst_ip target.ip Fusionné
tar_ip target.ip Fusionné
resource.labels.location target.location.name Mappé directement
dst_port target.port Mappé directement
target_port target.port Mappé directement
type_crypto_props.rport target.port Renommé/Mappé
args target.process.command_line Renommé/Mappé
cmnd target.process.command_line Mappé directement
command_line target.process.command_line Mappé directement
cwd target.process.file.full_path Mappé directement
jsonPayload._EXE target.process.file.full_path Mappé directement
proctitle_value target.process.file.full_path Mappé directement
type_anom_props.exe target.process.file.full_path Renommé/Mappé
type_crypto_props.exe target.process.file.full_path Renommé/Mappé
type_syscall_props.exe target.process.file.full_path Mappé directement
type_anom_props.pid target.process.pid Renommé/Mappé
type_crypto_props.pid target.process.pid Renommé/Mappé
resource.labels.cluster_name target.resource.name Mappé directement
audit_message target.resource.type Mappé : `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
type_name target.resource.type Mappé : "USER_ACCT", "USER_ROLE_CHANGE","USER_MGMT" → SETTING
target_email target.user.email_addresses Mappé : ^.+@.+$ → target_email
type_syscall_props.ID target.user.user_display_name Mappé directement
type_syscall_props.acct target.user.user_display_name Mappé directement
event.idm.read_only_udm.principal.user.userid target.user.userid Renommé/Mappé
jsonPayload._UID target.user.userid Mappé directement
type_crypto_props.uid target.user.userid Mappé directement
type_syscall_props.acct target.user.userid Mappé directement
type_syscall_props.id target.user.userid Mappé directement
type_syscall_props.uid target.user.userid Mappé directement
user_name target.user.userid Mappé directement
username target.user.userid Mappé directement
N/A extensions.auth.type Constante : AUTHTYPE_UNSPECIFIED
N/A metadata.event_type Constante : STATUS_UPDATE
N/A metadata.product_event_type Constante : PAM_KRB5_AUTH_ERROR
N/A metadata.product_name Constante : AuditD
N/A metadata.vendor_name Constante : Linux
N/A network.application_protocol Constante : SSH
N/A network.direction Constante : OUTBOUND
N/A network.ip_protocol Constante : TCP
N/A principal.platform Constante : LINUX
N/A principal.user.userid Constante : event.idm.read_only_udm.target.user.userid
N/A security_result.action_details Constante : FAILURE
N/A target.resource.type Constante : SETTING

Journal des modifications

Afficher le journal des modifications pour ce parseur

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