2 puntos por GN⁺ 2023-09-24 | 1 comentarios | Compartir por WhatsApp
  • La plataforma gratuita de blogs Bear se convirtió en objetivo de granjas de backlinks, phishing, venta de drogas ilegales, anuncios de casinos en línea y spam promocional de cripto debido a su baja barrera de registro
  • Aunque pudo reducir la exposición con no-index, no-follow y la exclusión de feeds, fue difícil impedir que el contenido spam se publicara en la plataforma
  • El bloqueo basado en Akismet fue efectivo, pero los mensajes de bloqueo terminaron dándoles a los spammers pistas para evadirlo
  • El “bucle de frustración”, en lugar de bloquear, funciona reiniciando formularios, deshabilitando el pegado, moviendo el foco y mostrando errores repetidos para hacerles perder tiempo a los spammers
  • Tras aplicarlo, la proporción de spam en blogs nuevos bajó de alrededor de 30% a menos de 5%, y en tres meses solo hubo un usuario que reportó problemas: un anunciante de casinos en línea

Por qué Bear se convirtió en objetivo de spam

  • Bear es gratuito, así que registrarse es fácil, y por eso mismo atrae a spammers que quieren abusar de la plataforma
  • El spam se parece menos a tráfico simple de bots y más a una granja de spam del tipo “compra 100 backlinks” en Fiverr
    • Cientos de trabajadores mal pagados envían contenido por toda la web
    • El objetivo es subir en SEO, aunque se considera que en la práctica no tiene efecto real
  • Bear estableció una línea básica de defensa para que, incluso si el spam se publica, no quede expuesto al internet más amplio
    • Los blogs no revisados reciben etiquetas no-index y no-follow
    • Tampoco aparecen en el sitemap ni en el feed de descubrimiento
    • Si el usuario solicita una revisión, ese estado puede levantarse
  • Aun así, aparte de bloquear la exposición, querían reducir la mera existencia de contenido spam dentro de la plataforma

Un enfoque para retrasar la evasión en lugar de solo bloquear

  • Para detectar spam usan Akismet, una herramienta del ecosistema de WordPress
    • Intentaron crear su propio sistema de detección con GPT4, pero fue menos preciso que Akismet y además más caro
    • Después cambiaron a una suscripción de Akismet
  • Bloquear en el momento del registro tuvo cierto efecto, pero con el tiempo los spammers fueron aprendiendo cómo responder
    • El bloqueo se convierte en una señal que les dice qué tipo de contenido queda atrapado
    • Los spammers hacen que el sitio parezca un blog legítimo y luego publican spam en zonas con controles más débiles
    • Al final hubo que encontrarlos y marcarlos manualmente
  • El bloqueo por IP también resultó poco efectivo
    • Los spammers usan VPN comerciales como Nord
    • Solo Nord VPN tiene cientos de servidores en todo el mundo, así que bloquear por IP casi no sirve
    • Si se bloquean publicaciones desde ciertas IP, también se puede afectar a usuarios legítimos

Cómo funciona “The Frustration Loop”

  • The Frustration Loop no bloquea el blog en cuanto detecta spam; en cambio, hace que parezca un error del sistema o un fallo para desgastar al usuario
    • La idea salió de The Password Game
    • Cuando se detecta spam, borra el formulario y muestra un error como “Our servers are bearly managing. Try again later.”
    • Deshabilita el pegado en todas las áreas de texto
    • Cada 5 a 10 segundos mueve el foco de entrada a otro campo, haciendo que mientras escriben el texto pueda terminar en un lugar incorrecto
    • Si vuelven a enviar, muestra otro error como “Ensure content contains necessary parameters.”
    • Al repetir este proceso, hace que concluyan que el software está roto y abandonen el intento
  • Consideran que es poco probable que esto se active para usuarios normales
    • En pruebas no lograron activarlo sin realizar de forma explícita comportamientos sospechosos
    • Estuvo funcionando en producción durante tres meses, y solo una persona reportó problemas
    • Esa persona estaba anunciando un casino en línea

Resultados y huecos que aún quedan

  • Tras aplicarlo, la proporción de spam entre los blogs nuevos cayó de alrededor de 30% a menos de 5%
  • No es una solución perfecta; todavía quedan aspectos por mejorar y huecos por cerrar
  • Existe la preocupación de que, al publicar el método, posibles spammers puedan evadirlo, pero consideran poco probable que los spammers lean este blog

1 comentarios

 
GN⁺ 2023-09-24
Opiniones de Hacker News
  • Me recuerda a Newsvine[2], un sitio temprano de noticias comunitarias creado en 2006 por Mike Davidson[1], un excompañero de ESPN
    Newsvine tenía comentarios, recomendaciones, envío de enlaces y redacción de artículos; era una especie de Reddit centrado en noticias. Recuerdo que, para lidiar con spammers y trolls, si en el backend marcaban a un usuario como troll, agregaban un retraso aleatorio de 10 a 60 segundos a cada carga de página de esa cuenta, y eso reducía el problema de forma bastante efectiva
    1- http://mikeindustries.com/blog/
    2- https://en.wikipedia.org/wiki/Newsvine

    • Con ese criterio, la nueva UI móvil de Reddit parece tratar a todos como trolls
    • Me pregunto cómo se aplicaría en servicios como Twitter/X, considerando incluso a particulares que interactúan con funcionarios del gobierno de EE. UU.
      Alguien marcado como troll en el backend por razones totalmente distintas podría sufrir retrasos al comunicarse con un funcionario público. Un retraso no es lo mismo que un bloqueo, pero me pregunto si, a ojos de un juez federal, el deterioro de la experiencia de usuario sería lo bastante parecido
    • Me gustaba Newsvine. Se sentía realmente innovador y acogedor
    • El spam y el troleo también ocurren en periódicos impresos, radio, TV, libros y revistas. Solo que ahí hay que pagar para poder hacerlo
      Históricamente, las clases ricas, protocolares y ociosas pudieron comprar más atención, así que siguieron difundiendo cualquier ruido que se les pasara por la cabeza. Ahora la producción de contenido supera por mucho al consumo, y ya no queda suficiente atención para nada
      Si nadie lee el 99% de los comentarios y enlaces de HN, ¿nos lo dirán los brillantes genios que operan HN? Las plataformas les dieron a todos derechos de transmisión gratis sin saber siquiera qué estaban construyendo, y ahora no solo los ricos, sino todo el mundo, puede hacer spam y trolear gratis. Lo único que queda es ruido, así que basta leer el informe de la ONU sobre la economía de la atención
      Parece que la única razón por la que existen estos sistemas inútiles que desperdician el tiempo y la energía de todos es que ingenieros de software de pensamiento lineal pudieron hacer sistemas rápidos y escalables
  • Trabajé dentro de Akismet durante más de 6 años
    Akismet es muy bueno en la detección de spam en comentarios, pero si hubiera sido bueno detectando spam de registros, no habrían aparecido tantos blogs de spam en wordpress.com
    Usando motores de búsqueda, listas seleccionadas de términos y herramientas hechas por desarrolladores, rastreaba blogs de spam y suspendía miles de blogs que realmente eran spam. A veces hubo errores, pero eran raros
    Más adelante se crearon algunas herramientas automatizadas, pero esa caza y suspensión quedó relegada en la lista de prioridades. Al principio, wordpress.com necesitaba verse limpio para poder crecer, pero una vez que se consideró lo bastante grande, básicamente se detuvo. Sabía que era como apagar un auto en llamas con una pistola de agua, pero no tomaba mucho tiempo y era bastante satisfactorio
    Por estas fechas solía revisar blogs de spam de Halloween, y también empezaban a aparecer blogs de spam de Christmas

  • Uso una forma sencilla de eliminar el spam de email sin filtros de terceros
    Tengo un dominio personal para email y una cuenta catch-all que recibe todo el correo dirigido al dominio. En cambio, para cada sitio y servicio doy una dirección distinta, como sitea@mydomain.com o site2@mydomain.com
    Así puedo clasificar automáticamente el correo de forma confiable según quién lo envió, y además uso un formato consistente para los nombres que doy, de modo que cualquier correo aleatorio que no coincida con ese formato se elimina de inmediato sin que siquiera lo vea
    Casi no recibo spam, pero si un servicio filtra la dirección, cambio o cancelo el email de ese servicio y pongo esa dirección en la lista de bloqueo. Es tan simple que siento que todos los programas de email deberían poder manejar un dominio completo de esta manera

    • Si no tienes un dominio personal, hay alternativas como Fastmail masked emails(https://app.fastmail.com), Firefox Relay(https://relay.firefox.com/), SimpleLogin(https://simplelogin.io/), y muchas más
    • Uso algo parecido: una dirección distinta para cada destinatario externo, y también ayuda a reconocer phishing
      Por ejemplo, si a la dirección que creé para una tienda en línea llega una “alerta del banco”, no puede ser real. Las direcciones abusadas se pueden invalidar eliminándolas de /etc/aliases
      Además, tengo configurado el servidor postfix para rechazar conexiones si el remitente no tiene mapeo de DNS inverso. Funcionaba hace 20 años y, viendo los logs, sigue siendo útil hoy
    • Uso un sistema parecido. El dominio es catch-all, pero le doy una dirección separada a cada persona y agrego al final del alias un fragmento que indica qué deben hacer las reglas de email
      Por ejemplo, si llega algo a anything_s@mydomain.com, va directo a la carpeta de spam. Uso esto para casi todo, desde Google hasta registros en sitios pequeños. Al fin y al cabo, por lo general solo envían spam, y cuando reviso la carpeta de spam de vez en cuando, nunca encontré nada importante
      La mayoría de los correos que envían las empresas comunes tampoco me interesan, así que los considero spam. Uber Eats también manda varios correos por cada pedido, y para mí eso es simplemente spam. Si fuera un servicio que de verdad me importa, le daría una dirección con otro sufijo que no vaya a spam, pero casi nunca pasa
      Esto filtra bien no solo el phishing que llega cuando un sitio web filtra la dirección, sino también la mayoría de esos correos de “información importante sobre una pequeña interacción” que envían los sitios web
    • Uso un sistema parecido, pero primero “registro” la dirección en un archivo .txt. El formato es sitename-random-number@mydomain
      Un catch-all hace que, del lado del spammer, parezca que todos los correos se entregaron correctamente, así que el spammer puede seguir reenviando y desperdiciar sus recursos
    • Llevo años haciendo algo parecido, pero no elimino automáticamente
      Según observé, el spam solo llega a la dirección de correo que publiqué en mi blog y a la de GitHub. Parece que nadie vendió mi dirección a spammers; simplemente rasparon las direcciones públicas
  • Los equipos antispam de las redes sociales normalmente aplican shadow ban a los spammers.
    El objetivo es hacer que al spammer le resulte lo más difícil posible darse cuenta de que lo atraparon. Por eso creo que las técnicas para generar frustración o la simple suspensión de cuentas no se usan mucho.
    La prevención de spam es interesante porque, en esencia, es una carrera armamentista entre las empresas que despliegan tácticas de detección y los spammers sofisticados que usan métodos cada vez más complejos para evadirla. Si una empresa puede hacerle creer a un spammer que no necesita mejorar sus métodos, le conviene.

    • El problema es que también caen personas reales. Mi cuenta de TikTok está en shadow ban, así que cualquier cosa que publique ahora tiene 0 vistas, y mis LIVE también tienen 0 espectadores.
      Mi cuenta de Instagram fue suspendida permanentemente porque supuestamente me estaba suplantando a mí mismo. Fue peor porque perdí toda la cuenta; me pidieron incluso enviar una selfie y, en el mismo momento en que envié la imagen, me suspendieron permanentemente.
    • Irónicamente, los mejores equipos de detección de spam trabajan para los spammers. Los anuncios son spam; la única excepción es cuando adtech paga el sueldo.
    • Según el contexto, la suspensión de cuentas puede usarse como arma. Por ejemplo, hacer que alguien que no te gusta parezca estar haciendo algo sospechoso para que lo suspendan.
    • Las herramientas modernas de spam que he visto reciben, por este motivo, una lista de segundas cuentas para verificación.
      Pueden comprobar con una muestra si los comentarios son visibles y eliminar automáticamente las cuentas que quedaron bajo shadow ban.
  • Akismet no tiene un proceso de apelación que funcione bien. Hace muchísimo tiempo me banearon en Akismet mientras comentaba en mi blog.
    Si comento en un sitio que usa Akismet, me filtran silenciosamente. En Disqus también me banearon por publicar muchos enlaces útiles en comentarios de blogs de conocidos, pero ahí lo resolvieron en 2 días y fueron muy corteses.
    Akismet al menos debería limpiar a los usuarios de WordPress que fueron baneados hace incontables años, y WordPress debería cambiarse a una alternativa menos desquiciada.
    Que no pueda responder en mi propio blog de WordPress en realidad es bastante gracioso, y para mí es fácil porque puedo usar otro motor de blog, pero no está bien que WordPress trate a sus propios usuarios con esa lógica de “matemos un poco de spam”.

    • Soy desarrollador de Akismet. Si nos envías información a support@akismet.com, podemos revisar por qué se están marcando tus comentarios.
    • En una situación así, normalmente abandono por completo ese sitio.
      Agregar el dominio a la lista de uBlock y buscar el título en Google toma un solo clic. Ningún proceso de apelación puede ser tan fácil y confiable como eso.
  • En el texto original falta cómo distinguen a un usuario válido para no meterlo en el loop de frustración.
    Explica que bloquear el spam en el registro con Akismet funcionó hasta cierto punto, pero era fácil de evadir, y que algunos spammers encontraban formas de parecer blogs normales, por lo que había que detectarlos y marcarlos manualmente. Después, cuando detectaban spam, crearon un “Frustration Loop” para hacerles perder tiempo y que se rindieran.
    Pero sobre si esto no se dispara contra usuarios normales, solo dice más o menos que lo operaron durante 3 meses y que solo un usuario reportó un problema. Personalmente, esta es la parte más interesante del artículo.
    La medida en sí de frustrar a los spammers es genial, pero me habría gustado que hubiera más sobre la separación entre spammers y usuarios reales, cómo identifican falsos positivos y falsos negativos, etc. Entiendo que es difícil revelar detalles de detección y que el tema del artículo es el Frustration Loop.

    • Le pagan a Akismet y le pasan la información de registro del usuario. En el GIF del artículo se puede ver qué datos envían.
      Si Akismet responde que es spam, activan el loop de frustración; me pareció bastante ingenioso.
    • ¿Akismet también detecta spammers en el momento del registro? Según entiendo, su función principal es una API para determinar si un comentario dado es spam.
      https://akismet.com/developers/comment-check/
    • Ese es exactamente el punto. Da la sensación de que nadie quiere resolver el problema.
      Porque resolverlo solo perjudicaría las métricas y los ingresos; llegué a pensar eso.
  • La protección antispam que mejor me funcionó en formularios de contacto por email fue poner varios campos de texto ocultos con nombres como “blindcopy”, “bcc”, “cc” y “additional address”.
    A todos les ponía un valor predeterminado, y si el procesador del envío detectaba que alguno de esos campos cambiaba respecto del valor predeterminado, rechazaba el envío. Creo que no recibí ni un solo correo falso desde ese formulario.

    • Los scripts de spam son mucho menos inteligentes que eso.
      Puse en el formulario de contacto un campo oculto sin texto y, por accesibilidad, le agregué un texto de ayuda con una advertencia educada. Si se llenaba algo en ese campo, lo descartaba silenciosamente, y el contenido ingresado se enviaba con copia a mí. Creo que durante los aproximadamente 8 años que el formulario estuvo publicado recibí 0 correos de spam.
    • He oído que a este concepto lo llaman campo honeypot, y como dices, funciona bastante bien.
      Aunque me pregunto cómo hacen para no caer ahí los gestores de contraseñas o el autocompletado. ¿Será que pueden detectar que el campo no es visible?
    • ¿Hacker News no usa algo así también? En la página de login hay un campo de entrada oculto.
    • Yo hice exactamente lo mismo y fue realmente efectivo.
  • ¿Muestrean el contenido que ingresan los usuarios en “frustración” para comprobar si en realidad es legítimo? ¿Tienen tasas de falsos positivos y falsos negativos? ¿También revisaron si el total de registros legítimos bajó o subió?
    Este enfoque no lo usa una sola persona. Muchas páginas, si usas VPN, fallan de manera silenciosa pero frustrante, sin mostrar siquiera un error. Si apagas la VPN, todo funciona como por arte de magia. Etsy también, durante un tiempo, devolvía una página en blanco si usabas VPN, y era extremadamente frustrante.

  • Instagram tiene un bucle de frustración. Lo sé porque se activa en mi cuenta.
    Cada acción que hago, por mínima que sea, me obliga a iniciar sesión de nuevo. Ya sea que haga clic en un enlace o haga cualquier otra cosa, siempre tengo que pasar por la pantalla de inicio de sesión.
    Al principio empezó con “se detectó actividad sospechosa en la cuenta”, y luego apareció “la cuenta fue desactivada”. No dicen la razón real, pero la única razón realista que figura en las reglas oficiales es haber publicado algo que ofendió a alguien.
    Pero esa explicación tiene un problema: yo nunca publiqué nada. Lo único que hago en Instagram es seguir a algunas personas. Después de ingresar un código y hasta enviar una foto mía, recuperé el acceso a la cuenta, pero ahora tengo que volver a iniciar sesión sin importar qué haga. Me cuesta creer que sea una coincidencia o un bug; claramente me identificaron como una persona problemática, pero como no tienen pruebas suficientes para ejecutarme, parece que me están castigando por una infracción imaginaria.
    Quizá la causa sea que de vez en cuando seguí enlaces a fotos de Instagram. Que sea parte de Meta también es un problema: si cierro Instagram por completo, también perderé el acceso a mi cuenta de Facebook, que uso para mantener contacto con algunos amigos lejanos.
    El mundo se fue de Facebook y ahora todos están en Instagram. Probablemente yo también lo habría hecho, si Instagram me lo hubiera permitido.

    • Parece que me identificaron como crawler o scraper. Al parecer no quieren otro caso como Cambridge Analytica.
  • Veo que dicen que la detección de spam es una guerra de creatividad entre spammers y detectores, y si hablamos de Akismet, puede ser cierto. Pero si se trata de un sitio web que ofrece un lugar donde se juntan los spammers, ya no funciona así.
    Esto es una competencia entre mi blog/sitio web y otros blogs/sitios web. Si yo estoy mejor protegido que mis vecinos, los spammers se van con ellos. Sobre todo cuando se trata de bloquear granjas de clics, no bots.
    Como dice el chiste, en el bosque no necesitas correr más rápido que el oso; solo no tienes que ser el más lento del grupo.