Hola colegas,

Después de leer el documento "Off-Path TCP Exploits: Global Rate Limit Considered Dangerous", veo que los paquetes RST son un componente esencial para este tipo de ataques, de modo que quizás sea posible mitigarlo apoyándose en netfilter.

Tengo que estudiar mejor la secuencia de paquetes necesarias para ese ataque, pero me parece que algo como esto podría funcionar incluso sin modificar el valor de tcp_challenge_ack_limit:

iptables -t raw -N ANTIRST
iptables -t raw -A ANTIRST -m recent --name malware --set -j RETURN
iptables -t raw -A PREROUTING -p tcp -m tcp --tcp-flags RST RST -m recent --name malware --update --hitcount 10 --seconds 30 --rttl -j DROP iptables -t raw -A PREROUTING ! -i lo -p tcp -m tcp --tcp-flags RST RST -m hashlimit --hashlimit-mode srcip,dstip,srcport,dstport --hashlimit-above 5/second -j ANTIRST

La idea es que no se permitan mas de 5 intentos de tcp-reset por segundo para un mismo origen/destino (excluyendo la interfaz local) y que en caso de ocurrir esto por 10 veces en menos de medio minuto, se prohiba tal comportamiento a la ip origen durante medio minuto, que debería ser tiempo suficiente para pasar a otro window y que de esta manera el número de secuencia sea inválido para el ataque.

Me parecen valores razonablemente conservadores, ya que en la vida real es muy poco probable que un equipo mande a restablecer una misma conexion tantas veces, pero en cualquier caso el efecto no tendría una duración excesiva.

Diganme que les parece
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a