Cómo los atacantes evitan la autenticación de dos factores moderna y cómo proteger a sus usuarios

Ben Balthazar, 4 de Febrero de 2020
How Attackers Bypass Modern Two-factor Authentication and How to Protect Your Users

En este artículo, veremos un ejemplo de herramientas y técnicas que los atacantes pueden usar para evitar la mayoría de los métodos tradicionales. Autenticación de dos factores (2FA), desde SMS OTP hasta notificaciones push cifradas para una aplicación móvil. El método de ataque puede ser muy efectivo contra la mayoría de los tipos de 2FA implementados hoy, incluida la autenticación fuera de banda. También discutiremos qué tipo de contramedidas pueden implementar los bancos para mitigar el riesgo de tales ataques y proteger a sus clientes.

Preparando el ataque

Para ejecutar este ataque, utilizaremos una combinación de dos herramientas, Muraena y Necrobrowser. Muraena es un proxy inverso eso ejecutará nuestra página de phishing. La página de phishing representará la página original con la que interactuará la víctima. Una vez que la víctima haya autenticado la sesión, Muraena entregará la sesión a Necrobrowser, lo que le permite al atacante tomar el control de la sesión o automatizar los próximos pasos del ataque. Debido a que Muraena actúa como un proxy inverso, no habrá diferencia entre nuestro sitio malicioso y el sitio web original, aparte de la URL. Muraena se puede configurar para usar SSL con certificados obtenidos a través de, por ejemplo, LetsEncrypt. Desde el punto de vista de la víctima, toda la experiencia parecerá legítima, ya que parece que están interactuando con la página original. Pasarán por el proceso de autenticación regular, incluido el 2FA. Si el 2FA consiste en una contraseña de un solo uso entregada por SMS, hardware o token de software, la víctima la ingresará como de costumbre. Sin embargo, incluso los métodos modernos, como una notificación automática a un dispositivo móvil o el escaneo de un código QR en la pantalla, serán ignorados por este ataque.

Ilustración del ataque de phishing de proxy inverso.

  1. El usuario visita la página de phishing, que tiene SSL habilitado.
  2. El proxy inverso (Muraena) busca la página bancaria legítima y le entrega una copia a la víctima.
  3. La víctima intenta iniciar sesión en la página y se le solicita una autenticación de dos factores
  4. Una vez que la víctima ha completado el proceso de autenticación, el proxy inverso (Muraena) entrega la sesión al atacante (Necrobrowser) para que tome el control y corta a la víctima.

En la imagen de abajo puedes ver a Muraena alojando a Google en el dominio phish.anti. Para fines de demostración, configuré un DNS local para resolver esto en mi máquina de prueba y también emití certificados utilizando mi propia CA en la que confía el navegador. Sin embargo, esto es exactamente lo que se vería desde la perspectiva de la víctima si se implementara en su propio dominio utilizando certificados válidos.

Captura de pantalla de Muraena proxying google.com en phish.anti usando SSL.

Protegiéndose contra el ataque

Ahora que entendemos cómo funciona el ataque, podemos identificar qué pasos serían exitosos para identificar o proteger contra este tipo de ataques.

Enlace dinámico proporciona una buena primera capa de defensa contra una variedad de ataques. La vinculación dinámica consiste en una autenticación de dos factores realizada en el momento de la transacción, que incorpora los detalles de la transacción en el proceso de firma. A menudo llamado Lo que ves es lo que firmas, porque el usuario final debe recibir los detalles de la transacción antes de completar el proceso de firma. Una vez firmada, la firma solo debe ser válida para esta transacción específica, por lo que es más difícil de omitir para el atacante. Por lo general, el enlace dinámico se implementa a través de tokens de hardware, tokens de software o integrado como parte de una aplicación bancaria. A continuación tenemos 2 ejemplos de enlaces dinámicos, primero para un pago legítimo y el segundo donde un atacante intenta modificar el pago.

Ilustración de la vinculación dinámica en un pago legítimo.

  1. El usuario crea una transacción en la banca en línea.
  2. El usuario envía la transacción.
  3. El banco envía los detalles de la transacción al teléfono móvil del usuario.
  4. El usuario verifica los detalles de la transferencia y autoriza el pago con un biométrico (u otro segundo factor).
  5. La aplicación móvil genera una contraseña de un solo uso utilizando los detalles de la transacción y la clave de token dentro de la aplicación móvil.

Ilustración de la vinculación dinámica donde un atacante intenta modificar el pago.

  1. El usuario intenta crear un pago en la banca en línea.
  2. El atacante modifica el pago para tener una nueva cuenta y / o cantidad de beneficiario.
  3. El banco envía los detalles de la transacción al teléfono móvil del usuario.
  4. Al usuario se le presenta la información de pago modificada y rechaza el pago.

Los ejemplos anteriores también ilustran la importancia de utilizar el cifrado de extremo a extremo al implementar el enlace dinámico. Además, muestra que la aplicación móvil en sí misma debe estar protegida ya que el atacante puede intentar atacar la aplicación para ocultar los detalles de pago modificados del usuario.

Otra forma efectiva de reconocer y defenderse contra una gran variedad de ataques es implementar monitoreo continuo en sus plataformas digitales. Al monitorear la sesión desde el momento de la iniciación hasta el final de la sesión, podemos poner más contexto a través de las acciones de los usuarios y los dispositivos o cuentas con los que se asocian. La monitorización continua se combina perfectamente con otras capas, como 2FA o enlaces dinámicos, ya que también permite al banco poner en contexto desde estos dispositivos de autenticación.

Ejemplo de monitoreo continuo para comprender cada intento de operación, autenticación y resultado.

Luego, el banco puede monitorear los indicadores típicos de ataques conocidos, como nuevos dispositivos, ubicaciones, presencia de proxy u otros. Esta información se puede correlacionar a través de su base de usuarios para comprender mejor el riesgo de estos elementos. Entonces también podemos tener en cuenta las operaciones que el usuario está realizando durante toda la sesión y comparar esto con su comportamiento habitual. Este enfoque establece un perfil de riesgo continuo para la sesión que puede cambiar con cada acción realizada por el usuario final. Esto no solo permite que el banco tome acciones automatizadas en tiempo real cuando se detectan anomalías, sino que también permite que el banco reduzca la fricción para las sesiones legítimas al reducir la cantidad de autenticaciones requeridas para sesiones genuinas.

Conclusión

Si bien el ataque en este artículo utiliza tecnología y conceptos que han existido durante siglos, vemos que aplicarlos correctamente aún puede conducir a un gran éxito y derrotar a varios métodos de autenticación implementados hoy. Es importante que los bancos utilicen un enfoque por capas, ya que la mayoría de las capas individuales pueden ser atacadas o explotadas. Al implementar enlaces dinámicos, los bancos deben asegurarse de establecer una línea segura de comunicación con el usuario final. Por ejemplo, confiar en SMS ya no es confiable, ya que los mensajes pueden ser robados, falsificados o interceptados por el atacante. Sin embargo, al implementar aplicaciones móviles, los bancos también deben ser conscientes de que estas aplicaciones se convierten en un objetivo y deben proteger sus aplicaciones móviles de ataques externos. El objetivo de este artículo es principalmente demostrar que los ataques de phishing se pueden modernizar para derrotar la autenticación de dos factores al iniciar sesión e implementar 2FA por sí solo no ofrece una protección completa contra el phishing. Finalmente, hemos mencionado algunas capas que los bancos pueden implementar para proporcionar una mayor protección a sus usuarios finales, así como también qué dificultades evitar al hacerlo. Para resumir:

  • Implementar enlace dinámico con cifrado de extremo a extremo.
  • Implemente análisis del lado del servidor para monitor sesiones de usuario final, dispositivos y comportamiento ante posibles ataques.
  • Proteger tu celular aplicaciones de malware y otras amenazas externas.
Libro electrónico

Fraude de robo de cuenta: cómo proteger a sus clientes y su negocio

Evite el fraude de robo de cuenta y proteja a los clientes en cada etapa de su viaje digital.

Descargar ahora

 

Ben Balthazar es consultor de fraude en OneSpan y ayuda a las instituciones financieras de Europa, Oriente Medio y Asia a defenderse contra el cibercrimen financiero. Ben comenzó su carrera en OneSpan en 2014 y se mudó de Bélgica a Dubai en 2016.