¿Puede un robot detectar a otro robot?
Hace poco salió la noticia de que Banco Estado habilitó una tecnología que evita que bots entren en su página. El sistema se llama Akamai, que es como Cloudflare pero más enterprise.
En muchos casos, usar tecnología anti-bots tiene todo el sentido del mundo. Por ejemplo, si eres Nike y sacas una edición limitada de zapatillas, no quieres que un bot llegue y las compre todas. Nike gasta millones de dólares al año en tecnología anti-bot.
El caso de Banco Estado ha sido más mediático porque su política anti-bots está afectando a empresas fintech que usan bots para operar día a día.
Como contexto, hoy los bancos en Chile no ofrecen una API para que otro programa se conecte con ellos. La única forma de que apps como Fintonic existan, es que como usuarios le demos el consentimiento a robots para que entren a la página del banco igual que un humano y descarguen nuestros movimientos bancarios.
Así como el control por voz es una herramienta que le dice a nuestros celulares que ejecuten ciertas acciones por nosotros, estos robots hacen lo mismo pero para hacer pagos y otras operaciones de manera eficiente.
Para hacer un bot indetectable y saltarse las restricciones de Akamai, primero hay que saber cómo funcionan estas herramientas.
¿Cómo se detecta un bot?
Hay varias formas de hacerlo. Algunas más simples que otras. Se basan en estas tres categorías:
- Detección de IPs
- Detección del dispositivo
- Comportamiento del usuario
Detección de IPs
La detección de IPs funciona parecido a lo que haces tú con tu celular.
Si alguien te llama 300 veces al día, al llamado 20 vas a estar chato y no vas a contestar más. También uno puede sospechar de algunos números. Por ejemplo, si veo que me llama el +56 9 7700 0000 altiro pienso que es una empresa telefónica tratando de venderme algo, así que no contesto.
En internet es lo mismo. Todos los computadores y celulares conectados a internet tienen lo que se llama una IP, que es parecido a un número de teléfono. Cada vez que visitas una página web, esa página puede ver tu IP y decidir si responderte o no.
Si normalmente entra 1 persona de una misma IP, cuando veo que 1000 personas comparten esa IP es raro. Las soluciones anti-bot pueden fácilmente ver esto y bloquear las IPs sospechosas.
Las personas más computinas pueden pensar que este bloqueo se puede saltar fácil con proxies. Y es verdad. Pero Akamai revisa muchas otras cosas más que solo tu IP.
Detección de tu dispositivo
Las páginas web no solo pueden ver tu IP, si no que también pueden ver el dispositivo que estás usando. Es como si alguien te llamara y aparte de verle su número de teléfono, también puedas ver si te llama de un iPhone 12 o un Huawei P30 lite.
User Agent
La forma más simple de detectar tu dispositivo, es con algo que se llama el User Agent. El User Agent básicamente le dice a las páginas la versión de tu navegador y tu sistema operativo. Cada vez que visitas una página, tu navegador le envía el User Agent a esa página.
Yo uso Chrome en un Mac y mi User Agent es este:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
Si trato de entrar a una página web sin un User Agent definido, o mi User Agent es raro, obviamente me van a bloquear.
Igual que con la técnica de bloqueo de IPs, alguien más técnico puede pensar que usando un User Agent real basta. Pero las soluciones anti-bot como Akamai no solo usan el User Agent, si no que verifican la huella digital de tu browser.
La huella digital de tu browser
Todos los browsers tienen una huella digital que está definida por la combinación de tu browser, zona horaria, lenguaje, sistema operativo, fuentes instaladas y hasta de tu tarjeta de video. Es tan única la combinación, que empresas de publicidad usan la huella digital de tu browser para poder trackearte incluso si borras tus cookies.
Una solución anti-bots puede ver la huella digital de los dispositivos que visitan una página web para decidir si un usuario es real o no. Por ejemplo, si digo que mi sistema operativo es Windows, pero la huella digital de mi browser dice que en realidad no tengo las fuentes típicas de Windows, altiro te pueden considerar como un bot.
Comportamiento del usuario
Y sumado a todo lo anterior, soluciones sofisticadas como Akamai trackean el comportamiento de navegación de la página para ver si eres humano o no. Por ejemplo, si haces click en un link sin mover el mouse. O si llevas 1 mes haciendo exactamente lo mismo en una página web.
¿Y puedo hacer mi robot indetectable?
Sí. Si es que un humano puede entrar a Banco Estado, entonces un programa también puede hacerlo. Pero el costo es altísimo.
Como industria nos estamos desgastando en una especie de guerra fría de quién construye el mejor robot. Es un real freno a la industria Fintech en Chile.
Con mucha inversión y esfuerzo, nuestra API sigue funcionando con todos los bancos. La puedes probar aquí.