Anubis realmente funciona
(xeiaso.net)- Anubis foi implantado em policytoolbox.iiep.unesco.org, da UNESCO, ganhando mais atenção como exemplo de ferramenta de combate a bots usada por grandes organizações
- Após a confirmação de que
unesco.orgé o domínio oficial da UNESCO, esta implantação é vista como um caso real de uso por uma organização ligada às Nações Unidas - Seu uso vem se ampliando junto a implantações já conhecidas, como os arquivos da Linux Kernel Mailing List, FreeBSD SVN, SourceHut, FFmpeg, Wine e GNOME GitLab
- O fato de organizações desse tipo adotarem o Anubis mostra que o problema de tráfego de bots na internet pode ser mais grave do que se imaginava
- É preciso dedicar mais tempo ao Anubis e à stack ao seu redor; com patrocínio suficiente, seria possível trabalhar nisso em tempo integral e até contratar pessoas
Confirmação da implantação na UNESCO
- Anubis foi implantado em policytoolbox.iiep.unesco.org, da UNESCO, órgão ligado às Nações Unidas
unesco.orgconsta na Wikipedia como o domínio oficial da United Nations Educational, Scientific and Cultural Organization- A intenção é entrar em contato com a equipe de administradores de sistemas da UNESCO para verificar se houve problemas durante a instalação e tornar o processo de instalação mais fácil
Casos conhecidos de implantação e próximos trabalhos
- Entre os casos confirmados de implantações em grande escala estão:
- Arquivos da Linux Kernel Mailing List
- SVN do FreeBSD, em breve git
- SourceHut
- FFmpeg
- Wine
- UNESCO
- The Science Olympiad Student Center
- Ambiente de desktop Enlightenment
- GitLab do GNOME
- Se organizações desse porte estão usando o Anubis, o problema de tráfego de bots pode estar em um nível muito mais grave do que se estimava
- Assim como o YouTube chegou perto, em certo momento, de uma “the inversion”, em que o tráfego de bots supera o tráfego humano, a questão que resta é quão disseminado um fenômeno semelhante está pela internet como um todo
- É necessário dedicar tempo de verdade ao Anubis e à stack relacionada; se houver patrocínio suficiente, será possível trabalhar nisso em tempo integral e até contratar pessoas
- Se o Anubis for útil para você, o autor pede apoio pelo Patreon
1 comentários
Comentários do Hacker News
Post relacionado: Anubis: um proxy de prova de trabalho para bloquear crawlers de IA (100 points, 23 days ago, 58 comments) https://news.ycombinator.com/item?id=43427679
É interessante que a Xe tenha transformado algo que antes era quase uma piada/postagem meio inútil em um produto realmente útil. Sempre disseram que timing é tudo
É um pouco surpreendente que tantos sites queiram ou precisem disso. Dá para entender o problema de páginas Git lentas em alguns servidores Git muito profundos, sem cache e servidos a partir de discos lentos
A UNESCO foi um pouco inesperada. Aquele subsite é bem grande, com milhares de documentos, mas é conteúdo estático, então deveria ser fácil de servir. Olhando melhor, era um WordPress implantado de forma relaxada em cima do Apache, sem cache, sem compactação de conteúdo e sem HTTP/2 ou HTTP/3
Provavelmente seria fácil consertar para servir isso de forma muito barata até em uma máquina minúscula, mas, claro, exige conhecimento especializado, e conhecimento especializado ainda não é barato
Dá até para perguntar a um LLM, mas, se você nem sabe o que perguntar, ele ainda não ajuda muito. Se você nem sabe que o site é lento para começo de conversa, por que perguntaria? Você só vai ouvir que está sendo esmagado pelo tráfego e acabar procurando um defensor furry
Não quero dizer que seja difícil; quero dizer que, para começar, pouca gente sequer sabe que ele existe
Se eu tivesse que chutar, o motivo para não mexerem no WordPress talvez não seja técnico, mas sim não querer tocar em uma instância frágil, ou problemas de permissões na organização, ou o administrador já presumir que o WP está bem configurado
Não há como fazer cache disso, e os bots nem respeitam o arquivo robots, então continuam requisitando URLs e baixando posts repetidamente em várias combinações e números. É uma verdadeira dor de cabeça
Até agora, as soluções que vi foram Cloudflare, exigir login, Anubis ou uma infraestrutura de escala absurda
Um site disse que 60% do tráfego vinha de bots, e em sites menores essa proporção provavelmente é muito maior
Também me lembro de projetos que tentavam transformar a prova de trabalho em computação útil
Se você está confuso sobre o que é isso, é para impedir scraping por IA
“O Anubis usa desafios de prova de trabalho para garantir que o cliente esteja usando um navegador moderno e seja capaz de calcular checksums SHA-256”
https://anubis.techaro.lol/docs/design/how-anubis-works
Bem legal, e talvez ajude em um ou dois dos meus projetos
Permitir que publiquem conteúdo ou executem ações obviamente pode ser problemático em várias situações
Mas, na simples entrega de conteúdo, normalmente o critério para filtrar ou bloquear não é se é humano ou bot. Se um determinado cliente não está abusando do sistema, por que eu deveria me importar se ele é humano?
“Ele também usa o tempo como entrada. Porque, por causa da natureza da linha temporal linear, tanto o servidor quanto o solicitante sabem o que é o tempo”
É uma frase engraçada na documentação
Por vários motivos, dessincronização de relógio é comum. Não dá para esperar que os 10% inferiores dos usuários estejam corretos nem no nível de dias, e até os 25% inferiores podem estar uns 5 minutos defasados
As imagens da página intermediária exibidas até a verificação do Anubis terminar são muito fofas. Sempre achei as ilustrações e personagens do blog da Xe bonitos
Como observação lateral, eu também estava curioso sobre que impacto isso teria em mecanismos de busca comuns e como se diferencia da solução da Cloudflare para bloquear crawlers de IA, e isso está explicado na página do GitHub [1]
“Se você instalar e usar isso, é muito provável que alguns mecanismos de busca não indexem seu site. Isso não é considerado um bug do Anubis, mas sim um recurso”
“Esta é uma resposta meio nuclear, mas os bots scrapers de IA têm raspado de forma agressiva demais, então não houve muita escolha”
“Na maioria dos casos, você não precisa usar isso, e proteger servidores de origem específicos com Cloudflare provavelmente é suficiente. Mas, em situações em que você não pode ou não quer usar Cloudflare, existe o Anubis”
[1]: https://github.com/TecharoHQ/anubis/
Só que lugares como o Google às vezes usam os mesmos IPs para IA e para indexação de busca
Ainda assim, estão melhorando coisas como deixar passar tags Open Graph, para pelo menos permitir que prévias enriquecidas funcionem
Li sobre o Anubis e é um projeto bacana. Infelizmente, como apareceu nos comentários, os visitantes do site precisam ativar o JavaScript™
Se o site já precisa de JavaScript™ para melhorar a experiência do usuário, tudo bem, mas não é muito adequado para sites estáticos que não precisam de JS algum
Eu criei uma solução própria que bloqueia efetivamente esses “bots ruins” no nível de rede. Usando o banco de dados da MaxMind e um WAF/proxy reverso feito por mim, bloqueio redes inteiras de várias grandes “Big Tech / Big LLM” por ASN (BGP)
É claro que também há truques com ASN e fraude de reputação, mas é muito difícil responder a isso. Investigando os logs por alto, esses bots pareciam fazer mais ou menos uma solicitação a partir de um IP residencial específico, e é bem provável que essas faixas também sejam usadas por usuários humanos reais
Em termos simples, há risco de bloquear tráfego legítimo. Esta solução também tem riscos, mas o risco real para a maioria dos humanos é muito menor
Seria bom não precisar de JavaScript e poder oferecer suporte também a usuários que o desativaram, mas nunca vi um cliente ou usuário final reclamar da necessidade de ativar JavaScript
Quem se opõe à exigência de JavaScript é uma minoria barulhenta, e a maioria deles simplesmente o ativa quando encontra um site que exige JavaScript. Mesmo então, imagino que pouquíssimos deem aquele suspiro derrotado
Gosto da ideia, mas, quando a natureza do desafio estiver melhor definida, provavelmente ela terá que descer para o nível de protocolo
Em termos de acessibilidade, no fim das contas seria melhor que o desafio de prova de trabalho virasse algo mais próximo do TCP, em vez de ser implementado separadamente em JavaScript por cada site
[0] https://datatracker.ietf.org/wg/privacypass/about/
Uma solução “boa o bastante” é o SHA(seed, nonce), já amplamente usado. Se as grandes empresas de tecnologia quisessem, isso poderia ter sido facilmente integrado em camadas mais baixas da stack
No meu celular, resolver a detecção de bot leva 5 segundos inteiros
Pessoalmente, como não preciso fazer nada, não acho a experiência do usuário tão ruim. Com certeza prefiro isso a um CAPTCHA
Estou criando um protótipo que por enquanto chamo de “fonte web Enigma”. A ideia é aplicar um seed e valores de rotação personalizados por sessão de usuário às fontes web servidas e armazenadas em cache
O objetivo é tornar o web scraping inviável por causa do custo computacional de OCR. Hoje é um jogo de gato e rato, e quero mudar um pouco o equilíbrio
Sem uma sessão de usuário, o código-fonte HTML fica praticamente sem sentido; e, se o cache de assets desaparecer com um comportamento parecido com OTP, a página web também se torna ilegível
Isso permitiria criar um CAPTCHA em que o usuário ajusta uma janela de seed local até conseguir ler uma determinada palavra. Por exemplo: “mova o controle deslizante até que a palavra Foxtrott fique legível”
Gostaria muito de ouvir a opinião da Xe. Será que podemos unir forças?
A stack técnica é Go, porque foi a única linguagem em que foi fácil modificar diretamente arquivos de fonte web sem problemas
Quebrar o texto não vai ajudar. Eles vão continuar batendo de qualquer jeito. Olhando o padrão de tráfego, quem fez esses bots simplesmente... <https://www.youtube.com/watch?v=ulIOrQasR18>
Quanto a “quero ouvir a opinião da Xe. Será que podemos unir forças?”, pelo que entendi, mais do que adicionar funcionalidades, parece que o projeto precisa de ajuda para se tornar mais sustentável no futuro próximo e no futuro distante. O Anubis já parece funcionar muito bem
Com certeza funciona bem para bloquear usuários que desativaram o JavaScript