miércoles, 19 de enero de 2011

Inseguridad Bancaria Online. Parte I.

Usualmente recibimos propaganda de nuestras entidades financieras acerca del cuidado que se debe tener de nuestra contraseña para acceder a los portales de banca online. Sin embargo, muy pocas veces se nos advierte que el nombre de usuario/login/etc es tan importante o tal vez más que el tan celosamente guardado "password".

La razón es simple: sin la contraseña, nuestro criminal informático puede no tener acceso a realizar operaciones bancarias en linea a nuestro nombre; sin embargo, con el nombre de usuario, el atacante puede lograr que nosotros tampoco las hagamos.


El problema radica en que ningún sistema bancario en linea puede darse el lujo de permitir infinitos intentos de acceso a una cuenta bancaria. De lo contrario, expondrian a sus clientes a ataques de fuerza bruta para adivinar su contraseña. Por lo tanto, absolutamente todos los sistema de banca en linea que he visto ejecutan algún tipo de bloqueo despues de un numero predeterminado de intentos de accesos incorrectos. En consecuencia, el atacante que conozca nuestro nombre de usuario, solo necesita hacer unos cuantos intentos de ingreso incorrectos para bloquearnos el acceso a nuestra cuenta de banca en linea.

La situación empeora cuando el propio sistema de banca en linea hace que los nombres de usuario sean facilmente predecibles. Esto sucede muy a menudo cuando las entidades financieras deciden utilizar numeros de cuentas de bancos, numeros de tarjetas de debito, etc en lugar de un nombre de usuario arbitrario. La razón es simplemente comodidad a la hora de hacer el rollout de credenciales. Por ejemplo, si el usuario ya tiene su tarjeta de débito y su clave de cajero, puede usar esas mismas credenciales para acceder al sistema de banca en linea. El usuario está automáticamente listo para hacer uso de la fabulosa banca en linea sin necesidad de emitir nuevas credenciales, verificación de identidad, firma de acuerdos, etc. Ésta comodidad no viene sin su alto costo en riesgo no sólo para el usuario final, sino también para la propia entidad financiera.

El resultado inmediato, pero no el único, es una vulnerabilidad de denegacion de servicio al sistema de banca en linea que no requiere más que de un ordenador personal, una conexión a internet de muy poco ancho de banda, y un programa de una docena de lineas de código para llevarse a cabo. Las entidades financieras invierten grandes sumas de dinero en sistemas redundantes, ancho de banda, sistemas de deteccion de inundaciones, etc. pero con esta vulnerabilidad hacen que todos estos sistemas queden completamente inútiles.

Diversas culturas tienen distintas imágenes sobre el futuro apocalíptico. La imagen que a mi se me viene a la mente con este tipo de sistemas es una entidad bancaria colapsada con tickets de soporte de reseteo de credenciales de acceso y una cantidad muy grande de clientes frustrados por no poder llevar a cabo sus transacciones financieras online. A pesar de nunca haber escuchado a alguna entidad financiera aceptar que ha tenido sucesos de esta índole, yo mismo he sido victima de reiterados bloqueos de acceso inexplicables. Estoy seguro que no soy el único tampoco.

La solución definitiva a esta problemática es por supuesto el uso de nombres de usuario que sean dificiles de predecir. Sin embargo, es posible disminuir el impacto de esta vulnerabilidad sustituyendo los bloqueos permanentes por bloqueos temporales. La intención es por supuesto evitar el escenario apocaliptico dando acceso a las victimas despues de un tiempo prudencial, pero previniendo en cierta medida que el criminal informático lleve a cabo un ataque de fuerza bruta contra las credenciales de sus victimas. Esta medida paliativa, por supuesto, se hace imposible de implementar si el espacio de contraseñas es muy pequeño. Por ejemplo, en el caso en que la clave de acceso sea una cadena de 4 digitos.

Otras consecuencias del uso de nombres de usuario predecibles será el tema de próximos artículos.

Ver también:
Inseguridad Bancaria Online. Parte II
Inseguridad Bancaria Online. Parte III

7 comentarios:

  1. Pues ya me imagino rivalidades entre bancos haciendo este tipo de ataques para quitarles a sus clientes, imaginen que a un banco le dejen bloqueado a miles de usuarios en pleno diciembre durante las compras navideñas.

    ResponderEliminar
  2. Ciertamente competencia desleal entre corporaciones es una fuerte posibilidad. Sin embargo, extrapolando tu comentario, uno podría incluso imaginar estados terroristas intentando paralizar un pais, o desestabilizar un gobierno mediante el saboteo de su infraestructura financiera de esta forma. Las profundas ramificaciones de esta insidiosa vulnerabilidad son dificiles de caracterizar de forma exhaustiva.

    ResponderEliminar
  3. En realidad existen medidas anti-dos para evitar justamente eso, son pocos bancos los que la tienen implementadas pero existen y se utilizan combinando un segundo factor de autenticación ante la falla de acceso para evitar bloquear la cuenta. Saludos!!!

    ResponderEliminar
  4. Hola Daniel, muchas gracias por tu comentario. En efecto sería muy interesante si pudieras citar algún nombre/tecnología/marca o mecanismo explicitamente a lo que te refieres. Me encantaría poderla analizar imparcialmente lejos de las afirmaciones de los especialistas en ventas. En mi experiencia es mucho mas lo que dicen que hace su solución, que lo que realmente consiguen. En realidad, cualquier cosa que involucre hacer un POST/GET a la aplicación web, ultimadamente tendrá mas o menos los mismos problemas descritos aquí. En todo caso, cualquier solución que intente resolver los problemas aquí descritos, tendrá que resolver también de alguna forma los otros planteamientos que hago aquí: http://latinsec.blogspot.com/2011/04/implementando-ataques-de-fuerza-bruta.html. No digo que sea imposible, pero me encantaría saber que tienes en mente exactamente. Saludos.

    ResponderEliminar
  5. Actualmente el Banco Provincial adicionó la famosa "tarjeta de coordenadas" como parte de la autenticación para ingresar al internet banking. Esto podría ayudar en cierta manera a minimizar en algo los ataques, claro, depende de como tengan configurado sus aplicaciones, ya que este tipo de sistemas de coordenadas pueden usarse como primer canal de aprobación del "login" o "user" antes de consultar la contraseña, y no al revés como creo que se hace actualmente, primero validan login y passwd, luego validan las coordenadas, pero en fin, al menos le incorporaron algo adicional al acceso, ahora el atacante tendrá que tener una "copia" de la tarjeta de coordenadas si quiere hacer algo. Para evitar el DoS (en este caso para el ahorrista) no creo que haya solución, salvo que tengamos certificados digitales.

    ResponderEliminar
  6. donde puedo encontrar como crear un sistema de cuenta de ahorro para implementarlo en una pagina web de una cooperativa de ahorros así como esta pagina

    https://zonasegura1.bn.com.pe/BNWeb/Inicio

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo, realmente no conozco ningún framework especializado para desarrollo de aplicaciones bancarias (buena idea para comenzar uno). Sin embargo, la mejor recomendación que puedo darte es que busques el asesoramiento de un experto en seguridad informática para que te acompañe en el desarrollo, implementación y post-implementación. Como habrás podido leer en mis artículos, las probabilidades de hacer hasta las cosas aparentemente más triviales de forma incorrecta son bastante altas. Por lo tanto, tu mejor opción es seleccionar la plataforma de desarrollo con la que te sientas más cómodo y buscar la ayuda de un experto en seguridad para que se encargue de lo demás. Suerte!

      Eliminar