martes, mayo 16, 2023

"Yo no soy un robot, que lo dice ChatGPT": El captcha cognitivo de los conjuntos semánticos

Uno de los mecanismos más utilizados para evitar los ataques de fuerza bruta o de diccionario mediante el uso de herramientas automatizadas son los Captchas o los "Yo no soy un Robot". Por supuesto, cuando quieres hacer un exploit que requiere del uso de muchas llamadas a una web, es necesario saltarse esas protecciones, por eso se considera un "bug" o una "weakness" cuando es fácil saltarse esas protecciones.

Figura 1: "Yo no soy un robot, que lo dice ChatGPT."
El captcha cognitivo de los conjuntos semánticos

En el pasado, he publicado muchos artículos sobre los diferentes bugs que van apareciendo al respecto con las diferentes soluciones de Captcha o de "Yo no soy un Robot" que se van implementando en las diferentes webs. Y a medida que se han ido saltando, hemos ido metiendo diferentes formas de "demostrar que eres un humano y no un robot". Primero con los captchas visuales que permiten reconocer letras de formas retorcidas, que con la evolución de las técnicas de visión artificial se han ido superando uno a uno. 
O usando las opciones de accesibilidad que permiten, como contaban en el pasado mis compañeros Óscar Bralo, Álvaro Nuñez-Romero y Ioseba Palop que lograron saltarse el servicio de Google reCaptcha con el servicio Cognitivo de Google Voice Recognition. Y es que el avance de los algoritmos de inteligencia artificial ha hecho que cada vez sea más complejo probar que es un humano y no una IA para los servicios de Captcha. Y por ende, que para los humanos sea cada vez menos usable utilizarlos.

El captcha cognitivo de los conjuntos semánticos

Uno de los que utiliza la administración pública española es un captcha cognitivo basado en conjuntos semánticos de palabras. O lo que es lo mismo, reconocer qué palabra tiene que ver con un determinado tema. Así que te puedes ir a una página de la administración pública y encontrarte algo como esto:

Figura 3: Qué opción se corresponde con "Clima"

Vale, si te has criado en España, seguro que no tienes ninguna opción de equivocarte, así que no parece poco usable, pero como siempre, si es usable, tampoco parece muy complicado automatizar la respuesta a estos temas. Y en este caso, como os podéis imaginar, basta con preguntarle a ChatGPT para que nos de la respuesta correcta.

Figura 4: ChatGPT dice que la respuesta correcta es Clima

Sí, no es nada complicado. De hecho, no haría falta ni ponérselo tan bonito como se lo he puesto yo, que he reformulado la pregunta. Basta con copiar y pegar la parte de la pregunta que lleva las opciones. Algo como esto. Este es el desafío cognitivo.

Figura 5: ¿Qué tal vas de Mundo Clásico?

Copiamos desde el "cuál" hasta el final, y se lo enchufamos directamente a ChatGPT, para obtener la respuesta que "todos vosotros, seres humanos", conocíais.

Figura 6: Frédéric Chopin es la respuesta de este captcha

Tal vez alguno podría haber pensado que José, por eso de ser un nombre bíblico que podría haber sido una persona concreta de la historia, pero la respuesta es Chopin. No sé cuántas personas de la tercera edad se habrían confundido, pero desde luego ChatGPT no lo hace. Y la última.

Figura 7: ¿Leche, Trompeta, Yate, Caballo o Frente? Elige.

Con enviárselo a ChatGPT, resuelto el misterio. No hay ninguna complicación en este tipo de protecciones para un modelo LLM como ChatGPT, como os podéis imaginaros. Así que es trivial saltarse este tipo de Captchas solo con utilizar las herramientas de inteligencia artificial que están hoy en día a nuestro alcance.

Figura 8: Respuesta "Frente"

Llegados a este punto, la pregunta es: Si este sistema de Captcha ha demostrado que no es ninguna solución para detener a alguien que quiera hacer un ataque automatizado... ¿debemos implementarlo y forzar errores a los humanos de verdad aunque sean pocos? Y es que cuando implementemos medidas de seguridad, debemos tener en cuenta que los atacantes cuentan ya con herramientas de Machine Learning/ Inteligencia Artificial igual que todo el mundo.

Figura 9: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández.

Es decir, cualquier script automatizado utilizando ChatGPT puede saltarse esta protección de conjuntos semánticos, así que vale para cero como protección contra los malos. ¿Debemos por tanto meter una protección que solo entorpece la usabilidad metiendo pasos extras a las personas? ¿O consideramos que obligar al atacante a usar una llamada de API a un LLM como ChatGPT sirve para algo?

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


2 comentarios:

J dijo...

Lo primero, gracias por este post. Me has invitado a estudiar toda la noche en alternativas y a realizar la misma prueba.


Sería genial ver si se puede burlar CAPTCHA V3. porque ahora con model browsing puedes rastrearlo todo incluso esta web. o con webpilot el plugin de chatgpt. Porque puede acceder a todos sitios sin que se detecte como un bot cuando realmente tienen v3...?

Se podría interactuar desde chatgpt para enviar un formulario y burlar el captcha.

Veo que por el momento utilizas captcha de google (al menos a la hora de publicar este comentario). así que me quedo tranquilo por esta parte

Lamento tanta pregunta. intentaré durante el finde acceder a https://www.mypublicinbox.com/ChemaAlonso


Gracias

J dijo...

Lo primero, gracias por este post. Me has invitado a estudiar toda la noche en alternativas y a realizar la misma prueba.


Sería genial ver si se puede burlar CAPTCHA V3. porque ahora con model browsing puedes rastrearlo todo incluso esta web. o con webpilot el plugin de chatgpt. Porque puede acceder a todos sitios sin que se detecte como un bot cuando realmente tienen v3...?

Se podría interactuar desde chatgpt para enviar un formulario y burlar el captcha.

Veo que por el momento utilizas captcha de google (al menos a la hora de publicar este comentario). así que me quedo tranquilo por esta parte

Lamento tanta pregunta. intentaré durante el finde acceder a https://www.mypublicinbox.com/ChemaAlonso


Gracias

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares