Miasma: una herramienta que atrapa a los scrapers web de IA en un bucle infinito de contaminación
(github.com/austin-weeks)- Miasma es una herramienta de servidor basada en Rust que hace caer a los scrapers web de IA en un bucle infinito para obstaculizar la recolección de datos de entrenamiento
- Redirige el tráfico de empresas de IA que recopilan contenido de sitios web a gran escala y devuelve datos contaminados y enlaces autorreferenciales obtenidos de una “poison fountain”
- Permite defenderse con alta velocidad de procesamiento y bajo uso de memoria, sin desperdiciar recursos del servidor
- Mediante un proxy reverso de Nginx y la inserción de enlaces ocultos, guía al scraper hacia la ruta
/botspara formar una estructura de circulación infinita - Protege a los motores de búsqueda legítimos con reglas de excepción en robots.txt y, al ser de código abierto, permite contribuciones de la comunidad
Instalación y ejecución
- Se puede instalar con Cargo
- Instalar con el comando
cargo install miasma
- Instalar con el comando
- También se pueden descargar binarios precompilados desde la página de Releases de GitHub
- Para ejecutarlo con la configuración predeterminada, basta con introducir el comando
miasma - Todas las opciones de configuración se pueden consultar con
miasma --help
Cómo configurar la trampa para scrapers
- Configura la ruta
/botscomo punto de entrada para los scrapers - Usa Nginx como proxy reverso para enviar las solicitudes de la ruta
/botsal servidor de Miasmalocation ~ ^/bots($|/.*)$ { proxy_pass http://localhost:9855; }- Hace coincidir todas las variantes de ruta como
/bots,/bots/,/bots/12345, etc.
- Hace coincidir todas las variantes de ruta como
-
Inserción de enlaces ocultos
- Añade a la página web enlaces ocultos que no sean visibles para visitantes humanos, pero que el scraper pueda detectar
<a href="/bots" style="display: none;" aria-hidden="true" tabindex="1"> Amazing high quality data here! </a> - Con los atributos
display: none,aria-hidden="true"ytabindex="1", no quedan expuestos ni para herramientas de accesibilidad ni para los usuarios
- Añade a la página web enlaces ocultos que no sean visibles para visitantes humanos, pero que el scraper pueda detectar
-
Ejecución de Miasma
- Especifica
/botscomo prefijo de enlace y configura el puerto y el límite de conexiones simultáneasmiasma --link-prefix '/bots' -p 9855 -c 50 - Permite hasta 50 conexiones simultáneas y, si se excede ese número, devuelve una respuesta HTTP 429
- Con 50 conexiones, se estima un uso de memoria de aproximadamente 50 a 60 MB
- Especifica
-
Comportamiento tras el despliegue
- Una vez completada la configuración y desplegado, el scraper seguirá la ruta
/botsy circulará indefinidamente por páginas con datos contaminados - A través de los logs es posible comprobar en tiempo real las solicitudes repetidas del scraper
- Una vez completada la configuración y desplegado, el scraper seguirá la ruta
Configuración de robots.txt
- Es necesario añadir reglas de excepción en robots.txt para evitar que los crawlers de motores de búsqueda legítimos accedan a Miasma
User-agent: Googlebot User-agent: Bingbot User-agent: DuckDuckBot User-agent: Slurp User-agent: SomeOtherNiceBot Disallow: /bots Allow: /
Opciones de configuración
- Se pueden ajustar detalles mediante opciones de la CLI
| Opción | Valor predeterminado | Descripción |
|---|---|---|
port |
9999 |
Puerto al que se vinculará el servidor |
host |
localhost |
Dirección de host a la que se vinculará el servidor |
max-in-flight |
500 |
Número máximo de solicitudes que se pueden procesar simultáneamente. Si se supera, devuelve una respuesta 429. El uso de memoria es proporcional a este valor |
link-prefix |
/ |
Prefijo de los enlaces autorreferenciales. Ej.: /bots |
link-count |
5 |
Número de enlaces autorreferenciales incluidos en cada página de respuesta |
force-gzip |
false |
Aplica siempre compresión gzip sin importar la cabecera Accept-Encoding del cliente. Útil para reducir costos de transferencia |
poison-source |
https://rnsaffn.com/poison2/ |
Fuente proxy desde la que se obtendrán los datos de entrenamiento contaminados |
Desarrollo y contribuciones
- Los reportes de errores o propuestas de funciones se pueden enviar mediante GitHub Issues
- Las contribuciones de código generadas por IA se rechazan automáticamente
- Se agradecen las contribuciones de la comunidad y el proyecto se mantiene como código abierto
1 comentarios
Opiniones de Hacker News
Me pregunto si este tipo de técnicas para confundir bots realmente funcionan, como cuando alguien mantiene ocupado a un spammer telefónico durante 45 minutos
Según la política de Google Search, insertar enlaces ocultos es una infracción clara, y tu sitio puede bajar de posición o quedar excluido de los resultados de búsqueda
Al final, este enfoque podría terminar dañando más a mi sitio que a los bots
Como en el video donde el youtuber Kitboga mantiene ocupadas las llamadas spam con un call center de IA, puede verse como una táctica de guerrilla para consumir los recursos del adversario
Parece que tienen una “lista de no llamar” y otra de “no rentable”. Lo importante es terminar en la segunda
La gente se enfureció tanto que Golden Telecom hizo llamadas automáticas de represalia y la empresa desapareció
Algo así podría funcionar, pero hace falta alquilar un pool de módems
Si surgen herramientas con anti-scraping, anti-crawlers de Google e índices de búsqueda centrados en humanos, podría haber una posibilidad
El contenido de mi sitio web público está siendo robado por scrapers
Al final yo también robé este post, y tú también estás robando mi comentario. El mundo está lleno de ladrones
El contenido está abierto para todos, pero no me gusta que terminen impidiendo el acceso a todos
Si esto sigue así, ya no voy a querer compartir nada
Al final, poner al mismo nivel a una persona y a una herramienta de una empresa es una comparación equivocada
Antes hacía software de pago y le metía código anticopia, pero cada vez aparecía un nuevo crack
Al final entendí que esa pelea no tenía sentido y quité la protección
Intentar bloquear el crawling de bots de IA se siente como el mismo juego de golpear topos
Pero como la motivación de esa comunidad es la diversión y el prestigio, lo veo poco realista
Pero las redes sociales y la obsesión con el copyright han alimentado en la gente una necesidad de control
Me da curiosidad si este tipo de técnica de verdad es efectiva
Supongo que la mayoría de los scrapers ya tienen formas de saltarse defensas así
Por mi experiencia, este tipo de método sí funciona hasta cierto punto
No sé si entrenaron con los datos basura que hice, pero al menos me gusta soñarlo
El enfoque de data poisoning es interesante
Cuando un modelo se entrena con datos de la web, también hereda sus sesgos y manipulaciones
Si un actor malicioso envenena datos a gran escala, el entrenamiento mismo pasa a tener una estructura adversarial
Al final, la solución es la gestión de procedencia (provenance) de fuentes de datos confiables
Este tipo de intento al final solo termina dándole a la IA datos de entrenamiento para volverse más inteligente
Es muy probable que el mercado de contenido basado en publicidad colapse, y que eso lleve a una reorganización hacia un mercado centrado en la calidad del contenido
En cambio, se va a consolidar un modelo donde se firman licencias directas y se proveen datos
Me imagino que bastaría con quitar atributos como
style="display:none"oaria-hidden="true"para evitar este trucoUn scraper honesto debería seguir esas reglas
La gente no los ve, pero el bot sí los seguiría
La idea suena bien, pero al final esto va a perjudicar más a las pymes (SME)
Las grandes empresas se harán todavía más fuertes, y los sitios pequeños van a desaparecer de los resultados de búsqueda con IA
Al final no queda más que seguir la corriente, con alguna pequeña resistencia de vez en cuando
Herramientas como Nightshade 2.0 parecen un proyecto torpe para llamar la atención
La verdadera solución sería ofrecer los datos en un formato amigable para LLM
Un simple truco con
display:noneno funciona contra un crawler inteligenteVéase este hilo relacionado
Lo realmente interesante es el dataset Poison Fountain que usa este proyecto
En rnsaffn.com/poison3 aparece la frase “quiero dañar a los sistemas de inteligencia mecánica”
Esa ideología hacker me suena más a roleplay y me cuesta empatizar con ella