Skip to content

Esta herramienta no está afiliada a Microsoft Corporation ni respaldada ni patrocinada por ella. Microsoft 365, Microsoft Entra ID, Exchange Online y Microsoft Purview son marcas comerciales del grupo de empresas Microsoft. Los demás nombres son marcas comerciales de sus respectivos propietarios.

Investigación del registro de auditoría unificado (BEC)

Leer el registro de auditoría unificado en un BEC: el JSON AuditData, las operaciones que filtrar y cómo SessionId y UniqueTokenId enlazan acciones.

Publicado el 7 min de lectura

En resumen. En una exportación del UAL, las columnas CSV son un índice; la prueba está en el JSON AuditData. Para un BEC, filtre por una lista corta de operaciones (New-InboxRule, Set-InboxRule, UpdateInboxRules, Set-Mailbox, MailItemsAccessed, Send, SoftDelete/HardDelete, SearchQueryInitiatedExchange, FileDownloaded, Consent to application., User registered security info) y después lea los campos propios de cada carga de trabajo. El pivote que convierte la sospecha en atribución es AppAccessContext.AADSessionId y UniqueTokenId, que coinciden con el Session ID y el Unique token identifier del inicio de sesión de Entra.

El registro de auditoría unificado recoge en un solo lugar la actividad de usuarios y administradores de Exchange Online, SharePoint, OneDrive, Entra ID, Teams y otros servicios. Esa amplitud es también su dificultad: una sola exportación del tenant puede contener cientos de miles de filas, de las que el BEC son unas pocas docenas. Esta es la guía de campo que me habría gustado tener la primera vez.

Anatomía de una fila exportada

Una exportación del portal de Purview tiene las columnas RecordId, CreationDate, RecordType, Operation, UserId, AuditData, AssociatedAdminUnits, AssociatedAdminUnitsNames. Una exportación de PowerShell Search-UnifiedAuditLog | Export-Csv tiene columnas parecidas (RecordType, CreationDate, UserIds, Operations, AuditData, ResultIndex, ResultCount, Identity…). En ambas, AuditData es una cadena JSON con el registro completo.

Campos habituales de AuditData:

CampoSignificadoNotas
CreationTimeHora del evento, UTCA menudo sin Z final
IdIdentificador del registroÚselo para deduplicar exportaciones solapadas
OperationQué ocurrióLas mayúsculas y el punto final varían (Consent to application.)
WorkloadExchange, SharePoint, OneDrive, AzureActiveDirectory…
UserIdQuién lo hizoUPN, o una identidad del sistema
ClientIP / ClientIPAddress / ActorIpAddressIP de origenPuede incluir puerto o corchetes ([2001:db8::1]:443)
ResultStatusSucceeded, True, Success…Varía según la carga de trabajo
AppAccessContextAADSessionId, UniqueTokenId, IssuedAtTimeEl vínculo con el inicio de sesión

El UAL no tiene geolocalización. El país y la red se obtienen cruzando la IP con los registros de inicio de sesión de Entra, o con una consulta externa.

Las operaciones que importan en un BEC

OperaciónCarga de trabajoPor qué importaCampos que leer
New-InboxRule, Set-InboxRule, Enable-InboxRuleExchangeReglas creadas con PowerShell u Outlook en la webParameters: Name, ForwardTo, RedirectTo, DeleteMessage, MoveToFolder, SubjectOrBodyContainsWords, From
UpdateInboxRulesExchangeReglas creadas desde el cliente de escritorio de OutlookOperationProperties: RuleName, RuleActions, RuleCondition
Set-MailboxExchangeReenvío del buzón (SMTP), cambios de auditoríaForwardingSmtpAddress, ForwardingAddress, DeliverToMailboxAndForward, AuditEnabled
Add-MailboxPermission, Add-RecipientPermissionExchangeDelegación para persistirUser, AccessRights
MailItemsAccessedExchangeQué mensajes se leyeron o sincronizaronOperationProperties.MailAccessType (Bind/Sync), Folders, OperationCount, ClientInfoString
Send, SendAs, SendOnBehalfExchangeCorreo enviado desde el buzónItem.Subject, Item.InternetMessageId
SoftDelete, HardDelete, MoveToDeletedItemsExchangeBorrado de huellasAffectedItems, Folder
SearchQueryInitiatedExchangeExchangeQué buscó el atacanteQueryText (hay que activar el registro)
FileDownloaded, FileSyncDownloadedFullSharePoint / OneDriveRobo de datosSourceFileName, SiteUrl, UserAgent
UserLoggedIn, UserLoginFailedAzureActiveDirectoryInicios de sesión replicados en el UALExtendedProperties, DeviceProperties.SessionId
Consent to application., Add delegated permission grant.AzureActiveDirectoryConsentimiento ilícitoModifiedProperties (ConsentAction.Permissions, ConsentContext.IsAdminConsent)
User registered security info, Update user.AzureActiveDirectoryMétodo MFA del atacanteModifiedProperties (StrongAuthentication…)
Set-AdminAuditLogConfig, Set-MailboxAuditBypassAssociationExchangeManipulación de la auditoríaUnifiedAuditLogIngestionEnabled, AuditBypassEnabled

La página de Microsoft sobre las actividades del registro de auditoría es la referencia completa. Dos trampas: los nombres de operación de Entra ID suelen terminar en punto, y Parameters es una matriz de pares {Name, Value}, no un objeto, así que una ruta JSON ingenua no lo encuentra.

Por qué las reglas aparecen de dos formas

Una regla de bandeja de entrada creada en Outlook en la web o con PowerShell queda registrada como New-InboxRule con Parameters legibles. Una regla creada en el cliente de escritorio de Outlook queda como UpdateInboxRules, con OperationProperties como RuleActions y RuleCondition, menos estructuradas. Busque ambas. El artículo reglas de bandeja de entrada maliciosas y reenvío detalla los parámetros que hay que leer.

El pivote por sesión

Microsoft inserta un identificador de sesión (sid) y un identificador único de token (uti) en los tokens que emite, y los muestra en los registros como identificadores vinculables. Según Microsoft Learn:

NotificaciónRegistro de inicio de sesión de EntraAuditoría de Exchange OnlineAuditoría de SharePoint / Teams
sidSession IDSessionId / AppAccessContext.AADSessionIdAppAccessContext.AADSessionId
utiUnique token identifierAppAccessContext.UniqueTokenIdAppAccessContext.UniqueTokenId
iatDateAppAccessContext.IssuedAtTimeAppAccessContext.IssuedAtTime

El procedimiento:

  1. En los registros de inicio de sesión de Entra, identifique el inicio de sesión sospechoso y copie su Session ID (en una reutilización, la sesión que aparece desde dos redes).
  2. En la exportación del UAL, conserve todos los registros cuyo AADSessionId o SessionId coincida.
  3. Añada los registros cuyo UniqueTokenId coincida con un token emitido a la IP del atacante.
  4. Añada los registros procedentes de la IP del atacante para todo lo que los dos filtros anteriores no capten.

Microsoft advierte de que los identificadores vinculables faltan en algunas entradas agregadas y en registros de procesos en segundo plano, así que el paso 4 no es opcional. Otro matiz: con el phishing AiTM, la sesión robada es la que abrió la víctima, de modo que el identificador por sí solo no separa atacante y víctima. Lo que los separa es la red desde la que llega cada acción (AiTM y reutilización de tokens).

Errores habituales

  • Exportaciones truncadas. Exactamente 50.000 filas significa el tope de la exportación Standard, no el final de los datos.
  • Duplicados. Las búsquedas solapadas duplican registros; deduplique por Id.
  • Daños de la hoja de cálculo. Excel reformatea fechas y puede partir o truncar celdas JSON largas. Procese el CSV mediante código.
  • Zonas horarias. CreationDate y CreationTime están en UTC; Outlook muestra la hora local. Indique UTC en el informe.
  • Registros con retraso. Suelen aparecer entre 60 y 90 minutos después del evento; una exportación hecha justo tras la contención puede perder las últimas acciones.
  • Eventos ausentes. SearchQueryInitiated* está desactivado por defecto; MailItemsAccessed depende de la licencia y de la configuración de auditoría del buzón (retención y lagunas).

A escala

Para unos pocos miles de filas, PowerShell y ConvertFrom-Json bastan. Para una exportación de todo el tenant, analizar AuditData fila a fila, cruzar con los inicios de sesión por IP y sesión y agrupar por cuenta es exactamente lo que automatiza M365 Forensics: lee las dos capas del CSV, normaliza los nombres de operación (Add service principal. = Add service principal), quita los puertos de las IP, extrae AADSessionId/UniqueTokenId, toma el país y el ASN de los inicios de sesión con la misma IP y genera un hallazgo crítico «Acciones realizadas desde la sesión o la IP del atacante» cuando acciones del UAL llevan los identificadores de un inicio de sesión sospechoso. El paso a paso muestra cómo leer el resultado.

Preguntas frecuentes

¿Dónde está el detalle de un registro del registro de auditoría unificado?

En la columna AuditData de la exportación. Es un objeto JSON cuyos campos dependen de la carga de trabajo: Parameters para los cmdlets de administración de Exchange, OperationProperties y Folders para MailItemsAccessed, ModifiedProperties para los eventos de Entra ID, SourceFileName y SiteUrl para SharePoint.

¿Puedo vincular un registro del registro de auditoría unificado con un inicio de sesión de Entra ID?

A menudo, sí. Los registros de Exchange, SharePoint y Teams llevan AppAccessContext.AADSessionId y UniqueTokenId, que coinciden con el Session ID y el Unique token identifier del inicio de sesión de Entra que emitió el token. Algunos registros agregados o de segundo plano no los incluyen.

Para saber más

Artículos relacionados