Recopila registros de Microsoft Azure AD

Compatible con:

En este documento, se describe cómo puedes recopilar registros de Microsoft Azure Active Directory (AD) configurando un feed de Google Security Operations.

Azure Active Directory (AZURE_AD) ahora se llama Microsoft Entra ID. Los registros de auditoría de Azure AD (AZURE_AD_AUDIT) ahora son registros de auditoría de Microsoft Entra ID.

Para obtener más información, consulta Transferencia de datos a Google Security Operations.

Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar al formato estructurado del UDM.

Antes de comenzar

Para completar las tareas de esta página, asegúrate de tener lo siguiente:

  • Una suscripción a Azure a la que puedas acceder.
  • Un rol de administrador global o de administrador de Azure AD
  • Un Azure AD (usuario) en Azure.

Configura Azure AD

  1. Accede al portal de Azure.
  2. Ve a Página principal > Registro de apps, selecciona una app registrada o regístrala si aún no lo hiciste.
  3. Para registrar una aplicación, en la sección Registro de apps, haz clic en Nuevo registro.
  4. En el campo Nombre, proporciona el nombre visible de tu aplicación.
  5. En la sección Tipos de cuentas compatibles, selecciona la opción requerida para especificar quién puede usar la aplicación o acceder a la API.
  6. Haz clic en Register.
  7. Ve a la página Descripción general y copia el ID de la aplicación (cliente) y el ID del directorio (arrendatario), que son necesarios para configurar el feed de Google Security Operations.
  8. Haz clic en Permisos de la API.
  9. Haz clic en Agregar un permiso y, luego, selecciona Microsoft Graph en el panel nuevo.
  10. Haz clic en Permisos de la aplicación.
  11. Selecciona los permisos AuditLog.Read.All, Directory.Read.All y SecurityEvents.Read.All. Asegúrate de que los permisos sean permisos de la aplicación y no permisos delegados.
  12. Haz clic en Otorgar consentimiento de administrador para el directorio predeterminado. Las aplicaciones están autorizadas para llamar a las APIs cuando los usuarios o administradores les otorgan permisos como parte del proceso de consentimiento.
  13. Ve a Configuración > Administrar.
  14. Haz clic en Certificados y secretos.
  15. Haz clic en Nuevo secreto de cliente. En el campo Valor, aparece el secreto del cliente.
  16. Copia el valor del secreto del cliente. El valor se muestra solo en el momento de la creación y es obligatorio para el registro de la app de Azure y para configurar el feed de Google Security Operations.

Configura un feed en Google Security Operations para transferir registros de Azure AD

  1. Selecciona Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. Ingresa un nombre único para el Nombre del feed.
  4. Selecciona API de terceros como el Tipo de origen.
  5. Selecciona Azure AD como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Configura los siguientes parámetros de entrada obligatorios:
    • ID de cliente de OAUTH: Especifica el ID de cliente que obtuviste antes.
    • Secreto de cliente de OAUTH: Especifica el secreto de cliente que obtuviste antes.
    • ID de inquilino: Especifica el ID de inquilino que obtuviste antes.
  8. Haz clic en Siguiente y, luego, en Enviar.

Para obtener más información sobre los feeds de Google Security Operations, consulta la documentación de los feeds de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de feed, consulta Configuración de feeds por tipo. Si tienes problemas para crear feeds, comunícate con el equipo de asistencia de Google Security Operations.

Referencia de la asignación de campos

Este código del analizador transforma los registros sin procesar de Azure AD en formato JSON en un modelo de datos unificado (UDM). Primero, normaliza los datos quitando los campos innecesarios y, luego, extrae información relevante, como detalles del usuario, marcas de tiempo y detalles del evento, y los asigna a los campos de la UDM correspondientes para obtener una representación y un análisis coherentes.

Tabla de asignación de la UDM

Campo de registro Asignación de UDM Lógica
activityDateTime read_only_udm.metadata.event_timestamp.seconds El valor se extrae del campo activityDateTime y se convierte en segundos desde la época.
activityDisplayName read_only_udm.security_result.summary El valor se asigna directamente desde el campo activityDisplayName.
additionalDetails.0.value read_only_udm.network.http.user_agent El valor se asigna directamente desde el campo additionalDetails.0.value.
additionalDetails.1.key read_only_udm.target.resource.attribute.labels.key El valor se asigna directamente desde el campo additionalDetails.1.key.
additionalDetails.1.value read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo additionalDetails.1.value.
am_category read_only_udm.metadata.description El valor se asigna directamente desde el campo am_category.
am_tenantId read_only_udm.metadata.product_deployment_id El valor se asigna directamente desde el campo am_tenantId.
appDisplayName read_only_udm.target.application El valor se asigna directamente desde el campo appDisplayName. Si appDisplayName está vacío, el valor se toma de resourceDisplayName.
appId read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo appId.
appliedConditionalAccessPolicies.displayName read_only_udm.about.user.user_display_name El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.displayName.
appliedConditionalAccessPolicies.enforcedGrantControls read_only_udm.security_result.rule_labels.value El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.enforcedGrantControls.
appliedConditionalAccessPolicies.enforcedSessionControls read_only_udm.security_result.rule_labels.value El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.enforcedSessionControls.
appliedConditionalAccessPolicies.id read_only_udm.about.user.userid El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.id.
appliedConditionalAccessPolicies.result read_only_udm.about.labels.value El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.result.
authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo authenticationDetails.authenticationMethod.
authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo authenticationDetails.authenticationMethodDetail.
authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo authenticationDetails.authenticationStepDateTime.
authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo authenticationDetails.authenticationStepRequirement.
authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo authenticationDetails.authenticationStepResultDetail.
authenticationProcessingDetails.key read_only_udm.additional.fields.key El valor se asigna directamente desde el campo authenticationProcessingDetails.key, con el prefijo "authenticationProcessingDetails - ".
authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo authenticationProcessingDetails.value.
callerIpAddress read_only_udm.principal.ip El valor se asigna directamente desde el campo callerIpAddress.
callerIpAddress read_only_udm.principal.asset.ip El valor se asigna directamente desde el campo callerIpAddress.
category read_only_udm.metadata.description El valor se asigna directamente desde el campo category.
clientAppUsed read_only_udm.principal.application El valor se asigna directamente desde el campo clientAppUsed.
conditionalAccessStatus read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo conditionalAccessStatus.
correlationId read_only_udm.network.session_id El valor se asigna directamente desde el campo correlationId.
correlationId read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo correlationId.
createdDateTime read_only_udm.metadata.event_timestamp.seconds El valor se extrae del campo createdDateTime y se convierte en segundos desde la época.
deviceDetail.browser read_only_udm.network.http.user_agent El valor se asigna directamente desde el campo deviceDetail.browser.
deviceDetail.deviceId read_only_udm.principal.asset.asset_id El valor se asigna directamente desde el campo deviceDetail.deviceId, con el prefijo "Device ID:".
deviceDetail.deviceId read_only_udm.principal.asset_id El valor se asigna directamente desde el campo deviceDetail.deviceId, con el prefijo "Device ID:".
deviceDetail.displayName read_only_udm.principal.asset.hostname El valor se asigna directamente desde el campo deviceDetail.displayName.
deviceDetail.isCompliant read_only_udm.principal.asset.attribute.labels.value El valor se asigna directamente desde el campo deviceDetail.isCompliant.
deviceDetail.isManaged read_only_udm.principal.asset.attribute.labels.value El valor se asigna directamente desde el campo deviceDetail.isManaged.
deviceDetail.operatingSystem read_only_udm.principal.platform_version El valor se asigna directamente desde el campo deviceDetail.operatingSystem.
deviceDetail.trustType read_only_udm.principal.asset.attribute.labels.value El valor se asigna directamente desde el campo deviceDetail.trustType.
durationMs read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo durationMs.
errorCode read_only_udm.security_result.rule_id El valor se asigna directamente desde el campo errorCode.
nivel empresarial read_only_udm.target.user.user_display_name El valor se asigna directamente desde el campo identity si es diferente de userId y no coincide con un patrón de dirección de correo electrónico.
initiatedBy.user.displayName read_only_udm.principal.user.user_display_name El valor se asigna directamente desde el campo initiatedBy.user.displayName.
initiatedBy.user.id read_only_udm.principal.user.userid El valor se asigna directamente desde el campo initiatedBy.user.id.
initiatedBy.user.ipAddress read_only_udm.principal.ip El valor se asigna directamente desde el campo initiatedBy.user.ipAddress.
initiatedBy.user.ipAddress read_only_udm.principal.asset.ip El valor se asigna directamente desde el campo initiatedBy.user.ipAddress.
initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses El valor se asigna directamente desde el campo initiatedBy.user.userPrincipalName si coincide con un patrón de dirección de correo electrónico.
ipAddress read_only_udm.principal.ip El valor se extrae del campo ipAddress con un patrón grok para extraer la dirección IP.
ipAddress read_only_udm.principal.asset.ip El valor se extrae del campo ipAddress con un patrón grok para extraer la dirección IP.
isInteractive read_only_udm.extensions.auth.mechanism El valor se asigna a "INTERACTIVE" si isInteractive es "true", de lo contrario, se asigna a "MECHANISM_OTHER".
isInteractive read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo isInteractive.
level read_only_udm.security_result.severity El valor se asigna desde el campo level según la siguiente lógica: * "Information", "Informational", "0" y "4" se asignan a "INFORMATIONAL". * "Advertencia", "1" y "3" se asignan a "MEDIANO". * “Error” y “2” se asignan a “ERROR”. * “Crítico”, “CRITICAL” y “critical” se asignan a “CRITICAL”.
level read_only_udm.security_result.severity_details El valor se asigna directamente desde el campo level.
location.city read_only_udm.principal.location.city El valor se asigna directamente desde el campo location.city.
location.countryOrRegion read_only_udm.principal.location.country_or_region El valor se asigna directamente desde el campo location.countryOrRegion.
location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude El valor se asigna directamente desde el campo location.geoCoordinates.latitude y se convierte en un número de punto flotante.
location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude El valor se asigna directamente desde el campo location.geoCoordinates.latitude y se convierte en un número de punto flotante.
location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude El valor se asigna directamente desde el campo location.geoCoordinates.longitude y se convierte en un número de punto flotante.
location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude El valor se asigna directamente desde el campo location.geoCoordinates.longitude y se convierte en un número de punto flotante.
location.state read_only_udm.principal.location.state El valor se asigna directamente desde el campo location.state.
networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value Para generar el valor, se concatenan todos los valores del array networkLocationDetails.networkNames, separados por comas.
networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo networkLocationDetails.networkType.
networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo networkLocationDetails.networkType.
operationName read_only_udm.metadata.event_type El valor se asigna a "USER_LOGIN" si operationName es "Actividad de acceso", a "USER_CHANGE_PERMISSIONS" si operationName es "Agregar miembro al grupo" y a "USER_RESOURCE_UPDATE_PERMISSIONS" si operationName es "Agregar asignación de roles de app al principal de servicio". De lo contrario, el valor se determina en función de la presencia de otros campos: * "USER_LOGIN" si has_target_user es "true". * "USER_UNCATEGORIZED" si has_principal_user es "true". * "STATUS_UPDATE" si has_principal es "true". * "GENERIC_EVENT" de lo contrario.
operationType read_only_udm.security_result.action_details El valor se asigna directamente desde el campo operationType.
properties.activity read_only_udm.security_result.summary El valor se asigna directamente desde el campo properties.activity.
properties.activityDateTime read_only_udm.metadata.event_timestamp.seconds El valor se extrae del campo properties.activityDateTime y se convierte en segundos desde la época.
properties.additionalInfo read_only_udm.network.http.user_agent El valor se extrae del campo properties.additionalInfo a través del análisis de la cadena JSON y la extracción del valor correspondiente a la clave "userAgent".
properties.additionalInfo read_only_udm.target.url El valor se extrae del campo properties.additionalInfo a través del análisis de la cadena JSON y la extracción del valor correspondiente a la clave "alertUrl".
properties.appId read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo properties.appId.
properties.appDisplayName read_only_udm.target.application El valor se asigna directamente desde el campo properties.appDisplayName.
properties.appliedConditionalAccessPolicies.displayName read_only_udm.security_result.rule_name El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.displayName.
properties.appliedConditionalAccessPolicies.id read_only_udm.security_result.rule_id El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.id.
properties.appliedConditionalAccessPolicies.result read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.result.
properties.authenticationDetails.authenticationMethod read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationMethod.
properties.authenticationDetails.authenticationMethodDetail read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationMethodDetail.
properties.authenticationDetails.authenticationStepDateTime read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepDateTime.
properties.authenticationDetails.authenticationStepRequirement read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepRequirement.
properties.authenticationDetails.authenticationStepResultDetail read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepResultDetail.
properties.authenticationProcessingDetails.key read_only_udm.additional.fields.key El valor se asigna directamente desde el campo properties.authenticationProcessingDetails.key, con el prefijo "properties authenticationProcessingDetails - ".
properties.authenticationProcessingDetails.value read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.authenticationProcessingDetails.value.
properties.authenticationRequirement read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.authenticationRequirement.
properties.authenticationRequirementPolicies.detail read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationRequirementPolicies.detail.
properties.authenticationRequirementPolicies.requirementProvider read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.authenticationRequirementPolicies.requirementProvider.
properties.clientAppUsed read_only_udm.principal.application El valor se asigna directamente desde el campo properties.clientAppUsed.
properties.conditionalAccessStatus read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.conditionalAccessStatus.
properties.createdDateTime read_only_udm.metadata.event_timestamp.seconds El valor se extrae del campo properties.createdDateTime y se convierte a segundos desde la época.
properties.crossTenantAccessType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.crossTenantAccessType.
properties.detectedDateTime read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.detectedDateTime.
properties.detectionTimingType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.detectionTimingType.
properties.homeTenantId read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.homeTenantId.
properties.id read_only_udm.metadata.product_log_id El valor se asigna directamente desde el campo properties.id.
properties.initiatedBy.user.displayName read_only_udm.principal.user.user_display_name El valor se asigna directamente desde el campo properties.initiatedBy.user.displayName.
properties.initiatedBy.user.id read_only_udm.principal.user.windows_sid El valor se asigna directamente desde el campo properties.initiatedBy.user.id.
properties.initiatedBy.user.ipAddress read_only_udm.principal.ip El valor se asigna directamente desde el campo properties.initiatedBy.user.ipAddress.
properties.initiatedBy.user.ipAddress read_only_udm.principal.asset.ip El valor se asigna directamente desde el campo properties.initiatedBy.user.ipAddress.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.userid El valor se asigna directamente desde el campo properties.initiatedBy.user.userPrincipalName si no coincide con un patrón de dirección de correo electrónico.
properties.initiatedBy.user.userPrincipalName read_only_udm.principal.user.email_addresses El valor se asigna directamente desde el campo properties.initiatedBy.user.userPrincipalName si coincide con un patrón de dirección de correo electrónico.
properties.ipAddress read_only_udm.principal.ip El valor se extrae del campo properties.ipAddress con un patrón grok para extraer la dirección IP.
properties.ipAddress read_only_udm.principal.asset.ip El valor se extrae del campo properties.ipAddress con un patrón grok para extraer la dirección IP.
properties.isGuest read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.isGuest.
properties.isDeleted read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.isDeleted.
properties.isProcessing read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.isProcessing.
properties.lastUpdatedDateTime read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.lastUpdatedDateTime.
properties.location.city read_only_udm.principal.location.city El valor se asigna directamente desde el campo properties.location.city.
properties.location.countryOrRegion read_only_udm.principal.location.country_or_region El valor se asigna directamente desde el campo properties.location.countryOrRegion.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_coordinates.latitude El valor se asigna directamente desde el campo properties.location.geoCoordinates.latitude y se convierte en un número de punto flotante.
properties.location.geoCoordinates.latitude read_only_udm.principal.location.region_latitude El valor se asigna directamente desde el campo properties.location.geoCoordinates.latitude y se convierte en un número de punto flotante.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_coordinates.longitude El valor se asigna directamente desde el campo properties.location.geoCoordinates.longitude y se convierte en un número de punto flotante.
properties.location.geoCoordinates.longitude read_only_udm.principal.location.region_longitude El valor se asigna directamente desde el campo properties.location.geoCoordinates.longitude y se convierte en un número de punto flotante.
properties.location.state read_only_udm.principal.location.state El valor se asigna directamente desde el campo properties.location.state.
properties.networkLocationDetails.networkNames read_only_udm.additional.fields.value.string_value Para generar el valor, se concatenan todos los valores del array properties.networkLocationDetails.networkNames, separados por comas.
properties.networkLocationDetails.networkType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.networkLocationDetails.networkType.
properties.networkLocationDetails.networkType read_only_udm.security_result.detection_fields.value El valor se asigna directamente desde el campo properties.networkLocationDetails.networkType.
properties.resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo properties.resourceServicePrincipalId.
properties.riskDetail read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskDetail.
properties.riskEventType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskEventType.
properties.riskLastUpdatedDateTime read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskLastUpdatedDateTime.
properties.riskLevel read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskLevel.
properties.riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskLevelDuringSignIn.
properties.riskState read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskState.
properties.riskType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.riskType.
properties.source read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.source.
properties.targetResources.0.id read_only_udm.target.user.product_object_id El valor se asigna directamente desde el campo properties.targetResources.0.id.
properties.targetResources.modifiedProperties.0.newValue read_only_udm.target.group.product_object_id El valor se asigna directamente desde el campo properties.targetResources.modifiedProperties.0.newValue.
properties.tokenIssuerType read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo properties.tokenIssuerType.
properties.userAgent read_only_udm.network.http.parsed_user_agent El valor se asigna directamente desde el campo properties.userAgent y se convierte en un objeto de usuario-agente analizado.
properties.userAgent read_only_udm.network.http.user_agent El valor se asigna directamente desde el campo properties.userAgent.
properties.userId read_only_udm.target.user.product_object_id El valor se asigna directamente desde el campo properties.userId.
properties.userPrincipalName read_only_udm.target.user.userid El valor se asigna directamente desde el campo properties.userPrincipalName si no coincide con un patrón de dirección de correo electrónico.
properties.userPrincipalName read_only_udm.target.user.email_addresses El valor se asigna directamente desde el campo properties.userPrincipalName si coincide con un patrón de dirección de correo electrónico.
Resultado read_only_udm.security_result.action El valor se asigna a "ALLOW" si result es "success".
Resultado read_only_udm.security_result.action_details El valor se asigna directamente desde el campo result si result es "success".
resultDescription read_only_udm.security_result.description El valor se asigna directamente desde el campo resultDescription.
resultSignature read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo resultSignature.
resultType read_only_udm.security_result.action El valor se asigna a "ALLOW" si resultType es "0".
resultType read_only_udm.security_result.rule_id El valor se asigna directamente desde el campo resultType si no está vacío ni es "0".
resultType read_only_udm.security_result.summary El valor se asigna a "Se realizó un acceso correcto" si resultType es "0" y a "Se produjo un acceso incorrecto" en caso contrario.
resourceDisplayName read_only_udm.target.application El valor se asigna directamente desde el campo resourceDisplayName.
resourceDisplayName read_only_udm.target.resource.name El valor se asigna directamente desde el campo resourceDisplayName.
resourceId read_only_udm.target.resource.id El valor se asigna directamente desde el campo resourceId.
resourceId read_only_udm.target.resource.product_object_id El valor se asigna directamente desde el campo resourceId.
resourceServicePrincipalId read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo resourceServicePrincipalId.
riskDetail read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo riskDetail.
riskEventTypes read_only_udm.additional.fields.value.string_value El valor se extrae del array riskEventTypes y se asigna a un valor de cadena en el array additional.fields.
riskEventTypes read_only_udm.additional.fields.value.list_value.values.string_value El valor se asigna directamente desde cada elemento del array riskEventTypes.
riskEventTypes_v2 read_only_udm.additional.fields.value.list_value.values.string_value El valor se asigna directamente desde cada elemento del array riskEventTypes_v2.
riskLevelAggregated read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo riskLevelAggregated.
riskLevelDuringSignIn read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo riskLevelDuringSignIn.
riskState read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo riskState.
status.additionalDetails read_only_udm.security_result.description El valor se asigna directamente desde el campo status.additionalDetails.
status.errorCode read_only_udm.security_result.action El valor se asigna a "ALLOW" si status.errorCode es "0".
status.errorCode read_only_udm.security_result.rule_id El valor se asigna directamente desde el campo status.errorCode si no está vacío.
status.errorCode read_only_udm.security_result.summary El valor se asigna a "Se realizó un acceso correcto" si status.errorCode es "0" y a "Se produjo un acceso incorrecto" en caso contrario.
status.failureReason read_only_udm.additional.fields.value.string_value El valor se asigna directamente desde el campo status.failureReason.
targetResources.displayName read_only_udm.target.resource.name El valor se asigna directamente desde el campo targetResources.displayName.
targetResources.id read_only_udm.target.resource.id El valor se asigna directamente desde el campo targetResources.id.
targetResources.id read_only_udm.target.resource.product_object_id El valor se asigna directamente desde el campo targetResources.id.
targetResources.modifiedProperties.displayName read_only_udm.target.resource.attribute.labels.key El valor se asigna directamente desde el campo targetResources.modifiedProperties.displayName.
targetResources.modifiedProperties.newValue read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo targetResources.modifiedProperties.newValue después de quitar las comillas dobles.
targetResources.modifiedProperties.oldValue read_only_udm.target.resource.attribute.labels.value El valor se asigna directamente desde el campo targetResources.modifiedProperties.oldValue.
targetResources.type read_only_udm.target.resource.type El valor se asigna directamente desde el campo targetResources.type.
targetResources.userPrincipalName read_only_udm.target.user.user_display_name El valor se asigna directamente desde el campo targetResources.userPrincipalName.
tenantId read_only_udm.metadata.product_deployment_id El valor se asigna directamente desde el campo tenantId.
hora read_only_udm.metadata.event_timestamp.seconds El valor se extrae del campo time y se convierte en segundos desde la época.
userAgent read_only_udm.network.http.parsed_user_agent El valor se asigna directamente desde el campo userAgent y se convierte en un objeto de usuario-agente analizado.
userAgent read_only_udm.network.http.user_agent El valor se asigna directamente desde el campo userAgent.
userDisplayName read_only_udm.target.user.user_display_name El valor se asigna directamente desde el campo userDisplayName si es diferente de userId y no coincide con un patrón de dirección de correo electrónico.
userPrincipalName read_only_udm.principal.administrative_domain La parte de dominio de la dirección de correo electrónico se extrae del campo userPrincipalName con un patrón grok y se asigna al campo principal.administrative_domain.
userPrincipalName read_only_udm.target.user.email_addresses El valor se asigna directamente desde el campo userPrincipalName si coincide con un patrón de dirección de correo electrónico.
userPrincipalName read_only_udm.target.user.userid El valor se asigna directamente desde el campo userPrincipalName si no coincide con un patrón de dirección de correo electrónico.
userid read_only_udm.target.user.product_object_id El valor se asigna directamente desde el campo userId.
read_only_udm.metadata.log_type AZURE_AD Este valor está codificado en el analizador.
read_only_udm.metadata.vendor_name Microsoft Este valor está codificado en el analizador.
read_only_udm.metadata.product_name Azure AD Este valor está codificado en el analizador.
read_only_udm.extensions.auth.type SSO Este valor está codificado en el analizador.

Cambios

2024-07-05

  • Se asignó "isInteractive" a "security_result.detection_fields".

2024-04-02

  • Se asignó "properties.createdDateTime" a "metadata.event_timestamp".
  • Se asignaron "properties.resourceServicePrincipalId" y "resourceServicePrincipalId" a "target.resource.attribute.labels".
  • Se asignaron "properties.authenticationProcessingDetails", "authenticationProcessingDetails" y "properties.networkLocationDetails" a "additional.fields".
  • Se asignó "properties.userAgent" a "network.http.user_agent" y "network.http.parsed_user_agent".
  • Se asignó "properties.authenticationRequirement" a "additional.fields".

2024-06-03

  • Se cambió la asignación de "policies.displayName" de "about.user.user_display_name" a "security_result.rule_name".
  • Se cambió la asignación de "policies.id" de "about.user.userid" a "security_result.rule_id".
  • Se cambió la asignación de "policies.result" de "about.labels" a "security_result.detection_fields".

2024-05-29

  • Cuando "status.errorCode" sea "0", establece "security_result.action" en "ALLOW".

2024-05-13

Corrección de errores:

  • Se asignó "userPrincipalName" a "target.user.userid".

2024-05-10

  • Se asignaron "networkLocationDetails.n.networkNames", "properties.networkLocationDetails.n.networkNames", "networkLocationDetails.n.networkType" y "properties.networkLocationDetails.n.networkType" a "additional.fields".
  • Se asignaron "properties.userAgent" y "userAgent" a "network.http.user_agent" y "network.http.parsed_user_agent".

2024-05-03

Corrección de errores:

  • Se agregó la verificación "on_error" antes de asignar "target.modifiedProperties.n.newValue".
  • Se asignaron "target.modifiedProperties.n.oldValue" y "target.modifiedProperties.n.displayName" a "target.resource.attribute.labels".
  • Se asignó "activityDisplayName" a "security_result.summary".

30-04-2024

  • Se asignaron "properties.authenticationDetails", "properties.networkLocationDetails", "properties.authenticationRequirementPolicies", "networkLocationDetails" y "authenticationRequirementPolicies" a "security_result.detection_fields".

2024-04-02

  • Se asignó "properties.authenticationRequirement" a "additional.fields".

2024-04-02

  • Se asignó "authenticationRequirement" a "additional.fields".

2024-02-26

  • Se asignó "appliedConditionalAccessPolicies" a "security_result".
  • Se asignó "isInteractive" a "extensions.auth.mechanism".
  • Se asignó "location.geoCoordinates.altitude" a "additional.fields".

2024-02-09

  • Se asignaron "authenticationDetails.authenticationMethod", "authenticationDetails.authenticationMethodDetail", "authenticationDetails.authenticationStepResultDetail", "authenticationDetails.authenticationStepDateTime" y "authenticationDetails.authenticationStepRequirement" a "security_result.detection_fields".
  • Se asignó "authenticationDetails.succeeded" a "security_result.action".
  • Se asignó "status.additionalDetails" a "security_result.description".

2024-01-11

  • Se asignó "correlationId" a "security_result.detection_fields".

2023-11-20

  • Se asignó "tenantId" a "metadata.product_deployment_id".
  • Se asignó "Nivel" a "security_result.severity_details" y "security_result.severity".
  • Se asignó "properties.userDisplayName" a "target.user.user_display_name".
  • Se asignó "identity" a "target.user.user_display_name".
  • Se asignó "properties.activityDateTime" a "metadata.event_timestamp".
  • Se asignó "properties.activity" a "security_result.summary".
  • Se asignaron "resultSignature", "properties.riskLevel", "properties.isGuest", "properties.isDeleted", "properties.isProcessing",
  • "properties.riskLastUpdatedDateTime", "properties.riskType", "properties.riskEventType", "properties.riskState", "properties.riskDetail", "properties.source", "properties.detectionTimingType"
  • "properties.detectedDateTime", "properties.lastUpdatedDateTime", "properties.tokenIssuerType", "properties.homeTenantId", "properties.userType", "properties.crossTenantAccessType", "durationMs" a "additional.fields".
  • Se asignó "resourceId" a "target.resource.product_object_id".
  • Se asignaron "properties.location.geoCoordinates.longitude" y "location.geoCoordinates.longitude" a "principal.location.region_coordinates.longitude".
  • Se asignaron "properties.location.geoCoordinates.latitude" y "location.geoCoordinates.latitude" a "principal.location.region_coordinates.latitude".

2023-07-12

  • Se asignaron "deviceDetail.isCompliant", "deviceDetail.isManaged" y "deviceDetail.trustType" a "principal.asset.attribute.labels".
  • Se asignó "deviceDetail.deviceId" a "principal.asset.asset_id".
  • Se asignó "deviceDetail.browser" a "network.http.user_agent".
  • Se asignó "deviceDetail.operatingSystem" a "principal.platform_version".
  • Se asignó "status.failureReason" a "additional.fields".
  • Se asignó "status.errorCode" a "security_result.rule_id".
  • Se asignó "deviceDetail.displayName" a "principal.asset.hardware".

2023-03-14

  • Se asignó "browser" a "principal.resource.attribute.labels".
  • Se asignaron "isCompliant", "isManaged" y "trustType" a "principal.asset.attribute.labels".
  • Se asignó el campo “domain” de “userPrincipalName” a “principal.administrative_domain”.

2022-12-16

  • Se agregó una verificación condicional para el campo "initiatedBy.user.userPrincipalName" y se asignó a "principal.user.email_addresses".

2022-10-28

  • Se asignó "additionalDetails.0.value" a "network.http.user_agent".
  • Se asignó "additionalDetails.1.value" a "target.resource.attribute.labels".
  • Se asignó "Id" a "metadata.product_log_id".
  • Se asignó "initiatedBy.user.id" a "principal.user.userid".
  • Se asignó "initiatedBy.user.displayName" a "principal.user.user_display_name".
  • Se asignó "initiatedBy.user.ipAddress" a "principal.ip".
  • Se asignó "initiatedBy.user.userPrincipalName" a "principal.user.email_addresses".
  • Se asignó "operationType" a "security_result.action_details".
  • Se asignó "target.displayName" a "target.resource.name".
  • Se asignó "target.id" a "target.resource.id".
  • Se asignó "target.type" a "target.resource.type".
  • Se asignó "field.newValue" a "target.resource.product_object_id" si field.displayName es "AppRole.Id"; de lo contrario, se asignó "field.newValue" a "target.resource.attribute.labels".
  • Se agregó la verificación de errorCode.
  • Se asignó "loggedByService" a "target.application".
  • Se asignó "activityDisplayName" a "metadata.product_event_type".
  • Se asignó "metadata.event_type" a "USER_RESOURCE_UPDATE_PERMISSIONS", donde "activityDisplayName" es "Add app role assignment to service principal".

2022-08-25

  • Si "properties.initiatedBy.user.userPrincipalName" coincide con "email regex pattern", se asigna a "principal.user.email_addresses"; de lo contrario, se asigna a "principal.user.userid".
  • Si "properties.userPrincipalName" o "userPrincipalName" coincide con "email regex pattern", se asigna a "target.user.email_addresses"; de lo contrario, se asigna a "target.user.userid".

2022-08-11

  • Se quitó la etiqueta de eliminación "TAG_MALFORMED_ENCODING".
  • Se agregó "event_type" "GENERIC_EVENT".

2022-05-29

  • Mejora: Se modificó el bucle for del campo "riskEventTypes_v2" asignado a "additional.fields".
  • Se asignó el campo "level" a "security_result.severity_details".
  • Se asignó el campo "properties.result" a "security_result.action_details".

2022-04-20

  • Se corrigió el error: Se analizaron los registros con el evento "appDisplayName": "NotApplicable".
  • Se modificó el bucle for del campo "riskEventTypes".

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.