Recopilar registros de asistencia remota de BeyondTrust

Disponible en:

Este analizador gestiona los mensajes syslog de BeyondTrust Remote Support y los transforma al formato UDM. Procesa registros con formato CEF y sin formato CEF, extrae campos, realiza transformaciones de datos y los asigna a los campos de UDM correspondientes, incluidos los detalles de la entidad principal, el destino y el resultado de seguridad.

Antes de empezar

  • Asegúrate de que tienes una instancia de Google Security Operations.
  • Asegúrate de que usas Windows 2016 o una versión posterior, o un host Linux con systemd.
  • Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

  1. Para instalar en Windows, ejecuta la siguiente secuencia de comandos:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Para instalar Linux, ejecuta la siguiente secuencia de comandos:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Puedes consultar otras opciones de instalación en esta guía de instalación.

Configurar el agente de Bindplane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al equipo en el que está instalado Bindplane.
  2. Edita el archivo config.yaml de la siguiente manera:

    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. Reinicia el agente de Bindplane para aplicar los cambios:

    sudo systemctl restart bindplane
    

Configurar la exportación de Syslog desde la asistencia remota de BeyondTrust

  1. Inicia sesión en tu cuenta de asistencia remota de BeyondTrust.
  2. Ve a Seguridad > Administración de dispositivos.
  3. Ve a la sección Syslog y define los siguientes valores:
    • Servidor Syslog remoto: introduce el nombre de host o la dirección IP del servidor host de syslog (Bindplane). En este campo, puede añadir hasta tres servidores syslog.
    • Formato del mensaje: selecciona RFC 5424.
    • Puerto: introduce el puerto del servidor host de syslog (Bindplane).
  4. Haz clic en Enviar.

Asignación de UDM

Campo de registro Asignación de UDM Lógica
account:expiration read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "account:expiration" del registro sin procesar.
account:email:locale read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "account:email:locale" del registro sin procesar.
command_shell_is_whitelist read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "ssions:command_shell_is_whitelist" del registro sin procesar.
datetime read_only_udm.metadata.event_timestamp.seconds El valor se analiza a partir del campo "datetime" del registro sin procesar y se convierte en una marca de tiempo de Unix.
dtPostTime read_only_udm.metadata.event_timestamp.seconds El valor se analiza a partir del campo "dtPostTime" del registro sin procesar y se convierte en una marca de tiempo de Unix.
evento read_only_udm.metadata.product_event_type El valor se toma del campo "event" del registro sin procesar.
host read_only_udm.principal.hostname El valor se toma del campo "host" del registro sin procesar.
id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "id" del registro sin procesar.
license_pool:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "license_pool:id" del registro sin procesar.
login_schedule:timezone read_only_udm.target.location.country_or_region El valor se toma del campo "login_schedule:timezone" del registro sin procesar.
old_account:email:address read_only_udm.target.user.email_addresses El valor se toma del campo "old_account:email:address" del registro sin procesar.
old_account:failed_logins read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_account:failed_logins" del registro sin procesar.
old_display_number read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_display_number" del registro sin procesar.
old_login_schedule:timezone read_only_udm.target.location.country_or_region El valor se toma del campo "old_login_schedule:timezone" del registro sin procesar.
old_permissions:api:reporting read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:api:reporting" del registro sin procesar.
old_permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:jump_item_role:default:id" del registro sin procesar.
old_permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:jump_item_role:default:name" del registro sin procesar.
old_permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:jump_item_role:teams:id" del registro sin procesar.
old_permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:jump_item_role:teams:name" del registro sin procesar.
old_permissions:presentations:control:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:presentations:control:status" del registro sin procesar.
old_permissions:public_sites:templates:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:public_sites:templates:status" del registro sin procesar.
old_permissions:reporting:presentation_reports read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:reporting:presentation_reports" del registro sin procesar.
old_permissions:reporting:support_reports read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:reporting:support_reports" del registro sin procesar.
old_permissions:reporting:vault_reports read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:reporting:vault_reports" del registro sin procesar.
old_permissions:support read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support" del registro sin procesar.
old_permissions:support:accept_team_sessions:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:accept_team_sessions:status" del registro sin procesar.
old_permissions:support:bomgar_button:change_public_sites:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:bomgar_button:change_public_sites:status" del registro sin procesar.
old_permissions:support:bomgar_button:personal:deploy:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:bomgar_button:personal:deploy:status" del registro sin procesar.
old_permissions:support:bomgar_button:team:manage read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:bomgar_button:team:manage" del registro sin procesar.
old_permissions:support:bomgar_button:team:manage:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:bomgar_button:team:manage:status" del registro sin procesar.
old_permissions:support:ios_content read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:ios_content" del registro sin procesar.
old_permissions:support:jump:local read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:jump:local" del registro sin procesar.
old_permissions:support:jump:local:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:jump:local:status" del registro sin procesar.
old_permissions:support:jump:remote read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:jump:remote" del registro sin procesar.
old_permissions:support:jump:remote:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:jump:remote:status" del registro sin procesar.
old_permissions:support:rdp:local read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:rdp:local" del registro sin procesar.
old_permissions:support:rdp:local:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:rdp:local:status" del registro sin procesar.
old_permissions:support:rdp:remote read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:rdp:remote" del registro sin procesar.
old_permissions:support:rdp:remote:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:rdp:remote:status" del registro sin procesar.
old_permissions:support:session_assignment:idle_timeout read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:session_assignment:idle_timeout" del registro sin procesar.
old_permissions:support:session_assignment:idle_timeout:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:session_assignment:idle_timeout:status" del registro sin procesar.
old_permissions:support:session_assignment:session_limit read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:session_assignment:session_limit" del registro sin procesar.
old_permissions:support:session_assignment:session_limit:status=forbid_override read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:session_assignment:session_limit:status=forbid_override" del registro sin procesar.
old_permissions:support:session_keys read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:session_keys" del registro sin procesar.
old_permissions:support:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:status" del registro sin procesar.
old_permissions:support:team_share read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:team_share" del registro sin procesar.
old_permissions:support:team_transfer read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:team_transfer" del registro sin procesar.
old_permissions:support:vnc:local read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:vnc:local" del registro sin procesar.
old_permissions:support:vnc:local:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:vnc:local:status" del registro sin procesar.
old_permissions:support:vnc:remote read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:vnc:remote" del registro sin procesar.
old_permissions:support:vnc:remote:status read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_permissions:support:vnc:remote:status" del registro sin procesar.
old_private_display_name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_private_display_name" del registro sin procesar.
old_provider:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_provider:id" del registro sin procesar.
old_provider:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "old_provider:name" del registro sin procesar.
permissions:jump_item_role:default:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "permissions:jump_item_role:default:id" del registro sin procesar.
permissions:jump_item_role:default:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "permissions:jump_item_role:default:name" del registro sin procesar.
permissions:jump_item_role:teams:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "permissions:jump_item_role:teams:id" del registro sin procesar.
permissions:jump_item_role:teams:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "permissions:jump_item_role:teams:name" del registro sin procesar.
provider:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "provider:id" del registro sin procesar.
provider:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "provider:name" del registro sin procesar.
reason read_only_udm.security_result.description El valor se toma del campo "reason" del registro sin procesar y se añade al campo de descripción con el prefijo " - Reason:".
sEventID read_only_udm.metadata.product_event_type El valor se toma del campo "sEventID" del registro sin procesar.
sIpAddress read_only_udm.principal.ip El valor se toma del campo "sIpAddress" del registro sin procesar.
sLoginName read_only_udm.principal.user.userid El valor se analiza a partir del campo "sLoginName" del registro sin procesar. Si el campo contiene un dominio, se extrae y se asigna a read_only_udm.principal.namespace.
sMessage read_only_udm.security_result.description El valor se toma del campo "sMessage" del registro sin procesar. El analizador extrae el texto entre comillas y lo asigna al campo de descripción.
sOriginatingAccount read_only_udm.principal.user.userid El valor se analiza a partir del campo "sOriginatingAccount" del registro sin procesar. Si el campo contiene un dominio, se extrae y se asigna a read_only_udm.principal.namespace.
sOriginatingApplicationComponent read_only_udm.principal.application El valor se toma del campo "sOriginatingApplicationComponent" del registro sin procesar y se añade al campo de aplicación entre paréntesis después del valor de sOriginatingApplicationName.
sOriginatingApplicationName read_only_udm.principal.application El valor se toma del campo "sOriginatingApplicationName" del registro sin procesar.
sOriginatingSystem read_only_udm.principal.hostname El valor se toma del campo "sOriginatingSystem" del registro sin procesar.
session_policy:id read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "session_policy:id" del registro sin procesar.
session_policy:name read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "session_policy:name" del registro sin procesar.
session_policy:purpose read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "session_policy:purpose" del registro sin procesar.
sitio web read_only_udm.target.hostname El valor se toma del campo "site" del registro sin procesar.
status read_only_udm.security_result.summary El valor se toma del campo "status" del registro sin procesar y se añade al campo de resumen.
support:jump:local read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:jump:local" del registro sin procesar.
support:permissions:allow_pinned_clients read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:allow_pinned_clients" del registro sin procesar.
support:permissions:allow_users read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:allow_users" del registro sin procesar.
support:permissions:canned_scripts read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:canned_scripts" del registro sin procesar.
support:permissions:chat read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:chat" del registro sin procesar.
support:permissions:chat:push_url read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:chat:push_url" del registro sin procesar.
support:permissions:chat:send_file read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:chat:send_file" del registro sin procesar.
support:permissions:command_shell read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:command_shell" del registro sin procesar.
support:permissions:deploy_callback_button read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:deploy_callback_button" del registro sin procesar.
support:permissions:elevation read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:elevation" del registro sin procesar.
support:permissions:file_transfers:cust read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:file_transfers:cust" del registro sin procesar.
support:permissions:file_transfers:download read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:file_transfers:download" del registro sin procesar.
support:permissions:file_transfers:rep read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:file_transfers:rep" del registro sin procesar.
support:permissions:file_transfers:upload read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:file_transfers:upload" del registro sin procesar.
support:permissions:registry_access read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:registry_access" del registro sin procesar.
support:permissions:request_pin_unpin read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:request_pin_unpin" del registro sin procesar.
support:permissions:screen_sharing read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing" del registro sin procesar.
support:permissions:screen_sharing:allow_elevated_tools read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:allow_elevated_tools" del registro sin procesar.
support:permissions:screen_sharing:annotations read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:annotations" del registro sin procesar.
support:permissions:screen_sharing:application_restriction read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:application_restriction" del registro sin procesar.
support:permissions:screen_sharing:application_sharing read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:application_sharing" del registro sin procesar.
support:permissions:screen_sharing:clipboard_direction read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:clipboard_direction" del registro sin procesar.
support:permissions:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:cobrowse" del registro sin procesar.
support:permissions:screen_sharing:privacy_mode read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:privacy_mode" del registro sin procesar.
support:permissions:screen_sharing:show_screen read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:screen_sharing:show_screen" del registro sin procesar.
support:permissions:system_info read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:system_info" del registro sin procesar.
support:permissions:system_info:actions read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:permissions:system_info:actions" del registro sin procesar.
support:prompting:command_shell read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:command_shell" del registro sin procesar.
support:prompting:default read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:default" del registro sin procesar.
support:prompting:deploy_callback_button read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:deploy_callback_button" del registro sin procesar.
support:prompting:elevate read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:elevate" del registro sin procesar.
support:prompting:file_transfer read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:file_transfer" del registro sin procesar.
support:prompting:registry read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:registry" del registro sin procesar.
support:prompting:screen_sharing:cobrowse read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:screen_sharing:cobrowse" del registro sin procesar.
support:prompting:screen_sharing:full_access read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "support:prompting:screen_sharing:full_access" del registro sin procesar.
target read_only_udm.target.application El valor se toma del campo "target" del registro sin procesar. El analizador sustituye "rep_client" por "Representative Console" y "web/login" por "Web/Login".
two_factor_auth:app read_only_udm.principal.user.attribute.labels.value El valor se toma del campo "two_factor_auth:app" del registro sin procesar.
cuando read_only_udm.metadata.product_log_id El valor se toma del campo "when" del registro sin procesar.
cuando read_only_udm.metadata.event_timestamp.seconds El valor se analiza a partir del campo "when" del registro sin procesar y se convierte en una marca de tiempo de Unix.
quién read_only_udm.principal.user.userid El valor se analiza a partir del campo "who" del registro sin procesar. El analizador extrae el texto entre paréntesis.
quién read_only_udm.principal.user.user_display_name El valor se analiza a partir del campo "who" del registro sin procesar. El analizador extrae el texto que hay antes de los paréntesis.
who_ip read_only_udm.principal.ip El valor se toma del campo "who_ip" del registro sin procesar.
read_only_udm.metadata.vendor_name El analizador asigna el valor "BeyondTrust".
read_only_udm.metadata.product_name El analizador asigna el valor "BeyondTrust Remote Support".
read_only_udm.metadata.log_type El analizador asigna el valor "BOMGAR".
read_only_udm.extensions.auth.type El valor se asigna a "MACHINE" si el destino es "rep_client", a "SSO" si el destino es "web/login" y a "AUTHTYPE_UNSPECIFIED" en los demás casos por el analizador.
read_only_udm.extensions.auth.mechanism El valor es "USERNAME_PASSWORD" si el método es "using password", "REMOTE" si el método es "using elevate" y se deja vacío en los demás casos.
read_only_udm.security_result.action El valor es "ALLOW" si el estado no es "failure", el motivo no es "failed" o "user not found" y sMessage no contiene "failed login to web app". De lo contrario, el analizador asigna el valor "BLOCK".
read_only_udm.security_result.summary El valor se asigna a "Inicio de sesión del usuario " o "Cierre de sesión del usuario " en función de eventName, seguido del estado si el analizador no lo deja vacío.
read_only_udm.security_result.description El valor es "User " seguido del ID de usuario, la dirección IP, el estado, el nombre del evento, el conector ("to" para el inicio de sesión y "from" para el cierre de sesión), el destino y el método. Si el motivo no está vacío y no es "failed", el analizador lo añade a la descripción con el prefijo " - Motivo:".

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.