miércoles, 18 de julio de 2007

Artículo: Evolución de los cortafuegos

Después de hablar en una de las últimas entradas acerca de los firewalls o cortafuegos de capa de aplicación, he recibido algún correo en el que me solicitan que explique ésto un poco más, en vista de lo cuál he recuperado y desempolvado un fragmento de un artículo que publiqué hace tiempo en el que se explica un poco la evolución y tipos de cortafuegos.

Comencemos.

Paso 1: Los comienzos.
··············································
Los primeros cortafuegos se desarrollaron a finales de los 80, principios de los 90. Éstos sistemas inicialmente estaban basados en el filtrado estático de paquetes. Dicho filtrado básicamente comprueba la red/puerto de origen y la red/puerto de destino, por lo que rápidamente se observó que no cubría todas las necesidades requeridas.

La primera ventaja de estos cortafuegos es su velocidad de proceso ya qué sólo se analizan las capas bajas de la pila OSI. Más exactamente las capas inspeccionadas en este caso son la 3 o capa de red (ip origen e ip destino) y la 4 o capa de transporte (puerto origen y puerto destino).

Más ventajas a comentar es que son transparentes para el cliente, no requieren de grandes prestaciones de las máquinas en las que se ejecutan y al ser un filtrado básico, la mayoría de los enrutadores y otros dispositivos de red lo implementan per se.

Sin embargo la implantación de reglas es larga y costosa ya que al ser un filtrado básico y no disponer de un mecanismo para realizar un seguimiento de las conexiones, es necesario un mayor número de reglas para cubrir la política deseada. Esto es así porque se hace necesario tener una regla para permitir un sentido de la comunicación y otra para permitir la respuesta de dicha comunicación, es decir, es necesario permitir implícitamente el sentido contrario.


Paso 2: "Ligeros" cambios.
······················································
Viendo el problema que se planteaba con el filtrado estático de paquetes, la siguiente evolución la introdujo el cortafuegos basado en el filtrado dinámico de paquetes o "Stateful Inspection" (Inspección de Estados).

Esta tecnología permite filtrar los paquetes por cualquier elemento existente en la cabecera ip. Además, incorpora una tabla de estados de conexión por lo que se añade potencia al poder usar estos estados como regla de filtrado. También modifica automáticamente la política de filtrado según dicha tabla de conexiones, con lo que se reducen la complejidad y el número de reglas necesarias para realizar el filtrado, puesto que ya no es necesario el uso de reglas adicionales para permitir la respuesta de las conexiones permitidas.

Pese a que hay fabricantes que se refieren a estos cortafuegos como de tercera generación, la tecnología usada en ellos se podría definir como una extensión de la tecnología anteriormente descrita. Como ya hemos visto mejora considerablemente los cortafuegos de filtrado estático de paquetes, pero carece todavía de la posibilidad de filtrar la parte de datos de los paquetes.


Paso 3: Una vuelta a la tortilla.
·······························································
La siguiente evolución se implementó en los llamados proxies. Estos elementos hacen de intermediarios entre el cliente y el servidor final haciendo las veces de pasarela. Básicamente lo que hacen es analizar los paquetes que conforman la sesión, reensamblarlos únicamente con datos validados y crear una nueva conexión al servidor por dónde se enviarán los nuevos paquetes creados.

Esto supone un cambio con respecto a los cortafuegos de filtrado de paquetes ya que recordemos que éstos no modificaban el paquete original y además creaban una conexión "directa" entre el cliente y el servidor, no hacían de intermediarios como ocurre en este caso.

Existen 2 tipos de estos elementos de seguridad: proxies de circuito y proxies de aplicación. Los primeros trabajan en la capas OSI 4 o capa de transporte y/o 5 o capa de sesión creando un circuito virtual entre el cliente y el servidor, sin analizar el contenido de dicho circuito.

Los proxies de aplicación trabajan en la capa OSI 7 o capa de aplicación. Éstos analizan la parte de datos del paquete, no su cabecera como en casos anteriormente analizados, tomando luego la decisión de aceptarlo o rechazarlo en función de ciertos parámetros previamente establecidos.

La ventaja de estas tecnologías es que se incrementa notablemente el nivel de seguridad. Por otro lado son dependientes de la aplicación, por lo que suele ser necesario utilizar varios proxies para proteger todos los servicios que un posible cliente pueda tener, mientras que generalmente con un cortafuegos de filtrado de paquetes se protege una red entera. Esto provoca que sea más costoso en términos de requerimientos su implantación. Además no suelen ser transparentes para el cliente y al tener que desensamblar el paquete en su totalidad, analizarlo y volver a ensamblarlo, tienen un rendimiento bastante inferior.


Paso 4: Estado actual.
·············································
La realidad es que a día de hoy hay pocos avances más en materia de cortafuegos y podemos encontrarnos elementos de red de todos los tipos enumerados anteriormente. De este modo es posible encontrarnos cortafuegos de filtrado estático en la mayoría de los elementos de electrónica de red (routers, switches, etc), llegando incluso al mercado residencial. Hoy en día la mayoría de los routers que las compañías de xDSL y cable instalan utilizan ésto para su módulo de filtrado.

A nivel comercial, los productos que actualmente se comercializan ofrecen todas las tecnologías anteriormente descritas, llegando incluso a permitirnos realizar tareas de proxy en múltiples protocolos al mismo tiempo sin utilizar varios cortafuegos para ello. Las diferencias entre unos productos y otros se refieren al rendimiento, las capacidades de gestión y tamaño de la base de datos de los patrones o firmas de los ataques reconocidos.

Y hasta aquí esta pequeña introducción al mundo de los cortafuegos. Por mi parte espero haber resuelto las dudas que había y como siempre,

Luego más.