Bancos en Chile: La precaria seguridad de la banca en linea

Es comun que la mayoría los bancos tengan una sección en su sitio web dedicado a la seguridad donde todos llegan a la misma conclusion: los fraudes eletronicos se producen por culpa del usuario y nunca por culpa del banco, ya que usan certificado SSL en sus sitios web. Dando cientos de consejos para no caer en el juego de los correos electrónicos fraudulentos (phishing), diciendo que ellos jamas te llamaran para pedirte información y otras cosas por el estilo.
Por un lado los bancos nos dicen que jamás enviarán correos pidiendo datos personales ni mucho menos las claves de coordenadas, tambien nos “enseñan” a reconocer una URL falsa…

Y por otro lado el mismo banco es quien nos entrega las herramientas para poder suplantar su identidad, aunque usen cifrado SSL de un millon de bits, mediante las conocidas vulnerabilidades Cross-Site Scripting. Si bien en este mismo blog he publicado varias vulnerabilidades de este tipo que afectan a los bancos, lo que busco dar a conocer en este artículo es exponer la poca seguridad que nos entregan los bancos a nosotros sus clientes.

Empezaré con las contraseñas que usamos para ingresar a la banca en linea de cada banco, analizando por ejemplo los limites ridículos que nos ponen los bancos para setear nuestras propias contraseñas.

* (la información fue obtenida directamente desde los portales de cada banco, algunos dicen explicitamente el formato de su contraseña y otros se puede ver al momento de la validación de las contraseñas)

De los bancos analizados no existe alguno que no te restringa el largo de tu contraseña, incluso existen bancos que te obligan a usar una contraseña numérica de cuatro digitos

La pregunta que nos tenemos que hacer es ¿por qué hay límite de caracteres en una contraseña? Considerando que los bancos cuentan con la mínima seguridad al momento de almacenar nuestra información en sus bases de datos y si tenemos en cuenta que cuando creamos un HASH (md5, sha1, sha256, etc), a partir de un String, el largo de este HASH nunca cambiará, y si además de esto tambien consideramos que la clave de internet no tiene ninguna relación con la clave que utilizamos en los cajeros automaticos, entonces la respuesta a esa pregunta es: No hay explicación.

Lo del HASH lo menciono porque tampoco debería ser una limitación técnica, ya que por ejemplo una contraseña 123456 tiene un HASH en md5 equivalente a e10adc3949ba59abbe56e057f20f883e y otra contraseña mas compleja como por ejemplo 76_fhhj.t&5hE*%hu tiene un HASH md5 equivalente a c7441e211ecf6cb2e2415a7cf409b4c7, ambos con el mismo largo (32 caracteres). Por lo tanto, a nivel de base de datos si configuramos que el largo del campo “password” sea de 32 caracteres, entonces da exactamente igual si el usuario usa una clave simple de 4 digitos o una clave robusta de un millon de caracteres.

Hasta el momento llevamos dos falencias de seguridad: 1) Los problemas presentados con anterioridad respecto a que el banco nos facilita y nos entrega herramientas para suplantar su propia identidad mediante las conocidas vulnerabilidades Cross-Site Scripting y 2) que tampoco nos entrega las herramientas necesarias para poder tener una password lo suficientemente robusta.

Un tercer punto es la validación de nuestros datos al momento de ejecutar operaciones dentro del mismo banco; existen algunas operaciones que el banco nos solicitará una clave un poco mas sofisticada como la conocida “tarjeta de coordenadas”, el pinpass o bien una clave que se envia mediante SMS, pero tambien existen operaciones que solo nos solicitan la clave de internet. Por ejemplo, para realizar transferencias a otras cuentas o realizar el pago de cuentas, es necesario que tengamos esa “clave sofisticada”, pero si realizamos una transferencia entre nuestras mismas cuentas, por ejemplo desde la linea de crédito a la cuenta corriente o bien de la tarjeta de credito a otras de nuestras cuentas, nos pide la clave internet.
Como conclusión de éste párrafo, podemos decir que todas las tareas internas del banco como transferencias de dinero dentro de nuestros mismos productos o bien modificaciones de nuestros datos personales, incluyendo el cambio de contraseña, estan protegidos con una clave insegura.

El cuarto punto es un poco mas sofisticado, una forma de ataque silenciosa para los bancos y para sus clientes. Si consideramos los siguientes puntos:

  • El acceso a la banca en linea se bloquea cuando nos equivocamos 3 veces en la contraseña.
  • El bloqueo en la mayoría de los bancos dura 24 horas y luego se desbloquea.
  • El banco no nos alerta por ningun medio los intentos fallidos al momento de ingresar la contraseña.

Un atacante puede perfectamente adivinar una clave de 4 numeros en poco tiempo con 2 intentos al dia. Imaginense un ataque dirigido, un atacante tiene como objetivo atacar a una persona especifico y su primer foco es ingresar a su cuenta bancaria: Durante un mes el atacante puede realiza 60 intentos para adivinar la clave sin que el sistema bloquee el acceso y sin que el banco nos alerte. Y si tomamos en cuenta que no todas las personas ingresan todos los dias a su banco en linea, el atacante puede aumentar de 2 intentos a 3, incluso bloqueando la cuenta de la víctima sin que el banco alerte del hecho. Tu acceso puede estar bloqueado por 20 o mas dias y si no ingresas a tu cuenta durante esos dias simplemente no te das cuenta.

Los bancos no entregan información suficiente a los clientes como para que ellos mismos se den cuenta si están o no siendo víctimas de ataques. Hay algunos bancos que indican la fecha y hora de ultimo acceso, pero eso no es suficiente.

Otra medida de seguridad que podrían implementar para mantener informados y alertas a los usuarios es detectar intentos de inicio de sesión desde direcciones IP o localidades desde las que no ingresamos comunmente.

Como quinto y ultimo punto, la falta de uso de Captchas y CSRF Tokens para asegurarnos que quien ingreso la información de login (rut y clave) fue un humano y no un robot (o un proceso automatizado). Esto facilita al atacante a automatizar su intento por descubrir nuestra contraseña ya que permite que el atacante pueda usar algun script o programa que intente iniciar sesión hasta dar con la clave correcta y no tener que estar el frente al computador intentando manualmente las distintas claves.

En resumen son estos cinco puntos que los bancos podrian empezar a considerar para modernizar su banca en linea y por fin entregarle un poco de seguridad al usuario para no traspasarle toda la responsabilidad a ellos:

  1. Validaciones basicas para prevenir Cross-Site Scripting.
  2. Las restricciones de la contraseña.
  3. Validacion de las acciones una vez dentro del sistema.
  4. La falta de monitoreo e informacion entregada al usuario para que podamos darnos cuenta de si estamos siendo victima de un ataque.
  5. Validaciones que no permitan a un atacante realizar intentos de inicio de sesión de forma automatizada.

Imagino que existen muchos otros puntos, pero creo que son los mas basicos. La idea de este artículo es criticar la seguridad de los sistemas que la banca entrega a sus clientes y generar conciencia entre las personas.

Este artículo fue escrito tomando como referencia a los bancos chilenos, pero imagino que en otros paises el escenario no debe ser muy distinto…

15 comentarios

  1. Si todo lo que comentas, es cierto. y en realidad son cosas muy pero muy básicas que hasta otras paginas que no manejan dinero, como lo son las redes sociales son mas seguras.

    Quizás falta gente nueva en los bancos y especializadas con mejores ideas.

    Saludos y buena critica 😉

  2. Me queda la duda si bloquean la cuenta o bloquean la IP… si bloquean la IP basta con meter proxys y seguir probando 🙂

  3. Zerial

    octubre 28, 2012 a las 3:45 pm

    Hola DoctorPC,

    El bloqueo corresponde a la cuenta del usuario, no por direccion IP

  4. Algunos bancos cuando olvidas tu clave, solo te pide algunos datos personales basicos… como si estas casado, numero de hijos ,etc … si haces un ataque dirigido y conoces bien a esa persona o quisas por ingenieria social o ver sus cuentas en redes sociales … podrias llegar a resetear su clave sin necesidad de hacer bruter sobre la pass .

    PD: guardare mi gita bajo el colchon …

  5. ja, siempre he pensado lo mismo que dices, y encuentro ridiculo los limites en la longitud de caracteres.

    Ahora en BCI me pasa algo extraño, habilite el pinpass(necesitaba pagar algo con tarjeta de credito), pero la red de transbank no me la acepta, lo extraño es que para compras internacionales si lo acepta.

    Aqui me quiero detener, pues defraudar a alguien por internet es tan facil como tener acceso “visual” a la tarjeta de este y capturar el numero, fecha de caducidad y numero de seguridad, algo que se puede captar en pocos segundos y no es necesario tener un costoso y “rastreable”(si te lo detectan en aduanas) skimmer para realizar el fraude.
    Ejemplo:
    Cuenta correntista con Mastercard en tienda de comics:
    Dame la ultima de Linterna Verde mega power grenn nuclear energy asf,
    Gordito de la tienda: si señor, son 2500.
    Cuenta correntista: Tome, paguese con la Mastercard.

    En ese momento es tan facil como que el mono tenga una camara encendida escondida bajo el meson, este ponga la tarjeta un par de segundos frente al lente y listo.

    Ahí el famoso pinpas no funciona, y en teoria el pinpass “te protege de fraudes” y además te traspasa la responsabilidad a ti.

  6. Además del límite de caracteres, algo a considerar es que te dejan poner ahí. BCI no deja usar otros caracteres fuera de los alfanuméricos (a-z A-Z 0-9)

  7. @tricky
    El tema de los caracteres me parece que es mas sensible. Hay caracteres llamados “especiales”, que en caso de no ser correctamente codificados, pueden causar mas daños que fortalezas.
    Por ejemplo, el uso de sesiones basadas en xml, pueden terminar en desastre si ingresas erroneamente un caracter ‘&’ sin codificación. Puedes llegar a romper el xml en caso de no encontrar ‘&’

    (espero que este textbox haya codificado correcamente mi caracter)

  8. siendo objetivo, el problema de CSS es algo que no es exclusivo de los bancos. Cualquier sitio web que utilice SSL puede verse afectado. Es un problema de la tecnología. Es lo que hay disponible hoy. Al menos lo que sé.

    Con respecto al punto 3 encuentro absurdo que para transacciones internas y cambio de claves te pidan tu clave de internet con la cual ya te validaste. debería al menos pedirte uno de los dígitos de la tarjeta de coordenadas.

    También estoy de acuerdo en que los bancos deberían informar de acciones poco frecuentes en tu cuenta bancaria o intentos de acceso a ella.

    gracias por la info

  9. ¿La razón? Si no fuesen tan inseguros no tendrían a quien ofrecerles sus seguros contra fraude informático. Negocio redondo

  10. Al parecer a alguien le gusta tanto tu post que lo copia http://blog.secure-labs.org/ al igual que el titulo del blog. jajaja

  11. Roberto:

    WTF!! Y tambien COPIAN los post del blog blog.secureless.org y de otros blogs…. :S

    Bueno, les deje un recuerdo. Mira su sitio, cambie la imagen del post relacionado a los “13 millones de chilenos…”

  12. La verdad, poco serio tu post. Demasiado prejuicioso y tendencioso. Hasta este “artículo” encontraba que estabas aportando bastante, sobre todo descubriendo debilidades, pero en este guateaste. Es demasiado simplista. ¿Una clave de 10 caracteres no es suficientemente segura al combinar letras y números?, mmmm. Prueba con un probador de claves y verás que no es tan así. Además, pídele a un cliente de Banco, no joven y tecnológico como tú, que recuerde, entre todas las claves que usa, una de más de 10 caracteres. Por otro lado, si tienes el equipo con un keylogger, podrías tener la clave mas larga y compleja del mundo, y sería un saludo a la bandera.
    Hay que saber algo de historia. ¿Tienes idea de la resistencia que tuvo poner clave a la tarjeta de los ATM?. Ufff, un cerro. Hoy ya es parte del paisaje. ¿Insegura?, sin duda.
    Siempre es posible mayor seguridad. El captcha, excelente idea. Eliminar la vulnerabilidad CSS, de todas maneras, es una obligación.
    Los avisos, cuando se pusieron hubo clientes que reclamaron porque los molestaban a cada rato cuando ellos mismos se equivocaban.
    No olvides que estos sistemas los usan personas “de a pie”. La seguridad se debe construir pensando también en la usabilidad. Es una ecuación compleja de resolver. La responsabilidad es de los Bancos, que duda cabe, pero los usuarios también tienen su parte. ¿Cuántos tienen licenciado su sistema operativo y antivirus?, ¿actualizado?, ni hablar. Eso no es pega del Banco ni de los que ofrecen e-comerce, ¿no te parece?.

    Finalmente, sí, trabajo en un Banco. Y aunque entendemos que tenemos trabajo por hacer, tampoco la situación es un desastre porque de millones de clientes que tenemos, menos del 0,5%, lamentablemente, ha tenido problemas de fraude por Internet. Mis disculpas por no identificarme mejor, pero es porque este comentario es a título personal y no represento a mi empleador.

    Apoyo tu línea de trabajo, sigue así porque eres un aporte, pero es necesario que te documentes mejor y le des menos carácter de prejuicio a tus juicios. Así no perderás credibilidad.

    Gracias por tus numerosos aportes.

  13. Además de ello, el usuario podría desbloquearla loggeando, lo que permitiría el seguimiento del ataque. Pero como dice Marco la mayoría de los ataques es debido a que la computadora no tiene el software necesario como para usarla para entrar a un banco, además de contar con tarjeta cordenada.

  14. @p0fk , mentira aca en Argentina para pedir cambio de password se debe ir al banco, y no cambio online.

  15. Perdonen por el tripe comment, pero me olvide de comentar que el banco tambien tiene teclado virutal.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.