☁️Entra ID🏢Active DirectoryIdentityPasswordConfig

Protección de contraseñas Entra ID: listas y caducidad

Revisa la protección de contraseñas Entra ID, los términos prohibidos personalizados, los modos Audit y Enforced de AD DS y la trampa de la caducidad.

Younes AZABARPor Younes AZABAR11 min de lectura
Protección de contraseñas Entra ID: listas y caducidad

¿Qué es la protección de contraseñas Entra ID?

La protección de contraseñas Entra ID evalúa las contraseñas nuevas frente a los términos prohibidos de la lista global de Microsoft y, cuando está configurada, la lista personalizada de una organización. La revisión operativa plantea tres preguntas distintas: ¿se incluyen los términos propios de la organización, se bloquean realmente los cambios locales y la caducidad de las contraseñas sigue obligando a realizar cambios periódicos?

Microsoft documenta que la lista global en la nube es automática y no se puede desactivar. Por tanto, la ausencia de una lista personalizada no significa que el inquilino carezca de protección de contraseñas. Significa que la organización no ha añadido su propio vocabulario a la base de protección. La validación se realiza durante los cambios y restablecimientos de contraseñas. Microsoft Learn: conceptos de protección de contraseñas.

Considera esta revisión del control junto con la auditoría de seguridad de Microsoft Entra ID, que explica cómo verificar los controles de acceso aplicables, los roles privilegiados, la confianza en las aplicaciones y las identidades externas. Una directiva de contraseñas por sí sola no responde a esas preguntas más amplias.

Cómo funciona: por qué la lista global no basta

Microsoft construye su lista global a partir de la telemetría de seguridad de Entra. La lista personalizada añade términos locales, como marcas, productos, ubicaciones de la sede y abreviaturas internas. Las dos listas funcionan conjuntamente; la lista personalizada no sustituye a la base global. Microsoft Learn: contraseñas prohibidas personalizadas.

No supongas que toda contraseña que contenga un término incluido en la lista debe rechazarse. El algoritmo de evaluación normaliza la entrada, comprueba variantes y puntúa la contraseña resultante; una contraseña suficientemente robusta puede contener un término prohibido y aun así aceptarse. Lee el algoritmo de evaluación documentado antes de diseñar las pruebas de validación.

Esta distinción cambia cómo debe ser una lista personalizada útil. Revisa el vocabulario de la organización en lugar de importar una enorme colección de contraseñas completas. Comprueba si están representadas las marcas actuales, los nombres de empresas adquiridas, las familias de productos y las abreviaturas con significado local. Vincula los casos de prueba a los términos configurados para que un rechazo pueda investigarse, en lugar de darse por supuesto.

El artículo sobre password spraying explica el ataque: un pequeño conjunto de intentos distribuido entre muchas cuentas. Esta guía revisa la configuración que reduce las elecciones de contraseñas predecibles antes de que lleguen esos intentos. No considera un hallazgo sobre la directiva de contraseñas como prueba de que se haya producido password spraying.

La trampa de la caducidad

Las recomendaciones de Microsoft sobre directivas de contraseñas desaconsejan la caducidad periódica para las cuentas exclusivamente en la nube y recomiendan contraseñas que no caduquen. Las mismas recomendaciones destacan la unicidad de las contraseñas, el registro de MFA y la protección de identidades. Eliminar la caducidad programada debe acompañarse de esos controles; no es un motivo para ignorar una posible vulneración.

El hallazgo contraintuitivo es la caducidad habilitada, en lugar de la caducidad deshabilitada. Revisa por qué existe un requisito de cambio basado en la antigüedad, a qué población de identidades se aplica y si una exigencia vinculante impide eliminarlo. Mantén cualquier excepción de este tipo separada de la base recomendada para la nube. No des por corregida una restricción empresarial documentada solo porque difiera de la recomendación predeterminada.

Los valores predeterminados no demuestran el estado de tu inquilino

La página sobre directivas de contraseñas de Entra documenta que la antigüedad máxima predeterminada actual no implica caducidad, pero indica un valor predeterminado de 90 días para los inquilinos creados antes de 2021. También describe por separado la configuración individual del usuario para que la contraseña no caduque. Por tanto, la antigüedad del inquilino y una marca del usuario no sustituyen la lectura de la directiva efectiva.

El procedimiento de caducidad de Microsoft 365 se aplica a los usuarios exclusivamente en la nube. Excluye explícitamente a los usuarios híbridos que utilizan sincronización del hash de contraseñas, autenticación de paso a través o federación local. En una revisión híbrida, identifica la autoridad responsable de las contraseñas antes de elegir el procedimiento de cambio.

Medir la configuración antes de cambiarla

1. Registrar los ajustes del portal Password Protection

Abre Entra ID > Authentication methods > Password protection. Registra Enforce custom list, las entradas de la lista, Enable password protection on Windows Server Active Directory y el Mode local. Son observaciones independientes. Una opción de Windows Server habilitada no indica si los agentes han recibido una directiva ni si todos los controladores previstos están cubiertos.

La página de operaciones locales de Microsoft indica que Audit acepta las contraseñas que se rechazarían y registra el resultado; Enforced rechaza las contraseñas no seguras. Establecer la opción de Windows Server en No detiene la validación en los agentes DC desplegados. Estos ajustes afectan a AD DS, no son un interruptor que desactive la lista global automática en la nube.

2. Leer la excepción de caducidad del usuario en la nube

Con Microsoft Graph PowerShell instalado y conectado al inquilino previsto con al menos el rol User Administrator, tal como exige el procedimiento citado, utiliza el siguiente comando, reproducido sin cambios del procedimiento de comprobación de caducidad de Microsoft:

Get-MgUser -All -Property UserPrincipalName, PasswordPolicies | Select-Object UserPrincipalName, @{N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}

-All solicita todos los usuarios; -Property recupera explícitamente las propiedades utilizadas por la expresión. Interpreta el resultado en el sentido correcto: PasswordNeverExpires=True significa que la marca de desactivación está presente. False significa que no se ha encontrado esa marca; por sí solo no demuestra una antigüedad máxima finita del dominio.

Combina este inventario con Microsoft 365 admin center > Settings > Org Settings > Security and Privacy > Password expiration policy para la población en la nube correspondiente. Registra el ámbito de los dominios y las excepciones individuales. El procedimiento advierte que los nuevos dominios administrados, o los convertidos desde federación, necesitan que se vuelva a aplicar la directiva de la organización para actualizar todos los dominios. Microsoft Learn: directiva de caducidad.

Aquí no se muestra ningún resultado de un inquilino: el comando es una medición documentada, no una afirmación de que un entorno concreto haya superado el control.

Detección: verificar la aplicación local

Utiliza el canal Admin del agente DC en Applications and Services Logs > Microsoft > AzureADPasswordProtection > DCAgent > Admin. La referencia de supervisión de Microsoft distingue los siguientes resultados:

ObservaciónCambio de contraseñaEstablecimiento/restablecimiento de contraseñaInterpretación
Rechazo por la directiva personalizada10016 y 3000210017 y 30003La contraseña enviada se rechazó conforme a la directiva del cliente.
La directiva personalizada rechazaría en Audit10024 y 3000810025 y 30007La contraseña se aceptó porque la directiva estaba en Audit.
No hay directiva disponible3000130001La aceptación sin una directiva de contraseñas de Azure disponible requiere investigación.

El evento 30019 es una notificación del estado de la directiva, no un resultado emitido para cada cambio o restablecimiento de contraseña. Indica que la directiva recibida deshabilitó el procesamiento: las contraseñas posteriores se consideran conformes sin validación y no se registran más eventos hasta que cambie la directiva.

Los pares de eventos asociados comparten un CorrelationId. Revisa el evento que explica el motivo junto con el resultado y conserva la identidad del controlador y la marca de tiempo. No cuentes el par como dos solicitudes rechazadas independientes.

Para obtener un resumen específico de un controlador, Microsoft proporciona este comando en un servidor proxy de Password Protection:

Get-AzureADPasswordProtectionSummaryReport -DomainController bplrootdc2

Este es el nombre del controlador del ejemplo de Microsoft, no un entorno observado aquí. Sustitúyelo por el controlador que estés revisando. El informe lee los registros Admin del agente mediante PowerShell remoto; la falta de acceso o de agentes limita las pruebas disponibles. No interpretes un informe vacío como una prueba satisfactoria de aplicación.

Estos eventos describen la validación de contraseñas, no ataques de inicio de sesión. Correlaciona un incidente mediante la telemetría de inicio de sesión por separado; un rechazo de la lista personalizada por sí solo no identifica a la persona que intenta realizar password spraying.

Corrección: términos personalizados, aplicación AD DS y caducidad (Remediation)

1. Habilitar y validar la lista personalizada

Sigue el tutorial de la lista personalizada con al menos el rol Authentication Policy Administrator y licencias Entra ID P1 o P2. Establece Enforce custom list en Yes, introduce un término por línea y guarda. Los términos deben tener entre 4–16 caracteres; la lista admite hasta 1.000 términos. Las actualizaciones pueden tardar varias horas.

Utiliza una cuenta de prueba sin privilegios de administrador y los requisitos previos documentados de SSPR. Prueba una variante débil de un término configurado después de la propagación. Registra la aceptación o el rechazo sin conservar la contraseña. Si una prueba se acepta inesperadamente, examina la aplicación, la propagación y el algoritmo de evaluación antes de declarar ineficaz la lista.

2. Completar el despliegue local

Sigue la guía de despliegue de Microsoft: instala y registra el servicio proxy y el bosque, despliega los agentes DC y ten en cuenta el reinicio necesario para cargar el filtro de contraseñas. Los controladores de escritura son los puntos de validación; los RODC reenvían las operaciones de contraseñas y no necesitan un agente DC.

Audit es el modo inicial documentado. Aprovecha ese período para probar los flujos de cambio de contraseña y la promoción/degradación de los controladores de dominio; después pasa a Enforced tras resolver los problemas operativos. Confirma que la opción de Windows Server está en Yes y guarda el cambio mediante el procedimiento de operaciones. Repite una prueba controlada con una contraseña débil e inspecciona sus eventos de rechazo correlacionados.

La guía de despliegue también explica el funcionamiento con una directiva en caché cuando los proxies no están disponibles. Verifica la vigencia de la directiva además de la presencia de agentes: un servicio en ejecución y una captura del portal son pruebas diferentes.

3. Eliminar la caducidad periódica en la nube cuando corresponda

Para los usuarios exclusivamente en la nube, revisa la opción recomendada de no caducidad en el panel de caducidad de Microsoft 365. Para la excepción de un usuario individual, Microsoft documenta este comando en Establecer una contraseña para que nunca caduque:

Update-MgUser -UserId <user ID> -PasswordPolicies DisablePasswordExpiration

El marcador de posición se copia de la documentación; sustitúyelo por el identificador del usuario previsto. Revisa los valores existentes de la directiva de contraseñas antes de una actualización específica. Evita convertir el ejemplo en un cambio para todo el inquilino sin revisión y vuelve a ejecutar después el inventario de solo lectura.

Para las identidades híbridas, resuelve por separado la directiva de AD y el modelo de sincronización. El procedimiento de la nube no certifica un cambio de la antigüedad máxima local. Conserva los cambios de contraseña motivados por una vulneración y los controles MFA y de riesgo de identidad recomendados por Microsoft.

Cómo detecta EtcSec este problema

Las implementaciones de los detectores de etc-collector revisadas para este artículo evalúan tres señales de configuración:

Identificador del catálogoCondición implementadaLímite de interpretación
PASSWORD_PROTECTION_DISABLEDLa configuración del inquilino recopilada contiene un valor PasswordProtectionEnabled no nulo establecido explícitamente en false.La ausencia de ajustes por sí sola no activa el hallazgo. Contrástalo con el portal; no demuestra que se haya desactivado la lista global automática de Microsoft en la nube.
CUSTOM_BANNED_PASSWORDS_DISABLEDExiste la configuración del inquilino y CustomBannedPasswordListConfigured es false.La recuperación del colector se realiza en la medida de lo posible: false también puede reflejar una lectura fallida de los ajustes. Confirma la recopilación correcta y la configuración del portal; esta marca por sí sola no verifica el interruptor de aplicación personalizada, la propagación de la directiva ni la cobertura de DC.
PASSWORD_EXPIRATION_ENABLEDEl valor recopilado DomainInfo.MaxPasswordAge es mayor que cero y menor que 365 días.Esta implementación evalúa un valor de antigüedad de un dominio AD, no un inventario completo de las directivas de caducidad de los usuarios en la nube.

Utiliza estos hallazgos para iniciar las comprobaciones manuales correspondientes. La ausencia de un hallazgo no sustituye las mediciones del portal, el inventario Graph ni la validación controlada de AD DS descritos anteriormente. Cierra cada corrección con pruebas del recorrido real de cambio de contraseña que se está protegiendo.

Explore las páginas de identidad que apoyan este tema