Escribiré partiendo del supuesto de que 2FA se utiliza con dos dispositivos separados. Un solo dispositivo con 2FA no tiene ningún sentido para mí teniendo en cuenta los riesgos asociados con el malware.
¿Es posible engañar a 2FA?
Ahora, ¿no podría un malware que reside en el teléfono del usuario simplemente generar el toque “Sí”?
Sí, esto es posible.
Bastante nada está a salvo del malware que permite el acceso de root a un dispositivo. Si tiene 2FA habilitado y tiene un keylogger, o alguna forma de herramienta de administración remota en el dispositivo, podría fácilmente omitir casi todas las formas de 2FA usando varios métodos diferentes.
Sin embargo, 2FA mitiga en gran medida este riesgo. Si bien es posible que el malware haga esto, también es mucho menos probable que un atacante tenga el control de cada dispositivo en tu poder.
¿Cómo puede la aplicación 2FA incluso estar segura de que las entradas del usuario provienen del usuario y no de un malware?
En la mayoría de los casos, esto se supone.
Como dije, es muy poco probable que un atacante haya violado todos tus dispositivos. Además, si un atacante tiene acceso a su dispositivo, no se requiere "generar un toque"; solo necesitan hacer clic fantasma en los límites " X
" y " Y
" de la pantalla del dispositivo donde aparecerá el botón de imagen.
Así es como funcionaría:
- Obtenga la resolución del dispositivo del usuario a través del sistema o de una lista de dispositivos conocidos y sus resoluciones.
- Realice un cálculo de la resolución del dispositivo con respecto a la posición esperada del botón Push 2FA. Sabes que estará dentro de un determinado
%
de la pantalla. De hecho, así es como los videojuegos suelen posicionar los elementos de la interfaz de usuario.
- Malware inicia un "clic" en cualquier lugar de las regiones esperadas de ese botón.
- ???
- Beneficio.
Espera, ¿cómo puedes forzar un clic? Bueno, una pieza de malware en Android podría hacer algo como esto:
dispatchTouchEvent(
MotionEvent.obtain(downTime, eventTime, action, x, y, pressure, size,
metaState, xPrecision, yPrecision, deviceId, edgeFlags));
Entonces, ¿de qué sirve la autenticación de dos factores?
2FA ofrece protección tremenda contra alguien que logró obtener su contraseña, pero que no tiene acceso a su computadora o teléfono móvil.
O quizás tengan acceso a su computadora, pero no a su teléfono. Si tienen acceso a su computadora, el no-Push-2FA se puede omitir rápidamente en las circunstancias adecuadas. Un keylogger, por ejemplo.
Tal vez haya encontrado el malware en su dispositivo y lo haya eliminado. Es posible que aún tengan su contraseña, pero realmente no pueden hacer nada a menos que también tengan acceso a su método de autenticación secundario.
Ayuda a evitar el acceso no autorizado de personas que pueden haber encontrado o incluso adivinado su contraseña. También evita que las personas secuestren tus sesiones.
2FA no es una solución única, es solo otra capa de protección. Yo recomendaría usarlo.
Sigo escuchando que el sandboxing de la aplicación, como en Android, evita que una aplicación interactúe con otra. ¿Esto significa que un malware no puede generar entradas espurias que imitan las entradas del usuario a la aplicación 2FA
Eso realmente depende. Si tiene acceso de root a un dispositivo a través de un exploit, es muy probable que también tenga acceso a lo que sea que esté ocurriendo. Es relativamente fácil "hacer clic" programáticamente en la región de la pantalla de un teléfono.