Existe un problema de denegación de servicios en algunas
implementaciones del conocido cortafuegos Firewall-1 de Check Point
Software.
El ataque de denegación de servicios se hace posible debido a la
forma en que Firwall-1 trata las conexiones TCP. Habitualmente
para iniciar una conexión TCP, se envía un paquete SYN al host de
destino. En aquellos sistemas en los que se encuentra instalado
Firewall-1, este paquete es el primero que se pasa a través de la
pila TCP interna mantenida por el firewall, antes de ser enviada
a la pila nativa del sistema operativo.
Cuando Firewall-1 filtra dicho primer paquete, lo chequea contra
e conjunto de reglas. Si la sesión está permitida por las reglas
se añade a la tabla de conexiones con un timeout de 60 segundos.
Cuando el host remoto responde con un paquete ACK (Acknowledge)
la sesión se configura con un timeout de 3.600 segundos.
Pero si se inicia la conexión con un paquete ACK, Firewall-1 lo
compara con el conjunto de reglas y si está permitido se añade a
la tabla de conexiones. Sin embargo, el timeout asignado es de
3.600 pero no se presta atención a si el sistema remoto responde
o no. De tal forma que se tiene una sesión iniciada con un
timeout de una hora, incluso aunque el sistema no responda. Si se
realiza esta misma acción con muchos paquetes ACK provocará que
se llene la tabla de conexiones. Como resultado Firewall-1
rechazará cualquier conexión posterior.
Para evitarlo se pueden establecer varias soluciones, como
introducir una nueva regla que limite la posibilidad de
introducir paquetes ACK en la tabla de conexiones, incrementar el
tamaño de la tabla de conexiones para aumentar de esta forma el
número de paquetes ACK necesarios para causar la denegación de
servicios, o reducir el timeout a un valor lo suficientemente
bajo como para imposibilitar que se llene la tabla de conexiones.
Más información:
Securityfocus: http://www.securityfocus.com/vdb/bottom.html?vid=549
Check Point: http://www.checkpoint.com/
Deja una respuesta