Cómo eluden los ciberdelincuentes los CAPTCHA

Ecosistema de F5 | 12 de julio de 2017


El CAPTCHA (prueba de Turing pública y completamente automatizada para distinguir entre ordenadores y humanos) se diseñó originalmente para impedir que los bots, el malware y la inteligencia artificial (IA) interactuaran con una página web. En los años 90, esto significaba bloquear los bots de spam. Hoy en día, las organizaciones utilizan CAPTCHA para intentar evitar ataques automatizados más peligrosos, como el relleno de credenciales.

Sin embargo, casi inmediatamente después de la introducción de CAPTCHA, los ciberdelincuentes desarrollaron métodos eficaces para eludirlo. Los defensores respondieron con CAPTCHA «reforzados», pero el resultado sigue siendo el mismo: la prueba que intenta detener la automatización se elude mediante la automatización.

Hay varias formas de vulnerar un CAPTCHA. Un método habitual consiste en utilizar un servicio de resolución de CAPTCHA, que recurre a mano de obra barata en países en vías de desarrollo para resolver imágenes CAPTCHA. Los ciberdelincuentes se suscriben a uno de estos servicios, cuyas soluciones se integran en sus herramientas de automatización mediante API para introducir las respuestas en el sitio web objetivo. Estas empresas de dudosa reputación están tan extendidas que muchas pueden encontrarse con una rápida búsqueda en Google, entre ellas:

  • DeathbyCAPTCHA
  • 2Captcha
  • Kolotibablo
  • ProTypers
  • Antigate

Este artículo utilizará 2Captcha para mostrar cómo los atacantes integran esta solución para orquestar ataques de relleno de credenciales.

2Captcha

Al acceder al sitio 2Captcha.com, se muestra al visitante la imagen que aparece a continuación, en la que se le pregunta si desea 1) trabajar para 2Captcha o 2) contratar 2Captcha como servicio.

Cómo eluden los ciberdelincuentes los CAPTCHA

Opción 1: trabajar para 2Captcha

Para trabajar para 2Captcha, solo tienes que registrarte y proporcionar una dirección de correo electrónico y una cuenta de PayPal para recibir los pagos. Durante una prueba, la cuenta se validó en cuestión de minutos.

Los nuevos trabajadores deben realizar un curso de formación inicial en el que aprenden a resolver CAPTCHA rápidamente. También se ofrecen consejos, como cuándo se distingue entre mayúsculas y minúsculas y cuándo no. Tras completar la formación con un nivel de precisión suficiente, pueden empezar a ganar dinero.

Cómo eluden los ciberdelincuentes los CAPTCHA

Tras seleccionar «Start Work», se dirige al trabajador a la pantalla del espacio de trabajo, que se muestra arriba. A continuación, se le presenta un CAPTCHA y se le pide que introduzca la solución. Una vez resuelto correctamente, el dinero se deposita en un «monedero» electrónico y el trabajador puede solicitar el pago cuando lo desee. La cantidad de CAPTCHA que aparecen en el espacio de trabajo parece no tener fin, lo que indica una demanda constante del servicio.

Cómo eluden los ciberdelincuentes los CAPTCHA

Los trabajadores de 2Captcha tienen incentivos para enviar soluciones correctas, del mismo modo que un conductor de Uber los tiene para ofrecer un servicio excelente: las valoraciones de los clientes. Los clientes de 2Captcha valoran la precisión de las soluciones de CAPTCHA que reciben. Si la valoración de una trabajadora de 2Captcha cae por debajo de un determinado umbral, será expulsada de la plataforma. Por el contrario, los trabajadores con las valoraciones más altas serán recompensados en periodos de baja demanda al recibir prioridad en la distribución de CAPTCHA.

Opción 2: 2Captcha como servicio

Para utilizar 2Captcha como servicio, un cliente (es decir, un atacante) integra la API de 2Captcha en su ataque para crear una cadena de suministro digital que envía automáticamente los desafíos CAPTCHA del sitio objetivo y recibe las soluciones para introducirlas en dicho sitio.

2Captcha ofrece convenientemente scripts de ejemplo para generar llamadas a la API en distintos lenguajes de programación, como C#, JavaScript, PHP y Python, entre otros. A continuación, se reproduce el código de ejemplo escrito en Python:

Cómo eluden los ciberdelincuentes los CAPTCHA

Integración de 2CAPTCHA en un ataque automatizado

¿Cómo utilizaría un atacante 2Captcha en un ataque de relleno de credenciales? El siguiente diagrama muestra cómo interactúan las distintas entidades en un proceso para eludir un CAPTCHA:

Cómo eluden los ciberdelincuentes los CAPTCHA

Proceso técnico:

  1. El atacante solicita el código fuente del iframe del CAPTCHA y la URL utilizados para insertar la imagen del CAPTCHA desde el sitio objetivo, y los guarda localmente
  2. El atacante solicita un token de API en el sitio web de 2Captcha
  3. El atacante envía el CAPTCHA al servicio 2Captcha mediante una solicitud HTTP POST y recibe un ID de captcha, que es un identificador numérico asociado a la imagen del CAPTCHA enviada a 2Captcha. En el paso 5, este ID se utiliza en una solicitud GET a la API de 2Captcha para obtener el CAPTCHA resuelto.
  4. 2Captcha asigna el CAPTCHA a un trabajador, que lo resuelve y envía la solución a 2Captcha.
  5. El atacante programa un script para consultar a 2Captcha mediante el ID del CAPTCHA (cada 5 segundos hasta que se resuelva). A continuación, 2Captcha envía el CAPTCHA resuelto. Si todavía se está resolviendo, el atacante recibe una respuesta de 2Captcha que indica «CAPTCHA_NOT_READY» y el programa vuelve a intentarlo 5 segundos después.
  6. El atacante envía una solicitud de inicio de sesión al sitio objetivo con los campos cumplimentados (es decir, un conjunto de credenciales de una lista robada), junto con la solución del CAPTCHA.
  7. El atacante repite este proceso con cada imagen CAPTCHA.

En combinación con frameworks de pruebas web como Selenium o PhantomJS, un atacante puede simular una interacción humana con el sitio web objetivo, eludiendo así muchas de las medidas de seguridad existentes para lanzar un ataque de relleno de credenciales.

Monetización y ecosistema delictivo

Con una solución tan elegante, ¿cómo es el ecosistema financiero y cómo gana dinero cada una de las partes?

Monetización: solucionador de CAPTCHA

Trabajar resolviendo CAPTCHA dista mucho de ser lucrativo. Según las métricas proporcionadas en el sitio web de 2Captcha, se puede calcular la siguiente remuneración:

Suponiendo que se tardan 6 segundos en resolver cada CAPTCHA, un trabajador puede enviar 10 CAPTCHA por minuto o 600 CAPTCHA por hora. En una jornada de 8 horas, eso supone 4800 CAPTCHA. Según lo que ganamos durante nuestra prueba como empleados de 2Captcha (aproximadamente 0,0004 $ por solución), esto equivale a 1,92 $ al día.

Esto es una pérdida de tiempo para quienes viven en países desarrollados, pero para quienes residen en lugares donde unos pocos dólares al día pueden dar bastante de sí, los servicios de resolución de CAPTCHA son una forma fácil de ganar dinero.

Monetización: atacante

El atacante paga a un tercero, 2Captcha, por soluciones de CAPTCHA en paquetes de 1000. Los atacantes pujan por las soluciones y pagan entre 1 y 5 dólares por paquete.

Muchos atacantes utilizan servicios de resolución de CAPTCHA como parte de un ataque de relleno de credenciales de mayor envergadura, lo que justifica el gasto. Por ejemplo, supongamos que un atacante lanza un ataque para probar en un sitio web objetivo un millón de credenciales obtenidas de Pastebin. En este caso, el atacante debe superar un CAPTCHA por cada conjunto de credenciales, lo que costaría aproximadamente 1000 $. Suponiendo una tasa de reutilización correcta de credenciales del 1,5 %, el atacante puede hacerse con el control de 15 000 cuentas, todas ellas susceptibles de monetización.

Monetización: 2Captcha

2Captcha recibe un pago del atacante por cada 1000 CAPTCHA. Como se ha mencionado anteriormente, los clientes (es decir, los atacantes) pagan entre 1 y 5 dólares por cada 1000 CAPTCHA. Los servicios como 2Captcha se quedan con una parte del precio ofertado y reparten el resto entre sus trabajadores. Dado que los servicios de resolución de CAPTCHA se utilizan como una solución a gran escala, los beneficios acaban siendo considerables. Aunque 2Captcha solo reciba 1 dólar por cada 1000 CAPTCHA resueltos, obtiene un beneficio neto mínimo de 60 centavos por lote. Los propietarios de estos sitios también suelen encontrarse en países en vías de desarrollo, por lo que estos ingresos, aparentemente bajos, son sustanciales.

¿Qué ocurre con el reCAPTCHA invisible de Google?

En marzo de este año, Google lanzó una versión mejorada de su reCAPTCHA denominada «reCAPTCHA invisible». A diferencia de «reCAPTCHA sin CAPTCHA», que obligaba a todos los usuarios a hacer clic en el famoso botón «No soy un robot», reCAPTCHA invisible permite el acceso a los usuarios identificados como personas y solo muestra una prueba de imágenes reCAPTCHA a los usuarios sospechosos.

Podría pensarse que esto desconcertaría a los atacantes, ya que no podrían saber cuándo se les estaba poniendo a prueba. Sin embargo, tan solo un día después de que Google presentara Invisible reCAPTCHA, 2CAPTCHA publicó una entrada en su blog sobre cómo sortearlo.

Google sabe que un usuario es humano si este ha visitado anteriormente la página solicitada, algo que determina comprobando las cookies del navegador. Si ese mismo usuario empieza a utilizar un dispositivo nuevo o ha borrado recientemente la caché, Google no dispone de esa información y se ve obligado a plantearle un desafío reCAPTCHA.

Para que un atacante pueda automatizar un ataque de relleno de credenciales mediante 2Captcha, debe asegurarse de que se presente un desafío CAPTCHA. Por tanto, una forma de eludir reCAPTCHA invisible consiste en añadir una línea de código al script de ataque que borre los datos del navegador con cada solicitud, garantizando así que se presente un desafío reCAPTCHA que pueda resolverse.

Lo que complica ligeramente el reCAPTCHA invisible es que el desafío CAPTCHA está oculto, pero existe una solución alternativa. El CAPTCHA se puede «encontrar» mediante la herramienta «Inspeccionar elemento» del navegador. De este modo, el atacante puede enviar una solicitud POST a 2Captcha que incluya un parámetro en el que se indique dónde se encuentra el CAPTCHA oculto. Una vez que el atacante recibe la solución del CAPTCHA de 2Captcha, puede eludir el reCAPTCHA invisible mediante automatización de una de estas dos formas:

  1. Acción de JavaScript que llama a una función para proporcionar el token resuelto al enviar el formulario de la página
  2. Modificación del código HTML directamente en la página web para sustituir un fragmento del código CAPTCHA normal por la entrada del token resuelto.

El hecho de que se pueda eludir Invisible reCAPTCHA no se debe a un fallo crítico en el diseño del nuevo CAPTCHA, sino a que cualquier prueba de Turing inversa puede superarse si se conocen las condiciones para aprobarla.

Mientras existan los CAPTCHA, habrá servicios como 2Captcha, porque el modelo económico favorece enormemente a los delincuentes. Aprovechar la mano de obra humana barata minimiza los costes operativos y permite a los ciberdelincuentes obtener beneficios que, a gran escala, pueden superar los millones de dólares. Además, siempre habrá regiones del mundo donde la mano de obra sea barata, por lo que la demanda constante garantiza que 2Captcha mantenga una oferta continua.

El mundo no necesita desarrollar un CAPTCHA mejor, ya que este enfoque en su conjunto presenta limitaciones fundamentales. En su lugar, deberíamos reconocer esas limitaciones e implementar mecanismos de defensa cuyos criterios para superarlos sean desconocidos o, al menos, difíciles de determinar para los atacantes.

Fuentes

Holmes, Tamara E. «Estadísticas sobre tarjetas prepago y tarjetas regalo». CreditCards.com. Creditcards.com, 1 de diciembre de 2015. Web.

Hunt, Troy. «Cómo vulnerar CAPTCHA con humanos automatizados». Entrada de blog. Troy Hunt. Troy Hunt, 22 de enero de 2012. Web.

Motoyama, Marti, Kirill Levchenko, Chris Kanich y Stefan Savage. Re: CAPTCHAs: análisis de los servicios de resolución de CAPTCHA en un contexto económico. Actas del 19.º Simposio de Seguridad USENIX, Washington D. C. Impreso.

Compartir

Artículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Ecosistema de F5 | 26/05/2026

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS

Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.

Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Ecosistema de F5 | 04/08/2025

Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación

Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.

Avanzar hacia la optimización digital tras la transformación
Ecosistema de F5 | 06/08/2024

Avanzar hacia la optimización digital tras la transformación

Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.

Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
Ecosistema de F5 | 07/06/2018

Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp

En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.

El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Ecosistema de F5 | 16/01/2018

El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad

Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.

Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Ecosistema de F5 | 17/04/2017

Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps

Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.