En el anterior post hablábamos sobre cómo proteger los documentos sensibles con Azure Right Management (ARM) y cómo mantener una política de seguridad de forma administrada.

Una vez implantado ARM querremos detectar posibles brechas de seguridad, para lo que utilizaremos los informes estándar de ARM que encontraremos en la administración de nuestro Windows Azure Active Directory. Ahora bien, estos informes de ARM indican información sobre cómo se aplica la política de seguridad y qué usuarios intentan acceder a contenido protegido, pero veremos que no muestran información sobre qué contenido o documentos se está intentando acceder, de manera que no podremos realizar un trackeo de acceso a los documentos.

Los informes de uso de ARM utilizan por debajo el sistema de logs de Azure Rights Management usage logging que es realmente el encargado de trazar todas las solicitudes al servicio de ARM y almacenarlas. En versiones anteriores debíamos de realizar gran trabajo para obtener toda esta información, pero con la versión 2.4.0 de Windows PowerShell for Azure Rights Management dispondremos del cmdlet Get-AadrmUserLog
con el que obtener información de uso de ARM.

Para onbtener los informes de uso de ARM utilizaremos un script de PowerShell del tipo:

Connect-AadrmService

Get-AadrmUserLog -Path C:\Logs -fromdate 1/2/2017 –todate 19/2/2017

Una vez descargado los ficheros.log, lo más fácil será procesarlos con LogParser para generar un fichero CSV más legible. Para lo que utilizaríamos un comando del tipo:

Logparser.exe –i:w3c –o:csv «SELECT * INTO c:\logs\AllLogs.csv FROM c:\logs\*.log»

A continuación, importaremos el CSV desde Excel y podremos analizar la información obtenido. Veremos que disponemos de diferentes campos de información entre los que debemos prestar atención a:

  • request-type, indica el tipo de solicitud realizada a ARM
  • user-id, el usuario que intenta acceder al contenido protegido
  • result, resultado de la operación de validación, nos interesa todas aquellas que no sea Success
  • content-id, identificador del contenido protegido

El campo «content-id» contiene un identificador en formato GUID del documento al que se intenta acceder, que será realmente el que nos interese para realizar un trackeo de accesos. El problema viene a la hora de asociar este content-id con el documento real, ya que este identificador consiste en un GUID que genera RMS al proteger el documento y almacena dentro del documento. Si abrimos el documento con un editor de texto, encontraremos una sección XML en formato XrML con la información que inserta RMS y el content-id generado.


Por lo que para obtener el content-id de cada uno de los documentos deberemos acceder al contenido del documento y extraer este content-id bien leyendo un stream de texto o bien utilizando el SDK de RMS, para el que encontraremos varios ejemplos de código para procesar los ficheros.