¿Se puede derrotar un CSRF CAPTCHA?

3

Una defensa que los desarrolladores utilizan para protegerse contra un CSRF attack es implementar un CAPTCHA en pasos críticos. Un CAPTCHA asegura que un humano está en el teclado aprobando la actividad. Pero he oído que los CAPTCHA se han roto. Claro, puedo ver cómo los bots pueden usar el software para derrotar a CAPTCHA para publicar spam en foros y demás. Pero no veo ninguna técnica que pueda usarse en un ataque CSRF.

¿Puede alguien explicar exactamente cómo un atacante puede derrotar a un CAPTCHA en un ataque de CSRF?

Para aclarar ... Entiendo cómo funciona CSRF y los diversos métodos de protección contra ellos. Lo que quiero saber es cómo la protección CAPTCHA puede ser derrotada.

    
pregunta Rap 15.02.2012 - 21:44
fuente

4 respuestas

4

Un CAPTCHA no se puede vencer como una mitigación XSRF excepto por fuerza bruta u otro tipo de ataque (por ejemplo, el secuestro de imágenes para enmarcar la interfaz de usuario del sitio de destino en un contexto de reparación). El análisis de imágenes no se pudo aplicar porque un atacante de otro sitio no tiene acceso de lectura al contenido en el CAPTCHA.

¡Sin embargo!

  

Una defensa que los desarrolladores utilizan para protegerse contra un ataque CSRF es implementar un CAPTCHA en pasos críticos.

No conozco a los desarrolladores de los que estás hablando, no suenan muy sanos.

Usted obtiene el mismo beneficio sin el costo de la experiencia de usuario degradada simplemente enviando un token al cliente y verificando el mismo token cuando regresa al servidor. (También puede obtener mucha más entropía en un token de este tipo que lo que un usuario podría escribir cómodamente en un CAPTCHA, haciéndolo a prueba de brutales).

respondido por el bobince 16.02.2012 - 01:17
fuente
2

CAPTCHA se puede romper usando el análisis de imagen / audio.

En su forma más básica, el Reconocimiento óptico de caracteres (OCR, por sus siglas en inglés) es una tecnología que ha existido durante años. OCR lee una imagen y busca los caracteres que entiende y traduce a texto ... Bingo, un método para romper la imagen CAPTCHA.

Del mismo modo, el análisis del habla, lo tenemos en teléfonos, consolas de juegos, etc. Una vez más, la tecnología ha existido durante años.

Verificación de imagen CAPTCHA a menudo usa ruido en la imagen para hacerla más difícil, pero filtrar el ruido no es tan difícil. Realmente solo toma un poco más de procesamiento.

CAPTCHA sigue siendo un buen elemento disuasorio porque agrega complejidad y generalmente es bien aceptado por los usuarios, pero no es una bala de plata.

Otra forma en que CAPTCHA puede romperse es con los humanos. Hace unos años, creo que había unas pocas botnets grandes que recogían las respuestas a los códigos CAPTCHA al entregarlas a las máquinas infectadas.

Para proteger su CAPTCHA o cualquier sistema de verificación manual, limitar el tiempo de validez de los códigos es una primera defensa.

Espero que ayude.

    
respondido por el Bernie White 15.02.2012 - 22:49
fuente
1

El uso de un CAPTCHA puede ser un método eficaz para mitigar el riesgo de un ataque CSRF exitoso. Hay formas de vencer a los CAPTCHA en general, pero si elige una implementación sólida, entonces son efectivas. Sin embargo, dan como resultado una experiencia de usuario bastante negativa (cada vez que vas a hacer algo sensible, debes ingresar un CAPTCHA = muchos usuarios muy descontentos).

Una mejor idea es el uso de tokens de validación, ya que son transparentes para el usuario. Esto generalmente se considera como el método preferido de mitigación de CSRF. También puede combinar esto con una comprobación de referencia débil si desea implementar varias contramedidas (consulte aquí: enlace ).

    
respondido por el jeffsix 15.02.2012 - 21:18
fuente
1

Como siempre: depende. En este caso depende de la implementación real de Captcha. Porque si el Captcha puede resolverse forjando también la respuesta o puede ser engañado con un ataque de repetición, tampoco lo protegerá contra CSRF.

Pero supongamos que usas un Captcha seguro. Luego, para resolver un Captcha, un atacante necesita poder leerlo de alguna manera y resolverlo o lo fuerza bruta.

La lectura del desafío no es posible debido a la Política del mismo origen. Así que los métodos generales de resolución de Captcha como OCR o resolución humana no funcionan aquí. Entonces, el último ataque viable es el fuerza bruta.

Si eso no es todo posible, usar un Captcha puede prevenir los ataques CSRF. Pero como ya se dijo, también hay otras soluciones menos molestas para mitigar los ataques CSRF.

    
respondido por el Gumbo 16.02.2012 - 08:54
fuente

Lea otras preguntas en las etiquetas