El programa Snort

  Snort es un sistema de detección de intrusos en red ["Network Intrusion Detection System" ("NIDS"), en inglés], libre y gratuito. Ofrece la capacidad de almacenamiento de bitácoras en archivos de texto y en bases de datos abiertas, como MySQL. Implementa un motor de detección de ataques y escaneo de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida.
  Un programa de este tipo pretende detectar anomalías que inicien un riesgo potencial, tales como ataques de denegación de servicio, escaneadores de puertos o intentos de entrar en un ordenador, analizando el tráfico en la red en tiempo real. Para ello, analiza todos los paquetes, buscando en ellos patrones sospechosos. Los NIDS no sólo vigilan el tráfico entrante, sino también el saliente o el tráfico local, ya que algunos ataques podrían ser iniciados desde el propio sistema protegido. A pesar de la vigilancia, su influencia en el tráfico es casi nula.
  Para que los NIDS sean efectivos, han de ser actualizados periódicamente.
  En caso de detectar un ataque contra el sistema, puede tomar medidas protectoras.
  Un aspecto negativo de los NIDS actuales es su complicación a la hora de obtener las opciones de configuración óptimas para su ejecución. De otro modo, se obtendrán demasiados falsos positivos (falsas alarmas, con gran cantidad de información que luego un administrador tendrá que procesar) o pasará sin advertir ciertos ataques.
   Snort implementa un lenguaje de creación de reglas flexible, potente y sencillo. Durante su instalación, provee de cientos de filtros o reglas para backdoor, DDoS, finger, FTP, ataques web, CGI, Nmap, entre otros.
  Puede funcionar como analizador ("sniffer", en inglés) y registro de paquetes, como hace Wireshark. Cuando un paquete coincide con algún patrón establecido en las reglas de configuración, inicia una sesión, lo cual logra gracias al uso de preprocesadores [pequeños complementos ("plugins", en inglés) que sirven para tratar los paquetes para darle forma de manera que se pueda interpretar la información de estos de forma más sencilla y lógica]. Así se sabe cuándo, de dónde y cómo se produjo el ataque.
  Este sistema de detección de intrusos en red tiene una base de datos de ataques que se actualiza constantemente a través de 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, esta ética de comunidad y compartir ha convertido a Snort en uno de los IDS basados en red más populares, actualizados y robustos.
  Este programa funciona tanto en Linux como en Windows.

INSTALACIÓN DE SNORT

   Actualmente, Snort posee paquetes para las distribuciones de Linux, por lo que lo más sencillo es realizar las operaciones de instalación de paquetes estándar desde un terminal: actualizar lista de paquetes [con apt-get update si se trata de una distribución de tipo debian, por ejemplo (anteponiendo sudo si no se está como administrador)], actualizar los paquetes ya instalados [con apt-get upgrade si se trata de una distribución de tipo debian, por ejemplo (anteponiendo sudo si no se está como administrador)], e instalando el paquete [con apt-get install snort si se trata de una distribución de tipo debian, por ejemplo (anteponiendo sudo si no se está como administrador)].
  En todo caso, durante la instalación se pedirán al usuario ciertas configuraciones de paquetes:
  •  En primer lugar, se debe especificar el nombre de la interfaz de red ("eth0", "enp0s3"...), que normalmente suele ser la que el sistema tiene por defecto.
  •   En segundo lugar, se debe especificar el intervalo de direcciones de red local donde se ejecutará este sistema de detección de intrusos en red (en el ejemplo, se utilizará el bloque de red "192.168.25.0/24").


  Naturalmente, es posible instalarlo en Linux de otras maneras, pero ese será tema para otro día. Una vez instalado, pueden realizarse configuraciones adicionales, mas Snort ya funcionaría de manera básica sin estas.
  Por su parte, para instalarlo en un sistema operativo Windows (hace falta tener instalado previamente Win-Pcap) sólo hay que seguir el siguiente enlace para descargar el instalador ("*_Installer.exe"), ejecutarlo, y seguir las instrucciones del asistente de instalación.

USOS BÁSICOS

Análisis de paquetes
  Para analizar paquetes (lo que se conoce como "modo sniffer") de una red determinada en Linux se emplea el comando snort -dev -l <directorio de registros> -h <red o anfitrión> (en el ejemplo, el directorio sería "/log", y la red sería "192.168.25.0/24").
  Este uso permite ver todo el tráfico de la red especificada en tiempo real. En el comando pueden verse las siguientes opciones:
  •  dev: En realidad son tres opciones unidas: d, se visualizarán los campos de datos que pasen por la interfaz de red previamente configurada; e,  permite examinar las cabeceras a nivel de enlace; v, muestra las cabeceras IP, TCP, UDP, e ICMP.
  •  l: Indica el directorio de registros.
  •  h: Indica la red (o el anfitrión) donde se obtendrán los registros que se almacenarán.


  El archivo de registro puede verse en la ruta especificada en el comando.
  Naturalmente, es posible emplear filtros para afinar la monitorización del tráfico de red.
  Uno de los filtros que se suelen emplear es el parámetro i, con el que se determina la interfaz de red sobre la que actuará este sistema de detección de intrusos en red. Aunque, naturalmente, hay que ver qué interfaces de red están activas en el sistema (con un ifconfig, si es un sistema de tipo debian, por ejemplo).
  Sabiendo esto, se puede emplear el comando snort -vd host <red o anfitrión> and dst port <nº de puerto> -i <nombre de interfaz de red> para, por ejemplo, controlar el tráfico de red de un servidor web determinado (en este ejemplo, el anfitrión es la red "192.168.25.0", el puerto será el "80", y la interfaz será la "enp0s8").
   Del mismo modo, puede controlarse el tráfico de un servidor FTP con el mismo comando, ya que filtra el puerto específico de cualquier anfitrión (en este ejemplo, el anfitrión es la red "192.168.30.131", el puerto será el "21", y la interfaz será la "eth0").

Modo de detección de intrusos (IDS)
 Esta función de Snort se activa añadiendo al final del comando el parámetro c <ruta a snort.conf>. El archivo "snort.conf", alojado en la ruta "/etc/snort/", es donde se guarda toda la configuración de reglas, preprocesadores y otras configuraciones necesarias para el funcionamiento de este modo.
Ejemplo de salida del modo IDS

Modos de alerta
  Es posible configurar de varias maneras de configurar la salida de alertas, que se archivarán en el fichero "alert.ids". Existen varios modos de alertas para la línea de comandos en este programa, los más relevantes son:
  1.   Completo: Es el predeterminado. Para su activación se añade al comando el parámetro A full justo después de snort. Este modo devuelve información sobre: tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen/destino e información completa de las cabeceras de los paquetes registrados.
  2.   Rápido: Se activa añadiendo al comando el parámetro A fast justo después de snort. Muestra  información sobre: tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen y destino. Formato ASCII.
  3.   Socket: Para su activación se añade al comando el parámetro A unsock justo después de snort.Consiste en el envío de las trazas por medio de un socket UNIX a otro programa en la maquina local o remota que se encuentra en espera de conexiones.
  4.   Consola: Se activa añadiendo al comando el parámetro A console justo después de snort. Funciona igual que el modo rápido, con la excepción de que todas las trazas son enviadas directamente a la consola.

Ejemplo de activación de modo de alerta completa
  Los mensajes generados por este programa, tienen una estructura definida, que suele contemplar los siguientes campos:
  •   Marca temporal ("timestamp", en inglés) de la alerta.
  •   Identificador Único de la alerta, que consiste en:
      Identificador de Generador: Indica el componente que ha generado el mensaje; para conocer estos identificadores se puede ver el fichero contenido en el directorio de documentación de Snort ubicado, generalmente, en la ruta "/usr/src/snort-XXX/doc/generators".
      Identificador Snort: Es un identificador de Firma ("Signature ID", en inglés) que, igual que en el caso anterior, se ubica normalmente en "/usr/src/snort-XXX/etc/gen-msg.map".
      Identificador de Revisión: Se trata de un número secuencial que se incrementa en uno tras cada alerta generada.
  Además, también existe un mecanismo de orden de alertas, por defecto este sistema de detección de intrusos en red tiene los siguientes tipos de alerta en orden estricto:
  1. Alertas sobre Reglas de los paquetes que puede pasar por la red. 
  2. Alertas sobre Reglas de los paquetes que deben ser restringidos o borrados.
  3. Alertas sobre las reglas definidas por el usuario en fichero de configuración.
  4. Alertas sobre registros.
  No obstante, este orden puede ser cambiado por medio de parámetros del comando principal que se escribirán al final del comando, y que son:
  •   --alert-before-pass: Esta opción obliga a que una regla de alerta (definida por el usuario en fichero de configuración) se comporte a favor de las reglas de paquetes que pueden pasar por la red.
  •   --reat-drops-as-alert: Como su nombre lo indica, todos los paquetes que son borrados o rechazados por Snort son tratados como alertas que se registrarán en el sistema de registros definido.
  •   --process-all-events: Por defecto en este programa no se procesan todos los eventos asociados con un paquete, con esta acción se activan todos lo eventos sobre un paquete en función a las acciones tomadas en las reglas.

  Espero que la presente entrada haya sido interesante para el lector. Si es así, aguardo que el lector la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.