Bot spam ingannano il filtro Discourse tramite modifica

Some new spam bots appeared, which are intelligent enough to optimise for Discourse’s built-in spam filters. They first make a comment without any links, and later on they’ll edit and add the link. Discourse doesn’t catch them this way. For example the following revision:

I’ve experienced this too, the most insidious are burying links in punctuation with their edits. Instead of generating clicks from the victim site they seem mostly concerned with creating inlinks and are oblivious to the nofollow being applied to said links.

The other more worrying trend is wiki edits, unlike posts and post edits these don’t appear in the user activity, I can only tell that it has happened because they’ve received a wiki editor badge, without ever posting a wiki post.

Is this spam bot TL1 or TL0?

I don’t see a link in that post. I just see text. Can you show raw?

I deleted the user, and I don’t remember the TL.

The links were like the following:

 <a href="https://shareit.onl/">shareit</a>  <a href="https://mxplayer.pro/">MX player</a>

or

<a href="https://messenger.red/">https://messenger.red/</a>  <a href="https://kodi.software/download/">https://kodi.software/download/</a>

or

 <a href="https://viamichelin.onl/">viamichelin</a> <a href="https://putlocker.ooo/">putlocker</a>

(The end of three different posts from the same user)

TL is critical for diagnosis here, cause you can just disallow edits to TL0 which is fine, if the spam bot is smart enough to get to TL1 … well we have a diff problem.

It was able to comment 3 posts + add 6 links without triggering the spam system, I think it must have been TL1, but I might check it in a backup.

Honestly, these bots are really smart. They post a “thanks for your post” reply first. There is absolutely nothing suspicious about it, even their email address is similar to their user name. Only googling the email gives results on spam list, nothing else really.

They wait for you to approve the post. Only then they later activate their spam posting bits.

These are not bots, they are humans. There has been a vast increase in human spammers in the last 8 years.

That’s been my impression too. It’s borne out in a variant of the technique described in the OP that we’ve seen. In this case the spammer “replies” to a comment and uses the Discourse quote feature to copy some of the other person’s text into their message. Then they insert their link into the copied block, thus making it look like the other user did it. Not sure if this is supposed to spoof the system into thinking the link is from someone of a higher T level or what. Kinda stupid, really, but definitely seems like something that had to be done manually, not by a bot. In particular, they don’t just drop the URL into the quoted text either; they highlight some text and use the link tool, adding a further layer of disguise. We’ve seen a few of these over the last couple of months.

Ho appena notato che gli spammer pubblicano post che sembrano legittimi e poi, alcune settimane dopo, inseriscono link a cose come [netflix gratis] e [notizie tech].

Esiste un modo per impedire l’inserimento di link in tutte le modifiche effettuate da utenti con livello inferiore a TL3? Anche bloccare l’inserimento di URL nelle modifiche per chiunque abbia un livello inferiore a TL4 andrebbe bene.

Oppure qualcuno ha trovato un altro modo per fermarli?

È possibile far sì che tutte le modifiche effettuate da non amministratori/non moderatori facciano risalire il post? Credo che sarebbe utile vedere ogni modifica. Gli spammer umani stanno diventando sempre più sofisticati.

Modifica: Sto esaminando un post di uno spammer e sembra completamente legittimo e pertinente all’argomento. Non c’è alcun indizio che indichi che si tratti di uno spammer, tranne i link inseriti.

Il primo passo è restringere l’intervallo di modifica consentito nei “limiti di tempo per la modifica dei post”, passando dal valore predefinito a qualcosa come un giorno. A meno che i tuoi utenti non abbiano regolarmente bisogno di modificare post vecchi di settimane, puoi chiudere questa opzione nelle impostazioni del sito in circa 15 secondi.

Sto modificando l’impostazione stasera, ma spero che esista un altro modo, poiché ciò potrebbe probabilmente infastidire alcuni utenti. Le persone tendono a essere più caute nel parlare liberamente se sanno di non poter tornare indietro e modificare le cose in seguito. (Io stesso pubblico meno spesso nei forum che bloccano la modifica e mi sento generalmente meno a mio agio.)

Idealmente, preferisco finestre di modifica illimitate, e ogni modifica aggiorna il topic.

Questa è una questione delicata, perché il post #12 potrebbe essere modificato in un argomento di 40 post; se aggiornassimo l’argomento per quello, sarebbe estremamente sorprendente vederlo comparire. Dovresti scorrere tutti i post.

Penso che un’alternativa qui siano gli strumenti di moderazione che elencano tutte le modifiche avvenute oltre una certa soglia. Ma questo introdurrebbe un notevole sovraccarico aggiuntivo.

Un’altra alternativa potrebbe essere quella di concedere ai livelli TL2 e superiori tempi di modifica più lunghi.

Perché? Tornare “settimane dopo” per modificare qualcosa è altamente anomalo. E puoi rendere le cose wiki se vuoi segnalare che sono particolarmente modificabili. C’è una bella via di mezzo di “pochi giorni” che puoi testare prima.

In realtà, ora ridurrò leggermente l’impostazione predefinita per questa opzione, passando da 60 giorni a 30 giorni, poiché il caso d’uso per tornare a modificare così tanto tempo dopo mi sembra sempre più assurdo.

Potrebbe essere utile.

Per il momento, ho modificato i livelli di fiducia necessari per aggiungere collegamenti e modificare i post, rendendo un po’ più difficile raggiungere il livello TL1.

L’ultimo post spam che ho visto non proveniva dal solito spammer ovvio: era qualcuno che si era perfettamente integrato nel sito, ponendo una domanda ponderata come un utente regolare.

Proverò a trovare lo spam precedente interrogando tutte le modifiche effettuate dagli utenti TL0.

Se un post fosse contrassegnato come non letto, non basterebbe aggiungere il punto blu accanto al post e scorrere automaticamente ad esso quando un utente visita quell’argomento?

A volte le persone sentono di aver detto qualcosa che non volevano dire e vogliono rimuoverlo. Viviamo in un mondo in cui tutto ciò che una persona dice può seguirla per il resto della sua vita e può portare a problemi. Le persone non sono le stesse per tutta la vita e potrebbero non voler che il loro vecchio io (o semplicemente un momento di rabbia) rimanga online per sempre. Tendo a non parlare liberamente online nei luoghi in cui la modifica è limitata.

Mi sono appena ricordato che esiste un webhook per i post per “quando c’è una nuova risposta, una modifica, un’eliminazione o un recupero”. Non l’ho ancora verificato, ma se riesco a estrarre l’azione (“modificato”) dall’intestazione, posso scrivere uno script per inviarle a una dashboard esterna per la revisione manuale. Questo risolverebbe il problema sul mio sito.

Se è trascorso il limite di 30 giorni (o 1 giorno, a seconda di come è impostato), possono segnalarlo per la rimozione.

Potresti trovare utile il topic correlato Human-driven copy-paste spam se non lo stai già seguendo.

Questa forma di spam funziona solo perché è invisibile ai moderatori e alla comunità attiva. È l’unica ragione per cui sta accadendo. Forse tutte le modifiche potrebbero riportare il thread nella visualizzazione delle attività recenti: se l’argomento è già stato letto, si tratterebbe di un link diretto al post modificato. Questo risolverebbe completamente entrambi i problemi (lo spam e il contenuto iniziale inutile copiato e incollato) in un colpo solo.

Ancora più semplice (anche se meno efficace), so che io e i miei colleghi moderatori saremmo felici di monitorare una vista speciale che mostri semplicemente i post modificati, ordinati per ora di modifica (e forse opzionalmente filtrati per livello di fiducia).

Penso che tu abbia ragione, @sam: servono due impostazioni del sito, una per TL0 e TL1 e un’altra per livelli di fiducia più elevati. Puoi assegnarla la prossima settimana? Dovrebbe essere semplice.

Consiglio le seguenti impostazioni per la finestra di modifica consentita:

  • TL0 e TL1 — 1 giorno
  • tutti gli altri da TL2 in su — 30 giorni (impostazione predefinita attuale)