¿Qué son los redireccionamientos ICMP y deberían bloquearse?

22

Después de habilitar ufw y el auditor de seguridad de Tiger, veo advertencias que dicen:

The system accepts ICMP redirection messages

¿Qué son los mensajes de redireccionamiento ICMP? ¿Deben ser desactivados por razones de seguridad? Si es así, ¿cuál es la forma correcta de hacerlo utilizando el firewall ufw?

jrdioko
fuente

Respuestas:

28

Según este artículo

Hay ciertos casos en los que los paquetes ICMP pueden usarse para atacar una red. Aunque este tipo de problema no es común hoy en día, hay situaciones en las que ocurren tales problemas. Este es el caso con el redireccionamiento ICMP o el paquete ICMP Tipo 5. Los enrutadores usan redireccionamientos ICMP para especificar mejores rutas de enrutamiento fuera de una red, según la elección del host, por lo que básicamente afecta la forma en que se enrutan los paquetes y los destinos.

A través de redireccionamientos ICMP, un host puede averiguar a qué redes se puede acceder desde la red local y cuáles son los enrutadores que se utilizarán para cada una de esas redes. El problema de seguridad proviene del hecho de que los paquetes ICMP, incluido el redireccionamiento ICMP, son extremadamente fáciles de falsificar y, básicamente, sería bastante fácil para un atacante falsificar paquetes de redireccionamiento ICMP.

El atacante puede entonces básicamente alterar las tablas de enrutamiento de su host y el tráfico del buzo hacia hosts externos en una ruta de su elección; el enrutador mantiene activa la nueva ruta durante 10 minutos. Debido a este hecho y a los riesgos de seguridad involucrados en tal escenario, todavía es una práctica recomendada deshabilitar los mensajes de redireccionamiento ICMP (ignorarlos) de todas las interfaces públicas.

Necesitas editar el archivo /etc/sysctl.conf

y cambio

###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0

A

###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
net.ipv4.conf.all.send_redirects = 0

Luego aplique las modificaciones de los parámetros del kernel anteriores con:

$ sudo sysctl -p
Manish Sinha
fuente
Gracias. Probablemente necesites descomentar esas líneas también, ¿no? :)
jrdioko
Oh si. Mi error. Lo actualicé.
Manish Sinha
44
No creo que configurar net.ipv4.conf.all.accept_redirects = 0 haga algo; tenga en cuenta el or_ en el archivo. Si estoy leyendo secure_redirects [ frozentux.net/ipsysctl-tutorial/chunkyhtml/… ] correctamente, esto anula net.ipv4.conf.all.accept_redirects = 0
gerardw
3

Tenga en cuenta que si el reenvío está deshabilitado (no somos un enrutador), el valor de net.ipvX.conf.all.accept_redirects será un valor específico de la interfaz OR, por ejemplo, net.ipvX.conf.eth0.accept_redirects. send_redirects siempre tiene OR.

La solución completa sería entonces:

net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0

Para hacer uso de la configuración 'predeterminada', las interfaces de red deben configurarse nuevamente.

Marek
fuente