SISTEMAS DE DETECCIÓN DE INTRUSIONES El término IDS (Sistema de detección de intrusiones) hace referencia a un mecanismo que, sigilosamente, escucha el tráfico en la red para detectar actividades anormales o sospechosas, y de este modo, reducir el riesgo de intrusión. Existen dos claras familias importantes de IDS: El grupo N-IDS (Sistema de detección de intrusiones de red), que garantiza la seguridad dentro de la red. El grupo H-IDS (Sistema de detección de intrusiones en el host), que garantiza la seguridad en el host. Un N-IDS necesita un hardware exclusivo. Éste forma un sistema que puede verificar paquetes de información que viajan por una o más líneas de la red para descubrir si se ha producido alguna actividad maliciosa o anormal. El N-IDS pone uno o más de los adaptadores de red exclusivos del sistema en modo promiscuo. Éste es una especie de modo "invisible" en el que no tienen dirección IP. Tampoco tienen una serie de protocolos asignados. Es común encontrar diversos IDS en diferentes partes de la red. Por lo general, se colocan sondas fuera de la red para estudiar los posibles ataques, así como también se colocan sondas internas para analizar solicitudes que hayan pasado a través del firewall o que se han realizado desde dentro. El H-IDS se encuentra en un host particular. Por lo tanto, su software cubre una amplia gama de sistemas operativos como Windows, Solaris, Linux, HP-UX, Aix, etc. El H-IDS actúa como un daemon o servicio estándar en el sistema de un host. Tradicionalmente, el H-IDS analiza la información particular almacenada en registros (como registros de sistema, mensajes, lastlogs y wtmp) y también captura paquetes de la red que se introducen/salen del host para poder verificar las señales de intrusión (como ataques por denegación de servicio, puertas traseras, troyanos, intentos de acceso no autorizado, ejecución de códigos malignos o ataques de desbordamiento de búfer). Técnicas de detección El tráfico en la red (en todo caso, en Internet) generalmente está compuesto por datagramas de IP. Un N-IDS puede capturar paquetes mientras estos viajan a través de las conexiones físicas a las que está sujeto. Un N-IDS contiene una lista TCP/IP que se asemeja a los datagramas de IP y a las conexiones TCP. Puede aplicar las siguientes técnicas para detectar intrusiones: Verificación de la lista de protocolos: Algunas formas de intrusión, como "Ping de la muerte" y "escaneo silencioso TCP" utilizan violaciones de los protocolos IP, TCP, UDP e ICMP para atacar un equipo. Una simple verificación del protocolo puede revelar paquetes no válidos e indicar esta táctica comúnmente utilizada. Verificación de los protocolos de la capa de aplicación: Algunas formas de intrusión emplean comportamientos de protocolos no válidos, como "WinNuke", que utiliza datos NetBIOS no válidos (al agregar datos fuera de la banda). Para detectar eficazmente estas intrusiones, un N-IDS debe haber implementado una amplia variedad de protocolos de la capa de aplicación, como NetBIOS, TCP/IP, etc. Esta técnica es rápida (el N-IDS no necesita examinar la base de datos de firmas en su totalidad para secuencias de bytes particulares) y es también más eficiente, ya que elimina algunas falsas alarmas. Por ejemplo, al analizar protocolos, N-IDS puede diferenciar un "Back Orifice PING" (bajo peligro) de un "Back Orifice COMPROMISE" (alto peligro). Reconocimiento de ataques de "comparación de patrones": Esta técnica de reconocimiento de intrusión es el método más antiguo de análisis N-IDS y todavía es de uso frecuente. Consiste en la identificación de una intrusión al examinar un paquete y reconocer, dentro de una serie de bytes, la secuencia que corresponde a una firma específica. Por ejemplo, al buscar la cadena de caracteres "cgi-bin/phf", se muestra un intento de sacar provecho de un defecto del script CGI "phf". Este método también se utiliza como complemento de los filtros en direcciones IP, en destinatarios utilizados por conexiones y puertos de origen y/o destino. Este método de reconocimiento también se puede refinar si se combina con una sucesión o combinación de indicadores TCP. Esta táctica está difundida por los grupos N-IDS "Network Grep", que se basan en la captura de paquetes originales dentro de una conexión supervisada y en su posterior comparación al utilizar un analizador de "expresiones regulares". Éste intentará hacer coincidir las secuencias en la base de firmas byte por byte con el contenido del paquete capturado. La ventaja principal de esta técnica radica en la facilidad de actualización y también en la gran cantidad de firmas que se encuentran en la base N-IDS. Sin embargo, cantidad no siempre significa calidad. Por ejemplo, los 8 bytes “CE63D1D2 16E713CF”, cuando se colocan al inicio de una transferencia de datos UDP, indican un tráfico Back Orifice con una contraseña predeterminada. Aunque el 80% de las intrusiones utilicen la contraseña predeterminada, el 20% utilizarán contraseñas personalizadas y no serán necesariamente reconocidas por el N-IDS. Por ejemplo, si la contraseña se cambia a "evadir", la serie de bytes se convertirá en "8E42A52C 0666BC4A", lo que automáticamente la protegerá de que el N-IDS la capture. Además, la técnica inevitablemente conducirá a un gran número de falsas alarmas y falsos positivos. Existen otros métodos para detectar e informar sobre intrusiones, como el método Pattern Matching Stateful, y/o para controlar el tráfico peligroso o anormal en la red. En conclusión, un perfecto N-IDS es un sistema que utiliza las mejores partes de todas las técnicas mencionadas anteriormente. Qué hacen los IDS Los principales métodos utilizados por N-IDS para informar y bloquear intrusiones son: Reconfiguración de dispositivos externos (firewalls o ACL en routers): Comando enviado por el N-IDS a un dispositivo externo (como un filtro de paquetes o un firewall) para que se reconfigure inmediatamente y así poder bloquear una intrusión. Esta reconfiguración es posible a través del envío de datos que expliquen la alerta (en el encabezado del paquete). Envío de una trampa SNMP a un hipervisor externo: Envío de una alerta (y detalles de los datos involucrados) en forma de un datagrama SNMP a una consola externa como HP Open View Tivoli, Cabletron, Spectrum, etc. Envío de un correo electrónico a uno o más usuarios: Envío de un correo electrónico a uno o más buzones de correo para informar sobre una intrusión seria. Registro del ataque: Se guardan los detalles de la alerta en una base de datos central, incluyendo información como el registro de fecha, la dirección IP del intruso, la dirección IP del destino, el protocolo utilizado y la carga útil. Almacenamiento de paquetes sospechosos: Se guardan todos los paquetes originales capturados y/o los paquetes que dispararon la alerta. Apertura de una aplicación: Se lanza un programa externo que realice una acción específica (envío de un mensaje de texto SMS o la emisión de una alarma sonora). Envío de un "ResetKill": Se construye un paquete de alerta TCP para forzar la finalización de una conexión (sólo válido para técnicas de intrusión que utilizan el protocolo de transporte TCP). Notificación visual de una alerta: Se muestra una alerta en una o más de las consolas de administración. (6) SURICATA Se trata de motor IDS/IPS de The Open Information Security Foundation. Es Open Source y tiene unas características especiales que hacen de Suricata un motor muy interesante. Además es totalmente compatible con las reglas Snort y Emerging Threads. Se destacan entre las características de Suricata: Procesamiento Multi-tarea. Una de la características más importantes de Suricata que permite la ejecución de varios procesos / subprocesos de forma simultánea. Podemos entonces asignar el número de subprocesos por CPU / nucleos y qué subprocesos. De esta forma es capaz, entre otras cosas, de procesar una gran cantidad de paquetes de forma simultánea aumentando así el rendimiento. Deteccion automática de protocolos. A parte de los protocolos IP, TCP, UDP e ICMP, Suricata tiene palabras claves para otros protocolos como FTP, HTTP, TLS, SMB. De esa forma podemos escribir reglas independientemente del puerto que un protocolo use, ya sea por defecto o no ya que éste es automáticamente detectado. Estadisticas de rendimiento. Estadísticas y análisis de rendimiento. Estas estádísticas se vuelcan el en archivo /var/log/suricata/stat.log. HTTP Log Module. Suricata, independientemente de las alertas, vuelca todas las peticiones HTTP (tanto desde HOME_NET > EXTERNAl_NET como en el sentido contrario) en un archivo /var/log/http.log. El registro de estas peticiones se almacenan en formato de Log Apache. Descompresión Gzip por parte del analizador HTTP. Soporta, al igual que Snort, Unified2 Output. Soporta IPv6. (1) Altamente escalable Suricata es multi-threaded. Esto significa que puede ejecutar una instancia y se va a equilibrar la carga de procesamiento a través de cada procesador en un sensor Suricata está configurado para utilizar. Esto permite que el hardware de productos básicos para alcanzar velocidades de 10 gigabits de tráfico de la vida real, sin sacrificar la cobertura de conjunto de reglas. Protocolo de Identificación Los protocolos más comunes son reconocidos automáticamente por Suricata como la corriente de arranque, permitiendo así que los escritores de reglas para escribir una regla para el protocolo, no al puerto esperado. Esto hace que un comando Suricata Malware y cazador canal de control sin igual. Off puerto HTTP canales CNC, que normalmente se deslizan a la derecha por la mayoría de los sistemas IDS, son un juego de niños para Suricata! Además, gracias a las palabras clave dedicados puede hacer coincidir en campos que van desde el protocolo http URI a un identificador de certificado SSL. La identificación del archivo, sumas de verificación MD5 y Archivo de Extracción Suricata puede identificar miles de tipos de archivo al cruzar su red! No sólo puedes identificarlo, pero si usted decide que quiere mirar más lejos se puede etiquetar para la extracción y el archivo se escribe en el disco con un archivo de metadatos que describe la situación de la captura y el flujo. Suma de comprobación MD5 del archivo se calcula sobre la marcha, por lo que si usted tiene una lista de hashes md5 que desea conservar en su red, o si quiere mantener fuera, Suricata lo encuentro. (2) Bro IDS Bro, un sistema de detección de intrusiones para UNIX/Linux Open Source que analiza el tráfico de red en busca de actividad sospechosa. su característica principal es que sus reglas de detección están basados en scripts en lenguaje nativo que suponen políticas (policies) que son las encargadas de detectar, generar logs o eventos y acciones a nivel de sistema operativo. Qué es Bro. Bro es un sistema de detección de intrusiones para UNIX/Linux Open Source que analiza el tráfico de red en busca de actividad sospechosa. Analiza la actividad a nivel de aplicación y por comparación con patrones considerados sospechosos, es decir, por características del tráfico y contenido. Algunas características importantes de Bro son la gran capacidad de análisis a nivel de protocolo y las políticas especializadas y configurables y la capacidad de ser una herramienta de análisis forense. También es importante destacar el elevado rendimiento y capacidad de gestionar gran volumen de tráfico. Las alertas pueden ser configuradas de tal forma que puedan generar eventos de log, alertas en tiempo real y hasta ejecución de comandos de sistema. Bro dispone de una serie de scripts o Policiticas escritas en un lenguaje nativo de Bro Estas políticas describen qué tipo de actividades se consideran sospechosas. En base a esto, disponemos de una gran cantidad de políticas para la detección de las actividades sospechosas más comunes. Estas políticas suponen una especie de capa más en la estructura de Bro. Estos políticas generarán, dado el caso, cientos de eventos dependiendo del tipo de protocolo / script. Las políticas, además de generar logs por actividad sospechosa, puede generar logs de actividad normal. Mediante el uso del lenguaje de scripts de políticas, se puede crear políticas específicas para un entorno de red o un actividad concreta que se desee detectar. Se Puede ejecutar Bro para detección en tiempo real usando una determinada interface de red o leyendo un fichero *.pcap . (3) SAMHAIN El sistema de detección de intrusos basado en host Samhain (HIDS) proporciona archivo de comprobación de la integridad y control del archivo de registro / análisis , así como la detección de rootkit, supervisión de puertos, detección de falsos ejecutables SUID y procesos ocultos Samhain ha sido diseñado para controlar múltiples hosts con sistemas operativos potencialmente diferentes, proporcionando de registro centralizado y de mantenimiento, aunque también se puede utilizar como aplicación independiente en un único anfitrión. Samhain es una aplicación multiplataforma de código abierto para sistemas POSIX (Unix, Linux, Cygwin / Windows). (4) Samhain es un comprobador de integridad y de acogida sistema de detección de intrusión que puede ser utilizado en máquinas individuales, así como grandes, UNIX basados en redes. Es compatible con central de monitoreo, así como de gran alcance (y nueva) cuenta con sigilo para ejecutar sin ser detectados en memoria, usando esteganografía. Comprobación de integridad completa utiliza cifrado sumas de comprobación de archivos para detectar modificaciones, La monitorización centralizada Puede encontrar delincuentes SUID ejecutables en cualquier lugar en el disco, y soporte nativo para registrar en un centro servidor a través de cifrado y autenticado conexiones Tamper resistencia bases de datos y archivos de configuración se pueden firmar Archivo de registro y las entradas por correo electrónico informes están firmados apoyo para la operación de sigilo (5) SNORT Originalmente lanzado en 1998 por el fundador y CTO de Sourcefire Martin Roesch, Snort es gratis, posee un código abierto de red de detección de intrusos y sistemas de prevención capaces de realizar análisis en tiempo real del tráfico y el registro de paquetes en redes IP. Inicialmente llamado una "ligera" tecnología de detección de intrusos, Snort se ha convertido en algo maduro, rico en características con tecnología IPS que se ha convertido en el estándar de facto en la detección y prevención de intrusiones. Con más de 4 millones de descargas y cerca de 400.000 usuarios registrados, es la tecnología de prevención de intrusos más utilizada en el mundo. Snort es un sniffer de paquetes y un detector de intrusos basado en red (se monitoriza todo un dominio de colisión). Es un software muy flexible que ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos abiertas como lo es MySQL. Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida. Así mismo existen herramientas de terceros para mostrar informes en tiempo real (ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos. Este IDS implementa un lenguaje de creación de reglas flexibles, potentes y sencillas. Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor, DDoS, finger, FTP, ataques web, CGI, Nmap... Puede funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico), registro de paquetes (permite guardar en un archivo los logs para su posterior análisis, un análisis offline) o como un IDS normal (en este caso NIDS). Cuando un paquete coincide con algún patrón establecido en las reglas de configuración, se logea. Así se sabe cuándo, de dónde y cómo se produjo el ataque. Aún cuando tcpdump es considerada una herramienta de auditoría muy útil, no se considera un verdadero IDS puesto que no analiza ni señala paquetes por anomalías. tcpdump imprime toda la información de paquetes a la salida en pantalla o a un archivo de registro sin ningún tipo de análisis. Un verdadero IDS analiza los paquetes, marca las transmisiones que sean potencialmente maliciosas y las almacena en un registro formateado, así, Snort utiliza la biblioteca estándar libcap y tcpdump como registro de paquetes en el fondo. Snort está disponible bajo licencia GPL, gratuito y funciona bajo plataformas Windows y UNIX/Linux. Dispone de una gran cantidad de filtros o patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad. En otras palabras Snort puede realizar análisis de protocolo y contenido búsqueda/relación. Puede ser utilizado para detectar una variedad de ataques y sondas, tales como desbordamientos de búfer, escaneos de puertos, ataques furtivos CGI, sondas SMB, intentos de utilizar huellas digitales, y mucho más. Se utiliza un lenguaje de reglas flexible para describir el tráfico que debería recoger o transmitir, así como un motor de detección que utiliza un plug-in modular arquitectura. Snort tiene una capacidad de alertar en tiempo real, así, la incorporación de mecanismos de alerta para syslog, un archivo especificado por el usuario, un socket UNIX o mensajes WinPopup a clientes Windows. Snort tiene tres usos principales: un analizador de paquetes directamente como tcpdump, un capturador de paquetes (útil para depurar el tráfico de red, etc), o un sistema de red en toda regla de prevención de intrusiones. La característica más apreciada de Snort, además de su funcionalidad, es su subsistema flexible de firmas de ataques. Snort tiene una base de datos de ataques que se está actualizando constantemente y a la cual se puede añadir o actualizar a través de la Internet. Los usuarios pueden crear 'firmas' basadas en las características de los nuevos ataques de red y enviarlas a la lista de correo de firmas de Snort, para que así todos los usuarios de Snort se puedan beneficiar. Esta ética de comunidad y compartir ha convertido a Snort en uno de los IDSes basados en red más populares, actualizados y robustos. Las raíces de Snort sobre la metodología de desarrollo aclaman desde el movimiento de software libre, un movimiento iniciado por Richard Stallman en el MIT durante los años 1980. La idea detrás de código abierto es que todo el software debe tener el código fuente disponible y será desarrollado por las comunidades de desarrolladores interesados. Esta ideología y el poder que desencadena el desarrollo de software superior se explicó y puso de relieve en lo que se considera el tratado seminal en el desarrollo de código abierto, "La Catedral y el Bazar" de Eric S. Raymond. En "La Catedral y el Bazar", Raymond describe cómo la metodología de desarrollo de código abierto puede ser aprovechada para crear un software superior en comparación con los métodos tradicionales de propiedad. El proyecto Snort se basa en gran medida de esta ideología y muestra su impacto. Prueba tras prueba, Snort ha salido en cerca de la parte superior de la pila en comparación cabeza a cabeza con la detección de intrusos y otras tecnologías de prevención. El poder y alcance de Snort es debido en gran parte a la influencia y el alcance de la comunidad de usuarios de Snort. Aparte de los desarrolladores experimentados en Sourcefire, hay miles de programadores experimentados en revisar y probar el funcionamiento del motor y conjuntos de reglas de Snort. Al aprovechar la "muchos ojos", teoría que fue popularizada por Eric Raymond y se utiliza para iniciar Linux con éxito en el mercado de sistemas operativos, la gente en la comunidad mundial del código abierto Snort puede detectar y responder a los errores y otras amenazas de seguridad más rápida y eficaz que en un entorno "cerrado". Referencias Bibliográficas 1. http://www.daboweb.com/2011/03/14/smooth-sec-sistema-ids-ips-con-motorsuricata-e-interface-snorby/ 2. http://suricata-ids.org/ 3. http://seguridadyredes.wordpress.com/2011/03/23/bro-ids-un-sistema-dedeteccion-de-intrusiones-basado-en-politicas-especializadas/ 4. http://www.la-samhna.de/samhain/index.html 5. http://en.wikipedia.org/wiki/Samhain_(software) 6. http://en.wikipedia.org/wiki/Intrusion_detection_system SISTEMAS DE DETECCION DE INTRUSOS TRABAJO DE INVESTIGACION ABSALON EMILIO VERGARA MARTÍNEZ – 1150227 UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERIA DE SISTEMAS SAN JOSE DE CUCUTA 2012 SISTEMAS DE DETECCION DE INTRUSOS TRABAJO DE INVESTIGACION SEGUNDO PARCIAL ABSALON EMILIO VERGARA MARTÍNEZ – 1150227 Presentado a: ING. JEAN POLO CEQUEDA SEGURIDAD INFORMATICA UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERIA DE SISTEMAS SAN JOSE DE CUCUTA 2012