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.
