domingo, 18 de noviembre de 2012

Bloqueo de usuarios abusando de logins fallidos

Saludos,


       Dificultar un ataque por fuerza bruta contra el login de una aplicación web es algo a lo que se deben de enfrentar los desarrolladores en algún momento de su vida. Las estrategias más comunes consisten en la estimación de cuántos intentos fallidos son necesarios para intuir que se trata de un ataque y no de un usuario legítimo algo despistado, y a partir de allí desplegar una serie de medidas con el fin de que cesen los intentos.


       Las medidas más comunes consisten en bloquear el acceso a la IP desde la que se están haciendo los logins, o continuar permitiendo los intentos de login pero añadiendo un captcha. Ambos casos ralentizan el ataque, pero si bloqueas la IP, éste puede ser continuado cambiando símplemente de proxy; y si el captcha no es lo suficientemente robusto puede ser resuelto utilizando OCRs. Por ello se recurre, más frecuentemente de lo que se piensa, al bloqueo del usuario que está siendo objetivo del ataque.

      El problema de implementar esta medida es que puede volverse en contra, y ser utilizada por un atacante para bloquear el acceso a usuarios.  Si nos remontamos unos cuantos años atrás en el tiempo, cuando el boom del MSN, seguro que todos recordamos aquellas herramientas llamadas "Nukers" que al ejecutarlas contra una cuenta bloqueaban el acceso al messenger. Lo que hacían estas aplicaciones eran intentar loguearse en el servicio de msn utilizando la cuenta objetivo y como passwords cadenas aleatorias, lo que provocaba el bloqueo por un breve tiempo.


    Bloquear el acceso a un usuario puede tener un impacto crítico según en a qué plataforma se le esté impidiendo acceder. En el caso de las aplicaciones webs cuya utilidad esté relacionada directamente con el tiempo, impedir la entrada del usuario por un intervalo puede hacer que el atacante tenga algún tipo de ventaja. Esto ocurría hace tiempo en Ebay, donde se podía ver quien era la persona que había hecho la puja más alta. Al bloquear la cuenta de esta persona en los últimos minutos, otro usuario que estuviera interesado en el mismo producto podía hacer una puja sin encontrarse con una contraoferta.


   También esto pasa con los juegos de navegador basados en el tiempo. Esta entrada en el blog viene en relación a que un conocido me ha pedido que echara un vistazo a un MMOG de estrategia que estaba haciendo. En líneas generales el juego consiste en crear un imperio conquistando a otros usuarios, para lo cual se deben de movilizar tropas para que ataquen la zona que se quiere anexionar. Al lanzar un ataque, le aparece al jugador víctima en qué momento le va a llegar el ataque, por lo que puede movilizar sus tropas para defenderse. Sin mucho más, es el típico juego tipo Ogame, Tribal Wars, Travian, etc...


   La cuestión es que para evitar el robo de cuentas por fuerza bruta, bloquea el acceso al usuario durante 24 horas y enviaba un correo advirtiendo del intento de robo. Esto permite que un jugador malintencionado lance un ataque contra otro jugador, y le impida el acceso, de tal forma que no pueda protegerse contra él.


    Espero que tengais esta entrada en cuenta cuando tengais que tengais que hacer sistemas de logueo y penseis dos veces si en vuestro caso particular bloquear la cuenta del usuario es la mejor alternativa para evitar su robo.


Byt3z



    
5 0verl0ad Labs: Bloqueo de usuarios abusando de logins fallidos Saludos,        Dificultar un ataque por fuerza bruta contra el login de una aplicación web es algo a lo que se deben de enfrentar los de...

2 comentarios:

Anónimo dijo...

Muy bien explicado, tienes un seguidor mas.@knivesoul

Michel Platini dijo...

Quiero poner el sistema de Catpcha en mi blog para evitar spammers

< >