Los registros de auditoría unificados de Microsoft 365 (también conocidos como registros de auditoría de Office 365) sirven como un recurso valioso para las organizaciones que utilizan Microsoft 365. Estos registros consolidan datos de múltiples servicios dentro de la suite Microsoft 365, proporcionando una vista unificada de actividades y eventos.

Se puede acceder y analizar los registros de auditoría de Microsoft 365 a través de varios métodos, incluido el Centro de seguridad y cumplimiento de Microsoft 365 y los cmdlets de PowerShell. PowerShell, en particular, ofrece una forma potente y eficiente de consultar estos registros, lo que facilita la extracción y el análisis de datos de registros de auditoría específicos.

En esta publicación de blog, exploraremos cómo PowerShell puede consultar los registros de auditoría de Office 365 de manera efectiva. Únase a nosotros mientras nos sumergimos en el mundo de los registros de auditoría de Microsoft 365 y descubra cómo PowerShell puede cambiar las reglas del juego en la administración y consulta de estos valiosos datos.

¿Qué datos incluyen los registros de auditoría de Office 365?

Los registros de auditoría de Office 365 registran varios tipos de eventos, incluidos:

  1. Actividades de usuario y administrador.: Esto incluye acciones como acceso a archivos, intercambio de documentos, actividades de correo electrónico, eventos de inicio de sesión de usuarios, cambios en las funciones y permisos de los usuarios y otras actividades relacionadas con los usuarios.
  2. Intercambio de eventos en línea: cubren actividades relacionadas con Exchange Online, como envíos y recepciones de correo electrónico, acceso al buzón, eliminación de mensajes y cambios en las configuraciones del buzón.
  3. Eventos de SharePoint Online y OneDrive para empresas: realiza un seguimiento de las actividades dentro de SharePoint Online y OneDrive for Business, incluidas las cargas, descargas, el uso compartido y las modificaciones de archivos.
  4. Eventos de Azure Active Directory: esto incluye eventos relacionados con la administración de usuarios y grupos, restablecimientos de contraseñas, eventos de inicio de sesión de usuarios y otras actividades dentro del servicio Azure Active Directory.
  5. Eventos de protección de información de Azure: registra actividades relacionadas con la protección y clasificación de datos, incluido el etiquetado de documentos, el cifrado y otras acciones relacionadas con la seguridad.

Pero primero, active la auditoría…

Antes de continuar, debe confirmar que la auditoría esté activada en su inquilino. Sin él, no hay registros para buscar.

Para hacerlo, conéctese a la sesión de Exchange Online PowerShell. Esto requiere instalar el Intercambio en línea PowerShell V3 módulo en su computadora.

Connect-ExchangeOnline -Organization tenant.onmicrosoft.com

A continuación, ejecute el siguiente comando para confirmar la UnifiedAuditLogIngestionEnabled propiedad.

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

Si el UnifiedAuditLogIngestionEnabled dice Verdaderoentonces ya está todo listo.

De lo contrario, ejecute el siguiente comando para activar la auditoría. Tenga en cuenta que debe ser un Gestión de la organización miembro del grupo de funciones para que este comando funcione.

Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true

Buscar registros de auditoría de Office 365 con Search-UnifiedAuditLog

Un potente cmdlet en PowerShell que le permite buscar y recuperar información de los registros de auditoría unificados de Microsoft 365 es «Búsqueda-Registro de auditoría unificado.”

Este cmdlet le permite especificar varios criterios de búsqueda, como intervalos de fechas, actividades específicas, usuarios o incluso direcciones IP, para limitar su búsqueda y recuperar las entradas relevantes del registro de auditoría.

Sintaxis, tipo de registro y operaciones

A continuación se muestra la sintaxis del Búsqueda-Registro de auditoría unificado cmdlet. Como puedes ver, sólo el Fecha de inicio y Fecha final son requeridos. Pero en la mayoría de los casos, limitar la búsqueda filtrando el Tipo de registro y Se recomiendan operaciones.

Search-UnifiedAuditLog 
-EndDate <ExDateTime> 
-StartDate <ExDateTime> 
[-Formatted] 
[-FreeText <String>] 
[-IPAddresses <String[]>] 
[-ObjectIds <String[]>] 
[-Operations <String[]>] 
[-RecordType <AuditRecordType>] 
[-ResultSize <Int32>] 
[-SessionCommand <UnifiedAuditSessionCommand>] 
[-SessionId <String>] 
[-SiteIds <String[]>] 
[-UserIds <String[]>] 
[<CommonParameters>]

Tipo de registro — Este es el tipo de registro específico del servicio que desea filtrar. Por ejemplo, Administrador de intercambio es el tipo de registro que contiene las operaciones relacionadas con el administrador realizadas en Exchange Online. Otro ejemplo es el Operación de archivo de SharePoint tipo de registro, que consta de operaciones o eventos relacionados con archivos en SharePoint Online.

Operaciones — Los hechos o acciones que sucedieron. Una operación de ejemplo es Archivo accedido Para el Operación de archivo de SharePoint registro, una entrada para cuando se accedió a un archivo desde una biblioteca de SharePoint Online. Bajo la Administrador de intercambio tipo de registro, verá el nombre del cmdlet ejecutado, como Set-TransportConfig, Establecer buzóny Conjunto-Grupo Unificado.

Referirse a Esquema de API de actividad de administración de Office 365 para ver los tipos de registros válidos y la lista de operaciones.

Las siguientes secciones muestran ejemplos del uso de la Búsqueda-Registro de auditoría unificado cmdlet. Vamos a sumergirnos.

Buscar en el registro de auditoría de SharePoint Online

Suponga que necesita informar cuántos sitios de SharePoint Online se crearon en los últimos 90 días. Para hacer eso, usaremos el compartirpunto tipo de registro.

Copie el código siguiente y ejecútelo en su sesión de Exchange Online PowerShell.

$startDate = (Get-Date).AddDays(-90) 
$endDate = (Get-Date) 
$result = Search-UnifiedAuditLog ` 
-StartDate $startDate ` 
-EndDate $endDate ` 
-RecordType SharePoint ` 
-Operations SiteCollectionCreated ` 
-Formatted 
$result | Group-Object -Property Operations

Tenga en cuenta que el -Formateado interruptor garantiza que el Tipo de registro y Operaciones Los atributos de los resultados se devuelven como nombres, no como números enteros.

Según el resultado, han sido tres Colección de sitios creada Eventos en los últimos 90 días.

registro de auditoría de office 365

Los detalles de cada registro de auditoría se encuentran en el Datos de auditoría propiedad en formato JSON. Ahora inspeccionemos uno de los resultados.

$result[0].AuditData | ConvertFrom-Json

registro de actividad del usuario de office 365

Buscar registros de auditoría en línea de Exchange

Un área de Exchange Online que los administradores tienden a monitorear son las acciones ejecutadas por los administradores. En este ejemplo, podemos ejecutar el Búsqueda-Registro de auditoría unificado y especificar el Administrador de intercambio tipo de registro.

Por ejemplo, el siguiente comando devuelve todos los cmdlets de Exchange ejecutados en los últimos 90 días.

$startDate = (Get-Date).AddDays(-90) 
$endDate = (Get-Date) 
$result = Search-UnifiedAuditLog ` 
-StartDate $startDate ` 
-EndDate $endDate ` 
-RecordType ExchangeAdmin ` 
-Formatted 
$result | Group-Object -Property Operations | Select-Object Count, Name

registro de auditoría o365

Pero ¿cómo sabemos quién hizo qué? Inspeccionemos una entrada del registro.

$result[0].AuditData | ConvertFrom-Json

El resultado muestra que el Establecer-AdminAuditLogConfig El comando fue ejecutado por el AUTORIDAD NT\SISTEMA (Microsoft.Exchange.ServiceHost) cuenta.

registro de auditoría m365

¿Qué tal enumerar todos los eventos? Para eso, podemos aplicar una iteración como la para cada declaración.

foreach ($item in $result) { 
$audit = $item.AuditData | ConvertFrom-Json 
New-Object psobject -Property $([ordered]@{ 
TimeStamp = $audit.CreationTime 
UserId = $audit.UserId 
Operation = $audit.Operation 
# Parameters = $audit.Parameters 
Parameters = [string]$( 
$audit.Parameters | ForEach-Object { 
"$($_.Name):$($_.Value);" 
} 
) 
} 
) 
}

auditoría de oficina 365

Puede haber entradas de registro irrelevantes. Quizás quieras ignorar los eventos creados por el AUTORIDAD NT\SISTEMA (Microsoft.Exchange.ServiceHost) y AUTORIDAD NT\SISTEMA (w3wp) cuentas? Podemos agregar una serie de ID de usuario para ignorar.

# List of UserIds to ignore 
$ignoreEventsBy = @( 
'NT AUTHORITY\SYSTEM (Microsoft.Exchange.ServiceHost)', 
'NT AUTHORITY\SYSTEM (w3wp)' 
)

E inserte una declaración if que verifique si el ID de usuario está listado en el $ignoreEventsBy formación. Si es así, el para cada El bucle omitirá este evento.

foreach ($item in $result) { 
$audit = $item.AuditData | ConvertFrom-Json 

if ($ignoreEventsBy -contains $audit.UserId) { 
# skip this event 
continue 
} 

New-Object psobject -Property $([ordered]@{ 
TimeStamp = $audit.CreationTime 
UserId = $audit.UserId 
Operation = $audit.Operation 
Parameters = [string]$( 
$audit.Parameters | ForEach-Object { 
"$($_.Name):$($_.Value);" 
} 
) 
} 
) 
}

Esta vez, solo se incluyen en el informe los eventos de usuarios reales.

registro de auditoría 365

Manejo de resultados de registros de auditoría de Office 365 de gran tamaño

El Búsqueda-Registro de auditoría unificado El comando devuelve 100 elementos de forma predeterminada, lo cual no es mucho. Cuando ejecuta el siguiente comando, devuelve 100 entradas de registros de auditoría.

$startDate = (Get-Date).AddDays(-10) 
$endDate = (Get-Date) 
$result = Search-UnifiedAuditLog ` 
-StartDate $startDate ` 
-EndDate $endDate ` 
-RecordType SharePoint ` 
-Formatted 
$result.Count

oficina de búsqueda de registros de auditoría 365

Puede aumentar el tamaño del resultado hasta un máximo de 5000 agregando el -ResultadoTamaño 5000 y -SessionCommand ReturnLargeSet parámetros.

$result = Search-UnifiedAuditLog ` 
-StartDate $startDate ` 
-EndDate $endDate ` 
-RecordType SharePoint ` 
-SessionCommand ReturnLargeSet ` 
-ResultSize 5000 ` 
-Formatted 
$result.Count

registro de actividad de office 365

¿Qué sucede si hay más de 5000 elementos del registro de auditoría de Office 365? No te preocupes; el máximo que puede recuperar es hasta 50.000 mediante paginación. El resultado de cada página puede tener un máximo de 5000 elementos. Puede lograr esto especificando el -ID de sesión parámetro.

Primero, cree una ID de sesión única; puede tener cualquier valor, pero prefiero usar un GUID. A continuación, adjuntaremos el Búsqueda-Registro de auditoría unificado comando en un bucle do- while. El comando se ejecutará hasta que no haya más resultados. Cada iteración utilizará el mismo ID de sesión valor.

$sessionID = (New-Guid).Guid 
$startDate = (Get-Date).AddDays(-4) 
$endDate = (Get-Date) 
$result = [System.Collections.ArrayList]@() 

do { 
$temp = Search-UnifiedAuditLog ` 
-StartDate $startDate ` 
-EndDate $endDate ` 
-RecordType SharePoint ` 
-SessionId $sessionId ` 
-SessionCommand ReturnLargeSet ` 
-ResultSize 5000 ` 
-Formatted 

foreach ($item in $temp) { 
$audit = $item.AuditData | ConvertFrom-Json 
$null = $result.Add($( 
New-Object psobject -Property $([ordered]@{ 
TimeStamp = $audit.CreationTime 
UserId = $audit.UserId 
Operation = $audit.Operation 
ObjectID = $audit.ObjectId 
} 
) 
) 
) 
} 
} 
while ($temp.count -gt 0) 
$result.count

En este ejemplo, el resultado total es más de 41.000 elementos de registro.

registros de auditoría de administración de Office 365

Puede exportar el resultado a un archivo CSV utilizando el Exportar-Csv cmdlet si es necesario.

$result | Export-Csv -NoTypeInformation .\auditlog.csv

auditoría de microsoft 365

Conclusión

Consultar los registros de auditoría de Microsoft 365 mediante PowerShell es una forma poderosa y eficiente de obtener información valiosa sobre las actividades, la seguridad y el cumplimiento de su organización. Aprovechando las capacidades de PowerShell y el Búsqueda-Registro de auditoría unificadopuede recuperar y analizar fácilmente la información almacenada en sus registros de auditoría.

5/5 - (37 votos)

5 Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *