24 de noviembre de 2013

5. COMPONENTES DE UN FIREWALL (Parte 1)

En todo cortafuegos existen tres componentes básicos para los cuales se ha de implementar los mecanismos necesarios para hacer cumplir la política de seguridad:

  • El filtrado de paquetes. 
  • El proxy de aplicación. 
  • La monitorización y detección de actividad sospechosa.

5.1. FILTRADO DE PAQUETES


El filtrado de paquetes, además de utilizarse para reducir la carga de red, también se emplea para implementar distintas políticas de seguridad en una red. Respecto al objetivo principal de dichas políticas de seguridad, es habitual el hecho de evitar el acceso no autorizado entre dos redes, manteniendo los accesos autorizados.

Los sistemas de filtrado de paquetes encaminan los paquetes entre los hosts de una red interna y los hosts de una red externa. De modo selectivo,  permiten o bloquean ciertos tipos de paquetes de acuerdo a una política de seguridad, como se puede ver en la figura. El tipo de router que se usa en el filtrado de paquetes se conoce con el nombre de screening router. 


El funcionamiento es el siguiente:

    1. Se analiza la cabecera de cada trama, 
    2. Se comprueban reglas establecidas de antemano que contemplan: 
                - Información de la cabecera de la trama: 
                           - el protocolo utilizado (TCP, UDP, ICMP), 
                            - las direcciones fuente y destino, 
                            - los puertos fuente y destino, 
                - Información que conoce el router acerca del paquete: 
                            - la interfaz del router por donde se ha de reenviar el paquete, 
                            - la interfaz por donde ha llegado el paquete, 
    3. En función de dichas reglas, la trama es bloqueada o se le permite seguir su camino.

Un ejemplo sobre cómo se debería programar un firewall para seleccionar los paquetes que van desde y hacia nuestro sistema, sería el siguiente:
  • Bloquear todas las posibles conexiones desde sistemas de fuera de la red interna, excepto de las conexiones SMTP (para poder recibir correo).
  • Bloquear todas las conexiones hacia y desde ciertos sistemas que no nos den confianza.
  • Permitir los servicios de email y FTP, pero bloquear los servicios peligrosos como TFTP, el sistema X Window, RPC y los servicios "r" (rlogin, rsh, rcp, ...).


5.1.1 Especificación de las reglas (ACL)

Habitualmente, las reglas se expresan como una simple tabla de condiciones y acciones que se consulta en orden hasta encontrar una regla que permita tomar una decisión sobre el bloqueo o el reenvío de la trama. 
 

Por ejemplo, supongamos que se tienen las reglas de filtrado de la tabla, con lo que se pueden dar los siguientes casos: 
  • Llega un paquete procedente de una máquina de la red 158.42.0.0: se bloquea su paso, sin importar el destino de la trama.
  • Tráfico hacia la red 195.53.22.0: se bloquea.
  • Llega un paquete de un sistema de la red 150.128.40.0 hacia 193.22.34.0: una de las reglas indica que se le permita el paso, pero la siguiente regla indica que se bloquee sin importar el origen:
  • Si las reglas se comprueban desde el principio, el paquete atravesaría el cortafuegos, ya que al analizar las tercera entrada de la fila se finalizarían las comprobaciones. 
  • Si las reglas se comprueban desde el final, el paquete se bloquearía inmediatamente.
  • Como se puede ver, el orden de las entradas en la tabla es determinante para lo que pueda suceder.
Llega un paquete que no cumple ninguna de las reglas: la acción depende de la implementación:
  • Se deniega el paso por defecto (lo más recomendado) 
  • Se aplica el contrario de la última regla especificada
  • Se permite el paso por defecto.
Para evitar el dilema, lo mejor es insertar al final de la tabla una regla con la acción por defecto del tipo, como se puede observar en al tabla 3.1.2, donde acción tomará el valor drop o accept, según los paquetes que no cumplan ninguna de las reglas se deseen bloquear o pemitir el paso respectivamente.

Ciertas implementaciones permiten indicar si el bloqueo de un paquete se notificará a la máquina origen mediante un mensaje ICMP. 
 

Podríamos definir una regla que no dejara pasar ningún paquete proveniente de Internet, cuyo destino fuese nuestro ordenador y, más concretamente, el puerto 80 (HTTP) de nuestro ordenador. En la tabla se muestran algunos de los servicios junto con los puertos correspondientes, que pueden interesar vigilar.

Dejo un listado de puertos para que los puedas consultar:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-es-4/ch-ports.html


5.1.2. Características

El filtrado de paquetes cuenta con una serie de puntos fuertes que se indican a continuación:
  • Resulta muy rápido y económico instalar un control basado en el filtrado de paquetes.
  • Resulta totalmente transparente.
  • Si el número de reglas creadas no es muy elevado, no llega a imponer una sobrecarga importante de procesamiento en el firewall, por lo que el rendimiento de la red no se verá afectado.
Por el contrario, también cabe indicar una serie de debilidades del filtrado de paquetes:
  • Definir las reglas de filtrado puede convertirse en una tarea muy complicada, ya que existen muchos aspectos en la especificación de los servicios de Internet y de los protocolos que, si no se conocen a fondo para su correcta configuración, pueden dejar abierta la puerta a ataques variados (ataques de falsificación de dirección IP origen, ataques de enrutamiento de origen, ataques de fragmentación, etc.).
  • Cuanto mayor sea el número de reglas, menor será el rendimiento del firewall, que en principio está diseñado únicamente para enrutar paquetes, no para tomar decisiones acerca de si debería o no debería hacerlo.
  • Si el cortafuegos acepta un servicio no es capaz de bloquear selectivamente ciertos comandos del servicio o rechazar ciertos contenidos, por lo que son susceptibles a ataques basados en datos.

1 comentario: