Cualquier documento de seguridad que se precie debe tener una política de creación, distribución, gestión y actualización de contraseñas dentro de una organización. La gran mayoría de los accesos a los distintos servicios que forman parte de los procesos de trabajo, están protegidos de forma total y parcial mediante accesos a través de usuario y contraseña. Una brecha en esta capa de seguridad, puede resultar fatal para los intereses de la empresa.

A partir de este punto, se suele empezar a definir una política global, que bien podría ser, por ejemplo:

– Usar más de 10 caracteres.

– Mezclar mayúsculas, minúsculas, números y caracteres no alfanuméricos.

– No repetir total o parcialmente el nombre de usuario

– No repetir ninguna de las últimas 12 contraseñas

– Bloquear el acceso si se introduce incorrectamente más de 5 veces

– Cambiar la contraseña en un número de días definido, que suele ser 90, 60, 30…

Imagen: Ejemplo de política de contraseñas

¡Y ya está! Todos felices y contentos, aplicamos estas políticas en el directorio activo y las distintas aplicaciones, de paso cumplimos procedimientos ISO, mostramos diligencia y podemos dormir tranquilos… ¿o tal vez no?

Evidentemente no. Una política global de contraseñas no ha tenido en cuenta que en las empresas existen, no solo distintos niveles de acceso a información, si no distintos tipos de cuentas de usuario, y que cada una de ellas debe tratarse de forma individual.

– ¿Acaso se cambia la contraseña de administrador de dominio cada 30 días?

– ¿Son modificadas cada 30 días las contraseñas de los servicios que acceden a bases de datos?

– En caso de que tengas cuentas de servicio (y no uses la del administrador de dominio …) ¿se cumple la política definida antes?

Si lo piensas, nada más crear esta política de seguridad, posiblemente ya se esté incumpliendo, y eso merece otro análisis. Pero, volviendo al principio. ¿Merece la pena machacar a un usuario con un cambio de clave cada 30 días? Veamos lo que ocurre en el mundo real.

Usuario y contraseña, la peor combinación posible para la seguridad del usuario.

El 95% de las contraseñas de una empresa son utilizadas por trabajadores, para iniciar sesión en su puesto de trabajo, abrir los aplicativos, acceder al correo electrónico. En el mejor de los casos, puede existir algún tipo de sistema que facilite al usuario el uso de un único identificador y contraseña para estos accesos, pero si se obliga al usuario a cambiarla cada muy poco tiempo, como contrapartida, y aunque cumpla la política definida con anterioridad, va a intentar simplificar esta contraseña para que no se le olvide.

En la práctica, más del 60% de las contraseñas que los usuarios introducen en los sistemas son vulnerables a ataques por diccionario más combinatoria inteligente. Si la contraseña tiene 8 o menos caracteres, puede ser descifrable fácilmente. Comúnmente, se aumenta la complejidad a 10, y si bien es una buena práctica, nos da como resultado contraseñas comunes, que el usuario procura recordar con facilidad, y en la mayoría de los casos pueden ser vulnerables.

Entre las contraseñas de más de 10 caracteres como Barcelona.2020, Windows.10 o Perro.Gato1, se utilizan otras igualemente vulnerables:

Imagen: Algunas contraseñas obtenidas en auditorías.

Estas contraseñas, si bien cumplen unos requisitos bastante altos de complejidad, se encuentran en cualquier diccionario que se precie, y es la herramienta básica que utilizará un ciberdelincuente para intentar descifrar una contraseña si ha tenido acceso a su hash. Por desgracia, muchas empresas no protegen de forma adecuada el tránsito de validaciones a través de sus redes locales, y la obtención de estos hashes puede ser relativamente sencilla en la mayoría de entornos corporativos.

Imagen: Ataque por diccionario y combinatoria a hashes de directorio activo

Por si acaso este detalle aún no te pone en alerta, debes saber que contraseñas como las que aparecen a continuación, también son muy sencillas de descifrar en apenas un par de horas:

– C0nfinamiento2020.

– M123s456789

– Ratmanrocks-89

– 3scalante20**

– Hakunamatata?2

– TeQuiero.2021

En el mundo real, debido a que se ha forzado a las personas un cambio de contraseña cada poco tiempo, al añadirle además cierta complejidad, las personas utilizan palabras muy conocidas o fáciles de recordar, y se limitan a seguir un código numérico posterior. Y esto supone un caldo de cultivo perfecto, para poder atacar las credenciales de los usuarios.

¿Cómo protegernos de esta realidad?

Como cualquier otra amenaza de seguridad, no existe una solución única, sino que se debe tratar el problema desde el mayor número de puntos de vista posible.

Por lo que respecta a la complejidad de las contraseñas, el objetivo es que las hashes no sean vulneradas con ataques de diccionario y combinatoria. Para ello propondremos contraseñas complejas, pero que además tengan una longitud tal, que el tiempo de cálculo necesario para poder obtenerla mediante un ataque a la misma haga desistir a un atacante en mitad del proceso al no obtener resultados.

Evita que los hashes de las contraseñas sean de “dominio público”

Cualquier entorno de directorio activo que no esté bien configurado, que utilice protocolos como Netbios O LLMNR en sus comunicaciones, es susceptible de sufrir un ataque de envenenamiento, que no solo permite la captura de las huellas de las contraseñas, sino que cabe la posibilidad de que puedan ser usadas para efectuar ataques tipo “Pass the Hash”. Un trabajo que todas las empresas deben tener en su política de seguridad es evitar que alguien con malas intenciones pueda tener acceso a esta información, de usuarios activos. Y creedme, hay muchas formas de conseguirla.

Formación a los profesionales

Como vamos a modificar la política de contraseñas, es importante formar a las personas para que entiendan los motivos del cambio. Convencerles de que, la seguridad que vamos a aplicar no es un capricho, es una necesidad que además deberían interiorizar para usarlo en su día a día.

Negociaremos con los usuarios una longitud de caracteres superior a 16, a cambio, se les indicará que solo tendrán que cambiarla una vez al año, a menos que sean conscientes de que se ha visto comprometida, y que deben utilizar nemotecnia para recordarla. Poniendo como ejemplo, NacienMadridenelaño1978! o MiprimeramascotasellamabaRyu$.

Modificar los requisitos de las contraseñas

En la formación anterior, habremos negociado con los usuarios una política de cambio de contraseñas, que se realice, por ejemplo, de forma anual. A cambio, elevaremos el número de caracteres por encima de 16, manteniendo los requisitos de complejidad.

Implementar mecanismos de autenticación multifactor

En todas las aplicaciones posibles, implementar un segundo nivel de autenticación a través de un dispositivo móvil o un toquen. En la formación a los profesionales debemos haberles indicado que esta práctica también deben haberla integrado en su vida personal.

Auditar hashes de las contraseñas

En aquellos sistemas que tengamos acceso a hashes almacenadas de contraseñas, establecer un mecanismo de auditoría cada cierto tiempo, para validar que su robustez no es vulnerada mediante un ataque de diccionario y combinatoria.

Conclusiones

A modo de resumen, resulta mucho más seguro, instruir a los usuarios en el uso de contraseñas complejas, con un número de caracteres elevado, y que se modifique únicamente una vez al año, que forzar un cambio cada 30 días a costa de mantenerla en 8 o 10 caracteres.

Adicionalmente, implementar mecanismos de doble factor de autenticación cuando sea posible, permite elevar muchísimo la seguridad de los accesos.

Y tú, ¿cada cuánto cambias tus contraseñas? Déjanos en comentarios qué opinas sobre este tema y no dudes en contactarnos si necesitas asesoramiento sobre qué estrategias debería implementar tu empresa para garantizar la seguridad de tu información.