miércoles, enero 13, 2016

Un errónea recomendación de seguridad de Twitter

A mi regreso de vacaciones tocó volver a revisar las opciones de seguridad con las identidades. De todas las que tengo protegidas con Latch es bastante sencillo, pues solo debo revisar el log de intentos de acceso y sesiones abiertas que se añadió en la última revisión de la app, pero las de que tengo protegidas con segundos factores de autenticación como Google Authenticator hay que revisar el log y cambiar passwords, ya que incluso aunque te hayan robado la password y tengas Google Authenticator no recibes alerta alguna. Además, no viene mal revisar los tokens de acceso que puedan tener concedidos en las identidades principales. Tarea habitual en el regreso al trabajo.

Figura 1: Un errónea recomendación de seguridad de Twitter

Realizando los cambios de configuraciones, asocié un nuevo número de teléfono a mi cuenta de Twitter, y recibí un aviso de seguridad por correo electrónico. Algo bastante habitual a día de hoy en la mayoría de los servicios online en los que la cuenta, inicialmente, se crea utilizando una identidad basada en una dirección de correo - éste es el caso de Twitter -. El mensaje es el que podéis ver ahí, pero os pido que os fijéis principalmente en la recomendación de seguridad que se puede leer para reconocer si el correo es original de Twitter o no.

Figura 2: Recomendación de Twitter para reconocer un correo electrónico de Twitter

La verdad es que es bastante pobre que una empresa como Twitter añada esa recomendación de seguridad para educar a sus usuarios en reconocer un correo electrónico auténtico de un correo de spoofing que intente hacer un ataque de phishing y robarle las contraseñas. Algo, que además hemos visto que es la principal forma de robar identidades en Twitter.

Poner como recomendación que la dirección URL debe comenzar por twitter.com deja abiertas tantas posibilidades para un atacante que si un usuario de Twitter se ha aprendido esta regla, y asume que una dirección que comienza por twitter.com es segura, entonces se estaría provocando a los usuarios de la red de los - por ahora - 140 caracteres a caer en la trampa. Por supuesto, lo más fácil sería para un atacante crear un sitio falso con una dirección del tipo twitter.com.chema/login que cumple a la perfección la recomendación de seguridad. 

Figura 3: Un phising al login de Twitter que cumple la regla de seguridad

Para poner a los usuarios más nerviosos, da una regla (que los enlaces siempre comiencen por twitter.com) que luego no cumple, ya que en el correo electrónico mismo en el que viene la recomendación hay tres enlaces que comienzan por support.twitter.com lo que ya, para un usuario que solo siga esa regla sería contradictorio. 

No solo eso, sino que además no se hace hincapié en que se utilice protocolo HTTPs - algo que podría dificultar un poco más la construcción del sitio de phishing -, ni se habla de comprobación de certificados digitales, ni nada similar y deja tomar la decisión de si el correo viene de Twitter o no en mirar los enlaces que trae. Es más, en español nos encontramos ante una traducción de un mensaje que en la web en inglés pone de otra forma.

Figura 4: Recomendación en inglés para evitar el phishing y fake emails

En inglés pone al menos que debe estar en el "websiste" de http://twitter.com, algo que deja en el cliente la necesidad de entender si está en el website de http://twitter.com o no, o lo que es lo mismo, que sepa ya que es un phishing o no, con lo que no aporta nada. Pero para arreglarlo,  en lugar de poner un dominio - que sería solo twitter.com -, ponen una URL - http://twitter.com -, donde de nuevo se usa HTTP en lugar de HTTPs cuando la web de login la sirven vía HTTPs únicamente. Y no le piden al usuario que verifique ningún certificado digital, que es justo para lo que se crearon: para identificar que estas en el sitio que dices que estás.

Figura 5: El certificado de Twitter.com correctamente emitido

Dejando estos "cabos sueltos", los que se dedican al fraude online, al robo de identidad a la carta, o a los ataques dirigidos a personas concretas, tienen pequeñas ayudas en la educación de las víctimas, que son enseñadas a confiar en enlaces siguiendo malas reglas de seguridad. Entre otras cosas, me gustaría resalta que aunque el enlace sea del dominio Twitter, y esté en la web oficial de Twitter, podría tratarse de un robo de tokens OAuth de la cuenta, tal y como hemos visto que se ha hecho ya en Gmail o Hotmail en muchas campañas de robo de dinero.

Figura 6: Las llamadas a la API de Twitter pueden ser maliciosas para el usuario

Lo suyo, si vas a utilizar el correo electrónico para enviar notificaciones de seguridad y quieres dotar al mismo de alguna medida de identificación que ayude a evitar el spoofing de la dirección de correo electrónico y dificultar el phishing, es que utilices algo que no se pueda suplantar.

Figura 7: Paypal firma sus comunicaciones con DKIM

Una firma digital en PGP o S/MIME que le permita al receptor del correo comprobar la misma, o algo como DKIM, que es lo que ha pasado a utilizar Paypal en sus notificaciones, que ayuda a saber si el correo electrónico ha salido o no de los servidores de Paypal y en clientes como Gmail ya se verifica directamente. A día de hoy, Twitter solo utiliza SPFv1 para identificar sus direcciones de correo. Eso sí, con política hardfail (-all) para que los clientes estrictos eliminen todo correo que no venga de sus servidores que, por desgracia, son pocos.

Saludos Malignos!

5 comentarios:

  1. Jaja muy bueno :D
    Encima me puse a buscar si existia el TLD chema (por su costo, lo dudaba xD )

    Un comentario respecto de la dificultad de https: creo que hoy con LetsEncrypt y otros sitios que dan gratis un cert (tengo un par), eso no es realmente complicado.

    Es gracioso que siendo 2016 cueste tanto validar una identidad...

    Saludos!!

    ResponderEliminar
  2. Me gustan mucho tus artículos y -siempre citando la fuente- comparto lo que aprendo de ti y a veces pongo directo tus textos y videos en la página de fb de mi nego ¡Gracias Chema! =)

    ResponderEliminar
  3. Muchas gracias por la info!
    Saludos!

    ResponderEliminar
  4. Muchas gracias por la info!
    Saludos!

    ResponderEliminar
  5. Muchas gracias!!
    Saludos!!

    ResponderEliminar