Skip to main content

Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA

Alejo Sotelo - Developer
Alejo A. Sotelo - @alejoasotelo
Publicado el 19 Julio 2024

Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA
Foto de Brian McGowan en Unsplash

Hoy quiero compartir una experiencia reciente que tuve con un ataque de bots a un formulario de contacto en uno de mis proyectos. Este incidente me llevó a profundizar en los logs de acceso y a implementar una solución rápida para mitigar el problema. Espero que esta guía sea útil para otros desarrolladores y sysadmins que se encuentren en una situación similar.

Introducción al Problema

Ayer, noté que los sitios web alojados en uno de mis servidores estaban funcionando de manera muy lenta. Después de investigar un poco, descubrí que la causa era un ataque de bots a un formulario de contacto que no tenía protección reCAPTCHA. Estos bots estaban enviando correos electrónicos masivos, consumiendo recursos del servidor y afectando el rendimiento general.

Identificación del Problema

El primer paso fue revisar los logs de acceso de Apache para identificar los patrones de los bots. Utilicé las herramientas cat, cut y grep para filtrar las llamadas/requests sospechosas y las IPs involucradas en el ataque.

Comando para revisar los logs

Primero, abrí el archivo de logs con cat y filtré las líneas que contenían el endpoint del formulario de contacto:

cat /var/log/apache2/access.log | grep "contact/contact/1.html"

Esto me mostró todas las solicitudes a contact/contact/1.html. Luego, usé cut para extraer las direcciones IP:

cat /var/log/apache2/access.log | grep "contact/contact/1.html" | cut -d ' ' -f 1

Bloqueo de IPs con APF

Una vez que tuve una lista de las IPs sospechosas, utilicé APF (Advanced Policy Firewall) para bloquearlas. Aquí está el proceso paso a paso:

  1. Bloquear IPs: Usé el comando apf para bloquear cada una de las IPs sospechosas. A continuación, un ejemplo de cómo bloquear una IP:

     sudo apf -d 192.168.1.1 "Bloqueo por ataque de bots"
    

    Repetí este comando para todas las IPs identificadas en los logs.

  2. Revisar y Reiniciar APF: Después de bloquear las IPs, revisé la configuración y reinicié APF para aplicar los cambios:

     sudo apf -r
    

Prevención Futura

Para prevenir futuros ataques de este tipo, decidí implementar reCAPTCHA en todos los formularios de contacto del sitio web de mi cliente. Esta es una medida adicional que puede ayudar a mitigar los ataques de bots de manera más efectiva. Otra medida efectiva es usar servicios como Cloudflare dónde se pueden bloquear estos ataques de manera más rápida porque se puede ver en tiempo real los accesos y por lo tanto detectar los patrones del ataque de manera visual y por lo tanto mas sencilla.

Conclusión

Enfrentar ataques de bots puede ser una experiencia frustrante, pero con las herramientas adecuadas y un poco de paciencia, podes proteger tu servidor y mantener tus sitios web funcionando sin problemas. Espero que este artículo te haya proporcionado una guía clara y útil sobre cómo manejar un ataque de bots y cómo implementar medidas preventivas.

Más artículos de Alejo A Sotelo - Desarrollo Web

20 Noviembre 2024

Problemas al guardar Configuración en Joomla

Introducción: Cuando cambiamos de servidor un sitio web con Joomla, es común encontrarnos con pequeños problemas técnicos que, aunque frustrantes, pueden resolverse con algo de paciencia y conocimiento. En este artículo, quier...
16 Agosto 2024

Cómo Resolver la Lentitud de phpMyAdmin en un VPS de Donweb con Ferozo

Te pasó alguna vez que intentaste explorar con phpMyAdmin una base de datos con tablas InnoDB y te andaba extremadamente lento? Si es así, abajo te paso una posible solución. Introducción: Hace poco me encontré con un problem...
20 Diciembre 2022

Liberar memoria ram en servidor CentOS

Cómo liberar memoria RAM en un servidor CentOS En este tutorial, te explicaré cómo liberar memoria RAM en un servidor CentOS utilizando comandos simples desde una sesión SSH. Sigue estos pasos para optimizar el rendimiento de ...
25 Febrero 2022

Cómo funciona React, Vue, Angular o frameworks parecidos a nivel técnico?

Alguna vez te preguntaste cómo funcionan los frameworks reactivos de javascript como Vue, React, Angular, etc. a nivel técnico? Si tuviste esta curiosidad te recomiendo leer este post del 2016 https://www.monterail.com/blog/20...