Estudio de la plataforma de detección de intrusos Open Source Snort
77
0
0
Texto completo
(2) Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Automática y Sistemas Computacionales. TRABAJO DE DIPLOMA Estudio de la plataforma de detección de intrusos Open Source Snort. Autor: Angel Rubén León Freire [email protected]. Tutor: Ing. Henry Moreno Díaz [email protected]. Santa Clara 2011 "Año del 53 Aniversario de la Revolución”.
(3) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Automática, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicado sin autorización de la Universidad.. Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Tutor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.
(4) i. PENSAMIENTO. Las grandes conquistas siempre van acompañadas de grandes sacrificios, pero no siempre el sacrificio asegura la victoria. Mas no importa, esfuérzate, se valiente y habrás hecho tu parte. Samuel.
(5) ii. DEDICATORIA. A mi hija que es mi fuente de inspiración. A mi esposa que siempre ha estado a mi lado A mi familia y a mi madre por toda su comprensión..
(6) iii. AGRADECIMIENTOS. A mi tutor: Ing. Henry Moreno por su ayuda para hacer posible este proyecto. A mis compañeros de estudio que han transitado este camino junto a mí. A todos los que de una forma u otra me ayudaron.. ..
(7) iv. TAREA TÉCNICA. Para el logro del objetivo propuesto en el presente trabajo, la investigación sigue una línea definida por un grupo de tareas, las cuales son:. Búsqueda bibliográfica y estudio de trabajos relacionados con el tema. Instalación y configuración del Snort como detector de intruso. Creación de escenarios de ataques de seguridad desde diferentes localizaciones utilizando varias herramientas de seguridad. Análisis y evaluación de los resultados sobre el desempeño del IDS con el Snort. Confección del informe.. Firma del Autor. Firma del Tutor.
(8) v. RESUMEN. En el campo de las Tecnologías de la Información la seguridad de los sistemas es uno de los factores más importantes a tener en cuenta. Sin una buena estrategia de seguridad, una de las partes más importantes y a la vez más vulnerables del sistema, los datos, podrían verse seriamente amenazados. Entre los componentes que ayudan a los administradores en las tareas de seguridad se encuentran los Sistemas de Detección de Intrusiones (IDS). Actualmente existen varios software mediante los cuales se puede implementar un IDS, entre los que se destaca el Snort; este es un software muy flexible que ofrece la posibilidad de almacenar sus bitácoras tanto como en archivo de texto o en una base de datos. Este trabajo está enfocado en analizar y evaluar el desempeño del Snort como un IDS; para ello se llevan a cabo una serie de pruebas que consisten en escaneos desde diversas localizaciones mediante la utilización de herramientas como GFI Languard y Nmap. Se consultan destacadas investigaciones que abordan el tema, resaltando la necesidad e importancia del estudio del Snort para una correcta configuración. Como aportes más importantes se destacan el empleo de herramientas de software disponibles libremente y utilizadas por numerosos investigadores del tema, así como la realización de experimentos y su análisis..
(9) vi. TABLA DE CONTENIDOS. PENSAMIENTO ..................................................................................................................... i DEDICATORIA ..................................................................................................................... ii AGRADECIMIENTOS ......................................................................................................... iii TAREA TÉCNICA ................................................................................................................ iv RESUMEN.............................................................................................................................. v INTRODUCCIÓN ..................................................................................................................1 Organización del informe....................................................................................................4 CAPÍTULO 1.. Introducción a los Sistemas de Detección de Intrusos. ...............................6. 1.1. Código abierto u Open Source ................................................................................6. 1.2. Ataq ues realizados a la red ...............................................................................7. 1.2.1. Escaneo de puertos..........................................................................................7. 1.2.2. Ataques de autentificación ..............................................................................8. 1.2.2.1. IP Spoofing ...........................................................................................8. 1.2.2.2. DNS Spoofing ......................................................................................9. 1.2.2.3. ARP Spoofing ......................................................................................9. 1.2.2.4. Web Spoofing.......................................................................................9. 1.2.3. Denegación de servicios o DoS ....................................................................10. 1.2.4. Denegación de servicios distribuida o DDoS ...............................................10.
(10) vii 1.2.5 1.3. Sniffing ........................................................................................................11 Métodos de defensa tradicionales .........................................................................11. 1.3.1. Firewalls y proxies ........................................................................................11. 1.3.2. Redes privadas virtuales................................................................................12. 1.3.3. Listas de acceso o ACL.................................................................................12. 1.4. Sistemas de Detección de Intrusos (IDS)..............................................................13. 1.4.1. Antecedentes .................................................................................................13. 1.4.2. Definición......................................................................................................14. 1.4.3. Funciones de los IDS ....................................................................................14. 1.4.4. Características básicas de los IDS.................................................................15. 1.4.5. Clasificación de los IDS................................................................................16. 1.4.5.1. IDS basado en host (HIDS).......................................................................16. 1.4.5.2. IDS basado en red (NIDS) ........................................................................17. 1.4.6. Posición del IDS............................................................................................19. 1.4.7. Principales IDS en la actualidad. ..................................................................19. 1.5. Snort ......................................................................................................................20. 1.5.1. Descripción ...................................................................................................20. 1.5.2. Funcionamiento del Snort .............................................................................21. 1.5.3. Arquitectura de Snort ....................................................................................21. 1.5.3.1. Decodificador de paquetes........................................................................22. 1.5.3.2. Motor de detección ...................................................................................22. 1.5.3.3. Preprocesadores ........................................................................................24. 1.5.3.4. Subsistema de log y alertas (outputs) .......................................................24. 1.5.3.5. Sistema de reglas de Snort........................................................................25.
(11) viii CAPÍTULO 2. 2.1. Implementación de un IDS mediante el Snort ..........................................26. Herramientas auxiliares para el funcionamiento del NIDS ..................................26. 2.1.1. Apache2 ........................................................................................................27. 2.1.2. Php5 ..............................................................................................................27. 2.2. Instalación y configuración del IDS......................................................................28. 2.2.1. Configuración de Mysql................................................................................28. 2.2.2. Configuración de Snort .................................................................................31. 2.2.3. Instalación y configuración de BASE ...........................................................39. 2.2.4. Instalación y configuración de Pmgraph.......................................................41. 2.3. Herramientas de propósitos generales...................................................................43. 2.3.1. Network mapper o Nmap ..............................................................................43. 2.3.2. GFI LANguard ..............................................................................................44. CAPÍTULO 3.. RESULTADOS Y DISCUSIÓN .............. ¡Error! Marcador no definido.. 3.1. Realización de Pruebas de seguridad ....................................................................46. 3.2. Análisis de los resultados de las pruebas realizadas. ............................................50. 3.2.1. Algunos resultados obtenidos por el IDS en un día. .....................................51. 3.3. Resultados obtenidos por el Pmgraph. ..................................................................52. 3.4. Conclusiones del capítulo .....................................................................................53. CONCLUSIONES Y RECOMENDACIONES ...................................................................54 Conclusiones .....................................................................................................................54 Recomendaciones..............................................................................................................55 REFERENCIAS BIBLIOGRÁFICAS ..................................................................................56 ANEXOS ..............................................................................................................................60.
(12) INTRODUCCIÓN. 1. INTRODUCCIÓN. El creciente número de usuarios que se conectan a la red global de información, el incremento de las redes de área local (LAN), la migración del papel a las transacciones electrónicas comerciales y el fácil acceso a sitios que muestran cómo explotar las vulnerabilidades de las redes, hacen que virtualmente cualquier persona se convierta en un atacante potencial. Este aspecto ha comenzado a ser un problema importante en el mundo moderno y ha permitido el desarrollo de la seguridad informática, la cual cada día cobra más protagonismo. Se define como seguridad informática al conjunto de métodos y herramientas destinados a proteger los bienes informáticos en una institución. El término seguridad informática está estrechamente relacionado con tres aspectos fundamentales de cualquier sistema de computación: (UCI 2008). Confidencialidad: La información o los activos informáticos son accedidos solo por las personas autorizadas. Integridad: Los activos o la información solo pueden ser modificados por las personas autorizadas. Disponibilidad: Los activos informáticos son accedidos por las personas en el momento requerido. La seguridad informática se logra mediante la implementación de sistemas de controles, que pudieran ser políticas, prácticas, procedimientos, estructuras organizacionales y funciones de software (UCI 2008). Estos controles necesitan ser establecidos para asegurar que los objetivos específicos de seguridad se cumplan, tales como el acceso a los recursos.
(13) INTRODUCCIÓN. 2. de la red a usuarios autorizados solamente y la protección de datos y su recuperación en caso de pérdidas. Para analizar la seguridad de un sistema se debe pensar en la forma en que el mismo pudiera sufrir determinada pérdida o daño, para lo cual es necesario identificar las debilidades del sistema. Una vulnerabilidad es una debilidad en el sistema de seguridad. La cantidad de intentos de accesos no autorizados a la información que existe en Internet ha crecido durante estos últimos años. Según el Computer Security Institute, un 70% de las organizaciones anunciaron al menos un incidente de seguridad durante el 2000, frente a un 42% anunciado en 1996. La mayoría de los expertos piensan que estos números están muy por debajo de la tasa real, puesto que muchas organizaciones evitan dar a conocer sus incidentes y muchas otras ni siquiera los detectan. Para evitar los ataques se usan los denominados controles o mecanismos de defensa como medida de protección. Un control es una acción, dispositivo o procedimiento que elimina o reduce una vulnerabilidad. De manera general, se puede describir la relación entre amenazas, vulnerabilidad y control de la siguiente manera: una amenaza puede ser bloqueada aplicando un control a una vulnerabilidad. (Kaufman, Perlman et al. 2002). Los sistemas de protección convencionales como los firewalls y antivirus, entre otros, empiezan a ser insuficientes ante la gran variedad de ataques que día a día son cada vez más devastadores (Cheswick, Bellovin et al. 2003), esto muestra que es necesario crear una nueva línea de defensa que les evite a los administradores la tarea de estar pendientes en todo momento de su red. Los atacantes están evolucionando y aparecen nuevas técnicas como los Troyanos, gusanos y escaneos silenciosos que atraviesan los cortafuegos mediante protocolos permitidos como HTTP, ICMP o DNS. Los atacantes buscan vulnerabilidades en los pocos servicios que el cortafuego permite y enmascaran sus ataques dentro de estos protocolos, quedando la red expuesta de nuevo..
(14) INTRODUCCIÓN. 3. Una buena forma de mejorar la seguridad de la red es la instalación de mecanismos de detección, capaces de avisar al administrador de la red en el momento en que se produzcan estos ataques (casi en tiempo real). En esta línea, surgen los sistemas de detección de intrusos, como uno de los campos más investigados en los últimos años. La Detección de Intrusos es uno de los métodos utilizados para proporcionar seguridad a una red de ordenadores; es la comprobación, a través del proceso de monitoreo, que un ordenador, una red o un sistema completo con varias subredes funcionan correctamente desde el punto de vista de las políticas de seguridad definidas por la organización.(Vigo 2005). Los mecanismos de detección de intrusos, en la mayoría de los casos pueden identificar el tipo de ataque exacto que se produjo, de forma que sea posible detenerlo. En otras situaciones solo es posible detectar e informar de la actividad sospechosa que se ha encontrado (Castell 2004). En la actualidad estos mecanismos se han convertido en un elemento importante para proteger los sistemas ubicados en un entorno de Tecnologías de la Información. Es por ello que el presente trabajo tratará sobre el estudio e implementación de uno de los sistemas de detección de intruso más utilizados basado en red, el Snort. Este es un software muy flexible que ofrece la posibilidad de almacenar sus bitácoras tanto en archivo de texto como en una base de datos. Igualmente implementa un motor de detección de ataques y un barrido de puertos, registrando, alertando y respondiendo ante cualquier anomalía.(Riley 2010). La elección del Snort se basa en que ha alcanzado un estado de madurez y desarrollo, donde su funcionalidad permite despliegues exitosos; por otra parte, su gran difusión a lo largo del mundo (más de 3, 000,000 de descargas y de 150,000 usuarios activos según (Scott, Wolfe et al. 2004)) permite tener una comunidad de usuarios lo suficientemente amplia como para advertir de nuevas amenazas y vulnerabilidades, y para generar y compartir reglas. En Snort, además, disponen de un amplio rango de herramientas y programas para su análisis, como por ejemplo, BASE, Snortlog, Snortreport, Snortsam, etc. (Staff 2005)..
(15) INTRODUCCIÓN. 4. De lo expuesto anteriormente se desprenden las siguientes interrogantes científicas: ¿Qué características presenta el Snort que permite la detección de intrusos? ¿Cómo implementar un sistema de seguridad usando el Snort? ¿Cómo evaluar el desempeño del IDS implementado con el Snort? Con vistas a lograr la esencia de lo propuesto en la investigación se traza el siguiente objetivo general: Estudiar y analizar cómo se usa la herramienta Open Source Snort en la implementación de un sistema de detección de intrusos basado en red. Como objetivos específicos se proponen los siguientes: Realizar un estudio de las metodologías de detección de intrusos existentes. Implementar un Sistema de detección de Intrusos con el Snort en Linux. Recrear algunos tipos de intrusión que permitan registrar y reportar alertas ante un comportamiento concreto de los usuarios de la red.. Organización del informe El informe de la investigación se estructura en resumen, introducción, capitulario, conclusiones, recomendaciones y referencias bibliográficas. Introducción Se define la importancia, actualidad y necesidad del tema que se aborda y se plantean los elementos del diseño teórico. Capítulo I En el primer capítulo se realiza una descripción teórica de los sistemas de detección de intrusos y de la herramienta Snort. Capítulo II El segundo capítulo se dedica a la instalación y configuración del Snort e implementación del escenario virtual en el que se pretende realizar la evaluación de este..
(16) INTRODUCCIÓN. 5. Capítulo III El último capítulo recoge la interfaz gráfica del usuario mostrando imágenes de su apariencia y explicando su funcionalidad. Además se realiza el análisis respectivo del comportamiento del Snort. Conclusiones Se realiza un análisis de los resultados obtenidos a partir de los objetivos que se trazaron inicialmente..
(17) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 6. CAPÍTULO 1. Introducción a los Sistemas de Detección de Intrusos. En este capítulo se aborda lo relacionado con los diferentes ataques informáticos que pueden ser llevados a cabo por un atacante hacia una computadora o host. Posteriormente principales. se. tratan. características,. los. detectores. funciones,. de. intrusos. clasificación. y. (IDS);. ubicación;. su. definición,. por. último. se. mencionan los IDS que más se utilizan en la actualidad, tanto comerciales o de libre. distribución.. Para. finalizar. se. muestran. los. aspectos. esenciales. que. componen al Snort, el cual es el IDS escogido en la realización de este trabajo. 1.1 Como. Código abierto se ha mencionado en los objetivos, en este trabajo se van a utilizar. herramientas. basadas. en. software. libre,. también. conocido. como. de. código. abierto (Open Source), por las múltiples ventajas que presenta su utilización. Sus. características. son. especialmente. comerciales encontradas en el mercado. significativas (Kelley,. frente. Barnes et al.. a. las 2002).. soluciones Entre las. ventajas que presenta se tiene la libertad de uso, copiado y distribución. Además se tiene. acceso. al. código. fuente,. lo. cual. permite. poder. estudiarlo,. editarlo,. modificarlo, y optimizarlo. Esto es factible con la finalidad de encontrar errores en su uso, desarrollar mejoras y personalizar el software con el aporte de la comunidad de usuarios. Su velocidad de desarrollo se da generalmente en ciclos rápidos y además estos se caracterizan por su gran despliegue alrededor del mundo..
(18) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 1.2. 7. Ataques realizados a la red. Los ataques en redes se ejecutan con el objetivo de encontrar vulnerabilidades en protocolos y/o servicios y ejecutar desde esa misma localización, diversas tareas indeseadas (Anonymous 2002). Esto permite a los atacantes tomar control de sistemas completos y provocar graves desastres en organizaciones o empresas con alto grado de dependencia tecnológica. Los objetivos atacados son, en la mayoría de casos, elementos visibles de la red, como servidores Web y de DNS o básicos como routers y enlaces de red. Los métodos más comunes de ataques aprovechan vulnerabilidades de seguridad de la familia de protocolos TCP/IP. (Cheswick, Bellovin et al. 2003). 1.2.1. Escaneo de puertos. Una de las primeras actividades que un potencial atacante realiza contra su objetivo es un escaneo de puertos (en inglés portscan); esto le permite obtener una información básica acerca de qué servicios están ofreciendo las máquinas atacadas y adicionalmente, otros detalles del entorno como qué sistema operativo está instalado en cada host o ciertas características de la arquitectura de la red. Mediante el análisis de los puertos que están abiertos en un sistema, el atacante puede buscar agujeros en cada uno de los servicios ofrecidos, cada puerto abierto en una máquina es una potencial puerta de entrada a la misma. Comprobar el estado de un determinado puerto es a priori una tarea muy sencilla; existen herramientas como Strobe o Nmap que pueden realizar esta tarea de una forma cómoda. Existen diferentes aproximaciones para clasificar los escaneos de puertos, tanto en función de las técnicas seguidas en el ataque como en función de a qué sistemas o puertos concretos va dirigido. Clasificación en cuanto a los servicios o puertos: Escaneo horizontal: El atacante busca la disponibilidad de determinado servicio en diferentes máquinas de una red. Escaneo vertical: El atacante sólo escanea puertos de una máquina..
(19) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 8. Clasificación en cuanto a las técnicas utilizadas en: open half-open stealth Existe otro modelo de escaneo denominado stealth scanning. Por stealth scanning se conoce como la familia de técnicas de escaneo que cumplen alguna de las siguientes condiciones: Eludir cortafuegos o listas de control de acceso. No ser registradas por sistemas de detección de intrusos, ni orientados a red ni en el propio host escaneado. Simular tráfico normal y real para no levantar sospechas ante un analizador de red. 1.2.2. Ataques de autentificación. Estos ataques son llevados a cabo a partir de técnicas de suplantación de identidad o spoofing; y utilizados con propósitos maliciosos o de investigación. 1.2.2.1. IP Spoofing. Es una técnica conocida también como identity spoofing o IP address spoofing (Tulloch 2003), y está basada en la generación de paquetes IP dentro de cualquier protocolo TCP/IP como ICMP, TCP o UDP, con una dirección origen falsa, para identificar a un ordenador como válido en una red. Luego de ganar acceso a la red el atacante puede modificar, redireccionar o eliminar datos, que a su vez puede generar otros tipos de ataques. Se ha de tener en cuenta que las respuestas del host que reciba los paquetes irán dirigidas al dispositivo cuya IP ha sido falsificada. Esta técnica es usada a veces junto con un ataque de DoS que inhabilitaría por ejemplo las respuestas RST. Una herramienta expandida para realizar ataques de esta clase es, el Smurf..
(20) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 1.2.2.2. 9. DNS Spoofing. Se falsea las entradas dominio-IP de un servidor DNS (del inglés Domain Name Server), suplantando su identidad ante la resolución de nombres (Kaufman, Perlman et al. 2002). Esto se puede conseguir de diferentes formas, desde modificando las entradas del servidor encargado de resolver una cierta petición para falsear las relaciones dirección-nombre, hasta comprometiendo un servidor que infecte la caché de otro (DNS Poisoning); incluso sin acceso a un servidor DNS real. Un atacante puede enviar datos falseados como respuesta a una petición de su víctima sin más que averiguar los números de secuencia correctos. Existen programas que permiten copiar una base de datos secundarios entera de nombres de dominio desde un servidor DNS, para su posterior análisis, como por ejemplo el DIG. 1.2.2.3. ARP Spoofing. El protocolo ARP (del inglés Address Resolution Protocol) es usado para encontrar una dirección de Ethernet MAC a partir de una IP, a través de una tabla de correlación. El ataque denominado ARP Spoofing hace referencia a la construcción de tramas de solicitud y respuesta ARP falseadas a través de la suplantación de su MAC, de forma que en una red local se puede forzar a una determinada máquina a que envíe los paquetes a un host atacante en lugar de hacerlo a su destino legítimo. Los efectos del ataque pueden ser muy negativos, desde negaciones de servicio hasta interceptación de datos, incluyendo algunos man in the middle (Merino 2011) contra ciertos protocolos cifrados. 1.2.2.4. Web Spoofing. Este ataque permite a un atacante visualizar y modificar cualquier página Web que su víctima solicite a través de un navegador, incluyendo las conexiones seguras vía SSL (del inglés Secure Socket Layer). Para ello, mediante el código malicioso un atacante crea una ventana del navegador correspondiente, de apariencia inofensiva, en la máquina de su víctima; a partir de ahí, enruta todas las páginas dirigidas al equipo atacado, incluyendo las cargadas en nuevas ventanas del navegador, a través de su propia máquina, donde son.
(21) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 10. modificadas para que cualquier evento generado por el cliente sea registrado (esto implica registrar cualquier dato introducido en un formulario, cualquier enlace seleccionado, etc.). 1.2.3. Denegación de servicios o DoS. Un ataque de denegación de servicio consiste en sobrepasar los límites de recursos establecidos para un servicio determinado, con el objetivo de interrumpir su disponibilidad, entorpecer el acceso a sus usuarios y/o degradar su calidad de servicio (QoS, del inglés Quality of Services) (Cheswick, Bellovin et al. 2003). Por tanto, este tipo de ataque no supone en sí peligro para la seguridad de los equipos, ya que no modifica los contenidos de la información ni pretende la obtención de información sensible. Típicamente una vez finalizado el ataque se vuelve al estado de normalidad, aunque puede darse. el caso. en que simultáneamente se lancen otros ataques diferentes y/o. complementarios cuyo objetivo sí sea comprometer el sistema. Los tres protocolos en los que se basan las técnicas de saturación de paquetes, o flooding, son TCP, UDP e ICMP. 1.2.4. Denegación de servicios distribuida o DDoS. Este ataque es una variante más potente de los de DoS, y tal como lo indica el nombre, es ejecutado de forma distribuida. Se basa en realizar ataques DoS de forma masiva aún mismo objetivo desde diferentes localizaciones en la red, de forma que la potencia de ataque sea superior. El ataque comienza por una fase de escaneo múltiple con una vulnerabilidad conocida a un conjunto de objetivos, luego al obtener acceso a parte de ellos, se instala la herramienta DDoS. Estos sistemas comprometidos servirán para escanear y comprometer nuevos sistemas, atacando remotamente órdenes del intruso a través de un handler, el cual se encargaría de gestionar el registro de estos. Los ataques pueden ser de tipo TCP half-open o TCP SYN flood, a su vez existen algunas herramientas específicas para ejecutarlos, por ejemplo Smurf, que inunda el objetivo enviando mensajes falsificados de ping broadcast , Fraggle, Trinoo, TFN, Stacheldraht, TFN2K, Mstream, Tornkit, Trinity DDoS, Erkms, Lion, Carko, Wormkit,etc.
(22) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 11. 1.2.5 Sniffing Esta es una técnica muy extendida y efectiva, tiene como objetivo la obtención de información sensible y el acceso progresivo a determinados sistemas. Su funcionamiento radica en la captura de datos mientras estos atraviesan la red, esto se hace mediante la activación de una o varias interfaces de red en modo promiscuo, por tanto todos los datos de las tramas pueden ser capturados, analizados y evaluados por los sniffer, que almacenan los registros con todo el tráfico obtenido, sea destinatario o generado por el propio sistema o desde /hacia cualquier otro elemento compartido del entorno de red. La obtención de información sensible tales como credenciales, usuarios y contraseñas, correos electrónicos, número de tarjetas de crédito entre otras, se realiza de forma simple si a esta no se le ha aplicado ningún método de encriptación previo, debido a que existen protocolos como Telnet, FTP, HTTP que la información no se inscripta. Los Sniffers más utilizados son Netcat, Wireshark, Tcpdump, Hunt, Snort (en su modo de sniffer). 1.3 1.3.1. Métodos de defensa tradicionales Firewalls y proxies. Los firewalls son elementos, implementados tanto en hardware como en software, usados para controlar las comunicaciones, permitiéndolas o restringiéndolas (mantienen una TCP connection state por cada conexión que se establece a través de él) de acuerdo con las políticas de red predefinidas por la organización responsable de la red, con el objetivo de proteger sitios remotos o redes de frontera (Chapman, Zwicky et al. 1995). También son usados para proteger partes de la red de otras partes de la misma en el caso de ataques. Generalmente los firewalls se colocan en el perímetro, entendido como el punto de conexión de la red interna de la red a la cual se quiere proteger y la red exterior (por lo general Internet); de este modo se protege la red interna de intentos de acceso no autorizados, que puedan encontrar y aprovechar vulnerabilidades en los sistemas de esta. Su funcionamiento, características de comportamiento y requerimientos de disponibilidad están indicados en el RFC 2979. (Freed 2000)..
(23) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 12. Los Firewalls de red implementan además una funcionalidad de zona desmilitarizada o DMZ (del inglés Demilitarized Zone), la cual activa protección de capas entre sitios no confiables (fuera de la red) con sitios fiables (dentro de la red). Esta sirve como un elemento de seguridad adicional al conectarse al Firewall y allí se ubican los servidores de la organización que deben permanecer accesibles desde la red exterior. Los proxy son componentes constituidos como programas o dispositivos, que ejecutan y desarrollan actividad en representación de otro, como intermediario, con los objetivos de mantener los dispositivos anónimos al hacer conexiones con ciertas aplicaciones e incrementar su acceso a determinados recursos vía caching (Tulloch 2003). 1.3.2. Redes privadas virtuales. Las redes privadas virtuales o VPN (del inglés virtual private network) representan una capa de seguridad dirigida a redes públicas o privadas para hacer conexiones de forma segura, y así permite extender de forma segura una red local sobre una red pública o no controlada (generalmente sobre Internet). Para conseguir protección de datos en las conexiones las VPN utilizan mecanismos de autenticación y encriptación (por ejemplo, 3DES o AES) para proveer una capa de defensa sobre la conexión de red. 1.3.3 Listas de acceso o ACL Una lista de acceso o ACL (del inglés Access Control List) es un concepto telemático por el cual se permite y/o deniega tráfico de red otorgando o restringiendo privilegios. Esto se hace a través de parámetros determinados tales como dirección IP fuente y/o destino, servicios de red o número de puerto. (Krutz 2005). Generalmente los routers con ACL no mantienen una TCP conection state para cada conexión. Los routers con listas de acceso ofrecen protección perimetral y una base de defensa porque estos son a la vez dispositivos de frontera para redes perimetrales y elementos núcleo para grandes redes. Los ACL y los Firewalls se combinan para componer la base de las defensas tradicionales de redes seguras. (Kaufman, Perlman et al. 2002)..
(24) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 13. 1.4 Sistemas de Detección de Intrusos (IDS) 1.4.1 Antecedentes Las primeras investigaciones sobre detección de intrusos comienzan en 1980 en un trabajo de consultoría realizado para el gobierno norteamericano por James P. Anderson (Anderson 1972).En este artículo se expone la idea de que el comportamiento normal de un usuario podría caracterizarse mediante el análisis de su actividad en los registros de auditoria. Así, los intentos de intrusión podrían descubrirse detectando actividades anómalas que se desviaran notablemente de su comportamiento normal. A partir de este momento, comienzan una gran variedad de investigaciones en busca de técnicas y algoritmos para el análisis del comportamiento de un sistema informático. Dichas auditorías fueron incluidas por el Departamento de Defensa de los Estados Unidos como requisito en cualquier sistema de confianza. Esto está incluido en el llamado “Libro Marrón” (Center 1988) de la serie de documentos publicados por dicho departamento relativos a los Sistemas de Confianza (denominados “Serie Arco Iris “debido al color de sus tapas). El primer modelo de detección de anomalías fue propuesto por Dorothy Denning (Denning 1986), se basaba en la idea de monitorizar las operaciones estándares de un sistema objetivo, observando desviaciones en su uso. Su artículo provee un marco para establecer las metodologías que posteriormente inspirarían a muchos investigadores. Entre 1988 y 1990 el Instituto de Investigación SRI Internacional desarrolla la propuesta de Denning. De ese modo surge IDES (del inglés Intrusion Detection Expert System), un sistema experto que detecta las desviaciones a partir del comportamiento de diferentes sujetos. IDES fue el primer sistema de detección de anomalías en host. Paralelamente se realiza en 1988, en los laboratorios Lawrence Livermore de la Universidad de California, el proyecto Haystack para las fuerzas aéreas de E.UU. Haystack era el primer IDS que analizaba los datos de auditoría y los comparaba con patrones de ataque predefinidos. De este modo nace el primer sistema de detección de usos indebidos basado en firmas, el tipo de IDS más extendido en el mercado actual..
(25) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 14. En 1990, surgen los primeros proyectos de IDS basados en red por Todd Heberlein, el cual desarrolla NSM (Network Security Monitor) (Heberlein 1995) en la Universidad de California. En esa misma fecha, en Los Álamos National Laboratory de EEUU se realiza un prototipo de un sistema experto que monitoriza la actividad de red. Su nombre es NADIR (del inglés Network Anomaly Detector and Intrusion Reporter) (Mukherjee, Heberlein et al. 1994). 1.4.2 Definición Un IDS o sistema de detección de intrusos es una herramienta de seguridad que permite detectar o monitorizar los eventos ocurridos en un determinado sistema informático o red informática en busca de intentos de comprometer la seguridad de dicho sistema.(García 2008). Los IDS ayudan a entender el ataque, estimar los daños causados y tratan de prevenir otros ataques similares. 1.4.3 Funciones de los IDS Las funciones de un IDS se pueden resumir de la siguiente forma: (Marchette 2001) Detección de ataques en el momento que están ocurriendo o poco después. Monitorización y análisis de las actividades de los usuarios. De este modo se pueden conocer los servicios que usan los usuarios, y estudiar el contenido del tráfico, en busca de elementos anómalos. Auditoría de configuraciones y vulnerabilidades de determinados sistemas. Descubrir sistemas con servicios habilitados que no deberían de tener, mediante el análisis del tráfico y de los logs. Análisis de comportamiento anormal. Si se detecta una conexión fuera de hora, reintentos de conexión fallidos y otros, existe la posibilidad de que se esté en presencia de una intrusión. Un análisis detallado del tráfico y los logs puede revelar una máquina comprometida o un usuario con su contraseña al descubierto..
(26) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 15. Automatizar tareas como la actualización de reglas, la obtención y análisis de logs, la configuración de cortafuegos y otros. 1.4.4 Características básicas de los IDS El IDS ha de ejecutarse continuamente sin que nadie esté obligado a supervisarlo; independientemente de que al detectar un problema se notifique a un operador, el funcionamiento habitual no debe implicar interacción con ningún operador. La aceptabilidad o grado de aceptación del IDS, es decir, los mecanismos de detección de intrusos han de ser aceptables para las personas que trabajan habitualmente en el entorno. La utilidad de un sistema de detección de intrusos debe ser evaluada teniendo en cuenta la probabilidad que tiene el sistema de detectar un ataque y la probabilidad de emitir falsas alarmas. (Vigo 2005). En el momento que un IDS toma una decisión, éste puede tomarla de forma correcta o incorrecta. En la figura 1.1 se muestran los cuatro posibles estados: (Sobiery 2007). Falso positivo: También se conoce como falsa alarma y corresponde a tráfico inofensivo que se considera como ataque. Falso negativo: Ataque que no detecta el IDS. Verdadero positivo: Evento inofensivo que se etiqueta como tráfico normal. Verdadero negativo: Ataque detectado correctamente. Figura 1.1: Toma de decisión del IDS..
(27) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 16. El objetivo del IDS es maximizar los aciertos (verdaderos negativos y verdaderos positivos) y minimizar el número de fallos del IDS (falsos positivos y falsos negativos). Las altas tasas de falsos positivos y de falsos negativos pueden minar los motivos para usar un IDS. Los falsos positivos ocupan tiempo y recursos cuando el IDS genera falsas alarmas. Peor aún son los falsos negativos, que son todos los ataques que el IDS falla en detectar. Estas tasas complican la justificación del empleo de un IDS, pudiendo ser consecuencia de su arquitectura y configuración. (Molina and Joaquín 2008). Un IDS puede compartir u obtener información de otros sistemas como firewalls, routers y switches, lo que permite reconfigurar las características de la red de acuerdo a los eventos que se generan. También permite que se utilicen protocolos como SNMP (del inglés Simple Network Management Protocol) para enviar notificaciones y alertas a otras máquinas de la red. Esta característica de los IDS recibe el nombre de interoperabilidad. Otra característica a destacar en los IDS, es la correlación, que consiste en la capacidad de establecer relaciones lógicas entre eventos diferentes e independientes, lo que permite manejar eventos de seguridad complejos que individualmente no son muy significativos, pero que analizados como un todo pueden representar un riesgo alto en la seguridad del sistema.(Gahonapag 2008). 1.4.5 Clasificación de los IDS Los IDS están clasificados según su posicionamiento en el sistema y las funciones inherentes a este, se dividen en dos grupos fundamentalmente: IDS basado en host (HIDS) e IDS basado en red (NIDS). (Noel, Wijesekera et al. 2002). 1.4.5.1 IDS basado en host (HIDS) Este tipo de sistemas son anteriores a los NIDS. En la década de los 80 era habitual revisar los ficheros de log de los sistemas para intentar encontrar actividades sospechosas o relevantes en lo que respecta a la seguridad del sistema. Hoy en día estos sistemas aún se continúan utilizando, pero son mucho más sofisticados de lo que eran en su comienzo, y son capaces de realizar el análisis en tiempo real de estos ficheros de log, para detectar comportamientos anómalos. Esto permite que se identifiquen.
(28) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 17. los eventos de manera más precisa, reconociendo a los usuarios y procesos que han generado dichos procesos. Actualmente, estos sistemas tan rápidos detectan un cambio en estos ficheros de log o en los ficheros de configuración del sistema, los comparan con sus ficheros de configuración en los cuales tienen establecidas las políticas de seguridad del sistema, y la respuesta que deben dar ante determinados cambios. Algunos de estos sistemas tienen además la capacidad de escuchar en determinados puertos del sistema, y lanzar una alarma cuando estos puertos son accedidos. Ventajas: Verificación de los ataques. Actividad específica del sistema. Monitorización de los componentes claves del sistema. No es necesario la instalación de hardware adicional. Desventajas: La principal desventaja que presentan es que si un ataque DoS llega a la máquina, el IDS puede ser deshabilitado, ya que estos ataques pueden usar todos los recursos del host, influyendo en el rendimiento del equipo.(Kabiri and Ghorbani 2005). 1.4.5.2 IDS basado en red (NIDS) Estos sistemas toman el tráfico de la red como entrada de datos. Habitualmente utilizan una interfaz de red que está configurado para su funcionamiento en modo promiscuo, de modo que escuchan y analizan todo el tráfico que circula por la red en tiempo real. Normalmente, aplican un filtro a este tráfico, para determinar cuáles de los paquetes son descartados, y cuáles son dejados para ser analizados. Esto ayuda a que el rendimiento de estas aplicaciones sea mejorado, puesto que aquel tráfico que se sabe que no es malicioso, es pasado por alto. (Sobiery 2007)..
(29) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 18. Ventajas: Costo: Los NIDS permiten la aplicación de estrategias de instalación únicamente en aquellos puntos de la red que son considerados como puntos de acceso críticos. De este modo el costo de mantenimiento decrece. Análisis de paquetes: Examinan todas las cabeceras de los paquetes para la detección de actividades sospechosas en la red. Muchos de los ataques por denegación de servicio. que. se. producen. actualmente,. pueden ser detectados únicamente. examinando las cabeceras de los paquetes que circulan a través de la red. Un NIDS colocado estratégicamente dentro de la red puede llegar a monitorizar una red grande sin afectar el funcionamiento de la red. Eliminación de las evidencias: Utilizan el tráfico de red para detectar los ataques, por tanto, los atacantes no pueden eliminar los rastros que sus acciones dejan. Este es uno de los problemas que se encuentran en los HIDS, puesto que el atacante puede ser capaz de eliminar cualquier rastro, borrando determinadas líneas de los ficheros de log. Complemento y verificación de las políticas de seguridad. En caso de haber alguna política definida respecto a encriptación, un NIDS es capaz de averiguar si realmente esa política se está aplicando, viendo la cantidad de tráfico encriptado que circula a través de la red. Asimismo, también puede ayudar a verificar el funcionamiento de los cortafuegos, verificando si ciertas direcciones o tipos de tráfico están filtrados o no. Independencia del sistema operativo. Los NIDS no son dependientes del sistema operativo que se esté ejecutando en las máquinas, mientras que los HIDS requieren distintas instalaciones dependiendo del sistema operativo que esté instalado en cada uno de estos equipos. Desventajas: En una red grande en la que se genera una gran cantidad de tráfico, el NIDS puede tener dificultades para procesar todos los paquetes de red recibidos si no está correctamente configurado..
(30) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 19. Simplemente informan sobre la llegada de un ataque, pero no indican si dicho ataque ha tenido éxito o no. 1.4.6 Posición del IDS Se debe de colocar el IDS de forma que se garantice la interoperabilidad y la correlación en la red. Así la interoperabilidad permite reconfigurar las características de la red de acuerdo a los eventos que se generan. Típicamente se colocan en áreas con control en el flujo de red, por ello resulta razonable colocar un NIDS en el segmento por el cual fluya la mayor cantidad de tráfico (Kabiri and Ghorbani 2005). Colocarlo antes o detrás del firewall puede también resultar útil, ya que para el primer caso se puede tener una representación de la cantidad de ataques que son filtrados en el firewall y en el segundo las alarmas representan ataques que han podido sobrepasar a este. También se puede colocar paralelamente al firewall o a la DMZ como en la figura 1.2.. Figura 1.2: Posicionamiento del IDS. 1.4.7 Principales IDS en la actualidad En la actualidad hay una gran variedad de productos destinados a la detección de intrusos. Entre los principales productos comerciales que están presentes se encuentran: Cisco Internet Security Systems.
(31) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 20. Symantec Enterasys Por otro lado además de las soluciones comerciales se tienen soluciones de libre distribución de gran utilidad como: Snort (http://www.snort.org/) Prelude (www.prelude- ids.org) Secure Point (http://www.securepoint.cc) Aide (http://sourceforge.net/projects/aide) Snare (http://www.intersectalliance.com). 1.5 Snort 1.5.1 Descripción Snort es un IDS en tiempo real desarrollado por Martín Roesch (Roesch 2009) y está disponible bajo licencia GNU General Public License (GLP); es gratuito y funciona bajo plataformas Windows y GNU/Linux (Rehman 2003).Actualmente el proyecto está respaldado por la empresa Source Fire fundada por el mismo Roesch, la cual fue comprada en el 2005 por la multinacional Checkpoint. Este IDS implementa un lenguaje de creación de reglas flexibles, potente y sencillo, lo que se convierte en uno de los más usados y dispone de una gran cantidad de filtros o reglas para backdoor, ddos, finger, ftp, ataques Web, CGI, escaneos Nmap. La característica más apreciada de Snort, además de su funcionalidad, es su subsistema flexible de firmas de ataques. Snort tiene una base de datos de ataques, la cual es posible actualizarla constantemente a través de su página Web (Scott, Wolfe et al. 2004). También los usuarios pueden crear reglas o firmas basadas en las características de los nuevos ataques de red y enviarlas a la lista de correo de firmas de Snort, para que así todos los usuarios de Snort se puedan beneficiar. Esta ética de comunidad y compartir ha convertido a Snort en uno de los IDS basado en red más populares y actualizados..
(32) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 21. 1.5.2 Funcionamiento del Snort En (Zhou, Zhongwen et al. 2005) se plantea los cuatro modos de funcionamiento: Sniffer: Sólo monitorea el tráfico de la red y lo muestra en pantalla. Packet Logger: Guarda los paquetes en archivos planos o binarios. NIDS: De acuerdo a ciertos parámetros de configuración, alerta y/o registra los eventos que deben ser verificados posteriormente por el administrador. Inline: Puede impedir el paso de paquetes según los parámetros de configuración. 1.5.3 Arquitectura de Snort La arquitectura de Snort está basada en el rendimiento, la simplicidad y la flexibilidad. Está dividida en tres subsistemas, los cuales son el decodificador de paquetes, el motor de detección y el subsistema de alertas y logs (ver figura 1.1). Estos módulos o plugins se sitúan por encima de la librería de captura de paquetes libpcap, la cual provee a Snort de las funciones necesarias para un sniffer de paquetes, utilizando para ello una interfaz de red configurado en modo promiscuo (Molina and Joaquín 2008). La configuración del programa, las reglas, y la generación de las estructuras de datos, tienen lugar antes de ser inicializada la sección del sniffer, manteniendo el aumento de procesamiento por paquete al mínimo para ejecutar las funcionalidades base del programa. Modo de Salida Seleccionado (Archivos log, consola, sockets…). Plug-ins de Salida Plug-ins de Detección Motor de Detección Lee y aplica. Referencia. Preprocesadores Archivos de Reglas. Decodificador. Módulo de Captura (Basado en LibPcap o WinPcap). Tráfico de la Red. Figura 1.3: Diagrama descriptivo del Snort..
(33) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 22. 1.5.3.1 Decodificador de paquetes El decodificador de paquetes se organiza alrededor de los niveles de la pila de protocolos presentes en la definición de los protocolos TCP/IP (Roesch 2009). Cada subrutina en el decodificador impone orden en el paquete de datos mediante la colocación de las estructuras de datos en el paquete que llega. Estas rutinas de decodificación son llamadas en orden a través de la pila de protocolos que comienza con el nivel más bajo: protocolos de la capa de enlace de datos, descifrando cada protocolo conforme asciende en la pila de protocolos de red (véase figura 1.4). La velocidad en cuanto a la decodificación de los paquetes es muy importante en esta sección, por ello la mayor parte de las funcionalidades del decodificador de paquetes, consisten en la inserción de punteros entre la estructura de datos para su posterior análisis por los preprocesadores y el motor de detección. Snort es capaz de decodificar paquetes de los protocolos Ethernet (véase figura 1.5), SLIP y PPP.. Figura 1.4: Flujo de Datos del Decodificador.. Figura 1.5: Decodificación de un paquete Ethernet. 1.5.3.2 Motor de detección El motor de detección, es la parte fundamental del Snort; es el encargado de supervisar los paquetes que llegan a la red monitorizada, comparándolos con los patrones u opciones.
(34) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 23. listadas en los ficheros de reglas de Snort para encontrar posibles ataques o actividades anómalas dentro de esos paquetes. (Rehman 2003). Snort mantiene sus reglas de detección en una lista enlazada de dos dimensiones que son llamadas “Chain Headers” y “Chain Options” (véase figura 1.6). Estas son listas de reglas que han sido condensadas en una lista de atributos comunes en “Chain Headers” con los modificadores que permiten insertar opciones en la detección en la parte de “Chain Options”. Por ejemplo, en las 45 reglas de detección de pruebas de ataques por CGI-BIN, que están especificadas en la librería común de reglas de Snort, generalmente la dirección IP origen y destino así como el puerto origen y el puerto destino es el mismo, por tanto, todas estas reglas detección están condensadas en una única “Chain Header” y las características particulares de cada regla están insertadas en las estructuras de “Chain Options”. Esto se hace así, para lograr que el motor de detección funcione de una forma más rápida. Cuando llega un paquete al motor de detección, este busca en la lista ’Chain Header’ de izquierda a derecha la primera coincidencia. Después, buscará por la lista ’Chain Option’ si el paquete cumple las opciones especificadas. Si aparece alguna coincidencia no sigue buscando y se toman las acciones correspondientes. En caso contrario, busca en el siguiente nodo de ’Chain Header’.. Figura 1.6: Estructuras de datos de Snort..
(35) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 24. Estas cadenas de reglas son buscadas recursivamente para cada paquete en ambas direcciones. El motor de detección solamente chequea aquellas cadenas que hayan sido inicializadas al lanzarse el programa, por tanto para que cualquier modificación de los ficheros en los que están definidas las reglas se incluyan, ha de pararse el programa y volverse a lanzar. La primera regla que coincida con el paquete decodificado lanza la acción que lleva asociada en la definición de la regla, y retorna. 1.5.3.3 Preprocesadores Los preprocesadores permiten a Snort, extender su funcionalidad mediante la utilización de plugins. Estos plugins o añadidos permiten a los usuarios y programadores extender la funcionalidad de Snort insertando módulos de una manera sencilla. La arquitectura de preprocesadores de Snort consiste en pequeños programas C que toman decisiones sobre qué hacer con el paquete. Estos pequeños programas C se compilan junto a Snort en forma de librería (Caswell, Beale et al. 2003). Estos son llamados después de que Snort decodifique la información pero antes de enviarlos al motor de detección. 1.5.3.4 Subsistema de log y alertas (outputs) El subsistema de logs y de alertas es seleccionado al lanzar el programa, mediante modificaciones que se incluyen en la línea de comandos. Hay tres opciones de log y cinco de alertas. Las tres formas de log son las siguientes, almacenar los paquetes de manera decodificada, guardar los paquetes de una manera legible, y almacenar los paquetes en el formato que utiliza la aplicación Unix tcpdump (Rehman 2003). La forma decodificada de almacenamiento, permite un análisis rápido de los datos que se han recogido. Sin embargo, la tercera forma de almacenamiento, es mucho más rápida de guardar en disco y debe de ser usada en aquellos sistemas en los que se requiera un alto rendimiento del programa, o en aquellos sistemas que no tengan demasiados recursos. Las alertas, pueden ser enviadas al sistema de log de la maquina (syslog, sólo en máquinas UNIX) almacenadas en ficheros de log en dos formatos diferentes, enviadas mediante “WinPopup” (utilizando el cliente SMB proporcionado por Samba). (Cox and Gerg 2004) Hay dos opciones para enviar las alertas a un fichero de texto plano, mandar las alertas por completo, o una manera rápida de almacenar esta alertas en el fichero de texto..
(36) CAPÍTULO 1Introducción a los Sistemas de Detención de Intrusos.. 25. Mediante el envío completo de la alerta, se escribe el mensaje asociado a ella y la información contenida en la cabecera del paquete. La forma rápida de almacenamiento escribe un conjunto condensado de información, por último también se puede deshabilitar por completo esta opción de almacenamiento de las alertas. Esto puede ser útil en aquellos casos en los que el sistema vaya excesivamente cargado, o si se están desarrollando test de intrusión en el sistemas. 1.5.3.5 Sistema de reglas de Snort Como se ha mencionado anteriormente, Snort es un NIDS basado en reglas, las cuales marcan el funcionamiento del sistema, mediante los paquetes que han de ser tenidos en cuenta, y las acciones asociadas a estos paquetes. Cada una de las reglas está dividida en dos secciones lógicas, la cabecera de la regla y sus opciones (véase figura 1.7). La cabecera de la regla contiene la acción asociada a la regla, el protocolo la dirección IP fuente y destino así como las máscaras de red y los puertos fuente y destino del paquete (véase figura 1.8). La parte de las opciones de la regla contiene los mensajes de alerta e información adicional en las que se le dice en que partes del paquete se ha de fijar, para determinar si la acción definida en la cabecera de la regla ha de ser tomada o no. (Gregg 2006). Figura 1.7: Estructura de una regla.. Figura 1.8: Estructura de la cabecera de una regla Snort A continuación se muestra un ejemplo de una regla: Alert dsize:. icmp 0;. $EXTERNAL_NET itype:. 8;. any. ->. reference:. $HOME_NET arachnids,. any. (msg:"ICMP. 162;. PING. classtype:. NMAP";. attempted-. recon; Sid: 469; rev: 3 ;). En el anexo I se realiza una descripción completa sobre las reglas, su formato y sus campos..
(37) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. CAPÍTULO 2.. 26. Implementación de un IDS mediante el Snort. En este capítulo se aborda la instalación y configuración del Snort para su implementación como IDS; se ilustran los principales paso a seguir y se configuran los elementos esenciales tales como: la red a la cual se desea proteger, las reglas y preprocesadores a utilizar, así como el formato que se desea que sea guardada la información recopilada en el fichero de salida. También se tratan los plugins que se adicionan al Snort y que permiten un correcto funcionamiento del IDS, entre las cuales está el Mysql, BASE y Pmgraph. Por último se mencionan las características de los programas que se van a utilizar en la realización de las pruebas de seguridad que permitirán evaluar el detector de intruso implementado. 2.1. Herramientas auxiliares para el funcionamiento del NIDS. Para la realización de esta investigación se realiza la instalación de una máquina virtual mediante el VMware con la última distribución de Ubuntu (versión 10.10), la cual presenta la versión 2.8.5.2 del Snort en su gestor de paquetes disponible para esta distribución, aunque si se desea usar la versión más actual se puede descargar desde la página Web oficial (http:\\www.snort.org). La forma más sencilla es instalarlo directamente a través del gestor de paquetes debido a que de forma manual su instalación es más compleja y consta de muchos pasos. En esta investigación, Snort registra la información de las alertas en una base de datos mysql, denominada Snort. La elección de Mysql radica en que es el gestor de base de datos Open Source más popular, que permite dar la posibilidad de crear y configurar usuarios, asignando a cada uno de ellos permisos diferentes (Harper 2004.). Además da la opción de exportar e importar datos fácilmente, incluso una base de datos completa. Esta información que brinda Snort y que es almacenada en Mysql, es posible acceder a ella de forma.
(38) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 27. ordenada y sencilla a través de la aplicación Web escrita en Php denominada BASE (del inglés Basic Analysis and Security Engine). BASE es el sucesor de otro sistema denominado ACID (del inglés Analysis Console for Instruction Databases), surge debido a la dificultad de analizar los cientos de alertas que se generan en redes con alto tráfico. Entre las facilidades que ofrece BASE, y que se convirtieron en los aspectos considerados para su uso en el proyecto, se tiene la opción de hacer búsquedas de alertas específicas ya sean por IP fuente/destino, por fecha, por ataque, por protocolo, realizar informes, gráficas, y permite además observar de una forma gráfica los paquetes capturados y la generación de gráficas estadísticas. Para la instalación del Snort compilado con Mysql es necesaria la instalación de otros elementos importantes para su funcionamiento adecuado los cuales se describen a continuación. 2.1.1. Apache2. Es un servidor Web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux) y para los sistemas operativos de. Microsoft Windows y Macintosh. Apache presenta la. capacidad de tener código abierto y ser configurable para la aplicación de bases de datos que se utiliza en el proyecto con la ayuda de mysql. Apache tiene amplia aceptación en la red: desde 1996, es el servidor HTTP más usado, alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios Web en el mundo. 2.1.2. Php5. Php es una de las mejores herramientas utilizadas para la visualización y configuración de páginas. Es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas Web dinámicas, similar al ASP de Microsoft o el JSP de Sun, embebido en páginas html y ejecutado en el servidor. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas de sí mismo. La meta del lenguaje es permitir rápidamente a los desarrolladores la generación dinámica de páginas..
(39) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 2.2. 28. Instalación y configuración del IDS. Para la instalación del Snort a través del gestor de paquetes, de mysql-server, apache 2 y de los demás paquetes complementarios; se ejecutan los siguientes comandos en el terminal.(Rehman 2003). Apt-get install apache2 php5 libapache2- mod-php5 Apt-get install mysql-server mysql-client php5-mysql Apt-get install phpmyadmin Apt-get install Snort-mysql Al instalar este último, se pide definir una red la HOME NET o red local, esto se puede realizar de forma opcional en ese momento o más adelante dentro de la configuración del Snort. 2.2.1. Configuración de Mysql. La ejecución del servidor de mysql se puede comprobar con el comando ps aux | grep mysql. Con el sistema básico instalado, se comienza la preparación de la base de datos. Esta se divide en varios apartados. Primero se debe elegir una contraseña adecuada, crear la base de datos necesaria y definir la estructura de las tablas. Se realiza la conexión como root al servicio de mysql y se crea la base de datos y los permisos para Snortusr (Harper 2004.). Para abrir intérprete de mysql (véase figura 2.2), se ejecuta desde el terminal, el comando mysql –uroot -p y se pone la contraseña de root. (véase figura 2.1).. Figura 2.1: Ingreso a Mysql con el Usuario root y Contraseña..
(40) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 29. Figura 2.2: Interfaz de Mysql. A continuación se crea la nueva base de datos llamada Snort. Para realizar esto se ejecuta el comando que se muestra en la figura 2.3.. Figura 2.3: Creación de la base de datos Snort. Se debe crear un usuario específico para la base de datos Snort, para no usar el usuario root, esto se realiza mediante el comando grant all on Snort.* to User@localhost identified by 'clave'; (véase figura 2.4).. Figura 2.4: Creación de un usuario para la base de datos Snort. Es importante señalar que el login y el password para la base de datos snort debe ser el mismo que el especificado en el archivo /etc/snort/snort.conf, durante la configuración del Snort. Completado ambos pasos, se verifica para confirmar que todo está bien; para eso se entra en el intérprete de mysql como el usuario de snort creado anteriormente. La comprobación de la base de datos y la estructura de tabla se realiza con los siguientes comandos. Visualización de las base de datos: Mysql> show databases; (véase figura 2.5).
(41) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 30. Figura 2.5: Visualización de Base de Datos. Uso de la base de datos Snort. Con el siguiente comando se cambia la base de datos a utilizar para el almacenamiento de las alertas, en este caso la base de datos es snort. Mysql> use Snort; (véase figura 2.6). Figura 2.6: Cambio de Base de Datos. Visualización de las tablas creadas. Mediante este comando se presenta en pantalla todas las tablas creadas dentro de Snort. Mysql> show tables; (véase figura 2.7).
(42) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 31. Figura 2.7: Visualización de tablas de Snort. 2.2.2. Configuración de Snort. Después de preparar la base de datos, se comienza a configurar el Snort. Para que Snort funcione como un IDS de redes es necesario definir y estructurar su comportamiento en su archivo de configuración, snort.conf (véase figura 2.8), el cual se encuentra ubicado por defecto en el directorio /etc/ snort. (Belmonte 2002). El fichero se divide en 4 partes fundamentales: Configuración de las variables de red para nuestro entorno. Configuración de los preprocesadores. Configuración de los plugins de salida. Personalización de las reglas..
(43) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 32. Figura 2.8: Archivo de configuración del Snort. Configuración de las variables de red Se necesita añadir información sobre la red y los servidores, de forma que Snort pueda relacionar las reglas correctamente. Para garantizar que el sistema monitoriza el tráfico adecuado, las variables HOME_NET y EXTERNAL_NET deben reflejar la infraestructura de la red. En una red simple, HOME_NET se define un rango de IP privado, como 192.168.0.0/24. Esto implica que todo el tráfico originado en el rango de IP 192.168.0.1255 es considerado tráfico interno (Belmonte 2002. ). Estos detalles varían dependiendo de cada configuración. Si en nuestra red interna hay varias subredes, se puede añadir todas separándolas con comas. La entrada EXTERNAL_NET es un listado de direcciones específicas que se consideran externas. La forma más sencilla de configurarla es usando el valor !$HOME_NET,. que Snort entenderá como “cualquier dirección distinta de. HOME_NET”. Se recomienda establecer al menos los servidores de DNS (del inglés Domain Name Server) que utilizan nuestros equipos, para evitar falsos positivos.(Gramajo 2005)..
(44) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 33. Para la realización de esta investigación se configura como red interna a proteger varias subredes lo cual se muestra en la figura 2.9, en caso de haber sido más de una red se separan por comas y se ponen entre corchetes; también se definen como servidores de DNS el 10.12.20.1 y el 10.12.20.2 y como servidor Web el 10.12.20.5. Los demás servidores están configurados con la con la palabra clave “any” para especificar cualquier servidor dentro de la red como se observa en la figura. (véase figura 2.10).. Figura 2.9: Configuración de la red interna en el snort.conf.. Figura 2.10 Configuración de los servidores en el fichero snort.conf. Configuración de los preprocesadores A partir de la versión 1.5 aparecieron los preprocesadores que permiten que las funcionalidades de Snort sean extendidas por los usuarios proporcionando un sistema de acceso a los paquetes antes de que sean procesados por el motor de detección de Snort y las reglas. Las configuraciones predeterminadas para estos subsistemas son muy generales, a medida que se experimente con Snort, se puede ajustar para obtener un mejor rendimiento y resultados..
(45) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 34. Los preprocesadores, se pueden activar y desactivar a través de snort.conf, permitiendo a Snort. la. manipulación. del tráfico. entrante.. Snort. activa. automáticamente. varios. preprocesadores para el tratamiento del tráfico fragmentado, la inspección del flujo con control de estado, la monitorización del rendimiento, la decodificación del tráfico RPC, la monitorización del tráfico ftp/telnet/SMTP/DNS/SMB y el escaneo de puertos. Hay incluso un preprocesador especialmente diseñado para el troyano Back Orifice.(Roesch 2009). Para la carga y configuración de estos preprocesadores se utiliza la palabra clave preprocessor dentro de los ficheros que contiene las reglas. Esta directiva tiene el siguiente formato:(Gregg 2006). preprocessor <nombre>:<opciones> Preprocesadores configurados: Sfportscan Un escaneo de puertos se define como una conexión TCP que intenta acceder a más de P puertos en S segundos, o paquetes UDP que son enviados a más de P puertos en S segundos. Estos escaneos pueden ser realizados a numerosas direcciones IP destino así como a numerosos puertos a través de distintas direcciones IP. El módulo sfPortscan, es diseñado para descubrir la primera fase en un ataque de red: Reconocimiento: En esta fase un atacante determina qué tipos de protocolos de red o servicios soporta un host. Detecta escaneos a nivel de herramienta, como puede ser un escaneo de puertos realizado con Nmap. Opciones de configuración del Sfportscan: Proto: Indica que protocolo se desea que inspeccione para detectar un scan. Se puede usar tcp, udp, ip, all. Memcap: Máxima cantidad de memoria a usar por sfportscan expresada en bytes. A mayor cantidad, mayor capacidad de detección. Sense_level: Ajusta el nivel de sensibilidad de la detección. Puede ser low, medium o high: Es importante este ajuste para no generar falsos positivos / negativos. Dependiendo del nivel indicado, se podrá en el preprocesador detectar un mayor número de escaneos pero a cambio de la generación de falsas alertas..
(46) CAPÍTULO 2 .Implementación de un IDS mediante el Snort.. 35. Scan_type: Indica el tipo de escaneo a detectar. Se puede usar portsweep, decoy_portscan, distributed_portscan, o all (todos). logfile: Nombre del fichero donde sfportscan almacenará los logs de alertas. Junto a estas directivas u opciones, se pueden usar otras como: Watch-ip: Indica a sfportscan que máquinas/hosts o redes vamos a inspeccionar. Los demás se ignoran para la detección. Se puede usar, por ejemplo una dirección IP o varias subredes. Además se puede indicar qué puertos serán inspeccionados. ignore-scanner: Prácticamente igual que watch-ip pero para ignorar IPs, redes y/o puertos en la detección en caso de que se identifiquen como scanners activos. ignore-scanned: Para ignorar IPs, redes, puertos que son objetivos de un escaneo. En el caso de que haya servidores que no se quiera que sean controlados por el preprocesador de escaneo de puertos (como pueden ser servidores NTP, NFS, y servidores DNS). Los argumentos que se le pasan a este preprocesador consisten en una lista de los pares dirección IP que han de ignorarse. En la figura 2.11 se muestra el Prepocesador sfportscan configurado para este trabajo.. Figura 2.11: Prepocesador sfportscan configurado en el fichero snort.conf. . Http_Inspect. Http_Inspect: decodifica el protocolo HTTP para aplicaciones del usuario. Dado un buffer de datos, http-inspect decodifica el buffer, encuentra los campos HTTP y los normaliza. Este preprocesador permite alertar ante ciertos campos sospechosos en el protocolo HTTP. El principal problema que con http_inspect es que alerta sobre codificaciones sospechosas donde los "afectados" son servers de la extranet. Los alertas más recurrentes son "Double decoding attack", "IIS Unicode Codepoint Encoding", "Bare Byte Unicode Encoding", y.
Figure
+7
Documento similar