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.

Análisis de flow logs de NSG y VNet para exfiltración

Análisis de flow logs de NSG y VNet en respuesta a incidentes: formato de tuplas, bytes y estados de flujo, exfiltración, minería, IP atacantes y puntos ciegos.

Publicado el 7 min de lectura

En resumen. Los flow logs son registros de capa 4 de cada flujo que atraviesa tus NSG (flow logs de NSG) o tus VNet (flow logs de VNet), escritos en almacenamiento cada minuto como tuplas: marca de tiempo, origen, destino, puertos, protocolo, dirección, decisión o estado y, en NSG v2 y VNet, paquetes y bytes en cada sentido. En respuesta a incidentes responden a tres preguntas: ¿habló una VM comprometida con la IP del atacante?, ¿salieron muchos datos hacia una misma dirección?, ¿algo está llegando a pools de minería o a puertos de administración? Los flow logs de NSG se retiran el 30 de septiembre de 2027; los de VNet los sustituyen. Los flow logs no ven a clientes de Internet que descargan directamente de una cuenta de almacenamiento.

Los flow logs son el log menos vistoso de Azure y a menudo el que cierra el caso. El Activity Log dice «Run Command a las 02:19»; el flow log dice «a las 02:20 la VM descargó 46 KB desde la IP del atacante por el puerto 80». Es la diferencia entre sospecha y confirmación.

Dos formatos, una misma idea

Flow logs de NSGFlow logs de VNet
AlcanceUn grupo de seguridad de redUna red virtual completa (subredes, NIC)
EstadoSe retiran el 2027-09-30; ya no se pueden crearVigentes
Contenedor de almacenamientoinsights-logs-networksecuritygroupfloweventinsights-logs-flowlogflowevent
Categoría del registroNetworkSecurityGroupFlowEventFlowLogFlowEvent
Marca de tiempo en la tuplaSegundos UnixMilisegundos Unix
ProtocoloT / UNúmero IANA (6 = TCP, 17 = UDP)
DecisiónCampo separado A / DEstado de flujo D para denegado
Bytes / paquetesSolo versión 2Sí, además del estado de cifrado

Ambos se escriben en intervalos de un minuto (flow logs de NSG, flow logs de VNet). Una tupla de NSG versión 2:

1542110379,10.5.16.4,203.0.113.117,59932,443,T,O,A,E,1,66,1,66

se lee así: hora, IP de origen, IP de destino, puerto de origen, puerto de destino, TCP, saliente, permitido, flujo terminado, 1 paquete / 66 bytes enviados, 1 paquete / 66 bytes recibidos. Una tupla de VNet:

1663146003606,10.0.0.6,192.0.2.180,23956,443,6,O,E,NX,3,767,2,1580

añade el estado de cifrado (NX = sin cifrar) y usa milisegundos y números de protocolo IANA.

Contar bien los bytes

Los estados de flujo son B (inicio, sin contadores), C (continuación, contadores cada cinco minutos en flujos largos) y E (fin, contadores finales); los flow logs de VNet añaden D (denegado). Microsoft especifica que los contadores de C y E son acumulados desde la tupla anterior del flujo, así que el total de una conversación es la suma de todas las tuplas C y E, no la última. Ignorarlo provoca tanto dobles recuentos como recuentos a la baja.

Otras dos trampas de la documentación de Microsoft:

  • En los flow logs de NSG, los flujos que afectan a reglas TCP de entrada no predeterminadas se tratan sin estado y no se registran sus contadores de bytes y paquetes; los flow logs de VNet sí admiten bytes y paquetes en flujos sin estado.
  • Las VM sin IP pública pueden mostrar igualmente tuplas entrantes desde direcciones de Internet en puertos SNAT; el intento se registra aunque Azure no lo entregue.

Qué buscar

PatrónPor qué importaRegla del analizador
Cualquier flujo entre una VM y una IP ya vista en otros hallazgos (la IP que lanzó el Run Command, leyó el almacén…)Relaciona al atacante del plano de control con la actividad en la VM: segunda fase, C2, exfiltraciónAZ-NET-004, alto
Más de 500 MB salientes de la red hacia una única IP públicaCandidato a exfiltración (T1048)AZ-NET-003, medio
Salida hacia puertos típicos de pools de minería (3333, 4444, 5555, 7777, 14433, 14444, 45560, 45700)Criptominería (T1496)AZ-NET-002, alto
Entrada permitida desde IP públicas a 22, 3389, 5985, 5986Puertos de administración expuestos (T1133)AZ-NET-001, medio
Escaneos entrantes denegadosRuido de fondo en cualquier IP pública— (solo contexto)

AZ-NET-004 es la más valiosa porque no necesita umbral: en cuanto el analizador tiene una IP atacante procedente del Activity Log, de Key Vault o de los logs de almacenamiento, cada flujo hacia o desde esa IP es una prueba. La lista de puertos de minería es una heurística; los servicios que usen legítimamente esos puertos coincidirán.

Cómo gestiona el analizador el volumen

Una subred con actividad escribe millones de tuplas al día. El analizador Azure Forensics nunca las guarda una a una: agrega por conversación (origen, destino, puerto de destino, protocolo, dirección, decisión) con primera y última aparición, número de tuplas y paquetes y bytes sumados. La pestaña Entidades muestra después, para cada IP, los totales enviados y recibidos: la forma más rápida de encontrar «la única dirección que recibió 40 GB».

Aun así, sé selectivo al exportar: descarga solo las horas del incidente y las VNet o NSG afectados. La guía de exportación tiene las rutas.

Lo que no ven los flow logs

  • El acceso directo a endpoints PaaS desde fuera. Un atacante que descarga blobs por Internet con una SAS nunca toca tu VNet. Usa los logs de almacenamiento.
  • Las cargas útiles. Los flow logs son solo metadatos: sin URL, sin nombre de servidor TLS, sin contenido.
  • El tráfico en el propio punto de conexión privado. Microsoft indica que solo puede capturarse en la VM de origen.
  • Los servicios no compatibles. Microsoft enumera servicios sin soporte de flow logs, entre ellos App Service, Azure Functions, Logic Apps y Container Instances.
  • Todo lo anterior a la activación de los flow logs, y todo lo que la retención de la cuenta de almacenamiento ya haya borrado.

Un ejemplo comentado

En el ejemplo ficticio del sitio, un Run Command empieza en vm-app-01 a las 02:19:40 UTC. El flow log de VNet muestra la VM (10.10.1.4) abriendo una conexión hacia la IP del atacante por el puerto 80 a las 02:20:05 (812 bytes enviados, 46 338 recibidos, el tamaño de un script pequeño) y por el puerto 443 cuatro segundos después. Ninguno de los dos flujos llamaría la atención por sí solo; ambos se convierten en hallazgos de gravedad alta porque la IP ya aparece en el evento de Run Command. El caso paso a paso muestra la cadena completa.

FAQ

¿Se van a retirar los flow logs de NSG?

Sí. Microsoft indica que los flow logs de NSG se retiran el 30 de septiembre de 2027 y que ya no se admite crear nuevos. Los flow logs de red virtual (VNet) son su sustituto.

¿Muestran los flow logs cuántos datos salieron de una VM?

Los flow logs de NSG versión 2 y los flow logs de VNet incluyen paquetes y bytes en cada sentido en las tuplas de continuación (C) y de fin (E). Sumándolos por conversación se obtiene el volumen. Los flow logs de NSG versión 1 no tienen contadores de bytes.

¿Pueden los flow logs mostrar descargas desde una cuenta de almacenamiento hechas por un atacante externo?

No. Los flow logs registran el tráfico de las interfaces de red de tus redes virtuales. Un atacante que descarga blobs directamente desde el endpoint de almacenamiento por Internet nunca atraviesa tu VNet; para eso usa los logs de recursos de almacenamiento.

Artículos relacionados

Artículos relacionados

Investiga una exfiltración en Azure Storage: listAccountSas y listKeys en el Activity Log, ráfagas de GetBlob en los logs de blobs, hashes de SAS y qué rotar.
Cómo abusan los atacantes de entidades de servicio e identidades administradas de Azure: secretos filtrados, robo de tokens IMDS, credenciales federadas.
Configuraciones de diagnóstico borradas, exportación del Activity Log eliminada, planes de Defender en Free, bloqueos y NSG: detectar la evasión en Azure.

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.