La mayoría de las organizaciones cree saber dónde están sus puertas de entrada. Está la página de login, la política de contraseñas, la app de autenticación que vibra a las dos de la mañana y la regla de Acceso Condicional que bloquea un país sospechoso. Los equipos de seguridad pasan años reforzando todo eso.
Después, un servicio de backup entra por una puerta que nunca estuvo en el plano.
Entre las 06:13 y las 08:34 UTC del 15 de octubre de 2026, un actor desconocido usó una credencial comprometida de ConnectWise Cloud Backup, antes SkyKick, para obtener tokens de Microsoft Graph dentro de inquilinos de Microsoft 365 que tenían la aplicación instalada. Huntress confirmó inicios de sesión no autorizados en 173 inquilinos de socios y clientes. Su telemetría ampliada mostró actividad desde la misma dirección contra casi 1.000 inquilinos de Entra, con más de 300 exitosos. El tráfico avanzaba en orden de GUID, unos segundos por inquilino: eso es un script recorriendo una lista, no una persona.
Nadie escribió una contraseña. Nadie aprobó una notificación push. La aplicación hizo exactamente lo que fue diseñada para hacer.
Lo que el atacante heredó
ConnectWise Cloud Backup protege datos de Microsoft 365 y Google Workspace para proveedores de servicios gestionados y sus clientes. Para hacerlo recibe un consentimiento amplio y permanente: lectura y escritura en buzones, OneDrive, SharePoint, chats de Teams e información de directorio, incluidos derechos de restauración.
Quien tiene esa credencial no necesita escalar. Hereda todo. Según el análisis de Todyl, el acceso incluía derechos completos de buzón vía Exchange Web Services, archivos en OneDrive y SharePoint, mensajes de Teams y lectura de directorio, con capacidad de restaurar datos. Eso no es un punto de apoyo: es todo el entorno.
El inicio de sesión vino de 144.172.64[.]128, una dirección del rango de RouterHosting. Los inicios de sesión legítimos de esta aplicación suelen salir del espacio IPv6 privado de Azure, así que la anomalía era visible para quien filtrara por ella. La clave es ese "quien filtrara": los inicios de sesión de entidades de servicio están en otra pestaña de Entra. Si tu monitorización solo mira usuarios, este evento no generó ruido.
Por qué el MFA y el Acceso Condicional nunca se activaron
El MFA autentica personas. Las políticas de Acceso Condicional se escriben contra usuarios y grupos. Una aplicación que se autentica con su propio secreto o certificado no es ninguna de las dos cosas. Es una entidad de servicio, y su token se emite porque la credencial coincide, no porque alguien superara un desafío.
Los controles habituales no fueron eludidos: quedaron fuera de alcance. El perímetro aquí no era la verificación de identidad, era el consentimiento: cada inquilino donde la app fue aprobada era alcanzable con una sola credencial. Revocar sesiones de usuario tampoco ayuda. Desactivar la app frena tokens nuevos, pero los ya emitidos siguen válidos hasta 90 minutos, tiempo de sobra para un barrido automatizado.
La segunda herida: una app que se coronó a sí misma
En al menos dos inquilinos el comportamiento fue más allá de leer. Hacia las 03:45 UTC, con dos minutos de diferencia, la app ConnectWise Cloud Management para Microsoft Teams se autoconcedió el rol de Administrador Global y ejecutó un script (Python-urllib/3.12) que añadió nuevos secretos de cliente a otras aplicaciones registradas. En un caso incluyó una aplicación de Huntress y, por separado, una aplicación de gestión de un MSP.
Piensa en la forma de eso. Una app de gestión es el tipo de herramienta que los MSP consienten en los inquilinos de sus clientes. Una credencial añadida ahí no vale solo para un inquilino: es una llave que puede funcionar en todos los que confíen en esa herramienta. Huntress eliminó la credencial no autorizada de su aplicación el 16 de octubre y activó App Instance Property Lock.
Huntress también señaló lo que no vio: sin manipulación de buzones ni archivos, sin cambios de usuarios o políticas en los dos inquilinos examinados. Y una advertencia que importa más que la ausencia de pruebas: las lecturas de directorio de Graph normalmente no dejan registro. No puedes demostrar que los datos no se tocaron cuando las lecturas nunca se registraron.
El resto del día
La misma dirección se usó en una segunda oleada el 15 de octubre, entre las 09:25 y las 12:35 UTC y de nuevo de 13:54 a 14:20 UTC, contra 16 inquilinos protegidos por Huntress en sectores de política, seguridad nacional, comercio y minerales críticos. La mayoría no usaba productos ConnectWise, así que los intentos fallaron porque la app no estaba presente. Ese detalle es todo el argumento del mínimo privilegio en una línea: la ausencia de la app fue el control que los salvó.
La misma infraestructura también había hecho password spraying contra cuatro despachos de abogados el 13 y 14 de octubre. ConnectWise ha desactivado el acceso de Cloud Backup hasta nuevo aviso y afirma no tener evidencia de que los datos de backup de socios se hayan visto comprometidos.
Qué hacer esta semana, no el próximo trimestre
- Abre los registros de inicio de sesión de entidades de servicio. En el centro de administración de Microsoft Entra ve a Supervisión, Registros de inicio de sesión y la pestaña de entidades de servicio. Filtra por el ID de aplicación 506e08f9-6e9a-4da4-942b-a099a03644ae y revisa el 15 de octubre. Repite con Exchange Online b78f6a77-d4e5-46fb-87e5-d1648bd02519, Teams 24205314-2b89-4e07-a2a4-579e898a5640 y SharePoint b2b55f5b-7758-4719-8d8f-88ae172e6bdb.
- Busca la dirección fuera de lugar. Cualquier autenticación desde fuera de los rangos esperados de Microsoft es un hallazgo. 144.172.64[.]128 es el indicador principal, y 144.172.64[.]99, .60 y 144.172.94[.]243 aparecen en intentos fallidos relacionados.
- Desactiva las apps, no las borres. Borrar destruye la traza de auditoría que vas a necesitar. Mantenlas desactivadas hasta que ConnectWise confirme la rotación.
- Audita cada secreto y certificado nuevo añadido a cualquier registro de aplicación desde el 13 de octubre, incluidas credenciales federadas. Una fecha de caducidad inesperada en 2027 o 2028 es un marcador de persistencia.
- Revisa las asignaciones de roles de directorio para aplicaciones y el historial de gestión de identidades privilegiadas.
- Activa los registros de actividad de Graph y la auditoría unificada ya. No puedes investigar lecturas que nunca se registraron.
- Asume que los datos legibles fueron leídos. Revisa reglas de bandeja de entrada y reenvíos, enlaces compartidos y avisa a quien custodie la confidencialidad del cliente.
- Reduce el consentimiento permanente. Ámbitos de mínimo privilegio, bloqueo de propiedades de instancia y revisión periódica de cada app de terceros en cada inquilino.
La lección para empresas en crecimiento
Si tienes una empresa de 40 personas en Microsoft 365, casi seguro arrastras varias apps aprobadas hace años por alguien que ya no está, cada una con acceso amplio y permanente. Es la misma exposición, a menor escala.
La lección incómoda del 15 de octubre no es que ConnectWise fuera descuidada. Es que nuestro modelo de seguridad de identidad termina en el humano. Las entidades de servicio, los consentimientos y las credenciales de aplicación son el perímetro real de un inquilino moderno, y en la mayoría de las organizaciones nadie es su dueño.
Una credencial. Ciento setenta y tres inquilinos. Ningún aviso de MFA en ningún sitio. Arregla el inventario antes de que el inventario te arregle a ti.