Desde los inicios de Internet, los sistemas y protocolos que permiten interconectar hosts de una red se han diseñado desde el punto de vista de la confianza y la buena fe de los ingenieros que los idearon. Resultaba muy emocionante poder realizar tareas tan cotidianas hoy día como enviar un correo electrónico y consultar un foro de expertos en una web simplona al otro lado del mundo. No existía otro fin que el de crear y construir.
Con el paso de los años, comenzaron los conflictos de intereses entre empresas y la picaresca de algunas personas inquietas. Es curioso recordar, allá por los años 80, cómo se podían realizar llamadas de teléfono de larga distancia gratis en lo que se puede llamar el origen de los hackers: el Phreaking.
A día de hoy, todo es completamente diferente. Estamos inmersos en un mundo prácticamente digital, clon de la realidad, pero en él podemos encontrar tanto la buena fe de los primeros tiempos de la tecnología como la mala de los que, a costa de otros, quieren obtener un beneficio propio. Cada uno de nosotros tiene una imagen digital que hay que proteger y, desde hace relativamente poco, un sistema económico digital que nos obliga a tener aún más cuidado. Nuestro patrimonio se está también digitalizando con tecnologías como la “Blockchain” y nuestros monederos están siguiendo un camino parecido con criptomonedas como Bitcoin.
¿Qué podemos hacer para estar más seguros?
Aunque no hay nada seguro al 100%, ni en el mundo real ni en el mundo digital, la mejor herramienta es la prevención y la corrección rápida en el momento de la detección. Una de las técnicas que tenemos para la prevención es la de los firewalls. Podríamos definirlos de manera muy sencilla como el sistema de seguridad que vigila las puertas de nuestra red y autoriza o deniega las conexiones que nosotros autorizamos en base a unas políticas de seguridad personalizadas.
NAT – Seguridad solo en una dirección
Quizás algunos piensen que la técnica de traslación de IPs y puertos utilizada por NAT es una medida de seguridad completa. Todos los routers de “andar por casa” la utilizan, pero no es más que una ocultación de IPs. Nos permite tener algo más de intimidad en la red e impide que cualquiera, fuera de nuestra red, tenga acceso a nuestro equipo. Es un filtro “a medias”, en un solo sentido, ya que no impide que nuestras conexiones salientes se vigilen y se denieguen.
Tecnologías de firewall
En el campo de los sistemas de firewall, ya sean software o hardware, podemos definir las siguientes tecnologías:
- Filtrado de paquetes
- Inspección de estado
- Firewall de capa de aplicación.
Cada una de ellas tiene sus ventajas e inconvenientes, y está enfocada a un campo muy concreto, según el nivel de seguridad que busquemos. Encontrar el equilibrio entre seguridad, coste y mantenimiento del sistema es una ardua labor de ingeniería. Comencemos a verlas cada una por separado.
FILTRADO DE PAQUETES
El filtrado de paquetes es la forma más básica de un firewall. Se trata del proceso por el cual el tráfico se divide en paquetes y se analiza cada uno por separado en base a los contenidos de su cabecera TCP/IP:
El firewall observa los campos IP de origen, destino, puerto de origen, puerto de destino y los compara con el conjunto de reglas que tiene programado. Podemos, por ejemplo, permitir el tráfico DNS saliente hacia Internet y, por otro lado, denegar el tráfico ICMP entrante a nuestra red.
Debido a su sencillez, es especialmente útil implementarlo en aquellos dispositivos con una lógica también simple como un router básico, un switch, un punto de acceso wifi o cualquier elemento de red interna que queramos administrar con una lista de autorizados (normalmente, el departamento de IT).
Por otro lado, la gestión es más compleja, ya que requiere de muchas líneas de código para definir una buena política de seguridad (lo que implica la posibilidad de inconsistencias y errores). Además, el nivel de seguridad es el más bajo (un virus puede viajar por un puerto autorizado que tengamos abierto).
INSPECCIÓN DE ESTADO
Subiendo un escalón adicional en cuestión de seguridad, tenemos la técnica de Inspección de estado. Aunque algunos fabricantes como Checkpoint tienen la patente del “stateful Inspection”, otros, sin embargo, utilizan técnicas semejantes (Connection Tracking, Content Inspection, etc). Utilizaremos la denominación “Inspección de estado” como ejemplo de categoría.
Básicamente, esta técnica consiste no solo en observar un paquete sino un conjunto completo, un flujo de paquetes que comparten un conjunto de características comunes (misma IP origen, misma IP destino, puerto origen o destino). El primer paquete se utiliza para “registrar” un nuevo flujo en una tabla especial (Tablas de estado) y los siguientes se comparan con esas tablas para comprobar si pertenecen a dicho flujo de tráfico.
El resultado es una mejora sustancial en el rendimiento del firewall (no tiene que mirar todos los paquetes uno a uno para compararlos con sus reglas de seguridad) y un aumento considerable en la seguridad, ya que continuamente monitoriza las conexiones que están atravesando el firewall y sabe perfectamente qué paquetes son lícitos o no. Es muy útil para detectar barridos de puertos, paquetes falsos de una conexión u otras técnicas de hacking básicas en la capa de red.
Hay que aclarar que aquí el concepto de “conexión” no corresponde con el de la capa de transporte. En este entorno, un tráfico UDP se registra como una conexión en las tablas de estado pese a que, por definición, el tipo de tráfico UDP no está orientado a la conexión. Tenedlo en cuenta para no confundirlo…
(Ejemplo de una conexión UDP registrada en una tabla de conexiones)
En una buena parte de los casos, esta técnica, la inspección de estado, es más que suficiente para dotarse de un buen sistema básico de seguridad. Además, es bastante económico. Fabricantes como Mikrotik cubren perfectamente este nivel de seguridad. Sin embargo, pese a la mejora, seguimos teniendo el problema de que no es posible identificar si lo que está circulando por una conexión Web (TCP 80) es un virus o una página de nuestro periódico favorito.
FIREWALL DE CAPA DE APLICACIÓN
Este es el último nivel de nuestra categoría, y el más seguro. Un firewall con estas características utiliza cualquier capa del modelo OSI ó TCP/IP para vigilar y comparar con sus políticas de seguridad.
Cualquier atributo de alguna de esas capas es utilizado como criterio de selección para autorizar o denegar una conexión.
Para realizar esta labor, en especial en las capas más altas, se necesitan otras técnicas más avanzadas y el apoyo de un sistema dinámico de identificación de comportamientos y patrones anómalos. El firewall se comporta realmente como un antivirus a nivel de red, actualiza constantemente sus bases de datos de identificación de patrones, vulnerabilidades de software y firmas de virus para comparar si lo que esta “observando” es bueno o malo.
Siguiendo con los ejemplos anteriores, en este caso sí que sería posible analizar el contenido de una web (incluso si ésta utiliza tráfico cifrado https) para analizar si lo que viaja por dentro de la conexión realmente es código html lícito o un código malicioso. Esta técnica se llama “https inspection” y también la utilizan muchos antivirus de escritorio.
En esta categoría es bastante común que los fabricantes segmenten sus productos en “zonas de observación” debido al coste que supone tener un equipo de investigadores actualizando constantemente las bases de datos de identificación de amenazas. Algunas de esas zonas de análisis serían:
- IPS (Intrusion Prevention System). Se deniega en base a vulnerabilidades.
- Control de aplicaciones. Se deniega según una aplicación concreta.
- Identity Awareness. Se deniega en base a un usuario, independientemente del dispositivo que utilice.
- DLP (Data Loss Prevention). Se deniega en función del contenido de la información (por ejemplo denegar el envío de números de tarjetas de crédito).
- Antivirus. Denegamos la entrada de código malicioso.
- Anti-Spam. Rechazamos el envío/recepción de correo malicioso.
- Anti-Botnet. Identificamos equipos zombies controlados por un Centro de Control malicioso.
- Emulación de amenazas. Ejecutamos aplicaciones sospechosas en un entorno aislado antes de entregarlas al usuario final.
Conclusiones
Para mantener estos sistemas al día, los fabricantes tienen unos servicios de suscripción anuales por los que debemos pagar. Así, ya no solo se trata de adquirir un buen firewall, sino de que el coste de mantenimiento se incrementa.
Dado que los sistemas no hacen más que evolucionar y cambiar, el incremento de vulnerabilidades y técnicas de intrusión es cada vez más amplio y especializado. Como veis, hay tantos sub-sistemas de seguridad que nos protegen como imaginación para explotar un fallo de seguridad.
Llegados a este punto, ya solo nos queda decidir hasta dónde queremos llegar con la seguridad en nuestra empresa y cuánto estamos dispuestos a invertir.
Quedaron atrás aquellos días en la que con una simple cajita emisora de tonos, nos permitían realizar llamadas gratis de larga distancia…