i UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LASEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX” TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: JAVIER ANDRÉS ARELLANO GARCÍA TUTOR: ING. ALFONSO GUIJARRO RODRÍGUEZ GUAYAQUIL – ECUADOR 2011 ii Guayaquil,_________________________ 2011 APROBACIÓN DEL TUTOR En mi calidad de Tutor del trabajo de investigación, “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LA SEGURIDAD INFORMATICAAPLICANDO LA PLATAFORMAGNU-LINUX”elaboradoporelSr.JAVIER ANDRÉS ARELLANO GARCÍA, egresado de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas, me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes. Atentamente __________________________________ Ing. Alfonso Guijarro Rodríguez TUTOR iii DEDICATORIA La presente tesis se la dedico a mi familia por su apoyo y confianza. Gracias por ayudarme a cumplir mis objetivos como persona y estudiante. A mi madre, que a pesar de la distancia siempre estuvo apoyándome y aconsejándome. . iv TRIBUNAL DE GRADO Ing. Fernando Abad Montero Ing. Juan ChanabáAlcócer DECANO DE LA FACULTAD DIRECTOR CIENCIAS MATEMÁTICAS Y FÍSICAS MIEMBRO DEL TRIBUNAL Ing. Alfonso Guijarro Rodríguez MIEMBRO DEL TRIBUNAL SECRETARIO UNIVERSIDAD DE GUAYAQUIL TUTOR v FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LASEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX” Autor: Javier Andrés Arellano García Tutor: Alfonso Guijarro Rodríguez RESUMEN La constante evolución de la tecnología informática ha permitido un aumento considerable de datos que viajan a través de Internet. Con el pasar del tiempo se han desarrollado varias técnicas de invasiones de sistemas, robo de datos y la interrupción de servicios. Estos hallazgos han llevado a los desarrolladores de software a crear nuevas tecnologías para el control y seguimiento de las actividades preventivas procedentes de redes no confiables en un intento de aumentar el grado de seguridad de la red y evitar el creciente número de ataques. Entre las varias formas de protección, un IDS (IntrusionDetectionSystem) es una solución que busca cumplir con ciertos requisitos para crear una capa de seguridad en una red. En este trabajo se propone examinar los conceptos, el funcionamiento y los aspectos más relevantes sobre la tecnología de detección de intrusiones (IDS). En especial analizaremos SNORT una solución Open Source(código abierto), ampliamente utilizada hoy en día. UNIVERSIDAD DE GUAYAQUIL vi FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LA SEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX Proyecto de trabajo de grado que se presenta como requisito para optar por el título de INGENIEROen SISTEMAS COMPUTACIONALES. Autor:Javier Andrés Arellano García C.I.:0919263970 Tutor: Ing. Alfonso Guijarro Rodríguez Guayaquil, Septiembre del 2011 CERTIFICADO DE ACEPTACIÓN DEL TUTOR vii En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil, CERTIFICO: Que he analizado el Proyecto de Grado presentado por elegresadoJAVIER ANDRÉS ARELLANO GARCÍA, como requisito previo para optar por el título de Ingeniero cuyo problema es: “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LA SEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX”, considero aprobado el trabajo en su totalidad. Presentado por: Arellano García Javier Andrés Cédula de Ciudadanía No. 0919263970 Tutor: Ing. Alfonso Guijarro Rodríguez Guayaquil, Septiembre del 2011 ÍNDICE GENERAL viii Pág. CARÁTULA CARTA DE ACEPTACIÓN DEL TUTOR DEDICATORIA TRIBUNAL DE GRADO RESUMEN CERTIFICADO DE ACEPTACIÓN DEL TUTOR ÍNDICE GENERAL ÍNDICE DE CUADROS ÍNDICE DE GRAFICOS RESUMEN ABSTRACT i ii iii iv v vii viii x xii xv xvi INTRODUCCIÓN 1 CAPÍTULO I.- EL PROBLEMA PLANTEAMIENTO DEL PROBLEMA Ubicación del Problema en un contexto Situación Conflicto Nudos críticos Causas y consecuencias del problema Delimitación del Problema Evaluación del Problema Objetivos de la investigación Objetivo general Objetivos específicos Justificación e importancia 4 4 5 10 11 12 14 14 14 15 CAPÍTULO II.- MARCO TEÓRICO ANTECEDENTES DEL ESTUDIO La importancia de la seguridad Sistemas de detección de intrusos Antecedentes de los sistemas de detección de intrusos Arquitectura de un IDS Tipos de IDS Escenarios de los IDS en una LAN Análisis de los datos obtenidos por los sistemas NIDS Falsos positivos y falsos negativos Tipos de ataques Ataques de denegación de servicio (DOS) IP Flooding Smurf TCP/SYN Flooding 17 18 20 23 27 29 31 37 42 43 44 48 49 ix Teardrop Snork Ping of death Ataques distribuidos (DDOS) TRIN00 TribeFlood Network Shaft TribeFlood Network 2000 Ejemplo de ataque DDOS Snort Componentes de Snort Módulo de captura de datos Decodificador Preprocesador Reglas Categorías de reglas Snort Estructura de las reglas Cabecera de una regla Las opciones de las reglas Motor de detección Módulos de salida 51 53 55 57 58 61 63 65 66 72 73 75 77 79 82 83 84 85 87 89 92 CAPÍTULO III.- METODOLOGÍA DISEÑO DE LA INVESTIGACIÓN Modalidad de la Investigación Tipo de investigación Población y Muestra Instrumento de recolección de datos Procesamiento y Análisis Criterio para la laboración de la propuesta 94 94 95 95 98 113 CAPÍTULO IV.- MARCO ADMINISTRATIVO Cronograma Presupuesto Recursos utilizados Conclusiones Recomendaciones Anexos Bibliografía 115 116 117 118 122 124 162 ÍNDICE DE CUADROS x Pág. CUADRO 1 Porcentaje de Vulnerabilidades por tipo de sitio 6 CUADRO 2 Anchos de banda y tamaño diario de las redes más comunes 32 CUADRO 3 Fragmentación correcta 52 CUADRO 4 Fragmentación incorrecta 52 CUADRO 5 Esquema de comunicaciones de TRIN00 61 CUADRO 6 Esquema de comunicaciones de Shaft 64 CUADRO 7 Análisis real de los paquetes 179/TCP SYN recibidos 68 CUADRO 8 Análisis real de los paquetes del segundo ataque 71 CUADRO 9 Preprocesadores para Snort 81 CUADRO 10 Resultados de la pregunta 1 95 CUADRO 11 Resultados de la pregunta 2 100 CUADRO 12 xi Resultados de la pregunta 3 101 CUADRO 13 Resultados de la pregunta 4 102 CUADRO14 Resultados de la pregunta 5 104 CUADRO 15 Resultados de la pregunta 6 105 CUADRO 16 Resultados de la pregunta 7 107 CUADRO17 Resultados de la pregunta 8 108 CUADRO 18 Resultados de la pregunta 9 110 CUADRO 19 Resultados de la pregunta 10 111 CUADRO 20 Presupuesto 116 ÍNDICE DE GRÁFICOS xii Pág. GRÁFICO 1 Esquema de un funcionamiento de auditorías 21 GRÁFICO2 Arquitectura de propósito general para la construcción de IDS 25 GRÁFICO3 Locación del NIDS (sensor) antes del firewall 29 GRÁFICO4 Locación del NIDS (sensor) en el firewall o adyacente 30 GRÁFICO5 Locación del NIDS (sensor) antes del firewall y en el firewall o adyacente 31 GRÁFICO 6 Ejemplos de trazas para evaluar la criticidad 35 GRÁFICO7 Ejemplos de falso positivo para SYN FLOOD 40 GRÁFICO8 Ataque IP Flooding 45 GRÁFICO9 Ataque Broadcast IP Flooding 47 GRÁFICO10 Ataque Smurf 48 GRÁFICO11 Ataque Snork 54 GRÁFICO 12 Ataque típico de DDOS. 57 GRÁFICO 13 Ataque TRIN00 60 GRÁFICO 14 Esquema del ataque DRDOS 70 xiii GRÁFICO15 Arquitectura de SNORT 74 GRÁFICO 16 Flujo de datos del decodificador 78 GRÁFICO 17 Capas TCP/IP 79 GRÁFICO18 Estructura de una Regla y su Cabecera 84 GRÁFICO19 Estructura de la Cabecera de una regla Snort 85 GRÁFICO20 Diagrama de Decodificación de Paquetes 91 GRÁFICO21 Pregunta 1 99 GRÁFICO22 Pregunta 2 100 GRÁFICO23 Pregunta 3 102 GRÁFICO24 Pregunta 4 103 GRÁFICO25 Pregunta 5 104 GRÁFICO26 Pregunta 6 106 GRÁFICO27 Pregunta 7 107 GRÁFICO28 Pregunta 8 109 GRÁFICO29 xiv Pregunta 9 111 GRÁFICO30 Pregunta 10 112 GRÁFICO31 Esquema de la propuesta 114 xv UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LASEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX” Autor: Javier Andrés Arellano García Tutor: Alfonso Guijarro Rodríguez RESUMEN La constante evolución de la tecnología informática ha permitido un aumento considerable de datos que viajan a través de Internet. Con el pasar del tiempo se han desarrollado varias técnicas de invasiones de sistemas, robo de datos y la interrupción de servicios. Estos hallazgos han llevado a los desarrolladores de software a crear nuevas tecnologías para el control y seguimiento de las actividades preventivas procedentes de redes no confiables en un intento de aumentar el grado de seguridad de la red y evitar el creciente número de ataques.Entre las varias formas de protección, un IDS (IntrusionDetectionSystem) es una solución que busca cumplir con ciertos requisitos para crear una capa de seguridad en una red. En este trabajo se propone examinar los conceptos, el funcionamiento y los aspectos más relevantes sobre la tecnología de detección de intrusiones (IDS). En especial analizaremos SNORT una solución Open Source(código abierto), ampliamente utilizada hoy en día. xvi UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DETECTOR DE INTRUSOS PARA AUMENTAR LASEGURIDAD INFORMÁTICA APLICANDO LA PLATAFORMA GNU-LINUX” Autor: Javier Andrés Arellano García Tutor: Alfonso Guijarro Rodríguez ABSTRACT The constant evolution of computer technology has allowed an increase considerable data that travels over the Internet. With the passage of time have developed several techniques of invasions of systems, data theft and service disruptions. These findings have led to software developers to create new technologies for control and monitoring of prevention activities from untrusted networks in an attempt to increase the security of the network and avoid the growing number of attacks.Among the various forms of protection, anIDS(Intrusion Detection System) is a solution that seeks to meet certain requirements to create a layer of network security.This paper will examine the concepts, operation and the most relevant aspects of technology intrusion detection (IDS). In particular we analyze SNORT (open source), widely used today. 1 INTRODUCCIÓN La seguridad informática es un tema que mucha gente no le da la importancia que realmente tiene; muchas veces por el hecho de considerar que es inútil o que jamás la utilizara. Pero en el mundo moderno, cada día más y más personas mal intencionadas pretenden tener acceso a nuestros datos. El acceso no autorizado a una red informática o a los equipos que en ella se encuentran pueden ocasionar en la gran mayoría de los casos graves problemas. Uno de las posibles consecuencias de una intrusión es la pérdida de datos. Es un hecho frecuente y ocasiona muchos trastornos, sobre todo si no estamos al día de las copias de seguridad. Y aunque estemos al día, no siempre es posible recuperar la totalidad de los datos. Otro de los problemas más dañinos es el robo de información sensible y confidencial. La divulgación de la información que posee una empresa sobre sus clientes puede acarrear demandas millonarias contra esta, o un ejemplo más cercano a usted es el de nuestras contraseñas de las cuentas de correo por las que intercambiamos información con otros. 2 El desarrollo de la tecnología informática ha abierto las puertas a nuevas posibilidades de delincuencia antes impensables. La cuantía de los perjuicios así ocasionados es a menudo muy superior a la usual en la delincuencia tradicional y también son mucho más elevadas las posibilidades de que no lleguen a descubrirse o castigarse. Con el desarrollo de la programación y de Internet, los delitos informativos se han vuelto más frecuentes y sofisticados. Existe una amplia gama de actividades delictivas que se realizan por medios informáticos: ingreso ilegal a sistemas, intercepción ilegal de redes, interferencias, daños en la información (borrado, deterioro, alteración o supresión de data), mal uso de artefactos, chantajes, fraude electrónico, ataques a sistemas, robo de bancos, ataques realizados por Hackers, violación de los derechos de autor, pornografía infantil, pedofilia enInternet, violación de información confidencial y muchos otros. Los indicadores anteriores, nos han permitido conocer algunos datos generales respecto de la tecnología y sus problemas de seguridad asociados. Lo cierto es que cada nueva implementación de sistemas y tecnología, presupone riesgos. Un aspecto que a menudo es pasado por alto, radica en el hecho de que la seguridad debe ser incumbencia de todos y no tan solo de los especialistas. Esto no solo es aplicable dentro de las organizaciones, sino que también debería serlo en relación al individuo como parte activa de la sociedad de la información. 3 En un mundo globalizado y altamente dependiente de la tecnología, todos debemos entender nuestro grado de responsabilidad respecto de los temas de seguridad de la información. Algunos desde posiciones de estado, otros desde la visión del profesional calificado en tareas relativas a seguridad de la información y otro tan solo como simples usuarios y/o consumidores de sistemas y tecnología. 4 CAPÍTULO I EL PROBLEMA PLANTEAMIENTO DEL PROBLEMA UBICACIÓN DEL PROBLEMA EN UN CONTEXTO Debido a la gran cantidad de información que se maneja en la actualidad en las diversas empresas que existen en el medio y a la utilización de recursos informáticos para el manejo de dicha información existe el riesgo de que ocurra el robo de datos a través de agentes externos a la institución como por ejemplo los denominados hackers, que tienen grandes conocimientos tecnológicos, y por lo tanto afectar las operaciones de la compañía si no se cuenta con un adecuado sistema de seguridad. El hecho de conectar una red a un entorno externo nos da la posibilidad de que algún atacante pueda entrar en ella, con esto, se puede hacer robo de información o alterar el funcionamiento de la red. Sin embargo el hecho de que la red no sea conectada a un entorno externo no nos garantiza la seguridad de la misma. De acuerdo con el Computer Security Institute (CSI) de San Francisco aproximadamente entre 60 y 80 por ciento de los incidentes de red son causados desde adentro de la misma. 5 A finales de 1996, Dan Farmer (creador de una de las herramientas más útiles en la detección de intrusos: SATAN) realizó un estudio sobre seguridad analizando 2.203 sistemas de sitios en Internet. Los sistemas objeto del estudio fueron Web Sites orientados al comercio y con contenidos específicos, además de un conjunto de sistemas informáticos aleatorios con los que realizar comparaciones. El estudio se realizó empleando técnicas sencillas y no intrusivas. Se dividieron los problemas potenciales de seguridad en dos grupos: rojos (red) y amarillos (yellow). Los problemas del grupo rojo son los más serios y suponen que el sistema está abierto a un atacante potencial, es decir, posee problemas de seguridad conocidos en disposición de ser explotados. Así por ejemplo, un problema de seguridad del grupo rojo es un equipo que tiene el servicio de FTP anónimo mal configurado. Los problemas de seguridad del grupo amarillo son menos serios pero también reseñables. Implican que el problema detectado no compromete inmediatamente al sistema pero puede causarle serios daños o bien, que es necesario realizar tests más intrusivos para determinar si existe o no un problema del grupo rojo. El cuadro 1 resume los sistemas evaluados, el número de equipos en cada categoría y los porcentajes de vulnerabilidad para cada uno. Aunque los resultados son límites superiores, no dejan de ser escandalosos. 6 CUADRO No. 1 PORCENTAJE DE VULNERABILIDADES POR TIPO DE SITIO1 Tipo de sitio # Total de sitios % Total % % testeados Vulnerables Yellow Red Bancos 660 68,34 32,73 35,61 Créditos 274 51,1 30,66 20,44 Sitios Federales US 47 61,7 23,4 38,3 News 312 69,55 30,77 38,78 Sexo 451 66,08 40,58 25,5 1.734 64,93 33,85 31,08 469 33,05 15,78 17,27 Totales Grupo aleatorio Elaboración:http://www.segu-info.com.ar/ataques/ataques.htm Fuente: www.trouble.org/survey Como puede observarse, cerca de los dos tercios de los sistemas analizados tenían serios problemas de seguridad y Farmer destaca que casi un tercio de ellos podían ser atacados con un mínimo esfuerzo. SITUACIÓN CONFLICTO NUDOS CRÍTICOS A nivel mundial, las computadoras, llámense servidores, estaciones de trabajo o simplemente PC's, son vulnerados y a consecuencia de ello la información de los usuarios queda expuesta. Esta puede ser las finanzas de la empresa, números de 1 Fuente: www.trouble.org/survey 7 tarjetas de crédito, planes estratégicos, datos relacionados con la investigación y el desarrollo de nuevos productos o servicios, etc. Debido a que vivimos en una era digital es imprescindible utilizar este tipo de infraestructura informática, es necesario contar con un sistema de seguridad idealmente diseñado para el óptimo desempeño de la organización.La seguridad es un tema muy importante para cualquier empresa, este o no conectada a una red pública. No solamente es importante, sino que también puede llegar a ser compleja. Mediante la materialización de una amenaza podría ocurrir el acceso modificación o eliminación de información no autorizada; la interrupción de un servicio o el procesamiento de un sistema; daños físicos o robo del equipamiento y medios de almacenamiento de información. A continuación se da una descripción de diferentes tipos de amenazas en una red. Escaneo de Puertos. Consiste en detectar qué servicios posee activos un equipo, con el objeto de ser utilizados para los fines del atacante. Wardialers. Se trata de herramientas de software que utilizan el acceso telefónico de una máquina para encontrar puntos de conexión telefónicos en otros equipos o redes, con el objeto de lograr acceso o recabar información. 8 Código Malicioso / Virus. Se define como todo programa o fragmento del mismo que genera algún tipo de problema en el sistema en el cual se ejecuta, interfiriendo de esta forma con el normal funcionamiento del mismo. Exploits. Se trata de programas o técnicas que explotan una vulnerabilidad de un sistema para el logro de los objetivos del atacante, como ser, intrusión, robo de información, denegación de servicio, etc. Ataques de Contraseña. Consiste en la prueba metódica de contraseñas para lograr el acceso a un sistema, siempre y cuando la cuenta no presente un control de intentos fallidos de logueo. Este tipo de ataques puede ser efectuado: Por diccionario: existiendo un diccionario de palabras, una herramienta intentará acceder al sistema probando una a una las palabras incluidas en el diccionario. Por fuerza bruta: una herramienta generará combinaciones de letras números y símbolos formando posibles contraseñas y probando una a una en el login del sistema. Control Remoto de Equipos. Un atacante puede tomar el control de un equipo en forma remota y no autorizada, mediante la utilización de programas desarrollados para tal fin, e instalados por el atacante mediante, por ejemplo la utilización de troyanos. 9 IP Spoofing – MAC Address Spoofing. El atacante modifica la dirección IP o la dirección MAC de origen de los paquetes de información que envía a la red, falsificando su identificación para hacerse pasar por otro usuario. De esta manera, el atacante puede asumir la identificación de un usuario válido de la red, obteniendo sus privilegios. Backdoors. También denominados “puertas traseras”, consisten en accesos no convencionales a los sistemas, los cuales pueden permitir efectuar acciones que no son permitidas por vías normales. Generalmente son instalados por el atacante para lograr un permanente acceso al sistema. Phishing. Consiste en el envío masivo de mensajes electrónicos que fingen ser notificaciones oficiales de entidades/empresas legítimas con el fin de obtener datos personales y bancarios de los usuarios. 10 CAUSAS Y CONSECUENCIAS DEL PROBLEMA Entre las causas comunes de la inseguridad de los sistemas se encuentran: los defectos potenciales de seguridad en la instalación del producto de software, en la configuración de los servicios de red, así como en la implantación de decisiones tácticas ignorantes de las condiciones mínimas de seguridad para los sistemas. Otros métodos que han resultado efectivos para un atacante son: la ingeniería social y el rompimiento de password2. El ataque a los sistemaspuede ser por fines económicos, por obtener cierto tipo de información, para sabotear las operaciones de la empresa, para desmeritar el prestigio de la empresa, por revanchismo o simplemente por curiosidad, entre otras muchas causas. En cualquier caso, el riesgo e impacto son altos para la empresa. La pérdida de información sensitiva, fraude, paro de operaciones, además de las pérdidas en imagen por el impacto publicitario que genere el ataque, representan altos costos para la empresa. En ocasiones, las intrusiones no son detectadas debido a su naturaleza y porque el atacante, como todo intruso, se cuida de “no dejar huella” para seguir explotando el medio por el cual acceso a los sistemas atacados. No olvide que el atacante es un experto en temas de computación, conoce y prueba los productos de software para 2 http://www.inforc.ec/seguridadinfo.htm 11 buscar vulnerabilidades de seguridad y crear las herramientas específicas para su explotación. Se enfoca pues a vulnerar la seguridad de los sistemas. DELIMITACIÓN DEL PROBLEMA Un sistema de detección de intrusos (IDS) es un programa que se usa para detectar accesos no autorizados a una red o a un ordenador. Estos accesos no autorizados son conjuntos de acciones que pueden comprometer la integridad, confidencialidad o disponibilidad de un recurso informático o de una determinada información. Para poner en funcionamiento un sistema de detección de intrusos se debe tener en cuenta que es posible optar por una solución de hardware, software o incluso una combinación de estos dos. Para el desarrollo de mi proyecto utilizareel software VMWarecon el cual crearemos una red virtual para hacer las pruebas respectivas de nuestro sistema detector de intrusos. Cabe mencionar que la seguridad es un proceso continuo de mejora por lo que las políticas y controles establecidos para la protección de la información deberán revisarse y adecuarse, de ser necesario, ante los nuevos riesgos que surjan, a fin de tomar las acciones que permitan reducirlos y en el mejor de los casos eliminarlos. 12 EVALUACIÓN DEL PROBLEMA Debido a que el uso de tecnologíasexperimenta un nivel de crecimiento bastante alto, cada vez más compañías permiten acceder a sus socios y proveedores a sus sistemas de información. Por lo tanto es fundamental contar con un adecuado sistema de seguridad informáticoante la posible amenaza de intrusiones, no solo para prevenir al acceso no autorizado a los datos confidenciales sino también para la evitar la posible pérdida de información que se podría dar. Estos riesgos informáticos son los que me han motivado a basar mi tema de tesis en lo relacionado a la seguridad informática, el cual me permitirá diseñar e implementar un Sistema detector de intrusos. Al hablar sobre la "Seguridad informática" me refiero al gran índice de inseguridad interna de la infraestructura informática de las empresas, así como la falta de una cultura informática necesaria para contemplar estos problemas.El alto grado de vulnerabilidad de la información transferida por la Internet y la facilidad de ataques externos e internos que se traducen en pérdidas que ascienden hasta miles de dólares en términos de información alterada, robada o perdida. 13 Más que un problema de tecnología, la seguridad en la transmisión de la información por la Red se debe a la falta de cultura de las organizaciones y de las personas que la integran. El usuario final es el eslabón más débil de la cadena; el soldado más lento de esa columna. Para disminuir los riesgos a la integridad de la data, el usuario debe entender qué es seguridad informática y cuáles son las medidas de seguridad necesarias para proteger los datos.3 A todos los usuarios se les debe divulgar las políticas de seguridad, además de hacer constantes auditorías para controlar que sean las adecuadas al momento que vive la empresa. Lo que se necesita no es solamente prevenir un ataque en la seguridad, sino ser capaces de detectar y responder a esta agresión mientras ocurre y reaccionar ante la misma. Es importante destacar que no existe un control de seguridad único, sino que las empresas deben contar con diversas capas de seguridad en todos los niveles de su información para poder así detectar el problema en algunos de estos puntos antes de que llegue a la información crucial. 3 Gral. Luis Bracho Magdaleno Director de Tecnología del Ministerio del Poder Popular para la Defensa de Venezuela 14 OBJETIVOS DE LA INVESTIGACIÓN OBJETIVO GENERAL Diseñar e implementar un sistema detector de intrusos que nos ofrezca las garantías necesarias al ser ejecutado en una compañía o institución que requiera estrictos niveles de seguridad informática. OBJETIVOS ESPECÍFICOS Disminuir el riesgo al que están expuestas las compañías o instituciones y sus sistemas informáticos. Establecer como plataforma el sistema operativo GNU-Linux en su distribución Open Suse 11.2 para el desarrollo del proyecto. Implementar este sistema en una máquina virtual para realizar las pruebas necesarias. Generar reportes diarios de las actividades generadas en el sistema. Evaluar el comportamiento del sistema ante una amenaza real. 15 JUSTIFICACIÓN E IMPORTANCIA Con el desarrollo de la informática y de las comunicaciones, la representación de la información ha variado así como las diversas formas de transmisión y comunicación de ésta. Por ello surge la necesidad de incorporar esquemas de protección de la misma pues, su confidencialidad, disponibilidad e integridad afecta desde un individuo hasta un negocio. La existencia de amenazas que afectan la disponibilidad, integridad y confidencialidad de los datos es real. Es crítico para las organizaciones poder identificar esas amenazas y adoptar recomendaciones que permitan prevenir, detectar y protegerse de ellas. La diversidad y la heterogeneidad de los sistemas de información que requieren las organizaciones actuales, sumado a la globalización a la que se enfrentan al conectar esos sistemas al mundo de Internet, genera un sinfín de incertidumbres en lo referente a la Seguridad de la Información. Lo que me motivo a escoger este tema deproyecto de gradoera para investigar las herramientas necesarias paran mantener una red segura y prevenir el alto porcentaje de vulnerabilidad del que son objeto las redes en la actualidad. En este sentido, tratare de aportar una solución integral de seguridad que abarca desde el diagnóstico de la situación actual, hasta la implementación y puesta en marcha de 16 unsistema de detección de intrusos, incluyendo el análisis y la definición de los elementos de seguridad que deben ser implantados a nivel técnico. Se pretende beneficiar con este sistema de seguridad en redes a las diversas compañías existentes en el mercado y a sus clientes que recibirán todas las seguridades necesarias al realizar sus transacciones en este tipo de infraestructura. La estabilidad y robustez que caracterizan al sistema operativo GNU-Linux han hecho que lo tome en consideración como la plataforma para desarrollar este proyecto de grado. 17 CAPÍTULO II MARCO TEÓRICO ANTECEDENTES DEL ESTUDIO LA IMPORTANCIA DE LA SEGURIDAD Garantizar que los recursos informáticos de una compañía estén disponibles para cumplir sus propósitos, es decir, que no estén dañados o alterados por circunstancias o factores externos, es una definición útil para conocer lo que implica el concepto de seguridad informática. En términos generales, la seguridad puede entenderse como aquellas reglas técnicas y/o actividades destinadas a prevenir, proteger y resguardar lo que es considerado como susceptible de robo, pérdida o daño, ya sea de manera personal, grupal o empresarial. En este sentido, es la información el elemento principal a proteger, resguardar y recuperar dentro de las redes empresariales.Por la existencia de personas ajenas a la información, también conocidas como piratas informáticos o hackers, que buscan tener acceso a la red empresarial para modificar, sustraer o borrar datos. 18 Tales personajes pueden, incluso, formar parte del personal administrativo o de sistemas, de cualquier compañía; de acuerdo con expertos en el área, más de 70 por ciento de las violaciones e intrusiones a los recursos informáticos se realiza por el personal interno, debido a que éste conoce los procesos, metodologías y tiene acceso a la información sensible de su empresa, es decir, a todos aquellos datos cuya pérdida puede afectar el buen funcionamiento de la organización.4 Esta situación se presenta gracias a los esquemas ineficientes de seguridad con los que cuentan la mayoría de las compañías a nivel mundial, y porque no existe conocimiento relacionado con la planeación de un esquema de seguridad eficiente que proteja los recursos informáticos de las actuales amenazas combinadas. El resultado es la violación de los sistemas, provocando la pérdida o modificación de los datos sensibles de la organización, lo que puede representar un daño con valor de miles o millones de dólares. SISTEMAS DE DETECCIÓN DE INTRUSOS La detección de ataques e intrusiones parte de la idea que un atacante es capaz de violar nuestra política de seguridad, atacando parcial o totalmente los recursos de una red, con el objetivo final de obtener un acceso con privilegios de administrador. 4 Revista Red, Noviembre 2002 19 Los mecanismos para la detección de ataques e intrusiones tratan de encontrar y reportar la actividad maliciosa en la red, pudiendo llegar a reaccionar adecuadamente ante un ataque. En la mayoría de los casos es deseable poder identificar el ataque exacto que se está produciendo, de forma que sea posible detener el ataque y recuperarse del mismo. En otras situaciones, sólo será posible detectar e informar de la actividad sospechosa que se ha encontrado, ante la imposibilidad de conocer lo que ha sucedido realmente. Generalmente, la detección de ataques trabajará con la premisa de que nos encontramos en la peor de las situaciones, suponiendo que el atacante ha obtenido un acceso al sistema y que es capaz de utilizar o modificarsusrecursos. Los elementos más destacables dentro de la categoría de mecanismos para la detección de ataques e intrusiones son los sistemas de detección de intrusos.A continuación introduciremos dos definiciones básicas en el campo de la detección de intrusos con el objetivo de clarificar términos comunes que se utilizarán más adelante. . Una intrusión es una secuencia de acciones realizadas por un usuario o proceso deshonesto, con el objetivo final de provocar un acceso no autorizado sobre un equipo o un sistema al completo. 20 La intrusión consistirá en la secuencia de pasos realizados por el atacante que viola una determinada política de seguridad. La existencia de una política de seguridad, en la que se contemplan una serie de acciones deshonestas que hay que prevenir, es un requisito clave para la intrusión. Es decir, la violación sólo se podrá detectar cuando las acciones observadas puedan ser comparadas con el conjunto de reglas definidas en la política de seguridad. La detección de intrusiones es el proceso de identificación y respuesta ante las actividades ilícitas observadas contra uno o varios recursos de una red. Esta última definición introduce la noción de proceso de detección de intrusos, que involucra toda una serie de tecnologías, usuarios y herramientas necesarias para llegar a buen término. ANTECEDENTES DE LOS SISTEMAS DE DETECCIÓN DE INTRUSOS Los sistemas de detección de intrusos son una evolución directa de los primeros sistemas de auditorías. Estos sistemas tenían como finalidad medir el tiempo que dedicaban los operadores a usar los sistemas. Con esta finalidad, se monitorizaban con una precisión de milésimas de segundo y servían, entre otras cosas, para poder facturar el servidor. 21 Los primeros sistemas aparecieron en la década de los cincuenta, cuando la empresa norteamericana Bell TelephoneSystemcreó un grupo de desarrollo con el objetivo de analizar el uso de los ordenadores en empresas de telefonía. Este equipo estableció la necesidad de utilizar auditorías mediante el procesamiento electrónico de los datos, rompiendo con el anterior sistema basado en la realización de informes en papel. Este hecho provocó que a finales de los años 50 la Bell TelephoneSystemse embarcara en el primer sistema a gran escala de facturación telefónica controlada por ordenadores. El siguiente gráfico muestra un sencillo esquema del funcionamiento de un sistema de auditorías, en el cual los eventos de sistema son capturados por un generador de auditorías que llevará los datos hacia el elemento encargado de almacenarlos en un fichero de informe. GRÁFICO 1 ESQUEMA DE UN FUNCIONAMIENTO DE AUDITORÍAS Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> 22 A partir de los años 70, el Departamento de Defensa de los EEUU empezó a invertir numerosos recursos en la investigación de políticas de seguridad, directrices y pautas de control. Estos esfuerzos culminaron con una iniciativa de seguridad en 1977 en la que se definía el concepto de sistemas de confianza. . Los sistemas de confianza son aquellos sistemas que emplean suficientes recursos software y hardware para permitir el procesamiento simultáneo de una variedad de información confidencial o clasificada. En estos sistemas se incluían distintos tipos de información repartida en niveles, que correspondían a su grado de confidencialidad. A finales de la década de los setenta TrustedComputerSystemEvaluationCriteria(TSCSEC) un se incluyó apartado en el sobre los mecanismos de las auditorías como requisito para cualquier sistema de confianza con un nivel de seguridad elevado. En este documento, conocido bajo el nombre de Libro marrón (Tan book), se enumeran los objetivos principales de un mecanismo de auditoría que podemos resumir muy brevemente en los siguientes puntos: Permitir la revisión de patrones de acceso (por parte de un objeto o por parte de un usuario) y el uso de mecanismos de protección del sistema. Permitir el descubrimiento tanto de intentos internos como externos de burlar los mecanismos de protección. 23 Permitir el descubrimiento de la transición de usuario cuando pasa de un nivel menor de privilegios a otro mayor (escalada de privilegios). Permitir el bloqueo de los intentos de los usuarios de saltarse los mecanismos de protección del sistema. Servir de garantía frente a los usuarios de que toda la información que se recoja sobre ataques e intrusiones será suficiente para controlar los posibles daños ocasionados en el sistema. ARQUITECTURA DE UN IDS Desde el comienzo de la década de los ochenta se han llevado a cabo multitud de estudios referentes a la construcción de sistemas para la detección de intrusos. En todos estos estudios se han realizado diferentes propuestas y diseños con el objetivo de cumplir los siguientes requisitos: Precisión.Un sistema de detección de intrusos no debe que confundir acciones legítimas con acciones deshonestas a la hora de realizar su detección. Cuando las acciones legítimas son detectadas como acciones maliciosas, el sistema de detección puede acabar provocando una denegación de servicio contra un usuario o un sistema legítimo. Este tipo de detecciones se conoce 24 como falsos positivos. Cuanto menor sea el número de falsos positivos, mayor precisión tendrá el sistema de detección de intrusos. Eficiencia.El detector de intrusos debe minimizar la tasa de actividad maliciosa no detectada (conocida como falsos negativos). Cuanto menor sea la tasa de falsos negativos, mayor será la eficiencia del sistema de detección de intrusos. Éste es un requisito complicado, ya que en ocasiones puede llegar a ser imposible obtener todo el conocimiento necesario sobre ataques pasados, actuales y futuros. Rendimiento.El rendimiento ofrecido por un sistema de detección de intrusos debe ser suficiente como para poder llegar a realizar una detección en tiempo real. La detección en tiempo real responde a la detección de la intrusión antes de que ésta llegue a provocar daños en el sistema. Según los expertos, este tiempo debería de ser inferior a un minuto. Escalabilidad.A medida que la red vaya creciendo (tanto en medida como en velocidad), también aumentará el número de eventos que deberá tratar el sistema. El detector tiene que ser capaz de soportar este aumento en el número de eventos, sin que se produzca pérdida de información. Este requisito es de gran relevancia en sistemas de detección de ataques distribuidos, donde los eventos son lanzados en diferentes equipos del sistema y deben ser puestos en correspondencia por el sistema de detección de intrusiones. 25 Tolerancia en fallos.El sistema de detección de intrusiones debe ser capaz de continuar ofreciendo su servicio aunque sean atacados distintos elementos del sistema incluyendo la situación de que el propio sistema reciba un ataque o intrusión. Con el objetivo de normalizar la situación, algunos miembros del IETF presentaron a mediados de 1998 una arquitectura de propósito general para la construcción de sistemas de detección de intrusos, conocida como CIDF. El esquema propuesto se corresponde con el diagrama mostrado en el siguiente gráfico: GRÁFICO 2 ARQUITECTURA PARA LA CONSTRUCCIÓN DE IDS Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> 26 Dos años más tarde se creó un nuevo grupo de trabajo en el IETF con la intención de estandarizar y mejorar la propuesta del CIDF. Este grupo de trabajo, conocido como IDWG, replantea nuevamente los requisitos necesarios para la construcción de un marco de desarrollo genérico y se marca los siguientes objetivos: Definir la interacción entre el sistema de detección de intrusos frente a otros elementos de seguridad de la red, como pueden ser los sistemas de prevención (cortafuegos, listas de control de accesos, etc.). Su primera propuesta se conoce con el nombre de TunnelProfile. Se trata de la implementación de un mecanismo para la cooperación entre los distintos elementos de seguridad mediante el intercambio de mensajes. Este mecanismo garantiza una correcta comunicación entre los diferentes elementos, proporcionando privacidad, autenticidad e integridad de la información intercambiada (alertas, eventos, etc.). Especificar el contenido de los mensajes intercambiados (eventos, alertas, etc.) entre los distintos elementos del sistema. Por esto, proponen el formato IDMEF y el protocolo de intercambio de mensajes IDXP. 27 Observando las propuestas tanto del CIDF como las del IDWG podemos ver que los elementos necesarios para la construcción de un sistema para la detección de intrusos se pueden agrupar en las siguientes cuatro categorías que presentamos a continuación: 1) Recolectores de información. 2) Procesadores de eventos. 3) Unidades de respuesta. 4) Elementos de almacenamiento. TIPOS DE IDS Existen dos tipos de sistemas de detección de intrusos: HIDS NIDS HIDS (Host IDS) Protege contra un único servidor, PC o host. Monitorizan gran cantidad de eventos, analizando actividades con una gran precisión, determinando de esta manera qué procesos y usuarios se involucran en una determinada acción. Recaban información del sistema como ficheros, logs, recursos, etc, para su posterior análisis en busca de posibles incidencias.Todo ello en modo local, dentro del propio sistema. Fueron los primeros IDS en desarrollar por la industria de la seguridad informática. 28 NIDS (Net IDS) Protege un sistema basado en red. Actúan sobre una red capturando y analizando paquetes de red, es decir, son sniffers del tráfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan algún tipo de ataque.Bien ubicados, pueden analizar grandes redes y su impacto en el tráfico suele ser pequeño. Actúan mediante la utilización de un dispositivo de red configurado en modo promiscuo (analizan, “ven” todos los paquetes que circulan por un segmento de red aunque estos nos vayan dirigidos a un determinado equipo). Analizan el tráfico de red, normalmente, en tiempo real. No sólo trabajan a nivel TCP/IP, también lo pueden hacer a nivel de aplicación. Otros tipos son los híbridos.Por el tipo de respuesta podemos clasificarlos en: Pasivos: Son aquellos IDS que notifican a la autoridad competente o administrador de la red mediante el sistema que sea, alerta, etc. Pero no actúa sobre el ataque o atacante. Activos: Generan algún tipo de respuesta sobre el sistema atacante o fuente de ataque como cerrar la conexión o enviar algún tipo de respuesta predefinida en nuestra configuración. 29 ESCENARIOS DE LOS IDS EN UNA LAN Una vez explicados los componentes básicos de un sistema IDS, se ha de decidir de qué tipo han de ser los distintos sensores que utilizará el NIDS (pullo push), y finalmente se ha de concretar en qué lugar o lugares de la red deben colocarse: Antes del firewall. Esta arquitectura se basa en detectar todos los paquetes que llegan a nuestra red antes de ser filtradas por el firewall. De esta forma, realizamos una búsqueda de eventos de interés en todo el tráfico recibido sin interferencias de filtros del firewall. GRÁFICO 3 LOCACIÓN DEL NIDS (SENSOR) ANTES DEL FIREWALL Elaboración:Gabriel VerdejoAlvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> En el firewall o adyacente. Consiste en situar el sensor en el propio firewall. De esta forma se evitan ataques de intrusos a los sensores externos y se 30 eliminan muchos falsos positivos, ya que procesamos únicamente el tráfico que el firewall deja pasar. GRÁFICO 4 LOCACIÓN DEL NIDS (SENSOR) EN EL FIREWALL O ADYACENTE Elaboración:Gabriel VerdejoAlvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Antes del firewall y en el firewall o adyacente. Es la opción es más costosa pero que ofrece mayor seguridad, ya que permite obtener lecturas del tráfico total y del tráfico filtrado por el firewall. Permite examinar la configuración del firewall y comprobar si filtra correctamente o no. 31 GRÁFICO 5 LOCACIÓN DEL NIDS (SENSOR) ANTES DEL FIREWALL Y EN EL FIREWALL O ADYACENTE Elaboración:Gabriel Verdejo Alvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> ANÁLISIS DE LOS DATOS OBTENIDOS POR LOS SISTEMAS NIDS Una vez comentados los tipos y diferentesescenarios de un IDS en una LAN, pasamos a profundizar en el análisis de los datos obtenidos por nuestros sistemas de seguridad. El tamaño de disco necesario para almacenar el tráfico de un solo día es totalmente desorbitado (ver cuadro2). Con los filtros aplicados al tráfico supervisado y los eventos de interés disminuimos substancialmente esta cantidad, sin embargo, no solamente nos interesa el tráfico registrado en un solo día, sino que nos interesan históricos de la semana, mes o incluso de años. 32 CUADRO No. 2 ANCHOS DE BANDA Y TAMAÑO DIARIO DE LAS REDES MÁS COMUNES Tecnología T Espacio de disco Potencia de procesador Cantidad de información Número de paquetes por transmitida por día día PP = EDD / 1500 Bytes ADSL (256Kbits/s) (32768 Bytes/s * 86400 s) / 1.887.436 1Gbyte = 2,6 Gbytes ADSL (2Mbit/s) 21,09 Gbytes 15.099.494 LAN (10 Mbit/s) 105,4 Gbytes 75.497.472 LAN (100 Mbit/s 1054,6 Gbytes 754.974.720 WAN ATM (155 Mbit/s) 1634,7 Gbytes 1.170.210.816 LAN (1 Gbit/s) 10546,8 Gbytes 7.549.747.200 Elaboración:Gabriel VerdejoAlvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Toda esta cantidad de información debe ser almacenada de forma óptima para poder ser consultada ágilmente. De otra forma, dejará de ser utilizada y por lo tanto de ser útil.El problema de almacenar/recuperar información es un tema muy amplio que no trataremos en este documento. Sin embargo sí comentaremos que últimamente muchos productos IDS empiezan a incorporar soporte de bases de datos relacionales como elementos importantes de soporte para sus sistemas de información (Oracle, SQL Server, MySQL, PostgreSQL, etc.). 33 Sea cual sea el formato usado para el almacenamiento de la información debe cumplir las siguientes características: 1. Debe realizar una reducción importante del volumen de datos pero conservando la información importante. 2. Debe poseer un formato compacto, fácil de consultar, escribir y actualizar. 3. Debe permitir la interrelación (cruce) de todos los datos entre sí. El formato TCP QUAD es una reducción compacta de la información contenida en los paquetes IP que se basa en almacenar una cuádruple tupla que contiene los siguientes campos: (Fecha, Dirección origen, Dirección de destino, Tipo de protocolo) El objetivo de almacenar históricos de tráficos de red es doble, por un lado poder realizar informes y estadísticas sobre incidentes en nuestra red. Por otro lado nos debepermitir conocer cuando un ataque presenta características similares (o iguales) a otrorecibido anteriormente, ya que podemos obtener información de cómo reaccionar ante él de forma proactiva (“en tiempo real”), evitando ser sujetos pasivos y lamentarnos posteriormente. Definiremos la correlación como la relación mutua entre dos o más elementos de un conjunto dado. De esta forma, gran parte de las consultas a las bases de datos se 34 basarán únicamente en buscar correlaciones entre los eventos de interés detectados y los datos históricos almacenados. Correlaciones por dirección de origen: Se basan en encontrar similitudes entre conexiones provenientes de la misma fuente (por ejemplo un escáner de puertos a nuestra red detectará que desde el mismo origen se realizan miles de peticiones a distintos puertos). Correlaciones por dirección de destino: Considera las conexiones que tienen como destino la misma dirección IP (por ejemplo un DOS. Tenemos miles de peticiones hacia un mismo destino). Correlaciones de firmas (craftedpackedsignatures): Se basan en buscar conexiones desde/hacia un puerto determinado (muchos virus y programas de backdoorbasan su comunicación en puertos no standards). También se buscan configuraciones no estandards de los distintos campos del paquete IP, como por ejemplo las banderas o flags(hay varios ataques de DOS que se basan en activar todas las opciones de los datagramas IP para ver si el sistema operativo no sabe como reaccionar ante ellos y queda inutilizado). Correlaciones de contenidos: Estas correlaciones hacen referencia al contenido (datos) de los distintos paquetes de información que circulan por la 35 red. Buscar patrones como “/etc/passwd” en conexiones TELNET o FTP, inspeccionar conexiones HTTP en busca de “EXEC C:\WINNT\COMMAND\FORMAT”. Otras posibilidades que nos brinda la correlación es la de poder evaluar la importancia (criticidad) de un posible incidente (ver gráfico 6) GRÁFICO 6 EJEMPLOS DE TRAZAS PARA EVALUAR LA CRITICIDAD Elaboración:Gabriel Verdejo Alvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Por ejemplo podemos observar la periodicidad de los paquetes recibidos, lo que nos permite por ejemplo saber de que ancho de banda dispone el atacante “a priori”. Si es una simple prueba rutinaria de un hacker “a ver que pesca” enviando peticiones muy espaciadas en tiempo a distintos servicios y direcciones IP, o un ataque en toda regla a un servidor concreto. 36 El sistema IDS debe permitir realizar estas consultas interactivamente al operador de la consola para investigar libremente en las bases de datos. Además deben realizarse de forma automática sólo para los eventos de interés de extrema criticidad, ya que el proceso de correlación es muy lento y colapsaría el sistema, de forma que cuando detectásemos el ataque ya sería demasiado tarde para actuar. Existe una gran controversia en la bibliografía5sobre la cantidad de tiempo(semanas, meses, años) que debemos tener almacenada en la base de datos del IDS para poderrealizar consultas tanto el operador como el propio sistema automáticamente.Obviamente, lo deseable sería tener todo el histórico de la red, sin embargo debemos tener en cuenta que: Más tiempo implica más espacio de disco (crecimiento exponencial). Más tiempo implica una ralentización de las búsquedas (pérdida de eficiencia). Más tiempo no implica necesariamente más seguridad. En caso de necesitar la informática forense (computer forense) nuestro histórico debe permitir la reconstrucción total de los actos sucedidos en la red. Por lo que una solución propuesta aboga por una ventana de al menos tres meses. A partir de esta fecha, los datos se deben “reducir” o “compactar” (mediante TCP QUAD por ejemplo) para almacenarlos en otra base de datos de históricos. La normativa de la 5 http://www.nipc.gov/about/pdd63.htm 37 administración americana PDD63 establece una ventana de 72 a 96 horas dónde se deben poder realizar trabajos de reconstrucción forense. FALSOS POSITIVOS Y FALSOS NEGATIVOS Un punto básico a tratar tras el análisis de las muestras obtenidas (eventos de interés) de nuestra red es el de la detección de falsos positivos y falsos negativos. “Un falso positivo (false positive) es un término aplicado a un fallo de detección en un sistema de alertas (usualmente en sistemas antivirus o de detección de intrusos). Sucede cuando se detecta la presencia de un virus o una intrusión en el sistema que realmente no existe.” “Un falso negativo (false negative) es un término que hace referencia a un fallo en el sistema de alerta (usualmente en sistemas antivirus o de detección de intrusos). Sucede cuando un virus o una intrusión existe en nuestro sistema y es 'permitida' (ignorada o no detectada) por el sistema de alerta.” Los falsos positivos pueden agruparse en cinco grupos dependiendo de la naturaleza de su origen: ReactionaryTrafficalarms.Se detecta un comportamiento sospechoso como consecuencia de tráfico generado anteriormente (generalmente no malicioso). 38 Por ejemplo la detección de muchas respuestas “ICMP networkunrecheable” procedentes de un router porque el equipo destino no se encuentra operativo o accesible en esos momentos. Equipment-relatedalarms.Las alarmas del NIDS detectan paquetes dentro del tráfico de la red que identifica como no “usuales”. Esto puede ocurrir por ejemplo con balanceadores de carga, puesto que generan paquetes específicos para el control de todos los nodos. ProtocolViolations.Estos avisos se producen por software mal programado (bugs) o que implementan de forma incorrecta o anticuada algunas partes de los protocolos de Internet. True False Positives.Todos aquellos falsos positivos que no se encuadren en ninguna de las categorías anteriores. Non Maliciousalarms.Alarmas producidas al detectar rastros de comportamientos maliciosos pero que en ese contexto determinado no lo son. Si publicamos en nuestra página WWW el código de un virus analizándolo, cada vez que una persona descargue la página creará una alerta en el IDS porque detectará el virus en nuestra red. 39 Obviamente, nuestro sistema de detección de intrusos debe producir los mínimos falsos positivos posibles y ningún falso negativo (porque con uno sólo, ya tenemos al intruso en nuestro sistema, y toda la inversión en seguridad se vuelve inútil y de difícil justificación). Según Kevin Timm6, el 90% de las alarmas detectadas por sistemas de detección de intrusos son falsos positivos, con lo que tan sólo el 10% son realmente peligrosas. Si personalizamos el NIDS a nuestra red, generalmente con los sistemas convencionales podemos llegar a reducir los falsos positivos a un 40% del total de alarmas. Por otro lado, hemos de tener en cuenta que un IDS que reporte cientos de alertas diarias dejará de ser útil y muy probablemente lleve a que alguna alerta verdadera sea ignorada por los operarios entre tantos avisos. En el gráfico7 podemos observar 9 peticiones de establecimiento de conexión en un segundo procedentes de “maquina1.com” para “maquina2.es”. Generalmente y a priori el IDS detectaría una masiva llegada de peticiones desde una misma dirección IP en un lapso de tiempo corto: Estamos recibiendo un ataque! 6 Kevin Tim es un Ingeniero de Seguridad en NetSolve Inc. en Austin, Tx. 40 GRÁFICO 7 EJEMPLOS DE FALSO POSITIVO PARA SYN FLOOD Elaboración:Gabriel Verdejo Alvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Esta conclusión que para la mayoría de casos es correcta (¿porqué nuestra “maquina2.es” debe recibir tantas peticiones de conexión casi simultáneas?), no siempre lo es de forma absoluta. Si “maquina2.es” es por ejemplo un punto de entrada hacia nuestra red corporativa puede pasar simplemente que a primera hora (09:09 horas) se conecten muchos empleados para realizar su trabajo. Sin embargo, esto no explica que todas las direcciones de origen sea la misma. ¿Por qué alguien se conectará 9 veces en un segundo? Un ejemplo práctico y real de falso positivo puede ser el uso de NAT (Network AddressTranslation) en redes corporativas. Todas las máquinas de una misma red realizan sus conexiones al exterior desde una única dirección IP. 41 Esta metodología se utiliza mucho por motivos de seguridad (DMZ por ejemplo), económicos (es más barato una dirección IP que 10) o incluso técnicos (ADSL, MODEM-cable).De esta forma, podemos observar que una situación potencialmente peligrosa puede simplemente ser un uso normal de los recursos de red. En la actualidad y debido a la política de todos los ISP de tecnologías domésticas de conexión a Internet (ADSL, Cable…) se están implementando “proxys” automáticos de acceso para contenido HTTP7. De esta forma, las peticiones de cualquier usuario de ADSL a un servidor WWW son automáticamente redireccionadas al PROXY de su proveedor de conexión. Los ejemplos de falsos negativos son mucho más complicados de encontrar en bibliografía y exponer en este escrito, ya que implicaría que alguien consiguió un acceso no autorizado a una red “segura” y a nadie le hace gracia reconocer esto “públicamente” (muchas veces no se reconoce ni en privado). Generalmente, los falsos negativos suelen producirse por: Configuración deficiente de los recursos de la red.Tener varios elementos de seguridad (IDS, firewalls, VPN, etc.) no es suficiente para considerar nuestra red segura. Estos deben estar convenientemente configurados y adaptados a su medio (el tráfico de las redes no es estático y varía). 7 http://www.squid-cache.org/ 42 Ataques desde dentro. Muchas veces se obvia un uso pernicioso de los recursos de nuestra red desde dentro. El atacante no siempre es un hacker de un país extraño que se dedica a hacer el mal a quien puede. Tener controles internos también permitirá detectar programas o troyanos encargados de facilitar acceso desde dentro a posibles atacantes. Equipos no parcheados y víctimas de los últimos “exploits”. Tener servidores con versiones de software anticuadas son un reclamo excesivamente apetitoso y que ningún sistema de seguridad puede proteger. TIPOS DE ATAQUES A la hora de estudiar los distintos tipos de ataques informáticos, podríamos diferenciar en primer lugar entre los ataques activos, que producen cambios en la información y en la situación de los recursos del sistema, y los ataques pasivos, que se limitan a registrar el uso de los recursos y/o a acceder a la información guardada o transmitida por el sistema. Seguidamente se presenta una relación más detallada de los principales tipos de ataques contra redes y sistemas informáticos 43 ATAQUES DE DENEGACIÓN DE SERVICIO . Un ataque de denegación de servicio es un incidente en el cual un usuario o una organización es privada de los servicios de un recurso que esperaba obtener. Normalmente, la pérdida de servicio se corresponde con la imposibilidad de obtener un determinado servicio de red como, por ejemplo, el acceso a una página web. “Definimos denegación de servicio como la imposibilidad de acceder a un recurso o servicio por parte de un usuario legítimo. Es decir, la apropiación exclusiva de un recurso o servicio con la intención de evitar cualquier acceso a terceras partes.” De forma más restrictiva, se pueden definir los ataques de denegación de servicio en redes IP como la consecución total o parcial del cese de la prestación de servicio de un equipo conectado a la red. Los ataques de denegación de servicio pueden ser provocados tanto por usuarios internos en el sistema como por usuarios externos. Dentro del primer grupo podríamos pensar en usuarios con pocos conocimientos que pueden colapsar el sistema o servicio inconscientemente. Por ejemplo, usuarios que abusan de los recursos del sistema, ocupando mucho ancho de banda en la búsqueda de archivos de música o de películas, usuarios malintencionados que aprovechan su acceso al sistema para causar problemas de forma premeditada, etc.En el segundo grupo se encuentran aquellos usuarios que 44 han conseguido un acceso alsistema de forma ilegítima, falseando además la dirección de origen con el propósito de evitar la detección del origen real del ataque (mediante ataques de suplantación). El peligro de los ataques de denegación de servicio viene dado por su independencia de plataforma. Como sabemos, el protocolo IP permite una comunicación homogénea (independiente del tipo de ordenador o fabricante) a través de espacios heterogéneos (redes Ethernet, ATM, etc.). De esta forma, un ataque exitoso contra el protocolo IP se convierte inmediatamente en una amenaza real para todos los equipos conectados a la red, independientemente de la plataforma que utilicen. A continuación se realizara una exposición sobre algunos de los ataques de denegación de servicio más representativos. IP FLOODING . El ataque de IP Floodingse basa en una inundación masiva de la red mediante datagramas IP. Este ataque se realiza habitualmente en redes locales o en conexiones con un gran ancho de banda. Consiste en la generación de tráfico basura con el objetivo de conseguir la degradación del servicio. De esta forma, se resume el ancho de banda disponible, ralentizando las comunicaciones existentes de toda la red. 45 GRÁFICO 8 ATAQUE IP FLOODING Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> Podemos pensar en la utilización de este ataque principalmente en redes locales cuyo control de acceso al medio es nulo y cualquier máquina puede ponerse a enviar y recibir paquetes sin que se establezca ningún tipo de limitación en el ancho de banda que consume. El tráfico generado en este tipo de ataque puede ser: Aleatorio. Cuando la dirección de origen o destino del paquete IP es ficticia o falsa. Este tipo de ataque es el más básico y simplemente busca degradar el servicio de comunicación del segmento de red al que está conectado el ordenador responsable del ataque. 46 Definido o dirigido. Cuando la dirección de origen, destino, o incluso ambas, es la de la máquina que recibe el ataque. El objetivo de este ataque es doble, ya que además de dejar fuera de servicio la red donde el atacante genera los datagramas IP, también tratará de colapsar al equipo de destino, sea reduciendo el ancho de banda disponible, o bien saturando su servicio ante una gran cantidad de peticiones que el servidor será incapaz de procesar. Los datagramas IP utilizados podrían corresponder a: UDP. Con el objetivo de generar peticiones sin conexión a ninguno de los puertos disponibles. Según la implementación de la pila TCP/IP de las máquinas involucradas, las peticiones masivas a puertos específicos UDP pueden llegar a causar el colapso del sistema. ICMP. Generando mensajes de error o de control de flujo. TCP. Para generar peticiones de conexión con el objetivo de saturar los recursos de red de la máquina atacada. Una variante del IP Flooding tradicional consiste en la utilización de la dirección de difusión de la red como dirección de destino de los datagramas IP. De esta forma, el 47 encaminador de la red se verá obligado a enviar el paquete a todos los ordenadores de la misma, consumiendo ancho de banda y degradando el rendimiento del servicio. También existen otras variantes en las que se envían peticiones ICMP de tipo echorequest a varios ordenadores suplantando la dirección IP de origen, sustituida por la dirección de difusión (broadcast) de la red que se quiere atacar. De esta forma, todas las respuestas individuales se ven amplificadas y propagadas a todos los ordenadores conectados a la red. El siguiente gráfico representa este tipo de escenario: GRÁFICO 9 ATAQUE BROADCAST IP FLOODING Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> 48 SMURF Este tipo de ataque de denegación de servicio es una variante del ataque anterior (IP Flooding), pero realizando una suplantación de las direcciones de origen y destino de una petición ICMP del tipo echo-request. Como dirección de origen se pone la dirección IP de la máquina que debe ser atacada. En el campo de la dirección IP de destino se pone la dirección de difusión de la red local o red que se utilizará como trampolín para colapsar a la víctima. El siguiente gráfico representa este tipo de escenario: GRÁFICO 10 ATAQUE SMURF Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> 49 Con esta petición fraudulenta, se consigue que todas las máquinas de la red respondan a la vez a una misma máquina, consumiendo todo el ancho de banda disponible y saturando el ordenador atacado. TCP/SYN FLOODING Como ya hemos visto anteriormente, algunos de los ataques y técnicas de exploración que se utilizan en la actualidad se basan en no complementar intencionadamente el protocolo de intercambio del TCP. Esta debilidad del protocolo TCP proviene de las primeras implementaciones de las pilas TCP. Cada vez que se procesa una conexión, deben crearse datagramas IP para almacenar la información necesaria para el funcionamiento del protocolo. Esto puede llegar a ocupar mucha memoria. Como la memoria del equipo es finita, es necesario imponer restricciones sobre el número de conexiones que un equipo podrá aceptar antes de quedarse sin recursos. El ataque de TCP/SYNFloodingse aprovecha del número de conexiones que están esperando para establecer un servicio en particular para conseguir la denegación del servicio. 50 Cuando un atacante configura una inundación de paquetes SYN de TCP, no tiene ninguna intención de complementar el protocolo de intercambio, ni de establecer la conexión. Su objetivo es exceder los límites establecidos para el número de conexiones que están a la espera de establecerse para un servicio dado. Esto puede hacer que el sistema que es víctima del ataque sea incapaz de establecer cualquier conexión adicional para este servicio hasta que las conexiones que estén a la espera bajen el umbral. Hasta que se llegue a este límite, cada paquete SYN genera un SYN/ACK que permanecerá en la cola a la espera de establecerse. Es decir, cada conexión tiene un temporizador (un límite para el tiempo que el sistema espera, el establecimiento de la conexión) que tiende a configurarse en un minuto. Cuando se excede el límite de tiempo, se libera la memoria que mantiene el estado de esta conexión y la cuenta de la cola de servicios disminuye en una unidad. Después de alcanzar el límite, puede mantenerse completa la cola de servicios, evitando que el sistema establezca nuevas conexiones en este puerto con nuevos paquetes SYN. Dado que el único propósito de la técnica es inundar la cola, no tiene ningún sentido utilizar la dirección IP real del atacante, ni tampoco devolver los SYN/ACK, puesto que de esta forma facilitaría que alguien pudiera llegar hasta él siguiendo la conexión. 51 Por lo tanto, normalmente se falsea la dirección de origen del paquete, modificando para ello la cabecera IP de los paquetes que intervendrán en el ataque de una inundación SYN. TEARDROP El protocolo IP especifica unos campos en la cabecera encargados de señalar si el datagrama IP está fragmentado (forma parte de un paquete mayor) y la posición que ocupa dentro del datagrama original. En el campo de indicadores de TCP encontramos el indicador de más fragmentos que indica si el paquete recibido es un fragmento de un datagrama mayor. Por otra parte, el campo de identificación del datagrama especifica la posición del fragmento en el datagrama original. El ataque Teardropintentará realizar una utilización fraudulenta de la fragmentación IP para poder confundir al sistema operativo en la reconstrucción del datagrama original y colapsar así el sistema. Supongamos que deseamos enviar un fichero de 1024 bytes a una red con un MTU (Maxim Transfer Unit) de 512 bytes. Será suficiente enviar dos fragmentos de 512 bytes. (ver cuadro 3). 52 CUADRO No. 3 FRAGMENTACIÓN CORRECTA Posición Longitud Fragmento 1 0 512 Fragmento 2 512 512 Elaboración:Propia del autor del presente trabajo Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> El objetivo de Teardropserá realizar las modificaciones necesarias en los campos de posición y longitud para introducir incoherencias cuando se produzca la reconstrucción del datagrama original (ver cuadro 4) CUADRO No. 4 FRAGMENTACIÓN INCORRECTA Posición Longitud Fragmento 1 0 512 Fragmento 2 500 512 ………. ………. 10 100 ………. Fragmento N Elaboración:Propia del autor del presente trabajo Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> 53 De esta forma, Teardropy sus variantes directas conseguirán que el datagrama se sobrescriba y produzca un error de buffer-overrunal ser reensamblado.Otra posibilidad consiste en enviar centenares de fragmentos modificados malintencionadamente, con el objetivo de saturar la pila de protocolo IP del equipo atacado (a causa de una superposición de distintos datagramas IP). SNORK . El ataque Snorkse basa en una utilización malintencionada de dos servicios típicos en sistemas Unix: el servicio CHARGEN (CHARacterGENerator, generador de caracteres) y el servicio ECHO. El primer servicio se limita a responder con una secuencia aleatoria de caracteres a las peticiones que recibe. El segundo servicio, ECHO, se utiliza como sistema de pruebas para verificar el funcionamiento del protocolo IP. Así, esta denegación de servicio se basa en el envío de un datagrama especial al ordenador de destino, que una vez reconocido, enviará una respuesta al equipo de origen. 54 GRÁFICO 11 ATAQUE SNORK Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> El ataque Snorkconsiste en el cruce de los servicios ECHO y CHARGEN, mediante el envío de una petición falsa al servicio CHARGEN, habiendo colocado previamente como dirección de origen la dirección IP de la máquina que hay que atacar (con el puerto del servicio ECHO como puerto de respuesta). De esta forma, se inicia un juego de ping-pong infinito. 55 Este ataque se puede realizar con distintos pares de equipos de la red obteniendo un consumo masivo de ancho de banda hasta degradar el rendimiento de la misma. También se puede realizar contra una misma máquina (ella misma se envía una petición y su respuesta) consiguiendo consumir los recursos (especialmente CPU y memoria) de este equipo. PING OF DEATH El ataque de denegación de servicio “ping de la muerte” (ping of death) fue uno de los ataques más conocidos y que más artículos de prensa generó. Al igual que otros ataques de denegación existentes, utiliza una definición de longitud máxima de datagrama IP fraudulenta. La longitud máxima de un datagrama IP es de 65535 bytes, incluyendo la cabecera del paquete (20 bytes) y partiendo de la base de que no hay opciones especiales especificadas. Por otra parte, recordemos que el protocolo ICMP tiene una cabecera de 8 bytes. De esta forma, si queremos construir un mensaje ICMP tenemos disponibles 65535 - 20 - 8 = 65507 bytes. Debido a la posibilidad de fragmentación de IP, si es necesario enviar más de 65535 bytes, el datagrama IP se fragmentará y se reensamblará en el destino con los mecanismos comentados anteriormente. 56 El ataque ping de la muerte se basa en la posibilidad de construir, mediante el comando ping, un datagrama IP superior a los 65535 bytes, fragmentado en N trozos, con el objetivo de provocar incoherencias en el proceso de reensamblado. Si, por ejemplo, construimos un mensaje ICMP de tipo echo-request de 65510 bytes mediante el comando ping -s 65510, los datos ICMP podrán ser enviados en un único paquete fragmentado en N trozos (según la MTU de la red), pero pertenecientes al mismo datagrama IP. Si hacemos la suma de los distintos campos del datagrama, veremos que los 20 bytes de cabecera IP más los 8 bytes de cabecera ICMP, junto con los datos ICMP (65510 bytes) ocuparán 65538 bytes. De esta forma, el ataque consigue provocar un desbordamiento de 3 bytes. Este hecho provocará que al reconstruir el paquete original en el destino, se producirán errores que, si existen deficiencias en la implementación de la pila TCP/IP del sistema, podrían causar la degradación total del sistema atacado. Este exploit ha afectado a la mayoría de Sistemas Operativos, como Unix, Linux, Mac, Windows, impresoras, y los routers. No obstante la mayoría de los sistemas operativos desde 1997-1998 han arreglado este problema, por lo que el fallo está solucionado. 57 ATAQUES DISTRIBUIDOS (DDOS) Un ataque de denegación de servicio distribuido es aquél en el que una multitud de sistemas (que previamente han sido comprometidos) cooperan entre ellos para atacar a un equipo objetivo, causándole una denegación de servicio. El flujo de mensajes de entrada que padece el equipo atacado le dejará sin recursos y será incapaz de ofrecer sus servicios a usuarios legítimos. GRÁFICO 12 ATAQUE TÍPICO DE DDOS Elaboración:Gabriel Verdejo Alvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Así pues, podemos definir los ataques de denegación de servicio distribuidos como un ataque de denegación de servicio en el que existen múltiples equipos sincronizados de forma distribuida que se unen para atacar un mismo objetivo. 58 A continuación veremos algunos de los ataques de denegación de servicio distribuidos más representativos, prestando especial atención tanto a su evolución histórica, como al modelo distribuido de las fuentes que realizan el ataque, su sincronización y la forma en la que realizan la denegación de servicio. TRIN00 TRIN00 es un conjunto de herramientas master-slaveutilizadas para sincronizar distintos equipos que cooperarán, de forma distribuida, en la realización de una denegación de servicio. Las primeras implementaciones de TRIN00 fueron implementadas únicamente para sistemas Sun Solaris (en los que se produjeron los primeros ataques conocidos). El primer paso para realizar un ataque con TRIN00 consiste en la instalación de las herramientas en los equipos desde los que partirá el ataque. Para ello, el atacante necesitará obtener privilegios de administrador en estos equipos (que habrá conseguido mediante técnicas de sniffing, explotación de servicios, etc.). Estos sistemas deberían ser equipos interconectados en grandes redes corporativas con un gran ancho de banda y en los que el origen del ataque pudiera pasar desapercibido entre cientos o millares de sistemas dentro la misma red. El atacante tratará de realizar un ataque de intrusión a un primer equipo de estas redes, desde donde continuará con 59 la búsqueda de nuevos equipos vulnerables y procederá a su infección de igual manera como se realizó con el primer equipo. Para realizar las intrusiones, el atacante llevará a cabo una búsqueda de vulnerabilidades en los equipos existentes en la red, generando una lista de equipos potencialmente débiles en los que tratará de introducirse y ejecutar las herramientas necesarias para provocar la escalada de privilegios. Desde el primer equipo infectado por TRIN00, el atacante tratará de distribuir las herramientas a cada una de las demás máquinas infectadas. También se encargará de la ejecución de tareas periódicas para tratar de esconder los rastros de la intrusión que puedan delatar la entrada en el sistema y la detección del origen del ataque. En el siguiente gráfico podemos observar el diagrama de tres capas que conforma un ataque ejecutado mediante TRIN00. Vemos cómo a partir de un único ordenador, el atacante podrá llegar a obtener toda una red de equipos a su disposición para la realización del ataque distribuido. 60 GRÁFICO 13 ATAQUE TRIN00 Elaboración:Joaquín García Alfaro Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> La comunicación entre las distintas capas se realiza mediante conexiones TCP (fiables) para la parte atacante-master, y conexiones UDP (no fiables) para la parte master-slavey slave-master, en puertos específicos de cada máquina. . La comunicación siempre se inicia con la transmisión de una contraseña. Esto permite que ni el administrador del equipo ni el de otros atacantes puedan acceder al control de la red de ataques de TRIN00. 61 Los demonios de TRIN00 situados en los equipos master y slavepermiten la ejecución de comandos para iniciar, controlar y detener ataques de denegación tradicionales como ICMP Flooding, SYN Flooding, UDP Flooding, Smurf, etc. Para acceder a estos comandos, el atacante realizará una conexión Telnet en el puerto especificado en el siguiente esquema: CUADRO No. 5 ESQUEMA DE COMUNICACIONES DE TRIN00 Atacante Atacante Master 27665/TCP 27444/UDP Master Slave Slave 31335/UDP Elaboración:Propia del autor del presente trabajo Fuente: <http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20seguridad %20en%20redes%20modulos.pdf> TRIBE FLOOD NETWORK TribeFlood Network (TFN) es otra de las herramientas existentes para realizar ataques de denegación de servicio distribuidos que utiliza un esquema master-slavepara coordinar ataques de denegación tradicionales (ICMP Flooding, SYN Flooding, UDP Floodingy Smurf). Al igual que TRIN00, permite dejar abierta una consola de 62 administración a la máquina de origen (escuchando por un puerto TCP determinado) ofreciendo un acceso ilimitado a los equipos infectados. .La arquitectura de funcionamiento del TFN es muy parecida a la de TRIN00. Una de las pocas diferencias la encontramos en la parte de clientes (respecto a los Masters del esquema de TRIN00) y la parte de demonios (respeto a los Slavesde TRIN00). De forma análoga, un atacante controla a uno o más clientes que a su vez, controlan a uno o más demonios. El control de la red TFN se consigue mediante la ejecución directa de comandos utilizando conexiones cliente-servidor basadas en paquetes ICMP de tipo echo-reply. . La comunicación para el envío de comandos se realiza mediante un número binario de 16 bits en el campo de identificación de mensajes ICMP de tipo echo. El número de secuencia es una constante 0x0000 para enmascarar el mensaje ICMP como si fuera a una petición echo-request y pasar así desapercibido en el caso de existir en la red mecanismos de detección de ataques. Este cambio en la comunicación, respecto a TRIN00, se debe a que muchos sistemas de monitorización para la protección de redes (dispositivos cortafuegos, sistemas de detección de intrusos, etc.) pueden filtrar tráfico TCP y UDP que va hacia puertos determinados. 63 No obstante, la mayoría de sistemas dejan pasar mensajes ICMP de tipo echo utilizados para utilizar el comando ping y realizar así verificaciones de los equipos activos en la red. Además, pocas herramientas de red muestran adecuadamente los mensajes ICMP, lo cual permite un camuflaje perfecto entre el tráfico normal de la red. Otra diferencia respeto a TRIN00 es que los clientes de TFN no están protegidos por contraseñas de acceso, con lo cual puede ser ejecutado sin restricciones por otros usuarios una vez instalado. SHAFT Otro conjunto de herramientas derivado de los dos anteriores (TRIN00 y TFN) es Shaft. La jerarquía utilizada por Shaftes similar a las demás herramientas analizadas. Una vez más, se basa en varios masters (denominados ahora Shaftmasters) que gobiernan a su vez diversos slaves(Shaftnodes). Al igual que en los otros esquemas, el atacante se conecta mediante un programa cliente a los Shaftmastersdesde donde inicia, controla y finaliza los ataques distribuidos. 64 Shaftutiliza mensajes UDP para transmitir información entre los Shaftmastersy los Shaftnodes. Por otra parte, el atacante se conecta vía Telnet a un Shaftmasterutilizando una conexión fiable mediante TCP. Una vez conectado, utilizará una contraseña para autorizar su acceso. CUADRO No. 6 ESQUEMA DE COMUNICACIONES DE SHAFT Atacante Atacante ShaftMaster 20432/TCP 18753/UDP ShaftMaster ShaftNode ShaftNode 20433/UDP Elaboración:Propia del autor del presente trabajo Fuente:<http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20se guridad%20en%20redes%20modulos.pdf> La comunicación entre Shaftmastersy Shaftnodesse realiza mediante UDP (que no es fiable). Por este motivo, Shaft utiliza tickets para poder mantener ordenada la comunicación y asignar a cada paquete una orden de secuencia. La combinación de contraseñas y tickets es utilizada por los Shaftmasterspara transmitir las órdenes hacia a los Shaftnodes, que a su vez verificarán que sean correctas. 65 TRIBE FLOOD NETWORK 2000 El TFN2K es la revisión de la herramienta TFN que permite lanzar ataques de denegación de servicio distribuido contra cualquier máquina conectada a Internet. La arquitectura básica en la que existe un atacante que utiliza clientes para gobernarlos distintos demonios instalados en las máquinas infectadas se mantiene, de forma que el control de este tipo de ataques mantiene la premisa de tener el máximo número de ordenadores segmentados. De esta forma, si un cliente es neutralizado, el resto de la red continúa bajo control. Aun así, TribeFlood Network 2000 (TFN2K) añade una serie de características adicionales, de entre las que destacamos las siguientes: La comunicación master-slavese realizan ahora mediante protocolos TCP, UDP, ICMP o los tres a la vez de forma aleatoria. Los ataques continúan siendo los mismos (ICMP Flooding, UDP Flooding, SYN Floodingy Smurf). Aun así, el demonio se puede programar para que alterne entre estos cuatro tipos de ataque, para dificultar la detección por parte de sistemas de monitorización en la red. Las cabeceras de los paquetes de comunicación master-slaveson ahora aleatorias, excepto en el caso de ICMP (donde siempre se utilizan mensajes de 66 tipo echo-reply). De esta forma se evitaría una detección mediante patrones de comportamiento. Todos los comandos van cifrados. La clave se define en tiempo de compilación y se utiliza como contraseña para acceder al cliente. Cada demonio genera un proceso hijo por ataque, tratando de diferenciarse entre sí a través de los argumentos y parámetros que se pasan en el momento de ejecución. Además, se altera su nombre de proceso para hacerlo pasar por un proceso más del sistema. EJEMPLO DE ATAQUE DDOS Al finalizar de dar un repaso a los diferentes tipos de ataques que se pueden dar en un sistema, reflejaremos un ataque real de DDOS sufrido en un famoso de seguridad denominado GRC.COM. La justificación del porquése analiza este ataque en el capítulo, viene dada por dos factores: 1. Pese a que los ataques de denegación de servicio son muy abundantes y hay gran constancia de ellos, la información disponible sobre estos ataques suele 67 ser mínima, reduciéndose a pequeñas notas en organismos como el CERT o boletines electrónicos como SECURITYFOCUS y grandes titulares de prensa o televisión con más contenido peliculero que realidad técnica. En este caso concreto, existe un detallado análisis disponible de forma pública que disecciona perfectamente el ataque recibido. 2. Como se ha podido comprobar, los ataques DDOS suelen ser una generalización de los ataques DOS, con lo que un ejemplo de ataque distribuido es suficientemente complejo como para obtener una idea de cómo funcionan realmente. El 11 de enero de 2002 a las 02:00 a.m. (US Pacific time) el servidor WWW.GRC.COM fue atacado mediante una inundación masiva de paquetes de petición de conexión (TCP SYN Flood) utilizando la técnica DRDOS (DistributedReflectionDenial Of Service). De repente, las dos conexiones T1 (1.5Mbits/s) mostraron un tráfico de salida nulo, ya que el servidor WWW era incapaz de completar una petición de conexión y servir contenidos. Sin embargo, el tráfico registrado en las conexiones de red era de casi el 100% de su capacidad 2 x T1 (ver cuadro 7). 68 Analizando los paquetes recibidos de los ISP QWEST, Verio y Above.net no se observa ninguna anomalía y parecen paquetes TCP SYN/ACK legítimas hacia el puerto 80 de GRC.COM dando como puerto de origen de la petición el 179. Cabe destacar que todas las peticiones provienen de ISP (Internet Serviceprovider), es decir, organizaciones con conexiones a Internet de un gran ancho de banda, lo que permite una gran capacidad de generación de tráfico. CUADRO No. 7 ANALISIS REAL DE LOS PAQUETES 179/TCP SYN RECIBIDOS Dirección IP 129.250. 28. 1 129.250. 28. 3 129.250. 28. 20 205.171. 31. 1 205.171. 31. 2 205.171. 31. 5 206. 79. 9. 2 206. 79. 9.114 206. 79. 9.210 208.184.232. 13 208.184.232. 17 208.184.232. 21 208.184.232. 25 Nombre DNS Ge-6-2-0.r03.sttlwa01.us.bb.verio.net ge-1-0-0.a07.sttlwa01.us.ra.verio.net ge-0-1-0.a12.sttlwa01.us.ra.verio.net iah-core-01.inet.qwest.net iah-core-02.inet.qwest.net iah-core-01.inet.qwest.net globalcrossing-px.exodus.net exds-wlhm.gblx.net telefonica-px.exodus.net core1-atl4-oc48-2.atl2.above.net core2-atl4-oc48.atl2.above.net core1-atl4-oc48.atl2.above.net core2-core1-oc48.atl2.above.net Elaboración:Propia del autor del presente trabajo Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> El puerto 179 es el destinado al servicio BGP (Border Gateway Protocol) que permite que diferentes sistemas autónomos se comuniquen e intercambien sus tablas de 69 ruteado (routingtables) para conocer que redes/ordenadores tienen accesibles en cada momento. Muchos sistemas troncales conectados a Internet admiten conexiones al puerto 179/TCP para el intercambio de tablas de ruteado con otros sistemas mediante el protocolo BGP. En el gráfico 14 podemos observar cómo se produce un ataque de DDOS indirecto utilizando un servicio existente de forma correcta pero falseando la dirección de origen: 1. Se crea la infraestructura necesaria para el DDOS (instalación de los ordenadores master/slaves). 2. Inicio del ataque DDOS consistente en enviar desde los esclavos miles de peticiones “correctas” de conexión TCP al puerto 179 a diferentes ISP. Se falsea la dirección de origen de la petición y el puerto, colocando la dirección IP de la víctima. 3. Obtención de cientos de miles de respuestas de los distintos ISP que bloquearán todo el ancho de banda del servidor WWW atacado. 70 GRÁFICO 14 ESQUEMA DEL ATAQUE DRDOS Elaboración:Gabriel Verdejo Alvarez Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> Una vez conocida la arquitectura del ataque, comenta Steve Gibson que tardó más de tres horas en conseguir que su propio ISP (con servicio 24x7) bloqueara todos los paquetes de conexiones que provenían del puerto 179/TCP.Una vez conseguido el bloqueo del trafico proveniente del puerto 179/TCP, el servidor WWW continuó sin estar operativo debido a otros ataques de inundación de paquetes (TCP/UDP Flood) a los puertos 22/TCP (SSH), 23/TCP (TELNET), 53/UDP (DNS), 80/TCP (WWW), 4001/TCP (Proxy), 6668/UDP (IRC). 71 La explicación dada a que inmediatamente después de bloquear el primer ataque continuara atacado el WWW es que este segundo ataque se lanzó simultáneamente con el primero, sin embargo, debido a que el primero proviene de ISPs con una gran capacidad de ancho de banda, habían enmascarado el segundo. A continuación en el cuadro 8se pueden observar algunas muestras tomadas de las peticiones de TCP SYN Floodobtenidas del segundo ataque. Se puede observar que muchas de ellas provienen de ordenadores conectados a redes que tienen grandes conexiones a Internet (.nasa.gov o .yahoo.com) CUADRO No. 8 ANALISIS REAL DE LOS PAQUETES DEL SEGUNDO ATAQUE Dirección IP 64.152.4.80 128.121.223.161 131.103.248.119 164.109. 18.251 171. 64. 14.238 205.205.134.1 206.222.179.216 208. 47.125. 33 216. 34. 13.245 216.111.239.132 216.115.102. 75 216.115.102. 76 216.115.102. 77 216.115.102. 78 216.115.102. 79 Nombre DNS www.wwfsuperstars.com veriowebsites.com www.cc.rapidsite.net whalenstoddard.com www4.Stanford.edu shell1.novalinktech.net forsale.txic.net gary7.nsa.gov channelserver.namezero.com www.jeah.net w3.snv.yahoo.com w4.snv.yahoo.com w5.snv.yahoo.com w6.snv.yahoo.com w7.snv.yahoo.com Elaboración:Propia del autor del presente trabajo Fuente:<http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> 72 Después de aplicar los filtros correspondientes, el ISP de GRC.COM (Verio) descartó un total de 1.072.519.399 paquetes maliciosos de TCP SYN Flood. SNORT Snort es un sistema de detección de intrusiones de red (NIDS) activo (que puede ejecutar acciones de respuesta), el cual implementa un motor de detección de ataques y barridos de puertos el cual permite registrar, alertar y reaccionar ante algún intento de ataque. La primera aproximación de Snort fue APE, un programa para Linux escrito enNoviembre de 1998, por MartyRoesch. Este programa tenía carencias como la falta decapacidad para trabajar en múltiples sistemas operativos o la de mostrar todos los tipos depaquetes del mismo modo. Fue en Diciembre de 1998, cuando MartyRoesch creó la primera versión de Snort(Snort-0.96), que ya estaba desarrollada con libcap, lo que la dotaba de una gran portabilidad.Esta primera versión era sólo un sniffer de paquetes y no tenía las capacidades reales de unIDS/IPS. Sin embargo, a partir de aquí, se han ido sucediendo numerosas versiones de Snort quehan hecho de esta herramienta una de las más importantes en la seguridad software. 73 Disponible bajo licencia GPL tanto para plataformas Linux y Windows, implementa el uso de una gran cantidad de patronesy filtros para detectar posibles ataqueso vulnerabilidades. Esta herramienta es muy común encontrarla implementada con componentes como para almacenamiento de eventos y BASE para ver y analizar luego los datos desde una interfaz web. Snort utiliza reglas escritasen un lenguaje sencillo, almacenadas en archivos de texto yagrupadas por categorías.Muchas de estas reglas son incluidas en la versión inicial de Snort y se puedenhabilitaro ignorar desde el archivo snort.conf. COMPONENTES DE SNORT Antes de iniciar la instalación y configuración de Snort es importante conocer loselementos que lo componen. Tal y como muestra el gráfico 15, los elementos que componen elesquema básico de su arquitectura son: Módulo de captura del tráfico. Es el encargado de capturar todos los paquetes de lared utilizando la librería libpcap. Decodificador. Se encarga de formar las estructuras de datos con los paquetescapturados e identificar los protocolos de enlace, de red, etc. 74 Preprocesadores. Permiten extender las funcionalidades preparando los datos para ladetección. Existen diferentes tipos de preprocesadores dependiendo del tráfico quequeremos analizar (por ejemplo, existen los preprocesadores http, telnet). GRÁFICO 15 ARQUITECTURA DE SNORT Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> Motor de Detección. Analiza los paquetes en base a las reglas definidas para detectarlos ataques. 75 Archivo de Reglas. Definen el conjunto de reglas que regirán el análisis de los paquetes detectados. Plugins de detección. Partes del software que son compilados con Snort y se usan paramodificar el motor de detección. Plugins de salida. Permiten definir qué, cómo y dónde se guardan las alertas y loscorrespondientes paquetes de red que las generaron. Pueden ser archivos de texto, basesde datos, servidor syslog, etc. Seguidamente se describirán cada uno de los elementos que componen Snort: MÓDULO DE CAPTURA DE DATOS El módulo de captura de paquetes del sensor se encarga, tal y como su propio nombreindica, de realizar la captura del tráfico que circula por la red, aprovechando almáximo losrecursos de procesamiento y minimizando por tanto la pérdida de paquetes a tasas de inyecciónelevadas. Para que los preprocesadores y posteriormente el motor de detección puedan conseguirpaquetes se deben realizar algunas tareas previas. Snort no tiene ninguna facilidad nativa depaquetes aún; por lo que requiere de una biblioteca de sniffing de 76 paquetes externa: libpcap.Libpcap fue escogida para la captura de paquetes por su independencia de plataforma. Puede sercontrolada sobre todas las combinaciones de hardware y S.O.; e incluso sobre WIN32 conwinpcap. Debido a que Snort usa la biblioteca libpcap para capturar paquetes por la red, puedeutilizar su transportabilidad para ser instalado en casi todas partes. La utilización de libpcaphace que Snort tenga un uso realmente independiente de plataforma. La responsabilidad de capturar paquetes directamente de la tarjeta de interfaz de redpertenece a libpcap. Esto hace que la facilidad de captura para “paquetes raw”proporcionadospor el sistema operativo esté disponible a otras aplicaciones. Un “paquete raw” es un paquete que se deja en su forma original, sin modificar comohabía viajado a través de la red del cliente al servidor. Un paquete raw tiene toda su informaciónde cabecera de protocolo de salida intacta e inalterada por el sistema operativo. Las aplicacionesde red típicamente no tratan paquetes raw; estos dependen del S.O. para leer la información delprotocolo y expedir los datos de carga útil correctamente. Snort es insólito en este sentido, usa lainformación de cabecera del protocolo que habría sido quitada por el sistema operativo paradescubrir algunas formas de ataques. 77 DECODIFICADOR El motor de decodificación está organizado alrededor de las capas de la pila deprotocolos presentes en las definiciones soportadas de los protocolos de Enlace de Datos yTCP/IP. Cada subrutina en el decodificador impone orden sobre los datos del paquete,sobreponiendo estructuras de datos sobre el tráfico de la red. Snort posee capacidades de decodificación para protocolos Ethernet, SLIP y PPP. Seencarga de tomar los paquetes que recoge el libpcap y almacenarlos en una estructurade datosen la que se apoyan el resto de capas. En cuanto los paquetes han sido capturados, Snort debe descifrar los elementos deprotocolo específicos para cada paquete. El decodificador de paquetes es en realidaduna seriede decodificadores, de forma que cada uno descifra elementos de protocolos específicos.Funciona sobre la pila de protocoles de Red, que comienza con el nivel más bajo: protocolos dela capa de Enlace de Datos, descifrando cada protocolo conforme asciende en la pila deprotocolos de red. Un paquete sigue este flujo de datos moviéndose a través del decodificador de paquetes, como se puede ver en el gráfico 16. 78 GRÁFICO 16 FLUJO DE DATOS DEL DECODIFICADOR Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> En cuanto los paquetes de datos son almacenados en una estructura de datos están listospara ser analizados por los preprocesadores y por el motor de detección. 79 PREPROCESADORES Para comprender mejor lo que es un preprocesador en primer lugar hay que entender laforma de comunicación de un sistema. Como se puede ver en el gráfico 17, el protocolo TCP/IPes un protocolo basado en capas. Cada capa del protocolo tiene una funcionalidad determinaday para trabajar correctamente necesita una información (cabecera). Por ejemplo, la capa deenlace utiliza para enviar y recibir datos las direcciones MAC de los equipos, la capa de redutiliza las direcciones IP, etc. Los datos que se transmiten por la red en paquetes de forma individual, pueden llegar asu destino de forma desordenada, siendo el receptor el encargado de ordenar los paquetes ydarles sentido. GRÁFICO 17 CAPAS TCP/IP Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> 80 Como Snort tiene que leer todo el tráfico de la red e interpretarlo también tiene quellevar un control de los paquetes que se envían por la red y así poder darle forma a lainformación. Por ejemplo, escucha todo el tráfico que tiene como destino una dirección ypuertos determinados para ensamblar los datos y así poder interpretarlos. Los Preprocesadores son componentes de Snort que no dependen de las reglas ya que elconocimiento sobre la intrusión depende del módulo Preprocesador. Se llaman siempre quellegue un paquete y se les puede aplicar reglas que estén cargadas en Snort. Asípues, se encargan de coger la información que viaja por la red de una manera caótica y darleforma para que pueda ser interpretada la información. De esta forma una vez que tenemos losdatos ordenados que viajan por la red aplicaremos las reglas (rules) para buscar un determinadoataque. La arquitectura de preprocesadores de Snort consiste en pequeños programas C quetoman decisiones sobre qué hacer con el paquete. Estos pequeños programas C se compilanjunto a Snort en forma de librería. Estos preprocesadores son llamados justo después que Snortrealice la Decodificación, y posteriormente se llama al Motor de Detección. Si el número depreprocesadores es muy alto el rendimiento de Snort puede caer considerablemente. 81 Las configuraciones predeterminadas para estos subsistemas son muy generales, amedida que experimentemos con Snort, podremos ajustarlas para obtener un mejor rendimientoy resultados. A continuación se muestra en el cuadro 9, un resumen con una descripción general de los preprocesadores de Snort. CUADRO No. 9 PREPROCESADORES PARA SNORT Preprocesador Descripción frag3 El preprocesador frag3 se basa en la fragmentación IP de losmódulos de snort. Frag3 permite una ejecución más rápida que frag2y permite técnicas de antievasión. Proporciona un flujo de ensamblado TCP y capacidades de análisispara poder rastrear hasta 100.000 conexiones simultáneas. Permite unificar el estado que mantiene los mecanismos de Snort enun único lugar. Desde la versión 2.1.0 sólo se implementaba eldetector portscan, pero a largo plazo muchos subsistemas de Snortutilizan flow. Es un módulo de reensablado que intenta suplantar a stream4 y aflow. Permite rastrear tanto comunicaciones TCP como UDP. Es un módulo desarrollado por sourcefire para detectar el primerpaso de un ataque: el escaneo de puertos. Permite normalizar múltiples registros RPC fragmentados en unúnico registro. Permite medir en tiempo real el funcionamiento de Snort. Elfuncionamiento de éste preprocesador lo veremos más tarde. Es un decodificador genérico para analizar el tráfico http. Permitetrabajar tanto para analizar las respuestas de los clientes como de losservidores. Es un decodificador SMTP para los clientes de correo stream4 y stream4_reasemble flow stream5 sfportscan rpc_decode perfomance monitor http_inspect y http_inspect_server smtp 82 ftp/telnet ssh dce/rpc dns electrónico. Permite decodificar el tráfico ftp y telnet para buscar cualquieractividad anormal. Se utiliza para analizar tanto las respuestas de losclientes como de los servidores Permite analizar el tráfico ssh de clientes y servidores. Analiza el tráfico SMB (compartir archivos y carpetas de Windows). Permite analizar el tráfico de DNS para detectar diferentes tipos deataques. Elaboración:Propia del autor del presente trabajo. Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> REGLAS Las reglas o firmas son los patrones que se buscan dentro de los paquetes de datos. Lasreglas de Snort son utilizadas por el motor de detección para comparar los paquetes recibidos ygenerar las alertas en caso de existir coincidencia entre el contenido de los paquetes y las firmas. El archivo snort.confpermite añadir o eliminar clases enteras de reglas. En la parte final delarchivo se pueden ver todos los conjuntos de reglas de alertas. Se pueden desactivar toda unacategoría de reglas comentando la línea de la misma. A continuación, se verán las distintas reglas de Snort, y el formato de las mismas, parapoder realizar su configuración. 83 CATEGORÍAS DE REGLAS SNORT Hay cuatro categorías de reglas para evaluar un paquete. Estas cuatro categorías estándivididas a su vez en dos grupos, las que tienen contenido y las que no tienen contenido. Hayreglas de protocolo, reglas de contenido genéricas, reglas de paquetes mal formados y reglas IP. Reglas de Protocolo. Las reglas de protocolo son reglas las cuales son dependientes delprotocolo que se está analizando, por ejemplo en el protocolo Http está la palabrareservada uricontent. Reglas de Contenido Genéricas. Este tipo de reglas permite especificar patrones parabuscar en el campo de datos del paquete, los patrones de búsqueda pueden ser binarios oen modo ASCII, esto es muy útil para buscar exploits los cuales suelen terminar encadenas de tipo “/bin/sh”. Reglas de Paquetes Malformados. Este tipo de reglas especifica características sobrelos paquetes, concretamente sobre sus cabeceras las cuales indican que se estáproduciendo algún tipo de anomalía, este tipo de reglas no miran en el contenido ya queprimero se comprueban las cabeceras en busca de incoherencias u otro tipo de anomalía. 84 Reglas IP. Este tipo de reglas se aplican directamente sobre la capa IP, y soncomprobadas para cada datagrama IP, si el datagrama luego es TCP, UDP o ICMP serealizará un análisis del datagrama con su correspondiente capa de protocolo, este tipode reglas analiza con contenido y sin él. ESTRUCTURA DE LAS REGLAS En su forma básica, una regla de Snort consta de dos partes: Encabezado Opciones En el siguiente gráfico se puede ver la estructura que presenta una regla y su cabecera. GRÁFICO 18 ESTRUCTURA DE UNA REGLA Y SU CABECERA Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> 85 A continuación se muestran más detalladamente los distintos componentes de una regla. CABECERA DE UNA REGLA La cabecera permite establecer el origen y destino de la comunicación, y sobre dichainformación realizar una determinada acción. La cabecera contiene algunos criterios para unir laregla con un paquete y dictar qué acción debe tomar una regla. Su estructura es: <acción><protocolo><red origen><puerto origen><dirección><red destino> <puerto destino> La estructura general de la cabecera de la regla es la que se puede observar en elsiguiente gráfico: GRÁFICO 19 ESTRUCTURA DE LA CABECERA DE UNA REGLA SNORT Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> 86 Y el significado de cada campo es el siguiente: Acción. Permite indicar la acción que se debe realizar sobre dicho paquete. Los posiblesvalores son: o alert: Genera una alerta usando el método de alerta seleccionado y posteriormenteloggea el paquete. o log: Comprueba el paquete. o pass: Ignora el paquete. o activate: Alerta y luego activa otra regla dinámica. o dynamic: Permanece ocioso hasta que se active una regla, entonces actúa como uninspector de reglas. Protocolo. Permite establecer el protocolo de comunicaciones que se va a utilizar. Losposibles valores son: TCP, UDP, IP e ICMP. Red de origen y red de destino. Permite establecer el origen y el destino de lacomunicación. Puerto de origen y destino. Permite establecer los puertos origen y destino de lacomunicación. Indica el número de puerto o el rango de puertos aplicado a la direcciónde red que le precede. 87 Dirección. Permite establecer el sentido de la comunicación. Las posibles opciones son:->, <- y <>. LAS OPCIONES DE LAS REGLAS Las opciones están separadas entre sí, por (;) y las claves de las opciones estánseparadas por (:). Hay cuatro tipos de opciones: Meta-data. Proporciona la información sobre la regla pero no tenga alguno afectadurante la detección. Payload. Busca patrones (firmas) dentro de la carga útil del paquete. Non-Payload. Busca patrones dentro de los demás campos del paquete, que no seancarga útil (por ejemplo, la cabecera). Post-detection. Permite activar reglas específicas que ocurren después de que se ejecuteuna regla. Seguidamente se describen las principales opciones de las reglas: msg. Informa al motor de alerta que mensaje debe de mostrar. Los caracteres especialesde las reglas como : y ; deben de colocarse dentro de la opción msg con el carácter \. 88 flow. Se usa junto con los flujos TCP, para indicar qué reglas deberían de aplicarse sóloa ciertos tipos de tráfico. content. Permite que Snort realice una búsqueda sensitiva para un contenido específicodel payload del paquete. reference. Define un enlace a sistemas de identificación de ataques externos, comobugtraq, con id 788. classtype. Indica qué tipo de ataques intentó el paquete. La opción classtype,usa lasclassificationsdefinidas en el archivo de configuración de Snort y que se encuentran enarchivos como classification.config. La sintaxis del classification.configes: <nombre_clase>, <descripción_clase>, <priorididad_por_defecto> La prioridad es un valor entero, normalmente 1 para prioridad alta, 2 para media y 3para baja. La opción classification para el attempted-admin que aparece en classification.config,es la siguiente: config classification: attempted-admin,Attempted Administrator Privilege Gain,1 89 La opción sid, en combinación con la opción rev, únicamente identifica una regla Snort,correlacionando el ID de la regla individual con la revisión de la regla. MOTOR DE DETECCIÓN El motor de detección es la parte más importante de Snort. Su responsabilidad esdescubrir cualquier actividad de intrusión existente en un paquete. Para ello, el motor dedetección emplea las reglas de Snort. Las reglas son leídas en estructuras de datos internas ocadenas donde son comparadas con cada paquete. Si un paquete empareja con cualquier regla,se realiza la acción apropiada. De lo contrario el paquete es descartado. Las accionesapropiadas pueden ser registrar el paquete o generar alarmas. El motor de detección es la parte de tiempo crítico de Snort. Los factores que influyenen el tiempo de respuesta y en la carga del motor de detección son los siguientes: Las características de la máquina. Las reglas definidas. Velocidad interna del bus usado en la máquina Snort. Carga en la red. 90 Estos factores son muy importantes ya que por ejemplo, si el tráfico en la red esdemasiado alto, mientras Snort está funcionando en modo NIDS, se pueden descartar paquetes yno se conseguirá una respuesta en tiempo real. Así pues, para el diseño del IDS habrá que teneren cuenta estos factores. El motor de detección puede aplicar las reglas en distintas partes del paquete. Estaspartes son las siguientes: La cabecera IP. Puede aplicar las reglas a las cabeceras IP del paquete. La cabecera de la capa de transporte. Incluye las cabeceras TCP, UDP e ICMP. La cabecera del nivel de la capa de aplicación. Incluye cabeceras DNS, FTP, SNMPy SMPT. Payload del paquete. Esto significa que se puede crear una regla que el motor dedetección use para encontrar una cadena que esté presente dentro del paquete. El nuevo motor de detección de Snort introducido en la versión 2.0, parte con unrequisito inicial, que Snort sea capaz de funcionar en redes Gigabyte, y para que esto sea posiblese ha reescrito totalmente el motor de Snort para que este sea capaz de gestionar tráfico aGigaBytes. 91 Los desarrolladores de Snort realizaron un nuevo motor de detección usandoalgoritmosmultipatrónde búsqueda que es el núcleo del motor y que implementa múltiples reglas,permitiendo a Snort funcionar sobre redes GigaByte.El nuevo motor de detección construye cuatro grupos de reglas, una para el protocoloTCP, para UDP, para ICMP y para IP. Cuando un paquete se captura mediante la librería Libpcap lo primero que se realiza esuna decodificación de éste para alinear cabeceras según el protocolo, como se puede ver en elsiguiente diagrama del gráfico 20. GRÁFICO 20 DIAGRAMA DE DECODIFICACIÓN DE PAQUETES 92 Elaboración:Carlos Jiménez Galindo Fuente:<http://www.adminso.es/images/8/88/PFC_carlos.pdf> MÓDULOS DE SALIDA Los módulos de salida o plugins pueden hacer diferentes operaciones dependiendo decómo se desee guardar la salida generada por el sistema de loggin y alerta de Snort.Básicamente estos módulos controlan el tipo de salida generada por estos sistemas.Existen varios módulos de salida que se pueden utilizar, dependiendo del formato en elque se deseen los datos: Syslog, Databasey el nuevo módulo denominado Unified, que es unformato binario genérico para exportar datos a otros programas. Tipos de módulos de salidas: Syslog. Envía las alarmas al syslog. Alert_Fast. El modo Alerta Rápida nos devolverá información sobre: tiempo, mensajede la alerta, clasificación, prioridad de la alerta, IP y puerto de origen y destino. Alert_Full. El modo de Alerta Completa nos devolverá información sobre: tiempo,mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen/destino einformación completa de las cabeceras de los paquetes registrados. Alert_smb. Permite a Snort realizar llamadas al cliente de SMB, y enviar mensajes dealerta a hosts Windows (WinPopUp). 93 Alert_unixsock. Manda las alertas a través de un socket, para que las escuche otraaplicación. Log_tcpdump. Este módulo asocia paquetes a un archivo con formato tcpdump. Database. Snort admite directamente cuatro tipos de salida a base de datos: MySQL,PostgreSQL, Oracle y unixODBC. El módulo de salida de base de datos requiere:parámetros y configuraciones, dentro del archivo de configuración y en tiempo decompilación. CSV. El plugin de salida CSV permite escribir datos de alerta en un formato fácilmenteimportable a una base de datos. Unified. Es un formato binario básico para registrar los datos y usarlos en el futuro. Losdos argumentos admitidos son filenamey limit. Log Null. A veces es útil ser capaz de crear las reglas que provocarán alertas sobreciertos tipos de tráfico, pero no causarán entradas en los archivos de log. Eventlog. Registra las alertas para visualizarse a través del visor de sucesos de unsistema Windows. 94 CAPÍTULO III METODOLOGÍA DISEÑO DE LA INVESTIGACIÓN MODALIDAD DE LA INVESTIGACIÓN El trabajo que se presenta es el de un “Diseño e implementación de un sistema detector de intrusos para aumentar la seguridad informática aplicando la plataforma GNU-Linux” al que lo considero como una investigación de tipo bibliográfica ya que al realizar este trabajo se hizouna investigación exhaustiva en todo lo que se refiere a las diversas fallas que se podrían presentar en un sistema informático y las posibles soluciones que se pueden dar para reparar esa vulnerabilidad de la que ha sido objeto tal sistema. TIPO DE INVESTIGACIÓN 95 El presente trabajo se encuentra enmarcado dentro del tipo de investigación por la factibilidad el cual es un proyecto factible, ya que es la propuesta de un modelo práctico que permite solucionar problemas, luego de un diagnóstico. POBLACIÓN Y MUESTRA POBLACIÓN La presente investigación escogió a lugares que prestan servicios de hosting en la ciudad de Guayaquil.El hosting es el servicio que provee a los usuarios de Internet un sistema para poder almacenar información, vídeo, o cualquier contenido accesible vía web. Es una analogía de “hospedaje o alojamiento en hoteles o habitaciones” donde uno ocupa un lugar específico, en este caso la analogía alojamiento web o alojamiento de páginas web, se refiere al lugar que ocupa una página web, sitio web, sistema, correo electrónico, etc. en Internet o más específicamente en un servidor que por lo general hospeda varias aplicaciones o páginas web. Se escogió esta población para hacer un análisis en lo que respecta a la seguridad de estos sitios que ofrecen dicho servicio a sus clientes. MUESTRA Como nuestra población es pequeña,para nuestro estudio se realizó un total de 29 encuestas que son las que corresponden a nuestra muestra. 96 INSTRUMENTO DE LA RECOLECCIÓN DE DATOS El instrumento que utilice para realizar la recolección de datos fue la encuesta. A continuación expongo el formato de la encuesta que se realizo basado en nuestro tema investigativo. FORMATO DE LA ENCUESTA 1. ¿Existe algún responsable de la seguridad informática de su empresa? SI NO 2. ¿Tiene implementado algún sistema para detectar accesos no autorizados en su empresa? SI NO 3. Si su respuesta es positiva indique el tipo de sistema que tiene implementado en su empresa: Windows 97 Linux Sistemas de detección de intrusos Firewalls Otros 4. Tuvieron problemas de seguridad informática en el tiempo que llevan operando? SI NO 5. Si su respuesta es positiva indique el tipo de problema del que fue objeto su compañía: Alteración de página web Acceso no autorizado por personal interno Captura de información Otros 6. Indique cómo se entero de estas violaciones a la seguridad: Sistemas de detección de intrusos Firewalls Otros 7. ¿Conoce usted de la aplicación SNORT? SI NO 98 8. Seleccione los elementos que impiden fortalecer la seguridad informática en su organización: Factor económico Factor humano Desconocimiento Otro 9. Escoja que tecnología de seguridad informática utiliza actualmente su empresa: Sistemas de detección de intrusos Firewalls Software antivirus Redes privadas virtuales Otras Ninguna 10. ¿Considera que la información es un activo que se debería proteger? SI NO PROCESAMIENTO Y ANÁLISIS 99 Para nuestro estudio se realizó un total de 29 encuestas. A continuación se muestran las preguntas formuladas y el desglose de las respuestas dadas con su respectivo gráfico que nos permiten tener una mejor compresión de la situación. ¿Existe algún responsable de la seguridad informática de su empresa? CUADRO No. 10 RESULTADOS DE LA PREGUNTA 1 SI 12 NO 17 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Vemos que el 41% de los encuestados respondió a que si tenían un responsable de la seguridad informática en su empresa, lo que quiere decir que hay un porcentaje bastante alto de lugares que no tienen responsable de la seguridad informática. GRÁFICO 21 PREGUNTA 1 100 SI 41% SI NO NO 59% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Tiene implementado algún sistema para detectar accesos no autorizados en su empresa? CUADRO No. 11 RESULTADOS DE LA PREGUNTA 2 SI 16 NO 13 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Existe un porcentaje bastante alto de lugares que no tienen implementado algún sistema para detectar accesos no autorizados. GRÁFICO 22 PREGUNTA 2 101 NO 45% SI SI 55% NO Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Si su respuesta es positiva indique el tipo de sistema que tiene implementado en su empresa: CUADRO No. 12 RESULTADOS DE LA PREGUNTA 3 Windows 9 Linux 7 Sistemas de detección de intrusos 1 Firewalls 14 Otros 2 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Esta pregunta venia relacionada con la anterior en el caso de que nos contestaran afirmativamente y nosarrojo los siguientes resultados: el tipo de sistema que tienen la 102 mayor parte de los lugares encuestados para detectaraccesos no autorizados son los firewalls, el cual tiene un porcentaje del 43%, seguido por el sistema operativo Windows con un 27%, el sistema operativos Linux con un 21%, otros tipos de sistemas con un 6% y un bajo porcentaje (3%)de lugares que tienen implementado un sistema detector de intrusos. GRÁFICO 23 PREGUNTA 3 Otros 6% Windows Windows 27% Linux Sistemas de detección de intrusos Firewalls 43% Firewalls Linux 21% Sistemas de detección de intrusos 3% Otros Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Tuvieron problemas de seguridad informática en el tiempo que llevan operando? 103 CUADRO No. 13 RESULTADOS DE LA PREGUNTA 4 SI 10 NO 19 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta GRÁFICO 24 PREGUNTA 4 SI 34% SI NO NO 66% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta El 34% de los sitios encuestados nos afirmo que tuvieron problemas de seguridad informática, mientras que el 66% no tuvieron problemas. 104 Si su respuesta es positiva indique el tipo de problema del que fue objeto su compañía: CUADRO No. 14 RESULTADOS DE LA PREGUNTA 5 Alteración de página web 0 Acceso no autorizado por personal 1 interno Captura de información 1 Otros 8 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta GRÁFICO 25 PREGUNTA 5 105 Acceso no autorizado por personal interno 10% Alteración de página web Captura de 0% información 10% Alteración de página web Acceso no autorizado por personal interno Captura de información Otros Otros 80% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Esta pregunta venia relacionada con la anterior en el caso de que nos contestaran afirmativamente y nosarrojo los siguientes resultados: El ítem “Otros tipo de problemas” nos dio un porcentaje del 80%, el acceso no autorizado por personal interno y captura de información nos dio un porcentaje del 1% mientras que por alteración de página web no hubo ningún porcentaje. Indique cómo se enteró de estas violaciones a la seguridad: CUADRO No. 15 RESULTADOS DE LA PREGUNTA 6 Sistemas de detección de intrusos 3 Firewalls 1 106 6 Otros Elaboración:Propia del autor del presente trabajo Fuente:Encuesta GRÁFICO 26 PREGUNTA 6 Sistemas de detección de intrusos 30% Otros 60% Firewalls 10% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Sistemas de detección de intrusos Firewalls Otros 107 En cuanto a como se enteraron de las violaciones a la seguridad los lugares afectados nos dio el siguiente resultado: el ítem “Por otros medios” nos dio un porcentaje del 60%, por sistemas de detección de intrusos un 30% y por medio de firewalls un 10%. ¿Conoce usted de la aplicación SNORT? CUADRO No. 16 RESULTADOS DE LA PREGUNTA 7 SI 5 NO 24 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta GRÁFICO 27 PREGUNTA 7 108 SI 17% SI NO NO 83% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Los lugares encuestados que conocían de la herramienta para detección de intrusos nos dio un porcentaje del 17% frente al 83% de encuestados que no conocían de la herramienta Open SourceSnort. Seleccione los elementos que impiden fortalecer la seguridad informática en su organización: CUADRO No. 17 RESULTADOS DE LA PREGUNTA 8 Factor económico 14 Factor humano 5 109 Desconocimiento 10 Otro 0 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta GRÁFICO 28 PREGUNTA 8 Otro 0% Desconocimient o 35% Factor económico 48% Factor económico Factor humano Desconocimiento Otro Factor humano 17% 110 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta El principal factor por el cual las organizaciones no fortalecían la seguridad informática fue el factor económico el cual nos dio un resultado del 48%, mientras que por desconocimiento el 10%, por el factor humano un 17%, y por otro factor un porcentaje nulo. Escoja que tecnología de seguridad informática utiliza actualmente su empresa: CUADRO No. 18 RESULTADOS DE LA PREGUNTA 9 Sistemas de detección de intrusos 7 Firewalls 13 Software antivirus 27 Redes privadas virtuales 4 Otras 0 Ninguna 0 111 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta En cuanto a la tecnología de seguridad informática que utiliza actualmente el sitio encuestado el principal el mayor porcentaje corresponde a el software antivirus con el 53%, firewalls con un 25%, sistemas de detección de intrusos con un 14%, redes privadas virtuales con un 8%, otro tipo de tecnología y ninguna con un porcentaje nulo. GRÁFICO 29 PREGUNTA 9 112 Redes privadas virtuales 8% Otras 0% Ninguna Sistemas de 0% detección de intrusos 14% Sistemas de detección de intrusos Firewalls Software antivirus Firewalls 25% Software antivirus 53% Redes privadas virtuales Otras Ninguna Elaboración:Propia del autor del presente trabajo Fuente:Encuesta Considera que la información es un activo que se debería proteger? CUADRO No. 19 RESULTADOS DE LA PREGUNTA 10 SI 29 NO 0 Elaboración:Propia del autor del presente trabajo Fuente:Encuesta La respuesta fue unánimente afirmativa (100%) al hacerles esta vital pregunta a los sitios encuestados. 113 GRÁFICO 30 PREGUNTA 10 NO 0% SI NO SI 100% Elaboración:Propia del autor del presente trabajo Fuente:Encuesta CRITERIOS PARA LA LABORACIÓN DE LA PROPUESTA 114 El objetivo fundamental de la propuesta es el diseño de un sistema de detección de intrusos, para lo cual he diseñado un entorno modelo basado en una arquitectura virtual en el cual el sensor (Snort) estará instalado en una máquina virtual con el sistema operativo Linux en su distribución Open Suse 11.2 el mismo que hará las funciones de servidor. El sensor nos proporcionará el tráfico filtrado y procesado en forma de alertas. En el gráfico 31 se muestra el esquema de la propuesta, pudiendo apreciarse los elementos principales que la componen: el sensor, propiamente dicho, formado por la aplicación Open SourceSnort el cual estará conectado a la red (virtual) de área local (LAN) cuyo tráfico se desea investigar. Este elemento es el que proporciona lacapacidad de sensorización al sistema; se analizará en tiempo real el tráfico capturado en busca de patrones de comportamiento que puedan considerarse anómalos y, por lo tanto, ser clasificados como intentos de intrusión y convertidos en alertas; además de capacidad de procesamiento, el sensor posee una memoria de almacenamiento interna no volátil en la que se guardarán las alertas que genere el IDS, junto con el tráfico que las provocó; y finalmente hemos colocado cuatro computadores en nuestra red virtual para hacer las respectivas pruebas. GRÁFICO 31 ESQUEMA DE LA PROPUESTA 115 192.168.56.01 Windows XP SP3 192.168.56.128 OpenSuse 11.2 192.168.56.129 IDS SNORT Windows XP SP3 192.168.56.130 Elaboración:Propia del autor del presente trabajo Fuente:Propia del autor del presente trabajo CAPÍTULO IV MARCO ADMINISTRATIVO Back Track 5 192.168.56.131 116 CRONOGRAMA Nombre de tarea Desarrollo capítulo 1 Desarrollo capítulo 1 Recopilación y análisis de inf. Recopilación y análisis de inf. Desarrollo capítulo 2 Desarrollo capítulo 2 Recopilación inf. adicional Desarrollo capítulo 3 Desarrollo capítulo 3 Desarrollo de esquema a realizar Investigación herram. a utilizar Instalación Open Suse 11.2 Aprendizaje comandos Linux Investigación de IDS Snort Instalación y configuración de IDS Snort Pruebas locales de IDS Snort Instalación de sistemas en máquinas virtuales para pruebas externas Pruebas del IDS Pruebas del IDS Realizar formato de encuesta Realización de encuestas Procesamiento encuestas Desarrollo capítulo 4 Desarrollo capítulo 5 Desarrollo de Anexos y Bibliografía Revisión y correcciones Duración 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días Comienzo 12/04/10 19/04/10 26/04/10 03/05/10 10/05/10 17/05/10 24/05/10 31/05/10 07/06/10 14/06/10 21/06/10 28/06/10 05/07/10 12/07/10 19/07/10 Fin 16/04/10 23/04/10 30/04/10 07/05/10 14/05/10 21/05/10 28/05/10 04/06/10 11/06/10 18/06/10 25/06/10 02/07/10 09/07/10 16/07/10 23/07/10 5 días 5 días 26/07/10 02/08/10 30/07/10 06/08/10 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 5 días 09/08/10 16/08/10 23/08/10 30/08/10 06/09/10 13/09/10 20/09/10 27/09/10 04/10/10 13/08/10 20/08/10 27/08/10 03/09/10 10/09/10 17/09/10 24/09/10 01/10/10 08/10/10 PRESUPUESTO 117 CUADRO No. 20 DETALLE DE EGRESOS DEL PROYECTO EGRESOS Costo de Seminario de Graduación DÓLARES $ 900.00 Computador portátil Toshiba 1,100.00 Disco duro portátilVerbatim 150.00 Servicio de Internet banda ancha 1 MBps(6 meses) $28 c/mes Servicio de energía eléctrica (6 meses) $20 c/mes Suministros de oficina y computación 168.00 120.00 70.00 Transporte 20.00 Fotocopias 5.00 Anillado de tesis de grado 5.00 TOTAL $ 2,538.00 Elaboración:Propia del autor del presente trabajo Fuente: Propia del autor del presente trabajo RECURSOS UTILIZADOS PARA EL PROYECTO 118 HARDWARE Computador portátil Toshiba Procesador: Intel Core i5 2.40 Ghz Memoria RAM: 4 Gb Disco duro: 500 GB Disco portátil: 320 GB SOFTWARE Vmware Workstation 7.0 openSUSE 11.2 Microsoft Windows XP SP3 BackTrack 5 Snort 2.9 Base 1.4.5 CONCLUSIONES 119 Hoy en día las empresas deben enfocar parte de su atención en el grado de vulnerabilidad y en las herramientas de seguridad con las que cuentan para hacerle frente a posibles ataques informáticos que luego se pueden traducir en pérdidas cuantiosas de dinero. Pero no se trata de tecnología sino que se debe tener en cuenta siempre tres variables de disminución de riesgo: Tecnología, Procesos y Personal. En cada uno de estos puntos hay mucho que hacer, también considerando los niveles de confidencialidad, disponibilidad e integridad que requiere cada uno de los elementos ponderados de las funciones básicas del negocio. En cuanto a los procesos, es importante que las empresas comiencen a entender, planear, diseñar e implementar los procesos, mecanismos y métricas necesarias que le permitan realizar el cumplimiento de regulaciones y normas. En lo que se refiere a las personas, los atacantes están teniendo el mayor éxito en el eslabón más débil y difícil de proteger, en este caso es la gente, se trata de uno de los factores que ha incentivado el número de ataques internos. No importando los procesos y la tecnología finalmente el éxito de un plan de disminución de riesgos queda en manos del usuario. Son numerosos los ataques analizados que se basan en explotar algunas características de los protocolos de comunicación. Estos ataques buscan o bien el cese de las 120 actividades o servicios que presta el ordenador atacado (ataques de denegación de servicio) o bien conseguir un acceso dentro de la máquina que le permita utilizarla a su gusto y conveniencia. La proliferación de herramientas automáticas que permiten de una forma sencilla coordinar ataques de cientos o miles de ordenadores simultáneamente, exige sistemasmás sofisticados que sean capaces de seguir y entender el flujo de las comunicacionesexistentes. El simple filtrado de paquetes aislados del resto del flujo de la comunicación ha dejado de ser efectivo. También debemos tener en cuenta que muchas veces no basta únicamente con protegernos de las posibles amenazas que provienen de Internet. En el caso de que un sistema fuera comprometido por el motivo que fuese, el resto de ataques que lanzaría el atacante hacia nuestra red serían ataques internos que pasarían desapercibidos. Los sistemas NIDS unen a la capacidad de filtrado del tráfico las posibilidades que brindan la detección por firmas (patrones específicos de ataques conocidos) y el seguimiento de las comunicaciones desde un nivel de flujo de la comunicación. Las contrapartidas de estos sistemas son principalmente la posibilidad de generar falsos positivos y falsos negativos que pueden desvirtuar la efectividad del sistema. Por otro lado generan una inmensa cantidad de información al tratar con todo el tráfico 121 existente en la red (benigno y maligno) lo que dificulta su post-proceso e interpretación. Además, para que un sistema de detección de intrusos sea realmente efectivo debe estar perfectamente parametrizado y adaptado a la red en la cual está instalada, lo que implica la existencia de un personal cualificado que regularmente verifique el buen funcionamiento del sistema. La mejora tecnológica que se produce constantemente en las telecomunicaciones ha llevado a la proliferación de ataques y comportamientos maliciosos que anteriormente eran imposibles. La comprobación de toda una clase A, B o C de direcciones IP empieza a ser factible actualmente en espacios de tiempo cada vez menores. Lo que antes hubiera tardado meses y años, en la actualidad con los anchos de banda mejorando cada día pasa a ser cuestiones de días o incluso horas. Las antiguas premisas de esconderse tras el anonimato o la falta de documentación pública sobre los aspectos de seguridad o de arquitectura de nuestra red dejan de ser válidos. Los atacantes realizan barridos “ciegos” por toda Internet con el objetivo deconseguir un sistema vulnerable a sus técnicas y métodos. Finalmente los IDS son cada vez más necesarios conforme aumenta el número de incidentes en Internet. Son de gran ayuda para los administradores de una red, trabajando en conjunto con otras herramientas de seguridad, como los firewalls y 122 analizadores de red. La información que dan nos ayuda a determinar los abusos que se producen en la red, su naturaleza y sus fuentes. RECOMENDACIONES 123 Capacitar al área encargada del sistema informático y redes de datos,en los camposde seguridad informática para que comprendiendo todoslos posibles problemas, sean éstos de desactualizaciones de equipos,de virus, troyanos, gusanos, de instalación de software pirata, etc,puedan manejarlo y actuar de manera rápida para poder solucionarlo deuna manera óptima. Hablar con los responsables de la parte administrativa de lasorganizaciones, acerca de los problemas informáticos y de las posiblesconsecuencias que se puede tener a corto y largo plazo, resaltando quela mejor defensa es la prevención. Actualizar el sistema operativo y aplicaciones importantes de lascomputadoras, por medio de los “parches” de seguridad que publican losfabricantes, principalmente en aquellas que se encuentren conectadas aInternet; ya que éstos equipos son muchomás vulnerables que otrosque no trabajen en una red insegura como la red Internet. La utilización combinada del firewall y el sistema de detección deintrusos, ya que son un complemento que favorece a la seguridad de lasorganizaciones La instalación y utilización de antivirus y firewalls de casas comercialesconocidas, ya que si se utiliza software no conocido y difundido, en vezde favorecer a la seguridad de la organización se estaría perjudicandoya que podrían tratarse de aplicaciones 124 maliciosas o modificadas quetengan escondidos programas que atenten contra la seguridad de la red. Si se requiere bajar programas fundamentales y necesarios para laorganización, se recomienda que se lo haga desde páginas Web o urlsseguros; que se compruebe la integridad del archivo descargadomediante la utilización de funciones hash, todo esto para evitarinstalaciones de archivos modificados que son perjudiciales. 125 ANEXOS GLOSARIO 126 ADSL(Asymmetric Digital Subscriber Line).Es una tecnología de acceso a Internet de banda ancha, lo que implica una velocidad superior a una conexión tradicional por módem en la transferencia de datos, ya que el módem utiliza la banda de voz y por tanto impide el servicio de voz mientras se use y viceversa. ATM (Asynchronous Transfer Mode). Es una tecnología de telecomunicación desarrollada para hacer frente a la gran demanda de capacidad de transmisión para servicios y aplicaciones. BASE (Basic Analysis and Security Engine).Esta aplicación proporciona un frontend web para consultar y analizar las alertas procedentes de un sistema IDS SNORT. BGP(Border Gateway Protocol). Protocolo mediante el cual se intercambia información de encaminamiento entre sistemas autónomos. Bugtraq.Es una lista de correo electrónico para publicación de vulnerabilidades de software y hardware. Su listado de vulnerabilidades puede servir tanto a un administrador de sistemas para enterarse de los fallos y si es posible arreglarlos, como a un cracker para atacar sistemas vulnerables. 127 CERT(Computer Emergency Response Team). Es un centro de coordinación importante en el tratamiento con los problemas de seguridad en Internet. CIDF(Common Intrusion Detection Framework).Es un esfuerzo para desarrollar los protocolos y las interfaces de programación de aplicaciones para que los proyectos de investigación de detección de intrusos puedan compartir información y recursos y también para que los componentes de detección de intrusiones se puedanreutilizar en otros sistemas. Cracker.Hacker cuya ocupación es buscar la forma de entrar en sistemas y encontrar los fallos de seguridad de programas. DOS (Denial of Service). En seguridad informática, un ataque de denegación de servicio,también llamado ataque DoS,es un ataque a un sistemade computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. DDOS (Distributed Denial of Service). Una ampliación del ataque DoS es el ataque distribuido de denegación de servicio, también llamado ataque DDoS el cual se lleva a cabo generando un gran flujo de información desde varios puntos de conexión. 128 DMZ (Demilitarizedzone). Es una red local que se ubica entre la red interna de una organización y una red externa, generalmente Internet. DNS (DomainNameSystem).Es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Firewall (Cortafuegos). Es un ordenador o un programa que conecta una red a Internet pero impide el acceso no autorizado desde Internet. Mecanismo que permite que las comunicaciones entre una red local e Internet se realizen conforme a las políticas de seguridad de quien los instala. FTP(File Transfer Protocol). Es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. GNU. Acrónimo recursivo que significa "GNU No es Unix". Software desarrollado para distribución sin fines de lucro. El proyecto GNU comenzó en 1984 para desarrollar un sistema operativo tipo Unix completo, que fuera software libre. GPL (General PublicLicense). Licencia creada por la Free SoftwareFoundation y orientada principalmente a los términos de distribución, modificación y uso de software libre. 129 Hacker. Usuario de ordenadores especializado en penetrar en las bases de datos de sistemas informáticos estatales con el fin de obtener información secreta. En la actualidad, el término se identifica con el de delincuente informático. HIDS (Host-based intrusion detection system). Sistema de detección de intrusos en un Host. HTTP (Hiper Text Transfer Protocol).Protocola de transferencia de HiperTexto. Es el protocolo de Internet que permite que los exploradores del WWW recuperen información de los servidores. IETF(Internet Engineering Task Force).Es una organización internacional abierta de normalización, que tiene como objetivos el contribuir a la ingeniería de Internet, actuando en diversas áreas, como transporte, encaminamiento, seguridad. ICMP (Internet ControI Message Protocol).Protocolo de control de mensajes de interred. Protocolo usado por el IP para informar de errores y excepciones. IDMEF(Intrusion Detection Message Exchange Format).El grupo IDWG desarrolló el IDMEF (IntrusionDetectionMessage Exchange Format) como un formato común para alertas IDS. Este es una especificación basada en XML para un formato de alertas de intrusión. 130 IDS(IntrusionDetectionSystem).Es un programa usado para detectar accesos no autorizados a un computador o a una red. Estos accesos pueden ser ataques de habilidosos hackers, o de Script Kiddies que usan herramientas automáticas. IDWG(Intrusion Detection Working Group).El objetivo del IntrusionDetectionWorkingGroup(IDWG) es de definir formatos de datos y procedimientos de intercambio para compartir la información de interés a la detección de intrusión y sistemas de respuesta y para los sistemas de gestión que necesitan interactuar con ellos. IDXP (Intrusion Detection Exchange Protocol).Este es un protocolo de nivel de aplicación para intercambiar datos entre entidades de detección de intrusos. IETF (Internet Engineering Task Force). Es una organización internacional abierta de normalización, que tiene como objetivos el contribuir a la ingeniería de Internet, actuando en diversas áreas, como transporte, encaminamiento, seguridad. IP (Internet Protocol).Es un protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados no fiable de mejor entrega posible sin garantías. 131 ISP (Internet ServiceProvider). Es una empresa que brinda conexión a Internet a sus clientes. Un ISP conecta a sus usuarios a Internet a través de diferentes tecnologías como DSL, Cablemódem, GSM, Dial-up, Wifi, entre otros. Lamer.Vocablo usado despectivamente para definir a aquellos que presumen de ser Hackers y no lo son. LAN(Local Area Network). Red de área local. El término LAN define la conexión física y lógica de ordenadores en un entorno generalmente de oficina. Linux. Versión bajo la licencia GPL/GNU del conocido sistema operativo UNIX. Es un sistema multitarea multiusuario para PC´s. Linux es una implementación del sistema operativo UNIX pero con la originalidad de ser gratuito y a la vez muy potente. MAC (Mac AddressDirection). Es un identificador de 48 bits (3 bloques hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de red. NAT(Network AddressTranslation). Es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. 132 NIDS (Network Intrusion Detection System).Es un sistema de detección de intrusos que trata de detectar actividades maliciosas, tales como el ataque de denegación de servicios, escaneo de puertos e incluso los intentos de crack en las computadoras mediante el control de tráfico de la red. SNMP (Simple Network Management Protocol).Es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Es parte de la familia de protocolos TCP/IP. SMTP (Simple Mail Transfer Protocol). Es un protocolo de la capa de aplicación. Protocolo de red basado en texto utilizado para el intercambio de mensajes de correo electrónico entre computadoras u otros dispositivos. TCP/IP (Transmision Control Protocol/Internet Protocol). Se trata de un estándar de comunicaciones muy extendido y de uso muy frecuente para software de red basado en Unix con protocolos Token-Ring y Ethernet, entre otros. TCSEC (Trusted Computer System Evaluation Criteria). Tiene por objetivo aplicar la política de seguridad del Departamento de Defensa estadounidense. Esta política se preocupa fundamentalmente del mantenimiento de la confidencialidad de la información clasificada a nivel nacional. 133 UDP (UserDatagramProtocol). Protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. VPN(Virtual Private Network). Es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet. 134 INSTALACIÓN DE OPEN SUSE 11.2 EN UNA MÁQUINA VIRTUAL 135 136 137 138 139 140 141 142 INSTALACIÓN PASO A PASO DEL SISTEMA DE DETECCIÓN DE INTRUSOS Exponemos los pasos necesarios para la instalación del sistema de detección de intrusos Snort, a ser utilizado en una plataforma Linux, específicamente la distribución Open Suse 11.2. REQUISITOS BÁSICOS Usamos YAST para instalar los siguientes paquetes: libcap-devel mysql libpng-devel flex pcre-devel bison gcc gcc-c++ libmysqld-devel php5-pear php5-devel php5-mysql make mysql-client 143 INSTALACIÓN DE SNORT Crear un directorio en el cual grabaremos todos los paquetes descargados cd /home mkdirsnortinstall cd snortinstall Descargar el software Snort wgethttps://www.snort.org/downloads/1107 wgethttps://www.snort.org/downloads/1098 Desempaquetar el paquete bajadoy ingresar al directorio snort-2.9.0 tar –xvzf snort-2.9.0.tar.gz cd snort-2.9.0 Compilar y instalar Snort ./configure --with-mysql make make install Crear una cuenta de usuario llamada snort y agregarla al grupo snort groupadd snort useradd –g snort snort 144 Crear los directorios necesarios para almacenar las reglas y los logs mkdir /etc/snort mkdir /etc/snort/rules mkdir /var/log/snort Copiar archivos de configuración ubicados en: /home/snortinstall/snort-2.9.0/etc al directorio /etc/snort: cd etc cp * /etc/snort Nos ubicamos en el directorio /home/snortinstall cd /home/snortinstall Descargar las reglas de Snort Desempaquetar las reglas de Snort y copiar las reglas al directorio /etc/snort/rules tar –xvzfsnortrules-snapshot-2905.tar.gz cd rules cp * /etc/snort/rules 145 CONFIGURACIÓN DE SNORT Editar el archivo de configuración de Snort ubicado en: /etc/snort/snort.conf Una vez dentro nos ubicamos en: var HOME_NET network/mask (esta es la red interna a ser monitoreada, por ejemplo: var HOME_NET 192.168.56.0/24. Para una IP dinámica: var HOME_NET $eth0_ADDRESS) var EXTERNAL_NET !$HOME_NET (esta es la red externa, desde la cual podrían iniciar ataques) var RULE_PATH /etc/snort/rules Buscar la entrada output database, descomentarla y editarla como sigue: output database: log, user=snortpassword=<snort_password>dbname=snort mysql, host=localhost (esto define la base de datos en la cual Snort almacenera los eventos, su usuario y su contraseña) Grabar el archivo. 146 INSTALACIÓN DE SCRIPT Descargamos un script de inicio y lo guardamos en el directorio /etc/init.d cd /etc/init.d wget http://internetsecurityguru.com/snortinit/snort Editar el script comentando las siguientes líneas: #. /etc/rc.d/init.d/functions #. /etc/sysconfig/network # [ ${NETWORKING} =”no” ]&&exit 0 Cambiar la línea: Action “” /sbin/pidof $BASE por: /sbin/pidof $BASE Una vez grabado el script, tipea los siguiente comandos: chmod 755 snort (lo hace ejecutable) chkconfig –a snort (para ejecutar el script en el inicio del sistema) CREACIÓN DE LA BASE DE DATOS EN MYSQL Ejecutar MYSQL y ingresar la contraseña (la contraseña que se asigno a MYSQL durante la instalación) 147 /usr/bin/mysql –u root –p Enterpassword: (ingresamos la contraseña) mysql> Crear la base de datos Snort y configurar la cuenta(„snort_password‟ es la contraseña que se especifico en la línea „output database‟ de el archivo snort.conf) mysql> create database snort; >Query OK, 1 row affected (0.01 sec) mysql> grant INSERT,SELECT on root.* to snort@localhost; >Query OK, 0 rows affected (0.02 sec) mysql> SET PASSWORD FOR snort@localhost=PASSWORD('snort_password'); >Query OK, 0 rows affected (0.25 sec) mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost; >Query OK, 0 rows affected (0.02 sec) mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort; >Query OK, 0 rows affected (0.02 sec) mysql>exit 148 Bye Crear las tablas SNORT /usr/bin/mysql –u root – p < /home/snortinstall/snort- 2.9.0/schemas/create_mysql snort Ingresar la contraseña (la contraseña root de MYSQL) Verificar que la base de datos Snort fue creada correctamente: /usr/bin/mysql –u root –p mysql> SHOW DATABASES; (Esto se mostrara) ++ | Database ++ | mysql | snort | test ++ 3 rows in set (0.00 sec) mysql> use snort Database changed 149 mysql> SHOW TABLES; ++ | Tables_in_snort ++ | data | detail | encoding | event | icmphdr | iphdr | opt | reference | reference_system | schema | sensor | sig_class | sig_reference | signature | tcphdr | udphdr ++ 150 16 rows in set (0.00 sec) >exit INICIO DE SNORT Para ejecutar Snort ingresar el siguiente comando: etc/init.d/snortstart (Deberíamos ver el mensaje "Iniciando servicio snort:") Podemos usar “ps” en cualquier momento para verificar si Snort se está ejecutando: ps –ef | grep snort Y algo como esto deberíamos observar: root 9582 1 61 15:48 ? 00:00:04 /usr/local/bin/snort –ieth0 – c/etc/snort/snort.conf–D ACTUALIZACIÓN AUTOMÁTICA DE LAS REGLAS DE SNORT A TRAVÉS DE OINKMASTER Ahora ya tenemos Snort instalado, y necesitamos actualizar las reglas automáticamente, para ello, descargamos oinkmaster desde su sitio web: http://oinkmaster.sourceforge.net/download.shtml 151 La versión al día de hoy es la 2.0. la descargamos y nos situamos en el directorio de descarga y descomprimimos el fichero ejecutamos el siguiente comando: tar xvzf oinkmaster-2.0.tar.gz Ingresamos al directorio de oinkmaster cd oinkmaster-2.0 Copiamos el fichero oinkmaster.pl en el directorio /usr/local/bin cp oinkmaster.pl /usr/local/bin Copiamos el fichero de configuración al directorio /etc cpoinkmaster.conf /etc A continuación modificamos el fichero de configuración /etc/oinkmaster.conf para indicar la url de donde se van a descargar las reglas #url=http://www.snort.org/pubbin/oinkmaster.cgi/<oinkmastercode>/snortrules-snapshot-2900.tar.gz Donde <oinkmastercode> es el código de suscripción facilitado en la página web de Snort. Eliminamos la almohadilla del principio, cambiaremos 152 <oinkmastercode> por nuestro código recibido y también la versión del fichero por la versión de nuestro Snort. Quedaría así: url=http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkmastercode>/snortrulessnapshot-2900.tar.gz Guardamos el fichero y salimos del editor Finalmente para actualizar las reglas de Snort se debe ejecutar oinkmaster especificando el directorio donde se encuentras las reglas: oinkmaster.pl –o /etc/snort/rules Esperamos un rato a que se descarguen y se descompriman. Para que se actualicen las reglas de forma automática debemos utilizar crontab. Para ello ejecutamos el comando crontab –e y indicamos cuando queremos ejecutar la actualización. A continuación se ha programado la actualización a la 01:00 a.m.: PATH=/usr/local/bin 0 1 * * * /usr/local/bin/oinkmaster.pl –o /etc/snort 153 REQUISITOS NECESARIOS PARA LA INSTALACIÓN DEL FRONT-END BASE (Basic Analysis and Security Engine) Paquetes necesarios Image_Graph Image_Canvas Image_Color Numbers_Roman Numbers_Words Log ADODB BASE Nos ubicamos en /home/snortinstall cd /home/snortinstall Descargamos los paquetesnecesarios wget http://download.pear.php.net/package/Image_Graph-0.7.2.tgz wget http://download.pear.php.net/package/Image_Canvas-0.3.1.tgz wget http://download.pear.php.net/package/Image_Color-1.0.4.tgz wget http://download.pear.php.net/package/Numbers_Roman-0.2.0.tgz wget http://download.pear.php.net/package/Numbers_Words-0.15.0.tgz 154 wget http://download.pear.php.net/package/Log-1.9.16.tgz wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb511.tgz wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base1.4.5.tar.gz Instalación de paquetes necesarios para gráficos de BASE cd /srv/www/htdocs tar –xvzf/home/snortinstall/Image_Graph-0.7.2.tgz mv Image_Graph-0.7.2 Image (renombrar Image_Graph-0.7.2) tar –xvzf/home/snortinstall/Image_Canvas-0.3.1.tgz cp-vRImage_Canvas-0.3.1/Canvas* /srv/www/htdocs/Image rm-RImage_Canvas-0.3.1 tar –xvzf/home/snortinstall/Image_Color-1.0.4.tgz cp–vR Image_Color-1.0.4_/Color.php /srv/www/htdocs/Image rm–RImage_Color-1.0.4 tar –xvzf/home/snortinstall/Numbers_Roman-0.2.0.tgz mv Numbers_Roman-0.2.0Numbers tar –xvzf/home/snortinstall/Numbers_Words-0.15.0.tgz 155 cp–vRNumbers_Words-0.15.0/Words* /srv/www/htdocs/Numbers rm–RNumbers_Words-0.15.0 tar –xvzf/home/snortinstall/Log-1.9.16.tgz mv Log-1.9.16 Log Instalación del paquete Adodb (conjunto de bibliotecas de bases de datos para PHP y Python) cd /srv/www tar –xvzf /home/snortinstall/adodb511.tgz INSTALACIÓN DE BASE Nos ubicamos en /srv/www/htdocs y descomprimimos el paquete de BASE cd /srv/www/htdocs tar –xvzf /home/snortinstall/base1.4.5.tar.gz mv base1.4.5 base (renombrar el directorio base1.4.5 a base) CONFIGURACIÓN DE BASE Un ejemplo del archivo de configuración de BASE está incluido en el paquete. Lo usamos para crear nuestro archivo de configuración. 156 cd base cpbase_conf.php.distbase_conf.php Editar base_conf.php como sigue ('snort_password' es la contraseña que se coloco en la línea 'outputdatabase' de el archivo snort.conf): $BASE_urlpath = “/base”; $DBlib_path = "/srv/www/adodb5"; $DBtype = "mysql"; $alert_dbname = "snort"; $alert_host = "localhost"; $alert_port = ""; $alert_user = "snort"; $alert_password = "snort_password"; Grabar el archivo. Modificar el archivo php.ini ubicado en:/etc/php5/apache2/php.ini Cambiar: include_path = "/usr/share/php" A:include_path = "/srv/www/htdocs:/usr/share/php5" INICIO DE BASE Abrir el navegador y escribir http://localhost/base 157 La siguiente pantalla debería aparecer: Fig. 25. Pantalla al iniciar por primera vez BASE Esto nos dice que la base de datos está incompleta o no es valida. Dar clic en el link “Setup page” luego en el botón “Create Base AG”, para finalizar la configuración de la base de datos BASE. Se verá la siguiente pantalla: Ir hasta abajo de la página y dar clic en "Main page". La página principal de BASE debe aparecer 158 PROTECCION DEL DIRECTORIODE BASE Creamos un archivo de contraseñas y configuramos el control de acceso para el usuario “base” (el switch –c crea un archivo). mkdir /srv/www/htpasswd2 –c /srv/www/htdocs/passwords/ base (el programa le pedirá que establezca una contraseña para el usuario base). Agregamos las siguientes líneas a el archivo /etc/apache2/httpd.conf <Directory “/srv/www/htdocs/base”> AuthType Basic 159 AuthName “SnortIDS” AuthUserFile “/srv/www/htdocs/passwords/passwords Requireuser base </Directory> Grabamos el archive y reiniciamos el servicio Apache /etc/init.d/apache2 restart Una vez hecho esto el directorio de BASE esta protegido con contraseña. 160 SCRIPT SNORT #!/bin/sh # #chkconfig: 2345 99 82 #description: Starts and stops the snort intrusion detection system # #config: /etc/snort/snort.conf #processname: snort #Source function library - for Redhat #./etc/rc.d/init.d/functions BASE=snort DAEMON="-D" INTERFACE="-h 192.168.56.0/24" CONF="/etc/snort/snort.conf" #Check that $BASE exists. [ -f /usr/local/bin/$BASE ] || exit 0 # Source networking configuration. 161 # ./etc/sysconfig/network # # Check that networking is up. # [${NETWORKING}="no"] && exit 0 RETVAL=0 # See how we were called. case "$1" in start) if [ -n "`/sbin/pidof $BASE`" ]; then echo -n $"$BASE: already running" echo "" exit $RETVAL fi echo -n "Starting snort service:" /usr/local/bin/$BASE $INTERFACE -c $CONF $DAEMON sleep 1 # action "" /sbin/pidof $BASE /sbin/pidof $BASE RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/snort 162 ;; stop) echo -n "Shutting down snort service:" killproc $BASE RETVAL=$? echo [ $RETVAL -eq 0 ] &&rm -f /var/lock/subsys/snort ;; restart|reload) $0 stop $0 start RETVAL=$? ;; status) status $BASE RETVAL=$? ;; *) echo "Usage: snort {start|stop|restart|reload|status}" exit 1 esac exit $RETVAL 163 BIBLIOGRAFÍA Detección de intrusos. Disponible en: <http://www.segu-info.com.ar/ataques/ataques.htm> Diccionario informático. Disponible en: <http://www.glosarium.com> García Alfaro, Joaquín. Aspectos avanzados de seguridad en redes.Disponible en: <http://revistaenter.net/biblia/012.1%20Aspectos%20avanzados%20en%20seguridad %20en%20redes%20modulos.pdf> Jiménez, Carlos. Diseño y Optimización de un Sistema de Detección de Intrusos Híbrido. Disponible en: <http://www.adminso.es/images/8/88/PFC_carlos.pdf> Revista Red. (noviembre 2002). Seguridad informática ¿Qué, por qué y para qué?. Disponible en: http://www.inegi.gob.mx/inegi/contenidos/espanol/ciberhabitat/museo/cerquita/redes/ seguridad/intro.htm 164 Seguridad informática. Disponible en: <http://es.wikipedia.org/wiki/Seguridad_informatica> Tipos de IDS. (19 agosto del 2003). Disponible en: <http://www.maestrosdelweb.com/editorial/snort/> Verdejo Alvarez, Gabriel. Seguridad en redes IP.Disponible <http://www.elrinconcito.com/articulos/SeguridadIP/SeguridadIP.pdf> en: