Coletar registros do BeyondTrust Remote Support

Compatível com:

Esse analisador processa mensagens syslog do BeyondTrust Remote Support, transformando-as no formato UDM. Ele processa registros formatados com CEF e não CEF, extraindo campos, realizando transformações de dados e mapeando-os para os campos UDM apropriados, incluindo detalhes de resultados principais, de destino e de segurança.

Antes de começar

  • Verifique se você tem uma instância do Google Security Operations.
  • Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
  • Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Faça o download do arquivo de autenticação de transferência.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do BindPlane

  1. Para a instalação do Windows, execute o seguinte script:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Para a instalação do Linux, execute o seguinte script:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Outras opções de instalação podem ser encontradas neste guia de instalação.

Configurar o agente BindPlane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse a máquina em que o BindPlane está instalado.
  2. Edite o arquivo config.yaml da seguinte forma:

    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. Reinicie o agente do BindPlane para aplicar as mudanças:

    sudo systemctl restart bindplane
    

Configurar a exportação de syslog do BeyondTrust Remote Support

  1. Faça login no BeyondTrust Remote Support.
  2. Acesse Segurança > Administração do dispositivo.
  3. Acesse a seção Syslog e defina os seguintes valores:
    • Servidor syslog remoto: insira o nome do host ou o endereço IP do servidor de host syslog (Bindplane). Nesse campo, é possível adicionar até três servidores syslog.
    • Formato da mensagem: selecione RFC 5424.
    • Porta: digite a porta do servidor host syslog (Bindplane).
  4. Clique em Enviar.

Mapeamento do UDM

Campo de registro Mapeamento de UDM Lógica
account:expiration read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "account:expiration" no registro bruto.
account:email:locale read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "account:email:locale" no registro bruto.
command_shell_is_whitelist read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "ssions:command_shell_is_whitelist" no registro bruto.
datetime read_only_udm.metadata.event_timestamp.seconds O valor é analisado a partir do campo "datetime" no registro bruto e convertido em um carimbo de data/hora Unix.
dtPostTime read_only_udm.metadata.event_timestamp.seconds O valor é analisado do campo "dtPostTime" no registro bruto e convertido em um carimbo de data/hora do Unix.
evento read_only_udm.metadata.product_event_type O valor é retirado do campo "event" no registro bruto.
host read_only_udm.principal.hostname O valor é retirado do campo "host" no registro bruto.
id read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "id" no registro bruto.
license_pool:id read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "license_pool:id" no registro bruto.
login_schedule:timezone read_only_udm.target.location.country_or_region O valor é retirado do campo "login_schedule:timezone" no registro bruto.
old_account:email:address read_only_udm.target.user.email_addresses O valor é extraído do campo "old_account:email:address" no registro bruto.
old_account:failed_logins read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_account:failed_logins" no registro bruto.
old_display_number read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_display_number" no registro bruto.
old_login_schedule:timezone read_only_udm.target.location.country_or_region O valor é retirado do campo "old_login_schedule:timezone" no registro bruto.
old_permissions:api:reporting read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:api:reporting" no registro bruto.
old_permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:jump_item_role:default:id" no registro bruto.
old_permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:jump_item_role:default:name" no registro bruto.
old_permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:jump_item_role:teams:id" no registro bruto.
old_permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:jump_item_role:teams:name" no registro bruto.
old_permissions:presentations:control:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:presentations:control:status" no registro bruto.
old_permissions:public_sites:templates:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:public_sites:templates:status" no registro bruto.
old_permissions:reporting:presentation_reports read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:reporting:presentation_reports" no registro bruto.
old_permissions:reporting:support_reports read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:reporting:support_reports" no registro bruto.
old_permissions:reporting:vault_reports read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:reporting:vault_reports" no registro bruto.
old_permissions:support read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support" no registro bruto.
old_permissions:support:accept_team_sessions:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:accept_team_sessions:status" no registro bruto.
old_permissions:support:bomgar_button:change_public_sites:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:bomgar_button:change_public_sites:status" no registro bruto.
old_permissions:support:bomgar_button:personal:deploy:status read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:bomgar_button:personal:deploy:status" no registro bruto.
old_permissions:support:bomgar_button:team:manage read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:bomgar_button:team:manage" no registro bruto.
old_permissions:support:bomgar_button:team:manage:status read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:bomgar_button:team:manage:status" no registro bruto.
old_permissions:support:ios_content read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:ios_content" no registro bruto.
old_permissions:support:jump:local read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:jump:local" no registro bruto.
old_permissions:support:jump:local:status read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:jump:local:status" no registro bruto.
old_permissions:support:jump:remote read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:jump:remote" no registro bruto.
old_permissions:support:jump:remote:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:jump:remote:status" no registro bruto.
old_permissions:support:rdp:local read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:rdp:local" no registro bruto.
old_permissions:support:rdp:local:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:rdp:local:status" no registro bruto.
old_permissions:support:rdp:remote read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:rdp:remote" no registro bruto.
old_permissions:support:rdp:remote:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:rdp:remote:status" no registro bruto.
old_permissions:support:session_assignment:idle_timeout read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:session_assignment:idle_timeout" no registro bruto.
old_permissions:support:session_assignment:idle_timeout:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:session_assignment:idle_timeout:status" no registro bruto.
old_permissions:support:session_assignment:session_limit read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:session_assignment:session_limit" no registro bruto.
old_permissions:support:session_assignment:session_limit:status=forbid_override read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:session_assignment:session_limit:status=forbid_override" no registro bruto.
old_permissions:support:session_keys read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:session_keys" no registro bruto.
old_permissions:support:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:status" no registro bruto.
old_permissions:support:team_share read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:team_share" no registro bruto.
old_permissions:support:team_transfer read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:team_transfer" no registro bruto.
old_permissions:support:vnc:local read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:vnc:local" no registro bruto.
old_permissions:support:vnc:local:status read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "old_permissions:support:vnc:local:status" no registro bruto.
old_permissions:support:vnc:remote read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:vnc:remote" no registro bruto.
old_permissions:support:vnc:remote:status read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_permissions:support:vnc:remote:status" no registro bruto.
old_private_display_name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_private_display_name" no registro bruto.
old_provider:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_provider:id" no registro bruto.
old_provider:name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "old_provider:name" no registro bruto.
permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "permissions:jump_item_role:default:id" no registro bruto.
permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "permissions:jump_item_role:default:name" no registro bruto.
permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "permissions:jump_item_role:teams:id" no registro bruto.
permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "permissions:jump_item_role:teams:name" no registro bruto.
provider:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "provider:id" no registro bruto.
provider:name read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "provider:name" no registro bruto.
reason read_only_udm.security_result.description O valor é retirado do campo "reason" no registro bruto e anexado ao campo de descrição com o prefixo " - Reason:".
sEventID read_only_udm.metadata.product_event_type O valor é extraído do campo "sEventID" no registro bruto.
sIpAddress read_only_udm.principal.ip O valor é retirado do campo "sIpAddress" no registro bruto.
sLoginName read_only_udm.principal.user.userid O valor é analisado do campo "sLoginName" no registro bruto. Se o campo contiver um domínio, ele será extraído e mapeado para "read_only_udm.principal.namespace".
sMessage read_only_udm.security_result.description O valor é extraído do campo "sMessage" no registro bruto. O analisador extrai o texto entre aspas e o mapeia para o campo de descrição.
sOriginatingAccount read_only_udm.principal.user.userid O valor é analisado a partir do campo "sOriginatingAccount" no registro bruto. Se o campo contiver um domínio, ele será extraído e mapeado para "read_only_udm.principal.namespace".
sOriginatingApplicationComponent read_only_udm.principal.application O valor é retirado do campo "sOriginatingApplicationComponent" no registro bruto e anexado ao campo do aplicativo entre parênteses após o valor de sOriginatingApplicationName.
sOriginatingApplicationName read_only_udm.principal.application O valor é retirado do campo "sOriginatingApplicationName" no registro bruto.
sOriginatingSystem read_only_udm.principal.hostname O valor é extraído do campo "sOriginatingSystem" no registro bruto.
session_policy:id read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "session_policy:id" no registro bruto.
session_policy:name read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "session_policy:name" no registro bruto.
session_policy:purpose read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "session_policy:purpose" no registro bruto.
site read_only_udm.target.hostname O valor é extraído do campo "site" no registro bruto.
status read_only_udm.security_result.summary O valor é retirado do campo "status" no registro bruto e anexado ao campo de resumo.
support:jump:local read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:jump:local" no registro bruto.
support:permissions:allow_pinned_clients read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:allow_pinned_clients" no registro bruto.
support:permissions:allow_users read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:allow_users" no registro bruto.
support:permissions:canned_scripts read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:canned_scripts" no registro bruto.
support:permissions:chat read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:chat" no registro bruto.
support:permissions:chat:push_url read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:chat:push_url" no registro bruto.
support:permissions:chat:send_file read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:chat:send_file" no registro bruto.
support:permissions:command_shell read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:command_shell" no registro bruto.
support:permissions:deploy_callback_button read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:deploy_callback_button" no registro bruto.
support:permissions:elevation read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:elevation" no registro bruto.
support:permissions:file_transfers:cust read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:file_transfers:cust" no registro bruto.
support:permissions:file_transfers:download read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:file_transfers:download" no registro bruto.
support:permissions:file_transfers:rep read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:file_transfers:rep" no registro bruto.
support:permissions:file_transfers:upload read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:file_transfers:upload" no registro bruto.
support:permissions:registry_access read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:registry_access" no registro bruto.
support:permissions:request_pin_unpin read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:request_pin_unpin" no registro bruto.
support:permissions:screen_sharing read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing" no registro bruto.
support:permissions:screen_sharing:allow_elevated_tools read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:allow_elevated_tools" no registro bruto.
support:permissions:screen_sharing:annotations read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:screen_sharing:annotations" no registro bruto.
support:permissions:screen_sharing:application_restriction read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:application_restriction" no registro bruto.
support:permissions:screen_sharing:application_sharing read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:application_sharing" no registro bruto.
support:permissions:screen_sharing:clipboard_direction read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:clipboard_direction" no registro bruto.
support:permissions:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:cobrowse" no registro bruto.
support:permissions:screen_sharing:privacy_mode read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:permissions:screen_sharing:privacy_mode" no registro bruto.
support:permissions:screen_sharing:show_screen read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:screen_sharing:show_screen" no registro bruto.
support:permissions:system_info read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:system_info" no registro bruto.
support:permissions:system_info:actions read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:permissions:system_info:actions" no registro bruto.
support:prompting:command_shell read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:command_shell" no registro bruto.
support:prompting:default read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:default" no registro bruto.
support:prompting:deploy_callback_button read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:deploy_callback_button" no registro bruto.
support:prompting:elevate read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:elevate" no registro bruto.
support:prompting:file_transfer read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:file_transfer" no registro bruto.
support:prompting:registry read_only_udm.principal.user.attribute.labels.value O valor é retirado do campo "support:prompting:registry" no registro bruto.
support:prompting:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:screen_sharing:cobrowse" no registro bruto.
support:prompting:screen_sharing:full_access read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "support:prompting:screen_sharing:full_access" no registro bruto.
target read_only_udm.target.application O valor é retirado do campo "target" no registro bruto. O analisador substitui "rep_client" por "Representative Console" e "web/login" por "Web/Login".
two_factor_auth:app read_only_udm.principal.user.attribute.labels.value O valor é extraído do campo "two_factor_auth:app" no registro bruto.
quando read_only_udm.metadata.product_log_id O valor é extraído do campo "when" no registro bruto.
quando read_only_udm.metadata.event_timestamp.seconds O valor é analisado a partir do campo "when" no registro bruto e convertido em um carimbo de data/hora do Unix.
quem read_only_udm.principal.user.userid O valor é analisado a partir do campo "who" no registro bruto. O analisador extrai o texto entre parênteses.
quem read_only_udm.principal.user.user_display_name O valor é analisado a partir do campo "who" no registro bruto. O analisador extrai o texto antes dos parênteses.
who_ip read_only_udm.principal.ip O valor é extraído do campo "who_ip" no registro bruto.
read_only_udm.metadata.vendor_name O valor é definido como "BeyondTrust" pelo analisador.
read_only_udm.metadata.product_name O valor é definido como "BeyondTrust Remote Support" pelo analisador.
read_only_udm.metadata.log_type O valor é definido como "BOMGAR" pelo analisador.
read_only_udm.extensions.auth.type O valor é definido como "MACHINE" se o destino for "rep_client", "SSO" se o destino for "web/login" e "AUTHTYPE_UNSPECIFIED", caso contrário, pelo analisador.
read_only_udm.extensions.auth.mechanism O valor é definido como "USERNAME_PASSWORD" se o método for "usando senha", "REMOTE" se o método for "usando elevar" e será deixado em branco pelo analisador.
read_only_udm.security_result.action O valor é definido como "PERMITIR" se o status não for "falha", o motivo não for "falha" ou "usuário não encontrado" e a mensagem não conter "falha no login no app da Web". Caso contrário, o valor é definido como "BLOCK" pelo analisador.
read_only_udm.security_result.summary O valor é definido como "Login do usuário " ou "Sair do usuário " com base no eventName, seguido pelo status, se não estiver vazio pelo analisador.
read_only_udm.security_result.description O valor é definido como "Usuário ", seguido pelo ID do usuário, endereço IP, status, nome do evento, conector ("para" para login e "de" para logout), destino e método. Se o motivo não estiver vazio e não for "falha", ele será anexado à descrição com o prefixo " - Reason:" pelo analisador.

Alterações

2024-01-12

  • Melhoramos o processamento de eventos de status "challenge".
  • Mapeamento de endereços de e-mail aprimorado para maior precisão.

2022-11-24

  • Correção de um bug na análise de informações do usuário, como nome de exibição, ID e método.
  • Melhoramos a precisão da classificação do tipo de autenticação para eventos de login do usuário.

2022-10-13

  • Integramos um analisador específico do cliente ao analisador padrão para uma aplicabilidade mais ampla.

2022-09-26

  • Integramos um analisador específico do cliente ao analisador padrão para uma aplicabilidade mais ampla.

2022-08-19

  • Os analisadores personalizados foram consolidados no analisador padrão para melhorar a manutenção e o desempenho.