Instagram for iOS tiene un fallo en la configuración de la aplicación el cual podría permitir a un atacante realizar un hijacking de sesión de un usuario si el atacante y éste se encuentran en la misma red WiFi pública. Stevie Graham, presentó la vulnerabilidad directamente a Facebook, al cual fue contestado con un "Se conoce desde hace años". Graham decidió escribir una herramienta para comprometer las cuentas de Instagram para demostrar el fallo y darle la importancia que tiene.
Ha llamado a la herramienta Instasheep, en honor al famoso Firesheep, el plugin de Firefox que permitía obtener sesiones de usuario siempre y cuando estuviéramos en medio de una comunicación, por ejemplo mediante un ataque ARP Spoofing. Graham explica que por ejemplo, podría ir a la tienda de Apple y obtener miles de cuentas en un día para luego utilizarlas para enviar spam. Graham comenta lo siguiente respecto al ataque:
Ha llamado a la herramienta Instasheep, en honor al famoso Firesheep, el plugin de Firefox que permitía obtener sesiones de usuario siempre y cuando estuviéramos en medio de una comunicación, por ejemplo mediante un ataque ARP Spoofing. Graham explica que por ejemplo, podría ir a la tienda de Apple y obtener miles de cuentas en un día para luego utilizarlas para enviar spam. Graham comenta lo siguiente respecto al ataque:
"Creo que este ataque es muy grave, ya que permite un robo de sesión completo y es automatizable fácilmente".
Lo que realmente ha encontrado Graham es un problema de configuración que es conocido hace mucho tiempo, y que ha llevado a que muchas compañías de Internet cifren el tráfico completamente para evitar el problema. La API de Instagram realiza solicitudes no cifradas a algunas partes de su red. Este hecho representa una oportunidad para que un potencial atacante que esté ubicado en la misma red WiFi pública, la cual no utiliza ningún tipo de cifrado, pueda capturarlas sin ningún problema.
¿Sin ningún problema? Hay que recordar que una red WiFi pública o sin cifrado, se comporta como un hub, ya que el medio de difusión de los paquetes es el aire, y cualquiera puede escuchar dicho tráfico, incluso sin estar conectado a la red pública. El atacante puede configurar su tarjeta inalámbrica en modo monitor y capturar el tráfico. Entonces, si la red WiFi no está cifrada y tampoco lo están las peticiones de Instagram, se puede obtener la cookie de sesión de cualquiera que esté utilizando dicha red.
Figura 2: El ataque ha sido automatizado con la herramienta instasheep |
El co-fundador de Instagram respondió que la plataforma está en constante implementación del cifrado completo en todas sus comunicaciones, pero que el proceso no es tan ligero como puede parecer en un principio. Esperan pronto haber solventado el problema de configuración que está desembocando en un fallo de seguridad, y más hoy en día con los smartphones. En el blog de Hackplayers podemos ver los pasos para reproducir el ataque que ha expuesto Graham:
- Conectar con un punto de acceso abierto o WEP.
- Interfaz en modo promiscuo filtrando por el dominio i.instagram.com. Graham pone como ejemplo la instrucción tcpdump - In -i en0 -s 2048 -A dst i.instagram.com.
- Esperar a que alguien con iOS utilice Instagram.
- Extracción de la cookie de la cabecera de una petición capturada.
- Suplantación de la cookie para cualquier llamada a la API.
Se puede ver que el ataque es sencillo, ya que no es nada nuevo y es de fácil reproducción. También hay que tener en cuenta que el impacto está limitado a una red inalámbrica, por lo que se recomienda no conectar el dispositivo a redes que no sean de confianza. La herramienta se puede descargar desde su repositorio de Github.