El código «IP Masquerade» de las versiones kernel 2.2.x de Linux es vulnerable a un ataque que permite que un atacante remoto pueda introduzca datagramas UDP en una red local protegida con «IP Masquerade». Pero, +qué significa eso exactamente?.
«IP Marquerade» es el nombre que se dá en Linux al sistema NAT (Network Address Translation) nativo, y que permite que toda una red corporativa acceda a Internet utilizando una única IP, por ejemplo. Este sistema, además de posibilitar el empleo de una única IP (que ni siquiera necesita ser fija), proporciona cierta protección del tipo «cortafuegos», ya que las máquinas externas (Internet) no pueden establecer conexiones con máquinas internas, a menos que sean éstas quienes lleven la iniciativa.
El problema con el «IP Masquerade» y el protocolo UDP es que bajo determinadas condiciones (relativamente simples), un atacante puede introducir datagramas UDP en la red local en «respuesta» a datagramas provenientes del interior, aunque él no sea el destinatario de los mismos.
En realidad -y esto es importante- no se trata de un error en el c¢digo «IP Masquerade», sino en un requisito de dise_o necesario porque, en mucho casos, un datagrama UDP es respondido utilizando una IP diferente de la originaria (por ejemplo, servidores de nombres DNS o servidores NFS).
Ante este problema hay dos soluciones sencillas:
* Filtrar los datagramas UDP salientes de la red, de forma que no usen «IP Masquerading». Ello implica tener funcionando un servidor DNS en la propia m quina que hace de encaminador.
* Forzar a que todas las respuestas UDP provengan de la IP correcta. Este parche puede dar un falso sentido de seguridad, porque el protocolo UDP no est orientado a conexi¢n y las IPs son f cilmente falsificables.
Para ello aplicamos el siguiente parche al Kernel:
— net/ipv4/ip_masq.c.dloose Thu Mar 30 14:51:06 2000
+++ net/ipv4/ip_masq.c Thu Mar 30 14:57:24 2000
@@ -415,7 +415,7 @@
/*
* By default enable dest loose semantics
*/
-#define CONFIG_IP_MASQ_LOOSE_DEFAULT 1
+/* #define CONFIG_IP_MASQ_LOOSE_DEFAULT 1 */
/*
M s informaci¢n:
Multiple Linux Vendor 2.2.x Kernel IP Masquerading Vulnerabilities
http://www.securityfocus.com/vdb/bottom.html?vid=1078
FAQ: Firewalls: What am I seeing?
http://www.robertgraham.com/pubs/firewall-seen.html#netbios
Jesos Cea Avi¢n
jcea@hispasec.com