• No se han encontrado resultados

UNIVERSIDAD DE CUENCA

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDAD DE CUENCA"

Copied!
194
0
0

Texto completo

(1)

UNIVERSIDAD DE CUENCA

FACULTAD DE INGENIERIA

ESCUELA DE INFORMATICA

“DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE

DETECCIÓN DE INTRUSIONES PARA LA UNIVERSIDAD

DE CUENCA”

TESIS PREVIA A LA OBTENCION DEL

TITULO DE INGENIERO DE SISTEMAS

DIRECTOR:

Ing. Otto Parra González

AUTOR:

Pablo Vladimir Astudillo Aguilar

Cuenca – Ecuador

2005

(2)

AGRADECIMIENTO

A mis padres, sin su apoyo incondicional esto aún sería solo un sueño.

Al Ing. Otto Parra González, por el soporte y la confianza depositada en mí para la terminación de la presente tesis.

A Jessica, Pablo, Freddy, Camila, Karol, Elina, Iván, Cristóbal, Mauricio, compañeros de lucha que hicieron que el camino, aunque difícil, fuera más corto y agradable. Gracias por arrastrarme a la universidad cuando abandonarlo todo y dormir parecía la mejor idea. Gracias por el café, el sofá, los cumpleaños con vela y pan… y, sobre todo, gracias por su compañía.

(3)

DEDICATORIA

Al esfuerzo que requirió llegar hasta aquí.

“es hora de volver a mi, a contar… las cosas que me hacían bien, de verdad, es hora de volver a mi, a cantar… yo necesito ver el sol, de verdad.”

(4)

La presente tesis consiste en el diseño y construcción de un NIDS (Sistema de Detección de Intrusiones basado en Red), para la Red Académica Integral de la Universidad de Cuenca, que complemente la labor de los elementos de seguridad implementados tales como Firewalls, Intranet, Control de Acceso, etc.

El NIDS desarrollado utiliza el algoritmo de comparación de patrones, el cual detecta ataques capturando y analizando paquetes de red en busca de firmas de intrusión en sus cabeceras y datos. Una firma de intrusión consiste en un grupo de valores determinados en los campos de cabecera de los paquetes que caracterizan y diferencian a un ataque del tráfico legítimo.

(5)

PARTE I: MARCO TEORICO...10

CAPITULO 1. ...11

Introducción a los Sistemas de Detección de Intrusiones ...11

1.1 ¿Qué es un Sistema de Detección de Intrusiones?...12

1.2 ¿Por qué utilizar un IDS? ...13

1.3 Definiciones ...15

1.3.1 Seguridad, dos puntos de vista ...15

1.3.2 Confianza ...16 1.3.3 Vulnerabilidad ...16 1.3.4 Amenaza ...17 1.3.5 Políticas de seguridad...17 1.3.6 Intruso ...17 1.3.7 Alarmas o Alertas...18

1.3.8 Falsos positivos y falsos negativos...19

1.4 Motivos que originan problemas de seguridad ...19

1.4.1 Diseño o desarrollo ...19

1.4.2 Gestión...20

1.4.3 Confianza ...20

1.5 Elementos de la detección de intrusiones: Arquitectura de los IDS ...21

1.5.1 CIDF (Common Intrusion Detection Framework) ...21

1.5.2 Autopost de AusCERT...23

1.5.3 Arquitectura de IDWG (Intrusion Detection Working Group)...23

1.6 Clasificación de los IDS ...24

1.6.1 IDS basados en host (HIDS) ...25

1.6.2 IDS basados en red (NIDS) ...26

1.6.2.1 Topologías de los NIDS ...27

1.7 Un modelo de funcionamiento...31

1.7.1 Fuentes de información basadas en máquina...32

1.7.1.1 Registros de auditoría ...32

1.7.1.2 Registro de Sistema ...33

(6)

1.7.2.2 Captura de paquetes en sistemas Windows...36

1.7.2.3 Captura de paquetes en sistemas UNIX...36

1.8 Limitaciones de los IDS ...37

CAPITULO 2. Análisis y Diagnóstico ...40

2.1 Detección de usos indebidos...40

2.1.1 Comparación de patrones...41

2.1.1.1 Fortalezas y Debilidades...41

2.1.1.2 Comparación simple de patrones ...43

2.1.1.3 Comparación de Patrones en contexto de Conexiones ...45

2.1.2 Análisis de Protocolos...46

2.1.3 El ambiente del IDS ...48

2.1.4 El Futuro: Un modelo complementario ...49

2.2 Estudio de las Firmas de los Ataques más conocidos...49

2.2.1 Escaneo de Puertos...52

2.2.1.1 Escaneos abiertos...53

2.2.1.2 Escaneos medio-abiertos...56

2.2.1.3 Escaneos silenciosos ...59

2.2.2 IP Spoofing...65

2.2.2.1 Sustento técnico del IP Spoofing ...66

2.2.2.2 Consecuencias del diseño TCP/IP...68

2.2.2.3 Ataques spoofing...69

2.2.2.4 Defensa contra el Spoofing...71

2.2.3 Denegación de Servicios ...74

2.2.3.1 Smurf o Broadcast storm ...74

2.2.3.2 Fraggle ...75 2.2.3.3 TCP Syn Flood ...76 2.2.3.4 Land...78 2.2.3.5 Winnuke o Supernuke ...79 2.2.3.6 Fragmentos IP ...80 2.2.3.7 Snork ...80 2.2.3.8 Chargen y Chargen-Echo ...81

(7)

2.2.4.3 Stacheldraht ...85

2.3 Detección de anomalías ...85

2.3.1 Detección de anomalías basada en Estadística...86

2.3.2 Detección de anomalías basada en Especificaciones ...88

2.3.3 Fortalezas y Debilidades de la Detección de Anomalías ...89

2.3.4 Estado actual de la Detección de Anomalías ...90

2.4 Métodos alternativos ...91

2.4.1 Sistemas Expertos ...91

2.4.2 Análisis basado en Heurística ...91

Capítulo 3. Respuestas Activas ...93

3.1 Tipos de Respuesta Activas ...93

3.1.1 Cierre de sesión ...94

3.1.2 Actualizaciones de Firewall ...95

3.2 Observaciones sobre las Respuestas Activas ...96

3.3 Adopción de Políticas de Respuestas Activas ...97

3.3.1 Cronometraje ...98

3.3.2 Denegación de Servicios autoprovocada ...98

PARTE II: ANALISIS, DISEÑO, IMPLEMENTACIÓN Y PRUEBAS DEL NIDS ...100

Capítulo 4. Análisis de la Red de la Universidad de Cuenca ...101

4.1 Características generales... 101

4.2 Descripción de los Servidores ... 101

4.3 Diagrama de la DMZ de la Universidad de Cuenca... 102

Capítulo 5. Requerimientos y Casos de Uso...103

5.1 Presentación general... 103

5.2 Cliente... 103

5.3 Metas ... 103

5.4 Requisitos funcionales (Funciones del sistema) ... 104

5.5 Requisitos no funcionales (Atributos del sistema) ... 105

5.6 Actores del Sistema... 106

5.7 Casos de uso... 106

5.8 Clasificación de los Casos de Uso ... 115

(8)

6.2 Diagramas de Secuencia ... 121

6.3 Contratos ... 127

Capítulo 7. Diseño del NIDS ...132

7.1 Diagramas de Colaboración ... 132

7.2 Diagrama de Clases ... 135

7.2.1 Descripción de las Clases del diseño ... 138

7.3 Diagrama de Base de Datos ... 144

7.3.1 Descripción de las Tablas de la Base de Datos ... 147

7.4 Funcionamiento en tiempo real ... 148

7.5 Ambiente gráfico de la herramienta ... 148

7.6 Configuración de respuestas automáticas ... 149

7.7 Asistente para responder a ataques ... 149

7.8 Diagnóstico de vulnerabilidades después de un ataque... 149

Capítulo 8. Implementación y Pruebas ...150

8.1 Plataforma ... 150 8.2 Base de Datos ... 150 8.3 Lenguaje de Programación ... 150 8.4 Interfaz Gráfica ... 150 8.5 Herramienta de desarrollo ... 151 8.6 Multihilo... 151 8.7 Pruebas ... 152

8.7.1 Pruebas de Escaneos de Puertos (nmap)... 152

8.7.2 Saturación de conexiones (syn flooder) ... 152

8.7.3 Direcciones IP y Puertos reflexivos (hping2)... 153

8.7.4 Cadenas sospechosas en payload (nemesis)... 154

PARTE III: CONCLUSIONES, RECOMENDACIONES, BIBLIOGRAFIA Y ANEXOS ... 155

CONCLUSIONES ...156

RECOMENDACIONES ...157

BIBLIOGRAFIA ...158

ANEXOS ...161

(9)

Anexo 4. Manual de Operación y Administración ... 173 Anexo 5. Denuncia de Tesis... 185

(10)

PARTE I:

MARCO TEORICO

(11)

CAPITULO 1.

Introducción a los Sistemas de Detección de Intrusiones

Cuando una organización conecta su red al Internet, esta se vuelve vulnerable a un gran número de amenazas relacionadas con la seguridad. La cantidad de bugs y agujeros de seguridad aumentan en proporción directa al crecimiento de la red. Tarde o temprano, estos escaparán al control del administrador más disciplinado.

Las organizaciones están reconociendo el valor de una buena política de seguridad que defina lo que es y no permitido en términos del uso de la red y acceso desde el Internet. Para esto, emplean un grupo de herramientas que implementan estas políticas, usualmente en la forma de uno o varios firewalls.

Antes de iniciar la compleja tarea de configurar el firewall, el administrador necesita un conocimiento detallado de lo que puede hacer un hacker, y de lo que debería o no debería dejar pasar el firewall. Basta con un pequeño error en esta configuración para abrir enormes agujeros de seguridad. El mensaje es claro: un firewall mal configurado puede ser peor que no tenerlo, debido a que este dará un falso sentido de seguridad.

Por lo tanto, para brindar una protección más efectiva a las organizaciones, es necesario auditar la red constantemente. A fin de lograr esto, una nueva categoría de software ha tomado fuerza en los últimos años: los Sistemas de Detección de Intrusiones (IDS).

Utilizando una analogía con la seguridad del hogar, se puede optar por instalar cerraduras de buena calidad en las puertas y ventanas. Esto ayuda a mantener fuera a los intrusos, y es el equivalente al firewall de la red, esto se conoce como

defensa perimetral. Sin embargo, frecuentemente se encuentran formas de evadir estas medidas. Por ejemplo, un intruso puede vulnerar la ventana trasera de la casa, o ingresar directamente por la puerta cuando alguien olvido asegurarla.

(12)

Una vez que el intruso accede al interior, es libre de hacer lo que se le antoje, desde robar o destrozar objetos, hasta obtener copias de las llaves para romper las seguridades nuevamente sin mayor esfuerzo. De cualquier manera, no es buena idea enterarse del atraco al regresar a casa y ver el desastre. Es por esto que en muchos hogares se instala también una alarma contra robos, de manera que si el intruso supera la defensa perimetral, esta alarma alertará al dueño o a los vecinos para que intervengan y eviten que el robo se consume.

Los IDS son el equivalente a las alarmas contra robos. Deben ser usados en combinación con los firewalls. No se puede tener un sistema 100% seguro. Sin embargo, si alguien lo suficientemente listo rompe la defensa perimetral, el administrador debe saberlo lo antes posible.

El uso de los IDS ha crecido en importancia debido a la expansión de las compañías que basan sus actividades en el Internet. En los años 80’s y principios de los 90’s, los ataques de denegación de servicios (Denial of Service) no eran frecuentes y eran considerados problemas leves. En la actualidad, los ataque DoS exitosos dejan fuera de servicio organizaciones enteras basadas en el comercio electrónico. 1

1.1 ¿Qué es un Sistema de Detección de Intrusiones?

“Un Sistema de Detección de Intrusiones o IDS (Intrusion Detection System) es una herramienta de seguridad encargada de monitorizar los eventos que ocurren en un sistema informático en busca de intentos de intrusión.

1 The NSS Group. Intrusion Detection Systems, Group Test [en línea]. Edición 3. Cambridgeshire,

Inglaterra. The NSS Group. Diciembre 2000, revisado en Junio 2002. Introduction. Pagina 1. Disponible en: www.scd.ucar.edu/

(13)

Se define intento de intrusión como cualquier intento de comprometer la confidencialidad, integridad, disponibilidad o evitar los mecanismos de seguridad de una computadora o red.” 2

Su tarea principal es buscar patrones previamente definidos que impliquen cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o host. Aumentan la seguridad de un sistema, vigilan el tráfico de red, examinan los paquetes analizándolos en busca de datos sospechosos y detectan las primeras fases de cualquier ataque, como por ejemplo: un barrido de puertos. 3

Dado que la mayoría de las veces no se puede detener un ataque, estos sistemas no deberían ser tenidos en cuenta como una alternativa a las buenas medidas tradicionales de seguridad. No existen sustitutos para una política de seguridad empresarial cuidadosamente pensada, respaldada por procedimientos eficaces que sean ejecutados por personal calificado, utilizando las herramientas adecuadas. Los IDS deberían visualizarse como una herramienta adicional en la batalla continua contra hackers y crackers.

1.2 ¿Por qué utilizar un IDS?

La detección de intrusiones permite a las organizaciones proteger sus sistemas de las amenazas que aparecen al incrementar la conectividad en red, y la dependencia que se tiene hacia los sistemas de información.

2 MIRA, Emilio. Implantación de un Sistema de Detección de intrusos en la Universidad de Valencia

[en línea]. Edición 1. Valencia, España. Capítulo 1. Introducción a los Sistemas de Detección de Intrusos. Página 13. Disponible en: www.rediris.es/cert/doc/pdf/ids-uv.pdf

3 MIRA, Alfonso. Sistemas de Detección de intrusos y Snort. Maestros del Web [en línea]. Edición 1.

(14)

Los IDS han ganado aceptación como una pieza fundamental en la infraestructura de seguridad de la organización. Hay varias razones para adquirir y usar un IDS:

Prevenir problemas al disuadir a individuos hostiles. Al incrementar la

posibilidad de descubrir y castigar a los intrusos, el comportamiento de algunos cambiará de forma que muchos ataques no llegarán a producirse.

Detectar ataques y otras violaciones de la seguridad que no son

prevenidas por otras medidas de protección. Los intrusos, usando técnicas

ampliamente conocidas, pueden conseguir accesos no autorizados a muchos sistemas conectados a redes públicas. Esto ocurre cuando vulnerabilidades conocidas no son corregidas. Aunque los vendedores y administradores procuran dar a conocer y corregir estas vulnerabilidades, hay situaciones en las que esto no es posible:

o En algunos sistemas heredados, los sistemas operativos no pueden ser parcheados o actualizados.

o Incluso en los sistemas en los que se puede aplicar parches, los administradores a veces no tienen el suficiente tiempo y recursos para seguir e instalar las últimas actualizaciones necesarias, sobre todo en entornos que incluyen un gran número de computadores con sistemas operativos y hardware variado.

o Los usuarios y administradores pueden equivocarse al configurar sus sistemas.

o Un IDS puede detectar cuando un atacante ha intentado penetrar en un sistema explotando un fallo no corregido. De esta forma, el administrador podría ser advertido de respaldar la información del sistema inmediatamente, evitando así que se pierda información valiosa.

Detectar preámbulos de ataques (normalmente pruebas de red y otras

actividades). Cuando un intruso ataca un sistema, lo hace típicamente en

fases predecibles. En la primera fase, este realiza pruebas y examina el sistema o red en busca de un punto de entrada óptimo. En sistemas o redes que no disponen de un IDS, el intruso es libre de examinar el sistema con un

(15)

riesgo mínimo de ser detectado. Esto le facilita la búsqueda de puntos débiles en la red.

La misma red, con un IDS monitorizando sus operaciones, le presenta una mayor dificultad. Aunque el intruso puede examinar la red, el IDS observará estas pruebas, las identificará como sospechosas, podrá activamente bloquear el acceso del atacante al sistema objetivo y avisará al personal de seguridad de lo ocurrido para que tome las acciones pertinentes.

Documentar el riesgo de la organización. Cuando se hace un plan para la

gestión de seguridad de la red o se desea redactar la política de seguridad de la organización, es necesario conocer cual es el riesgo de esta ante posibles amenazas, la probabilidad de ser atacada, o, si incluso ya está siendo atacada. Un IDS ayuda a conocer la amenaza existente, fuera y dentro de la organización, brindando soporte en la toma de decisiones acerca de los recursos de seguridad que se deben emplear, y del grado de cautela que se debe adoptar al redactar la política de seguridad.

Proveer información útil sobre las intrusiones que se producen. Incluso

cuando los IDS no son capaces de bloquear ataques, pueden recoger información relevante sobre éstos. Esta información puede ser usada para corregir fallos en la configuración de seguridad de los equipos o en la política de seguridad de la organización.

1.3 Definiciones

Antes de hacer que un sistema o red sea seguro, primero es necesario definir lo que se entiende por términos como seguridad, confianza, vulnerabilidad, etc.

1.3.1 Seguridad, dos puntos de vista

La seguridad se puede entender desde dos puntos de vista; el práctico y el formal. Desde una perspectiva práctica, un sistema seguro es "aquel con que se cuenta que actúe de la manera esperada". Este punto de vista tiene unas explícitas implicaciones de confianza. Pero la confianza no se puede medir. No es posible

(16)

confiar en que un sistema se comporte como debe. Nadie puede asegurar que un sistema se está comportando como realmente tiene que hacerlo.

Según el enfoque formal, más preciso, la seguridad se define a través de una "tríada de conceptos": confidencialidad, integridad y disponibilidad.

La confidencialidad implica que la información sea accedida exclusivamente por el

personal autorizado a la misma.

La integridad consiste en la necesidad de mantener la información inalterada.

La disponibilidad se refiere a la necesidad de ofrecer un servicio

ininterrumpidamente, de forma que pueda ser accedido en cualquier momento y desde cualquier lugar, evitando en lo posible que algún tipo de incidencia detenga el mismo.

1.3.2 Confianza

La confianza es la esperanza que se tiene de que un sistema se comporte como realmente debería. Establecer relaciones de confianza sin garantías conlleva la aparición de vulnerabilidades, que se convierten en potenciales amenazas.

1.3.3 Vulnerabilidad

Las vulnerabilidades son deficiencias o agujeros de seguridad del sistema que pueden ser utilizadas para violar las políticas de seguridad. Estas pueden deberse a problemas en el diseño de una aplicación, bien de software o de hardware, o también a un plan poco exhaustivo o insuficiente de políticas de sistema.

(17)

1.3.4 Amenaza

Las amenazas son el resultado de explotar las vulnerabilidades. Una amenaza es una situación que tiene la capacidad de perjudicar o dañar al sistema.

1.3.5 Políticas de seguridad

Las políticas de seguridad son el resultado de documentar las expectativas de seguridad. El concepto de seguridad, como se explicó antes, está relacionado con el comportamiento esperado de un sistema. Se puede afirmar que las políticas de seguridad intentan plasmar de alguna manera en el mundo real, los conceptos abstractos de seguridad.4

1.3.6 Intruso

Se llama intruso o atacante a la persona que accede (o intenta acceder) sin autorización a un sistema ajeno, ya sea en forma intencional o no.

Los tipos de intrusos se pueden caracterizar desde el punto de vista del nivel de conocimiento, formando una pirámide:

1. Clase A: el 80% en la base son los nuevos intrusos que bajan programas de

Internet y juegan a probar lo que sucede.

2. Clase B: es el 12%, son más peligrosos. Saben compilar programas aunque

no saben programar. Prueban programas, saben como detectar el sistema operativo que está usando la víctima, prueban las vulnerabilidades del mismo e ingresan por ellas.

3. Clase C: es el 5%. Son personas que saben, que conocen y definen sus

objetivos. A partir de aquí buscan todos los accesos remotos e intentan ingresar.

4 GONZALEZ, Diego. Sistemas de Detección de Intrusiones [en línea]. Edición 1.01. Julio 2003,

revisado en julio del 2003 para correcciones tipográficas. Capítulo 2. Términos de Seguridad. Página 13. Disponible en: www.derecho-internet.org/docs/ids.pdf

(18)

4. Clase D: es el 3% restante. Cuando entran a determinados sistemas buscan la información que necesitan.

Para llegar desde la base hasta el último nivel se tarda de 4 a 6 años, por el nivel de conocimiento que se requiere asimilar.5

Figura 1 - 1. Tipos de Intrusos

1.3.7 Alarmas o Alertas

Una alarma es una advertencia emitida por el IDS hacia el administrador del sistema cuando detecta una actividad sospechosa. Los IDS envían alertas hacia una consola local o remota en una variedad de formas como: logs del sistema, archivos planos, emails, ventanas emergentes e incluso mensajes de texto a teléfonos celulares.6

5 BORGHELLO, Cristian. Seguridad Informática, sus Implicancias e Implementación [en línea].

Edición 1. Septiembre 2001. Capítulo 1, De quién debemos protegernos. Página 9. Disponible en: http://cfbsoft.iespana.es/cfbsoft/

6 CUFF, Andy. Intrusion Detection Terminology (Part One) [en línea]. SecurityFocus. Ultima

(19)

1.3.8 Falsos positivos y falsos negativos

Los falsos positivos son alarmas generadas por un IDS en las que se alerta sobre eventos que son en realidad benignos. En otras palabras, son falsas alarmas.

Lo opuesto son los falsos negativos, que se dan cuando el IDS falla al identificar una actividad como intrusión cuando en efecto lo era. 7

La clave para cualquier IDS es maximizar las alertas correctas (verdaderos positivos) y, al mismo tiempo, minimizar la ocurrencia de falsos positivos.8

1.4 Motivos que originan problemas de seguridad

Los problemas de seguridad pueden deberse a una enorme variedad de razones. No obstante, las causas de la mayoría de los problemas de seguridad se divide en tres categorías: diseño/desarrollo, gestión, y confianza.

1.4.1 Diseño o desarrollo

Los problemas originados por un diseño o desarrollo ineficaces afectan tanto al software como al hardware. Un ejemplo de esto ocurre cuando un usuario malicioso substituye un valor en un programa en el intervalo de tiempo en que este no lo está usando. Este fallo se denomina condición de carrera ("race condition"), y tiene lugar cuando aparece un intervalo entre el momento de creación de un valor y el de su chequeo. Otro ejemplo es el que consiste en desbordar el "buffer" de entrada de una determinada aplicación, pasándole como argumentos unos parámetros

7 RANUM, Marcus. False Positives: A User’s Guide to Making Sense of IDS Alarms [en línea]. Edición

1. Febrero 2003. Definitions. Página 4. Disponible en: www.icsalabs.com/html/communities/ ids/whitepaper/FalsePositives.pdf

8 FARSHCHI, Jamil. Intrusion Detection In Depth [en línea]. Edición 3.0. Assignment 1. Describe the

(20)

intencionadamente largos, provocando la caída del programa y consiguiendo entrar al sistema.

Muchos de estos problemas se pueden prevenir mediante una sólida formación en mecanismos de diseño y desarrollo seguro, y sometiendo a los productos a duros controles de calidad.

1.4.2 Gestión

En este grupo entran los problemas debidos a una incorrecta configuración del sistema o de cualquier mecanismo encargado de protegerlo. Son de índole diversa, como por ejemplo una inadecuada aplicación de los permisos de los archivos de sistema o una plantilla de seguridad demasiado permisiva. También entrarían aquí situaciones en la que bien los administradores o los usuarios sortean los mecanismos de seguridad de alguna manera. Por ejemplo, cuando en una red local, protegida mediante un firewall, alguien decide utilizar un módem para establecer una conexión con el exterior. Esta conexión está burlando los controles establecidos por el administrador.

1.4.3 Confianza

Los problemas más agudos son los relacionados con la confianza. Y muchas veces ocurren por no diferenciar entre el entorno de desarrollo y el de producción. Como ejemplo está el sistema operativo UNIX. Durante sus comienzos, fue desarrollado en un entorno universitario. Con el paso del tiempo, sin embargo, surgieron expectativas comerciales para este sistema. Ya no iba a ser utilizado exclusivamente por programadores o ingenieros de sistemas. Al principio los diseñadores confiaban en que los usuarios utilizaran el sistema según las especificaciones, en un determinado entorno bajo unas características especiales. Los usuarios confiaban

(21)

en que hubiera un administrador controlando el sistema de forma fiable y competente. Este escenario sigue teniendo lugar, provocando fallos de seguridad.9

1.5 Elementos de la detección de intrusiones: Arquitectura de

los IDS

Existen varias propuestas sobra la arquitectura de los IDS pero ninguna de ellas se usa mayoritariamente. Esto provoca que los productos de los fabricantes que trabajan con distinta arquitectura tengan serias dificultades para interoperar entre sí. Para que estos productos funcionen juntos debe aplicarse un estándar. Los estándares originales fueron el formato “autopost de AusCERT” y CIDF. En estos momentos, los esfuerzos de estandarización actuales parecen ser IDWG y CVE y posiblemente algunos productos comerciales.

1.5.1 CIDF (Common Intrusion Detection Framework)

El Marco de Detección de Intrusiones Común fue un primer intento de estandarización de la arquitectura de un IDS. No logró su aceptación como estándar, pero estableció un modelo y un vocabulario para discutir sobre las intrusiones. Mucha gente que trabajó en el proyecto original está fuertemente involucrada en los esfuerzos del Grupo de Trabajo de Detección de Intrusiones (Intrusion Detección Working Group, IDWG) del Internet Engineering Task Force (IETF).

Los cuatro tipos básicos de equipos que contempla el CIDF son los siguientes:

1. Equipos E, o generadores de eventos, son los sensores. Su trabajo es

detectar eventos y lanzar informes.

2. Equipos A, reciben informes y realizan análisis. Pueden ofrecer una

prescripción y un curso de acción recomendado.

9 GONZALEZ, Diego. Sistemas de Detección de Intrusiones [en línea]. Edición 1.01. Julio 2003,

revisado en julio del 2003 para correcciones tipográficas. Capítulo 2. Motivos que originan problemas de seguridad. Página 17. Disponible en: www.derecho-internet.org/docs/ids.pdf

(22)

3. Equipos D, son componentes de bases de datos. Pueden determinar si se ha visto antes una dirección IP o un ataque por medio de correlación y pueden realizar análisis de pistas.

4. Equipos R, o equipos de respuesta, pueden tomar el resultado de los

equipos E, A y D y responder a los eventos.

Figura 1 - 2. Diagrama de Bloques de la Arquitectura CIDF

Estos componentes necesitan un lenguaje para comunicarse, aparece entonces CISL (Common Intrusion Specification Language). Este Lenguaje de Especificación de Intrusiones Común se creó con el objetivo de unir los cuatro tipos de equipos de CIDF. Los diseñadores de CISL pensaron que este lenguaje debería ser capaz, al menos, de transmitir los siguientes tipos de información:

Información de eventos en bruto. Auditoría de registros y tráfico de red.

Sería el encargado de unir equipos E con equipos A.

Resultados de los análisis. Descripciones de las anomalías del sistema y de

(23)

Prescripciones de respuestas. Detener determinadas actividades o modificar parámetros de seguridad de componentes. Encargado de la unión entre equipos A y R.

CISL es un lenguaje bastante complicado, de sintaxis parecida a LISP, que no llegó a cuajar en la comunidad de seguridad.

1.5.2 Autopost de AusCERT

A diferencia de CIDF/CISL, el CERT australiano (AusCERT) desarrolló un sistema de trabajo sencillo que permitía que se analizara y se agregara un informe en una base de datos con tan solo un par de líneas de Perl.

Este sistema tiene una alta interoperabilidad y es muy sencillo de construir y analizar. El problema es que los analistas a menudo necesitan un gran nivel de detalle (una fidelidad alta) acerca del evento, por ejemplo, para análisis forense, y en este modelo toda esa información se perdería. La solución de interoperabilidad que parece ser la elegida es IDWG; según progresa el trabajo, la fidelidad de los datos es el indicador a vigilar más importante.

1.5.3 Arquitectura de IDWG (Intrusion Detection Working Group)

El IETF rechazó el enfoque de CIDF debido a su complejidad, y creó un grupo de trabajo llamado IDWG (Intrusion Detection Working Group) que tenía como objetivo el de definir formatos y procedimientos de intercambio de información entre los diversos subsistemas del IDS.

Los resultados de este grupo de trabajo serán:

1. Documentos que describan los requerimientos funcionales de alto nivel para la comunicación entre sistemas de detección de intrusiones, y entre estos y sus sistemas de gestión.

(24)

3. Un marco de trabajo que identifique los mejores protocolos que se pueden usar para la comunicación entre los IDS y que defina como se mapean en éstos lo formatos de datos. 10

Figura 1 - 3. Descripción de un Sistema de Detección de Intrusiones del IDWG

1.6 Clasificación de los IDS

Generalmente existen dos grandes enfoques a la hora de clasificar a los sistemas de detección de intrusiones: o bien en función de qué sistemas vigilan, o bien en función de cómo lo hacen.

Si se elige la primera de estas aproximaciones, se tienen dos grupos de IDS:

Basados en Host: analizan actividades de una única máquina, revisando los

eventos generados por los sistemas operativos o software de aplicación, en busca de posibles ataques.

10 MIRA, Emilio. Implantación de un Sistema de Detección de intrusos en la Universidad de Valencia

[en línea]. Edición 1. Valencia, España. Capítulo 1. Arquitectura de los IDS. Página 15. Disponible en: www.rediris.es/cert/doc/pdf/ids-uv.pdf

(25)

Basados en Red: analizan paquetes de red, capturados del backbone o de segmentos LAN, en busca de señales de intrusión.

1.6.1 IDS basados en host (HIDS)

Operan sobre la información recogida desde dentro de un computador, como podrían ser los ficheros de auditoría del sistema operativo. Esto permite que el IDS analice las actividades que se producen con una gran precisión, determinando exactamente qué procesos y usuarios están involucrados en un ataque particular dentro del sistema operativo.

Los HIDS pueden ver el resultado de un intento de ataque, al igual que pueden acceder directamente y monitorizar los ficheros de datos y procesos del sistema atacado.

Ventajas:

• Al tener la capacidad de monitorizar eventos locales a un host, pueden detectar ataques que no pueden ser vistos por un IDS basado en red.

• Pueden operar en un entorno en el cual el tráfico de red viaja cifrado, ya que la fuente de información es analizada antes de que los datos sean cifrados en el host origen y/o después de que los datos sea descifrados en el host destino.

• Herramienta potente, registra comandos utilizados, ficheros abiertos, etc. • Tienden a tener menor número de falsos positivos que los IDS basados en

red, así como menor riesgo en las respuestas activas.

Desventajas:

• Son costosos de administrar, ya que deben ser gestionados y configurados en cada host monitorizado.

• Si la estación de análisis se encuentra dentro del host monitorizado, el IDS puede ser deshabilitado si un ataque logra tener éxito sobre la máquina. • Pueden ser deshabilitados por ciertos ataques de DoS.

(26)

• Usan recursos del host que están monitorizando, influyendo en el rendimiento del sistema monitorizado.

• Tienden a confiar en las capacidades de auditoria y logging de la máquina en sí.11

1.6.2 IDS basados en red (NIDS)

Los NIDS detectan ataques capturando y analizando paquetes de la red. Escuchando en un segmento, un NIDS puede monitorizar el tráfico que afecta a múltiples hosts que están conectados a ese segmento de red, protegiendo así a estos hosts.

Son capaces de comprender todas las diferentes banderas y opciones que pueden coexistir dentro de un paquete de red. Por lo tanto, un NIDS puede detectar paquetes armados maliciosamente y diseñados para no ser detectados por las reglas de filtrado de los firewalls. Habitualmente, los hackers arman ese tráfico para componer un mapa de la red, como una forma de reconocimiento pre-ataque.

Los NIDS son capaces de identificar el programa al que se están enviando paquetes en el servidor, y las opciones que se están utilizando, produciendo alertas cuando un atacante intenta explotar alguna falla de esa codificación. La mayoría de las barreras de firewall no pueden hacer esta tarea.

Ventajas:

• Cuando está bien localizado, puede monitorizar una red grande.

• Tienen un impacto pequeño en la red, siendo normalmente dispositivos pasivos que no interfieren en las operaciones habituales de ésta.

• Se pueden configurar para que sean muy seguros ante ataques, haciéndolos invisibles al resto de la red.

11 VILLALON, Antonio. Seguridad en Unix y Redes [en línea]. Edición 2.1. España. Julio 2002.

Capítulo 18. Sistemas de detección de intrusos. IDSes basados en máquina. Página 314. Disponible en: es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/

(27)

Desventajas:

• Pueden tener dificultades procesando todos los paquetes en redes con mucho tráfico y pueden fallar en reconocer ataques lanzados durante periodos de tráfico alto.

• No analizan la información cifrada. Este problema se incrementa cuando la organización utiliza cifrado en el propio nivel de red (IPSec) entre hosts.

• Los IDS basados en red no saben si el ataque tuvo o no éxito, lo único que pueden saber es que el ataque fue lanzado. Esto significa que después de que un NIDS detecte un ataque, los administradores deben manualmente investigar cada host atacado para determinar si el intento de penetración tuvo éxito o no.

• Algunos NIDS tienen problemas al tratar con ataques basados en red que viajan en paquetes fragmentados. Estos paquetes hacen que el NIDS no detecte dicho ataque o que se vuelva inestable.

• Su implementación de la pila de protocolos de red puede diferir a la pila de los sistemas a los que protege. Muchos sistemas servidores y de escritorio actuales no cumplen en ciertos aspectos los estándares TCP/IP, pudiendo descartar paquetes que el NIDS ha aceptado. Esta inconsistencia de información entre el NIDS y el sistema protegido es la base para las técnicas de ocultación de ataques.

1.6.2.1 Topologías de los NIDS

La decisión de donde ubicar el NIDS es primaria y determinante. De esta decisión dependerá tanto el equipo que se utilice, como el software NIDS y la base de datos.

Existen principalmente tres zonas en las que se puede colocar un NIDS, tal y como muestra la Figura 1 - 4:

(28)

Figura 1 - 4. Zonas de un NIDS dentro de una organización

Las características que presenta cada una de estas zonas son:

Zona roja: Esta es una zona de alto riesgo. El NIDS debe ser configurado

para ser poco sensible, puesto que verá todo el tráfico que entre o salga de la red, y habrá más posibilidad de falsos positivos.

Zona verde: El NIDS debería ser configurado para tener una sensibilidad un

poco mayor que en la zona roja, puesto que ahora, el firewall deberá ser capaz de filtrar algunos accesos definidos mediante la política de nuestra organización. En esta zona aparecen un menor número de falsos positivos que en la zona roja, puesto que en este punto solo deberían estar permitidos accesos hacia nuestros servidores.

Zona azul: Esta es la zona de confianza. Cualquier tráfico anómalo que

llegue hasta aquí debe ser considerado como hostil. En este punto de la red se producirán el menor número de falsos positivos, por lo que cualquier alarma del NIDS debe ser inmediatamente estudiada. Es importante destacar que la zona azul no es parte de la red interna. Todo lo que llegue al NIDS de la zona azul irá hacia el firewall (por ejemplo, si se utiliza un proxy-cache para los usuarios de web) o hacia el exterior. El NIDS no escuchará ningún tipo de tráfico interno dentro de la red.

(29)

En el caso de tener un NIDS escuchando tráfico interno (por ejemplo, colocado entre una VLAN y su router), las falsas alarmas vendrán provocadas en su mayor parte por máquinas internas al acceder a los servidores de nuestra red, por servidores nuestros (DNS sobre todo) y escaneadores de red, por lo que habrá que configurar el NIDS para que no sea muy sensible.12

A continuación se analizarán algunos ejemplos de las diferentes posibilidades en una misma red. Considere una red dónde un firewall separa la Internet de la Zona Desmilitarizada (DMZ - Demilitarized Zone), y otro que divide la DMZ de la intranet de la organización como se muestra en la Figura 1 - 5. Por zona desmilitarizada se entiende la zona de acceso público que se muestra al exterior, desde la cual se ofrece servicios.

Figura 1 - 5. Red con NIDS simple

El situar el NIDS antes del firewall exterior permite detectar los escaneos de puertos, actividad típica de reconocimiento que señala el comienzo de una intrusión, y se obtendría como ventaja un aviso prematuro. Sin embargo, si los escaneos no son seguidos por un ataque real, se generará una gran cantidad de alertas innecesarias, con el peligro de comenzar a ignorarlas. En este escenario se captura todo el tráfico de entrada y salida de la red. La posibilidad de falsos positivos es grande.

12 MIRA, Emilio. Implantación de un Sistema de Detección de intrusos en la Universidad de Valencia

[en línea]. Edición 1. Valencia, España. Capítulo 1. ¿Dónde colocar un IDS?. Página 22. Disponible en: www.rediris.es/cert/doc/pdf/ids-uv.pdf

(30)

Si se escoge colocar el NIDS en la DMZ, se tiene como ventaja la posibilidad de adecuar la base de datos de firmas del NIDS para considerar aquellos ataques dirigidos a los sistemas que están en la DMZ (servidores WEB, FTP, Correo, etc), y configurar el firewall para bloquear ese tráfico. Esta ubicación detrás del firewall monitorizará todo el tráfico que no sea detectado y detenido por el firewall, por lo que será considerado como malicioso en un alto porcentaje de los casos. La posibilidad de falsos positivos es muy inferior.

Así mismo, un NIDS dentro de la red, por ejemplo de Recursos Humanos, podría monitorear todo el tráfico entrante y saliente de esa red. El resultado se puede visualizar en la Figura 1 - 6:

Figura 1 - 6. Red con varios NIDS

El NIDS 1 se encargaría de reportar el escaneo de puertos, enviando una alarma al responsable de la seguridad de la organización. El NIDS 2 se encargaría de vigilar la zona desmilitarizada y analizar el tráfico que reciben tanto el servidor WEB, como el servidor de correo. Los otros dos se encargarían de la red interna, el NIDS 3 de la totalidad de la red, y el NIDS 4 de una subred, en este caso la de RRHH. Estos dos NIDS internos podrían ser sensores que recogiesen la información y lo enviasen a una consola dónde se realizarían los cálculos.

(31)

Consideraciones adicionales sobre la topología

• Los estudios demuestran que la mayoría de los ataques ocurren en las redes internas, por eso debe considerarse seriamente la implementación de NIDS, no solo en la DMZ, sino también en la red interna.

• La habilidad de un NIDS para hacer su trabajo implica que el sensor es capaz de hacer "sniffing" (capturar y revisar los paquetes que circulan por una red) de todo el tráfico, desde y hacia los sistemas monitoreados, y comparar todos los paquetes con la base de datos de "firmas" maliciosas. Este hecho hace necesaria la instalación del NIDS en un segmento de red que le permita capturar TODO el tráfico a monitorear. Esto se puede lograr instalando puertos espejados en los switches, o instalando hubs en las conexiones uplink de las interfases de los routers o switches.

• En una red de arquitectura redundante, cada link redundante debe contar con su propio NIDS.13

1.7 Un modelo de funcionamiento

El modelo más aceptado para la detección de intrusiones tiene tres fases principales:

1. Fase de recogida de datos (fuentes de información). 2. Fase de análisis.

3. Fase de respuesta.

En líneas generales, para que la detección de intrusiones pueda obtener buenos resultados, debe llevar a cabo un proceso de recopilación de información, que posteriormente deberá someter a diversas técnicas de análisis, y en función de los datos obtenidos tendrá que dar algún tipo de respuesta.

13 Presentando IDS. NEX – Periódico de Networking [en línea]. Edición 3. Disponible en:

(32)

En las siguientes secciones de este capítulo se analizará la fase de recogida de información y se analizarán las diferentes fuentes de información disponibles. En el Capítulo 2 se estudiará la fase de Análisis: las técnicas para procesar esta información. Finalmente, en el Capítulo 3 se expondrán algunos procedimientos de respuesta que implementan algunos IDS activos (detectan y responden a ataques).

Como se comentó en la sección anterior, la detección de intrusiones se puede clasificar según las fuentes de información que utiliza. Aquí se estudiarán los casos pertenecientes a la recopilación de datos basados en máquina y en red.

1.7.1 Fuentes de información basadas en máquina

Este tipo de fuentes de información consisten principalmente en registros de auditoría de sistemas operativos (registros generados por mecanismos del sistema operativo), y los registros de sistema (ficheros generados por el sistema y aplicaciones, generalmente ficheros de texto generados línea a línea). Los monitores basados en múltiples "hosts" utilizan las mismas fuentes, por lo que los apartados a continuación también son aplicables a estos.

1.7.1.1 Registros de auditoría

El primer elemento de importancia en sistemas de detección basados en máquina son los registros de auditoría. Estos registros son una colección de información sobre las actividades del sistema, creados cronológicamente y dispuestos en un conjunto de ficheros de auditoría. Estos registros son originados por los usuarios y los procesos y comandos que estos invocan.

Ventajas:

• La propia estructura del sistema operativo está diseñada para otorgar suficiente seguridad al sistema de auditoría, y los registros que este genera. • El sistema de auditoría trabaja a bajo nivel, por lo que ofrece mayor nivel de

(33)

Desventajas:

• Gran parte de los sistemas operativos comerciales existentes no cumplen con los requisitos de auditoría necesarios, a pesar de la documentación que hay sobre el tema. Añadir funcionalidades al núcleo del sistema para que genere la información de auditoría necesaria provoca costes en el rendimiento del sistema, y costes asociados al mantenimiento de las alteraciones de los sistemas operativos.

• Obtener datos excesivamente detallados dificulta la diferenciación entre las actividades originadas directamente por usuarios y aquellas originadas por programas que han tomado la identidad de un usuario.

1.7.1.2 Registro de Sistema

El registro del sistema ("system log") es otro elemento importante a la hora de recopilar información del sistema. Es un fichero en el que se guardan los eventos generados por el sistema. El sistema operativo UNIX cuenta con una variedad importante de este tipo de registros, relacionados por un servicio común, denominado "syslog". Este servicio genera y actualiza los registros de eventos mediante el proceso syslogd.

Ventajas:

• Aportan información muy útil a los programas de detección de intrusiones, y complementan a los datos provenientes de los registros de auditoría.

• Son más fáciles de revisar que los registros de auditoría de sistema.

• Siempre es más conveniente utilizar varias fuentes de información que una sola. Así, se pueden detectar signos de intrusiones a través de las discrepancias encontradas.

Desventajas:

• La seguridad de los registros de sistema es uno de los puntos débiles frente a la de los de auditoría. En este sentido, los registros de sistema son menos fiables que los de auditoría.

(34)

• Los registros de sistema son escritos por aplicaciones, más vulnerables que el subsistema de auditoría.

• Suelen almacenarse en directorios no protegidos del sistema, relativamente fáciles de localizar y alterar.

• Están escritos en texto en claro, y no en una forma más críptica como los registros de auditoría, que siempre ayuda más a detectar cambios.

1.7.1.3 Información de aplicaciones

El nivel de sistema se supone el más robusto e inaccesible para todos salvo los más expertos. Sin embargo, los modelos de seguridad y de protección están en constante evolución, al mismo tiempo que los sistemas operativos.

En el futuro, la mayoría de los datos de importancia procederán del nivel de aplicación. Uno de los ejemplos de esta realidad es el progresivo avance de los sistemas distribuidos y los sistemas orientados a objetos. En el sistema operativo Windows NT, muchos de los eventos generados por el nivel de registro de sistema operativo han migrado a almacenes de datos de aplicación. Además, casi todos los sistemas operativos comerciales soportan la entrada de registros de auditoría generados en el nivel de aplicación.

1.7.2 Fuentes de información basadas en red

Los monitores basados en red son quizás los más famosos en el ámbito de la detección de intrusiones. El tráfico de red es el flujo de información tal como viaja por un segmento de red.

La recopilación de datos de red tiene varias ventajas. Para empezar, utilizar como fuente de información el tráfico de red, no afecta al rendimiento del resto de las máquinas de la red.

Por otra parte, el monitor puede ser transparente al resto de los miembros de la red. Esto significa que puede ser indetectable, lo que es una ventaja ya que no puede

(35)

convertirse en objetivo directo de posibles intrusos. Con este propósito, existe la posibilidad de utilizar un cable de sólo recepción ("sniffing cable") para el monitor, de forma que sólo pueda recibir datos, impidiendo físicamente cualquier envío de señales. Una opción equivalente al cable de sólo recepción es el uso de un "network tap" (dispositivo de escucha de red); un dispositivo de aspecto similar a un concentrador de red, que permite a un sniffer “pinchar” las comunicaciones sin ser detectado.

Por último, el tráfico de red puede revelar información sobre ataques que no podrían ser detectables por un monitor basado en máquina. Estos ataques podrían ser basados en paquetes malformados y algunos de denegación de servicio.

1.7.2.1 Paquetes de red

Para extraer los paquetes de un segmento de red, un NIDS suele utilizar un dispositivo de red en modo promiscuo. Esto hace que el dispositivo genere una interrupción cada vez que detecta algún paquete en la red. Esté método es eficaz, pero tiene inconvenientes. Es útil en los casos en los que el dispositivo está situado en algún punto de la red en el que puede haber tráfico no destinado a sí mismo. Por ejemplo, en redes con switchs (conmutadores), el modo promiscuo no es efectivo, ya que el dispositivo de red sólo recibe el tráfico destinado a él. Por otra parte, un sniffer tampoco puede monitorizar conexiones hechas con un módem, puesto que utilizan distintas interfases.

En la Figura 1 - 7 se observa a la izquierda un escenario con concentrador (hub), en el que el sniffer puede recibir todo el tráfico relacionado con las máquinas que comparten el medio. En la siguiente situación (con switch), el sniffer sólo detecta el tráfico enviado o destinado a él mismo. Por último, se ilustra un tipo de conexión que el sniffer no es capaz de interceptar.

(36)

Figura 1 - 7. Escenarios de conexión de un sniffer

1.7.2.2 Captura de paquetes en sistemas Windows

Existen numerosas opciones para extraer y analizar los paquetes que pasan por un dispositivo de red utilizando estos sistemas operativos. Spynet, Iris, Windump Ethdump, Ethload, son sólo algunos de los productos que se pueden utilizar para llevar a cabo esta tarea.

Con el desarrollo del "Systems Management Server" (SMS), apareció el "Microsoft Network Monitor". Este es el sniffer propuesto por Microsoft. Ofrece la capacidad de capturar paquetes de red con soporte para varios tipos de protocolos, un conjunto de filtros, y la interfaz de usuario común de Windows. También ofrece la posibilidad a una máquina remota conectarse y capturar los datos locales.

1.7.2.3 Captura de paquetes en sistemas UNIX

Los sistemas UNIX cuentan con una infraestructura en materia de redes bastante más amplia y robusta que Windows. Esto no es así de forma arbitraria. No en vano, fueron los entornos más utilizados para desarrollar la mayoría de las tecnologías de red.

El "Lawrence Berkeley National Laboratory" desarrolló el "Berkeley Packet Filter" (BPF). Este filtro utiliza dos componentes, un "network tap" (dispositivo de escucha

(37)

de red) y un filtro de paquetes. Estos datos son enviados a las aplicaciones que están en modo de escucha. Entonces, el filtro procesa la información según los parámetros enviados, y muestra los datos resultantes.

Hay dos aplicaciones de red destacables que utilizan BPF, y son tcpdump y arpwatch. Tcpdump es una herramienta de monitorización de red y adquisición de datos que permite realizar filtrados, recopilación de paquetes y visualización de los mismos. Arpwatch monitoriza la actividad que involucra los mapeos de direcciones IP y Ethernet, y avisa a los administradores cuando detecta nuevos registros o actividades anormales.

Por otra parte, muchos monitores de red y programas de detección de intrusiones utilizan libpcap. Se trata de una librería de captura de paquetes, usada también por tcpdump. Libpcap es una interfaz independiente del sistema que permite hacer monitorizaciones de red a bajo nivel. Su portabilidad a distintas plataformas, como a Linux, que cada vez es más utilizado en entornos de monitorización de red y detección de intrusiones, es una de sus características más relevantes.14

1.8 Limitaciones de los IDS

Los siguientes son algunos de los problemas que enfrentan los IDS al intentar detectar las intrusiones:

• Los IDS actuales basan su funcionamiento en un esquema estático lo cual los convierte en sistemas muy ineficientes en el momento en el que un atacante codifica los datos de entrada.

• La base de datos de las firmas de ataques sufren los mismos inconvenientes que los antivirus, si la base de datos está desactualizada es muy probable que el sistema sea atacado sin ser detectado.

14 GONZALEZ, Diego. Sistemas de Detección de Intrusiones [en línea]. Edición 1.01. Julio 2003,

revisado en julio del 2003 para correcciones tipográficas. Capítulo 3. Fuentes de Información. Página 23. Disponible en: www.derecho-internet.org/docs/ids.pdf

(38)

• El tiempo entre el descubrimiento de un nuevo ataque y su inclusión es bastante alto, teniendo en cuenta que el tiempo entre la publicación de dicho ataque y el uso indebido por parte de un posible atacante es muy corto.

Con respecto a los NIDS existen inconvenientes adicionales.

Fragmentación de datos. El manejar este problema implica utilizar poder de

procesamiento en la manipulación de datos, bajando el rendimiento del sistema y la probabilidad que detecte un ataque.15

Encriptación. Es utilizada para evitar el acceso no autorizado a la

información y es particularmente problemática para los sistemas de detección de intrusiones. Protocolos que son ampliamente utilizados como SSL (Secure Sockets Layer - Capa de Conexiones Segura), SSH (Secure Shell - Intérprete de comandos Seguro) o IPSec (IP Seguro) utilizado en las VPN (Virtual Private Networks - Redes Privadas Virtuales), evitan que los NIDS puedan inspeccionar el tráfico para compararlo contra las firmas de los ataques conocidos. Los payloads (datos dentro de los paquetes) encriptados convierten a estos protocolos en excelentes vehículos para que un atacante pueda evadir la detección por parte de un IDS.

Velocidad de la red. Limitaciones de hardware y algoritmos de comparación

ineficientes, imponen una limitación al número de paquetes que se pueden capturar y analizar dentro de un período de tiempo determinado. Una vez que éste límite es alcanzado, los IDS comienzan a "perder " paquetes (ignorar el tráfico). Pocos NIDS actualmente disponibles en el mercado pueden trabajar en redes gigabit.

Desbordamiento de alarmas. Para hacer más fácil la tarea de los hackers,

han aparecido herramientas que burlan los sensores de los IDS. Algunas de ellas (por ejemplo: stick) bombardean al NIDS con bases de datos de firmas de ataques, haciendo que algunos IDS desborden de falsos mensajes de alerta. Las organizaciones deben comprender claramente los riesgos que

15 TORRES, Efraín. Sistema Inmunológico para la detección de intrusos a nivel de protocolo HTTP [en

línea]. Edición 1. Santafé de Bogotá. Mayo del 2003. Capítulo 5. Limitaciones de los IDS actuales. Página 22. Disponible en: pwp.007mundo.com/etorres1/ArticuloIDSHTTP.pdf

(39)

encierran herramientas como esa, usados contra los NIDS y cómo responder a esas alertas.

Alto coste de mantenimiento. Utilizar un NIDS, esperando obtener altos

grados de efectividad, incluye una gran cantidad de mantenimiento. No se puede sencillamente instalar el software de NIDS y dejarlo funcionar desatendido. Nuevas firmas, cambios en la red, nuevo software, todos esos eventos requerirán un afinado en el NIDS. Para alcanzar la máxima efectividad, las firmas deben ser frecuentemente actualizadas, los límites deben ser ajustados para evitar falsas alarmas y los administradores deben monitorear los registros de eventos para conocer el comportamiento normal de la red en su propio entorno y poder diferenciarlo de comportamientos extraños.16

Redes conmutadas. Los NIDS trabajan “buceando” en todo el flujo de tráfico

que pasa por la red. Si simplemente se conecta el NIDS a un puerto normal de una red conmutada, será muy poco útil. La propia naturaleza de las redes conmutadas implica que solamente el tráfico destinado a un determinado dispositivo, es el que se envía al mismo. Existen dos maneras de enfocar esta situación. Una alternativa es conectar el NIDS a un puerto "espejado" sobre un switch apropiado. Un puerto espejado es aquel que está programado para recibir copias de todo el tráfico que fluye a través del switch o un subgrupo seleccionado del mismo. Con este enfoque, existe el problema que el ancho de banda acumulado que demanda el NIDS podría llegar a ser demasiado impactante. Una segunda opción es usar un dispositivo de interrupción de la red. Esto permite captar los paquetes que viajan en un sentido desde la conexión, pero es solamente aconsejable para la intercepción del tráfico dirigido a un solo dispositivo de la red.

16 Presentando IDS. NEX – Periódico de Networking [en línea]. Edición 3. Disponible en:

(40)

CAPITULO 2. Análisis y Diagnóstico

La segunda gran clasificación de los IDS se realiza en función de cómo actúan estos sistemas; actualmente existen dos grandes técnicas de detección de intrusiones:

• las basadas en la detección de usos indebidos del sistema (misuse detection), y

• las basadas en la detección de anomalías (anomaly detection).

El funcionamiento de los IDS basados en la detección de usos indebidos presupone que es posible establecer patrones para los diferentes ataques conocidos y algunas de sus variaciones; mientras que la detección de anomalías conoce lo normal (en ocasiones se dice que tienen un “conocimiento positivo”) y detecta lo que no lo es, este esquema se limita a conocer lo anormal para poderlo detectar (conocimiento negativo).

El término firma en las siguientes secciones, se refiere a un grupo de condiciones observadas en el tráfico que indican algún tipo de intrusión. El algoritmo usado para detectar estas firmas podría basarse en cualquiera de las metodologías descritas en este capítulo. 17

2.1 Detección de usos indebidos

Este esquema se basa en especificar, de una forma más o menos formal, las potenciales intrusiones que amenazan a un sistema y simplemente esperar a que alguna de ellas ocurra; para conseguirlo existen dos grandes aproximaciones:

• Comparación de patrones (Pattern Matching). • Análisis de Protocolos

17 CISCO SYSTEMS. The Science of Intrusion Detection System Attack Identification [en línea].

Introduction. Disponible en:

(41)

2.1.1 Comparación de patrones

En esta implementación basada en el uso de reglas de comparación de patrones o

pattern matching, el detector se basa en la premisa de que el sistema llega a un estado comprometido cuando recibe como entrada el patrón de la intrusión, sin importar el estado en que se encuentre en ese momento. Dicho de otra forma, simplemente especificando patrones que denoten intentos de intrusión, el sistema puede ser capaz de detectar los ataques que sufre, sin importar el estado inicial en que esté cuando se produzca dicha detección.

Actualmente, muchos de los sistemas de detección de intrusiones más conocidos (SNORT, RealSecure, etc.) están basados en el pattern matching. Utilizando una base de datos de patrones que denotan ataques, estos programas se dedican a examinar todo el tráfico que ven en su segmento de red y a comparar ciertas propiedades de cada trama observada con las registradas en su base de datos como potenciales ataques; si alguna de las tramas empareja con un patrón sospechoso, automáticamente se genera una alarma en el registro del sistema.18

2.1.1.1 Fortalezas y Debilidades

Los sistemas basados en la comparación de patrones tienen las siguientes fortalezas clave:

• Son muy rápidos, ya que la comparación es una tarea relativamente liviana para el procesador.

• Las reglas son fáciles de escribir y entender, además de muy personalizables. • Existe una gran comunidad de soporte que genera firmas rápidamente para

nuevas alertas.

18 VILLALON, Antonio. Seguridad en Unix y Redes [en línea]. Edición 2.1. España. Julio 2002.

Capítulo 18. Sistemas de detección de intrusos. Detección de usos indebidos. Página 324. Disponible en: es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/

(42)

• Estos sistemas se destacan en detectar ataques simples a bajo nivel, debido a que estos tienden a utilizar exploits preparados que son fáciles de reconocer.

• Comunican exactamente lo que ha sucedido debido a que emiten alarmas en base a eventos muy específicos.

• El número y tipo de eventos a monitorear se pueden reducir a esos ítems de datos necesarios para comparar un patrón. Si una organización no se preocupa acerca de los ataques a servidores WEB porque su sistema maneja únicamente un servidor mail, entonces no necesita activar todos los patrones de la base de datos.

• El motor de comparación de patrones tiende a ser más eficiente debido a la ausencia de cálculos de punto flotante para medidas estadísticas.

Por otro lado, este método de detección tiene claras debilidades:

• Su rendimiento decrece dramáticamente conforme crece el grupo de firmas. Esto es particularmente problemático ya que el número de firmas usualmente crece muy rápido. Para cada ataque o exploit que es creado por intrusos, una o más nuevas reglas deben ser creadas para detectarlos.

• A pesar de las técnicas para normalizar los datos y reensamblar paquetes, existen incontables variaciones de los ataques que evaden la detección.

• Los ataques a nivel de aplicación como el Unicode y los programas de evasión mutan los shellcode (ADMutate), lo que provoca serios problemas para estos sistemas.

• La más leve variación en un ataque es suficiente para vencer a una firma. La única solución es más reglas, lo cual baja el rendimiento e incrementa la complejidad.

• Generan demasiados falsos positivos, debido eventualmente a la naturaleza simplista de sus evaluaciones y al querer compensar este hecho con demasiadas firmas. El exceso de falsos positivos puede también ser

(43)

ocasionado por las características particulares de un ataque, cuando son difíciles de aislar del tráfico normal.19

• Sólo son capaces de detectar lo que conocen, de forma que si se recibe un ataque desconocido para el IDS, éste no notificará ningún problema. Es algo similar a los programas antivirus, y, de igual manera, también es conveniente mantener al día la base de datos de este tipo de IDS. Aún así, son vulnerables a nuevos ataques.

Algunos de los productos más populares que usan esta metodología de análisis son: Cisco NetRanger, ISS RealSecure, y Security Dynamics KSM.

2.1.1.2 Comparación simple de patrones

La comparación simple de patrones fue el primer método implementado en detección de intrusiones. Se basa en la búsqueda de una secuencia determinada de bytes en un paquete. Como su nombre lo sugiere, este método es bastante rígido, pero simple de emplear.

Un paquete entrante es comparado, byte por byte, con una firma. Esa firma podría contener una frase clave o comando que esta asociado frecuentemente con un ataque. Si se encuentra una equivalencia, se genera una alarma; de lo contrario, los datos del paquete son comparados con la siguiente firma de la lista. Una vez que todas las firmas han sido verificadas, se repite el proceso con el siguiente paquete. 20

Además de la secuencia de bytes que se busca, la mayoría de los IDS también comparan varias combinaciones de las direcciones IP origen y destino, de los puertos origen y destino y el protocolo utilizado. Con frecuencia, también es posible

19 LISTON, Kevin. Intrusion Detection FAQ-Can you explain traffic analysis and anomaly detection?

Disponible en: www.sans.org/resources/idfaq/anomaly_detection.php

20 TANASE, Matt. The Great IDS Debate: Signature Analysis Versus Protocol Análisis [en línea].

SecurityFocus. Ultima actualización: Febrero 5, 2003. Disponible en: http://www.securityfocus.com/infocus/1663

(44)

“afinar” la firma, especificando un punto inicial y final para la inspección dentro del paquete, o una combinación particular de banderas TCP. Esto ayuda a reducir la cantidad de análisis realizado sobre cada paquete capturado, ya que mientras más específicos sean estos parámetros, menos inspecciones serán necesarias.

Sin embargo, los sistemas que implementan este método suele tener dificultades al tratar con protocolos que no trabajan con los puertos de servicio (puertos entre 1 y 1023) y, en particular, los troyanos y su tráfico asociado, los cuales pueden ser cambiados a voluntad frecuentemente.21

La estructura de una firma basada en el método simple de comparación de patrones podría ser como sigue:

Si el paquete es IPv4 y TCP y el puerto destino es 2222 y los datos contienen la cadena “foo”, lanzar una alarma.

Ventajas:

• Es el método más simple para detectar intrusiones.

• Permite correlación directa de un exploit con el patrón, es altamente específico.

• Alerta confiadamente sobre el patrón especificado. • Es aplicable a todos los protocolos.

Desventajas:

• Este método pueden presentar altos porcentajes de falsos positivos si el patrón no es tan único como asumió el diseñador de firmas.

• Se puede requerir múltiples firmas para enfrentar una sola vulnerabilidad. Múltiples herramientas de hackers inducen múltiples firmas.

• Usualmente, este método está limitado a la inspección de un solo paquete, por lo tanto, no se aplica bien a la naturaleza basada en flujos del tráfico de

21 CISCO SYSTEMS. The Science of Intrusion Detection System Attack Identification [en línea].

(45)

red, tal como el tráfico HTTP. Esta limitación da popularidad a las técnicas de evasión de IDS que son fácilmente implementadas.

2.1.1.3 Comparación de Patrones en contexto de Conexiones

Un método más sofisticado es el análisis basado en comparación de patrones en el contexto de una conexión (stateful pattern matching). Este método de desarrollo de firmas añade a la comparación de patrones el concepto de que, debido a que el flujo de red comprende más que paquetes atómicos individuales, las comparaciones deberían realizarse en contexto, dentro del estado del flujo. Esto significa que los sistemas que efectúen este tipo de análisis, deben considerar el orden de llegada de los paquetes en un flujo TCP, y deberían manejar la comparación de patrones más allá de los límites de los paquetes.

¿Cómo afecta este escenario al ejemplo presentado en la discusión de la comparación simple de patrones? Ahora, en lugar de buscar patrones en cada paquete, el sistema tiene que mantener información del estado del flujo TCP que se esta monitoreando. Para entender la diferencia, considere el siguiente escenario: Suponga que el ataque que se está buscando es lanzado desde un cliente conectado a un servidor, y se tiene el método de comparación simple de patrones funcionando en el IDS. Si el ataque es lanzado de tal forma que en cualquier paquete TCP individual, con dirección al objetivo, sobre el puerto 2222, la cadena “foo” esta presente, la alarma es activada.

Sin embargo, si el intruso se las arregla para que la cadena sea enviada de tal forma que “fo” este en el primer paquete y “o” en el segundo, ninguna alarma será activada. Si en lugar del método de comparación simple, se emplea el algoritmo de Stateful Pattern Matching, el sensor habrá almacenado la porción de la cadena “fo” y es capaz de completar la comparación cuando el cliente envía la cadena “o”.

Ventajas:

Además de las ventajas heredadas de su pariente más primitivo, se puede mencionar las siguientes:

(46)

• Para poder emplear este método, solo se requiere un esfuerzo levemente mayor que el empleado en la comparación simple de patrones.

• Este método complica la tarea de las técnicas de evasión de IDS. Desventajas:

A excepción de las dificultades para manejar la fragmentación de la información, presenta los mismos problemas que la comparación simple de patrones. 22

2.1.2 Análisis de Protocolos

Este método de análisis se enfoca en revisar los datos estrictamente formateados de los protocolos en el tráfico de red. Cada paquete está envuelto en capas predefinidas de diferentes protocolos (IP, TCP, UDP, etc.). Tomando esto en cuenta, los desarrolladores de IDS implementaron motores que desenvuelven e inspeccionan estas capas, de acuerdo a los estándares del protocolo o RFC. Cada capa tiene varios campos con valores normales o esperados. Cualquier cosa que viole o esté fuera de estos estándares se considera como maliciosa, y generará una alarma. El análisis de protocolo usa un conocimiento detallado de los valores esperados o normales de los campos para descubrir tráfico malicioso. Este difiere enormemente del análisis de firmas, el cual usa características conocidas de los ataques para generar alarmas.

La decodificación de los elementos del protocolo se realiza en la misma forma que lo haría un cliente o servidor durante una “conversación”. Cuando estos elementos son identificados, el IDS aplica las reglas definidas por los RFCs para buscar violaciones. En algunos casos, estas violaciones son encontradas mediante comparación de patrones dentro de un campo de protocolo específico, mientras que en otros se requieren técnicas más avanzadas que consideren variables tales como la longitud

22 The NSS Group. Intrusion Detection Systems, Group Test [en línea]. Edición 3. Cambridgeshire,

Inglaterra. The NSS Group. Diciembre 2000, revisado en Junio 2002. Introduction, Detection Methods. Pagina 7. Disponible en: Disponible en: www.scd.ucar.edu/

(47)

de un campo o el número de argumentos. Es importante notar que la comparación de patrones y el análisis de protocolos no se excluyen mutuamente.

En la actualidad, además de decodificar las capas 3 y 4 de la suite TCP/IP, también se enfoca en un análisis detallado de los protocolos de la capa de aplicación. Los protocolos más populares, tales como HTTP, SMTP, TELNET, etc., pueden ser examinados en detalle en busca de violaciones e irregularidades. Actualmente, estas aplicaciones pueden anticipar las respuestas esperadas durante las etapas clave de una transacción. Por lo tanto, anomalías tales como valores inesperados, paquetes inusualmente grandes o pequeños, opciones extrañas, y todo lo que puede representar una señal de ataque, será detectado.

Para ilustrar este método, se plantea el siguiente ejemplo: se sabe que el protocolo base sobre el que se realiza un ataque es el protocolo ficticio BGS; más específicamente, se asume que el ataque requiere que se pase el argumento ilegal

foo en el campo Type de este protocolo. Para complicar más la situación, se asume que el campo BGS Type esta precedido por un campo de longitud variable llamado BGS Options. La lista de opciones válidas para Type es: fooh, mooh, tormer, y buildo. En este caso, los algoritmos de comparación simple de patrones o en contexto de conexión producen falsos positivos, porque la opción válida fooh

contiene el patrón buscado. Además, debido a que la longitud de los campos es variable, sería imposible limitar tales falsos positivos especificando un punto de inicio y fin para la búsqueda. La única forma de comprobar que foo es enviado como argumento de Type es decodificar completamente el protocolo.

Ventajas:

• Este método minimiza las probabilidades de falsos positivos si el protocolo está bien definido e implementado.

• Puede permitir correlación directa de un exploit.

• Puede ser más amplio y general para permitir capturar variaciones sobre un tema.

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)