Cómo funciona un firewall

Cómo funciona un firewall

El firewall o cortafuegos es un sistema de protección básico de cualquier equipo o red conectado a Internet. El firewall inspecciona todo el tráfico que intercambiamos con Internet y decide cuál deja pasar y qué otro debe bloquear. Para hacer un uso eficiente del firewall es necesario entender su funcionamiento y posibilidades. Veamos cómo funciona un firewall.

Cuando conectamos nuestro ordenador o nuestra red local (Wi-Fi o cableada) a Internet, estamos conectándolo a un medio hostil. En Internet hay miles de millones de terminales utilizados por miles de millones de usuarios. Algunos de esos usuarios, directa o indirectamente, con una finalidad u otra, intentan hacer uso de los ordenadores ajenos. Para mantener a los posibles intrusos fuera de nuestros dominios es necesario instalar un firewall que separe el territorio nada seguro del mundo exterior del que pretendemos que sea territorio seguro de nuestro ordenador o red.

En este artículo se da por conocidos los principios de funcionamiento de Internet. Si desea repasarlos, puede consultar los siguientes enlaces:

Qué hace un firewall

El término firewall, cortafuegos, no representa exactamente la función que desempeña. Un cortafuegos tradicional bloquea un espacio para que no pase el fuego de una dependencia a otra, y para ello, bloquea completamente el paso a todo. Por el contrario, un cortafuegos informático debe dejar pasar parte del tráfico y bloquear la otra parte. Realmente, el trabajo de un firewall informático es más bien el trabajo del portero de un edificio: comprueba quién pretende entrar o salir y, si tiene autorización lo deja pasar y en caso contrario no. Quizás en vez de llamarles firewalls a estos equipos se les debería haber llamado doorman o concierge (‘porteros’).

Para que el firewall pueda hacer bien su trabajo tiene que saber exactamente en qué se debe basar para permitir o negar el paso de los datos. Cada firewall dispone de diferentes métodos de filtrado y diferentes formas de configuración.

Desde que aparecieron los firewalls, el principal sistema de filtrado se ha basado en analizar los siguientes parámetros de la cabecera de un paquete: tipo de protocolo, dirección IP origen, dirección IP destino, número de puerto origen y número de puerto destino.

Tipos de firewall

Con el paso del tiempo han ido apareciendo debilidades que han forzado a aumentar la profundidad del análisis. De esta forma, podemos hablar de los siguientes tipos de firewall:

  • Filtrado de paquetes. Se trata de los firewalls que basan su funcionamiento en el análisis de los datos de la cabecera de los paquetes.
  • Proxy o gateway de aplicación. Son firewall que no sólo analizan la cabecera del paquete, sino también su contenido.

Además de lo anterior, para realizar un control más estricto de todo el tráfico, los firewalls han ido incorporando nuevas funcionalidades, directa o indirectamente relacionadas con la seguridad. Este ha sido el caso de NAT, memoria caché o del manejo de protocolos de cifrado.

Por cierto, cuando se piensa en cómo funciona un firewall, es curioso el hecho de que ningún paquete pasa por un router o firewall sin sufrir algún tipo de modificación. Por lo pronto, el parámetro TTL se ve decrementado en una unidad. Al cambiar el valor de TTL también debe cambiar el valor de la suma de verificación (Checksum), debiéndose recalcular. Si se tuviese activado NAT, el número IP y puerto de los paquetes son sustituidos por otros antes de continuar su trayectoria. Por último, si el firewall dispone también de funcionalidades de proxy, antes de continuar es reconstruido desde cero.

Filtrado de paquetes del firewall

Como se ha visto anteriormente, el filtrado se basa en el análisis de los datos incluidos en la cabecera de los paquetes IP. De los doce campos incluidos en la cabecera, los más importantes desde el punto de vista del firewall son los siguientes:

  • Dirección IP del remitente. Este campo identifica al equipo origen del paquete. No obstante, hay que tener en cuenta que este número podría no reflejar el número IP original de quien envía el paquete. Esto ocurre en dos casos: porque el remitente se encuentre detrás de un servidor NAT, o porque el remitente es un pirata que cambia intencionadamente este dato para esconder su ataque. Esto último se conoce como IP spoofing (‘IP falso’).
  • Dirección IP del destinatario. Este valor permite discriminar el tráfico en función del destino del mismo.
  • Protocolo utilizado. La cabecera IP dispone de un campo numérico que identifica el protocolo de transporte utilizado. Este valor permite filtrar por el tipo de protocolo: TCP (valor 6), UDP (valor 17), ICMP (valor 1), etc.
  • Número de puerto TCP o UDP. Este número indica la aplicación del equipo origen y destino que envía o recibe el paquete. Las aplicaciones de servidor tienen números de puertos predefinidos: http (80), FTP (20/21), etc.
  • Tipo de mensaje ICMP. Estos mensajes son utilizados para detectar posibles problemas en la comunicación e indicar como resolverlo. No obstante, los paquetes ICMP pueden utilizarse también para recabar información del destinatario, por lo que puede interesar bloquear determinados tipos de paquetes ICMP.
  • Indicador de fragmentación. Los paquetes IP se pueden fragmentar en trozos más pequeños para adaptarse a las limitaciones de algunos equipos que no pueden manejar paquetes grandes. Esta funcionalidad puede ser aprovechada por los piratas para pasar la barrera del firewall.
  • Campo opciones. Los paquetes IP disponen de un campo donde se pueden especificar cualquier funcionalidad especial de TCP/IP. Este campo suele utilizarse con fines de diagnóstico, no obstante, para evitar riesgos, lo más conveniente es bloquear la utilización del mismo.

De todos los campos anteriores, los piratas suelen basar sus ataques en la manipulación de tres de ellos: dirección IP del remitente, mensajes ICMP e indicador de fragmentación.

IP spoofing o IP falso

La dirección IP del remitente puede falsificarse de la misma forma que puede indicarse un remite falso en una carta o una dirección falsa de correo electrónico. La falsificación del IP del remitente se conoce como IP spoofing o IP falso.

Se podría pensar que un paquete con IP de origen falso no tiene ningún valor porque su remitente no recibirá nunca la respuesta correspondiente. No obstante, un pirata le puede sacar un provecho distinto a estos paquetes. Por ejemplo:

  • El ordenador atacado podría disponer de un caballo de Troya ya instalado. Estos paquetes con IP falso podrían ser utilizados para enviar instrucciones a esta aplicación.
  • Los paquetes con IP falso podrían utilizarse para realizar ataques de negación de servicio contra cualquiera de los ordenadores internos.
  • El paquete de respuesta dirigido al remitente de un IP falso podría tener que pasar por un determinado router intermedio al que sí tiene acceso el pirata.

La protección contra IP spoofing se basa, principalmente, en impedir su utilidad. Desde el punto de vista del firewall, la medida específica utilizada consiste en analizar desde qué lado entra cada paquete y bloquear aquellos que utilizan una IP incorrecta. Por ejemplo, ningún paquete proveniente de Internet puede tener un IP origen correspondiente a IP privada. De la misma forma, ningún paquete de la red privada puede tener un IP origen distinto del rango de direcciones privadas.

ICMP

Lo paquetes ICMP son útiles para garantizar la conectividad de la red o realizar diagnósticos. Por ejemplo, este tipo de paquetes se utiliza para informar de las causas de un error en la conexión. Este es el caso de los mensajes ICMP del tipo TTL excedido o Destino no alcanzado. Por otro lado, los programas de utilidades, como Ping, utilizan este protocolo para obtener sus resultados.

El inconveniente de ICMP es que dispone de ciertos tipos de mensajes que pueden resultar peligrosos. Por ejemplo, ICMP redireccionamiento puede ser utilizado para indicarle al firewall que utilice una ruta diferente para alcanzar un destino.

Para evitar los peligros de ICMP, los firewalls permiten configurar el bloqueo de determinados tipos de paquetes ICMP.

Ejemplo de configuración del bloqueo de paquetes ICMP
Ejemplo de configuración del bloqueo de paquetes ICMP

Fragmentación

Los paquetes IP viajan por Internet a través de todo tipo de equipos de red. Aunque los paquetes pueden tener un tamaño máximo de 65.535 bytes, lo cierto es que no todos los equipos de red pueden manejar paquetes tan grandes.

Se llama MTU (Maximum Transmission Unit, ‘Unidad Máxima de Transmisión’) al parámetro que define el tamaño máximo de paquete que puede manejar un equipo o red. Si un equipo de red recibe un paquete de tamaño mayor a su MTU simplemente lo divide en trozos más pequeños. Cada uno de estos paquetes más pequeños recibe el nombre de fragmento IP.

Para evitar realizar sucesivos procesos de fragmentación y ensamblado, siempre que se fragmenta un paquete se hace a su tamaño más pequeño: 576 bytes. Este tamaño tiene la ventaja de ser admitido por todos los equipos. Además, cuando los fragmentos terminan de cruzar el enlace con limitaciones, no se ensamblan inmediatamente, sino que viajan fragmentados hasta el final.

Cada fragmento IP dispone de su propia cabecera conteniendo la dirección IP del remitente, la del destinatario, el número de identificación del fragmento y una cierta información TCP original. No obstante, sólo el primer fragmento contiene la parte de información que muestra el número de puerto TCP.

Fragmentación de un paquete
Fragmentación de un paquete

Cuando un firewall recibe los fragmentos IP se encuentra con un reto: como no contienen el número de puerto, excepto el primero, no puede realizar un filtrado basado en este dato.

Las opciones que se presentan son varias:

  • Bloquear todos los fragmentos, lo cual supone bloquear también tráfico legítimo.
  • Reensamblar los fragmento antes de tomar la decisión. El inconveniente es que para implementar esta solución sería necesario que el firewall contara con una memoria intermedia (caché) de tamaño suficiente para almacenar todos los fragmentos, además de contar con una cierta capacidad de proceso adicional. Por otro lado, este hecho podría ser utilizado por un pirata para producir ataques de negación de servicio. El envío de gran cantidad de fragmentos o el envío de cadenas de fragmentos sin incluir el último de ellos puede mantener a un firewall muy ocupado.
  • Dejar pasar los fragmentos siguientes al primero con la esperanza de que, si no pasó el primero, no se podrá reensamblar el paquete original. El inconveniente es que algunos programas de comunicaciones (en el ordenador de destino) intentan reensamblar el paquete con los fragmentos disponibles, aunque les falte el primero. Esta posibilidad podría ser utilizada por los piratas para enviar paquetes completos disfrazados de segundos y siguientes fragmentos, lo cual les permitiría saltarse el firewall.
  • Dejar pasar los fragmentos sólo si previamente se ha recibido un primer fragmento legítimo. Esto podría facilitar ataques de negación de servicio, pero la memoria necesaria es mucho menor que si se tuviesen que reensamblar todos los paquetes.

El problema de la fragmentación no tiene una solución completamente ideal, pero para que cada usuario pueda adaptarlo a sus necesidades, algunos firewalls incluyen la posibilidad de configurar lo que deben hacer con los fragmentos.

Flujo de la inspección dinámica de paquetes
Flujo de la inspección dinámica de paquetes

Filtro dinámico de paquetes

Tradicionalmente, el filtrado de paquetes se ha basado en el análisis de la cabecera, no obstante, hoy en día, este filtrado exclusivamente no es suficiente para garantizar una buena protección. Por ello se ha incluido una nueva técnica conocida como filtrado de paquetes declarados (Stateful packet filtering) o filtrado dinámico de paquetes (Dynamic packet filtering).

Cuando el firewall detecta un paquete de salida sabe que pronto vendrá un paquete de entrada como respuesta. Pues bien, este nuevo sistema consiste en dejar pasar sólo los paquetes de entrada esperados, bloqueando el resto de paquetes. A los paquetes esperados se les conoce como declarados (stateful) como algo opuesto a los paquetes no esperados o no declarados (stateless).

Cuando un equipo interno al firewall realiza una petición de información a un servidor externo, en el paquete de petición incluye su dirección IP (campo IP origen) y número de puerto (puerto origen). Como resultado de esta petición, poco después vienen paquetes de respuesta dirigidos al IP y puerto anteriores. Si se dispone del filtrado dinámico de paquetes, el firewall bloqueará todos los paquetes de entrada dirigidos a cualquier puerto que no esté registrado como que tiene una conexión activa. Para poder hacer esto, el firewall mantiene una tabla con la lista de puertos que esperan respuesta. Al detectar que la comunicación ha terminado o después de un tiempo de inactividad, el firewall borra el número de puerto correspondiente de la lista.

Un firewall que no dispone del filtrado dinámico de paquetes tiene que dejar pasar todo el tráfico, lo que puede ser aprovechado por los piratas para iniciar una comunicación con un ordenador interno. Ciertamente, el análisis del indicador SYN en los paquetes TCP puede hacerle ver al firewall si se trata del primer paquete de una sesión y, en caso afirmativo, bloquearlo si procede del exterior. No obstante, SYN puede ser falsificado, y además, este bit sólo lo incluyen los paquetes TCP, por lo que se quedarían sin proteger los paquetes UDP o ICMP.

Por otro lado, el filtrado dinámico de paquetes puede incluir además el análisis de ciertos tipos de paquetes para evitar vulnerabilidades muy conocidas de determinados protocolos. Por ejemplo, los protocolos FTP y SMTP tienen vulnerabilidades basadas en el uso de formatos incorrecto de sus paquetes de comandos. El filtrado dinámico de paquetes puede examinar estos paquetes buscando específicamente detectar estas vulnerabilidades.

NAT en el firewall

Aunque, originariamente, la tecnología NAT se introdujo para ahorrar direcciones IP de Internet, en la práctica ha supuesto también una buena técnica de seguridad. NAT permite que todos los equipos de una red interna puedan utilizar un rango de direcciones IP privadas que no son accesibles directamente desde Internet.

La técnica que utiliza NAT para saber a qué ordenador de la red interna tiene que enviar cada paquete es la de filtrado dinámico de paquetes. Esto es así porque NAT mantiene una lista de paquetes esperados junto con las direcciones internas que lo esperan. Esta lista recibe el nombre de mapa de NAT (NAT mappings). Si una comunicación termina o tiene un largo periodo de inactividad se borra de la lista.

Ejemplo de filtrado dinámico de paquetes con NAT
Ejemplo de filtrado dinámico de paquetes con NAT

Desde el punto de vista de la seguridad, NAT consigue ocultar los números IP reales de los equipos de la red interna y aplicar un filtrado dinámico de paquetes. Por esta razón, la mayoría de los firewalls incluyen el sistema NAT. El mundo exterior sólo ve la dirección IP pública del firewall y nunca conoce las direcciones IP privadas de los equipos internos al firewall. Por este motivo, a veces se le aplica a NAT el término de enmascaramiento IP (IP masquerading).

Inconvenientes de NAT

NAT también cuenta con algunos inconvenientes:

  • NAT puede ser utilizado por los piratas para ocultarse. Existe una mayor impunidad cuando se actúa desde el interior de una red con NAT porque, aunque se puede comprobar en los registros de NAT a quien corresponde cada comunicación, esto es una tarea más tediosa que conocer directamente el número IP del ordenador de origen.
  • Algunos protocolos de red incluyen el número IP y puerto origen, no sólo en la cabecera del paquete, sino también en el cuerpo del mismo. En general, NAT sólo analiza la cabecera, por lo que imposibilita esta comunicación. Netmeeting es un ejemplo de esto. No obstante, NAT si resuelve bien las comunicaciones de este tipo de determinados protocolos muy conocidos, ya que, en estos casos, NAT sabe exactamente dónde se encuentran los números a sustituir. Este es el caso de protocolos como FTP o ICMP.
  • Si la cabecera del paquete está cifrada (o el cuerpo en el caso de contener también la dirección IP) NAT no podrá realizar los cambios necesarios. Por ejemplo, IPSec no puede utilizarse con NAT por este motivo (aunque ya existen alternativas que resuelven este tema).
  • Algunos protocolos de multiconferencia o multimedia necesitan crear canales independientes de retorno para las peticiones de una de las partes. Esto tiene problemas con el filtrado dinámico de paquetes y con NAT. Dependiendo del tipo de firewall será o no posible crear filtros específicos para este tipo de protocolos.

Proxy o gateway de aplicación

A pesar del filtrado dinámico de paquetes y de NAT siempre quedan resquicios. Para dar un paso más allá en la protección se ha desarrollado otra técnica conocida como proxy de aplicación, gateway de aplicación, pasarela de aplicación o simplemente proxy. En definitiva, se trata de una versión más elaborada del filtrado de paquetes.

La principal diferencia entre el filtrado de paquetes y un proxy es que, mientras que el primero sólo inspecciona la cabecera de los paquetes IP, el segundo es capaz de inspeccionar completamente el cuerpo del paquete. Por tanto, el proxy inspecciona los datos de la capa de aplicación, de ahí el nombre de gateway o proxy de aplicación.

El análisis del cuerpo del paquete permite incorporar nuevos servicios de filtrado. Por ejemplo, un proxy puede inspeccionar los paquetes de una comunicación FTP en busca de determinados nombres de archivos a los que bloquear. Para realizar una inspección tan detallada, el proxy analiza el paquete completo en busca de coincidencias con sus reglas de filtrado (entre las que puede estar una lista de nombres de archivos prohibidos), y cuando termina el análisis regenera el paquete antes de enviarlo al destino. Esto supone dos cosas:

  • Los paquetes que llegan al destino no son los originales enviados por el origen, sino los que el proxy ha reconstruido con la garantía de que no contiene ningún dato sospechoso.
  • El proxy tiene que entender todos los protocolos de aplicación para poder llevar a cabo una protección completa de las comunicaciones.

El proxy de aplicación mantiene dos comunicaciones separadas: una entre el proxy y el ordenador interno, y otra entre el proxy y el servidor de destino. En la primera, el proxy actúa como servidor para el ordenador interno y en la segunda como cliente para el servidor de Internet.

Es interesante señalar que si la función del proxy deja de funcionar se pierde completamente la comunicación. Esto no ocurre con el filtrado de paquetes, donde, en caso de bloqueo de la función de filtrado, la comunicación continúa, aunque sin inspección. Por tanto, un pirata podría intentar atacar un firewall de filtrado de paquete para dejarlo fuera de servicio y poder, posteriormente, entrar impunemente en la red. Esta debilidad no la tiene un proxy.

Otra de las ventajas del proxy es que puede inspeccionar el tráfico de red que utiliza múltiples conexiones. El filtrado de paquetes no reconoce esas múltiples conexiones como pertenecientes a una misma aplicación.

Debilidades de Proxy

Los inconvenientes principales que tiene el sistema de proxy de aplicación son los siguientes:

  • El servicio proxy necesita comprender el protocolo de aplicación utilizado. La mayoría de los firewalls sólo cuentan con un proxy de las aplicaciones más comunes: HTTP, FTP, Telnet, etc. Por tanto, cualquier aplicación no contemplada en el proxy no podrá ser utilizada con ese firewall.
  • En la mayoría de los casos, la existencia de un proxy debe configurarse en cada uno de los ordenadores internos de la red, lo que supone, no sólo un trabajo adicional, sino una posible causa de incomunicación si el usuario, voluntaria o involuntariamente, lo desconfigura. 

Por otro lado, a pesar de todo el análisis que realiza el proxy, esto no quiere decir que esté completamente seguro frente a los ataques de piratas. Los proxy no impiden los ataques de negación de servicio, ya que, en muchos casos, se llevan a cabo con tráfico aparentemente legal. Claro que el resto de sistemas de firewall tampoco lo impiden. En cualquier caso, lo que sí hace el proxy es limitar este tipo de ataques.

Entre los ataques de negación de servicio que puede recibir un proxy se destacan estos dos:

  • Inundación de SYN. Consiste en enviar mensajes continuos de inicio de sesión (paquetes TCP SYN) a un ordenador interno para mantenerlo saturado y que no pueda ocuparse del tráfico legítimo. Estos mensajes incluyen un falso número IP de origen, por lo que nunca se cerrará la sesión, aunque el ordenador interno permanecerá ocupado intentándolo. En poco tiempo, el ordenador tiene tantas conexiones abiertas que deja de atender nuevas peticiones, incluidas las legítimas.
  • Inundación de Ping. Consiste en enviar miles de consultas ping por segundo a una determinada dirección IP. Como cada una de estas consultas requiere un paquete de respuesta. El ordenador estará tan ocupado generando las respuestas que no podrá atender las comunicaciones legítimas. Este tipo de ataques no sólo puede utilizarse para inutilizar las comunicaciones de un ordenador, sino que podría saturar toda una red local.

Registrar y analizar en el firewall

La finalidad de conocer cómo funciona un firewall es realizar una correcta configuración del mismo y evitar que los posibles ataques desde el exterior tengan éxito. Desde este punto de vista, una funcionalidad interesante que suelen incluir los firewalls es la de registrar la actividad que realizan. Es cierto que, si un firewall incluye filtrado de paquetes, NAT y proxy, cabría pensar que ya se dispone de las suficientes medidas de seguridad, pero, por desgracia, la piratería evoluciona y nunca se está completamente seguro. Por otro lado, cabe la posibilidad de haber olvidado algo durante la configuración de los equipos. El registro de actividad nos da la oportunidad de identificar la existencia del posible agujero.

Ejemplo de registro de actividad en un firewall
Ejemplo de registro de actividad en un firewall

Entre las utilidades del registro de actividad se incluyen las siguientes:

  • Crear informes. El registro de actividad contiene los datos necesarios para generar informes de la actividad y uso del firewall. Por otro lado, si el servicio de firewall fuera facturable de alguna forma, el registro de actividad permitiría realizar la facturación correspondiente a cada cliente.
  • Detección de intrusos. Es posible que, a pesar de todos los esfuerzos, un pirata termine colándose en la red. El análisis del registro de actividad permite identificar los movimientos sospechosos y ayudar a determinar las medidas a adoptar.
  • Descubrir métodos de ataque. Existe algo mucho más importante que detectar la presencia de un intruso: impedir que vuelva a entrar. El análisis cuidadoso de los registros de actividad ayudan a descubrir el procedimiento de ataque utilizado.
  • Evidencia legal. Si, finalmente, un ataque llega a tener una consecuencia legal, los registros de actividad podrían utilizarse como una evidencia.

El registro de actividad suele ser configurable en los firewalls. En muchos casos, incluso se pueden configurar los detalles que se desean almacenar. A más detalles más y mejores conclusiones podrán sacarse del análisis, pero, también es cierto que se incrementará el espacio ocupado y la complejidad del estudio.

Para darse cuenta de la importancia del registro de actividad sólo hay que fijarse en el hecho de que, a menudo, lo primero que intenta hacer un pirata es eliminar o modificar los archivos de registro para ocultar las pistas de su actividad o evitar su descubrimiento. Esto nos lleva también a la conclusión de que el archivo de registro de actividad debe protegerse frente a posibles modificaciones o sustituciones no legítimas.

Más Información sobre cómo funciona un firewall

A pesar de la extensión de este artículo, solo hemos podido describir cómo funciona un firewall de forma genérica. En este blog se han tratado distintos aspectos de la seguridad en general y del firewall en particular. Si necesita más información sobre este tema, por favor, utilice el buscador de contenidos que tenemos en la cabecera.

Estos son algunos otros artículos que pueden ser de interés:

REF: FW-PG116

2 comentario en “Cómo funciona un firewall

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *