Collecter les journaux de l'assistance à distance BeyondTrust

Compatible avec:

Cet analyseur gère les messages syslog de l'assistance à distance BeyondTrust et les transforme au format UDM. Il traite les journaux au format CEF et non CEF, extrait des champs, effectue des transformations de données et les met en correspondance avec les champs UDM appropriés, y compris les détails sur le principal, la cible et les résultats de sécurité.

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.

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: BeyondTrust_Remote_Support
            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 des journaux Syslog depuis l'assistance à distance BeyondTrust

  1. Connectez-vous à l'assistance à distance BeyondTrust.
  2. Accédez à Sécurité > Administration de l'appliance.
  3. Accédez à la section Syslog et définissez les valeurs suivantes :
    • Remote Syslog Server (Serveur syslog distant) : saisissez le nom d'hôte ou l'adresse IP du serveur hôte syslog (Bindplane). Vous pouvez ajouter jusqu'à trois serveurs Syslog dans ce champ.
    • Format du message: sélectionnez RFC 5424.
    • Port: saisissez le port du serveur hôte syslog (Bindplane).
  4. Cliquez sur Envoyer.

Mappage UDM

Champ du journal Mappage UDM Logique
account:expiration read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "account:expiration" du journal brut.
account:email:locale read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "account:email:locale" dans le journal brut.
command_shell_is_whitelist read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "ssions:command_shell_is_whitelist" du journal brut.
Date/Heure read_only_udm.metadata.event_timestamp.seconds La valeur est extraite du champ "datetime" du journal brut et convertie en code temporel Unix.
dtPostTime read_only_udm.metadata.event_timestamp.seconds La valeur est extraite du champ "dtPostTime" du journal brut et convertie en code temporel Unix.
événement read_only_udm.metadata.product_event_type La valeur est extraite du champ "event" du journal brut.
hôte read_only_udm.principal.hostname La valeur est extraite du champ "host" du journal brut.
id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "id" du journal brut.
license_pool:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "license_pool:id" du journal brut.
login_schedule:timezone read_only_udm.target.location.country_or_region La valeur est extraite du champ "login_schedule:timezone" du journal brut.
old_account:email:address read_only_udm.target.user.email_addresses La valeur est extraite du champ "old_account:email:address" dans le journal brut.
old_account:failed_logins read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_account:failed_logins" du journal brut.
old_display_number read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_display_number" du journal brut.
old_login_schedule:timezone read_only_udm.target.location.country_or_region La valeur est extraite du champ "old_login_schedule:timezone" du journal brut.
old_permissions:api:reporting read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:api:reporting" dans le journal brut.
old_permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:jump_item_role:default:id" dans le journal brut.
old_permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:jump_item_role:default:name" dans le journal brut.
old_permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:jump_item_role:teams:id" dans le journal brut.
old_permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:jump_item_role:teams:name" dans le journal brut.
old_permissions:presentations:control:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:presentations:control:status" du journal brut.
old_permissions:public_sites:templates:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:public_sites:templates:status" du journal brut.
old_permissions:reporting:presentation_reports read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:reporting:presentation_reports" dans le journal brut.
old_permissions:reporting:support_reports read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:reporting:support_reports" dans le journal brut.
old_permissions:reporting:vault_reports read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:reporting:vault_reports" dans le journal brut.
old_permissions:support read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support" du journal brut.
old_permissions:support:accept_team_sessions:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:accept_team_sessions:status" dans le journal brut.
old_permissions:support:bomgar_button:change_public_sites:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:bomgar_button:change_public_sites:status" dans le journal brut.
old_permissions:support:bomgar_button:personal:deploy:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:bomgar_button:personal:deploy:status" dans le journal brut.
old_permissions:support:bomgar_button:team:manage read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:bomgar_button:team:manage" dans le journal brut.
old_permissions:support:bomgar_button:team:manage:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:bomgar_button:team:manage:status" dans le journal brut.
old_permissions:support:ios_content read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:ios_content" dans le journal brut.
old_permissions:support:jump:local read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:jump:local" dans le journal brut.
old_permissions:support:jump:local:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:jump:local:status" dans le journal brut.
old_permissions:support:jump:remote read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:jump:remote" dans le journal brut.
old_permissions:support:jump:remote:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:jump:remote:status" dans le journal brut.
old_permissions:support:rdp:local read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:rdp:local" du journal brut.
old_permissions:support:rdp:local:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:rdp:local:status" du journal brut.
old_permissions:support:rdp:remote read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:rdp:remote" dans le journal brut.
old_permissions:support:rdp:remote:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:rdp:remote:status" dans le journal brut.
old_permissions:support:session_assignment:idle_timeout read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:session_assignment:idle_timeout" dans le journal brut.
old_permissions:support:session_assignment:idle_timeout:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:session_assignment:idle_timeout:status" dans le journal brut.
old_permissions:support:session_assignment:session_limit read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:session_assignment:session_limit" dans le journal brut.
old_permissions:support:session_assignment:session_limit:status=forbid_override read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:session_assignment:session_limit:status=forbid_override" dans le journal brut.
old_permissions:support:session_keys read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:session_keys" dans le journal brut.
old_permissions:support:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:status" du journal brut.
old_permissions:support:team_share read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:team_share" dans le journal brut.
old_permissions:support:team_transfer read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:team_transfer" dans le journal brut.
old_permissions:support:vnc:local read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:vnc:local" du journal brut.
old_permissions:support:vnc:local:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:vnc:local:status" du journal brut.
old_permissions:support:vnc:remote read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:vnc:remote" dans le journal brut.
old_permissions:support:vnc:remote:status read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_permissions:support:vnc:remote:status" du journal brut.
old_private_display_name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_private_display_name" du journal brut.
old_provider:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_provider:id" du journal brut.
old_provider:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "old_provider:name" du journal brut.
permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "permissions:jump_item_role:default:id" dans le journal brut.
permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "permissions:jump_item_role:default:name" dans le journal brut.
permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "permissions:jump_item_role:teams:id" dans le journal brut.
permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "permissions:jump_item_role:teams:name" dans le journal brut.
provider:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "provider:id" du journal brut.
provider:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "provider:name" du journal brut.
reason read_only_udm.security_result.description La valeur est extraite du champ "reason" du journal brut et ajoutée au champ de description avec le préfixe "- Reason:".
sEventID read_only_udm.metadata.product_event_type La valeur est extraite du champ "sEventID" du journal brut.
sIpAddress read_only_udm.principal.ip La valeur est extraite du champ "sIpAddress" du journal brut.
sLoginName read_only_udm.principal.user.userid La valeur est extraite du champ "sLoginName" du journal brut. Si le champ contient un domaine, celui-ci est extrait et mappé sur read_only_udm.principal.namespace.
sMessage read_only_udm.security_result.description La valeur est extraite du champ "sMessage" du journal brut. L'analyseur extrait le texte entre guillemets et le met en correspondance avec le champ de description.
sOriginatingAccount read_only_udm.principal.user.userid La valeur est extraite du champ "sOriginatingAccount" du journal brut. Si le champ contient un domaine, celui-ci est extrait et mappé sur read_only_udm.principal.namespace.
sOriginatingApplicationComponent read_only_udm.principal.application La valeur est extraite du champ "sOriginatingApplicationComponent" du journal brut et ajoutée au champ de l'application entre parenthèses après la valeur de sOriginatingApplicationName.
sOriginatingApplicationName read_only_udm.principal.application La valeur est extraite du champ "sOriginatingApplicationName" du journal brut.
sOriginatingSystem read_only_udm.principal.hostname La valeur est extraite du champ "sOriginatingSystem" du journal brut.
session_policy:id read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "session_policy:id" du journal brut.
session_policy:name read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "session_policy:name" du journal brut.
session_policy:purpose read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "session_policy:purpose" du journal brut.
site read_only_udm.target.hostname La valeur est extraite du champ "site" du journal brut.
état read_only_udm.security_result.summary La valeur est extraite du champ "état" du journal brut et ajoutée au champ récapitulatif.
support:jump:local read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:jump:local" dans le journal brut.
support:permissions:allow_pinned_clients read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:allow_pinned_clients" dans le journal brut.
support:permissions:allow_users read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:allow_users" dans le journal brut.
support:permissions:canned_scripts read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:canned_scripts" dans le journal brut.
support:permissions:chat read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:chat" dans le journal brut.
support:permissions:chat:push_url read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:chat:push_url" dans le journal brut.
support:permissions:chat:send_file read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:chat:send_file" dans le journal brut.
support:permissions:command_shell read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:command_shell" dans le journal brut.
support:permissions:deploy_callback_button read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:deploy_callback_button" dans le journal brut.
support:permissions:elevation read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:elevation" dans le journal brut.
support:permissions:file_transfers:cust read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:file_transfers:cust" dans le journal brut.
support:permissions:file_transfers:download read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:file_transfers:download" dans le journal brut.
support:permissions:file_transfers:rep read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:file_transfers:rep" dans le journal brut.
support:permissions:file_transfers:upload read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:file_transfers:upload" dans le journal brut.
support:permissions:registry_access read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:registry_access" dans le journal brut.
support:permissions:request_pin_unpin read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:request_pin_unpin" dans le journal brut.
support:permissions:screen_sharing read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing" dans le journal brut.
support:permissions:screen_sharing:allow_elevated_tools read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:allow_elevated_tools" dans le journal brut.
support:permissions:screen_sharing:annotations read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:annotations" dans le journal brut.
support:permissions:screen_sharing:application_restriction read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:application_restriction" dans le journal brut.
support:permissions:screen_sharing:application_sharing read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:application_sharing" dans le journal brut.
support:permissions:screen_sharing:clipboard_direction read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:clipboard_direction" dans le journal brut.
support:permissions:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:cobrowse" dans le journal brut.
support:permissions:screen_sharing:privacy_mode read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:privacy_mode" dans le journal brut.
support:permissions:screen_sharing:show_screen read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:screen_sharing:show_screen" dans le journal brut.
support:permissions:system_info read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:system_info" dans le journal brut.
support:permissions:system_info:actions read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:permissions:system_info:actions" dans le journal brut.
support:prompting:command_shell read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:command_shell" dans le journal brut.
support:prompting:default read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:default" dans le journal brut.
support:prompting:deploy_callback_button read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:deploy_callback_button" dans le journal brut.
support:prompting:elevate read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:elevate" dans le journal brut.
support:prompting:file_transfer read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:file_transfer" dans le journal brut.
support:prompting:registry read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:registry" du journal brut.
support:prompting:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:screen_sharing:cobrowse" dans le journal brut.
support:prompting:screen_sharing:full_access read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "support:prompting:screen_sharing:full_access" dans le journal brut.
cible read_only_udm.target.application La valeur est extraite du champ "target" du journal brut. L'analyseur remplace "rep_client" par "Representative Console" (Console du représentant) et "web/login" par "Web/Login".
two_factor_auth:app read_only_udm.principal.user.attribute.labels.value La valeur est extraite du champ "two_factor_auth:app" dans le journal brut.
when read_only_udm.metadata.product_log_id La valeur est extraite du champ "when" du journal brut.
when read_only_udm.metadata.event_timestamp.seconds La valeur est extraite du champ "when" du journal brut et convertie en code temporel Unix.
qui read_only_udm.principal.user.userid La valeur est extraite du champ "who" du journal brut. L'analyseur extrait le texte entre parenthèses.
qui read_only_udm.principal.user.user_display_name La valeur est extraite du champ "who" du journal brut. L'analyseur extrait le texte avant les parenthèses.
who_ip read_only_udm.principal.ip La valeur est extraite du champ "who_ip" du journal brut.
read_only_udm.metadata.vendor_name La valeur est définie sur "BeyondTrust" par l'analyseur.
read_only_udm.metadata.product_name La valeur est définie sur "BeyondTrust Remote Support" par l'analyseur.
read_only_udm.metadata.log_type La valeur est définie sur "BOMGAR" par l'analyseur.
read_only_udm.extensions.auth.type La valeur est définie sur "MACHINE" si la cible est "rep_client", sur "SSO" si la cible est "web/login", et sur "AUTHTYPE_UNSPECIFIED" dans le cas contraire par l'analyseur.
read_only_udm.extensions.auth.mechanism La valeur est définie sur "USERNAME_PASSWORD" si la méthode est "using password", sur "REMOTE" si la méthode est "using elevate", et laissée vide par l'analyseur dans le cas contraire.
read_only_udm.security_result.action La valeur est définie sur "ALLOW" si l'état n'est pas "failure", si le motif n'est pas "failed" ou "user not found", et si le sMessage ne contient pas "failed login to web app". Sinon, la valeur est définie sur "BLOCK" par l'analyseur.
read_only_udm.security_result.summary La valeur est définie sur "Connexion de l'utilisateur" ou "Déconnexion de l'utilisateur" en fonction de l'événement eventName, suivie de l'état si celui-ci n'est pas vide par l'analyseur.
read_only_udm.security_result.description La valeur est définie sur "Utilisateur", suivie de l'ID utilisateur, de l'adresse IP, de l'état, de l'événement, du connecteur ("à" pour la connexion et "de" pour la déconnexion), de la cible et de la méthode. Si le motif n'est pas vide et ne correspond pas à "failed", il est ajouté à la description avec le préfixe "- Reason:" par l'analyseur.

Modifications

2024-01-12

  • Amélioration de la gestion des événements d'état "défi".
  • Amélioration du mappage des adresses e-mail pour plus de précision

2022-11-24

  • Correction d'un bug lors de l'analyse des informations utilisateur telles que le nom à afficher, l'ID et la méthode.
  • Amélioration de la précision de la classification du type d'authentification pour les événements de connexion des utilisateurs.

2022-10-13

  • Intégration d'un analyseur spécifique au client dans l'analyseur par défaut pour une application plus large.

2022-09-26

  • Intégration d'un analyseur spécifique au client dans l'analyseur par défaut pour une application plus large.

2022-08-19

  • Consolidation des analyseurs personnalisés dans l'analyseur par défaut pour une meilleure facilité de maintenance et de performances.