446
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:
- 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.
- 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.
- 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.
- 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.
- 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.
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
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
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.
¿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);" } ) } ) }
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.
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
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
¿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.
Puede exportar el resultado a un archivo CSV utilizando el Exportar-Csv cmdlet si es necesario.
$result | Export-Csv -NoTypeInformation .\auditlog.csv
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 Comments