Sistema de detección de intrusiones

Anuncio
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
Descargar