Recopila registros de acceso de Azure AD

Compatible con:

En este documento, se explica cómo exportar los registros de acceso de Azure AD a Google Security Operations con una cuenta de Azure Storage. El analizador toma los registros sin procesar en formato JSON y los transforma en un formato estructurado que cumple con el modelo de datos unificado (UDM). Extrae campos relevantes, normaliza valores, controla diferentes marcas de tiempo y enriquece los datos con contexto relacionado con la seguridad, como información del usuario, direcciones IP y políticas de acceso condicional.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Un inquilino de Azure activo
  • Acceso con privilegios a Azure

Configura la cuenta de Azure Storage

  1. En la consola de Azure, busca Cuentas de almacenamiento.
  2. Haz clic en + Crear.
  3. Especifica valores para los siguientes parámetros de entrada:
    • Suscripción: Selecciona la suscripción.
    • Grupo de recursos: Selecciona el grupo de recursos.
    • Región: Selecciona la región.
    • Rendimiento: Selecciona el rendimiento (se recomienda Estándar).
    • Redundancia: Selecciona la redundancia (se recomienda GRS o LRS).
    • Nombre de la cuenta de almacenamiento: Ingresa un nombre para la nueva cuenta de almacenamiento.
  4. Haz clic en Revisar + crear.
  5. Revisa el resumen de la cuenta y haz clic en Crear.
  6. En la página Información general de la cuenta de almacenamiento, selecciona el submenú Claves de acceso en Seguridad y redes.
  7. Haz clic en Mostrar junto a key1 o key2.
  8. Haz clic en Copiar en el portapapeles para copiar la clave.
  9. Guarda la llave en un lugar seguro para usarla más adelante.
  10. En la página Información general de la cuenta de almacenamiento, selecciona el submenú Endpoints en Configuración.
  11. Haz clic en Copiar al portapapeles para copiar la URL del extremo del servicio Blob, por ejemplo, https://<storageaccountname>.blob.core.windows.net.
  12. Guarda la URL del extremo en una ubicación segura para usarla más adelante.

Cómo configurar la exportación de registros para los registros de acceso de Azure AD

  1. Accede al portal de Azure con tu cuenta con privilegios.
  2. Ve a Microsoft Entra ID > Supervisión > Configuración de diagnóstico.
  3. Haz clic en Agregar parámetro de configuración de diagnóstico.
    • Ingresa un nombre descriptivo para el parámetro de configuración de diagnóstico.
  4. Selecciona Registros de acceso.
  5. Selecciona la casilla de verificación Archivar en una cuenta de almacenamiento como destino.
    • Especifica la Suscripción y la Cuenta de almacenamiento.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds desde Configuración del SIEM > Feeds

Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.

Para configurar un solo feed, sigue estos pasos:

  1. Ve a SIEM Settings > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de acceso de Azure.
  5. Selecciona Microsoft Azure Blob Storage como el Tipo de fuente.
  6. Selecciona Azure Sign-In como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:

    • URI de Azure: Es la URL del extremo del blob.
      • ENDPOINT_URL/BLOB_NAME
        • Reemplaza lo siguiente:
          • ENDPOINT_URL: URL del extremo del blob (https://<storageaccountname>.blob.core.windows.net)
          • BLOB_NAME: Es el nombre del blob (por ejemplo, insights-logs-<logname>).
    • El URI es un: Selecciona el TIPO de URI según la configuración del flujo de registros (Archivo único | Directorio | Directorio que incluye subdirectorios).
    • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.

    • Clave compartida: Es la clave de acceso a Azure Blob Storage.

    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.

    • Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.

  9. Haz clic en Siguiente.

  10. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Configura feeds desde el Centro de contenido

Especifica valores para los siguientes campos:

  • URI de Azure: Es la URL del extremo del blob.
    • ENDPOINT_URL/BLOB_NAME
      • Reemplaza lo siguiente:
        • ENDPOINT_URL: URL del extremo del blob (https://<storageaccountname>.blob.core.windows.net)
        • BLOB_NAME: Es el nombre del blob (por ejemplo, insights-logs-<logname>).
  • El URI es un: Selecciona el TIPO de URI según la configuración del flujo de registros (Archivo único | Directorio | Directorio que incluye subdirectorios).
  • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.
  • Clave compartida: Es la clave de acceso a Azure Blob Storage.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del recurso: Espacio de nombres asociado al feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
AppDisplayName read_only_udm.target.application Se asigna directamente desde el campo AppDisplayName en el registro sin procesar.
AppId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo AppId en el registro sin procesar. La clave se establece en appId.
Categoría read_only_udm.security_result.category_details Se asigna directamente desde el campo Category en el registro sin procesar.
ConditionalAccessPolicies[].displayName read_only_udm.security_result.rule_name Se asigna directamente desde el campo displayName dentro del array ConditionalAccessPolicies en el registro sin procesar.
ConditionalAccessPolicies[].enforcedGrantControls[] read_only_udm.security_result.rule_labels.value Se asigna directamente desde el array enforcedGrantControls dentro del array ConditionalAccessPolicies en el registro sin procesar. La clave se establece en applied_conditional_access_policies_enforced_grant_controls.
ConditionalAccessPolicies[].enforcedSessionControls[] read_only_udm.security_result.rule_labels.value Se asigna directamente desde el array enforcedSessionControls dentro del array ConditionalAccessPolicies en el registro sin procesar. La clave se establece en applied_conditional_access_policies_enforced_session_controls.
ConditionalAccessPolicies[].id read_only_udm.security_result.rule_id Se asigna directamente desde el campo id dentro del array ConditionalAccessPolicies en el registro sin procesar.
ConditionalAccessPolicies[].Result read_only_udm.security_result.rule_labels.value Se asigna directamente desde el campo Result dentro del array ConditionalAccessPolicies en el registro sin procesar. La clave se establece en applied_conditional_access_policies_result.
ConditionalAccessStatus read_only_udm.additional.fields.value.string_value Se asigna directamente desde el campo ConditionalAccessStatus en el registro sin procesar. La clave se establece en conditionalAccessStatus.
CorrelationId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo CorrelationId en el registro sin procesar. La clave se establece en correlationId.
DurationMs read_only_udm.additional.fields.value.string_value Se asigna directamente desde el campo DurationMs en el registro sin procesar. La clave se establece en durationMs.
HomeTenantId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo HomeTenantId en el registro sin procesar. La clave se establece en HomeTenantId.
IPAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Se asigna directamente desde el campo IPAddress en el registro sin procesar.
ID read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo Id en el registro sin procesar. La clave se establece en id.
Identidad read_only_udm.target.resource.attribute.labels.value Se asigna directamente desde el campo Identity en el registro sin procesar. La clave se establece en identity.
Nivel read_only_udm.security_result.severity, read_only_udm.security_result.severity_details Se asigna directamente desde el campo Level en el registro sin procesar. La gravedad se determina según el valor de Level: Information, Informational, 0 o 4 se asignan a INFORMATIONAL; Warning, 1 o 3 se asignan a MEDIUM; Error o 2 se asignan a ERROR; Critical se asigna a CRITICAL.
OperationName read_only_udm.metadata.product_event_type Se asigna directamente desde el campo OperationName en el registro sin procesar.
ResourceGroup read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo ResourceGroup en el registro sin procesar. La clave se establece en ResourceGroup.
ResultSignature read_only_udm.additional.fields.value.string_value Se asigna directamente desde el campo ResultSignature en el registro sin procesar. La clave se establece en resultSignature.
ResultType read_only_udm.additional.fields.value.string_value Se asigna directamente desde el campo ResultType en el registro sin procesar. La clave se establece en resultType.
TenantId read_only_udm.metadata.product_deployment_id Se asigna directamente desde el campo TenantId en el registro sin procesar.
TimeGenerated read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos Se asigna directamente desde el campo TimeGenerated en el registro sin procesar. El campo se analiza como una marca de tiempo y se usa para propagar los campos seconds y nanos.
TokenIssuerType read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo TokenIssuerType en el registro sin procesar. La clave se establece en TokenIssuerType.
UniqueTokenIdentifier read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo UniqueTokenIdentifier en el registro sin procesar. La clave se establece en UniqueTokenIdentifier.
UserAgent read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Se asigna directamente desde el campo UserAgent en el registro sin procesar. El campo se analiza como una cadena de usuario-agente y se usa para completar el objeto parsed_user_agent.
UserDisplayName read_only_udm.target.user.user_display_name Se asigna directamente desde el campo UserDisplayName en el registro sin procesar.
UserId read_only_udm.target.user.userid Se asigna directamente desde el campo UserId en el registro sin procesar.
UserPrincipalName read_only_udm.target.user.email_addresses Se asigna directamente desde el campo UserPrincipalName en el registro sin procesar, pero solo si coincide con el patrón de dirección de correo electrónico.
UserType read_only_udm.target.user.attribute.roles.name Se asigna directamente desde el campo UserType en el registro sin procesar.
_Internal_WorkspaceResourceId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo _Internal_WorkspaceResourceId en el registro sin procesar. La clave se establece en Internal_WorkspaceResourceId.
_ItemId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo _ItemId en el registro sin procesar. La clave se establece en ItemId.
properties.appId read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo appId dentro del objeto properties en el registro sin procesar. La clave se establece en appId.
properties.authenticationDetails[].authenticationMethod read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo authenticationMethod dentro del array authenticationDetails en el registro sin procesar. La clave se establece en authenticationMethod.
properties.authenticationDetails[].authenticationMethodDetail read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo authenticationMethodDetail dentro del array authenticationDetails en el registro sin procesar. La clave se establece en authenticationMethodDetail.
properties.authenticationDetails[].authenticationStepDateTime read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo authenticationStepDateTime dentro del array authenticationDetails en el registro sin procesar. La clave se establece en authenticationStepDateTime.
properties.authenticationDetails[].authenticationStepRequirement read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo authenticationStepRequirement dentro del array authenticationDetails en el registro sin procesar. La clave se establece en authenticationStepRequirement.
properties.authenticationDetails[].authenticationStepResultDetail read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo authenticationStepResultDetail dentro del array authenticationDetails en el registro sin procesar. La clave se establece en authenticationStepResultDetail.
properties.authenticationDetails[].succeeded read_only_udm.security_result.action, read_only_udm.security_result.action_details Se asigna directamente desde el campo succeeded dentro del array authenticationDetails en el registro sin procesar. Si el valor es true, la acción se establece en ALLOW; de lo contrario, se establece en BLOCK.
properties.conditionalAccessStatus read_only_udm.additional.fields.value.string_value Se asigna directamente desde el campo conditionalAccessStatus dentro del objeto properties en el registro sin procesar. La clave se establece en conditionalAccessStatus.
properties.id read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo id dentro del objeto properties en el registro sin procesar. La clave se establece en id.
properties.status.errorCode read_only_udm.security_result.action Si el valor es 0, la acción se establece en ALLOW; de lo contrario, se establece en BLOCK.
properties.userId read_only_udm.target.user.userid Se asigna directamente desde el campo userId dentro del objeto properties en el registro sin procesar.
properties.userPrincipalName read_only_udm.target.user.email_addresses Se asigna directamente desde el campo userPrincipalName dentro del objeto properties en el registro sin procesar, pero solo si coincide con el patrón de dirección de correo electrónico.
resourceId read_only_udm.target.resource.name Se asigna directamente desde el campo resourceId en el registro sin procesar.
hora read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos Se asigna directamente desde el campo time en el registro sin procesar. El campo se analiza como una marca de tiempo y se usa para propagar los campos seconds y nanos.
read_only_udm.extensions.auth.type El valor se establece en AUTHTYPE_UNSPECIFIED.
read_only_udm.metadata.event_type El valor se determina según la presencia de los campos principal.ip y target.user.userid: Si ambos están presentes, el tipo se establece en USER_LOGIN; si solo está presente principal.ip, el tipo se establece en STATUS_UPDATE; de lo contrario, se establece en GENERIC_EVENT.

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