Hay muchos más en la lista, ¿alguna idea?
Vi esto hoy en los registros de uno de nuestros clientes, así que es más que una coincidencia.
EDITO: No, creo que sí es una coincidencia. Buscar ymwears.cn muestra más quejas sobre spam de referencias, como estas (de hace más de un año): Relevanssi shows weird search queries on my page | WordPress.org y Block specific referrer or agent to enter url | WordPress.org
Tuve un cliente que se quejó de esto el mes pasado. Bloqueé algunas direcciones IP y consideré configurar fail2ban para bloquear las IPs que buscaran algunas de esas URLs, pero nunca llegué a hacer nada al respecto. Investigé sobre el bloqueo por región geográfica, pero parecía que necesitarías una base de datos de 20 dólares al mes para lograrlo.
El spam de referidores es un problema bastante grande, que incluso los grandes (es decir, Google Analytics) no están combatiendo con un 100% de éxito. Por ahora, lo único que se me ocurre es eliminar estas entradas manualmente.
Dado que estos sitios parecen ser, al menos parcialmente, los mismos en múltiples sitios de Discourse independientes (dado el hecho de que nuestras capturas de pantalla muestran casi la misma lista), ¿sería una buena idea una lista negra (dinámica)? @codinghorror, ¿tienes alguna sugerencia?
Hemos detectado, abordado y mitigado este problema a gran escala durante años y hemos encontrado que la forma más fiable (en los últimos años) de bloquear bots maliciosos es hacerlo basándose en la cadena de agente de usuario (UA), a veces en combinación con información de GeoIP.
Hemos bloqueado cientos de millones de ataques de bots chinos a lo largo de los años, y raramente hemos encontrado que bloquear direcciones IP funcione con el tiempo tan bien como bloquear clientes basándonos en cadenas de UA.
Aquí tenéis un fragmento de un código que utilizamos en uno de nuestros sitios como ejemplo:
$user_agents = explode('|',$string_of_bad_user_agents,-1);
$hide_content_useragent = $_SERVER['HTTP_USER_AGENT'];
$IS_A_BAD_BOT = FALSE;
foreach($user_agents as $hcag) {
trim($hcag);
if (preg_match("/$hcag/i", "$hide_content_useragent")) {
$IS_A_BAD_BOT = TRUE;
break;
}
}
Casi todos (no todos) los bots maliciosos utilizan cadenas de UA que pueden identificarse y bloquearse con relativa facilidad (en esta era, no estoy seguro de lo que ocurrirá en el futuro a medida que las cosas evolucionen); por lo tanto, abandonamos hace años el método de intentar bloquear bots maliciosos basándonos en direcciones IP. La razón por la que abandonamos el bloqueo basado en IPs es que muchos países, como China, Rusia, Corea del Norte y muchos más, ahora operan sus granjas de bots desde servidores en otros países. Las direcciones IP no son un buen indicador del origen o la intención real. Además, al bloquear grandes bloques de direcciones IP, se pueden bloquear direcciones válidas, denegando el acceso a usuarios legítimos.
Por ejemplo, China opera enormes granjas de servidores de bots desde Brasil y otros países más cercanos (geográficamente a EE. UU.) para disimular su origen y recuperar datos más rápido (menor alcance de Internet).
A veces, los datos de WHOIS coinciden con una dirección física china, norcoreana o rusa (por ejemplo), pero otras veces no y utilizan direcciones físicas locales. Hemos visto muchos bots maliciosos chinos registrados a empresas brasileñas (en los últimos años) donde pudimos ver (y confirmar) que las cadenas de agente de usuario coincidían con bots maliciosos procedentes de China. Además, cuando realizamos búsquedas en Google con esas cadenas de UA, vemos que otros también han identificado muchas de las mismas cadenas de UA como chinas (por ejemplo).
En resumen, aunque mucha gente recurre inmediatamente al bloqueo de direcciones IP para detener la actividad de bots maliciosos, las granjas de bots más sofisticadas son muy buenas para operar sus bots desde otros países. Es fácil configurar un VPS en la mayoría de los países y, por supuesto, cuanto más cerca esté el bot del país objetivo, más datos podrá extraer. Los VPS pueden aparecer y desaparecer en minutos y el software de bots puede desplegarse muy rápidamente en casi cualquier centro de datos VPS a nivel mundial.
En los últimos años, el bloqueo basado en cadenas de UA ha demostrado ser el método más fiable (a veces en combinación con información de GeoIP, a veces no); pero, por supuesto, los spammers, los maestros de bots y sus agentes también están empezando a disfrazar las cadenas de UA, tal como han hecho con sus direcciones IP (desde hace muchos años).
Espero que esto ayude.
Saludos y ¡buena caza de bots!
Sí, estoy absolutamente de acuerdo en que el bloqueo por IP no es efectivo.
El bloqueo por agente de usuario suele funcionar bastante bien, excepto cuando los spammers lo cambian constantemente.
Por eso pensé en simplemente bloquear la URL real que está siendo objeto de spam de referenciación.
Simplemente “se siente mejor” porque no estamos bloqueando algo basándonos en una suposición subyacente (es decir, “este agente de usuario proporciona un referenciador malo, así que no confiamos en él”), sino que estamos bloqueando lo que realmente queremos bloquear (“vemos que este sitio web está siendo objeto de spam de referenciación en más sitios de Discourse, así que no lo incluyamos en nuestra base de datos”). Al menos, esto es más difícil de eludir.
Buenas ideas.
No existe una solución única para detener a los bots maliciosos y fuera de control; cada sitio debe evaluar qué controles funcionan mejor para ellos.
En una nota similar…
Los sitios que dependen principalmente de listas negras y bases de datos de spam o bots maliciosos también pueden tener problemas. Por ejemplo, digamos que alguien no le gusta el sitio www.our-arch-rival.com porque es un competidor (o simplemente nos enojó o ofendió). Algunas personas entonces enviarán el sitio www.our-arch-rival.com a una lista negra o base de datos, y otros sitios filtrarán un sitio legítimo debido a esta especie de “mala consecuencia” del método de listas negras en bases de datos.
Entonces, por supuesto, los defensores de las listas negras dirán: “puedes ir a los sitios de listas negras y enviar un informe para solicitar la eliminación”, pero para muchos sitios ocupados y de larga data, eso puede ser una pérdida de tiempo.
Generalmente, es importante analizar el problema y crear una estrategia de mitigación basada en el escenario, porque cada “adversario” es diferente. Es el antiguo “Conoce a tu enemigo” de Sun Tzu y El Arte de la Guerra. Cada situación es un poco diferente en el mundo real y, desafortunadamente, se requieren habilidades de análisis por parte de los administradores de sistemas para crear estrategias de mitigación óptimas contra actividades cibernéticas maliciosas o no deseadas.
Esta es también una buena razón para ejecutar Discourse detrás de un proxy inverso, ya que el proxy inverso es un buen lugar para analizar, clasificar y controlar la actividad maliciosa antes de que este tráfico llegue a la aplicación Discourse.
Puede ser un trabajo de tiempo completo en el año 2020 tratar de controlar y mitigar bots fuera de control y otra actividad maliciosa en el ciberespacio. En cuanto los administradores desarrollen una buena estrategia de detección y mitigación, los spammers y los scrapers se adaptarán y encontrarán formas de eludirla. Tiendo a aconsejar a la gente que sobredimensione sus servidores para asegurar que tengan suficiente margen, ya que este tipo de problemas en el ciberespacio solo empeorarán con el tiempo, no mejorarán.
Ready Player One!
Lo cual es otra razón para evitar el bloqueo por IP: los spammers sabrán que estás tomando medidas.
Creo que Cloudflare puede bloquear a la mayoría de los spammers, pero no estoy seguro de qué poner en las reglas para el agente del navegador.
@neounix, ¿qué quieres decir con “cadenas de UA”? ¿Y cómo se pueden utilizar en las reglas del firewall de Cloudflare?
Pero esto ni siquiera es spam de referidores, ¿verdad? Es simplemente que están buscando esa URL, así que en realidad no está haciendo nada, ¿cierto? ¿Entiendo mal completamente de qué trata ese informe? ¿No está disponible para nadie más que los administradores, verdad?
Creo que tienes razón @pfaffman, el informe parece ser solo para las búsquedas realizadas en el foro. También incluye el CTR, lo cual no tendría sentido si fuera un informe de referidores.
No, técnicamente esto no es spam de referencia, pero no estoy seguro de si existe un término para este tipo exacto de abuso. Creo que esto es muy similar al spam de referencia, pero solo para un informe de consultas de búsqueda, ¿no?
El spam de referencia nunca hace nada; solo está destinado a aparecer en los informes.
Aquí tienes…
En HTTP, la cadena de User-Agent se utiliza a menudo para la negociación de contenido, donde el servidor de origen selecciona el contenido o los parámetros operativos adecuados para la respuesta. Por ejemplo, el servidor web puede utilizar la cadena de User-Agent para elegir variantes según las capacidades conocidas de una versión particular del software cliente. El concepto de adaptación del contenido está integrado en el estándar HTTP en RFC 1945 “con el fin de adaptar las respuestas para evitar limitaciones particulares del agente de usuario”.
La cadena de User-Agent es uno de los criterios mediante los cuales los rastreadores web pueden ser excluidos del acceso a ciertas partes de un sitio web utilizando el Estándar de Exclusión de Robots(archivo robots.txt).
Al igual que con muchas otras cabeceras de solicitud HTTP, la información contenida en la cadena “User-Agent” contribuye a la información que el cliente envía al servidor, ya que la cadena puede variar considerablemente de un usuario a otro.[5]
Referencia:
@Yassine_Yousfi. Hay una infinidad de referencias en Internet sobre las cadenas de User-Agent (UA) de HTTP y cómo utilizarlas de diversas maneras, incluso como sensor para detectar bots y otra actividad cibernética maliciosa.
¡Buena caza de bots!
Notas:
- Puedes ver la vista
Discoursede los agentes de usuario de los bots aquí (algunas cadenas de UA están truncadas):
https://discourse.your-great-domain.com/admin/reports/web_crawlers
-
Ningún algoritmo de detección puede detectar todos los bots con un 100 % de precisión.
-
También puedes obtener las cadenas de UA desde los archivos de registro de tu servidor web y mediante otros métodos.
Ver también:

