Siguiente: Capacidades y limitaciones Arriba: Sistemas de Detección de Intrusiones Previo: Modelo de funcionamiento
4 Complementos y casos especiales
4.1 Escáner de vulnerabilidades
4.1.2 Tipos de análisis de vulnerabilidades
4.1.2.1 Análisis de vulnerabilidades basado en máquina
4.1.2.2 Análisis de vulnerabilidades basado en red
4.1.2.4 Ventajas e inconvenientes
4.2 "Honeypot", "Honeynet" y "Padded Cell"
4.2.1.1 Ventajas e inconvenientes
4.2.2.4 Ventajas e inconvenientes
4.2.3.1 Ventajas e inconvenientes
4.3 Verificador de integridad de ficheros
4.4 Cortafuegos: Prevención de Intrusiones
4.4.1 IDS basado en red, en modo "in-line"
4.4.2 Conmutador de nivel siete
4.4.3 Cortafuegos/IDS de aplicación
Capítulo 4
La gran cantidad de formas de abordar el problema de la detección de intrusiones, ha dado lugar a numerosas y variadas propuestas y soluciones. Algunas herramientas de seguridad pueden ayudar a complementar la tarea de los detectores de intrusiones, como los comprobadores de integridad de ficheros en los detectores de intrusiones basados en máquina. Por otro lado, algunos sistemas de seguridad ofrecen soluciones tan similares, que muchos los consideran casos especiales de detectores de intrusiones.
En este capítulo se describirán algunos mecanismos y herramientas de seguridad que por sus características, poseen, de una u otra forma, una estrecha relación con la detección de intrusiones.
Un escáner de vulnerabilidades ("vulnerability scanner" o "assesment system") es una herramienta que realiza un conjunto de pruebas (generalmente ataques) para determinar si una red o un "host" tiene fallos de seguridad.
Este tipo de sistemas se podría considerar como un caso especial de detectores de intrusiones. Ya en apartado sobre información recogida de objetivos del capítulo 2 "Definiciones", se comentaba la diferencia entre un enfoque estático y uno dinámico. Un escáner de vulnerabilidades es un ejemplo de enfoque estático. Un análisis estático, o basado en intervalo, no trabaja de forma continua (un vídeo), sino en intervalos de tiempo (una imagen).
Es fácil darse cuenta de las debilidades que tiene un sistema como este. Sólo puede detectar aquellas vulnerabilidades contenidas en su base de datos. Además, sólo es capaz de identificar fallos de seguridad en los intervalos en que se ejecuta. No obstante, ello no le impide ser de inestimable ayuda a la hora de mejorar la seguridad de un sistema.
A continuación se describe el proceso general de funcionamiento de un escáner de vulnerabilidades:
· Se muestrea un conjunto específico de atributos de sistema.
· Los resultados del muestreo se almacenan en un recipiente de datos seguro.
· Los resultados se organizan y comparan con al menos un conjunto de referencia de datos (este conjunto puede una plantilla de "configuración ideal" generada manualmente, o bien ser una imagen del estado del sistema hecha con anterioridad)
· Se genera un informe con las diferencias entre ambos conjuntos de datos.
Algunos programas comerciales optimizan el proceso mediante:
· Ejecución de motores de de comparación en paralelo.
· Utilización de métodos criptográficos para detectar cambios en los objetos monitorizados.
Existen dos formas de clasificar los análisis de vulnerabilidades; bien mediante la localización desde la que se obtienen datos o bien mediante el nivel de confianza del que hace uso el analizador de vulnerabilidades. Según el primer método, los análisis pueden ser basados en máquina o basados en red. Según el segundo método, los análisis pueden ser con acreditaciones ("credentialed") o sin acreditaciones ("non credentialed") [1]. Estos últimos análisis se refieren al hecho de utilizar credenciales de sistema, tales como contraseñas, durante el proceso de análisis [2]. La Figura 4‑1 ilustra varias formas de clasificar estas herramientas de seguridad.
Figura 4‑1 - Clasificación de analizadores de vulnerabilidades
A continuación se utilizará el primer enfoque descrito (basado en el origen de los datos), como método de clasificación para la descripción de estos sistemas.
Este tipo de análisis utiliza fue el primero en utilizarse en la evaluación de vulnerabilidades. Utiliza elementos tales como ajustes de configuración, contenidos de ficheros, u otro tipo de información de un sistema para la detección de vulnerabilidades. Esta información se puede obtener básicamente mediante consultas al sistema, o a través de la revisión de diferentes atributos del sistema.
En este caso se asume que el analizador de vulnerabilidades tiene acceso autorizado al sistema, por lo que también recibe el nombre de análisis con acreditaciones. También se denomina evaluación pasiva.
Bajo sistemas UNIX, la información es obtenida a nivel de host o de dispositivo. No obstante, los sistemas Windows permiten realizar muchas llamadas nativas de forma local o remota, según las credenciales utilizadas. La correspondencia entre sistemas basados en máquina y autenticados no siempre se cumple.
Las vulnerabilidades que se suelen encontrar mediante la evaluación basada en máquina, suelen ser estar relacionadas con ataques de escalamiento de privilegios. Estos ataques persiguen obtener permisos de root o "superusuario" en sistemas UNIX, o administrador en sistemas Windows.
Los motores de análisis de vulnerabilidades basados en máquina están muy relacionados con el sistema operativo que evalúan, lo cual hace su mantenimiento costoso y complica su administración en entornos heterogéneos. Las credenciales utilizadas deben ser protegidas convenientemente, así como la información accedida mediante las mismas, para evitar que sean objeto de ataques.
Un ejemplo de analizador de vulnerabilidades basado en máquina es el "Cerberus Internet Scanner (CIS)" [3]. Es un escáner gratuito desarrollado por Cerberus Information Security, Ltd. Es un programa simple pero eficaz, que comprueba una completa lista de vulnerabilidades conocidas para sistemas Windows, mostrando en poco tiempo los fallos existentes.
Los análisis de vulnerabilidades basados en red han aparecido hace algunos años, y se han ido haciendo cada vez más populares. Obtienen la información necesaria a través de las conexiones de red que establecen con el objetivo. Realizan conjuntos de ataques y registran las respuestas obtenidas. No se debe confundir los analizadores de vulnerabilidades basados en red con los sistemas de detección de intrusiones. Aunque un analizador de estas características puede ser muy similar a un detector de intrusiones, no representa una solución tan completa.
Esta forma de análisis normalmente no tiene requerimientos de autenticación; los ataques se realizan sin tener necesariamente permiso de acceso al sistema. Por esta razón, este tipo de enfoque también suele denominar sin acreditaciones. Además, el análisis se realiza atacando o sondeando efectivamente al objetivo, por lo que también recibe el nombre de evaluación activa.
La correlación descrita entre los enfoques basados en máquina y los autenticados, también se aplica a los basados en red y los no autenticados.
Se suelen utilizar dos técnicas, descritas a continuación, para la evaluación de vulnerabilidades basadas en red:
· Prueba por explotación ("Testing by exploit"): Esta técnica consiste en lanzar ataques reales contra el objetivo. Estos ataques están programados normalmente mediante guiones de comandos. En vez de aprovechar la vulnerabilidad para acceder al sistema, se devuelve un indicador que muestra si se ha tenido éxito o no. Obviamente, este tipo de técnicas es bastante agresivo, sobretodo cuando se prueban ataques de denegación de servicio. No obstante, no sólo ese tipo de ataques puede provocar la caída del sistema.
· Métodos de inferencia: El sistema no explota vulnerabilidades, sino que busca indicios que indiquen que se han realizado ataques. Es decir, busca resultados de posibles ataques en el objetivo. Este método es menos agresivo que el anterior. No obstante, los resultados obtenidos son menos exactos que los que utilizan "exploits" [1]. Ejemplos de técnicas de inferencia pueden ser la comprobación de versión de sistema para determinar si existe una vulnerabilidad, la comprobación del estado de determinados puertos para descubrir cuáles están abiertos, y la comprobación de conformidad de protocolo mediante solicitudes de estado.
Uno de los productos más conocidos entre los analizadores de vulnerabilidades basados en red es Nessus [3]. Es un escáner de seguridad de red de Software Libre, licenciado bajo GNU "General Public License" (más tarde Lesser GPL). Fue desarrollado por Renaud Deraison en Europa en 1998. Su precursor fue SATAN, otro analizador, escrito por Wietse Venema y Dan Farmer [5].
Nessus es una herramienta basada en el modelo cliente-servidor que cuenta con su propio protocolo de comunicación. De forma similar a SATAN, el trabajo correspondiente a escanear y atacar objetivos es llevada a cabo por el servidor, mientras que las tareas de control y presentación de los datos son gestionadas por el cliente.
Figura 4‑2- Arquitectura de Nessus
Nessus utiliza su propio lenguaje, denominado NASL (Nessus Attack Scripting Language), para definir las pruebas vulnerabilidad. Su sencillez permite mantener la base de vulnerabilidades actualizada sin demasiado esfuerzo. Cada prueba de seguridad se escribe como un módulo externo, haciendo posible su programación sin conocer los detalles del motor de análisis.
Una de las ventajas de Nessus frente a otros competidores, es que además de ser de libre distribución, está escrito con interfaces claros y APIs (Application Program Interface), lo que le permite su integración con otras herramientas.
Otro de los métodos utilizados por los analizadores de vulnerabilidades (que no tiene por qué encajar en las anteriores clasificaciones) es el conocido como "password cracking" (romper/adivinar contraseñas). Esta técnica la incluyen muchos productos de análisis de vulnerabilidades.
El proceso de romper contraseñas permite determinar el grado de calidad de las contraseñas de los usuarios de sistema. En este proceso se utilizan funciones relacionadas con el sistema de autenticación de usuario del sistema operativo. Para adivinar las contraseñas, se prueban diferentes combinaciones de caracteres, o una serie de palabras tomadas de una lista (por ejemplo, un diccionario).
La calidad de las contraseñas dependerá de factores como la longitud de las mismas o la variedad de caracteres utilizados (mayúsculas, minúsculas, números, símbolos especiales, etc.). Cuanto más larga y mayor sea la variedad de caracteres utilizados en una contraseña, más difícil será de romper y, por tanto, de mayor calidad será.
Un escáner de vulnerabilidades es una herramienta muy útil a la hora de ampliar la seguridad de un sistema. Tiene valiosas características de las que carecen otros enfoques más dinámicos. Sin embargo, como siempre que se habla de seguridad, no es la solución definitiva. Siempre necesitará complementarse con alguna herramienta o sistema que contrarreste sus debilidades.
Los sistemas descritos a continuación presentan un enfoque innovador con respecto a los sistemas de seguridad tradicionales. En vez de repeler las acciones de los atacantes, utilizan técnicas para monitorizarlas y registrarlas, para así aprender de ellos. A pesar de que en algunos países no están claramente definidos los aspectos legales de estos sistemas, lo cierto es que cada vez son más utilizados.
Durante los últimos años han ido adquiriendo creciente popularidad los denominados "honeypots" (sistemas trampa): "Recursos de sistema de información cuyo valor reside en el uso no autorizado o ilícito de dichos recursos". [6]
Un "honeypot" no es un sistema de detección de intrusiones, pero puede ayudar a mejorar sus métodos de detección y aportar nuevos patrones de ataque. Es un sistema diseñado para engañar a los intrusos, poder estudiar sus actividades, y así aprender de sus métodos. Se basa en la idea de "conocer al enemigo" para poder combatirlo. [7]
El concepto de sistema trampa no es nuevo, y ya fue introducido hace años por Cliff Stoll en su "Cukoo's Egg" [8] y por Bill Cheswik [9]. En ambos trabajos se comentaba el uso de mecanismos similares a trampas, que servían para monitorizar la actividad de los intrusos permitiendo su posterior análisis. Más tarde apareció el término "honeypot", pero la idea era la misma.
Los sistemas trampa están diseñados para imitar el comportamiento de aquellos sistemas que puedan ser de interés para un intruso. Suelen contar con mecanismos de protección para que un atacante con éxito no pueda acceder a la totalidad de la red. Naturalmente, si un intruso consigue entrar en un sistema trampa, no debe percatarse de que está siendo monitorizado o engañado.
Figura 4‑3 - Ejemplo de un "Honeypot" (Sistema trampa)
La mayoría de los sistemas trampa están instalados detrás de un cortafuegos, aunque también es posible situarlos delante de ellos. El cortafuegos responsable del tráfico de un sistema trampa suele programarse para permitir las conexiones entrantes al sistema, y limitar las conexiones salientes.
Los sistemas trampa poseen una serie de características que los distinguen claramente de otras soluciones de seguridad [10]. A continuación se describen algunas de las ventajas e inconvenientes asociados a los mismos.
La idea de "honeypot" es desarrollada con el término "Honeynet" (Red trampa). Esta expresión fue adoptada por "The Honeynet Project"; una organización no lucrativa, fundada por Lance Spitzner. Este grupo está compuesto por expertos en seguridad, cuyo objetivo es aprender las herramientas, tácticas y motivos de los atacantes. [11]
Una "Honeynet" es una herramienta de investigación. Es un tipo de "honeypot" que consiste en una red diseñada para ser comprometida por intrusos. Sirve para estudiar las técnicas utilizados por los intrusos que la han comprometido.
Una "Honeynet" no es lo mismo que un sistema trampa tradicional. A continuación se describen las diferencias más significativas:
· Una "Honeynet" no es un sistema en solitario, sino una red. Esta red puede estar compuesta por distintos sistemas trampa, tales como Linux, Windows, Solaris, "routers", conmutadores, etc. El hecho de proporcionar un entorno de red aporta un ambiente más "creíble" desde el punto de vista del atacante. Un entorno de sistemas heterogéneo permite además, captar la atención de más intrusos, algunos de los cuales están especializados en atacar determinados sistemas operativos o servicios. Por otra parte, permite aprender un mayor y variado número de tácticas de ataque.
· Los sistemas utilizados en una "Honeynet" son sistemas de producción. Es decir, son sistemas reales, aunque no se utilicen con otro propósito que el de monitorizar su actividad. Ningún sistema o servicio es emulado. No se hace intento alguno de disminuir su seguridad. Normalmente se instalan los sistemas trampa más conocidos, con la configuración que traen por defecto, como Linux Red Hat, servidores Windows o servidores Solaris.
Las "Honeynets" son herramientas de seguridad con un punto de vista diferente al tradicional defensivo, presente en cortafuegos, encriptación o sistemas de detección de intrusiones. Son herramientas diseñadas básicamente para aprender y adquirir experiencia en el área de seguridad.
El Proyecto Honeynet ha definido dos tipos de arquitecturas básicas para sus "Honeynets": GenI y GenII. Ambas arquitecturas son descritas a continuación, seguidas de varios métodos para implementar "Honeynets" virtuales. [12]
Esta arquitectura simple fue la primera en desarrollarse, en 1999. Una red es situada detrás de un dispositivo de control de acceso, generalmente un cortafuegos, como se muestra a continuación.
Figura 4‑4 - Arquitectura "Honeynet" GenI
En el diagrama, se puede ver un cortafuegos de nivel tres separando la "Honeynet" en tres redes diferentes: la "Honeynet", Internet y la red de Producción. Cualquier paquete que entre o salga de la Honeynet tiene que pasar a través del cortafuegos y del "router". El cortafuegos filtra las conexiones entrantes y salientes. El "router" complementa este filtrado. El cortafuegos está diseñado para permitir cualquier conexión entrante, pero controla las conexiones salientes.
Este tipo de arquitectura es eficaz contra ataques automatizados, o contra atacantes de nivel básico. Pero no son de gran utilidad contra atacantes avanzados. El entorno proporcionado por las "Honeynets" GenI suele ser poco atractivo, consistiendo básicamente en instalaciones por defecto de sistemas operativos. Hay que destacar que este modelo apenas se implementa ya, siendo más utilizado su sucesor: GenII, comentado en el siguiente apartado.
Esta arquitectura de "Honeynets" fue desarrollada en 2002, y fue pensada para solventar muchos de los problemas existentes en el modelo anterior. Con respecto a las tecnologías GenI, esta arquitectura es más fácil de implementar, difícil de detectar y de mantenimiento más seguro.
Figura 4‑5 - Arquitectura "Honeynet" GenII
Como se puede ver en la Figura 4‑5, la primera diferencia con respecto a la arquitectura GenI es que se utiliza un "Honeynet Gateway" (Puerta de enlace de la Red trampa) que combina los elementos de IDS y cortafuegos aparecidos por separado en el modelo GenI. Esto simplifica su gestión. La segunda diferencia radica en el propio "gateway", que trabaja a nivel 2, de forma similar a un puente. Este método, muy común en este tipo de mecanismos, permite prescindir de dirección IP, reduciendo las posibilidades de detección por parte de los atacantes.
Por otra parte, el "Gateway" no encamina paquetes. En vez de bloquear las conexiones de salida, se limita el ancho de banda del atacante, haciendo más realista y flexible el entorno.
Los sistemas trampas introducidos dentro de la "Honeynet" consisten normalmente en instalaciones básicas de los sistemas operativos más comunes, a veces con algunos servicios de red activados para hacerlos más atractivos como objetivo de ataque.
La aparición de herramientas de emulación o soporte virtual, han hecho posible este modelo de implementación de "Honeynets". Este enfoque consiste en crear una "Honeynet" completa en un sólo equipo físico. Una "Honeynet" virtual no es una arquitectura, sino una forma de implementarlas: de esta manera, se puede utilizar para crear tanto arquitecturas tipo GenI como GenII.
Entre las opciones existentes para crear una "Honeynet" virtual destacan el producto comercial VMware [13], y User Mode Linux (UML), desarrollado por Jeff Dike [14]. Consiste en un módulo especial del núcleo de sistema que permite ejecutar muchas versiones virtuales de Linux en el mismo sistema simultáneamente. A continuación se describen brevemente las ventajas e inconvenientes de ambos productos:
· VMware es de pago y de código cerrado, mientras que UML es de libre distribución.
· VMware permite tres modos de instalación: "Workstation", GSX, o ESX. Cada uno con diferentes capacidades, según las necesidades del usuario.
· UML necesita significativamente menos recursos que VMware.
· VMware soporta más sistemas operativos que UML, el cual, está limitado a sistemas Linux; aunque se está desarrollando una aplicación para Windows.
· Una de las mejores características con las que cuenta VMware, es que tiene una consola de administración remota que presenta al sistema invitado como si se estuviera sentado delante, permitiendo su gestión remota sin generar tráfico de red. UML no posee interfaz gráfica, sino realiza la gestión a través de la línea de comandos.
· Al ser UML un producto de código abierto, no proporciona soporte oficial ni comercial.
Una "Honeynet" virtual puede ser Auto-contenida o Híbrida.
La "Honeynet" virtual Auto-contenida engloba una "Honeynet" en un sistema físico único.
· Ventajas:
o Fácilmente transportable, especialmente si se instala en un portátil.
o Rápida puesta en funcionamiento. Una vez instalada, sólo hay que conectarla a la red y configurarla en pocos minutos.
o Es barata y ocupa poco espacio. Sólo hace falta un ordenador.
· Desventajas:
o Si falla el hardware, la "Honeynet" entera podría dejar de funcionar.
o Ordenador de altas prestaciones. Aunque sólo requiere un ordenador, tiene que tener suficiente memoria y procesador.
o Seguridad. Como todos los sistemas comparten el mismo hardware, puede que un atacante acceda a otras partes del sistema. Mucho depende del software virtual.
o Limitación por software. Como todo tiene que ejecutarse en una sola máquina, hay software que no se podrá utilizar por problemas de incompatibilidad. Por ejemplo, una IOS Cisco en un procesador Intel.
A continuación, la Figura 4‑6 describe la arquitectura de una "Honeynet" virtual Auto-contenida.
Figura 4‑6 - "Honeynet" virtual auto-contenida
Una "Honeynet" virtual Híbrida es una combinación de una "Honeynet" y del software virtual. Es decir, los sensores de IDS y el almacenamiento de registros, están en un sistema separado y aislado, para reducir el riesgo de compromiso. Sin embargo, todos los "honeypots" son ejecutados virtualmente en una única máquina.
· Ventajas:
o Seguridad. El único peligro sería que el atacante accediera a otros "honeypots".
o Hay mayor flexibilidad a la hora de utilizar software para el control y captura de los datos de red.
· Desventajas:
o Al implicar a más de una máquina, la movilidad es más reducida.
o Es más cara y ocupa más espacio que la Auto-contenida.
La Figura 4‑7 describe la arquitectura del modelo de "Honeynet" Híbrida.
Figura 4‑7 - "Honeynet" virtual híbrida
Los sistemas comentados en este apartado permiten estudiar en detalle las tácticas, métodos y motivos de los intrusos, aspecto que los diferencia del resto de los productos y soluciones de seguridad. Su enfoque no está basado en la tradicional posición defensiva (cortafuegos, encriptación, etc.). Lejos de bloquear los ataques, su metodología se basa en el seguimiento en detalle de los procesos de intrusiones.
No obstante, hay que conocer los aspectos legales que puede suponer la implantación de uno de estos sistemas antes de decidir hacerlo.
Los sistemas basados en células de aislamiento ("padded cell") tienen una metodología que puede recordar a los sistemas trampa, pero no son exactamente lo mismo. Funcionan de forma conjunta con un dispositivo que cuenta con capacidades de enrutamiento y detección de intrusiones, que al detectar algún ataque, lo redirige hacia un "host" especial (denominado célula de aislamiento).
Al igual que los sistemas trampa, mencionados en apartados anteriores, una célula de aislamiento ofrece al atacante un entorno aparentemente idéntico a uno real. Sin embargo, al estar protegida del resto de la red, no causa daños. En muchas ocasiones estos "host" aislados consisten en espejos de sistemas de producción reales, para proporcionar un escenario más creíble. Como los sistemas trampa, las células de aislamiento pueden utilizarse para comprender mejor los métodos utilizados por los intrusos.
Este tipo de sistemas se lleva utilizando, junto con sistemas de detección de intrusiones, desde finales de la década de los 80.
Un producto enfocado para trabajar con células de aislamiento es el "Bait and Switch", desarrollado por J. Whitsitt y A. Gonzalez [15]. Esta herramienta, se instala en un sistema con tres interfaces de red y redirecciona el tráfico hostil hacia un sistema trampa especialmente diseñado para recibir ataques (la célula de aislamiento), que normalmente consiste en copia parcial (con datos ficticios) de un sistema real.
Figura 4‑8 - Procedimiento general de "Bait and Switch"
Una vez redirigidas sus acciones, el atacante no se percata de que está atacando un sistema trampa en vez del real. Por otra parte, sus actividades pueden ser monitorizadas para ser estudiadas con el fin de mejorar la seguridad de la red.
"Bait and Switch" utiliza el sistema de detección de intrusiones Snort (para detectar los ataques) [16], así como iproute2 (1) y netfilter (2).
Dadas las similitudes entre estos sistemas y las "honeynets", la mayoría de las ventajas e inconvenientes descritos en el apartado anterior, pueden ser trasladados a este caso.
Un verificador de integridad de ficheros es una herramienta utilizada por sistemas de detección de intrusiones, normalmente los basados en máquina, para mejorar sus capacidades.
Aplican funciones resumen, u otros métodos de cifrado robustos, a ficheros críticos de sistema, comparando los resultados con una base de datos de referencia, y comunicando los posibles cambios o diferencias.
Hay varias razones por las que utilizar este tipo de herramientas para detectar intrusiones. Un atacante puede alterar o eliminar ficheros para no dejar evidencias de su actividad. Además, puede querer instalar algún troyano que le permita obtener el control de la máquina. O incluso puede dejar una puerta trasera que le deje volver a entrar en el sistema.
Los verificadores de integridad de ficheros no sólo pueden servir para detectar intrusiones a través de los cambios encontrados en ficheros. También son de gran ayuda durante un análisis forense, facilitando la identificación del ataque o método utilizado. Además, ayudan a devolver a la normalidad un sistema, optimizando el proceso de restauración.
Uno de los productos más conocidos entre los verificadores de integridad es Tripwire®. [17]
Un cortafuegos es un sistema diseñado para evitar el acceso no autorizado a una red privada. Pueden ser dispositivos hardware, software, o una combinación de ambos. Se suele utilizar para proteger el acceso a redes privadas desde otras redes, como por ejemplo Internet.
Cuando se reúne la capacidad de bloqueo de un cortafuegos y la capacidad de análisis de un IDS en un sólo producto, se obtiene un Sistema de Prevención de Intrusiones ("Intrusion Prevention Systems") o IPS.
Los Sistemas de Detección de Intrusiones son sistemas de seguridad reactivos, más que proactivos. Es decir, esperan a que tenga lugar un ataque para emitir una alarma. Los IPSs, son dispositivos (de software o hardware) que detienen cualquier ataque antes de que pueda causar daños.
Los IPSs son considerados un caso especial de IDS porque ambos sistemas comparten la misma metodología básica. Como ya se comentó, los IPSs son IDS a los que se le ha añadido la capacidad de un cortafuegos (filtro de tráfico de red). De hecho, muchos expertos los consideran la siguiente generación de IDS.
Por otra parte, el comportamiento de un IPS es similar al de un IDS programado para responder ante ataques de forma activa, como ya se apuntó en el apartado 3.3.2.1 "Respuestas activas". Los sistemas de prevención descartan o bloquean los paquetes sospechosos tan pronto son identificados. Todos los paquetes pertenecientes a una misma sesión sospechosa pueden ser eliminados de la misma forma. Algunos IPSs también contemplan la posibilidad de detectar anomalías en el uso del protocolo, como paquetes manipulados intencionadamente.
Atendiendo a la fuente de datos que utilizan, los IPSs son de dos tipos: basados en máquina (HIPS) y basados en red (NIPS). Los HIPS utilizan agentes instalados directamente en la máquina a proteger, y están muy relacionados con el sistema operativo y sus servicios. Los NIPS, también conocidos como "Gateway IDS" (GIDS), son sistemas que contienen al menos dos interfaces de red (para monitorización interna y externa), e integran tanto características de cortafuegos como de IDS.
A continuación se describirán cinco modelos de IPS: IDS basado en red en modo "in-line", conmutador de nivel siete, cortafuegos basado en aplicación/IDS, conmutador híbrido y aplicación engañosa. [18]
Una de las formas más comunes de implementar un NIDS (IDS basado en red) es utilizando dos dispositivos de red. Uno para interceptar el tráfico de red, y otro para efectuar las labores de gestión y administración, como en la Figura 4‑9.
Figura 4‑9 - NIDS en modo de escucha ("Tap mode")
La interfaz de red utilizada para la monitorización está conectada a un dispositivo de escucha ("network tap") que le permite pinchar el tráfico del segmento de red. Además, esta interfaz no suele tener asignada ninguna dirección IP, para disminuir en lo posible las posibilidades de ser detectado. Esto impide que algún elemento de red le envíe paquetes, o que el NIDS pueda responder a ellos.
En el modo "in-line" (en línea) el NIDS actúa a nivel 2, como un puente. Se sitúa entre la red que se desea proteger y el resto. Cuenta con una interfaz de red para recibir el tráfico del exterior, y otra para transmitirlo a la red a proteger. Además suele tener otra interfaz para las labores de administración y gestión.
Esta situación le permite el control total sobre el tráfico que pasa por su tramo de red. No sólo puede analizar todo el tráfico que recibe, antes de decidir qué hacer, sino que puede gestionar el ancho de banda. La siguiente figura describe este modo de funcionamiento.
Figura 4‑10 - NIDS en modo en línea ("In-line mode")
Uno de los sistemas que desarrollan esta idea es Hogwash; una herramienta que utiliza el motor de detección de Snort para anular los paquetes maliciosos antes de que lleguen a su objetivo [19]. Este IPS, además de contar con las labores de detección y bloqueo normales, tiene la opción de reescribir el tráfico de red. Así, si un atacante envía una petición maliciosa, Hogwash puede modificarla antes de dejarla pasar.
Figura 4‑11 - Procedimiento general de "Hogwash"
Un NIDS instalado en modo "in-line", y con una serie de modificaciones para soportar el tratamiento de tráfico de red, ofrece las posibilidades de un NIDS normal, con la capacidad añadida de un cortafuegos.
La detección de ataques dependen directamente de los métodos utilizados por el NIDS. Desgraciadamente, la mayoría de los productos comerciales existentes están basados en la detección de usos indebidos, por lo que las posibilidades de reconocer nuevos ataques es limitada. Algunos productos intentan solventar esta carencia incorporando funciones de detección de anomalías de protocolo.
Aparte de Hogwash, mencionado antes, otros IPSs similares son "IntruShield", de IntruVert Networks [20], "ISS Guard", de Internet Security Systems[21], "UnityOneTM", de NetScreen Tecnologies[22], o algunos productos de TippingPoint Technologies[23].
Un conmutador ("switch") ha sido tradicionalmente un dispositivo de nivel dos. La creciente necesidad de trabajar con grandes anchos de banda ha hecho que vayan ganando popularidad los conmutadores de nivel siete.
Estos dispositivos se suelen utilizar para balancear la carga de una aplicación entre varios servidores. Para ello, examinan la información de aplicación (por ejemplo HTTP, FTP, DNS, etc.) para tomar decisiones de encaminamiento.
Algunos fabricantes han empezado a añadir capacidades a estos conmutadores, para proporcionar protección ante ataques como DoS (Denegación de Servicio) o DDoS (DoS Distribuida).
Figura 4‑12 - Procedimiento general de un conmutador de nivel siete
Los conmutadores de nivel siete pueden trabajar fácilmente con redes de alta velocidad. Su método de detección de similar al utilizado por los NIDS, comentados anteriormente, por lo que presentan desventajas similares. Admiten la adición de nuevos patrones de ataque, como los NIDS. No obstante, los ataques que mejor reconocen y bloquean, frente a otras soluciones de seguridad, son los basados en DoS.
Otra de las ventajas de estos dispositivos, que no se encuentran en otros IPSs, es que admiten redundancia. Pueden ser implementados en modo "hot standby" (3) (espera en caliente) o en modo de balance de carga (4).
Algunas de las empresas que proporcionan este tipo de productos son Radware [24], Top Layer [25], o Foundry Networks [26].
Los cortafuegos/IDS de aplicación trabajan en el nivel siete del modelo OSI, y se instalan en el sistema a proteger.
Estos IPSs poseen un alto grado de configuración para cada aplicación protegida. No analizan tráfico de red, como otros IPSs, sino elementos tales como la gestión de memoria, llamadas a sistema o intentos de conexión de la aplicación. Este enfoque permite reducir problemas de seguridad asociados a una programación deficiente, así como detectar ataques propios de este nivel como los de desbordamiento de búfer.
Figura 4‑13 - Cortafuegos/IDS de aplicación
Este tipo de sistemas necesitan realizar una fase de creación de perfil de sistema, similar a la fase de entrenamiento acometida por los analizadores de detección de anomalías, descrita en el capítulo anterior. En ella, se procede a registrar la actividad de la aplicación para elaborar un modelo de comportamiento que sirva para detectar posibles intrusiones, junto con una serie de políticas.
Una vez en funcionamiento, si el IPS identifica alguna acción que no haya sido definida durante la creación del perfil, la bloquea por defecto. Este método, aunque cómodo de configurar, presenta evidentes problemas si no se definen todos los comportamientos normales de la aplicación. Por otra parte, si se actualiza la aplicación, es posible que se necesite repetir el proceso de creación de perfil.
No obstante, este modelo de IPS es de los más apropiados para proteger aplicaciones. De los comentados aquí, es el único que monitoriza la actividad y relación de la aplicación con el sistema operativo. Además, están instalados en cada máquina física a proteger, por lo que ofrecen un alto nivel de personalización.
Ejemplos de empresas que producen IPS basados en cortafuegos/IDS de aplicación son OKENA, con su "Storm watch" [27], o Entercept [28].
Este tipo de dispositivos son una combinación de los dos anteriores: los conmutadores de nivel siete y cortafuegos/IDS de aplicación.
Son dispositivos hardware instalados de la misma forma que los conmutadores de nivel siete, pero no utilizan conjuntos de reglas como los NIDS, sino un método de detección basado en políticas similar al de los cortafuegos/IDS de aplicación. Analizan el tráfico de red en busca de información definida en las políticas aplicadas.
Una de las ventajas de estos productos es que se pueden configurar importando los resultados de un analizador de vulnerabilidades, comentado en apartados anteriores, utilizado contra el sistema a proteger. Esto permite implementar de forma rápida y efectiva este tipo de sistemas.
Figura 4‑14 - Procedimiento general de un conmutador híbrido
Un conmutador híbrido tiene conocimientos sobre el servidor que protege (servidor FTP, Web, SMTP etc.), como un conmutador de nivel siete, pero también de las aplicaciones que hay sobre él. Además, al igual que los cortafuegos/IDS de aplicación, también bloquea todas las acciones no definidas como permitidas.
Si este tipo de IPS tiene demasiada carga de trabajo, puede ser utilizado en conjunción con un conmutador de nivel siete, que le redirija sólo aquellas peticiones que considere maliciosas.
Dos empresas que diseñan productos basados en esta tecnología son "F5 Networks" [29] y "KaVaDo, Inc." [30].
El particular enfoque de los IPSs basados en aplicación engañosa ("deceptive application"), comprende dos fases. La primera consiste en la monitorización del tráfico de red para crear un modelo de actividad normal, similar a la fase de creación de perfil de los cortafuegos/IDS de aplicación. Durante la segunda fase, si el IPS observa algún intento de conexión a algún servicio que no existe, devuelve una respuesta falsa hacia el atacante.
Figura 4‑15 - IPS basado en aplicación engañosa ("deceptive application")
La respuesta está marcada por el IPS, de tal manera que cuando el posible atacante decida volver a intentar alguna conexión, el IPS reconocerá su marca y lo bloqueará. Como se puede observar, el ataque es detectado y anulado antes de que ocurra.
También se pueden introducir marcas en el campo de datos de los paquetes, permitiendo la detección de ataques contra servicios que existen.
Uno de los inconvenientes de este sistema es que el intruso identifique el método utilizado por el IPS para marcar los paquetes. Esto le permitiría desmarcar los paquetes antes de ejecutar su ataque, sorteando la protección.
El producto "ActiveScout", de la empresa Forescout es un IPS que utiliza técnicas de aplicación engañosa. [31]
[2] Bace, Rebecca and Peter Mell. Intrusion Detection Systems. [en línea] [consultado en marzo, 2003]. Disponible en <http://csrc.nist.gov/publications/nistpubs/800-31/sp800-31.pdf>.
[3] Cerberus Information Security, Ltd. Cerberus' Internet Scanner - CIS. [en línea] 2000 [consultado en abril, 2003]. Disponible en <http://www.cerberus-infosec.co.uk/cis.shtml>.
[4] Deraison, Renaud. The Nessus Project. [en línea] 1998- 2003 [consultado en abril, 2003]. Disponible en <http://www.nessus.org>.
[5] Venema, Wietse y Dan Farmer. SATAN. [en línea] 1995 [consultado en abril, 2003] Disponible en <http://www.fish.com/satan/>.
[6] Spitzner, Lance. Honeypots: Definition and Value of Honeypots. [en línea] Última modificación, 29 de mayo, 2003 [consultado en junio, 2003]. Disponible en <http://www.spitzner.net/honeypots.html>
[8] Stoll, Clifford. The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage. New York, NY: Doubleday, 1989.
[9] Cheswick, Bill. An Evening with Berferd In Which a Cracker is Lured, Endured and Studied. [en línea] 1991 [consultado en abril, 2003]. Disponible desde Internet en <http://www.securityfocus.com/data/library/berferd.ps>.
[10] Spitzner, Lance. The Value of Honeypots. [en línea] 10 de octubre, 2001 [consultado en abril, 2003]. Disponible en <http://www.securityfocus.com/infocus/1492>
[11] The Honeynet Project. [en línea] abril, 1999 [consultado en abril, 2003]. Disponible en <http://www.honeynet.org>.
[13] VMware, Inc. VMware. [en línea] 1998-2993 [consultado en abril, 2003]. <http://www.vmware.com/>.
[14] Dike, Jeff. User-mode Linux Kernel. [en línea] actualizado con frecuencia [consultado en abril, 2003]. Disponible en <http://user-mode-linux.sourceforge.net/>.
[15] Whitsitt Jr, John y Alberto Gonzalez. The Bait and Switch Honeypot. [en línea] 2002 [consultado en abril, 2003]. Disponible en <http://baitnswitch.sourceforge.net>.
[16] Roesch, Marty et al. Snort.org. [en línea]. Actualizado semanalmente [consultado en marzo de 2003]. Disponible en <http://www.snort.org>.
[18] Desai, Neil. Intrusion Prevention Systems: the Next Step in the Evolution of IDS. [en línea] 27 de febrero, 2003 [consultado en abril, 2003]. Disponible en <http://www.securityfocus.com/infocus/1670>
[19] Larsen, Jason. Hogwash. [en línea] junio, 2001 [consultado en abril, 2003]. Disponible en <http://hogwash.sourceforge.net/>.
[20] IntruVert. IntruShield. [en línea] 2002 [consultado en abril, 2003]. Disponible en <http://www.intruvert.com/products/index.htm>.
[21] Internet Security Systems. ISS Guard. [en línea] 1994 [consultado en abril, 2003]. Disponible en <http://www.iss.net/products_services/enterprise_protection/rsnetwork/guard.php>.
[22] NetScreen Technologies, Inc. [en línea] 1998 [consultado en abril, 2003]. Disponible en <http://www.netscreen.com/products/idp/>.
[23] TippingPoint Technologies. UnityOne™. [en línea] 1998 [consultado en abril, 2003]. Disponible en <http://www.tippingpoint.com/products/index.html>.
[24] Radware. [en línea] 1997 [consultado en abril, 2003]. Disponible en <http://www.radware.com/>
[25] Top Layer. [en línea] 1997 [consultado en abril, 2003]. Disponible en <http://www.toplayer.com/>.
[26] Foundry Networks. [en línea] 1999 [consultado en abril, 2003]. Disponible en <http://www.foundrynet.com/>.
[27] OKENA. Storm watch. [en línea] 1999 [consultado en abril, 2003]. Disponible en <http://www.okena.com/>.
[28] Entercept. Entercept. [en línea] 2003 [consultado en abril, 2003]. Disponible en <http://www.entercept.com/>.
[29] F5 Networks. Sanctum Appshield. [en línea] 2003 [consultado en abril, 2003]. Disponible en <http://www.f5.com/solutions/applications/Firewalls/sanctum_sb.html>.
[30] KaVaDo, Inc. InterDo [en línea] 2001[consultado en abril, 2003]. Disponible en <http://www.kavado.com/>.
[31] Forescout. ActiveScout. [en línea] abril, 2000 [consultado en abril, 2003]. Disponible en <http://www.forescout.com/>.
(1) iproute2 es una herramienta que permite el manejo de interfaces de red bajo Linux.
(2) netfilter/iptables es un subsistema de cortafuegos para Linux que permite trabajar con tráfico de red, filtrando paquetes o realizando funciones de NAT (Traducción de Direcciones de Red). Está disponible en <http://www.netfilter.org/>.
(3) Un dispositivo secundario es configurado para que se active en caso de que el primario falle.
(4) Distribución de tráfico entre dos o más dispositivos, utilizando preferencias descritas por políticas particulares.
Siguiente: Capacidades y limitaciones Arriba: Sistemas de Detección de Intrusiones Previo: Modelo de funcionamiento
Sistemas de
Detección de Intrusiones, versión 1.01. Julio,
2003.
Diego González Gómez