Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA
![Alejo Sotelo - Developer](/portal/templates/yootheme/cache/18/alejosotelo-profile-181ba653.jpeg)
![Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA](/portal/templates/yootheme/cache/7e/Como-detuve-un-ataque-de-bots-en-un-formulario-de-contacto-sin-reCAPTCHA-7e8d59b2.jpeg)
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:
-
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.
-
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.