- El servidor público de Gitea
git.xeserv.us se volvió inestable por solicitudes de AmazonBot, por lo que el operador pidió al equipo de AmazonBot que agregara ese dominio a su lista de bloqueo
- Aunque configuró
robots.txt para tratar a todos los bots con Disallow: /, las solicitudes siguieron llegando, al punto de que podría tener que abandonar la operación de un servidor Git público
- Los crawlers de IA dificultan el bloqueo cambiando el user agent o usando proxies con IP residenciales
- En nginx ingress bloqueó los user agents
Amazon devolviendo 418, pero las solicitudes continuaron desde otras IP y cerca del 10% ni siquiera tenía el user agent amazonbot
- Finalmente, el servidor Gitea volvió a moverse detrás de una VPN, y se creó
Anubis, un proxy inverso que realiza una verificación de prueba de trabajo antes de las solicitudes
Solicitudes de AmazonBot y límites de robots.txt
- El operador pidió a los responsables de AmazonBot que agregaran
git.xeserv.us a la lista de dominios bloqueados
- También pidió que se pusieran en contacto para poder pagar el costo de actualizar el hardware necesario para soportar el uso excesivo de recursos que implica rastrear el servidor Git
- Ya había configurado un
robots.txt para bloquear a todos los bots, pero no fue suficiente para bloquear las solicitudes reales
User-agent: *
Disallow: /
- También resumió por qué es difícil bloquear bots crawlers de IA
- Los bots mienten
- Cambian el user agent
- Usan direcciones IP residenciales como proxy
- También usan otros métodos
Bloqueo en nginx ingress y publicación de Anubis
- El 2025-01-17 a las 17:50 UTC agregó un bloqueo por user agent mediante la configuración de nginx ingress
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($http_user_agent ~* "(Amazon)" ){
return 418;
}
- Incluso después de esta configuración, el bot siguió haciendo solicitudes desde IP distintas cada vez, y cerca del 10% de las solicitudes no tenía el user agent
amazonbot
- El 2025-01-18 a las 19:00 UTC movió nuevamente el servidor Gitea detrás de una VPN
- Luego empezó a crear un proxy inverso que verifica una prueba de trabajo antes de permitir solicitudes al frontend del servidor Gitea
- El 2025-01-18 a las 23:50 UTC, ese proxy quedó disponible con el nombre
Anubis en https://git.xeserv.us/
- Al 2025-03-26 a las 14:27 UTC,
Anubis se convirtió en un proyecto independiente con sitio de documentación
1 comentarios
Opiniones de Hacker News
Ya es hora de enviar una carta de abogado. Si se revisan las pautas de acusación de la Computer Fraud and Abuse Act, el Departamento de Justicia de EE. UU. generalmente no considera el acceso a servidores públicos como “acceso no autorizado” si no se trata de un ataque evidente, pero establece que, después de que la parte autorizada envía una solicitud clara por escrito para que se detenga y el acusado la recibe y la entiende, a partir de ese momento sí se considera no autorizado.
Así que basta con pedirle a un abogado que redacte una carta clara de “cease and desist” y entregársela a Amazon por correo certificado o mediante un notificador judicial, según recomiende el abogado. Probablemente convenga hacer ambas cosas y también enviar un email.
Después se ve si Amazon se detiene; si no se detiene, se puede presentar una denuncia penal. Entonces Amazon sí empezará a prestar atención.
https://www.justice.gov/jm/jm-9-48000-computer-fraud
El bot de Amazon debería venir de rangos de IP conocidos de Amazon y respetar robots.txt. Un ingeniero de Amazon también lo confirmó en otro comentario: https://news.ycombinator.com/item?id=42751729
Si lo único que coincide con Amazon es la cadena de user agent “AmazonBot”, pero no coinciden los rangos de IP ni el comportamiento, enviarle una carta de abogado a Amazon es casi como quemar dinero.
Me gusta la solución de este comentario: https://news.ycombinator.com/item?id=42727510
Consiste en poner en algún lugar del sitio un enlace que ninguna persona visitaría, prohibirlo en robots.txt y, si alguna IP visita ese enlace, bloquearla durante 24 horas. Como dicen que el crawler de OpenAI en particular ignora los comodines, lo colocan debajo de un comodín.
Pero había tantas IP relacionadas que casi no tuvo impacto en el tráfico.
Recomiendo mirar los headers recibidos con mucho detalle. varnishlog es bastante bueno para esto y, si se observa durante mucho tiempo, se pueden encontrar rasgos que comparten todas las solicitudes. Por ejemplo, combinaciones raras entre el idioma reportado y la ubicación geográfica, o la misma versión antigua de navegador.
Peor aún, había un bug en el manejador de errores, así que cuando ocurría esa condición el proceso del servidor se reiniciaba, y en el proceso también invalidaba una implementación de caché que “para estándares de .NET 2.0 estaba bastante decente”.
Por eso recuerdo que empezamos a agregar una técnica de canarios como salvaguarda. Unos cuantos canarios simples seguían siendo más baratos que agregar otro servidor web. Por supuesto, también arreglamos el problema de caché y agregamos una forma de que el servicio “gritara” si recibía demasiadas solicitudes malas.
Pero resulta que los crawlers de esas empresas ni siquiera podían parsear los manifiestos que ellas mismas habían creado.
Nosotros también estamos viendo el mismo comportamiento en todos los bots de AI y SEO, así que lo recomiendo. Apenas respetan robots.txt y también son difíciles de bloquear. Cuando crawlean, llegan en oleadas como spam, suben mucho la carga y tiran muchos servidores de clientes.
Si los crawlers de AI quieren acceder, tienen que portarse bien o pagar. De lo contrario, el resultado será un bloqueo casi universal.
-j TARPITcon iptables a las IP que hacían en promedio más de X solicitudes por segundo a/api.No sé bien cómo implementarlo en la nube. Todavía no he tenido que hacerlo ahí.
https://gist.github.com/flaviovs/103a0dbf62c67ff371ff75fc62f...
O, al menos por cortesía, que raspen de noche o en horarios de baja demanda.
No asumiría que esto sea realmente Amazon. El autor está viendo solicitudes que rotan IP residenciales y también cambian la cadena de user-agent
Hacerse pasar por el crawler de una gran empresa es una técnica común de gente que no quiere llamar la atención. El hecho de que las solicitudes vengan de IP residenciales es una gran señal de alerta de que está pasando otra cosa
Según la información que pude verificar internamente, es muy poco probable que esto sea realmente Amazon. Amazonbot debería respetar robots.txt y venir siempre desde direcciones IP propiedad de Amazon. El procedimiento de verificación está aquí: https://developer.amazon.com/en/amazonbot
Lo escalé internamente para comprobar si algún equipo interno extraño que no conozco está haciendo esto, pero al autor le conviene tratar este tráfico como malicioso y como que falsifica el user-agent
[1] https://brightdata.com/proxy-types/residential-proxies
Hace poco tuve el mismo problema. Mi instancia de Forgejo empezó a usar el 100% del CPU de mi servidor casero, y los amigos de IA de Claude, Meta y Google estaban golpeando a gran velocidad una cantidad prácticamente infinita de enlaces
Lo reduje en parte con robots.txt y una lista de bloqueo basada en user-agent en Caddy, pero no sé cuánto va a durar eso
¿A dónde se fue la cortesía en el scraping?
El riesgo mayor es que una de estas empresas, incluso una que se autodenomina “Open”, llegue a una escala en la que, desde el punto de vista económico o de seguridad nacional, sea “demasiado grande para dejarla caer”
Facebook es famoso por haber facilitado scrapear listas de amigos desde MySpace, y después de crecer prohibió exactamente el mismo comportamiento en su propio sitio
Por favor, hay que despertar
¿Seguro que esto no es un DDoS haciéndose pasar por Amazon?
Que las solicitudes vengan de IP residenciales es realmente sospechoso
La motivación de un DDoS así podría ser tumbar sitios pequeños y hacer que parezca culpa de Amazon, apuntando contra Amazon
Si fuera realmente Amazon, el punto de partida sería bloquear todos los rangos de IP que publican. Aunque suena como que las solicitudes también vienen de fuera de esos rangos
Estos servicios pagan por el ancho de banda de los usuarios y luego lo revenden a terceros, así que mucho tráfico de bots parece venir de IP residenciales
Mi sitio, Pinboard, también está siendo golpeado por lo que parecen crawlers de IA. Este verano empezó con IP de China y Singapur, pero ahora ni siquiera puedo bloquear rangos de IP y tengo que depender de CAPTCHA
El nivel de tráfico es suficiente para matar el sitio de inmediato, y ni siquiera tengo texto interesante para entrenar, solo enlaces
Me da curiosidad cómo descubrió el autor original que el crawler de Amazon era la causa. Yo también quiero encontrar a quién echarle la culpa
La mejor forma de pelear contra esto quizá no sea bloquear. Bloquear no le causa ningún daño a Amazon ni a ninguna otra empresa
¿Y si, en cambio, se pudiera alimentar a los bots con contenido claramente dañino o corruptor?
Si se hace a mayor escala y Amazon descubre datos envenenados, tendría que gastar dinero para eliminarlos rápido e intentaría evitar que sus bots comieran esos datos
Claro que el mayor problema es que nadie quiere tener ese tipo de cosas en su propio sitio
Estos scrapers ya están consumiendo sin reparos CSAM y cosas horribles equivalentes. Algunos subcontratistas de etiquetado de datos de OpenAI en Kenia renunciaron por esto. Es un artículo de Time de 2023
Ahora las empresas de IA no se preocupan por la calidad de los datos, solo por la cantidad. La única forma de dañarlas es entregarles 0 bytes
Con solo una décima parte de lo que Sam Altman aprobó, una persona común iría directo a la cárcel
https://zadzmo.org/code/nepenthes/
Estaría bien que Amazon, como gesto de buena voluntad, diera algunos créditos de AWS para compensar el exceso de tráfico saliente generado por sus bots y otros. Igual, probablemente los ingresos publicitarios de este artículo lo cubran. Si desactivan el bloqueador de anuncios, las cuentas cierran
Antes de bloquearlos con Nginx, Bytespider representaba el 59% y Amazonbot el 21%; entre ambos sumaban el 80% de todo el tráfico de nuestro servidor Git.
ClaudeBot envió a Redmine, en un mes, más tráfico que todo el acumulado en los 5 años anteriores a ClaudeBot.