Skip to content

Esta herramienta no está afiliada a Microsoft Corporation ni cuenta con su aprobación o patrocinio. Azure, Microsoft Azure y Microsoft Defender for Cloud son marcas comerciales del grupo de empresas Microsoft. Los demás nombres son marcas comerciales de sus respectivos propietarios.

Activity Log · Key Vault · Storage · NSG / VNet

¿Se ha comprometido tu suscripción de Azure?

Arrastra tu Activity Log (y los logs de Key Vault, Storage y flow logs de NSG / VNet): obtén un veredicto, la cronología del ataque y qué corregir. Análisis en tu navegador con WebAssembly — no se sube nada.

Arrastra aquí tus exportaciones de logs de Azure

Activity Log (CSV del portal, JSON de az CLI / REST, Log Analytics, exportación a una cuenta de almacenamiento), AuditEvent de Key Vault, StorageBlobLogs, flow logs de NSG / VNet, alertas de Defender for Cloud. Carpetas, archivos ZIP y .gz tal cual.

Ejemplo: una empresa ficticia y un incidente ficticio — logs sintéticos en los formatos de exportación reales.

¿Nunca ha exportado registros de Azure? Así se hace

100 % local: los logs se analizan con WebAssembly en tu navegador y nunca se suben.

Cómo obtener sus registros

De cero a resultados en unos dos minutos: ejecute un comando en Azure Cloud Shell, descargue el ZIP y suéltelo aquí.

  1. RecopilarUn comando en Cloud Shell o una descarga desde el portal
  2. Suelte aquí el archivo, la carpeta o el ZIPJSON, CSV, .gz, carpetas y ZIP tal como se exportan
  3. Todo se queda en su navegadorAnalizado con WebAssembly, nunca se sube

Portal de Azure → Cloud Shell (Bash). Rol Lector (Reader) en las suscripciones. No hay que instalar nada.

1. Registro de actividad de todas las suscripciones, últimos 30 días

mkdir -p ~/triage && cd ~/triage && for s in $(az account list --query "[?state=='Enabled'].id" -o tsv); do az monitor activity-log list --subscription "$s" --offset 30d --max-events 100000 -o json > "activity-$s.json"; done

Cambie 30d para cubrir el incidente y una semana antes (el registro de actividad se conserva 90 días).

2. Alertas de Defender for Cloud (opcional, suscripción actual)

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Security/alerts?api-version=2022-01-01" -o json > ~/triage/defender-alerts.json

3. Comprimir todo

cd ~ && zip -qr azure-logs.zip triage

Después, en la barra de Cloud Shell: Administrar archivos → Descargar → azure-logs.zip, y suelte el ZIP aquí.

Trampas

  • Solo se encuentra lo que se registró: el registro de actividad guarda 90 días, y los registros de Key Vault, almacenamiento y flujos solo existen si había una configuración de diagnóstico activa antes del incidente. Incluya una semana antes del inicio sospechado: las reglas de primera aparición aprenden de las primeras 72 horas.
  • El > de Windows PowerShell escribe UTF-16, que se omite: ejecute los comandos en Cloud Shell (Bash). Nunca abra y vuelva a guardar un registro en Excel.
  • Una exportación puede quedarse corta sin avisar: az monitor activity-log list devuelve 50 eventos sin --max-events, az rest solo la primera página, y el CSV del portal pierde la IP del llamador. Compruebe la primera y la última marca de tiempo.

Qué hace esta herramienta

Azure Forensics es un triaje gratuito de primera respuesta ante un posible compromiso de Azure. Lee los logs que exportas de tu suscripción y responde a una pregunta: ¿hay indicios de ataque en el plano de control (Azure Resource Manager) o en el plano de datos (secretos de Key Vault, blobs de almacenamiento, flujos de red)?

Todo ocurre en tu navegador: un analizador en Rust compilado a WebAssembly lee tus archivos en streaming dentro de un Web Worker. No se sube nada, así que puedes usarlo con logs de producción sensibles.

Logs compatibles

  • Activity Log — cada escritura, eliminación y acción a través de Azure Resource Manager: asignaciones de rol, Run Command, generación de SAS, configuraciones de diagnóstico… CSV del portal, JSON de az CLI / REST, AzureActivity de Log Analytics (CSV o JSON), o la exportación a una cuenta de almacenamiento / Event Hubs (insights-activity-logs).
  • Logs AuditEvent de Key Vault — quién leyó qué secreto, clave o certificado y desde qué IP (insights-logs-auditevent, o AzureDiagnostics en Log Analytics).
  • Logs de blobs de almacenamiento (StorageRead / StorageWrite / StorageDelete, StorageBlobLogs) — acceso a datos, incluidas descargas con SAS y anónimas.
  • Flow logs de NSG (v1, v2) y de VNet — conversaciones de red, agregadas por origen, destino y puerto.
  • Alertas de Defender for Cloud (exportación REST / JSON o SecurityAlert de Log Analytics).

Cómo se obtiene el veredicto

Cada detección es una regla en un archivo JSON revisable (inspirado en Sigma): eventos individuales (Run Command, configuración de diagnóstico eliminada…), umbrales (descarga masiva de blobs, enumeración de secretos) y reglas de primera aparición que aprenden lo normal durante las primeras 72 horas de tus logs (IP nueva para una entidad de servicio, entidad nueva que lee un almacén, región nueva).

Comprometido: al menos dos hallazgos de gravedad alta (o uno crítico). Sospechoso: al menos un hallazgo medio o alto. Limpio: nada por encima de bajo — lo que solo significa que nada coincidió en los logs proporcionados.

Los hallazgos se vinculan a técnicas de MITRE ATT&CK, a las entidades, IP y recursos implicados, y se sitúan en una cronología del incidente con una lista de remediación.

Detecciones

Las reglas incluidas en la herramienta. Sus identificadores son estables, así que puedes citarlos en tus informes.

ReglaDetectaGravedadMITRE ATT&CK
AZ-RBAC-001Rol privilegiado asignadoSe concedió Owner, User Access Administrator o RBAC Administrator: esa entidad puede ahora dar acceso a cualquiera.MediaT1098.003
AZ-RBAC-002Identidad no humana con un rol privilegiadoUna entidad de servicio o identidad administrada concedió Owner, Contributor o un rol de gestión de accesos — típico de un secreto de aplicación robado.AltaT1098.003
AZ-RBAC-003Entidad que se asigna un rol a sí mismaQuien realiza la asignación de rol es también el beneficiario: una escalada de privilegios clásica.AltaT1098.003
AZ-RBAC-004Acceso elevado a todas las suscripcionesUn Administrador global usó elevateAccess para ser User Access Administrator en la raíz (/).AltaT1078.004, T1098.003
AZ-VM-001Comando ejecutado en una VM (Run Command)Run Command ejecuta scripts como SYSTEM / root a través del agente de la VM, sin acceso de red a la VM.AltaT1651
AZ-VM-002Extensión Custom Script implementadaLa extensión descarga y ejecuta un script en la VM.AltaT1651
AZ-VM-003Conexión a la consola serieAcceso interactivo a la VM que evita los controles de red.MediaT1651
AZ-VM-004VM creada en una región nunca usadaRegión nueva respecto al periodo de aprendizaje: señal habitual de criptominería.MediaT1496, T1578.002
AZ-VM-005Disco o snapshot exportadobeginGetAccess devuelve una URL de descarga de un disco completo.AltaT1537, T1578.001
AZ-VM-006Snapshot de disco creadoA menudo es el primer paso para copiar un disco fuera de la suscripción.BajaT1578.001
AZ-KV-001Key Vault leído por una entidad nuevaUna entidad leyó secretos, claves o certificados de un almacén al que nunca accedió durante el periodo de aprendizaje.AltaT1555.006
AZ-KV-002Enumeración de secretos de Key VaultUna misma entidad leyó muchos secretos distintos de un almacén en menos de una hora.AltaT1555.006
AZ-KV-003Directiva de acceso de Key Vault modificadaLas directivas de acceso dan acceso a secretos, claves y certificados.MediaT1098
AZ-KV-004Protección de Key Vault debilitada u objetos purgadosEliminación temporal o protección de purga desactivadas, u objetos eliminados de forma permanente.AltaT1485, T1562
AZ-ST-001Token SAS de almacenamiento generadoUn SAS de cuenta o de servicio es un token al portador que funciona desde cualquier sitio hasta que caduca.AltaT1528, T1530
AZ-ST-002Claves de la cuenta de almacenamiento listadasLas claves de cuenta dan acceso completo a los datos de la cuenta.BajaT1552
AZ-ST-003Acceso anónimo a blobs habilitadoLa cuenta o un contenedor sirve ahora blobs sin autenticación.AltaT1530
AZ-ST-004Firewall del almacenamiento abiertoLas reglas de red aceptan ahora conexiones desde todas las redes.MediaT1562.007
AZ-ST-005Descarga masiva de blobsUna misma identidad descargó muchos blobs distintos desde una misma IP en menos de una hora.AltaT1530, T1567
AZ-ST-006Lecturas anónimas de blobsSe descargaron blobs sin ninguna autenticación.MediaT1530
AZ-DE-001Configuración de diagnóstico eliminadaUn recurso (Key Vault, almacenamiento, NSG…) dejó de enviar sus logs.AltaT1562.008
AZ-DE-002Exportación del Activity Log eliminadaLa suscripción dejó de exportar su Activity Log.AltaT1562.008
AZ-DE-003Plan de Defender for Cloud desactivadoUn plan de Defender volvió al nivel Free.AltaT1562.001
AZ-DE-004Bloqueo de recurso eliminadoLos bloqueos protegen los recursos contra eliminación o cambios.MediaT1562
AZ-DE-005Regla de NSG abierta a InternetSe creó una regla de entrada que permite cualquier origen / Internet.MediaT1562.007
AZ-PER-001Runbook o webhook de Automation creadoLos runbooks ejecutan código con la identidad (a menudo privilegiada) de la cuenta de Automation.MediaT1648
AZ-PER-002Logic App o Function modificadaEl código serverless puede mantener el acceso y ejecutarse con una identidad administrada.BajaT1648
AZ-PER-003Credencial federada añadida a una identidad administradaUn proveedor de identidad externo puede ahora obtener tokens para esta identidad.AltaT1098.001
AZ-ID-001Entidad de servicio usada desde una IP nuevaUna identidad de aplicación llamó a Azure desde una IP nunca vista durante el periodo de aprendizaje.MediaT1078.004
AZ-ID-002Token de identidad administrada usado desde una IP nuevaLa identidad de una VM o aplicación se usó desde otro lugar: probablemente robaron su token.AltaT1528, T1078.004
AZ-DEF-001Alerta de Defender for CloudMicrosoft Defender for Cloud generó una alerta de seguridad.Media
AZ-NET-001Puerto de administración accesible desde InternetSe permitieron flujos entrantes SSH / RDP / WinRM desde IP públicas.MediaT1133, T1021
AZ-NET-002Conexión a un puerto de mineríaUna VM se conectó a un puerto típico de pools de minería.AltaT1496
AZ-NET-003Gran transferencia salienteMás de 500 MB salieron de la red hacia una sola IP pública.MediaT1048
AZ-NET-004Tráfico de red con una IP del atacanteLos flow logs muestran tráfico con una IP implicada en otros hallazgos.AltaT1105

Entra ID (Azure AD) es una investigación aparte

Esta herramienta cubre los planos de control y de datos de Azure. Cómo obtuvo el atacante las credenciales — inicios de sesión, MFA, nuevos secretos de aplicación, consentimientos — está en los logs de Entra ID, que analiza la herramienta hermana: Forense de M365 / Entra ID

Limitaciones

  • Solo se puede encontrar lo que se registró: los logs de datos de Key Vault y almacenamiento debían estar activados antes del incidente, y el Activity Log se conserva 90 días.
  • Las detecciones de primera aparición necesitan más de 72 horas de historial antes de la actividad sospechosa.
  • Las reglas son heurísticas: una automatización legítima puede coincidir con ellas y un atacante cuidadoso puede quedarse bajo los umbrales. Un veredicto limpio no es una garantía.
  • Las exportaciones Avro (Event Hubs Capture) y Parquet aún no se leen; exporta en JSON o CSV.

Preguntas frecuentes

¿Se suben mis logs a algún sitio?

No. El analizador está escrito en Rust, compilado a WebAssembly, y se ejecuta en un Web Worker de tu navegador. No existe ningún punto de subida; incluso puedes desconectarte de la red una vez cargada la página.

¿Por qué logs empiezo?

Por el Activity Log de cada suscripción implicada, cubriendo el periodo sospechoso más al menos una semana antes. Añade los logs de Key Vault y almacenamiento si estaban activados, y los flow logs de las VNet afectadas.

¿Cómo sé si un Run Command era malicioso?

El Activity Log registra quién lo ejecutó, cuándo y desde qué IP, pero no siempre el script. Correlaciónalo con los logs de la propia VM (carpeta de la extensión RunCommand), las alertas de Defender y los flujos salientes de la VM justo después.

¿Detecta criptominería?

Señala VM creadas en regiones sin uso previo, conexiones salientes a puertos habituales de pools de minería en los flow logs y alertas de Defender. Revisa también la facturación: la minería suele verse como un pico repentino del coste de cómputo.

¿Qué hago ante un veredicto «Comprometido»?

Primero contener: rotar las credenciales de las entidades implicadas, eliminar las asignaciones de rol que crearon, aislar las VM afectadas y rotar los secretos leídos. Conserva los logs antes de que caduquen. Después investiga el acceso inicial en Entra ID.

¿Puedo reutilizar las reglas de detección?

Sí. Están en un archivo JSON sencillo con identificadores estables, etiquetas de MITRE ATT&CK y claves de remediación, para revisarlas, ampliarlas y reutilizarlas en otras herramientas.

¿Está relacionada con Microsoft?

No. Es una herramienta independiente; Azure solo se menciona para describir qué logs lee.

El Activity Log de Azure se conserva 90 días y los logs de recursos vienen desactivados. Qué no puede decirte cada log y cómo redactar una conclusión honesta.
Una intrusión ficticia en Azure investigada de principio a fin: secreto filtrado, rol autoasignado, Run Command, token de identidad robado, Key Vault y blobs.
Cómo abusan los atacantes de entidades de servicio e identidades administradas de Azure: secretos filtrados, robo de tokens IMDS, credenciales federadas.

Esta herramienta no está afiliada a Microsoft Corporation ni cuenta con su aprobación o patrocinio. Azure, Microsoft Azure y Microsoft Defender for Cloud son marcas comerciales del grupo de empresas Microsoft. Los demás nombres son marcas comerciales de sus respectivos propietarios.