Desde hace unas semanas hemos venido detectando en varios clientes un aumento del tráfico y consumo de recursos anormal para la fecha. Incluso clientes con caídas frecuentes de la web con errores 500 por el hosting haber llegado al límite de recursos. Puntualmente esto es algo normal, pero cuando ocurre en varios clientes a la vez y en un corto periodo de tiempo las alarmas se encienden.

Investigando qué ocurre, el accesslog

Lo primero que fuimos a ver es el accesslog de los hosting de las webs que tenían la incidencia. En estos ficheros, el servidor web (apache o nginx normalmente) guarda un registro de todas las visitas que se producen en una web. Se puede ver la URL visitada, fecha/hora, origen, IP, user-agent…

En nuestro caso usamos GoAccess para visualizar de manera gráfica los logs y navegar por ellos más rápido.

Detectamos en todos ellos un pico de peticiones de un user-agent llamado ByteSpider que lanzaba peticiones de manera indiscriminada a las webs, descargándose en este caso las imágenes que encontraba por el camino. El user-agent será algo parecido a esto:

“Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)”

¿Qué es ByteSpider y por qué bloquearlo?

Según DarkVisitors:

Bytespider is a web crawler operated by ByteDance, the Chinese owner of TikTok. It’s allegedly used to download training data for its LLMs (Large Language Model) including those powering ChatGPT competitor Doubao.

It’s generally unclear how AI Data Scrapers choose which websites to crawl and how often to crawl them. They might choose to visits websites with a higher information density more frequently, depending on the type of AI models they’re training. For example, it would make sense that an agent training an LLM (Large Language Model) would favor sites with a lot of regularly updating text content.

(“Bytespider es un rastreador web operado por ByteDance, el propietario chino de TikTok. Supuestamente se utiliza para descargar datos de entrenamiento para sus modelos de lenguaje grande (LLM), incluyendo aquellos que alimentan al competidor de ChatGPT, Doubao.

Generalmente no está claro cómo los raspadores de datos de inteligencia artificial eligen qué sitios web rastrear y con qué frecuencia hacerlo. Pueden optar por visitar sitios web con una mayor densidad de información con más frecuencia, dependiendo del tipo de modelos de IA que estén entrenando. Por ejemplo, tendría sentido que un agente que entrena un LLM (Modelo de Lenguaje Grande) favorezca sitios con mucho contenido de texto que se actualice regularmente.”)

Esto viene a decir que es un bot propiedad de TikTok, que rastrea las webs para descargarse contenidos e imágenes para entrenar a Doubao, la competencia de ChatGPT.

Hay varios medios hablando de este tema y de la posible infracción del copyright que produce esta tarea, ya que no se ha dado consentimiento al bot para que use nuestros contenidos de manera comercial para intereses propios.

ByteSpider es un bot que consume una cantidad significativa de recursos del servidor de manera indiscriminada al rastrear nuestras páginas web. Esto puede llevar a caídas frecuentes del sitio web y errores 500, ya que el bot puede agotar los recursos disponibles.

Bloqueando a ByteSpider

Quitando temas legales, lo primero que nos interesa hacer es bloquear a ByteSpider para que deje de acceder a nuestros contenidos y sobrecargar nuestros hostings, hay varias maneras de hacerlo:

  • Bloqueo automático del hosting

Dependiendo del hosting donde esté alojada la web, pueden detectar el tráfico anormal que viene desde las IPs de ByteSpider y que bloquee automáticamente al bot. En nuestro caso, los clientes que comentábamos están en varios proveedores de hosting y solo uno de ellos bloqueó automáticamente al bot, el resto dejaba pasar las peticiones.

  • CloudFlare

Si tenemos CloudFlare activo en nuestra web, bloquear a ByteSpider es muy sencillo. Simplemente debemos crear una regla de firewall en nuestro panel de CloudFlare como esta y veremos como los recursos usados del hosting empiezan a disminuir rápidamente: