Ideas, información y conocimientos compartidos por el equipo
de Investigación, Desarrollo e Innovación de BASE4 Security.
Un método de seguridad muy usado actualmente en la mayoría de aplicaciones web como mobile es el 2FA. Se ha hablado bastante en estos tiempos sobre esto, y algunos especialistas empiezan a dudar de su eficiencia para proteger usuarios finales. Para entender qué tan seguro es este método, veremos una simple demostración de cómo es posible atacar una cuenta de una aplicación mobile conociendo un solo factor de autenticación, en un escenario vulnerable creado para tal fin.
La autenticación de doble factor agrega una capa extra de seguridad a su cuenta, es decir, un paso adicional para iniciar la sesión, a fin de impedir que otras personas entren en ella aunque tengan acceso a su contraseña. Cuando se inicia sesión en una cuenta en línea, el nivel básico de autenticación solamente requiere la contraseña para acceder, lo que constituye el primer paso para verificar la identidad.
Con 2FA se incorpora otro dato más: la segunda capa, que corresponde a un dato que el usuario debe facilitar para poder acceder a su cuenta. Un ejemplo típico del uso de 2FA fuera de Internet ese al usar un cajero automático, donde para operar necesitamos algo que tiene (su tarjeta bancaria) y algo que sabe (el PIN). La capa adicional de autenticación es uno de tres factores básicos: algo que se sabe, algo que se tiene y algo que se es. A continuación, detallamos el tipo de información que encaja cada categoría:
Existe una variedad de técnicas para intentar un ataque contra la doble autenticación, algunas más sencillas que otras. Aquí presentamos una lista de las principales:
En esta oportunidad analizaremos cómo es posible vulnerar un 2FA utilizando la técnica de 2FA Code Leakage in Response, e iremos indicando paso a paso como realizar este tipo de ejecución. Para ejemplificar esta vulnerabilidad tenemos descargada la aplicación mobile hpAndro 2FA junto con BurpSuite. Teniendo en cuenta que conocemos los usuarios existentes podemos intentar loguearnos con las credenciales de administrador.
Al interceptar la red con BurpSuite, vemos que no cuenta con un cifrado robusto por lo cual permite captar las credenciales en texto plano.
Simultáneamente, visualizamos el código OTP (One-Time Password) para poder ingresar como segundo factor de autenticación.
Como tenemos acceso a las dos formas de autenticación procedemos a loguearnos.
Si bien este ejemplo es técnicamente muy básico, nos permite ver que el 2FA no es siempre un método totalmente seguro y que tiene múltiples formas de ser vulnerado, el debate pasa por definir si conviene reforzar los factores existentes para el segundo paso de autenticación, o bien si conviene agregar un tercer factor adicional, lo que constituye lo que solemos llamar MFA (Múltiple Factor de Autenticación). En próximos posts continuaremos explorando estos temas.