Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

El hombre, como sabes, es una criatura perezosa.
Y más aún cuando se trata de elegir una contraseña segura.

Creo que todos los administradores se han enfrentado alguna vez al problema de utilizar contraseñas ligeras y estándar. Este fenómeno ocurre a menudo entre los niveles superiores de la dirección de las empresas. Sí, sí, precisamente entre aquellos que tienen acceso a información secreta o comercial y sería extremadamente indeseable eliminar las consecuencias de la filtración/pirateo de contraseñas y otros incidentes.

En mi práctica, hubo un caso en el que, en un dominio de Active Directory con una política de contraseñas habilitada, los contadores llegaron a la idea de que una contraseña como "Pas$w0rd1234" se ajusta perfectamente a los requisitos de la política. La consecuencia fue el uso generalizado de esta contraseña en todas partes. A veces sólo se diferenciaba en su conjunto de números.

Realmente quería poder no solo habilitar una política de contraseñas y definir un conjunto de caracteres, sino también filtrar por diccionario. Excluir la posibilidad de utilizar dichas contraseñas.

Microsoft amablemente nos informa a través del enlace que cualquiera que sepa cómo sostener correctamente un compilador, un IDE en sus manos y sepa pronunciar C++ correctamente, puede compilar la biblioteca que necesita y utilizarla según sus propios conocimientos. Su humilde servidor no es capaz de hacer esto, así que tuve que buscar una solución ya preparada.

Después de una larga hora de búsqueda, se revelaron dos opciones para solucionar el problema. Por supuesto, me refiero a la solución OpenSource. Después de todo, existen opciones pagas, de principio a fin.

Opción número 1. Abrir filtro de contraseña

No ha habido confirmaciones durante aproximadamente 2 años. El instalador nativo funciona de vez en cuando, debe corregirlo manualmente. Crea su propio servicio independiente. Al actualizar un archivo de contraseña, la DLL no recoge automáticamente el contenido modificado; debe detener el servicio, esperar un tiempo de espera, editar el archivo e iniciar el servicio.

¡Sin hielo!

Opción número 2. PaseFiltEx

El proyecto está activo, vivo y no hace falta ni siquiera patear el cuerpo frío.
La instalación del filtro implica copiar dos archivos y crear varias entradas de registro. El archivo de contraseña no está bloqueado, es decir, está disponible para editar y, según la idea del autor del proyecto, simplemente se lee una vez por minuto. Además, utilizando entradas de registro adicionales, puede configurar aún más tanto el filtro en sí como incluso los matices de la política de contraseñas.

So.
Dado: dominio de Active Directory test.local
Estación de trabajo de prueba de Windows 8.1 (no es importante para el propósito del problema)
filtro de contraseña PassFiltEx

  • Descargue la última versión desde el enlace. PaseFiltEx
  • Dupdo PassFiltEx.dll в C: WindowsSystem32 (o % SystemRoot% System32).
    Dupdo PassFiltExBlacklist.txt в C: WindowsSystem32 (o % SystemRoot% System32). Si es necesario, lo complementamos con nuestras propias plantillas.
    Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien
  • Editando la rama del registro: HKLMSYSTEMCurrentControlSetControlLsa => Paquetes de notificación
    Agregar PaseFiltEx hasta el final de la lista. (No es necesario especificar la extensión). La lista completa de paquetes utilizados para escanear se verá así "rassfm scecli PassFiltEx«.
    Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien
  • Reinicie el controlador de dominio.
  • Repetimos el procedimiento anterior para todos los controladores de dominio.

También puede agregar las siguientes entradas de registro, lo que le brinda más flexibilidad al usar este filtro:

Sección: HKLMSOFTWAREPassFiltEx — se crea automáticamente.

  • HKLMSOFTWAREPassFiltExBlacklistFileName, REG_SZ, Valor predeterminado: PassFiltExBlacklist.txt

    Nombre de archivo de lista negra — le permite especificar una ruta personalizada a un archivo con plantillas de contraseña. Si esta entrada de registro está vacía o no existe, entonces se utiliza la ruta predeterminada, que es: % SystemRoot% System32. Incluso puede especificar una ruta de red, PERO debe recordar que el archivo de plantilla debe tener permisos claros para leer, escribir, eliminar y cambiar.

  • HKLMSOFTWAREPassFiltExTokenPorcentajeDeContraseña, REG_DWORD, predeterminado: 60

    TokenPorcentajeDeContraseña — le permite especificar el porcentaje de la máscara en la nueva contraseña. El valor predeterminado es 60%. Por ejemplo, si el porcentaje de aparición es 60 y la cadena starwars está en el archivo de plantilla, entonces la contraseña ¡Starwars1! será rechazada mientras la contraseña starwars1!DarthVader88 será aceptado porque el porcentaje de la cadena en la contraseña es inferior al 60%

  • HKLMSOFTWAREPassFiltExRequireCharClasses, REG_DWORD, predeterminado: 0

    Requerir clases de caracteres — le permite ampliar los requisitos de contraseña en comparación con los requisitos de complejidad de contraseña estándar de ActiveDirectory. Los requisitos de complejidad integrados requieren 3 de los 5 tipos diferentes de caracteres posibles: mayúsculas, minúsculas, dígitos, especiales y Unicode. Con esta entrada de registro, puede establecer los requisitos de complejidad de su contraseña. El valor que se puede especificar es un conjunto de bits, cada uno de los cuales es una potencia correspondiente de dos.
    Es decir, 1 = minúscula, 2 = mayúscula, 4 = dígito, 8 = carácter especial y 16 = carácter Unicode.
    Entonces con un valor de 7 los requisitos serían “Mayúsculas” Y minúscula Y dígito”, y con un valor de 31 - “Mayúsculas Y minúscula Y figura Y símbolo especial Y Carácter Unicode."
    Incluso puedes combinar - 19 = “Mayúsculas Y minúscula Y Carácter Unicode."

  • Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Varias reglas al crear un archivo de plantilla:

  • Las plantillas no distinguen entre mayúsculas y minúsculas. Por lo tanto, la entrada del archivo guerra de las galaxias и Guerra de las Galaxias se determinará que tiene el mismo valor.
  • El archivo de la lista negra se vuelve a leer cada 60 segundos, por lo que puede editarlo fácilmente; después de un minuto, el filtro utilizará los nuevos datos.
  • Actualmente no hay soporte Unicode para la coincidencia de patrones. Es decir, puedes utilizar caracteres Unicode en las contraseñas, pero el filtro no funcionará. Esto no es crítico porque no he visto usuarios que usen contraseñas Unicode.
  • Es recomendable no permitir líneas vacías en el archivo de plantilla. En la depuración podrá ver un error al cargar datos de un archivo. El filtro funciona, pero ¿por qué las excepciones adicionales?

Para la depuración, el archivo contiene archivos por lotes que le permiten crear un registro y luego analizarlo usando, por ejemplo, Analizador de mensajes de Microsoft.
Este filtro de contraseña utiliza Event Tracing para Windows.

El proveedor ETW para este filtro de contraseña es 07d83223-7594-4852-babc-784803fdf6c5. Entonces, por ejemplo, puede configurar el seguimiento de eventos después del siguiente reinicio:
logman create trace autosessionPassFiltEx -o %SystemRoot%DebugPassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

El seguimiento comenzará después del próximo reinicio del sistema. Para detener:
logman stop PassFiltEx -ets && logman delete autosessionPassFiltEx -ets
Todos estos comandos están especificados en los scripts. Iniciar seguimiento en el arranque.cmd и Detener seguimiento en el arranque.cmd.

Para una verificación única del funcionamiento del filtro, puede utilizar Iniciar seguimiento.cmd и Detener seguimiento.cmd.
Para poder leer cómodamente el escape de depuración de este filtro en Analizador de mensajes de Microsoft Se recomienda utilizar la siguiente configuración:

Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Al detener el registro y el análisis Analizador de mensajes de Microsoft todo se parece a esto:

Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Aquí puede ver que hubo un intento de establecer una contraseña para el usuario; la palabra mágica nos lo dice SET en depuración. Y la contraseña fue rechazada debido a su presencia en el archivo de plantilla y más del 30% de coincidencia en el texto ingresado.

Si se realiza un intento exitoso de cambio de contraseña, vemos lo siguiente:

Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Existen algunos inconvenientes para el usuario final. Cuando intenta cambiar una contraseña que está incluida en la lista de archivos de plantillas, el mensaje en la pantalla no es diferente del mensaje estándar cuando no se pasa la política de contraseñas.

Cómo prohibir las contraseñas predeterminadas y hacer que todos te odien

Por lo tanto, prepárese para recibir llamadas y gritos: "Ingresé la contraseña correctamente, pero no funciona".

Resumen.

Esta biblioteca le permite prohibir el uso de contraseñas simples o estándar en un dominio de Active Directory. Digamos "¡No!" contraseñas como: “P@ssw0rd”, “Qwerty123”, “ADm1n098”.
Sí, por supuesto, los usuarios te amarán aún más por cuidar tanto su seguridad y la necesidad de crear contraseñas alucinantes. Y, quizás, aumente el número de llamadas y solicitudes de ayuda con su contraseña. Pero la seguridad tiene un precio.

Enlaces a los recursos utilizados:
Artículo de Microsoft sobre una biblioteca de filtros de contraseñas personalizada: Filtros de contraseña
PasarFiltEx: PaseFiltEx
Enlace de lanzamiento: Último lanzamiento
Listas de contraseñas:
DanielMiessler enumera: Link.
Lista de palabras de débilpass.com: Link.
Lista de palabras del repositorio berzerk0: Link.
Analizador de mensajes de Microsoft: Analizador de mensajes de Microsoft.

Fuente: habr.com

Añadir un comentario