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