martes, abril 08, 2008

Intruso! Porque una contraseña segura es necesaria

Casi toda la gente reniega ante las políticas de las empresas de tener una política de contraseñas muy complicada, y además de eso, hay que cambiarla frecuentemente. Lo que voy a contar a continuación es un hecho real, que me marcó para siempre y me hizo comprender más profundamente la necesidad de una contraseña segura.

En el proyecto de creación de una librería de software teníamos una aplicación en línea 24/7 y un equipo externo trabajando sobre ella (que llegó a ser de 12 personas). Esta aplicación también estaba disponible para Estados Unidos donde estaba el liderazgo del proyecto y accedían a la aplicación para obtener datos. El trabajo consistía en realizar una validación sobre archivos. Cada miembro del equipo externo tenía su contraseña, pero estas no eran difíciles, ya que los logins eran (user1, passuser1),
(user2, passuser2), ... ,(user12, passuser12). Si uno era del equipo y sabia su contraseña, fácilmente podía ingresar como otro usuario. Además estas contraseñas estaban anotadas en un archivo en el repositorio del proyecto, así que podían ser vistas por el cliente.

Yo estaba al tanto de las contraseñas (todo el equipo lo estaba) y sabia que tenían que ser cambiadas, pero en esos momentos teníamos otras urgencias en el proyecto, y desestimé el impacto que podía llegar a causar esta falta de perspicacia e inteligencia.

En una época el equipo externo tuvo problemas con la empresa y fueron citados a una reunión. Justo estaba yo revisando la base de datos y encontré un error grosero. Rápidamente pedí ayuda a uno de los desarrolladores para ver quien había sido y cuando, ya que teníamos un sistema de logueo de todos los casos (
¿que ironía, no? Desarrollamos un gran sistema de logueo, sentencias SQL para hacer reportes de todo tipo, y una simple contraseña puede contra todo eso). En el sistema vimos que había sido la persona del equipo a la que más confianza le teníamos, porque era amigo de toda la vida (desde la primaria) de uno de los miembros del equipo. Además de eso, estaba haciendo cambios en ese momento. Rápidamente deshabilitamos todos los usuarios y llamamos a este chico, que se había ido hace poco tiempo. Por un instante pensé que se había ido a un cybercafé a loguearse, pero estaba en el subte. Además, era imposible no creerle.

Luego de eso creamos unas buenas contraseñas para cada uno de ellos y no las guardamos en el repositorio. Era imposible que alguien del equipo reprodujese la contraseña de otro. También les dijimos que no las divulguen. Desde ese entonces, si encontrábamos errores de ese modo, ya tendríamos al responsable.

Parece que nunca vamos a saber quien fue. Las hipótesis son varias, la más valida es que un miembro del equipo externo dedujo la contraseña (no había que tener muchas luces para hacerlo) de otro miembro, debido al problema que estaban teniendo con la empresa. Otra hipótesis es que fue el cliente de Estados Unidos quien hizo el daño, pero fue desestimada porque no veo como un cliente haría eso a sus propios datos. La más descabellada es que fue alguien importante dentro de la empresa con propósitos políticos. El equipo interno también tiene acceso, pero descarté esa posibilidad porque estaban todos ahí. También existe la posibilidad que le hayan dado el acceso a alguien, pero los cambios hechos los hizo alguien que sabia como usar el sistema. Investigamos la primera opción, la del miembro del equipo externo, pero no tuvimos éxito. Tuvimos una reunión donde se trató de 'apretarlos' pero no obtuvimos resultados. Cada vez que recuerdo este incidente me da bronca no saber quien fue. Yo confiaba en el equipo externo. No digo que no voy a confiar m
ás en nadie, pero voy a tomar más recaudos en el futuro.

Por suerte este desagradable episodio no pasó a mayores ya que el cliente no se enteró de esto y corregimos los errores ese día. Tuvimos la suerte que la entrega de esa quincena (teníamos entregas quincenales) se había mandado unos días antes. El proyecto continuó. Fue una experiencia que dejo un buen aprendizaje y estuvo cargada de emociones.

Como yapa les dejo sugerencias para crear una contraseña segura:

Una contraseña segura:

•Tiene ocho caracteres como mínimo.
•No contiene el nombre de usuario, el nombre real o el nombre de la empresa.
•No contiene una palabra completa.
•Es significativamente diferente de otras contraseñas anteriores.
•Está compuesta por caracteres de cada una de las siguientes cuatro categorías:

Categoría de caracteres

•Letras mayúsculas = A, B, C
•Letras minúsculas = a, b, c
•Números = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
•Símbolos del teclado (todos los caracteres del teclado que no se definen como letras o números) y espacios = ` ~ ! @ # $ % ^ & * ( ) _ - + = { } [ ] \ | : ; " ' < > , . ? /

Una contraseña puede reunir todos los criterios anteriores y aun así ser insegura. Por ejemplo, "Hello2U!" cumple con todos los criterios mencionados para una contraseña segura, pero es insegura porque contiene una palabra completa. "H3ll0 2 U!" es una alternativa más segura porque reemplaza algunas de las letras en la palabra completa con números e incluye espacios.

Puede aplicar las siguientes recomendaciones para recordar una contraseña segura:

•Cree una sigla con una información que sea fácil de recordar. Por ejemplo, elija una frase que tenga significado para usted, como Mi hijo nació el 12 de diciembre de 2004. Con esa frase como guía, puede usar "Mhne12/Dic,4" como contraseña.
•Use números, símbolos y errores de ortografía para reemplazar letras o palabras en una frase fácil de recordar. Por ejemplo, Mi hijo nació el 12 de diciembre de 2004 puede transformarse en "M'igo n@$io 12124" (se pueden usar espacios en la contraseña).
•Relacione la contraseña con un pasatiempo o deporte favorito. Por ejemplo, Me encanta el bádminton puede transformarse en "Mn'kant6ehlB@dm1nt()n".
•Si considera que debe anotar la contraseña para poder recordarla, recuerde que no debe dejar escrito que es su contraseña y debe mantenerla en un lugar seguro.

Información obtenidas de esta página de Microsoft.

No hay comentarios.: