Recopila registros de actividad de Duo
En este documento, se describe cómo exportar registros de actividad de Duo y transferirlos a Google Security Operations mediante la implementación de la secuencia de comandos de transferencia escrita en Python como una función de Cloud Run y cómo los campos de registro se asignan a los campos del modelo de datos unificados (UDM) de Google SecOps.
Para obtener más información, consulta la descripción general de la transferencia de datos a Google SecOps.
Una implementación típica consiste en la actividad de Duo y la secuencia de comandos de transferencia implementada como funciones de Cloud Run para enviar registros a Google SecOps. Cada implementación de cliente puede diferir y ser más compleja.
La implementación contiene los siguientes componentes:
Actividad de Duo: Es la plataforma desde la que recopilas registros.
Funciones de Cloud Run: La secuencia de comandos de transferencia se implementa como funciones de Cloud Run para recuperar registros de la actividad de Duo y transferirlos a Google SecOps.
Google SecOps: Retiene y analiza los registros.
Nota: Una etiqueta de transferencia identifica al analizador que normaliza los datos de registro sin procesar al formato estructurado del UDM. La información de este documento se aplica al analizador con la etiqueta de transferencia DUO_ACTIVITY
.
Antes de comenzar
- Asegúrate de tener acceso al panel de Duo Admin.
- Asegúrate de usar la versión 2 de la API de Duo Admin o una posterior.
Cómo configurar la actividad de Duo
- Accede al panel de administración de Duo como administrador. Para obtener más información, consulta la descripción general del panel de administración de Duo Administration.
- Haz clic en Aplicaciones > Proteger una aplicación.
- En la lista de aplicaciones, haz clic en API de Admin > Proteger para obtener tu clave de integración, clave secreta y nombre de host de la API.
- Selecciona los permisos necesarios que deseas otorgar a la aplicación de la API de Admin. Para obtener más información sobre los permisos necesarios para las operaciones correspondientes, consulta la API de Duo Admin.
Configura la transferencia de registros para Google SecOps
- Crea un directorio de implementación para almacenar los archivos de las funciones de Cloud Run. Este directorio contendrá todos los archivos necesarios para la implementación.
- Copia todos los archivos del subdirectorio de GitHub de Duo Activity que se encuentra en el repositorio de GitHub de Google SecOps a este directorio de implementación.
- Copia la carpeta común y todo su contenido en el directorio de implementación.
- Edita el archivo
.env.yml
para agregar todas las variables de entorno necesarias. - Configura las variables de entorno marcadas como Secreto en Secret Manager. Para obtener más información sobre cómo crear secretos, consulta Crea y accede a secretos.
- Usa el nombre del recurso del secreto como valor de las variables de entorno.
- Ingresa el valor
DUO_ACTIVITY
en la variable de entorno CHRONICLE_NAMESPACE. - En el campo Código fuente, selecciona Carga de ZIP.
- En el campo Bucket de destino, haz clic en Explorar para seleccionar un bucket de Cloud Storage al que subirás tu código fuente como parte de la implementación.
- En el campo Archivo ZIP, haz clic en Explorar para seleccionar un archivo ZIP para subirlo desde tu sistema de archivos local. Los archivos fuente de tu función deben estar ubicados en la raíz del archivo ZIP.
- Haz clic en Implementar.
Para obtener más información, consulta Cómo usar secuencias de comandos de transferencia implementadas como funciones de Cloud Run.
Referencia de la asignación de campos
Referencia de asignación de campos: identificador de evento a tipo de evento
En la siguiente tabla, se enumeran los tipos de registro deDUO_ACTIVITY
y sus correspondientes tipos de eventos de la AUA.
Event Identifier | Event Type | Security Category |
---|---|---|
admin_activate_duo_push |
DEVICE_PROGRAM_DOWNLOAD |
|
admin_factor_restrictions |
RESOURCE_PERMISSIONS_CHANGE |
|
admin_login |
USER_UNCATEGORIZED |
|
admin_rectivates_duo_push |
DEVICE_PROGRAM_DOWNLOAD |
|
admin_reset_password |
USER_CHANGE_PASSWORD |
|
admin_send_reset_password_email |
EMAIL_TRANSACTION |
|
bypass_create |
RESOURCE_CREATION |
|
bypass_delete |
RESOURCE_DELETION |
|
bypass_view |
RESOURCE_READ |
|
deregister_devices |
USER_RESOURCE_DELETION |
|
device_change_enrollment_summary_notification_answered |
USER_COMMUNICATION |
|
device_change_enrollment_summary_notification_answered_notify_admin |
USER_COMMUNICATION |
|
device_change_enrollment_summary_notification_send |
USER_COMMUNICATION |
|
device_change_notification_answered |
USER_COMMUNICATION |
|
device_change_notification_answered_notify_admin |
USER_COMMUNICATION |
|
device_change_notification_create |
RESOURCE_CREATION |
|
device_change_notification_send |
USER_COMMUNICATION |
|
group_create |
GROUP_CREATION |
|
group_delete |
GROUP_DELETION |
|
group_update |
GROUP_MODIFICATION |
|
hardtoken_create |
RESOURCE_CREATION |
|
hardtoken_delete |
RESOURCE_DELETION |
|
hardtoken_resync |
RESOURCE_WRITTEN |
|
hardtoken_update |
RESOURCE_WRITTEN |
|
integration_create |
RESOURCE_CREATION |
|
integration_delete |
RESOURCE_DELETION |
|
integration_group_policy_add |
GROUP_UNCATEGORIZED |
|
integration_group_policy_remove |
GROUP_UNCATEGORIZED |
|
integration_policy_assign |
USER_UNCATEGORIZED |
|
integration_policy_unassign |
USER_UNCATEGORIZED |
|
integration_skey_bulk_view |
RESOURCE_READ |
|
integration_skey_view |
RESOURCE_READ |
|
integration_update |
RESOURCE_WRITTEN |
|
log_export_start |
USER_UNCATEGORIZED |
|
log_export_complete |
USER_UNCATEGORIZED |
|
log_export_failure |
USER_UNCATEGORIZED |
|
management_system_activate_device_cache |
DEVICE_CONFIG_UPDATE |
|
management_system_active_device_cache_add_devices |
RESOURCE_CREATION |
|
management_system_active_device_cache_delete_devices |
RESOURCE_DELETION |
|
management_system_active_device_cache_edit_devices |
RESOURCE_WRITTEN |
|
management_system_add_devices |
RESOURCE_CREATION |
|
management_system_create |
RESOURCE_CREATION |
|
management_system_delete |
RESOURCE_DELETION |
|
management_system_delete_devices |
RESOURCE_DELETION |
|
management_system_device_cache_add_devices |
RESOURCE_CREATION |
|
management_system_device_cache_create |
RESOURCE_CREATION |
|
management_system_device_cache_delete |
RESOURCE_DELETION |
|
management_system_device_cache_delete_devices |
RESOURCE_DELETION |
|
management_system_download_device_api_script |
DEVICE_PROGRAM_DOWNLOAD |
|
management_system_pkcs12_enrollment |
RESOURCE_CREATION |
|
management_system_sync_failure |
USER_UNCATEGORIZED |
|
management_system_sync_success |
USER_UNCATEGORIZED |
|
management_system_update |
USER_UNCATEGORIZED |
|
management_system_view_password |
RESOURCE_READ |
|
management_system_view_token |
RESOURCE_READ |
|
phone_activation_code_regenerated |
RESOURCE_CREATION |
|
phone_associate |
RESOURCE_CREATION |
|
phone_create |
RESOURCE_CREATION |
|
phone_delete |
RESOURCE_DELETION |
|
phone_disassociate |
RESOURCE_DELETION |
|
phone_new_sms_passcode |
RESOURCE_CREATION |
|
phone_update |
RESOURCE_WRITTEN |
|
policy_create |
RESOURCE_CREATION |
|
policy_delete |
RESOURCE_DELETION |
|
policy_update |
RESOURCE_WRITTEN |
|
u2ftoken_create |
RESOURCE_CREATION |
|
u2ftoken_delete |
RESOURCE_DELETION |
|
user_not_enrolled_lockout |
USER_CHANGE_PERMISSIONS |
|
user_adminapi_lockout |
USER_CHANGE_PERMISSIONS |
|
user_lockout_cleared |
USER_CHANGE_PERMISSIONS |
|
webauthncredential_create |
RESOURCE_CREATION |
|
webauthncredential_delete |
RESOURCE_DELETION |
|
webauthncredential_rename |
RESOURCE_WRITTEN |
|
Referencia de asignación de campos: DUO_ACTIVITY
En la siguiente tabla, se enumeran los campos de registro del tipo de registro DUO_ACTIVITY
y sus campos de UDM correspondientes.
Log field | UDM mapping | Logic |
---|---|---|
|
principal.platform |
If the access_device.os log field value matches the regular expression pattern (?i)Win , then the principal.platform UDM field is set to WINDOWS .Else, if the access_device.os log field value matches the regular expression pattern (?i)Lin , then the principal.platform UDM field is set to LINUX .Else, if the access_device.os log field value matches the regular expression pattern (?i)Mac , then the principal.platform UDM field is set to MAC .Else, if the access_device.os log field value matches the regular expression pattern (?i)ios , then the principal.platform UDM field is set to IOS .Else, if the access_device.os log field value matches the regular expression pattern (?i)Chrome , then the principal.platform UDM field is set to CHROME_OS .Else, if the access_device.os log field value matches the regular expression pattern (?i)Android , then the principal.platform UDM field is set to ANDROID .Else, the principal.platform UDM field is set to UNKNOWN_PLATFORM . |
access_device.os_version |
principal.platform_version |
|
access_device.ip.address |
principal.ip |
|
access_device.location.country |
principal.location.country_or_region |
|
access_device.location.state |
principal.location.state |
|
access_device.location.city |
principal.location.city |
|
access_device.browser |
principal.asset.attribute.labels[access_device_browser] |
|
access_device.browser_version |
principal.asset.attribute.labels[access_device_browser_version] |
|
ts |
metadata.event_timestamp |
|
activity_id |
metadata.product_log_id |
|
akey |
principal.asset.product_object_id |
|
outcome.result |
security_result.action_details |
|
application.key |
principal.resource.product_object_id |
|
application.name |
principal.application |
|
application.type |
principal.resource.resource_subtype |
|
action.details |
principal.user.attribute.labels[action_details] |
|
action.name |
metadata.product_event_type |
|
actor.key |
principal.user.userid |
|
actor.name |
principal.user.user_display_name |
|
actor.type |
principal.user.attribute.labels[actor_type] |
|
target.key |
target.asset.attribute.labels[target_key] |
|
target.name |
target.asset.hostname |
|
target.type |
target.asset.category |
|
target.details |
target.user.attribute.labels[target_details] |
|
old_target.key |
about.asset.attribute.labels[old_target_key] |
|
old_target.name |
about.asset.hostname |
|
old_target.type |
about.asset.category |
|
old_target.details |
about.user.attribute.labels[old_target_details] |
|
actor.details.created |
principal.user.first_seen_time |
|
actor.details.last_login |
principal.user.last_login_time |
|
actor.details.status |
principal.user.attribute.labels[status] |
|
actor.details.email |
principal.user.email_addresses |
|
actor.details.group.key |
principal.user.attribute.labels[actor_details_group_key] |
|
actor.details.group.name |
principal.user.attribute.labels[actor_details_group_name] |
¿Qué sigue?
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.