Banjax un plugin para el servidor web Apache que realiza varias medidas anti-DDoS.
Este anti-DDoS se puede configurar cada comportamiento de filtro en el archivo “banjax.conf”. La configuración de cada filtro se realiza vía yaml, el orden en el que aparece cada configuración de filtro en el archivo determina el orden en que se que ejecuta el filtro.
Actualmente se implementan 5 filtros en Banjax:
White_lister.
Las IP de las listas blancas no pasan por ningún otro filtro configurado con una prioridad inferior a white_lister. Por ejemplo, la dirección IP de los programas de motorización como Nagios deberían ser configuradas como tal, para que los filtros como challenger no les impiden cumplir con su deber. A la lista blanca también se le puede añadir un rango de IP, como Google bots o una subred CIDR.
Regex_banner.
Regex_banner prohíbe cada solicitud en función de la tasa específica que corresponden a expresiones regulares. Actualmente la tasa de éxito calculada para cada expresión regular es numero de veces que una solicitud coincide con cada expresión regular, por lo tanto, si una solicitud coincide con dos expresión regulares diferentes, se cuenta una vez para cada expresión regular. Para configurar una nueva expresión regular, se debe agregar una nueva regla a la matriz “banned_regexes”. Los campos de la regla deben especificarse en formato yaml (con dos puntos).
Challenger.
Challenger sirve diferentes pruebas para confirmar la legitimidad del cliente para el acceso solicitado (leer, editar, etc). Actualmente soportan SHA256, los rompecabezas de Captcha o la autenticación por contraseña. La solución hash de las pruebas también se graba junto a la ip del solicitante. Se trata principalmente de un mecanismo de prevención de la memoria caché, así como el acceso sin caché al sitio web.
BotSniffer.
Botsniffer informa el detalle de cada solicitud al modulo BotBanger para probar al solicitante contra un modelo pre-aprendido para ver si el comportamiento del ip se asemeja a un bot. Los datos se cifran usando el modo AES-GCM grabándolos en “botbanger_log” en texto plano.
Swabber.
Informa de la prohibición de una IP por uno de los filtros anteriores y los segundos que han pasado desde la primera solicitud para la prohibición. Si el valor “grace_period”(periodo de gracia) se pone a 0 (cuando los bordes están demasiado estresados), al solicitante se le informa sobre la primera solicitud prohibida. Hay que tener en cuenta que todos los demás filtros siguen en vigor la próxima vez que la IP notificada envíe una nueva solicitud y por lo que significa que la solicitud no llega al origen. Si se desea que ningún filtro se comprometa debe activarse la opción “denialator”. Tras la activación “denialator” comprueba si la ip anteriormente ha sido reportado para su prohibición y si es tal le niega el acceso. El “denialator” informará de la ip a swabber de nuevo una vez que el período de gracia (grace_period) ha terminado. Para desactivar todos los filtros para la IP reportada, la prioridad del “denialator” debe establecerse en 1 o 2.
Más información y descarga de Banjax:
https://github.com/equalitie/banjax