[Seguridad] Ejemplo -real- de una mala configuración
Voy a analizar alguna situación real en donde la "cultura popular" cree estar segura... y no es así.
Veamos un ejemplo, insisto, totalmente real: mucha gente presupone que por estar detrás de un router en multipuesto está seguro (o detrás de un cortafuegos). Veamos que no puede ser así. Analicemos un simple protocolo (basándonos en la definición del protocolo, tal y como establecen las RFC). Un protocolo sencillito: el FTP (vamos a ver el ftp pasivo)
¿Cómo funciona? Simplemente, desde fuera se establece una comunicación por el puerto 21 (mucha gente "cree" que sólo se utiliza dicho puerto). El servidor responde dando una lista de puertos por los que el cliente ahora debe acceder. A continuación, el cliente accede por uno de dichos puertos (la lista es aleatoria).
Por tanto... tanto un router, como un firewall, deben "saber" que a continuación de una llamada al puerto 21, es más que probable que ocurra una llamada a cualquier puerto.
Tanto un router "bueno" como un firewall "semi-decente", deben verificar que la siguiente llamada sea desde la misma IP, y además en un puerto superior al 1024 (esto es importante porque muchos... NO verifican esto último). El router, sabiendo eso, redireccionará automáticamente cualquier puerto recibido a continuación de una llamada al puerto 21 sin necesidad de intervención del usuario. El firewall, permitirá el acceso a la misma IP que ha originado el 21 a cualquier puerto.
Por tanto imaginemos un router que no verifica lo del puerto 1024 o superior, o un firewall que tampoco lo verifique...
Pues el ataque está preparado: envío una petición al puerto 21 (tenga o no el cliente el servicio de ftp abierto, esto me da igual... en la mayoría de los casos), y a continuación lanzo un script de ataque usando la vulnerabilidad del RPC... por ejemplo.
Si las máquinas que están detrás de ese router, no tienen el parche... adiós!.... ya son mías. Sobre todo si preparo el script para reutilizar el 21 como salida, parando primero el posible (si existe) servicio tcp.
(lo anterior es un simple ejemplo... no me gusta dar ideas en este sentido).
Bien... con esto quiere decir... que "cuidado con lo que sucede allí fuera"...... y que no penséis que estáis seguros...
--------
Normalmente todos los routers ADSL con el "último" firmware (esto es importante!!!) vigilan la IP y también que el puerto sea superior a 1024.
Con respecto a firewalls (y aquí no voy a dar nombres ni versiones), muchos de los comerciales que circulan por ahí, no vigilan lo del 1024... por lo cual es fácil colarse.
Hay problemas mayores en comunicaciones multicast o broadcast como vulnerabilidades o potencialmente vulnerabilidades en muchos firewalls. No me gusta mucho entrar en un detalle porque no quiero convertir estos foros en consultas de hackers... pero recuerda que el trafico multicast o broadcast difiere desde el unicast debido a que las respuestas son de host desconocidos. Un filtro o un firewall impide que en general la respuesta sea aceptada. Por ello, por desgracia, esto hará que un montón de escenarios dejen de funcionar, por ejemplo: "media streaming".
Los firewalls, ante esta situación, pueden tener varios tipos de funcionamiento. Por ejemplo permitir una respuesta unicast durante x segundos desde cualquier dirección y en el mismo puerto que se ha originado el tráfico multicast o broadcast. Pero esto es un "suponer"... y muchos firewall fallan en este sentido. Estas posibles posibles vulnerabilidades pueden ser explotadas perfectamente...
--
José Manuel Tella Llop
MS MVP - DTS
jmtella@compuserve.com
|
13 - enero - 2004