Recopilar registros de asistencia remota de BeyondTrust
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
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instalar el agente de Bindplane
- 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
- 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
- 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
- Accede al equipo en el que está instalado Bindplane.
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
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
- Inicia sesión en tu cuenta de asistencia remota de BeyondTrust.
- Ve a Seguridad > Administración de dispositivos.
- 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).
- 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.