¿Los sitios 2FA filtran información al confirmar la contraseña correcta?

63

Aquí está mi punto de vista relativamente laico del problema.

Muchos sitios web mencionan la autenticación multifactor (MFA) como un enorme impulso a la seguridad de las cuentas de los usuarios, y puede ser si se implementa correctamente .

Sin embargo, parece que algunos sitios solo solicitarán al usuario su MFA DESPUÉS para que ingresen su contraseña correctamente. Solo he probado esto con gmail.com y outlook.com , pero dado que estos son dos grandes proveedores de correo electrónico, me imagino que son solo dos de los muchos autores.

La razón por la que esto es (al menos frente a las cosas) es un defecto de seguridad tan enorme porque puede permitir que los crackers adivinen la contraseña de un usuario hasta que se les presente la solicitud de MFA, momento en el que saben que ' Tengo la contraseña del usuario. Parece que los sitios web lo descartarán diciendo: "Pero como el usuario tiene MFA, el cracker no puede ingresar a su cuenta".

Lo que parecen olvidar es que es probable que el usuario tenga cuentas en otros sitios web, y posiblemente use la misma contraseña para ese sitio. Así que ahora el cracker puede tener acceso a todas las cuentas de los usuarios en la web, muchas de las cuales probablemente no tengan MFA implementado, dejando al usuario completamente vulnerable a los ataques.

¿Existen fallas en mis argumentos o suposiciones que podrían hacer que esto no sea un problema? Si no es así, ¿por qué las grandes empresas como Google y Microsoft no solucionan este problema?

    
pregunta Ben Sandeen 03.06.2016 - 20:26
fuente

5 respuestas

118

Si entiendo su pregunta correctamente, el ataque que está proponiendo es forzar las contraseñas contra un servidor como este, luego, una vez que le muestre la pantalla MFA, intente esa contraseña en otros sitios web en los que este usuario tiene cuentas. en.

¡Esta es una gran pregunta! ¡Buen descubrimiento! Pero parece que estás pasando por alto dos puntos:

  1. Esto no es más débil que no tener MFA, lo que también confirma la contraseña correcta ... permitiéndole ingresar.

  2. Ningún hacker en su sano juicio intentará forzar una contraseña contra un servidor activo, lo que normalmente lo limita a 5 conjeturas por segundo. O en el caso de los grandes proveedores como GMail o Outlook, tienen sistemas complejos de detección de fraudes que realizan el bloqueo automático de IP de actividades sospechosas. 99.999 ...% del tiempo, el forzado de la contraseña se realiza contra los hashes de contraseña robados directamente de la base de datos en la que puede adivinar (m | b) iliones de contraseñas por segundo.

Entonces, si bien estoy de acuerdo con usted en que existe la posibilidad de que se produzcan fugas de datos, creo que el riesgo es mínimo, y que el inconveniente del usuario de tener que buscar con su FOB OTP es mucho mayor que el de los demás. d su contraseña.

Actualice los comentarios de direcciones, ya que esto se ha convertido en una cuestión candente en la red:

Hay dos tipos de autenticación multifactor (también conocida como "2FA" o "MFA") que realmente deben considerarse por separado:

  1. SMS o Notificación Push 2FA : cuando llegas a la pantalla 2FA, envía un código a tu dispositivo que debes escribir. Para muchos usuarios, este es probablemente el único tipo de 2FA que has estado expuesto a El ataque descrito en la pregunta no funcionará en este caso porque el usuario recibirá un código 2FA que no solicitó y sabrán que algo está mal. Además, hacer el paso 2FA independientemente de si la contraseña es correcta es realmente dañino en este caso porque:

    • Un atacante podría hacer que el usuario reciba una enorme factura mensual de datos / SMS, o bloquear su dispositivo llenando su memoria con notificaciones.
    • También filtra qué usuarios tienen habilitado 2FA y cuáles son objetivos fáciles.
  2. "Offline" 2FA con tokens de generador de códigos, aplicaciones o tarjetas inteligentes / memorias USB habilitadas para clave pública (vea la imagen a continuación). Este es el tipo de 2FA que usan el gobierno, los militares y las corporaciones. Entonces, si bien es menos visible para los usuarios finales, es, con mucho, el tipo más importante de 2FA debido al valor de los datos que protege. En este caso, no hay una notificación "incorporada" al usuario cuando un atacante llega a su pantalla 2FA. Y, por lo general, se requiere que todos los usuarios usen 2FA, por lo que no hay ningún problema en filtrar qué usuario tiene habilitado 2FA, porque son todos ellos.

Imagine este escenario para el Caso 2: una VPN corporativa que se encuentra en la parte superior de Active Directory de Windows. Las redes privadas virtuales (VPN) se ven afectadas todo el día por los que buscan contraseñas, por lo que no hay nada inusual en esos registros. Pero si puedo confirmar la contraseña del usuario en la pantalla 2FA de la VPN, entonces puedo acercarme a su computadora portátil e iniciar sesión con la seguridad de que no bloqueará la cuenta de Windows, lo que el usuario / TI seguramente notará. La pregunta señala correctamente un agujero de seguridad que el patrón de "llegó a la pantalla de 2FA y no introdujo nada / ingresó algo incorrecto" debe marcarse como más grave que su "nombre de usuario / contraseña incorrecto" estándar y debe notificar al usuario final que retirar su contraseña.

    
respondido por el Mike Ounsworth 03.06.2016 - 20:46
fuente
12

Creo que esto no es un problema. La autenticación multifactor no consiste en evitar que alguien adivine su contraseña, sino en impedir que alguien inicie sesión en sus cuentas.

    
respondido por el Benoit Esnard 03.06.2016 - 20:45
fuente
9
  

Así que ahora el cracker puede tener acceso a todas las cuentas de los usuarios a través de   La web, muchos de los cuales probablemente no tienen MFA implementado, dejando   el usuario completamente vulnerable a los ataques.

Un atacante no intentará adivinar una contraseña en Google que tampoco intentará en el banco, facebook o similar. Solo porque ahora se ha revelado que se trata de una contraseña válida, el atacante no está más cerca de comprometer otras cuentas. La contraseña adivinada debía provenir de una cuna de suposiciones de alta probabilidad, porque una verdadera fuerza bruta nunca funcionará en un sistema en vivo.

Si pudiera demostrar que los sitios que usan 2FA tienen peores algoritmos de adivinación (apostaría a que son al menos tan buenos si no mejores) en comparación con los sitios que no ofrecen 2FA, su punto sería válido ya que un atacante podría abusar de uno y girar hacia el otro. En realidad, es probable que ocurra lo contrario, los sitios que invierten en 2FA también están invirtiendo en sistemas anti-adivinanzas al mismo tiempo.

    
respondido por el Jeff Meden 03.06.2016 - 20:59
fuente
6

En teoría, sí, esta es una posibilidad (siempre y cuando el sitio que implementa 2FA no tenga ningún límite de velocidad o detección de fraude de ningún tipo, como lo indican las otras respuestas).

En la práctica, también hay que pensar en el factor de usabilidad. Imagine que creó un formulario de inicio de sesión que solicita a un usuario 2FA en cada intento de inicio de sesión, solo le dice al usuario que el intento no tuvo éxito después del paso 2FA y nunca le dice si fue la contraseña o el token 2FA lo que no fue válido.

2FA ya es un dolor gigante en el cuello para comenzar, cada vez que me conecto, no solo tengo que escribir mi nombre de usuario y contraseña, sino también encontrar mi teléfono (que podría estar en otra habitación), desbloquearlo. ve a mi pantalla de inicio, encuentra mi aplicación 2FA y encuentra el sitio correcto en la lista. Luego, el código está inevitablemente a cinco segundos de caducar, así que tengo que esperar a que aparezca uno nuevo o intentar escribirlo súper rápido antes de que caduque.

(los sistemas 2FA que usan SMS o notificaciones automáticas son mejores en este sentido, porque aparecen en mi reloj inteligente o, en el caso de un usuario que no posee un reloj inteligente, su pantalla de bloqueo. Sin embargo, estamos considerando que este esquema permitiría que un usuario me moleste con un sinfín de notificaciones / SMS siempre y cuando conozcan mi nombre de usuario, ya que no tienen que obtener mi contraseña correcta para activar un intento 2FA. Escuché que en algunos países, las compañías telefónicas le cobran por recibir mensajes SMS, por lo que en esos lugares este tipo de cosas sería aún peor para los usuarios.)

Si haces que tus usuarios pasen por todo eso dos veces cuando se equivocan con la contraseña, todo el proceso será mucho más doloroso, e incluso podrías terminar con menos gente usando 2FA como resultado, lo que hará que tus usuarios se vuelvan menos seguro en promedio.

    
respondido por el Adam Brenecki 04.06.2016 - 09:28
fuente
2

Para sistemas donde 2FA / MFA es "opcional" como Gmail o Outlook.com, el servicio debe equilibrar el factor de molestia de usar el método de 2 factores y la seguridad que trae a su sitio . En un mundo perfecto, los usuarios tendrían contraseñas complejas y únicas para cada sitio, y siempre usarían 2FA cuando estén disponibles, pero en el mundo real, tiene razón: los usuarios tendrán la misma contraseña en una docena de sitios y un factor de 2. Un mecanismo que no bloquea automáticamente la cuenta y notifica al usuario después de unos pocos intentos de inicio de sesión no válidos en una ventana relativamente pequeña podría llevar a una situación en la que el atacante intenta pacientemente algunas conjeturas hasta llegar al indicador 2FA, momento en el que Sé que tienen una combinación válida de nombre de usuario y contraseña. Con todas las bases de datos de contraseñas altamente públicas en sitios grandes (como LinkedIn, entre muchos otros) que usan su dirección de correo electrónico como inicio de sesión, un atacante puede adivinar lógicamente la contraseña de un usuario con relativa facilidad si el usuario nunca se molestó en actualizar otros sitios. , pero solo la que estaba "rajada".

Para aplicaciones críticas para la seguridad (como una de varias en las que trabajo), el indicador de inicio de sesión requiere un nombre de usuario, contraseña y valor de 2 factores, todo al mismo tiempo, y es una autenticación de "todo o nada", y no lo hacemos. t le dice POR QUÉ falló su inicio de sesión, a menos que sea porque su contraseña ha caducado (lo que supone que ingresó la contraseña correcta, pero solo va a requerir que la cambie e ingrese nuevamente con otro valor 2FA para obtener acceso a la aplicación) . Esa aplicación tiene una base de usuarios "cautiva" y la política lo requiere 2FA, por lo que no es directamente comparable con los sitios "2FA opcionales" que mencionó en el OP.

Fundamentalmente, sin embargo, estoy de acuerdo con los comentarios anteriores de que un "token-on-demand" es más seguro que un token "offline" (como RSA o Google Authenticator) si va a realizar la autenticación de 2 pasos porque el usuario sabrá de inmediato que alguien está intentando acceder a su cuenta en virtud de mensajes SMS inesperados, ya sea una "contraseña incorrecta" o una cadena de 2 factores válida en caso de que el atacante lo haga correctamente. Si el sitio SOLAMENTE envía el valor de factor 2 de SMS al iniciar sesión correctamente, entonces es inútil para el punto que menciona, al informar al usuario ANTES de que el atacante realmente obtenga la contraseña correcta. El usuario solo obtendría la cadena válida de 2 factores cuando el atacante tenía la contraseña correcta. Para entonces, es probable que sea demasiado tarde, y el atacante ya está intentando probar las mismas combinaciones de nombre de usuario y contraseña en otros sitios que no tienen 2FA y el usuario tendría que estar en una computadora y luchando para cambiar cada contraseña en cada sitio lo usan, y si reutilizan la misma contraseña en todas partes, es prácticamente imposible porque no los recordarán todos.

En última instancia, depende de la implementación individual en cuanto a lo dañino que puede ser un 2FA para los otros sitios utilizados por el mismo usuario. En el mejor de los casos, es un inicio de sesión todo en uno como describí, donde el atacante también tendría que tener de alguna manera su dispositivo 2FA o "cadena mágica" (token de inicialización para algo como Google Authenticator), y si lo tienen también , el usuario ya ha sido bien comprometido.

    
respondido por el Benjamin_FTW 06.06.2016 - 23:25
fuente

Lea otras preguntas en las etiquetas