jueves, 3 de noviembre de 2016

Sistema de Deteccion de Intrusos

Un sistema de detección de intrusiones (o IDS de sus siglas en inglés Intrusion Detection System) es un programa de detección de accesos no autorizados a un computador o a una red.
El IDS suele tener sensores virtuales (por ejemplo, un sniffer de red) con los que el núcleo del IDS puede obtener datos externos (generalmente sobre el tráfico de red). El IDS detecta, gracias a dichos sensores, las anomalías que pueden ser indicio de la presencia de ataques y falsas alarmas.

El funcionamiento de estas herramientas se basa en el análisis pormenorizado del tráfico de red, el cual al entrar al analizador es comparado con firmas de ataques conocidos, o comportamientos sospechosos, como puede ser el escaneo de puertos, paquetes malformados, etc. El IDS no sólo analiza qué tipo de tráfico es, sino que también revisa el contenido y su comportamiento.
Normalmente esta herramienta se integra con un firewall. El detector de intrusos es incapaz de detener los ataques por sí solo, excepto los que trabajan conjuntamente en un dispositivo de puerta de enlace con funcionalidad de firewall, convirtiéndose en una herramienta muy poderosa ya que se une la inteligencia del IDS y el poder de bloqueo del firewall, al ser el punto donde forzosamente deben pasar los paquetes y pueden ser bloqueados antes de penetrar en la red.

Existen dos tipos de sistemas de detección de intrusos:
  1. HIDS (HostIDS): el principio de funcionamiento de un HIDS, depende del éxito de los intrusos, que generalmente dejaran rastros de sus actividades en el equipo atacado, cuando intentan adueñarse del mismo, con propósito de llevar a cabo otras actividades. El HIDS intenta detectar tales modificaciones en el equipo afectado, y hacer un reporte de sus conclusiones.
  2. NIDS (NetworkIDS): un IDS basado en red, detectando ataques a todo el segmento de la red. Su interfaz debe funcionar en modo promiscuo capturando así todo el tráfico de la red.




Snort



Para instalar snort en un sistema windows necesitamos seguir los siguientes pasos:
Después de instalar Win-Pcap, reiniciar el sistema.
  • Descargar la última versión de Snort paraWindows de la página: www.snort.org. e instalar
  • Durante la instalación real, Snort crea una estructura de directorio en C: \ Snort que separece a esto:
· C: \snort \ bin directorio donde se encuentra el ejecutable de la herramienta
· C: \ snort \ contrib
· C: \snort \ doc documentación de la herramienta
· C: \snort \ etc directorio principal para los archivos de configuración
· C: \snort \ log
· C: \snort\ rules juegos de reglas
IDSSnort1
Los ficheros más importantes son:
· etc/snort.conf: archivo de configuración principal.
· etc/classification.config: información sobre la priorización de las reglas, incluyendo un nombre clasificatorio y una pequeña descripción.
· etc/gen-msg.mapincluye correspondencia entre un identificador de elemento generador de un evento  y su descripción.
· etc/reference.config: define las URL asociadas a las referencias de más información que suelen indicarse junto a las reglas de detección.
· etc/sid-msg.map: hace corresponder el identificador de una alerta (Snort ID, SID) con su mensaje descriptivo.
· etc/threshold.confconfiguración de umbrales límite que permiten la reducción de alarmas por repetición de eventos.
· etc/unicode.mapcorrespondencias de formato entre diferentes tipos de código.
IDSSnort2
Una vez que está instalado Snort, debemos continuar con la configuración
  • Lo primero que tenemos que hacer es accedera la carpeta C:\Snort\etc en este directorio encontraremos un fichero llamado snort.conf, que es el fichero de configuración que utilizaremos para configurar Snort.
Accedemos al fichero con un editor de texto que no corrompa el formato original del archivo (notepad o wordpad). En la parte final donde hay una serie de “includes” con tipos de reglas, que en función de que tengan delante el signo almohadilla, “#”, o no, se incluirán en la revisión de los paquetes.
Para ello vamos a utilizar notepad++
  • Antes de todo descargamos  las reglas y sobre escribimos  todos los ficheros… Uno de ellos es snort.conf, ficheros que vamos a modificar ahora.
Quitamos la # a las siguientes líneas y las dejamos de la siguiente forma:
# decoder and preprocessor event rules
include $PREPROC_RULE_PATH/preprocessor.rules
include $PREPROC_RULE_PATH/decoder.rules
include $PREPROC_RULE_PATH/sensitive-data.rules
Con esto,  las reglas descargadas ya están operativas.
  • En el archivo snort.conf, cambiar por:
var RULE_PATH c:\snort\rules
var SO_RULE_PATH c:\snort\so_rules
var PREPROC_RULE_PATH c:\snort\rules\preproc_rules
  • Buscamos la declaración de la variable var HOME_NET Any. Se puede modificar de tres modos dependiendo de lo que se quiera:1) Una red C: var HOME_NET 192.168.1.0/242) Host específico : var HOME_NET 192.168.1.3/323) Varios Host: var HOME_NET 192.168.1.2/32,192.168.1.3/32,192.168.1.4/32Ojo: por defecto vendrá ipvar en vez de var. Deberemos cambiarlo para que no se nos produzca un error.Cambie a la configuración de la red (por ejemplo, var HOME_NET 192.168.1.1/24).Vamos a eliminar# ipvar HOME_NET any
    Y en su lugar por ejemplo:
    var HOME_NET 192.168.1.102/32
  • Buscamos  la declaración include classification.config y realizamos el siguiente cambioComentamos el primero y añadimos el segundo…# include classification.configinclude c:\snort\etc\classification.config
  • Buscamos la declaración include reference.config y cambiarlo para incluir c:\snort\etc\reference.configComentamos el primero y añadimos el segundo…# include reference.configinclude c:\snort\etc\reference.config
  • Y finalmente guardamos el archivo
  • Antes de ejecutar snort es conveniente bajarse las últimas reglas de detección. Para esto hay que ir a la página de snort, downloads ->rules.
  • Solamente nos queda por modificar lo siguiente, cambiar la línea donde aparece:
Dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
por:
dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor
  • Y la línea que pone:
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
Por:
dynamicengine c:\snort\lib\snort_dynamicengine\sf_engine.dll
  • Ademas dynamicdetection directory /usr/local/lib/snort_dynamicrules
por
dynamicdetection directory c:\snort\lib\snort_dynamicrules
  • Una vez realizados estos cambios podemos probar Snort desde la línea de comandos. Accedemos a la carpeta c:\Snort\biny en este directorio escribimos:
C:\Snort\bin>snort -dev -c c:\snort\etc\snort.conf -l c:\snort\log -i2
 Errores que pueden producirse
Error.Missing/incorrect dynamic engine lib specifier.
Dejamos el código de snort.conf de la siguiente forma:
# dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor\
 dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_dce2.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_dnp3.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_dns.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_ftptelnet.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_gtp.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_imap.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_modbus.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_pop.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_reputation.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_sdf.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_sip.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_smtp.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_ssh.dll
dynamicpreprocessor c:\snort\lib\snort_dynamicpreprocessor\sf_ssl.dll
 
Error. Unable to  open rules file “c:\snort\etc\c:\snort\rules\preproc_rules/preprocessor.rules”:
 Invalid argument.
El código en snort.conf:
var SO_RULE_PATH c:\snort\so_rules
var PREPROC_RULE_PATH c:\snort\rules\preproc_rules
cambiar por
var SO_RULE_PATH ..\so_rules
var PREPROC_RULE_PATH ..\preproc_rules
 Error. Unknown preprocessor: “normalize_ip4”.
 Cambiar código en snort.conf:
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6
Error. Unable to open address file c:\snort\etc\../rules/white_list.rules, Error: No such file or directory
var WHITE_LIST_PATH ../rules
var BLACK_LIST_PATH ../rules
Por
var WHITE_LIST_PATH ..\rules
var BLACK_LIST_PATH ..\rules
Y
   whitelist $WHITE_LIST_PATH/white_list.rules, \
   blacklist $BLACK_LIST_PATH/black_list.rules
por
   whitelist $WHITE_LIST_PATH\white_list.rules, \
   blacklist $BLACK_LIST_PATH\black_list.rules
Error. Unable to open address file c:\snort\etc\rules\white_list.rules, Error: No such file or directory
Creamos white_list.rules y black_list.rules en la ruta…. Usamos notepad, se crean vacíos. Estos ficheros solo se descargan para usuarios suscriptores. No es suficiente ser registrado.
  • Finalmente ya funciona…
snort -dev -c c:\snort\etc\snort.conf -l c:\snort\log -i2
Las opciones que le hemos pasado en la línea de comandos a Snort son:
· -d: visualizar los campos de datos que pasan porla interface de red.
· -e: snort nos mostrará información más detallada.
· -v: Iniciamos snort en modo sniffer visualizando en pantalla las cabeceras de los paquetes TCP/IP.
· -c: archivo que utilizará snort como fichero de configuración.
· -l: directorio donde guardar las alertas y logs.
· -i: interfaz que monitorizaremos.
Prueba final
Si ejecutamos aun comando agresivo veremos el resultado:
nmap -T4 -A -v 192.168.1.1 (escan intenso contra la puerta de enlace)
En alert.ids aparece la información detectada…
[**] [119:31:1] (http_inspect) UNKNOWN METHOD [**]
[Classification: Unknown Traffic] [Priority: 3]
06/13-20:07:20.197014 00:1F:3C:16:56:0B -> 00:0F:66:4D:45:2E type:0x800 len:0x1AD
192.168.1.102:1353 -> 192.168.1.1:80 TCP TTL:64 TOS:0x0 ID:19479 IpLen:20 DgmLen:415 DF
***A**** Seq: 0xB531B7EF  Ack: 0x3F41FDBF  Win: 0x1920  TcpLen: 20
……………..
Significado de la captura.
Por ejemplo:
  • Tipo aviso y clasificación de la amenaza… Inclusive su prioridad. clasificación de la alerta contenida en el archivo classification.config.
  • Marca de tiempo
  • MAC Address origen y MAC Address destino
  • Tipo del paquete y tamaño
  • IP origen e IP destino
  • Protocolo asociado a la generación de la alerta
  • TTL:64 tiempo de vida
  • TOS:0×0 tipo de servicio
  • ID:43469 Identificador de sesión
  • IpLen:20 corresponde con la cabecera IP Tamaño de la cabecera o Header Length (20 bytes).
  • DgmLen:40 corresponde con total Length (40)

No hay comentarios:

Publicar un comentario