Post171 nn

Introducción

 

Una de las técnicas existentes para proteger los sistemas es la monitorización de la red mediante la detección y prevención de intrusos, lo que permite percibir la existencia de posibles ataques y tomar acciones, previamente definidas, para  controlar éstos ataques.

 

Escribí un artículo anteriormente sobre el concepto y clasificación de los sistemas de detección y prevención de intrusos (IDPS), el cual puedes encontrar a continuación:

https://backtrackacademy.com/articulo/que-es-un-sistemas-de-deteccion-y-prevencion-de-intrusos-ids

 

Que es Snorby

 

Snorby es una aplicación web (front-end) basada en Ruby on Rails, que interactúa con un IDPS para monitorizar gráficamente la seguridad de la red. Se comunica con sistemas como Snort, Sagan, Suricata y cualquier otro que genere eventos de log en el formato binario Unified2.


Figura 1. Interfaz de Snorby

 

Características:

 

Snorby nos permite monitorizar y administrar, mediante una interfaz gráfica, diversos aspectos del sistema IDPS, realizando la sincronización de los datos mediante un script (Snorby Worker).

 


Figura 2. Snorby Worker

 

Este front-end brinda un gran número de funcionalidades y características, como las que menciono a continuación:

  • Posee un tablero de reportes que muestra la cantidad de eventos registrados en un lapso de tiempo, permitiendo filtrar estos eventos por su grado de severidad, sensor donde se originan, protocolo empleado, reglas asociadas y el origen o destino del ataque.

Figura 3. Tablero de reportes

  • Tiene una sección llamada pila a la que se pueden añadir eventos para darles un posterior seguimiento.

  • Permite administrar múltiples sensores IDPS para un monitoreo centralizado de la información.

  • Tiene una sección de eventos que muestra un listado con la información completa de las sesiones registradas, incluyendo IP de origen y de destino, fecha de registro y la cantidad de sesiones establecidas entre el origen y el destino, permitiendo, también, realizar una clasificación masiva de eventos de acuerdo con diferentes parámetros.


Figura 4. Sección de eventos

  • Realiza envío de reportes vía email

  • Cuenta con una fuente de búsqueda para conocer más información de las características de un evento registrado, como información de la regla o direcciones IP implicadas en el evento. Además, permite añadir fuentes de búsquedas externas que redireccionan rápidamente al sitio web con los parámetros especificados.

  • Brinda información de geolocalización de los eventos.


Figura  5. Configuraciones generales

  • Genera representaciones de análisis y estadísticas mediante gráficos.

  • Realiza búsquedas avanzadas.

  • Transcribe el tráfico de la red mediante la captura completa de paquetes con OpenFPC.

  • Exporta información en formato XML, PDF, vía email y mediante la generación de un enlace de acceso permanente.

  • Permite que la administración de usuarios sea sencilla, con opciones para habilitar o deshabilitar usuarios y asignar o eliminar roles. Además de mostrar la cantidad de inicios de sesión del usuario, la hora y la dirección IP de su última conexión.


 

  • Brinda opciones de configuración de nombres de dominio para cada dirección IP, permitiendo añadir estos nombres mediante la carga de archivos de texto con formato CSV.


Figura 7.  Configuración de nombres de dominio

 

Arquitectura del funcionamiento de Snorby

La imagen a continuación, muestra la interacción entre cada uno de los componentes con los cuales se enlaza ésta herramienta.

.

Figura 8. Componentes de Snorby

 

Herramientas implementadas

 

Para la puesta en marcha de Snorby, se utilizaron las siguientes herramientas que forman parte de la arquitectura de funcionamiento de Snorby:

  • .Snort 2.9.9.0, como sistema de detección y prevención de intrusos, configurado en modo NIPS(Network Intrusion Prevention System).

  • DAQ 2.0.6, que a partir de la versión 2.9 de Snort reemplaza las llamadas directas a la librería libpcap.

  • Pulledpork 0.7.3, para la actualización automática de las reglas de Snort.

  • Barnyard2 2.1.14, permite convertir archivos en el formato binario unified2 a diferentes formatos de salida, (en este caso ASCII, formato legible para los humanos) y que escribe estos archivos en una base de datos. Barnyard2 se utiliza para desligar este proceso del IDPS (ya que la conversión entre formatos consume muchos recursos), de forma tal que el IDPS dedique la mayoría de sus recursos a la captura y análisis de los paquetes.

  • MariaDB 10.0.29-18.1, como sistema gestor de base de datos.

  • Snorby 2.6.3, como front-end para Snort.

  • Apache 2.4.16, como servidor web.

  • Ruby on Rails 2.1, necesario para la instalación y utilización de Snorby.

  • Phusion Passenger 5.1.7, como servidor de aplicaciones Ruby on Rails que se integra fácilmente en el servidor Apache.

 

Consideraciones del entorno

 

Estas herramientas se instalaron en una máquina virtual con OpenSUSE, dentro de un sistema anfitrión Windows. Además, para utilizar Snort como NIPS se configuró la tarjeta de red en modo promiscuo.

 

El siguiente cuadro muestra las especificaciones del entorno:

 

Tabla 1. Especificaciones del entorno

Sistema operativo (Anfitrión)

Windows 8.1

Memoria RAM

8.00 GB

Procesador

Intel Core i5-2400

Tipo de procesador

64 Bits

Herramienta de virtualización

VirtualBox 5.1.22

Sistema operativo virtual

OpenSUSE Leap 42.1

Memoria RAM Virtual

2 GB

Disco duro virtual

20 GB

 

Análisis de la herramienta

 

Para seleccionar el front-end de Snort se consideraron dos aspectos: código abierto y gratuito, además de que la herramienta continuara con mantenimiento activo, ya que a pesar de que el creador de Snorby abandonó el proyecto, la comunidad de contribuidores sigue activa implementando algunos cambios y resolviendo errores que se presenten a través de la plataforma github: https://github.com/Snorby/snorby.

 

La decisión de implementar Snorby fue debido a las extensas funcionalidades que brinda, su interfaz fácil de utilizar, su fácil administración y personalización, que permiten tener siempre el control sobre lo que se realiza, sin embargo, se debe tomar en consideracíón que Snorby está sobre la plataforma Rails 3, la cual tiene un fallo de seguridad crítico. La información referente se encuentra tanto en la plataforma de github de Snorby y en el blog principal de Rails. El equipo de Rails recomendó no utilizar la plataforma Rails 3, a la cual también se le dejó de dar soporte, por lo que Snorby tendría que actualizarse a Rails 4 o posteriores.

 

Durante el proceso de instalación de Snorby en OpenSUSE Leap 42.1 surgieron diversos errores que abortaban la instalación. Estos errores ocurrieron, específicamente, durante la instalación de varios paquetes de Ruby. Luego de resueltos, se procedió con la instalación de los módulos y la edición de los archivos de configuración, hasta lograr que la aplicación funcionara.

 

Otra de las dificultades encontradas fue la escasa documentación actualizada y completa, además de que Snorby utiliza paquetes antiguos de Ruby, pero estos paquetes cambian y se actualizan constantemente, por lo que para su correcto funcionamiento y configuración fue necesario instalar los paquetes actualizados con todas sus dependencias, tomar referencia de varios artículos y realizar múltiples pruebas y ajustes sobre la marcha.

 

Con respecto a la interfaz y las funciones de Snorby, éstas son muy completas y fáciles de utilizar. El Snorby Worker se encarga de realizar la sincronización de los datos y la interfaz muestra información completa y relevante para el análisis de los eventos, sin embargo, algunas funciones propias de la aplicación generan algunos errores tales como:

  • Query signature database, enlace que redirige al sitio de búsqueda de información sobre las reglas, sin embargo, está desactualizado. Este enlace puede actualizarse desde la opción de configuraciones generales del módulo de administración.

  • Basic source lookup, función de búsqueda incorporado dentro de Snorby que ya no está en funcionamiento. Sin embargo, el sistema permite añadir enlaces de búsqueda externos que cumplen el mismo propósito.


Figura 9.  Administración de fuentes de búsqueda

 

Como parte de este proyecto, preparé una guía de “Instalación y configuración de Snorby (front-end basado en web para Snort)”,  que se puede descargar desde la siguiente dirección:

http://www.ciditic.utp.ac.pa/documentos/2018/pdf/instalacion_y_configuracion_de_snorby.pdf

 

Y para la instalación de Snort, les recomiendo la guía de instalación de Snort en Opensuse 42.2 elaborada por Boris Gómez y disponible en el sitio oficial de Snort a través del siguiente enlace https://www.snort.org/documents/snort-2-9-9-x-on-opensuse-leap-42-2, a quien tambíen se le agradece por su colaboración en la revisión de éste artículo.

 


Artículos que te pueden interesar