Está en la página 1de 9

FUERZAS ARMADAS DE HONDURAS

UNIVERSIDAD DE DEFENSA DE HONDURAS


DIPLOMADO EN CIBERDEFENSA Y
CIBERSEGURIDAD

“ESTUDIO DE UN IDS SNORT”

Licda. Claudia Maria Tejeda Salinas

TCnel Jaime Leonel Brito Hernández

OCTUBRE 2017
Introducción.

Un IDS es una herramienta de seguridad que intenta detectar o monitorizar los eventos
ocurridos en un determinado sistema informático en busca de intentos de comprometer
la seguridad de dicho sistema.

Un sistema de detección de intrusos (o IDS – Intrusion Detection System) es un software


o hardware especial usado para detectar accesos no autorizados a una computadora o
a una red. Estos accesos pueden ser ataques hackers, o de Script Kiddies que usan
herramientas automáticas como scanners o sniffers.
Un IDS suele tener “sensores virtuales” (sniffers) con los que el núcleo del IDS puede
obtener datos externos (generalmente sobre el tráfico de la red). El IDS detecta, gracias
a estos sensores, anomalías que pueden ser indicio de la presencia de ataques o falsas
alarmas esto gracias a que los IDS buscan patrones previamente definidos que impliquen
cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o computadora.
Los IDS aportan a nuestra seguridad una capacidad de prevención y de alerta
anticipada ante cualquier actividad sospechosa pero no están diseñados para detener
un ataque, aunque algunos sí pueden generar ciertos tipos de respuesta ante éstos.
nort es un IDS basado en red (NIDS). Implementa un motor de detección de ataques y
barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía
previamente definida como patrones que corresponden a ataques, barridos, intentos
aprovechar alguna vulnerabilidad, análisis de protocolos, etc conocidos. Todo esto en
tiempo real.
Snort está disponible bajo licencia GPL, gratuito y funciona bajo plataformas Windows y
UNIX/Linux. Es uno de los más usados y 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.
Ya es de su conocimiento esta herramienta, recuerden no esperar que ocurra una
catástrofe para empezar a tomar medidas de seguridad como la gran mayoría de las
empresas lo hacen.

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.

Desafíos de IDS
En la prensa especializada, cada vez resuena más el término <B>IPS</B> (Sistema de
prevención de intrusiones) que viene a sustituir al IDS "tradicional" o para hacer una
distinción entre ellos.
El IPS es un sistema de prevención/protección para defenderse de las intrusiones y no
sólo para reconocerlas e informar sobre ellas, como hacen la mayoría de los IDS. Existen
dos características principales que distinguen a un IDS (de red) de un IPS (de red):
 El IPS se sitúa en línea dentro de la red IPS y no sólo escucha pasivamente a la
red como un IDS (tradicionalmente colocado como un rastreador de puertos en
la red).
 Un IPS tiene la habilidad de bloquear inmediatamente las intrusiones, sin
importar el protocolo de transporte utilizado y sin reconfigurar un dispositivo
externo. El IPS puede filtrar y bloquear paquetes en modo nativo (utilizando
técnicas como la caída de una conexión, la caída de paquetes ofensivos o el
bloqueo de un intruso).

2. Arquitectura genérica de un IDS.

Normalmente la arquitectura de un IDS, a grandes rasgos, está formada:

1. La fuente de recogida de datos. Estas fuentes pueden ser un log, dispositivo de


red, o como en el caso de los IDS basados en host, el propio sistema.
2. Reglas que contienen los datos y patrones para detectar anomalías de seguridad
en el sistema.
3. Filtros que comparan los datos esnifados de la red o de logs con los patrones
almacenados en las reglas.
4. Detectores de eventos anormales en el tráfico de red.
5. Dispositivo generador de informes y alarmas. En algunos casos con la
sofisticación suficiente como para enviar alertas vía mail, o SMS.
Esto es modo general. Cada IDS implementa la arquitectura de manera diferente

Básicamente existen dos tipos de detectores de Intrusos:

IDSes basados en red


Un IDS basado en red monitorea los paquetes que circulan por nuestra red en busca de
elementos que denoten un ataque contra alguno de los sistemas ubicados en ella; el IDS
puede situarse en cualquiera de los hosts o en un elemento que analice todo el trafico
(como un HUB o un enrutador). Este donde este, monitorizara diversas maquinas y no
una sola: esta es la principal diferencia con los sistemas de detección de intrusos
basados en host.

IDSes basados en maquina

Mientras que los sistemas de detección de intrusos basados en red operan bajo todo un
dominio de colisión, los basados en maquina realizan su función protegiendo un único
sistema; de una forma similar a como actúa un escudo antivirus residente en el sistema
operativo, el IDS es un proceso que trabaja en background (o que despierta
periódicamente) buscando patrones que puedan denotar un intento de intrusión o mala
utilización y alertando o tomando las medidas oportunas en caso de que uno de estos
intentos sea detectado.

3. Introducción a Snort.

El sistema que se ha elegido para el desarrollo del proyecto ha sido Snort [SNO04]. Snort
(www.snort.org) es un sistema de detección de intrusiones basado en red (NIDS). Su
funcionamiento es similar al de un sniffer ya que monitoriza todo el tráfico de la red en
búsqueda de cualquier tipo de intrusión. Implementa un motor de detección de ataques
y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía
previamente definida como patrones. Snort está disponible bajo licencia GPL, es gratuito
y funciona bajo plataformas Windows, GNU/Linux y Mac OS. Es uno de los más usados y
dispone de una gran cantidad de filtros o patrones ya predefinidos, y actualizaciones
constantes. La primera versión de Snort (Snort-0.96), surgió en Diciembre de 1998. Su
autor fue Marty Roesch. La primera aproximación de Snort fue APE, un programa para
Linux escrito en Noviembre de 1998, por Marty Roesch. Este programa tenía carencias
como la falta de capacidad para trabajar en múltiples sistemas operativos o la de
mostrar todos los tipos de paquetes del mismo modo. Fue en Diciembre de 1998,
cuando Marty Roesch creó la primera versión de Snort (Snort-0.96), que ya estaba
desarrollada con libcap, lo que la dotaba de una gran portabilidad. Esta primera versión
era sólo un sniffer de paquetes y no tenía las capacidades reales de un IDS/IPS. Sin
embargo, a partir de aquí, se han ido sucediendo numerosas versiones de Snort que han
hecho de esta herramienta una de las más importantes en la seguridad software.

Snort (http://www.snort.org/) está disponible bajo licencia GPL, gratuito y funciona bajo
plataformas Windows y UNIX/Linux. Es uno de los más usados y 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.

Este IDS implementa un lenguaje de creación de reglas flexibles, potente y sencillo.


Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor, ddos,
finger, ftp, ataques web, CGI, escaneos 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).
En este taller daremos una importancia mayor a su funcionamiento como NIDS y, sobre
todo, a la creación personalizada de reglas e interpretación de las alertas.
La colocación de Snort en nuestra red puede realizarse según el tráfico quieren vigilar:
paquetes que entran, paquetes salientes, dentro del firewall, fuera del firewall… y en
realidad prácticamente donde queramos.
Una característica muy importante e implementada desde hace pocas versiones es
FlexResp. Permite, dada una conexión que emita tráfico malicioso, darla de baja, hacerle
un DROP mediante el envío de un paquete con el flag RST activa, con lo cual cumpliría
funciones de firewall, cortando las conexiones que cumplan ciertas reglas predefinidas.
No sólo corta la conexiones ya que puede realizar otras muchas acciones.

4. Características técnicas.

Intrusión Detection Systems (IDS)


Un sistema de detección de intrusos es un componente más dentro del modelo de
seguridad de una organización. Consiste en detectar actividades inapropiadas,
incorrectas o anómala desde el exterior-interior de un sistema informático.
Los sistemas de detección de intrusos pueden clasificarse, según su función y
comportamiento en:
 Host-Based IDS: operan en un host para detectar actividad maliciosa en el
mismo.
 Network-Based IDS: operan sobre los flujos de información intercambiados en
una red.
 Knowledge-Based IDS: sistemas basados en Conocimiento.
 Behavior-Based IDS: sistemas basados en Comportamiento. Se asume que una
intrusión puede ser detectada observando una desviación respecto del
comportamiento normal o esperado de un usuario en el sistema.
La idea central de este tipo de detección es el hecho de que la actividad intrusiva es un
conjunto de actividades anómalas. Si alguien consigue entrar de forma ilegal al sistema,
no actuará como un usuario comprometido; su comportamiento se alejará del de un
usuario normal.
Sin embargo en la mayoría de las ocasiones una actividad intrusiva resulta del agregado
de otras actividades individuales que por sí solas no constituyen un comportamiento
intrusivo de ningún tipo. Así las intrusiones pueden clasificarse en:
 Intrusivas pero no anómalas: denominados Falsos Negativos (el sistema
erróneamente indica ausencia de intrusión). En este caso la actividad es
intrusiva pero como no es anómala no es detectada. No son deseables, porque
dan una falsa sensación de seguridad del sistema.
 No intrusivas pero anómalas:denominados Falsos Positivos (el sistema
erróneamente indica la existencia de intrusión). En este caso la actividad es no
intrusiva, pero como es anómala el sistema "decide" que es intrusiva. Deben
intentar minimizarse, ya que en caso contrario se ignorarán los avisos del
sistema, incluso cuando sean acertados.
 No intrusiva ni anómala:son Negativos Verdaderos, la actividad es no intrusiva y
se indica como tal.
 Intrusiva y anómala:se denominan Positivos Verdaderos, la actividad es intrusiva
y es detectada.
Los detectores de intrusiones anómalas requieren mucho gasto computacional, ya que
se siguen normalmente varias métricas para determinar cuánto se aleja el usuario de lo
que se considera comportamiento normal.

Características de IDS
Cualquier sistema de detección de intrusos debería, sea cual sea el mecanismo en que
esté basado, debería contar con las siguientes características:
 Debe funcionar continuamente sin supervisión humana. El sistema debe ser lo
suficientemente fiable para poder ser ejecutado en background dentro del
equipo que está siendo observado. Sin embargo, no debe ser una "caja negra"
(debe ser examinable desde el exterior).
 Debe ser tolerante a fallos en el sentido de que debe ser capaz de sobrevivir a
una caída del sistema.
 En relación con el punto anterior, debe ser resistente a perturbaciones. El
sistema puede monitorizarse a sí mismo para asegurarse de que no ha sido
perturbado.
 Debe imponer mínima sobrecarga sobre el sistema. Un sistema que relentiza la
máquina, simplemente no será utilizado.
 Debe observar desviaciones sobre el comportamiento estándar.
 Debe ser fácilmente adaptable al sistema ya instalado. Cada sistema tiene un
patrón de funcionamiento diferente y el mecanismo de defensa debe adaptarse
de manera sencilla a esos patrones.
 Debe hacer frente a los cambios de comportamiento del sistema según se
añaden nuevas aplicaciones al mismo.
 Debe ser difícil de "engañar".

Fortalezas de IDS

 Suministra información muy interesante sobre el tráfico malicioso de la red.


 Poder de reacción para prevenir el daño.
 Es una herramienta útil como arma de seguridad de la red.
 Ayuda a identificar de dónde provienen los ataques que se sufren.
 Recoge evidencias que pueden ser usadas para identificar intrusos.
 Es una "cámara" de seguridad y una "alarma" contra ladrones.
 Funciona como "disuasor de intrusos".
 Alerta al personal de seguridad de que alguien está tratando de entrar.
 Protege contra la invasión de la red.
 Suministra cierta tranquilidad.
 Es una parte de la infraestructura para la estrategia global de defensa.
 La posibilidad de detectar intrusiones desconocidas e imprevistas. Pueden
incluso contribuir (parcialmente) al descubrimiento automático de esos nuevos
ataques.
 Son menos dependientes de los mecanismos específicos de cada sistema
operativo.
 Pueden ayudar a detectar ataques del tipo "abuso de privilegios" que no implica
realmente ninguna vulnerabilidad de seguridad. En pocas palabras, se trata de
una aproximación a la paranoia: "todo aquello que no se ha visto previamente
es peligroso".
 Menor costo de implementación y mantenimiento al ubicarse en puntos
estratégicos de la red.
 Dificulta el trabajo del intruso de eliminar sus huellas.

Debilidades de IDS

 No existe un parche para la mayoría de bugs de seguridad.


 Se producen falsas alarmas.
 Se producen fallos en las alarmas.
 No es sustituto para un buen Firewall, una auditoría de seguridad regular y una
fuerte y estricta política de seguridad.

Inconvenientes de IDS

 La alta tasa de falsas alarmas dado que no es posible cubrir todo el ámbito del
comportamiento de un sistema de información durante la fase de aprendizaje.
 El comportamiento puede cambiar con el tiempo, haciendo necesario un re-
entrenamiento periódico del perfil, lo que da lugar a la no disponibilidad del
sistema o la generación de falsas alarmas adicionales.
 El sistema puede sufrir ataques durante la fase de aprendizaje, con lo que el
perfil de comportamiento contendrá un comportamiento intrusivo el cual no
será considerado anómalo
Antes de iniciar la instalación y configuración de Snort es importante conocer los
elementos que lo componen. Tal y como muestra la figura 3-1, los elementos que
componen el esquema básico de su arquitectura son:

• Módulo de captura del tráfico. Es el encargado de capturar todos los paquetes de la


red utilizando la librería libpcap.

• Decodificador. Se encarga de formar las estructuras de datos con los paquetes


capturados e identificar los protocolos de enlace, de red, etc.

• Preprocesadores. Permiten extender las funcionalidades preparando los datos para la


detección. Existen diferentes tipos de preprocesadores dependiendo del tráfico que
queremos analizar (por ejemplo, existen los preprocesadores http, telnet)

• Motor de Detección. Analiza los paquetes en base a las reglas definidas para detectar
los ataques. 42 Diseño y optimización de un sistema de detección de intrusos híbrido

• Archivo de Reglas. Definen el conjunto de reglas que regirán el análisis de los


paquetedes detectados.

• Plugins de detección. Partes del software que son compilados con Snort y se usan para
modificar el motor de detección.

• Plugins de salida. Permiten definir qué, cómo y dónde se guardan las alertas y los
correspondientes paquetes de red que las generaron. Pueden ser archivos de texto,
bases de datos, servidor syslog, etc.

6. Arquitectura de Snort.

Módulo de captura de datos El módulo de captura de paquetes del sensor se encarga,


tal y como su propio nombre indica, de realizar la captura del tráfico que circula por la
red, aprovechando al máximo los recursos de procesamiento y minimizando por tanto la
pérdida de paquetes a tasas de inyección elevadas. Para que los preprocesadores y
posteriormente el motor de detección puedan conseguir paquetes se deben realizar
algunas tareas previas. Snort no tiene ninguna facilidad nativa de paquetes aún; por lo
que requiere de una biblioteca de sniffing de paquetes externa: libpcap. Libpcap fue
escogida para la captura de paquetes por su independencia de plataforma. Puede ser
controlada sobre todas las combinaciones de hardware y S.O.; e incluso sobre WIN32
con winpcap. Debido a que Snort usa la biblioteca libpcap para capturar paquetes por la
red, puede utilizar su transportabilidad para ser instalado en casi todas partes. La
utilización de libpcap hace que Snort tenga un uso realmente independiente de
plataforma. La responsabilidad de capturar paquetes directamente de la tarjeta de
interfaz de red pertenece a libpcap. Esto hace que la facilidad de captura para “paquetes
raw” proporcionados por el sistema operativo esté disponible a otras aplicaciones.
Capítulo 3. Snort 43 Un “paquete raw” es un paquete que se deja en su forma original,
sin modificar como había viajado a través de la red del cliente al servidor. Un paquete
raw tiene toda su información de cabecera de protocolo de salida intacta e inalterada
por el sistema operativo. Las aplicaciones de red típicamente no tratan paquetes raw;
estos dependen del S.O. para leer la información del protocolo y expedir los datos de
carga útil correctamente. Snort es insólito en este sentido, usa la información de
cabecera del protocolo que habría sido quitada por el sistema operativo para descubrir
algunas formas de ataques. La utilización de libpcap no es el modo más eficiente de
adquirir paquetes raw. Ya que sólo puede tratar un paquete a la vez, ocasionando un
cuello de botella para anchos de banda altos (1Gbps). En el futuro, Snort probablemente
pondrá en práctica bibliotecas de captura de paquetes específicas para un S.O. o incluso
un hardware. Hay otros métodos además de libpcap para capturar paquetes de una
tarjeta de interfaz de red. Como el Filtro de Paquete Berkeley (BPF), el Interfaz de
Proveedor de Enlace de transmisión (DLPI), y el mecanismo SOCK_PACKET en el kernel
de Linux son otros instrumentos para capturar paquetes raw. 2.2 Decodificador El motor
de decodificación está organizado alrededor de las capas de la pila de protocolos
presentes en las definiciones soportadas de los protocolos de Enlace de Datos y TCP/IP.
Cada subrutina en el decodificador impone orden sobre los datos del paquete,
sobreponiendo estructuras de datos sobre el tráfico de la red. Snort posee capacidades
de decodificación para protocolos Ethernet, SLIP y PPP. Se encarga de tomar los
paquetes que recoge el libpcap y almacenarlos en una estructura de datos en la que se
apoyan el resto de capas. En cuanto los paquetes han sido capturados, Snort debe
descifrar los elementos de protocolo específicos para cada paquete. El decodificador de
paquetes es en realidad una serie de decodificadores, de forma que cada uno descifra
elementos de protocolos específicos. Funciona sobre la pila de protocoles de Red, que
comienza con el nivel más bajo: protocolos de la capa de Enlace de Datos, descifrando
cada protocolo conforme asciende en la pila de protocolos de red. Un paquete sigue
este flujo de datos moviéndose a través del decodificador de paquetes

6. Modos de alerta de Snort.

Hay varias maneras de configurar la salida de snort, es decir, las


alertas, el modo en que se almacenarán estas en el archivo
alert.ids.

También podría gustarte