Coletar registros do BeyondTrust Remote Support
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Faça o download do arquivo de autenticação de transferência.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do BindPlane
- 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
- 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
- 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
- Acesse a máquina em que o BindPlane está instalado.
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
Reinicie o agente do BindPlane para aplicar as mudanças:
sudo systemctl restart bindplane
Configurar a exportação de syslog do BeyondTrust Remote Support
- Faça login no BeyondTrust Remote Support.
- Acesse Segurança > Administração do dispositivo.
- 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).
- 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.