Bots de spam engañan al filtro de Discourse mediante edición

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.

Acabo de notar que los spammers han estado publicando mensajes que parecen legítimos y, unas semanas después, vuelven para insertar enlaces a cosas como [netflix gratis] y [noticias tecnológicas].

¿Existe alguna forma de prevenir la inserción de enlaces en todas las ediciones realizadas por usuarios con un nivel inferior a TL3? Incluso bloquear la inserción de URLs en las ediciones de cualquier usuario por debajo de TL4 sería suficiente.

¿O ha alguien encontrado otra manera de detenerlo?

¿Es posible hacer que todas las ediciones realizadas por usuarios que no son administradores ni moderadores hagan que el mensaje se mueva hacia arriba? Creo que sería bueno ver cada edición. Los spammers humanos se están volviendo más sofisticados.

Edición: Estoy revisando un mensaje de un spammer y parece completamente legítimo y relacionado con el tema. No hay ninguna pista de que sea un spammer, excepto por los enlaces inyectados.

El primer paso es reducir el intervalo de edición permitido en “límite de tiempo de edición de publicación” desde el valor predeterminado a algo como un día. A menos que tus usuarios necesiten regularmente editar publicaciones de hace semanas, puedes cerrar esa opción en la configuración de tu sitio en unos 15 segundos.

Voy a cambiar la configuración esta noche, pero espero que haya otra forma, ya que eso probablemente molestaría a algunos usuarios. La gente tiende a ser más cautelosa al hablar con libertad si sabe que no podrá volver atrás y editar las cosas más tarde. (Yo no publico con tanta frecuencia en foros que bloquean la edición y, en general, me siento menos cómodo.)

Idealmente, me gustan las ventanas de edición ilimitadas, y cada edición actualiza el tema.

Esto es complicado, porque la publicación #12 podría editarse en un tema de 40 publicaciones; si reactivamos el tema por eso, sería increíblemente sorprendente verlo. Tendrías que desplazarte por todas las publicaciones.

Creo que una alternativa aquí son las herramientas de moderación que enumeren todas las ediciones realizadas más allá de cierto umbral. Pero esto introduciría una gran cantidad de sobrecarga adicional.

Otra alternativa podría ser otorgar a los niveles TL2 y superiores límites de tiempo de edición más largos.

¿Por qué? Volver “semanas después” para editar algo es altamente atípico. Además, puedes convertir las cosas en wiki si quieres indicar que son especialmente editables. Hay un buen punto medio de “unos pocos días” que puedes probar primero.

De hecho, voy a reducir un poco el valor predeterminado de esta configuración, de 60 días a 30 días, ya que el caso de uso de volver mucho más tarde para editar me resulta cada vez más absurdo.

Eso podría ser útil.

Por el momento, he cambiado los niveles de confianza necesarios para agregar enlaces y editar publicaciones, y he hecho un poco más difícil alcanzar el nivel de confianza 1.

El último mensaje de spam que vi no provenía del típico spamer obvio; era alguien que se integraba completamente en el sitio, haciendo una pregunta reflexiva como un usuario normal.

Intentaré encontrar el spam antiguo consultando todas las ediciones realizadas por usuarios de nivel de confianza 0.

Si una publicación se marcara como no leída, ¿no añadiría simplemente el punto azul junto a la publicación y se desplazaría automáticamente hacia ella cuando un usuario visite ese tema?

A veces la gente siente que quizás dijeron algo que no querían decir y quieren eliminarlo. Vivimos en un mundo donde todo lo que una persona dice puede seguirla durante el resto de su vida y puede generar problemas. Las personas no son las mismas durante toda su vida, y es posible que no quieran que su yo anterior (o simplemente un momento de enojo) permanezca en línea para siempre. Tiendo a no hablar tan libremente en línea en lugares donde la edición está limitada.

Acabo de recordar que hay un webhook para publicaciones que se activa “cuando hay una nueva respuesta, edición, eliminación o recuperación”. Todavía no lo he verificado, pero si puedo extraer la acción (“editado”) del encabezado, podré escribir un script para enviar esos eventos a un panel externo para revisión manual. Eso solucionaría el problema en mi sitio.

Si ha pasado el límite de 30 días (o 1 día, lo que sea que hayas configurado), pueden marcarlo para su eliminación.

Si aún no estás siguiendo el tema hermano, tal vez te resulte informativo: Human-driven copy-paste spam.

Esta forma de spam solo funciona porque es invisible para los moderadores y la comunidad activa. Esa es la única razón por la que está ocurriendo. Quizás todas las ediciones podrían hacer que el hilo aparezca en la vista de actividad más reciente: si el tema ya ha sido leído, se mostraría un enlace directo a esa publicación editada. Eso resolvería completamente ambos problemas (el spam y el contenido inicial de copia y pega sin valor) de un solo golpe.

Aún más sencillo (aunque no tan efectivo), sé que mis compañeros moderadores y yo estaríamos encantados de mantener un ojo en una vista especial que simplemente muestre las publicaciones que han sido editadas, ordenadas por su hora de edición (y quizás, opcionalmente, filtradas por nivel de confianza).

Creo que tienes razón, @sam. Necesitamos dos configuraciones de sitio aquí: una para los niveles de confianza 0 y 1, y otra para niveles de confianza superiores. ¿Podrías asignarlo la próxima semana? Debería ser sencillo.

Recomiendo configurar las ventanas de edición permitidas de la siguiente manera:

  • Niveles de confianza 0 y 1: 1 día
  • Todos los demás en nivel de confianza 2 o superior: 30 días (valor predeterminado actual)