Data/Locales/checks/es/ADPasswordPolicyChecks.json

{
  "_family": "ADPasswordPolicyChecks.json",
  "ADPWD-001": {
    "name": { "value": "Política de contraseñas predeterminada del dominio", "status": "machine-draft" },
    "description": { "value": "La directiva predeterminada del dominio (Default Domain Policy) define la configuración de referencia de contraseñas y bloqueo de cuentas para todos los usuarios del dominio. Esta política debe imponer requisitos de contraseñas robustos, ya que se aplica a toda cuenta no cubierta por una política de contraseñas específica de grano fino", "status": "machine-draft" },
    "recommendedValue": { "value": "Longitud mínima de 14 caracteres, complejidad habilitada, antigüedad máxima de 365 días, antigüedad mínima de 1 día, historial de 24 contraseñas", "status": "machine-draft" },
    "remediationSteps": { "value": "Revise la Default Domain Policy con Get-ADDefaultDomainPasswordPolicy. Configúrela mediante la Administración de directivas de grupo: Default Domain Policy > Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy. Establezca los valores según los requisitos de seguridad de la organización", "status": "machine-draft" }
  },
  "ADPWD-002": {
    "name": { "value": "Enumeración de políticas de contraseñas de grano fino", "status": "machine-draft" },
    "description": { "value": "Las políticas de contraseñas de grano fino (FGPP) permiten aplicar distintos requisitos de contraseñas a diferentes grupos de usuarios. Todas las FGPP deben documentarse para comprender el panorama completo de la política de contraseñas y garantizar que ningún grupo quede cubierto por políticas más débiles de lo previsto", "status": "machine-draft" },
    "recommendedValue": { "value": "Todas las FGPP documentadas con su precedencia, grupos de destino y parámetros de política. Como mínimo, una FGPP estricta para las cuentas privilegiadas y una FGPP estándar para los usuarios normales", "status": "machine-draft" },
    "remediationSteps": { "value": "Enumere todas las FGPP con Get-ADFineGrainedPasswordPolicy -Filter *. Documente el valor de precedencia, los grupos de destino y los parámetros de cada política. Verifique que las cuentas privilegiadas estén cubiertas por una política más estricta que los usuarios estándar. Cree FGPP si solo existe la Default Domain Policy", "status": "machine-draft" }
  },
  "ADPWD-003": {
    "name": { "value": "Análisis de aplicación de FGPP", "status": "machine-draft" },
    "description": { "value": "Las políticas de contraseñas de grano fino deben aplicarse a los grupos correctos para ser eficaces. Una aplicación mal configurada de una FGPP puede dejar cuentas de alto valor bajo políticas más débiles o crear brechas de política en las que no se aplique ninguna FGPP y se utilice en su lugar la Default Domain Policy", "status": "machine-draft" },
    "recommendedValue": { "value": "Todas las cuentas privilegiadas cubiertas por una FGPP estricta. Sin brechas de política en las que las cuentas de alto valor recaigan en una política predeterminada más débil", "status": "machine-draft" },
    "remediationSteps": { "value": "Para cada FGPP, revise el atributo msDS-PSOAppliesTo para ver los grupos de destino. Coteje con la pertenencia a grupos privilegiados para verificar la cobertura. Utilice Get-ADUserResultantPasswordPolicy en cuentas concretas para determinar la política efectiva. Corrija cualquier brecha en la aplicación de las FGPP", "status": "machine-draft" }
  },
  "ADPWD-004": {
    "name": { "value": "Longitud mínima de contraseña", "status": "machine-draft" },
    "description": { "value": "Las contraseñas de menos de 14 caracteres son vulnerables al descifrado por fuerza bruta sin conexión con hardware GPU moderno. NIST SP 800-63B recomienda admitir contraseñas de hasta 64 caracteres y establecer un mínimo que equilibre seguridad y usabilidad. Para entornos de Active Directory, 14 caracteres es el mínimo recomendado de referencia", "status": "machine-draft" },
    "recommendedValue": { "value": "Mínimo de 14 caracteres para usuarios estándar y 25 caracteres para cuentas privilegiadas", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure la longitud mínima de contraseña en la Default Domain Policy o en la FGPP correspondiente: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > Minimum password length = 14. Cree una FGPP más estricta para las cuentas privilegiadas que exija 25 caracteres o más", "status": "machine-draft" }
  },
  "ADPWD-005": {
    "name": { "value": "Requisito de complejidad de contraseñas", "status": "machine-draft" },
    "description": { "value": "La complejidad de contraseñas de Windows requiere al menos tres de las cuatro categorías de caracteres (mayúsculas, minúsculas, dígitos, caracteres especiales) y que la contraseña no contenga el nombre de cuenta del usuario. Aunque NIST ya no exige la complejidad, deshabilitarla en Active Directory sin controles compensatorios (como listas de palabras prohibidas) debilita considerablemente las contraseñas", "status": "machine-draft" },
    "recommendedValue": { "value": "Complejidad habilitada. Idealmente complementada con Azure AD Password Protection o listas personalizadas de palabras prohibidas para defenderse de patrones comunes", "status": "machine-draft" },
    "remediationSteps": { "value": "Verifique que la complejidad esté habilitada en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Password must meet complexity requirements' = Enabled. Considere implementar Azure AD Password Protection para aplicar restricciones adicionales de contraseñas prohibidas", "status": "machine-draft" }
  },
  "ADPWD-006": {
    "name": { "value": "Política de bloqueo de cuentas", "status": "machine-draft" },
    "description": { "value": "Las políticas de bloqueo de cuentas protegen frente a ataques de fuerza bruta en línea y de rociado de contraseñas (password spraying) al bloquear las cuentas tras un umbral de intentos fallidos. Sin bloqueo, los atacantes pueden realizar intentos ilimitados de adivinación de contraseñas contra cualquier cuenta. Sin embargo, un bloqueo demasiado agresivo crea riesgo de denegación de servicio", "status": "machine-draft" },
    "recommendedValue": { "value": "Umbral de bloqueo de cuentas: 5-10 intentos. Duración del bloqueo: 15-30 minutos. Restablecer el contador tras: 15-30 minutos", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure el bloqueo de cuentas en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy. Establezca el umbral en 5-10 intentos, la duración en 15-30 minutos y la ventana de observación en 15-30 minutos. Supervise los eventos de bloqueo que puedan indicar ataques", "status": "machine-draft" }
  },
  "ADPWD-007": {
    "name": { "value": "Aplicación del historial de contraseñas", "status": "machine-draft" },
    "description": { "value": "El historial de contraseñas impide que los usuarios reutilicen cíclicamente las mismas contraseñas. Sin suficiente profundidad de historial, los usuarios pueden alternar entre un pequeño conjunto de contraseñas, anulando el beneficio de seguridad de los requisitos de rotación de contraseñas", "status": "machine-draft" },
    "recommendedValue": { "value": "Historial de contraseñas que recuerde al menos las 24 contraseñas anteriores", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Enforce password history' = 24 passwords remembered. Asegúrese también de que 'Minimum password age' esté establecido en al menos 1 día para evitar el ciclado rápido a través del historial", "status": "machine-draft" }
  },
  "ADPWD-008": {
    "name": { "value": "Antigüedad máxima de contraseña", "status": "machine-draft" },
    "description": { "value": "La antigüedad máxima de contraseña obliga a la rotación periódica de contraseñas. Aunque NIST SP 800-63B recomienda no imponer cambios periódicos obligatorios salvo que se sospeche un compromiso, muchos marcos de cumplimiento aún lo exigen. La política debe equilibrar los requisitos de cumplimiento con la usabilidad, evitando periodos de rotación excesivamente cortos que conduzcan a contraseñas débiles", "status": "machine-draft" },
    "recommendedValue": { "value": "Antigüedad máxima de contraseña de entre 90 y 365 días según los requisitos de cumplimiento. Para las cuentas privilegiadas, 60 días como máximo", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy > 'Maximum password age' = 365 days (o según el requisito de cumplimiento). Implemente una FGPP más estricta para las cuentas privilegiadas con un máximo de 60 días", "status": "machine-draft" }
  },
  "ADPWD-009": {
    "name": { "value": "Usuarios con contraseña que nunca expira", "status": "machine-draft" },
    "description": { "value": "Las cuentas con el indicador 'La contraseña nunca expira' eluden la política de antigüedad máxima de contraseña. Aunque esto puede ser aceptable para cuentas de servicio administradas (las gMSA gestionan la rotación automáticamente), las cuentas de usuario con este indicador conservan indefinidamente contraseñas comprometidas", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta de usuario con contraseña que nunca expira. Solo las cuentas de servicio administradas de grupo (gMSA) pueden tener exenciones de rotación automática", "status": "machine-draft" },
    "remediationSteps": { "value": "Identifique las cuentas con Get-ADUser -Filter {PasswordNeverExpires -eq $true -and Enabled -eq $true} -Properties PasswordNeverExpires. Revise cada cuenta en busca de justificación de negocio. Elimine el indicador en las cuentas de usuario y migre las cuentas de servicio a gMSA cuando sea posible. Documente cualquier excepción aprobada con controles compensatorios", "status": "machine-draft" }
  },
  "ADPWD-010": {
    "name": { "value": "Usuarios con contraseñas en blanco", "status": "machine-draft" },
    "description": { "value": "Las cuentas con el indicador PASSWD_NOTREQD pueden tener contraseñas en blanco, eludiendo por completo todas las políticas de contraseñas. A veces este indicador se establece de forma involuntaria durante los scripts de creación de cuentas. Cualquier cuenta con una contraseña en blanco puede ser accedida por cualquiera que conozca el nombre de usuario", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta habilitada con contraseñas en blanco o con el indicador PASSWD_NOTREQD", "status": "machine-draft" },
    "remediationSteps": { "value": "Identifique las cuentas con Get-ADUser -Filter {PasswordNotRequired -eq $true -and Enabled -eq $true}. Elimine el indicador PASSWD_NOTREQD y establezca de inmediato una contraseña robusta en todas las cuentas identificadas. Revise los scripts y procesos de creación de cuentas para evitar que este indicador se establezca en el futuro", "status": "machine-draft" }
  },
  "ADPWD-011": {
    "name": { "value": "Hashes de contraseña duplicados", "status": "machine-draft" },
    "description": { "value": "Que varias cuentas compartan el mismo hash de contraseña indica reutilización de contraseñas, contraseñas de uso común o cuentas con contraseñas predeterminadas. La reutilización de contraseñas amplifica el impacto del compromiso de una sola credencial, permitiendo el movimiento lateral entre múltiples cuentas", "status": "machine-draft" },
    "recommendedValue": { "value": "Sin agrupaciones de cuentas que compartan hashes de contraseña idénticos. Cada cuenta debe tener una contraseña única", "status": "machine-draft" },
    "remediationSteps": { "value": "Extraiga y compare los hashes NT utilizando herramientas con capacidad de DCSync (DSInternals) con la autorización adecuada. Identifique las agrupaciones de cuentas que comparten hashes. Fuerce cambios de contraseña en todas las cuentas de las agrupaciones duplicadas. Implemente filtros de contraseñas para evitar contraseñas comunes y considere implementar Azure AD Password Protection", "status": "machine-draft" }
  },
  "ADPWD-012": {
    "name": { "value": "Contraseñas en la base de datos HaveIBeenPwned", "status": "machine-draft" },
    "description": { "value": "Las contraseñas que aparecen en bases de datos de filtraciones conocidas se utilizan activamente en ataques de relleno de credenciales (credential stuffing). Comparar los hashes de contraseñas de Active Directory con la base de datos HaveIBeenPwned identifica las cuentas que usan contraseñas comprometidas y que probablemente sean objetivo de ataques", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta activa que use contraseñas encontradas en la base de datos HaveIBeenPwned", "status": "machine-draft" },
    "remediationSteps": { "value": "Compare los hashes NT con la base de datos de contraseñas HaveIBeenPwned (lista de hashes descargable) utilizando herramientas como DSInternals Test-PasswordQuality. Fuerce cambios de contraseña inmediatos en todas las cuentas con hashes coincidentes. Implemente Azure AD Password Protection o filtros de contraseñas personalizados para bloquear en adelante contraseñas filtradas conocidas", "status": "machine-draft" }
  },
  "ADPWD-013": {
    "name": { "value": "Comprobación de contraseñas con diccionario personalizado", "status": "machine-draft" },
    "description": { "value": "Las contraseñas basadas en términos específicos de la organización (nombre de la empresa, nombres de productos, estaciones del año, nombres de ubicaciones) se usan con frecuencia y son fáciles de adivinar por atacantes dirigidos. Las comprobaciones con diccionario personalizado identifican contraseñas que cumplen los requisitos de complejidad pero siguen siendo predecibles", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta que use contraseñas que contengan términos específicos de la organización, patrones comunes (estación + año) o recorridos de teclado", "status": "machine-draft" },
    "remediationSteps": { "value": "Cree un diccionario personalizado que incluya nombres de la empresa, nombres de productos, nombres de ubicaciones, estaciones del año y patrones comunes. Pruebe los hashes de contraseñas contra este diccionario utilizando DSInternals o herramientas similares. Fuerce cambios de contraseña en las cuentas coincidentes. Implemente filtros de contraseñas personalizados o una lista personalizada de contraseñas prohibidas de Azure AD Password Protection", "status": "machine-draft" }
  },
  "ADPWD-014": {
    "name": { "value": "Contraseñas predeterminadas o comunes", "status": "machine-draft" },
    "description": { "value": "Las cuentas que usan contraseñas predeterminadas, comunes o triviales de adivinar (como Password1, Welcome1 o el propio nombre de cuenta) son los primeros objetivos en los ataques de rociado de contraseñas. Estas contraseñas están incluidas en todas las listas de palabras de los atacantes y a menudo se prueban en primer lugar", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta que use contraseñas de las 1000 más comunes o que coincidan con patrones de contraseñas predeterminadas", "status": "machine-draft" },
    "remediationSteps": { "value": "Pruebe los hashes de contraseñas contra listas de contraseñas comunes (como SecLists) utilizando DSInternals Test-PasswordQuality. Fuerce cambios de contraseña inmediatos en todas las cuentas con contraseñas comunes. Implemente Azure AD Password Protection, que incluye una lista global de contraseñas prohibidas actualizada por Microsoft", "status": "machine-draft" }
  },
  "ADPWD-015": {
    "name": { "value": "Distribución de la antigüedad del último establecimiento de contraseña", "status": "machine-draft" },
    "description": { "value": "Analizar la distribución de la antigüedad de las contraseñas en todas las cuentas revela la eficacia de la aplicación de la política e identifica cuentas con contraseñas extremadamente antiguas. Las cuentas con contraseñas sin cambiar durante años pueden haber quedado excluidas de los cambios de política o tener establecido el indicador de contraseña que nunca expira", "status": "machine-draft" },
    "recommendedValue": { "value": "Ninguna cuenta de usuario habilitada con contraseñas más antiguas que la política de antigüedad máxima de contraseña. La distribución debe mostrar patrones de rotación regular", "status": "machine-draft" },
    "remediationSteps": { "value": "Genere un informe de distribución de la antigüedad de contraseñas con Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet | Group-Object {(New-TimeSpan $_.PasswordLastSet (Get-Date)).Days -replace '\\d$','0'}. Investigue las cuentas con contraseñas más antiguas de lo que permite la política. Fuerce cambios de contraseña donde sea necesario y revise los indicadores de contraseña que nunca expira", "status": "machine-draft" }
  },
  "ADPWD-016": {
    "name": { "value": "Estado de implementación de LAPS", "status": "machine-draft" },
    "description": { "value": "Local Administrator Password Solution (LAPS) proporciona contraseñas de administrador local únicas y generadas aleatoriamente para cada equipo, almacenadas de forma segura en Active Directory. Sin LAPS, las contraseñas de administrador local suelen ser idénticas en todas las máquinas, lo que permite un movimiento lateral trivial tras capturar un solo hash", "status": "machine-draft" },
    "recommendedValue": { "value": "LAPS implementado en el 100% de los equipos Windows unidos al dominio. Ningún equipo con contraseñas LAPS ausentes o caducadas", "status": "machine-draft" },
    "remediationSteps": { "value": "Implemente el cliente LAPS (CSE) en todos los equipos unidos al dominio mediante GPO, SCCM o Intune. Configure los parámetros de GPO de LAPS para la complejidad, la longitud (al menos 20 caracteres) y la antigüedad (30 días) de la contraseña. Verifique la implementación comprobando el atributo ms-Mcs-AdmPwd o msLAPS-Password en los objetos de equipo. Investigue cualquier equipo sin contraseñas LAPS", "status": "machine-draft" }
  },
  "ADPWD-017": {
    "name": { "value": "Expiración de contraseñas LAPS", "status": "machine-draft" },
    "description": { "value": "Las contraseñas LAPS deben rotarse con regularidad para limitar la ventana de exposición si se compromete una contraseña de administrador local. Las contraseñas LAPS caducadas u obsoletas indican que el cliente LAPS no funciona correctamente en esas máquinas", "status": "machine-draft" },
    "recommendedValue": { "value": "Expiración de contraseñas LAPS establecida en 30 días. Ningún equipo con contraseñas LAPS caducadas", "status": "machine-draft" },
    "remediationSteps": { "value": "Revise las fechas de expiración de las contraseñas LAPS en los objetos de equipo con Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwdExpirationTime. Identifique los equipos con contraseñas caducadas e investigue la funcionalidad del CSE de LAPS en esas máquinas. Configure la GPO para establecer la antigüedad de la contraseña en un máximo de 30 días", "status": "machine-draft" }
  },
  "ADPWD-018": {
    "name": { "value": "Windows LAPS frente a LAPS heredado", "status": "machine-draft" },
    "description": { "value": "Windows LAPS (integrado en Windows Server 2019 y posteriores y en Windows 10/11 con la actualización de abril de 2023) ofrece mejoras respecto al LAPS heredado, incluyendo cifrado de contraseñas, historial de contraseñas y gestión de la contraseña de DSRM. Las organizaciones deben migrar del LAPS heredado a Windows LAPS para obtener funciones de seguridad mejoradas", "status": "machine-draft" },
    "recommendedValue": { "value": "Windows LAPS implementado con el cifrado de contraseñas habilitado. Migración del LAPS heredado completada", "status": "machine-draft" },
    "remediationSteps": { "value": "Verifique qué versión de LAPS está implementada comprobando la presencia del atributo msLAPS-Password (Windows LAPS) frente a ms-Mcs-AdmPwd (LAPS heredado). Planifique la migración a Windows LAPS. Actualice el esquema de Active Directory para los atributos de Windows LAPS. Implemente los parámetros de GPO de Windows LAPS con el cifrado habilitado. Retire los componentes del LAPS heredado tras la migración", "status": "machine-draft" }
  },
  "ADPWD-019": {
    "name": { "value": "Azure AD Password Protection", "status": "machine-draft" },
    "description": { "value": "Azure AD Password Protection extiende la aplicación de contraseñas prohibidas a Active Directory local mediante la implementación de componentes de proxy y agente de controlador de dominio. Bloquea las contraseñas que coincidan con una lista global de contraseñas prohibidas curada por Microsoft y una lista personalizada opcional, evitando que los usuarios elijan contraseñas conocidas como débiles", "status": "machine-draft" },
    "recommendedValue": { "value": "Azure AD Password Protection implementado en modo forzado con una lista personalizada de contraseñas prohibidas configurada", "status": "machine-draft" },
    "remediationSteps": { "value": "Implemente el servicio proxy y el agente de controlador de dominio de Azure AD Password Protection en todos los controladores de dominio. Configure una lista personalizada de contraseñas prohibidas en Azure AD que incluya términos específicos de la organización. Establezca el modo en Enforced (no Audit). Supervise los rechazos de cambio de contraseña a través de los registros de eventos y los informes de Azure AD", "status": "machine-draft" }
  },
  "ADPWD-020": {
    "name": { "value": "Claves de recuperación de BitLocker en Active Directory", "status": "machine-draft" },
    "description": { "value": "Las claves de recuperación de BitLocker almacenadas en Active Directory deben inventariarse para garantizar que el cifrado de disco esté correctamente implementado y que las claves de recuperación estén disponibles. La presencia de claves de recuperación también indica qué máquinas tienen BitLocker habilitado, proporcionando visibilidad sobre la cobertura del cifrado", "status": "machine-draft" },
    "recommendedValue": { "value": "Claves de recuperación de BitLocker presentes en Active Directory para todas las estaciones de trabajo y portátiles. Acceso a las claves de recuperación restringido a los administradores autorizados", "status": "machine-draft" },
    "remediationSteps": { "value": "Consulte en Active Directory los objetos de información de recuperación de BitLocker con Get-ADObject -Filter {objectClass -eq 'msFVE-RecoveryInformation'} -SearchBase 'DC=domain,DC=com'. Coteje con el inventario de equipos para identificar las máquinas sin BitLocker. Revise las ACL de los objetos de claves de recuperación para asegurarse de que solo los administradores autorizados puedan leerlas", "status": "machine-draft" }
  },
  "ADPWD-021": {
    "name": { "value": "Umbral de bloqueo de cuentas", "status": "machine-draft" },
    "description": { "value": "El umbral de bloqueo de cuentas define el número de intentos fallidos de inicio de sesión antes de que una cuenta se bloquee. Un umbral demasiado alto (o cero, es decir, sin bloqueo) permite un rociado de contraseñas extenso, mientras que un umbral demasiado bajo facilita la denegación de servicio", "status": "machine-draft" },
    "recommendedValue": { "value": "Umbral de bloqueo de entre 5 y 10 intentos fallidos", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy > 'Account lockout threshold' = 5-10 attempts. Un valor de 0 deshabilita el bloqueo por completo y debe evitarse. Equilibre la seguridad y la usabilidad según las necesidades de la organización", "status": "machine-draft" }
  },
  "ADPWD-022": {
    "name": { "value": "Ventana de observación de bloqueo", "status": "machine-draft" },
    "description": { "value": "La ventana de observación de bloqueo define el periodo de tiempo durante el cual los intentos fallidos de inicio de sesión se contabilizan para el umbral de bloqueo. Si la ventana de observación es demasiado corta, los atacantes pueden distribuir los intentos de rociado de contraseñas a lo largo del tiempo para evitar activar el bloqueo", "status": "machine-draft" },
    "recommendedValue": { "value": "Ventana de observación de 15-30 minutos, igual o superior a la duración del bloqueo", "status": "machine-draft" },
    "remediationSteps": { "value": "Configure en la Default Domain Policy: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy > 'Reset account lockout counter after' = 15-30 minutes. Asegúrese de que este valor sea igual o superior a la duración del bloqueo para impedir que los atacantes esperen a que el contador se restablezca entre intentos de rociado", "status": "machine-draft" }
  }
}