Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Snort: Sistema Detección Intrusos (NIDS)


Sistema de detección de intrusos en red (NIDS)Las principales características e inconveniente de los tres sistemas open-source más utilizados a día de hoy: Snort, Suricata y Zeek. En este caso hablaremos de la configuración e instalación de Snort 3.



Sistema de detección de intrusos en red (NIDS)

El creciente número de ataques experimentado sobre todo en los últimos años ha hecho que actualmente podamos encontrar en el mercado diferentes herramientas conocidas como “NIDS (Network Intrusion Detection System)” o sistema de detección de intrusos en red, encargadas de detectar de forma anticipada anomalías que puedan estar indicando el inicio de un ataque, con el fin de prevenirlo o, si no fuera posible, remediarlo cuanto antes. Estas herramientas son capaces de analizar el tráfico que circula por las redes en tiempo real sin necesidad de interrumpir el flujo de datos y, por tanto, actúan de forma pasiva, vigilando tanto el tráfico entrante como el saliente y el local. Como ocurre con el resto de herramientas de software, podemos encontrar NIDS tanto propietarios como de código abierto.

Este criterio de acceso es el empleado para clasificar los IDS en dos tipos diferentes, los N-IDS (Network IDS) o sistemas de detección de intrusos en red y los H-IDS (Host-based IDS) o sistemas de detección de intrusos en un host.



 A continuación, detallaremos brevemente aquellos que hemos considerado más relevantes: 

  • Snort Se trata de un NIDS de código abierto, libre y gratuito, mantenido por la empresa Cisco Systems, capaz de operar tanto en dispositivos Windows como Linux y Unix y que dispone de tres modos de operación: “packet sniffer”, “packet logger” e “intrusion detection”. 
  • Zeek Anteriormente conocida con el nombre de “Bro”, se trata de un NIDS de código abierto que ofrece dos modos de operación diferentes, como son el “traffic logging” y el “analysis”. Una de sus principales características es que se puede ejecutar en la capa de aplicación de la capa OSI, ofreciendo la capacidad de analizar servicios y protocolos como DNS, HTTP o SNMP, entre otros. 
  • Suricata es un NIDS de código abierto cuya principal característica es su capacidad de examinar certificados TLS/SSL, solicitudes HTTP y peticiones DNS. Se considera una alternativa moderna a Snort, y permite la implementación de sus políticas. 
  • Security Onion Security Onion es una distribución de Linux para la detección de intrusiones sobre la que se basa este estudio con el fin de controlar la seguridad de la red y de gestionar los eventos. Creada por Doug Burks, esta distribución ha sido la elegida por tener como objetivo la monitorización de anomalías y detección de problemas de seguridad, dada la cantidad de las herramientas libres (Snort, Suricata, Bro, Sguil, Squert, Snorby, ELSA, Xplico, Network Miner, etc.) incluidas en la misma y sin obviar su fácil instalación y puesta en marcha.





Snort



Snort es un IDS (que puede actuar también como IPS) gratuito y de software libre basado en reglas. Desarrollado en 1998, compatible con casi todos los sistemas *nix y también con los sistemas Microsoft Windows, ha sido, y puede decirse que continúa siendo, el sistema de detección de intrusos de referencia.

Una de las principales características que convierten a este sistema en uno de los favoritos de entre todos los disponibles es la gran cantidad de reglas ya existentes, desarrolladas, mantenidas y actualizadas por la comunidad de Snort, que permiten a los usuarios una rápida puesta en marcha del sistema.

Por el contrario, uno de los principales inconvenientes que encontramos a esta herramienta es que es single-thread, es decir, que no es capaz de realizar trabajos concurrentes en paralelo. No obstante, la versión 3 de Snort, actualmente disponible surge fundamentalmente para resolver este y otros problemas identificados en las versiones anteriores.

Respecto a su integración con el SIEM QRadar, existe un DSM compatible con Snort, aunque desarrollado inicialmente para las versiones 2.x de la herramienta, debería funcionar también con las nuevas versiones.

Funcionamiento de Snort



Snort es un sistema de detección de intrusos en red (N-IDS) libre y gratuito que puede funcionar también como sistema de prevención de intrusos (IPS). Actúa realizando un análisis en tiempo real del tráfico que circula sobre redes IP mediante el análisis de protocolos (protocol analysis), la búsqueda de contenido (content searching) y la coincidencia (matching).

Utiliza la librería libpcap (en sistemas UNIX/LINUX) o winpcap (en sistemas Windows) para realizar la captura de tráfico (sniffing).

Ofrece tres modos de configuración diferentes:


  1.  Sniffer Mode – El programa lee paquetes de red y los muestra por consola
  2. Packet Logger Mode – El programa registra en disco (log) los paquetes que lee
  3. Network Intrussion Detection System Mode – El programa monitorea el tráfico de red en tiempo real, lo analiza y compara contra un conjunto de reglas previamente definidas y realiza una determinada acción en consecuencia.


Como podemos observar, las reglas se dividen fundamentalmente en dos partes. La primera parte corresponde a la cabecera (rule header) y la segunda a las opciones (rule options). Las siguientes tablas detallan cada uno de los campos de las reglas

Snort es un sistema de detección de intrusos basado en reglas (rule-based) que combina inspecciones basadas en firma, protocolo y anomalías para detectar la actividad maliciosa y generar alertas en función de lo establecido en estas reglas previamente definidas.


CABECERA

Acción

La acción indica a Snort qué hacer cuando encuentra un paquete que coincide con los criterios de la regla. Las opciones disponibles son las siguientes:

  • alert – Genera una alerta y registra el paquete
  • log – Registra el paquete
  • pass – Ignora el paquete
  • drop – Bloquea y registra el paquete
  • reject – Bloquea el paquete, lo registra y envía un paquete TCP reset si el protocolo es TCP o ICMP port unreacheable si el protocolo es UDP.
  • sdrop – Bloquea el paquete pero sin registrarlo

Protocolo

Indica el tipo de protocolo. Los protocolos soportados son: TCP, UDP, ICMP, IP

Dirección origen

Indica la dirección IP o red origen. Se definen utilizando una dirección IP numérica y un bloque CIDR. (192.168.0.0/24)

La palabra clave any puede ser utilizada para indicar cualquier dirección IP.

Se pueden especificar listas de direcciones IP incluyendo una lista de direcciones IP y bloques CIDR separadas por comas y entre corchetes. [192.168.0.0/24, 192.168.10.0/24]

Se puede utilizar el operador de negación ! para indicar a Snort que debe machear cualquier dirección IP excepto la indicada o las indicadas.

Puerto origen

Indica el puerto origen.

Se puede especificar de varias maneras, incluyendo la palabra any, estableciendo un solo puerto o un rango de estos.

Los rangos pueden definirse de la siguiente forma:

  • 1:1024: Incluye los puertos del 1 al 1024, ambos incluidos
  • :600: Incluye los puertos iguales o inferiores al 600
  • 500: Incluye los puertos iguales o superiores al 500
  • !6000:6010 Incluye todos los puertos excepto los que van del 6000 al 6010

Dirección del tráfico

El operador de dirección establece la orientación o dirección del tráfico.

Las direcciones IP y puertos a la derecha del operador se consideran el tráfico proveniente del equipo origen, mientras que las que se encuentran a la izquierda del operador se consideran las direcciones y puertos del equipo destino.

Existe un operador bidireccional (<>) que indica a Snort que considere los pares de direcciones IP y puertos tanto como en origen como en destino.

Dirección destino

  • Igual que para la dirección origen.
  • Puerto destino
  • Igual que para el puerto origen.

OPCIONES

msg

Establece el mensaje de texto que se debe mostrar tanto en la alerta (alerta) como en el registro (log).

msg:"<message text>";

reference

Permite que las reglas incluyan referencias a sistemas de identificación de ataques externos. Los sistemas soportados son los siguientes:

  • bugtraq - http://www.securityfocus.com/bid/
  • cve - http://cve.mitre.org/cgi-bin/cvename.cgi?name=
  • nessus - http://cgi.nessus.org/plugins/dump.php3?id=
  • mcafee - http://vil.nai.com/vil/content/v_
  • osvdb - http://osvdb.org/show/osvdb/
  • msb - http://technet.microsoft.com/en-us/security/bulletin/
  • url - http://

reference:<id system>, <id>; - reference:cve,CAN-2000-1574;

gid

gid (generator id) se utiliza para identificar qué parte de Snort es la encargada de generar los eventos cuando se activa una regla concreta.

sid

El sid se utiliza para identificar de forma única las reglas de Snort.

  • <100 – Reservadas para usos futuros
  • 100-999,999 – Reglas inclídas con la distribución de Snort
  • >=1,000,000 – Reglas locales

rev

Se utiliza para identificar de forma única las revisiones de las reglas de Snort.

classtype

Se utiliza para categorizar una regla como detección de un ataque que forma parte de un tipo más general de clase de ataque.

priority

Asigna un nivel de severidad a las reglas.

Una regla classtype asigna una prioridad predeterminada, que puede ser sobreescrita con una regla de prioridad.

metadata

Permite introducir información adicional sobre la regla, generalmente en un formato de clave-valor.


Configuración inicial Snort

Con el fin de garantizar la compatibilidad del NIDS elegido con el SIEM, y antes de proceder al despliegue del escenario bajo la red de la empresa, se realiza la instalación tanto de Snort v3

Antes de descargar, compilar e instalar Snort debemos disponer previamente de las siguientes dependencias:

https://github.com/snort3/snort3

Dependencias:

  • make to build from source
  • daq from https://github.com/snort3/libdaq for packet IO
  • dnet from https://github.com/dugsong/libdnet.git for network utility functions
  • g++ >= 5 or other C++14 compiler
  • hwloc from https://www.open-mpi.org/projects/hwloc/ for CPU affinity management
  • LuaJIT from http://luajit.org for configuration and scripting
  • OpenSSL from https://www.openssl.org/source/ for SHA and MD5 file signatures, the protected_content rule option, and SSL service detection
  • pcap from http://www.tcpdump.org for tcpdump style logging
  • pcre from http://www.pcre.org for regular expression pattern matching
  • pkgconfig from https://www.freedesktop.org/wiki/Software/pkg-config/ to locate build dependencies
  • zlib from http://www.zlib.net for decompression

Una vez instaladas, podemos continuar con la descarga e instalación de Snort:

cd ~/snort_src

git clone git://github.com/snortadmin/snort3.git

cd snort3

./configure_cmake.sh --prefix=$my_path

cd build

make -j $(nproc) install

El último paso en la instalación es verificar que Snort se ha instalado correctamente y puede ejecutarse.

La correlación de la información más relevante es una de las principales utilidades que proporcionan los sistemas de información y gestión de eventos o SIEMs.

Suricata



Desarrollado en 2010, Suricata es un sistema de detección de intrusos, también basado en reglas, que nace con la idea de ofrecer una versión mejorada de Snort, añadiendo la funcionalidad de multithreading y resolviendo por tanto el problema previamente mencionado.

Aunque Suricata puede utilizar gran parte de las reglas disponibles para Snort, a la hora de descargarlas e importarlas deberemos tener en cuenta determinadas excepciones que no funcionarán.

Algunas de las funcionalidades también muy destacables que ofrece Suricata son la detección de protocolo independientemente del puerto utilizado y la detección automática de archivos y extracción de los mismos.

A pesar de disponer de las ventajas mencionadas, uno de los principales inconvenientes de Suricata es el hecho de que está mucho menos soportado en comparación con Snort, al ser más reciente, estar menos expandido y por lo tanto disponer de una comunidad, actualmente, más pequeña. Además, a día de hoy, IBM no dispone de un DSM compatible para Suricata, por lo que a la hora de integrarlo con QRadar, deberíamos desarrollar un DSM a medida y realizar el parser (analizador sintáctico) de forma manual.


Zeek

Zeek, conocido como Bro hasta finales de 2018, es un sistema de detección de intrusos basado en anomalías, es decir, busca comportamientos y patrones de uso anómalos, esto es, que no coinciden con la actividad usual de la red o el sistema.

Uno de sus principales inconvenientes es por tanto que el número de falsos positivos en comparación con otros tipos de IDS es mayor.


Fuentes:

http://openaccess.uoc.edu/webapps/o2/bitstream/10609/127048/1/mzabalza13TFM1220.pdf

https://www.incibe-cert.es/sites/default/files/contenidos/guias/doc/certsi_diseno_configuracion_ips_ids_siem_en_sci.pdf


1 comentarios :

Unknown dijo...

¡Buen artículo!

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.