Bwbach: un proxy inverso en Elixir para bloquear bots de scraping

Fuentes: Bwbach: an Elixir reverse proxy to block scraping bots

Bwbach es un proxy inverso desarrollado en Elixir diseñado para mitigar el tráfico malicioso de bots de scraping, específicamente aquellos de Meta que generaban hasta 4 millones de peticiones por segundo en un sitio web pequeño. El sistema funciona como un 'agujero negro' digital: en lugar de rechazar las peticiones, el proxy envía contenido basura a un ritmo extremadamente lento, forzando a los bots a agotar sus recursos o a ser bloqueados por el servidor. Esta estrategia reduce la carga de CPU del proxy de un 85% a entre el 5% y el 10%, permitiendo que el sistema funcione de manera eficiente en instancias ARM de bajo coste en Hetzner.

La herramienta utiliza bibliotecas como Bandit, Thousand Island, Finch y Mnesia para gestionar la red y el almacenamiento en memoria. Bwbach actúa como un proxy de nivel 7, gestionando SSL y redirigiendo tráfico no autorizado mediante una página de inicio. Los bots que cumplen con robots.txt son verificados mediante registros DNS o listas IP, mientras que los atacantes reciben respuestas engañosas, como archivos gzip expansivos o imágenes corruptas. El proyecto, escrito por un desarrollador en Gales, destaca por su capacidad para manejar procesos concurrentes sin consumir recursos excesivos, ofreciendo una alternativa robusta a herramientas como Traefik para la protección de servidores web.