La prevención de bots se refiere a los métodos utilizados por los servicios web para evitar el acceso de procesos automatizados .
Los estudios sugieren que más de la mitad del tráfico en Internet es actividad de bots, de los cuales más de la mitad se clasifican además como "bots malos". [1]
Los bots se utilizan para diversos fines en línea. Algunos bots se utilizan de forma pasiva para fines de extracción de datos de la web , por ejemplo, para recopilar información de las aerolíneas sobre precios de vuelos y destinos. Otros bots, como los bots de zapatillas , ayudan al operador del bot a adquirir artículos de lujo de alta demanda; a veces, estos se revenden en el mercado secundario a precios más altos, en lo que comúnmente se conoce como "scalping". [2] [3] [4]
Se utilizan diversas técnicas de identificación y comportamiento para identificar si el cliente es un usuario humano o un bot. A su vez, los bots utilizan una serie de técnicas para evitar ser detectados y aparecer como un humano ante el servidor. [2]
Las técnicas de toma de huellas digitales de navegadores son el componente más común en los sistemas de protección anti-bots. Los datos se suelen recopilar a través de JavaScript del lado del cliente que luego se transmite al servicio anti-bot para su análisis. Los datos recopilados incluyen resultados de las API de JavaScript (verificando si una API determinada está implementada y devuelve los resultados esperados de un navegador normal), renderizando escenas complejas de WebGL y utilizando la API Canvas . [1] [5] Las técnicas de toma de huellas digitales de TLS categorizan al cliente analizando los conjuntos de cifrado admitidos durante el protocolo de enlace SSL . [6] Estas huellas digitales se pueden utilizar para crear listas blancas / listas negras que contienen huellas digitales de pilas de navegadores conocidas. [7] En 2017, Salesforce abrió el código fuente de su biblioteca de huellas digitales de TLS (JA3). [8] Entre agosto y septiembre de 2018, Akamai notó un gran aumento en la manipulación de TLS en su red para evadir la detección. [9] [7]
También se utilizan técnicas basadas en el comportamiento, aunque con menos frecuencia que las técnicas de toma de huellas dactilares, y se basan en la idea de que los robots se comportan de manera diferente a los visitantes humanos. Un enfoque conductual común es analizar los movimientos del ratón de un cliente y determinar si son típicos de un humano. [1] [10]
También se emplean a menudo técnicas más tradicionales como los CAPTCHA , aunque generalmente se consideran ineficaces y, al mismo tiempo, intrusivas para los visitantes humanos. [11]
El uso de JavaScript puede evitar algunos bots que dependen de solicitudes básicas (como a través de cURL ), ya que estos no cargarán el script de detección y, por lo tanto, no podrán progresar. [1] Un método común para evitar muchas técnicas es usar un navegador sin cabeza para simular un navegador web real y ejecutar los scripts de detección de JavaScript del lado del cliente. [2] [1] Hay una variedad de navegadores sin cabeza que se utilizan; algunos son personalizados (como PhantomJS ), pero también es posible operar navegadores típicos como Google Chrome en modo sin cabeza usando un controlador. Selenium es un marco de automatización web común que facilita el control del navegador sin cabeza. [5] [1] Los sistemas de detección anti-bot intentan identificar la implementación de métodos específicos de estos navegadores sin cabeza, o la falta de implementación adecuada de las API que se implementarían en los navegadores web normales. [1]
El código fuente de estos archivos JavaScript suele estar ofuscado para dificultar la ingeniería inversa del funcionamiento de la detección. [5] Las técnicas comunes incluyen: [12]
debugger
declaraciones, para evitar el uso de depuradores como DevToolsVarias empresas de Internet ofrecen servicios de protección anti-bots, como Cloudflare [13] y Akamai . [14] [15]
En Estados Unidos, en 2016 se aprobó la Ley de Mejores Ventas de Entradas en Línea (conocida comúnmente como Ley BOTS) para evitar algunos usos de bots en el comercio. [16] Un año después, el Reino Unido aprobó regulaciones similares en la Ley de Economía Digital de 2017. [ 17] [18] La eficacia de estas medidas es objeto de controversia. [19]