Sistemas de Detección de Intrusos ¿Qué son los Sistemas deDetección de Intrusos? Sistemas Sistemas que detectan detectan ataques basándose en la detección de anomalías o uso incorrecto incorrecto del sistema Existen cuatro tipos fundamentales de IDS, según el origen de la información: - NIDS - Network IDS - HIDS - Host IDS - AIDS- Aplication Based IDS. - SIDS - Stack IDS
NIDS Utiliza un adaptador de red funcionando en modo promiscuo. Analiza todo el tráfico, en tiempo real, a medida que este pasa por la red. Usualmente utiliza un filtro de primer nivel, el cual determina que paquetes se le darán al módulo analizador Ejemplo: Podemos lanzar una alerta cuando vemos paquetes SNMP, pero si es una estación que necesita SNMP, podemos obviarlos
Técnicas para reconocer un ataque − Patrón de uso del sistema − Frecuencia de acciones realizadas por usuarios o programas − Anomalía en el funcionamiento de los sistemas
Cuando el ataque es detectado − Notificar − Alertar − Tomar medidas
HIDS Comienza nzan en los 80, 80, cua cuando ndo no exist xistíían tant antas rede edes. Esta staban ban basado sadoss funda fundame ment ntalm alment entee en la revisi revisión ón de los los ficher ficheros os de bitác bitácora ora (logs). Se conti continúa núa utilizando esta técnica, pero de forma automatizada, sofisticada y en tiempo Real
Formas de acometer la tarea: − Monitorear la actividad en tiempo real, al insertarse datos en los logs − Periódicamente chequear los logs Al ser la frecuencia de monitoreo muy alta, estamos en presencia de un sistema que actúa en tiempo casi real Algunos también alertan cuando determinados puertos son accedidos Otro Otross vigil vigilan an el acces acceso o a los los puert puertos os haci haciend endo o tarea tareass simil similare aress a los los NIDS NIDS,, pero pero limitándose exclusivamente a los paquetes destinados a la propia máquina
AIDS Conjunto Conjunto de máquina máquinass dedicada dedicadass al análisis análisis de los datos datos recolect recolectadas adas en diversas diversas fuentes. La fuente de información son los logs de auditorías realizadas en diversas estaciones.
SIDS Tecnología muy reciente. Varía mucho de vendedor a vendedor. Se integra al stack TCP/IP permitiendo analizar los paquetes a medida que estos pasan de una capa a otra en el modelo OSI La idea es hacer que el análisis del tráfico consuma muy pocos recursos, de forma tal que en todas las estaciones este implementado
Ventajas de los NIDS Su funcionalidad no puede ser lograda con un HIDS en solitario
-
Costo: Permite la ubicación del software en puntos críticos de la red. Al existir menos puntos de acceso, es más fácil administrarlos, disminuyendo el costo del producto
-
Análisis de paquetes: Examina todos los paquetes buscando muestras de actividad sospechosa o maliciosa. Muchos ataques pueden ser detectados prácticamente de inmediato
-
Evidencia: El atacante no puede eliminar los paquetes recolectados una vez que han sido tomados por el NIDS. Cuando una estación es comprometida, lo primero que elimina el atacante son los logs
-
Detección y respuesta en tiempo real: Detectan los ataques en el momento en que están ocurriendo. Se pueden tomar medidas como bloquear al atacante o seguir obteniendo pruebas
-
Detección de intentos maliciosos: Si ponemos el NIDS fuera del firewall, podemos detectar ataques que serán bloqueados y por tanto pasar inadvertidos
Complemento y verificación: Ejemplo, puede garantizar que el tráfico que circula por la red está cifrado o que no están pasando del firewall paquetes indebidos - Independiente del sistema operativo
-
Ventajas de los HIDS -
Al residir en la propia estación, puede tomar datos del SO inaccesibles a un NIDS
-
Verificación del ataque: Al contar con los logs del sistema, puede determinar si el ataque fue efectivo o no. Se presentan menos falsos positivos
-
Actividad específica del sistema: Puede determinar patrones de conducta de los usuarios y alertar cuando se ejecutan acciones que alteran estos perfiles
-
Funcional en redes que utilizan switchs o cifrado: Esto no lo logran de forma efectiva los NIDS
-
Monitoreo de recursos: Existencia de DLL, ejecutables. El sistema puede alertar cuando uno de estos componentes es alterado
-
Detección y alertas casi en tiempo real
- No necesita hardware adicional
Escenarios donde NIDS funciona mejor -
Ataque SYN Ataques LAND, SMURF, TEARDROP Herramienta BackOriffice Ataque WinNuke
Escenarios donde HIDS funciona mejor -
Tráfico de red cifrado Sobre-escritura del ejecutable que permite el acceso al sistema
Escenarios cooperativos -
Acceso a un sistema NIDS Cambio de privilegios a administrador HIDS Elimina los logs del sistema HIDS Escaneo de puertos NIDS Ataque buscando CGI vulnerables NIDS Cambio de una página web HIDS Escaneo de puertos NIDS Exploit del WU-FTP NIDS Acceso a una consola como root HIDS
¿Dónde ubicar un HIDS? Los HIDS se ubican, por supuesto en las estaciones seleccionadas, dando preferencia a los servidores. Su desarrollo es equivalente a cualquier otra aplicación
¿Dónde ubicar un NIDS? Existen tres formas - SPAN - Switch Port Analizer - Hubs (distribuidor) - Cableados
Switch Port Analizer Cada paquete que pase por el switch se envía a determinado puerto. En este se conecta el NIDS Ventajas: - Fácil de instalar - No se requiere hardware adicional - La configuración del firewall no se afecta Desventajas: - Solo un puerto SPAN por switch
- Se degrada el rendimiento del switch - No se pueden enviar paquetes errados (con CRC malo, por ejemplo)
Hubs Un hub no es recomendado si se puede sustituir por un cableado Ventajas:
- Fácil de instalar - No se requiere hardware adicional - La configuración del firewall no se afecta - Muy económico Desventajas:
-
Se afecta el rendimiento a causa del medio Otro punto de fallo en el sistema
Cableados Equipo inactivo que permite que los paquetes que se transmiten por la red lleguen al NIDS Ventajas: - Tolerante a fallos - No afecta el tráfico Desventajas: Pueden ser costosos Sin modificaciones extras no se puede monitorear el tráfico en ambas direcciones
Ejemplo
OTROS TIPOS DE IDS Tipos de IDS según su análisis -
Detector de patrones Detector de anomalías
Detector de patrones Busca patrones conocido asociados con cierto tipo de evento. (ejemplo: solicitudes de páginas Web que provocan problemas, xxx.ida, etc.) Es llamado signature o fingerprint IDS. Es muy usado, pero solo detecta ataques que estén registrados en la BD.
Detector de anomalías Detecta anomalías en el comportamiento Usa técnicas tales como: estadística, redes neuronales, sistemas basados en reglas, sistemas expertos, etc Poco extendidos, detectan muchos falsos positivos, aun necesitan refinar las técnicas Una vez bien diseñado abarca más ataques que los anteriores
Tipos de IDS según su respuesta Activo: Lanza un programa que previene el ataque Pasivo: Lanza un aviso del posible ataque Software HIDS NIDS
-
Tripwire (CRC) Veracity (CRC)
-
Snort Dragon MyNetWatchman
Ataques y detección Scanneo de puertos NIDS: Lanza una alarma cuando se solicita conexión por más de dos puertos a un host en un tiempo muy pequeño HIDS: Lanza alarma si le están solicitando conexión por más de un puerto en un tiempo pequeño
SNORT Sistema de detección de intrusos de red Desarrollada por M. Roesch www.snort.org. Corre en Unix y Windows. Trae un conjunto de reglas por defecto pero permite adicionar nuevas reglas y modificar las existentes
Modos de trabajo -
Sniffer Recolector de paquetes
-
IDS
Opciones: -l fichero de logs -h network -D ejecutar SNORT como servicio -d hace un volcado de la capa de aplicación -e enseña el encabezado de la capa de red -v dar más información − -c usar el fichero de reglas − - i indica sobre una determinada interface − − − − − −
Al trabajar en modo sniffer, obtiene los paquetes que pasan por la red y los muestra como cadenas en la consola Cogemos todos los encabezados de paquetes TCP/IP #snort –v Obtenemos todos los encabezados de paquetes TCP/UDP/ICMP #snort –dv Ser más amplio: #snort –dev Guarda los paquetes en disco: #snort -dev -l ./log (asume que el directorio log existe). Guarda los paquetes creando una estructura de directorios por IP Si se desea especificar una red, se pone. #snort -dev -l ./log -h 172.30.104.0/24 Su funcionamiento principal es como IDS. Analiza los paquetes y guarda logs de alarmas: #snort -dev -l ./log -h 172.30.104.0/24 –c snort.conf.
Ficheros de configuración en /etc/snort/ Por ejemplo el archivo snort.conf permite configurar las siguientes variables var HOME_NET su_ip/subnet var HOME_NET [172.30.104.30/8] var HTTP_SERVERS [172.30.104.3/8] var SMTP [172.30.104.3/8] output alert_syslog: LOG_AUTHLOG_ALERT output alert_fast: alerta.ids
reglas
Reglas: alert protocolo(TCP/UDP) $origen puerto -> $destino puerto (msg: mensaje de alerta; flags: ; content: contenido del ataque; nocase; reference: referencia a la vulnerabilidad) Ejemplos de reglas: alert tcp $EXTERNAL_NET any -> $HOME_NET 80(msg:"SCAN /cgi-bin/htsearch with HEAD method"; flags: PA; content: "HEAD /cgi-bin/htsearch"; nocase;) alert tcp $EXTERNAL_NET any ->$HTTP_SERVERS 80 (msg:"WEB-IIS query.asp access"; flags: A+; content:"/issamples/query.asp"; nocase; reference:bugtraq,193;) alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS bdir.htaccess"; content:"/bdir.htr"; nocase; flags:A+;)
IMPLEMENTACIÓN DE SNORT BAJO PLATAFORMA WINDOWS 1. Descargar de www.snort.org -
La aplicación Paquete Snort_2_8_5_3_Installer El conjunto de reglas por defecto snortrules-snapshot-2[1].8.tar
2. Instalar Snort
3. Extraer y copiar las reglas por defecto bajo el directorio C:\Snort\rules
4. Extraer y copiar el archivo snort.conf en el directorio C:\Snort\etc
5. Ejecutar el comando snort bajo el directorio C:\Snort\bin para ver todas las
opciones posibles para trabajar con el IDS
6.
Ejecutar el comando snort – W bajo el directorio C:\Snort\bin para ver todas las interfaces disponibles.
7. Ejecutar el comando snort –dev –i 2 bajo el directorio C:\Snort\bin.
Ahora estamos ejecutando snort en modo snnifer -d hace un volcado de la capa de aplicación -e enseña el encabezado de la capa de red -v dar más información Y además escuchamos a través de la interface número 2 - i indica sobre una determinada interface
En un navegador ingresamos a cualquier pagina web
Veamos que ocurrió con snort funcionando en modo snnifer:
8. Editamos el archivo C:\Snort\etc\snort. Conf a) Modificamos # MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST! # or you can specify the variable to be any IP address # like this: var HOME_NET any
Por: # MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST! # or you can specify the variable to be any IP address # like this: var HOME_NET 192.168.1.0/24
b) Modificamos # Path to your rules files (this can be a relative path) # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\rules var RULE_PATH ../rules
Por: # Path to your rules files (this can be a relative path) # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\rules var RULE_PATH c:\snort\rules
c) Modificamos # Load all dynamic preprocessors from the install path # (same as command line option --dynamic-preprocessor-lib-dir) # dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_dns_preproc.so dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_ftptelnet_preproc.so dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_smtp_preproc.so dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_ssh_preproc.so dynamicpreprocessor file /usr/local/lib/snort_dynamicpreprocessor/libsf_ssl_preproc.so
Por: # Load all dynamic preprocessors from the install path # (same as command line option --dynamic-preprocessor-lib-dir) # dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_dce2.dll dynamicpreprocessor file c:\Snort\lib\snort_dynamicpreprocessor\sf_dcerpc.dll dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_dns.dll dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_ftptelnet.dll dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_smtp.dll dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_ssh.dll dynamicpreprocessor file C:\Snort\lib\snort_dynamicpreprocessor\sf_ssl.dll
d) Modificamos # Load a dynamic engine from the install path # (same as command line option --dynamic-engine-lib) dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
Por: # Load a dynamic engine from the install path # (same as command line option --dynamic-engine-lib) dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll
e) Modificamos # Include classification & priority settings # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\etc\classification.config include classification.config # Include reference systems # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\etc\reference.config include reference.config
Por: # Include classification & priority settings # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\etc\classification.config include c:\snort\etc\classification.config # Include reference systems # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\etc\reference.config include c:\snort\etc\reference.config f)Descomentamos o habilitamos estas líneas
include $RULE_PATH/icmp.rules include $RULE_PATH/icmp-info.rules
TESTEAR EL IDS Ejecutar el commando
snort -c c:\snort\etc\snort.conf -l c:\snort\log -A console -i 2 -c ejecutar el acrhivo bajo el path especificado -l guardar los logs bajo el path especificado -A console muestra en modo verbose en consola -i sobre una determinada interface
Ahora desde otro equipo parte de esta red hacemos un ping hacia el equipo donde esta configurado nuestro IDS y observamos que es lo que pasa
Equipo con el IDS
Observamos los log que se crean bajo el path