Factibilidad de ataques a la fuerza bruta de bases de datos basadas en el tiempo en sitios web

3

Recientemente aprendí que hay un ataque que utiliza el hecho de que cuando se fuerza una cadena comparada (por ejemplo, hash desde una contraseña o token) en una base de datos, la consulta falla unos pocos nanosegundos antes si el comienzo de la cadena es diferente que si el final es diferente y los caracteres anteriores son correctos. Si el atacante logra obtener un acceso exacto y aislado al tiempo de consulta, los intentos necesarios para encontrar la cadena correcta se reducen significativamente en comparación con el forzado bruto estándar.

¿Es incluso posible aislar el tiempo de consulta en un servidor web remoto dado que hay visitas constantes de otras personas y procesos en segundo plano en ejecución?

Si esto es, de hecho, una amenaza, ¿cuáles son las mejores prácticas para proteger los servidores web? Cosas en las que pensé:

  • Hash las cadenas de entrada para ofuscar la secuencia de caracteres.
  • Agregue algún tipo de tiempo de respuesta mínimo a las consultas relacionadas. Probablemente sea una mala idea porque puede abrir vectores de ataque de DOS y puede que no sea factible con los escenarios típicos de PHP / MySQL debido al mal soporte de subprocesos múltiples.
pregunta 23785623985 26.08.2015 - 05:45
fuente

3 respuestas

4

La viabilidad del ataque depende de la cantidad de ruido que deba eliminar para llegar a la señal que desea recibir. Si puede hacer muchas pruebas contra el sitio web, debería poder aumentar el nivel de señal, lo que podría ser suficiente para filtrar el ruido suficiente para que este tipo de ataque sea factible. Pero los detalles dependen mucho de la configuración real del sistema que desea abusar.

Para combatir este tipo de ataque, utiliza operaciones que se construyen deliberadamente para que su comportamiento no dependa de la entrada. Dichos algoritmos son una parte importante de la criptografía práctica, no solo para la comparación de cadenas simples, sino también para el hash y el cifrado. Y la sincronización no es el único canal lateral, sino que también debe observar el consumo de energía e incluso los canales laterales más raros, como la radiación.

Y es probable que no solo tengas que echar un vistazo a los ataques de tiempo contra la comparación de cadenas. Su aplicación web puede filtrar otros datos que facilitan la fuerza bruta, como comportarse de manera diferente si el nombre de usuario existe o no. Tenga en cuenta que simplemente el hash antes de la comparación puede no ser útil si la función de hash que utiliza no es resistente a los ataques de tiempo.

Creo que el mejor enfoque es tener un límite de velocidad serio para el número de intentos de inicio de sesión. Esto no solo hace que la fuerza bruta sea mucho más difícil, sino que también probablemente hará inviables los ataques de tiempo porque hay demasiado ruido y la señal no se puede amplificar debido a la limitación de velocidad.

    
respondido por el Steffen Ullrich 26.08.2015 - 08:09
fuente
1

Si bien esta es ciertamente una idea muy interesante, en la práctica creo que es bastante imposible de explotar. Estamos en una conexión de fibra aquí, e incluso el tiempo de respuesta directo a nuestro ISP está por todas partes:

Si la diferencia que está buscando es de unos pocos nanosegundos, literalmente ya debe tener acceso a la máquina local para comenzar a esperar detectar un patrón confiable. Y si el atacante tiene acceso a su entorno de red local, tiene problemas mucho mayores de los que preocuparse.

    
respondido por el Nic Barker 26.08.2015 - 06:24
fuente
0

Es muy difícil o imposible explotar esta vulnerabilidad a través de la red como ya declaró Nic Barker.

Quiero mencionar que es una buena práctica definir un umbral de bloqueo para los mecanismos de autenticación. Por ejemplo: si la autenticación de un cliente falla por séptima vez, la autenticación adicional para este cliente se bloquea durante al menos 5 minutos. Si un bloqueo no es factible, se puede agregar un CAPTCHA (para interfaces humanas) o un desafío de criptografía al proceso de autenticación.

    
respondido por el Noir 26.08.2015 - 08:18
fuente

Lea otras preguntas en las etiquetas