Miasma: ferramenta que aprisiona scrapers web de IA em um loop infinito de contaminação
(github.com/austin-weeks)- Miasma é uma ferramenta de servidor baseada em Rust que prende scrapers web de IA em um loop infinito para atrapalhar a coleta de dados de treinamento
- Redireciona o tráfego de empresas de IA que coletam conteúdo de sites em larga escala e retorna dados contaminados e links autorreferenciais obtidos da “poison fountain”
- Permite defesa sem desperdiçar recursos do servidor, com alto desempenho e baixo uso de memória
- Usa proxy reverso do Nginx e inserção de links ocultos para conduzir scrapers ao caminho
/bots, formando uma estrutura de circulação infinita - Mecanismos de busca legítimos são protegidos por regras de exceção no robots.txt, e o projeto é open source, permitindo contribuições da comunidade
Instalação e execução
- Pode ser instalado com Cargo
- Instale com o comando
cargo install miasma
- Instale com o comando
- Também é possível baixar binários pré-compilados na página de Releases do GitHub
- Para executar com a configuração padrão, basta digitar o comando
miasma - Todas as opções de configuração podem ser consultadas com
miasma --help
Como configurar a armadilha para scrapers
- Defina o caminho
/botscomo ponto de entrada para scrapers - Use Nginx como proxy reverso para encaminhar requisições do caminho
/botsao servidor Miasmalocation ~ ^/bots($|/.*)$ { proxy_pass http://localhost:9855; }- Corresponde a todas as variações de caminho, como
/bots,/bots/,/bots/12345
- Corresponde a todas as variações de caminho, como
-
Inserção de links ocultos
- Adicione à página web links ocultos que não sejam visíveis para visitantes humanos, mas que possam ser detectados por scrapers
<a href="/bots" style="display: none;" aria-hidden="true" tabindex="1"> Amazing high quality data here! </a> - Os atributos
display: none,aria-hidden="true"etabindex="1"impedem a exposição a usuários e ferramentas de acessibilidade
- Adicione à página web links ocultos que não sejam visíveis para visitantes humanos, mas que possam ser detectados por scrapers
-
Execução do Miasma
- Defina
/botscomo prefixo dos links e configure a porta e o limite de conexões simultâneasmiasma --link-prefix '/bots' -p 9855 -c 50 - Permite no máximo 50 conexões simultâneas; requisições excedentes retornam HTTP 429
- Com 50 conexões, o uso de memória esperado é de cerca de 50~60MB
- Defina
-
Comportamento após a implantação
- Depois de implantado, os scrapers seguem o caminho
/botse circulam indefinidamente por páginas com dados contaminados - É possível acompanhar em tempo real, pelos logs, as requisições repetidas dos scrapers
- Depois de implantado, os scrapers seguem o caminho
Configuração do robots.txt
- É necessário adicionar regras de exceção no robots.txt para evitar que crawlers legítimos de mecanismos de busca acessem o Miasma
User-agent: Googlebot User-agent: Bingbot User-agent: DuckDuckBot User-agent: Slurp User-agent: SomeOtherNiceBot Disallow: /bots Allow: /
Opções de configuração
- É possível fazer ajustes detalhados por meio das opções de CLI
| Opção | Padrão | Descrição |
|---|---|---|
port |
9999 |
Porta à qual o servidor fará bind |
host |
localhost |
Endereço de host ao qual o servidor fará bind |
max-in-flight |
500 |
Número máximo de requisições que podem ser processadas simultaneamente. Acima disso, retorna 429. O uso de memória é proporcional a esse valor |
link-prefix |
/ |
Prefixo dos links autorreferenciais. Ex.: /bots |
link-count |
5 |
Número de links autorreferenciais incluídos em cada página de resposta |
force-gzip |
false |
Aplica compressão gzip sempre, independentemente do cabeçalho Accept-Encoding do cliente. Útil para reduzir custos de transferência |
poison-source |
https://rnsaffn.com/poison2/ |
Fonte proxy de onde serão obtidos os dados de treinamento contaminados |
Desenvolvimento e contribuição
- Relatórios de bugs e sugestões de funcionalidades podem ser enviados por GitHub Issues
- Contribuições de código geradas por IA são automaticamente rejeitadas
- Contribuições da comunidade são bem-vindas, e o projeto permanece open source
1 comentários
Comentários no Hacker News
Assim como quando alguém mantém um golpista de telemarketing ocupado por 45 minutos, fico em dúvida se esse tipo de técnica de confusão de bots realmente funciona
Segundo a política do Google Search, inserir links ocultos é uma violação clara, o que pode derrubar o ranking do site ou até removê-lo dos resultados de busca
No fim, esse tipo de abordagem pode causar mais dano ao meu site do que aos bots
Como no vídeo do youtuber Kitboga, que prende chamadas de spam com um call center de IA, isso pode ser visto como uma tática de guerrilha para consumir os recursos do inimigo
Parece que eles mantêm uma “lista de não ligar” e uma “lista de não lucrativo”. O segredo é entrar na segunda
As pessoas ficaram tão irritadas que a Golden Telecom fez ligações automáticas de retaliação, e a empresa desapareceu
Dá para obter efeito desse jeito, mas é preciso alugar um pool de modems
Se surgirem ferramentas com anti-scraping, anti-crawler do Google e um índice de busca centrado em humanos, pode haver aí uma possibilidade
O conteúdo do meu site público está sendo roubado por scrapers
No fim, eu também roubei este post, e você também está roubando meu comentário. O mundo está cheio de ladrões
O conteúdo está aberto para todos, mas eu não gosto da ideia de torná-lo inacessível para todo mundo
Se isso continuar, vou perder a vontade de compartilhar
No fim, colocar humanos e ferramentas de empresas no mesmo nível é uma comparação errada
No passado eu fazia software pago e colocava código de proteção contra cópia, mas sempre aparecia um novo crack
Acabei percebendo que aquela luta não fazia sentido e removi o código de proteção
Tentar impedir o crawling de bots de IA parece o mesmo jogo de gato e rato
Mas, como a motivação da comunidade é justamente diversão e prestígio, acho difícil isso funcionar na prática
Mas redes sociais e a fixação com direitos autorais acabaram alimentando o desejo de controle das pessoas
Fico curioso se esse tipo de técnica realmente funciona
A maioria dos scrapers provavelmente já deve ter tecnologia para contornar esse tipo de defesa
Pela minha experiência, esse tipo de abordagem funciona até certo ponto
Não sei se eles treinaram com os dados lixo que eu criei, mas gosto de sonhar
A abordagem de envenenamento de dados (data poisoning) é interessante
Quando o modelo treina com dados da web, ele herda os vieses e manipulações que estão neles
Se agentes maliciosos contaminarem dados em larga escala, o próprio treinamento passa a ter uma estrutura adversarial
No fim, a solução é a gestão de procedência de fontes de dados confiáveis (provenance)
No fim, esse tipo de tentativa acaba fornecendo dados de treinamento para a IA ficar mais inteligente
É bem provável que o mercado de conteúdo baseado em publicidade entre em colapso e, como resultado, seja reorganizado em torno da qualidade do conteúdo
Em vez disso, deve se consolidar um modelo em que os dados são fornecidos por meio de licenciamento direto
Não daria para evitar esse truque simplesmente removendo atributos como
style="display:none"ouaria-hidden="true"?Um scraper honesto deveria seguir essa regra
As pessoas não veem, mas os bots podem seguir
A ideia é legal, mas no fim isso vai prejudicar ainda mais as PMEs (SME)
Só as grandes empresas vão ficar mais fortes, e os sites pequenos vão desaparecer dos resultados de busca por IA
No fim, não resta muito além de seguir o fluxo e deixar uma pequena resistência aqui e ali
Ferramentas como Nightshade 2.0 parecem mais projetos mal-acabados para chamar atenção
A solução de verdade é fornecer dados em um formato amigável para LLMs
Um truque simples de
display:nonenão funciona contra crawlers espertosVeja esta thread relacionada
O realmente interessante é o dataset Poison Fountain usado por este projeto
Em rnsaffn.com/poison3 aparece a frase “quero causar dano a sistemas de inteligência de máquina”
Esse tipo de ideologia hacker me parece uma espécie de roleplay, então acho difícil me identificar com isso