Bloqueando a onda recente de spam

Estamos sendo atingidos por uma onda massiva de spam há dias. Outros como https://ask.learncbse.in/ desistiram por enquanto, ao que parece :thinking:

Estou procurando aqui apenas por uma variante:

O conteúdo muda com frequência, assim como os endereços de e-mail e IPs, então o bloqueio reduz a quantidade, mas ainda não encontramos uma solução real. Por motivos de privacidade, não queremos enviar tudo para Akisment.

Se bloqueássemos

AS55836: Reliance Jio Infocomm Limited
AS9498: Bharti Airtel Ltd.
AS45609: Bharti Airtel Ltd.
AS24560: Bharti Airtel Ltd.

estaríamos bem, mas isso poderia afetar uma boa (ou pequena) parte da população indiana.

4 curtidas

Você já tentou adicionar certas palavras em Admin → Personalizar → Palavras Monitoradas → Exigir Aprovação?

Pela sua captura de tela, eu tentaria adicionar estas palavras:

  • dinheiro
  • crédito
  • dinheiro
  • empréstimo
  • ligação gratuita
  • atendimento ao cliente
  • número de atendimento
  • 0779*
  • linha de apoio
  • :point_left:

Pode ser um pouco inconveniente para os usuários, mas eu faço o Discourse enviar um webhook para uma função do Firebase Cloud (gratuita) que notifica meu telefone em uma sala de chat do Slack, então eu geralmente posso aprovar postagens em moderação em 60 segundos do meu telefone, se eu estiver acordado.

3 curtidas

Obrigado pela dica, mas por favor, verifique https://ask.learncbse.in/ (não é minha instância, mas as postagens são mais ou menos as mesmas contra as quais estou lutando) e navegue pelos últimos dias, eles estão usando uma tonelada de combinações e variações de cada palavra-chave. Estou no processo de criar um monte de regex para cada palavra-chave porque eles estão adicionando em todos os lugares um “.”, uma “,”, um “|”, substituindo um “0” por um “O”, um “e” por um “3”, adicionando no meio da palavra um (até agora) caractere aleatório etc etc … é realmente difícil lutar contra esse tipo de spam.

Ou, se você não quiser clicar em um link aleatório, aqui está uma captura de tela das últimas horas, mas estas são apenas as últimas horas, elas variam muito ao longo do tempo:

1 curtida

Só para verificar, você usa a configuração de administrador tempo mínimo de digitação da primeira postagem? Acho que é bastante útil para capturar muitos dos nossos.

5 curtidas

Sim, obrigado pela dica, isso está configurado, mas quero dizer que não é tão difícil para o bot esperar alguns minutos :slight_smile:

1 curtida

Este spam parece ser de um tipo diferente das respostas/conteúdo baseados em IA em que o outro tópico se concentra, então eu o separei. :+1:

Nós temos uma nova ferramenta baseada em IA para detecção de spam que se mostrou bastante eficaz:

6 curtidas

Obrigado pela dica, mas configurar um LLM apenas para combater outro LLM de spam em nosso discurso é muito caro para nosso caso de uso.

Como um spammer, você pode facilmente aumentar o custo para a organização apenas criando mais usuários/posts, então, dependendo do que você quer arquivar, isso também pode ser uma motivação para criar ainda mais posts :slight_smile:

1 curtida

Oi,

Você já tentou usar o Akismet? Parece que a solução deles funcionaria para você.

(gratuito para uso pessoal, não para uso comercial - não sei como você se categorizaria)

2 curtidas

Talvez exigir que a primeira postagem de cada usuário seja aprovada ajudaria um pouco aqui? Dessa forma, pelo menos eles nunca chegariam ao fórum publicamente e, desde que você não tenha muitos usuários reais se inscrevendo diariamente, acho que ajudaria pelo menos um pouco.

5 curtidas

Obrigado por todas as dicas.

Nós pensamos nisso, mas temos um produto de privacidade e segurança, o que significa que precisamos proteger nossos usuários o máximo possível. O conteúdo é público, com certeza, mas não o endereço IP/Agente/Referenciador/E-mail, se entendi corretamente Discourse Akismet, ele é transmitido para o Akismet (com certeza também leria a política de privacidade, mas a visão geral já é informação suficiente para a decisão).

Essa seria uma ideia. Com cerca de 2 cadastros por dia, não deve ser muito incômodo, mas não é a melhor experiência ter que esperar por uma aprovação, mas se explicarmos corretamente, pode ser a melhor opção que temos por enquanto.

1 curtida

Sim, você está infelizmente correto - eles transmitem alguns dados adicionais para o Akismet que podem não estar alinhados com sua política de privacidade. Nesse caso, a sugestão do @Firepup650 é a melhor que existe.

1 curtida

FYI meu Geo Blocking plugin pode negar o acesso ao Discourse com base na rede AS de origem. De fato, muito desse tipo de spam parece originar-se dessas redes, especialmente da AS45609.

Se você não quiser bloquear metade da Índia, pode valer a pena investigar o quão difícil seria reutilizar parte da funcionalidade desse plugin para adicionar regras de rede ou IP à lógica de aprovação (“exigir aprovação para novas postagens de redes”).

6 curtidas

Percorri muitas páginas naquele site de exemplo e acho que pode ser possível bloquear quase todos eles com o recurso de palavras observadas, se a regex do Discourse puder funcionar em intervalos Unicode.

Usuários regulares provavelmente não usam coisas como:

  • 2 ou mais barras seguidas
  • pontuação incomum como ^ (a menos que seja um site de matemática)
  • intervalos Unicode incomuns:
    • ✓ (Símbolos Diversos)
    • ∆ (Grego e Copta)
    • ❽, ➁, ❸, 3, ❷ (Dingbats)
    • 𝘾, 𝙪, 𝙨, 𝙩 (Símbolos Alfanuméricos Matemáticos)

O ChatGPT provavelmente poderia escrever uma regex para eles, se o Discourse a suportar.

Mais uma ideia é tentar o Cloudflare com o recurso Bot Fight Mode (gratuito) e desafiar todos os bots.

3 curtidas

Opa, essa seria a solução perfeita, vou dar uma olhada no código, obrigado!

O problema aqui é que este bot de alguma forma sabe como o Discourse funciona: No cenário a seguir, estou monitorando ❽ na seção “Exigir para Aprovação”. O problema agora é que esses bots frequentemente criam primeiro um texto aleatório e depois o editam para o conteúdo real. A edição de uma postagem não é verificada em relação à lista “Exigir para Aprovação”, veja, por exemplo,

VS

(aqui adicionei o ❽ diretamente durante a criação da postagem)

o que significa que nossa única opção é adicioná-lo à seção de bloqueio, mas bloquear muitas palavras e caracteres pode facilmente levar a problemas onde usuários normais recebem uma mensagem confusa ao criar postagens válidas. Acho que é daí que vêm a maioria dos nossos problemas. Na minha opinião, isso é um bug, e também ao editar uma postagem, a lista “Exigir Aprovação” deve ser verificada contra o conteúdo editado quando a alteração for publicada.

2 curtidas

Acho que palavras vigiadas não ajudarão então. Ainda não tive um ataque de spam disso, mas estou preocupado com isso porque os usuários começaram a descobrir.

3 curtidas

Parece que um dos meus fóruns acabou de ser atingido por esse mesmo tipo de ataque de spam. Não sei se eles usaram o truque de edição, já que eu ainda não tinha as palavras de spam na lista de palavras observadas.

2 curtidas

Olá a todos :waving_hand:

Eu tenho uma prova de conceito disso, se você quiser dar uma olhada

1 curtida

Bom trabalho @juanjosegzl, eu aceitaria de bom grado isso como um PR! :rocket:

obrigado @RGJ acabei de abrir um PR

1 curtida

Olá @juanjosegzl,

Seu último PR quebrou o plugin - agora ele pede a todos para confirmarem suas postagens via moderação (mesmo os moderadores) independentemente de sua localização geográfica. Alguma solução alternativa ou previsão de correção?