Los Sistemas de Detección de Intrusos (IDS) y los Sistemas de Prevención de Intrusos (IPS) ayudan en gran medida proteger nuestra infraestructura, aumentan la seguridad de las mismas, vigilando el tráfico; examinando y analizando los paquetes en busca de actividad sospechosa. Ayudando a identificar paquetes sospechosos desde las primeras fases de reconocimiento en la red hasta actividad en equipos infectados (siempre y cuando esté configurado).
Los IDS detecta comportamiento anómalo en la red; tráfico malicioso que busca entrar o salir dentro de la misma organización, la principal función de estos sistemas es detectar y notificar al sistema o personal encargado. Estos no pueden tomar acciones preventivas contra las alertas emitidas.
Los IPS cumplen con las mismas funcionalidades que los IDS, pero además pueden realizarse acciones contra el tráfico malicioso para proteger los sistemas computacionales de ataques de ataques y abusos. Están diseñados para analizar los datos del ataque y actuar en consecuencia , deteniendo y eliminando los paquetes detectados.
Tipos de IDS (NIDS & HIDS)
- NIDS (NetworkIDS): Analiza el tráfico de una red completa; examina los paquetes de forma individual, analizando los diferentes campos del header y contenidos de los paquetes. Su interfaz debe estar en modo promiscuo capturando todos los paquetes de la red.
- HIDS (HostIDS): Sólo analiza el tráfico de un Host o Computadora, esta opción es de gran utilidad cuando se desea proteger las estaciones de trabajo o servidores individualmente
Introducción a Snort.
Snort es un Sistema de Detección/Prevención de Intrusos (IDS/IPS) de código abierto. Es muy popular ya que es un software bastante completo, capaz de monitorear el tráfico en tiempo real, registro de paquetes, y trabajar como un NIDS.
Con una correcta configuración puede detectar una gran variedad de ataques, por ejemplo, escaneos de puertos, desbordamiento de buffer, fuerza bruta, entre muchos otros. Snort inspecciona todo el tráfico de la red según el conjunto de reglas proporcionadas y luego alerta o bloquea el paquete según la acción de la regla.
Está dividido por varios componentes, todos ellos trabajan en conjunto para detectar cualquier actividad maliciosa. Los siguientes son los componentes principales de Snort:
- Decodificador de paquetes.
- Preprocesadores
- Motor de detección.
- Sistema de registro y alerta.
- Módulos de salida.
Analizador de Paquetes --> muestra en tiempo real la actividad de la red en la que opera.
Registrador de Paquetes --> Guarda logs de toda la actividad de la red para un posterior análisis.
Sistema de Prevención de Intrusos en la Red (NIDS) --> Opera en toda la red especificando el fichero de configuración de reglas y patrones a procesar.
Instalación de Snort
Podemos hacer la Instalación mediante los paquetes oficiales de nuestra distribución GNU/Linux. En mi caso estoy usando Kali GNU/Linux Rolling, versión 2021.2.
Este proceso es similar y bastante sencillo para distribuciones basadas en Debian GNU/Linux, como Ubuntu. Si utiliza CentOS o Fedora GNU/Linux tendría que usar los binarios RPM oficiales de descarga de Snort.
Para sistemas operativos Microsoft Windows tendrá que usar los binarios oficiales de descarga de Snort.
La posición de Snort dentro de nuestra red es importante, lo recomendable es un sensor entre nuestro firewall y la red interna.
Lo primero será actualizar la lista de paquetes disponibles desde los repositorios oficiales usando el comando sudo apt-get update
.
Posteriormente usamos el comando sudo apt-get install snort
, para instalar Snort.
┌──(naek㉿kali)-[~]
└─$ sudo apt-get install snort 130 ⨯
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libdaq2 libdumbnet1 oinkmaster snort-common snort-common-libraries snort-rules-default
Suggested packages:
snort-doc
The following NEW packages will be installed:
libdaq2 libdumbnet1 oinkmaster snort snort-common snort-common-libraries snort-rules-default
0 upgraded, 7 newly installed, 0 to remove and 231 not upgraded.
Need to get 2817 kB of archives.
After this operation, 10.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://kali.download/kali kali-rolling/main amd64 snort-common-libraries amd64 2.9.15.1-5 [1031 kB]
Get:2 http://kali.download/kali kali-rolling/main amd64 snort-rules-default all 2.9.15.1-5 [371 kB]
Get:3 http://kali.download/kali kali-rolling/main amd64 snort-common all 2.9.15.1-5 [275 kB]
Get:4 http://kali.download/kali kali-rolling/main amd64 libdumbnet1 amd64 1.12-9 [27.1 kB]
Get:5 http://kali.download/kali kali-rolling/main amd64 libdaq2 amd64 2.0.7-5 [84.0 kB]
Get:6 http://kali.download/kali kali-rolling/main amd64 snort amd64 2.9.15.1-5 [948 kB]
Get:7 http://kali.download/kali kali-rolling/main amd64 oinkmaster all 2.0-4.1 [80.6 kB]
Fetched 2817 kB in 2s (1369 kB/s)
Una vez completada la instalación usaremos el comando sudo snort --version
para imprimir la versión de Snort.
┌──(naek㉿kali)-[~]
└─$ sudo snort --version
,,_ -*> Snort! <*-
o" )~ Version 2.9.15.1 GRE (Build 15125)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2019 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.10.0 (with TPACKET_V3)
Using PCRE version: 8.39 2016-06-14
Using ZLIB version: 1.2.11
configuración de Snort
Una vez instalado Snort procederemos a ver un poco de la configuración con la que cuenta.
Snort cuenta con 73 reglas (correspondientes a nuestra versión) preconfiguradas durante el proceso de instalación, las cuales se encuentran el directorio /etc/snort/rules/
Nota: Snort también cuenta con reglas aún más sofisticadas y complejas las cuales se pueden obtener mediante un pequeño registro en su sitio web y descargarlos.
El fichero de configuración se encuentra en /etc/snort/snort.conf
Algunos valores a tener en cuenta son: “ipvar HOME_NET” el cual tendremos que cambiar a nuestro segmento de red (ej, 192.168.0.1/24). Y “ipvar EXTERNAL_NET” que sería toda la red externa ajena a nuestra LAN, en este caso usaremos el valor “!$HOME_NET”.
Podemos personalizar nuestra configuración mediante los siguientes apartados del fichero:
- Establecer las variables de red.
- Configuración del decodificador.
- Configuración del motor de detección.
- Configuración de carga dinámica de librerías
- Configuración de preprocesadores.
- Configuración de complementos de salida.
- Personalización de nuestro conjunto de reglas.
- Personalización del conjunto de reglas del procesador y el decodificador.
- Personalización del conjunto de reglas de objetos compartidos.
Recursos:
https://www.snort.orghttps://github.com/snort3/snort3
https://pixabay.com/illustrations/tech-circle-technology-abstract-5142625/
Escrito Por:
Jesús Flores
Security Engineer