“TU CONTRASEÑA NO ES VÁLIDA”

Validación proactiva de contraseñas

Desde que el mundo es mundo y el hombre camina sobre dos pies, hay una serie de verdades universales que han acompañado a la especie humana durante todo su desarrollo. Una de ellas, muy usada por los que nos dedicamos a la seguridad de los datos, es esa de que “somos tan fuertes como el eslabón más débil”. Y de eso vamos a hablar en este post, de la debilidad, tanto de una contraseña en sí como del conocimiento del uso de tecnología de quien elige una contraseña débil.

Cierto es que la mejor manera de evitar esto es usar una tecnología de identidad que añada una capa de seguridad para que la identificación del usuario no resida solo en la dupla login/contraseña, pero hoy en día, multitud de empresas, organismos y servicios todavía se siguen basando en ese sistema sabidamente tan vulnerable.

He escrito bastante otras veces sobre el uso de contraseñas. Recomiendo especialmente ya que esta reflexión está basada mayormente en este otro artículo. Básicamente, una de las más arduas batallas de la seguridad es bastionar ese eslabón débil que es el usuario, de forma que sepa lo que significa que use una contraseña débil, o la reuse en varios servicios. En este menester juega un papel importantísimo la CONCIENCIACIÓN COMO SERVICIO (ver artículo de mi compañero @n4xh4ck5), en el que cada vez más estamos implicados las empresas de seguridad: Enseñar a nuestros usuarios a protegerse contra amenazas comunes haciendo un uso responsable de la tecnología que cada vez implica más aspectos de nuestras empresas e instituciones.

Pero ¿Por qué confiar en que no usará una contraseña muy frágil? ¿No sería mejor impedir que esto pueda tener lugar? De modo que, como buen “Doer-No-Powerpointer”, me puse a darle una vuelta de tuerca a ese PWANALIZER que ya publiqué en GITHUB, y desarrollé un PWCHECKER, para que de modo fácil e instantáneo se pueda validar con un “SI” O “NO” si vamos a aceptar una contraseña para un determinado usuario.

Resumido: El concepto (tan simple como útil) ahora consta de 2 scripts:

PWANALIZER: contrasta nuestra lista de passwords (o listas user:password) contra una serie de diccionarios comunes, que podemos añadir a nuestra lista bajo la carpeta “-dics-“ en formato txt. El más común y usado es el archiconocido RockYou.txt. Y nos dará un porcentaje de las contraseñas incluídas en esos ficheros, lo cual, depende del tamaño del fichero de diccionario, pues habrá que valorar. Tómese esto como una forma de VALORAR EL ESTADO DE CONCIENCIACIÓN DE CIBERSEGURIDAD, ya que un número muy alto de fechas, nombres propios o peor aún, de “123456” puede dejar bien claro que nuestra empresa necesita de un repaso a la ciberseguridad.

PWCHECKER: Es una validación True/False en base al código de salida de ejecución (“%ERRORLEVEL%  en sistemas Windows, $? En linux) partiendo de 2 validaciones separadas:

  • POLÍTICA DE CONTRASEÑAS: Si queremos que tenga una mayúscula, minúscula, números o simbolos. Estos parámetros se definen con un True/False.
  • EXCLUSIÓN DE DICCIONARIO: El diccionario usado, se pasa como argumento, pudiendo usar el mencionado RockYou, o bien otro. Incluyo en el GITHUB, el diccionario de 10.000 contraseñas más comunes, uno de los pilares y más recomendables al realizar pruebas de ataque de diccionario.

En fin, eso ha sido todo, de momento. Como puede verse, a veces implementar medidas de seguridad es más cuestión de proactividad que de horas/hombre, y pequeños gestos pueden significar la diferencia entre dormir tranquilos y una terrible debacle.

Seguiremos informando. Permanezcan en sintonía.

Andrés Naranjo @TheXXLMAN