PART 3 REFRIGERATED VENDING MACHINES
4 Implementation and Testing : After receiving approval on the PLIP’s ® from Underwriters Laboratories, we started installing PLIP’s ® on various refrigerated
3.3 Data Analysis
Los Sistemas de Detección de Intrusiones (Intrusion Detection System o IDS, en inglés) son el resultado de los primeros esfuerzos en la investigación y el desarrollo de infraestructuras de red capaces de determinar si se está produciendo un ataque en la propia red o si existe en ella algún elemento que pudiera ser susceptible de ser atacado. En sentido estricto, la funcionalidad de un IDS es la de analizar el comportamiento de los usuarios y sistemas que forman parte de la red con objeto de detectar posibles anomalías en estos comportamientos que pudieran ser síntoma de que un ataque se ha producido, se está produciendo o podría producirse en algún instante del futuro cercano. Cuando el sistema detecta una intrusión potencial, se limita a dejar constancia de la anomalía (manteniendo un registro de las mismas) y, como mucho, a enviar una notificación al administrador de la red para que, en su caso, éste tome las medidas necesarias. Es interesante destacar que un IDS sólo tiene por objetivo registrar anomalías, no reaccionar ante ellas. Uno de los despliegues más habituales de estos sistemas se da en estrecha coordinación con el firewall, al que proporcionan información muy útil para que el cortafuegos modifique sus políticas y se adapte al entorno de forma dinámica.
Capítulo 2
26
Es obvio que la utilidad de un IDS no puede cuantificarse únicamente teniendo en cuenta su efectividad para detectar ataques o intrusiones, sino que es necesario contemplar también otros aspectos tales como su capacidad de hacerlo rápidamente o su precisión a la hora de distinguir comportamientos lícitos. Algunos autores [Porras1998, Debar1999] sugieren la valoración de cinco aspectos básicos a la hora de evaluar la eficiencia y la eficacia de uno de estos sistemas:
Precisión: Capacidad del IDS para evitar los falsos positivos, esto es, para evitar marcar acciones legítimas como anómalas o intrusivas.
Completitud: Capacidad del IDS para evitar los falsos negativos, aquellos casos en los que el sistema es incapaz de detectar un ataque real o un abuso de privilegios. Esta propiedad es muy difícil de medir, al ser imposible contar con datos globales acerca de los ataques que se han producido.
Rendimiento: La tasa a la que el sistema es capaz de procesar los eventos.
Tolerancia a fallos: Como en el caso de los cortafuegos, el propio IDS debe ser resistente a ataques, especialmente a los de denegación de servicio.
Capacidad de reacción: Rapidez del sistema a la hora de notificar de una incidencia. Cuanto antes informe el IDS de un posible ataque, antes se podrán implementar las medidas necesarias para mitigar sus consecuencias. Aunque este aspecto está relacionado con el rendimiento puro del sistema, tiene en cuenta también otros parámetros como el rendimiento de los canales de notificación.
Desde los primeros desarrollos en el ámbito de los IDSs, han surgido numerosos enfoques y métodos orientados a la detección de incidentes. Nótese que se trata de una tarea “artesanal” y, por tanto, difícilmente automatizable, en el sentido de que es necesario caracterizar comportamientos y tener en cuenta la forma en que estos se interrelacionan con el entorno y el contexto en el que tienen lugar, con el objetivo de inferir correctamente la intencionalidad de los mismos y determinar si se trata efectivamente de un ataque o de un uso lícito (aunque poco habitual) de los recursos de la red. No es de extrañar, por tanto, que algunos de los métodos de detección utilizados en estas herramientas incorporen conceptos propios de campos como los sistemas expertos y la inteligencia artificial.
Además de diferenciarse por los algoritmos de detección utilizados, la evolución de estos sistemas en los últimos años ha dado lugar también a múltiples implementaciones en cuanto a otras características de los mismos. Es por esto que desde los planteamientos iniciales han ido surgiendo, de forma más o menos periódica, numerosos intentos de categorizar y clasificar estas herramientas [Lunt1993, Frank1995, Esmaili1995]. De entre los posibles aspectos a tener en cuenta a la hora de distinguir diferentes tipos de IDS, los más habituales en la literatura son los siguientes [Debar1999, Fuchsberger2005, Villagrá2009]:
Según fuentes de datos auditadas: Un IDS analiza cierta información para determinar cuándo puede estar produciéndose un ataque. En función de las fuentes de datos que utilice la herramienta, se podrán detectar intrusiones en diferentes ámbitos. Atendiendo a este aspecto, suele ser habitual hablar de IDS de sistema (host-based IDS) e IDS de red (network-based IDS). Los primeros tratarán de detectar ataques contra un
Seguridad en Internet
27 sistema concreto estudiando logs y ficheros clave del mismo para obtener indicios de comportamientos sospechosos, mientras que los segundos harán lo propio analizando tráfico de red, gracias a lo cual resultarán útiles cuando se trate de detectar incidencias que afecten a uno o a varios de los sistemas que componen la red.
Según metodología de detección: Además del origen de la información analizada, es también posible clasificar los diferentes enfoques de IDS diferenciándolos según la estrategia que utilizan a la hora de determinar si una cierta información es o no síntoma de un ataque y, por tanto, ha de notificarse del evento. La mayoría de las herramientas existentes pueden incluirse en uno de dos tipos de metodologías de detección: las basadas en comportamiento y las basadas en conocimiento. Los IDSs basados en comportamiento (o basados en la detección de anomalías) fueron los primeros en surgir, en concreto aquellos que se basaban en información estadística [O'Leary1992] para diferenciar comportamientos anómalos. Estos IDS comparan lo que están pasando en la red o en el sistema a monitorizar con lo que se consideran parámetros normales de actividad, aplicando umbrales de desviación específicos para determinar si un cierto patrón de actividad puede clasificarse o no como un ataque potencial. Esta comparación con un perfil normal o patrón implica que este tipo de IDS ha de pasar por una fase previa de entrenamiento, durante la cual se recogen datos y se elaboran estadísticas a partir de los cuales se extraerán los valores normales (en sentido estadístico) de los parámetros relevantes (un ejemplo podría ser el número de intentos fallidos de acceso a un sistema de especial importancia en un periodo de tiempo determinado). Es en este tipo de IDS dónde conceptos como las redes neuronales, más propios del área de los sistemas expertos, tienen cabida. Por otra parte, los IDSs basados en conocimiento (o basados en la detección de firmas conocidas) aparecieron como una alternativa más sencilla de implantar frente a los IDS basados en comportamiento, puesto que no requieren de un aprendizaje previo. Este tipo de IDS utiliza información conocida a priori sobre distintos tipos de ataque y que caracterizan el ataque de forma inequívoca (un determinado patrón de bits en ciertos paquetes IP, cierto tipo de paquetes dirigidos a un determinado puerto, un mensaje de correo con unas características concretas, etc.), registrando el evento cuando se detecta alguno de los patrones o firmas. Cualquier programa antivirus actual es un claro ejemplo de IDS de sistema basado en detección de firmas. Gracias a que cuentan con bases de datos de patrones para caracterizar las posibles incidencias, este tipo de IDS tiene una tasa de falsos positivos muy baja. El gran inconveniente de este tipo de metodología de detección es que es posible impedir la detección de un ataque determinado modificándolo ligeramente, lo suficiente para invalidar la firma que el sistema tiene del mismo.
Según frecuencia de análisis: Dado que el objeto de un IDS es únicamente detectar que se ha producido un incidente, no es estrictamente necesario que dicha detección tenga lugar en el momento en que éste se produce. Así, se distinguen dos tipos de IDS, los que analizan la información en el momento en que se está produciendo, consumiendo o utilizando, denominados IDSs en tiempo real o de monitorización continua, y los que actúan sobre datos recopilados previamente de forma periódica, conocidos como IDSs de análisis periódico. La ventaja de los primeros es que permiten tomar medidas para mitigar los efectos de la intrusión, puesto que la detectan cuando se está produciendo,
Capítulo 2
28
pero al hacer una monitorización en tiempo real cuentan generalmente con mucha menos información para tomar decisiones. Por otra parte, los IDSs que analizan periódicamente la información pueden permitirse actuar sobre grandes volúmenes de datos, pues cuentan con el tiempo necesario para procesarlos. Esto les permite ofrecer resultados más precisos, con un menor número de falsos positivos, a cambio de obtenerlos cuando el incidente ya ha tenido lugar.
Los IDSs sentaron bases sólidas para las modernas arquitecturas de seguridad, aunque es consenso general que los desarrollos en esta área no se dieron con la suficiente velocidad como para poder adaptarse a la rapidísima evolución que las infraestructuras de red que experimentaron las infraestructuras de red que trataban de proteger [Barber2001, Sobh2006]. Sin ir más lejos, los planteamientos e implementaciones originales no estaban pensados para trabajar con tráficos de datos que superarían con mucho los 100 Mbps, o ser herramientas clave en despliegues de alta disponibilidad capaces de satisfacer los múltiples requisitos de infraestructuras de red de medio o gran tamaño, con complejas políticas de red y dotadas de buena escalabilidad.
Quizá estos problemas podrían haberse superado sólo optimizando los algoritmos y conceptos originales, pero la mayor limitación de los IDSs procede de una característica inherente a los mismos: los IDSs estaban pensados para detectar ataques, pero no para actuar contra ellos. Esta incapacidad de responder a las amenazas detectadas produjo que los investigadores del área buscasen nuevas arquitecturas y replanteasen los conceptos iniciales para evolucionar los conceptos iniciales hacia planteamientos que permitiesen dotar al sistema de la capacidad de responder activamente a los ataques una vez éstos han sido detectados.