Controlar spammers por listas de IP en tu sitio

El otro día estaba recibiendo múltiples "ataques" automatizados de diversos IPs, casi todos desde EEUU pero, en realidad, era spam chino el que querían infiltrar.

Con lo baratos que son los VPS se utilizan para crear VPNs como expliqué aquí una vez y con esa VPNs logran entrar desde China para dejar su spam. Con un costo de USD 5 por mes infectan todo haciéndose pasar por norteamericanos.

Pues bien, ¿hay forma de controlarlo? porque sólo con el IP no alcanza... peeeero...

El IP como método de identificación todavía sigue sirviendo y mucho, yo utilizo IP Stack para obtener el origen de cada uno, si es de China o Rusia los bloqueo, ya me hartaron y no me interesa si tengo algún lector por allí (que use una VPN).

Pero si queremos hacer un trabajo más fino hay otro servicio que podríamos utilizar para combinarlo: Abuse IP DB. (no es chivo, no me dan ni referer :P pero lo encontré buscando eso mismo)

Es una base de datos con denuncias por abuso desde ciertas direcciones de IP, uno envía el número, recibe una respuesta con las denuncias que tuvo.

Aquí es donde podemos combinar ambos servicios (o usar sencillamente el último), yo prefiero usar los dos para armar mi propia base de datos de estos servicios.

El tema es así: ambos cobran luego de una X cantidad de consultas así que prefiero guardar cada consulta en mi base de datos a modo de caché y no volver a hacer la consulta una y otra vez consumiendo la API.

Por ejemplo siempre guardo cada IP que entra, lo consulto a IPStack y con eso obtengo la nacionalidad del mismo. Se que esto puede cambiar, si un país le vende un stack de IPs a otro, pero como es poco probable (no imposible) lo desestimo.

El día en que reciba mucho spam desde un país poco conocido lo bloqueo también y a la mierda.

Luego puedo consultar ese IP a AbuseIPDB y ver cómo responde. Puedo hacerlo ocasionalmente, por ejemplo si el IP es chino es un poco obvio, podemos bloquearlo pero si es de EEUU (por la primer consulta) recién ahí puedo hacer la consulta de si es abusivo ya que muchos IPs de VPS nortamericanos son usados por los chinos para abusar. No es lama idea sólo hacer la consulta de abuso para esos IP y los de Francia que suelen usarse para lo mismo.

Podemos hacerlo por todos también, ya usando las cuentas gratuitas de cada uno tenemos unas 10.000 consultas por mes en IPStack y unas 30.000 por mes en AbuseIPDB con lo que la mayoría de los sitios pequeños no necesitan pagar.

En mi caso pude corroborar que no son más de 544 IPs argentinos los que entran al blog, unos 164 de EEUU, 47 de Mexico y 41 de España. Muchos son proxys de empresas así que se reparten entre más o menos el doble de gente.

Con esto cacheado no hay casi consumo de la API y "vuela", por ende no debería ser difícil consultar cada vez el IP y verificar si se está usando para spam.

Recomendaría ponerle un TTL (time to live) a la data que cacheen de AbuseIPDB porque esa sí se actualiza más seguido. Un equilibrio para no pasarse de más de 1000 por día que es el límite que tiene la API antes de cobrarte.

Y con esto lo resuelven! luego a programar! claro, yo aquí lo resuelvo muy sencillo y no debe ser difícil para ningún lenguaje ni framework.

Aquí les dejo una tablita de los resultados de los últimos meses en mi blog

544 Argentina
164 United States
122 China
47 Russia
47 Mexico
41 Spain
35 Ukraine
29 Germany
20 France
19 Hong Kong SAR China
17 Chile
14 Netherlands
12 Norway
11 Vietnam
10 Uruguay

De esta lista es fácil detectar qué tráfico NO es legítimo, no creo que mis lectores chinos, rusos, ucranianos, hongkongenses y vietnamitas se molesten mucho si los bloqueo :D

Si te gustó esta nota podés...
Invitame un café en cafecito.app


Otros posts que podrían llegar a gustarte...

Comentarios

  • Diego     10/06/2020 - 11:20:03

    ¿Y como los bloqueas después? Puede ser desde la aplicación (o con el framework como decís) pero igual seguís consumiendo ciclos de CPU para algo que, en primera instancia, se puede resolver con iptables... pero pero pero... con muchas reglas es una carreta. ¿Habrá algún método más eficiente?

    • Fabio Baccaglioni     10/06/2020 - 12:03:51

      si ya tenés los IP identificados podés meterlos en el IPTABLES, ahí ya no pueden ni llamar al Apache, los bloquea el server ANTES y consume casi nada

  • Pablo     10/06/2020 - 16:34:43

    Que CM usas?.. tengo un cliente que esta usuando VestaCP y por ahora no tengo problemas pero me interesa esta solución al spam, estaría bueno que hagas un post mas técnico explicando como pones en producción esto y como integras las soluciones.
    Saludos.

    • Fabio Baccaglioni     10/06/2020 - 19:59:10

      es que no uso un CMS común, uso uno propio así que programarlo fue... trivial! es bastante sencillo, apenas unas líneas de PHP y una nueva tabla en la base de datos.
      Obviamente desde VestaCP podés ir ingresando los rangos de IP en el Firewall del servidor y es mucho más eficiente

  • Facun2s     10/06/2020 - 19:37:39

    Hey! Yo antes vivía en Rusia, es más te envié algunas fotos de coches "tueneados" que bueno haberme mudado para no caer en la lista negra saludos!

    • Fabio Baccaglioni     10/06/2020 - 19:59:47

      jajaja es verdad, salió en algún shitty mod tu descrubrimiento de tuneo ruso! pero bueno, el tema es que intentan hackear muy seguido desde Rusia, Belarus, Ucrania, etc. así que otra no queda...

  • Diegol     16/06/2020 - 10:54:06

    Y cual es el motivo o fin detrás de esos hackeos?

    • Fabio Baccaglioni     16/06/2020 - 12:09:07

      Spam, spam y más spam

      Una gran cantidad busca loguearse usando credenciales conocidas (en tantas filtraciones), si entran, te arruinan el sitio para instalar spam o redireccionarlo al sitio de una tienda china
      Otra gran cantidad busca dejar comentarios con spam
      Otros tantos ganar acceso para instalar sitios de Scam o Phishing

      Lo hacen con sistemas automatizados así que no siempre es que hay un chinito del otro lado, pero aun así todavía existe el laburo "artesanal" especialmente en el spam de comentarios, copian y pegan mensajes pero hasta lo hacen de a uno por vez, sí, eso sigue dando dinero parece

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https

Negrita Cursiva Imagen Enlace


Comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador. Los comentarios son filtrados por ReCaptcha V3.