Snort es una herramienta de código abierto para detección de intrusiones que funciona capturando y analizando paquetes de red. Usa preprocesadores y reglas para identificar tráfico malicioso y generar alertas. Se compone de un decodificador de paquetes, preprocesador, motor de detección y sistema de alertas. Proporciona capacidades de monitoreo de red, detección de intrusiones y generación de informes.
Snort IDS: guía de instalación y configuración de la herramienta de detección de intrusos
1.
2. SNORT es una completa herramienta de seguridad basada en código abierto para
la creación de sistemas de detección de intrusos en entornos de red.
Snort puede utilizarse tanto como sniffer de paquetes en una red pequeña como un
sistema completo de detección de intrusos en tiempo real, esto debido a su
capacidad de captura y registro de paquetes en redes TCP/IP.
A través de un mecanismo adicional de alertas y generación de ficheros de registro,
Snort ofrece una buena cantidad de posibilidades para la recepción de alertas en
tiempo real acerca de los ataques y las intrusiones detectadas.
Snort se comporta como “una auténtica aspiradora de datagramas IP”.
Desde actuar como un simple monitor de red pasivo que se encarga de detectar el
tráfico maligno que circula por la red, hasta la posibilidad de enviar a servidores de
ficheros de registro o servidores de base de datos todo el tráfico capturado.
3. Snort está disponible bajo licencia GPL, gratuito y funciona bajo
plataformas Windows y UNIX/Linux. 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.
Actualmente, Snort cuenta un gran repertorio de accesorios que permiten
reportar sus alertas y notificaciones en diferentes gestores de base de
datos (como MySQL y Postgrest) y un gran número de preprocesadores
de trafico que permiten poder analizar llamadas RPC y escaneo de
puertos antes de que ´estos sean contrastados con el conjunto de reglas
asociado en busca de alertas.
4. La arquitectura central de Snort se basa en los siguientes cuatro
componentes:
• Decodificador de paquetes o Sniffer
• Preprocesador
• Motor de detección
• Sistema de Alertas e Informes
Snort permitirá la captura y el preprocesador del tráfico de la red a través
de los dos primeros componentes (decodificador de paquetes y
preprocesador), realizando posteriormente un chequeo contra ellos
mediante el motor de detección (según el conjunto de reglas activadas) y
generando, por parte del ´ultimo de los componentes, las alertas y los
informes necesarios.
5.
6. Esquema del funcionamiento del decodificador de paquetes
de Snort.
7. El preprocesador obtiene paquetes sin tratar (raw paquets) y los verificará
mediante un conjunto de plug-ins. Estos plug-ins verificarán los paquetes en
busca de ciertos comportamientos en estos que le permita determinar su tipo.
Una vez determinado el comportamiento del paquete, ´este será enviado hacia
el motor de detección.
Esta característica de preprocesamiento es realmente importante para una
herramienta de detección, ya que es posible la utilización de terceras
aplicaciones (en forma de plug-ins) que pueden ser activadas y desactivadas
según las necesidades del nivel de preprocesado. Por ejemplo, si a un
administrador de red no le preocupa el tráfico RPC que entra y sale de su red (y
no necesita, por tanto, analizarlo) por cualquier motivo, no tendrá más que
desactivar el plug-in de RPC y seguir utilizando el resto.
8.
9. El motor de detección es el corazón de Snort desde el punto de vista de sistema de
detección de intrusos. A partir de la información proporcionada por el preprocesador
y sus plug-ins asociados, el motor de detección contrastará estos datos con su base
de reglas. Si alguna de las reglas coincide con la información obtenida, el motor de
detección se encargará de avisar al sistema de alertas indicando la regla que ha
saltado.
Snort posee una sintaxis propia para la creación de las reglas. Esta sintaxis incluye el
tipo de protocolo, el contenido, la longitud, la cabecera, etc., que permiten
especificar hasta el más mínimo detalle de la condición que ha de darse para que un
paquete cumpla dicha regla.
10.
11. 1. Puede instalarse Snort
desde repositorios en linux.
• 2. Se pide especificar el rango de la red
local en la que se utilizará Snort
12. 1. Comando para configurar
Snort
• 2. Forma en que iniciará Snort:
• al encender el equipo,
• al conectarse a la red o
• manualmente
14. Se establece el rango de la red
local
• Habilitación o deshabilitación del
modo Promiscuo
15. Se da la opción de enviar resúmenes
diarios de la actividad monitoreada
por Snort a un correo electrónico
• Para finalizar, Snort debe ser
reiniciado
16.
17. 1. Install Snort
cd /usr/src
wget https://www.snort.org/downloads/snort/snort-2.9.7.0.tar.gz
tar -zxf snort-2.9.7.0.tar.gz && cd snort-2.9.7.0
./configure --enable-sourcefire && make && make install
2. Create Snort directories:
mkdir /usr/local/etc/snort
mkdir /usr/local/etc/snort/rules
mkdir /var/log/snort
mkdir /usr/local/lib/snort_dynamicrules
19. 5. Copy snort configuration files:
cp /usr/src/snort-2.9.7.0/etc/*.conf* /usr/local/etc/snort
cp /usr/src/snort-2.9.7.0/etc/*.map /usr/local/etc/snort
6. Configure Snort (edit snort.conf)
vim /usr/local/etc/snort/snort.conf
Line #45 - ipvar HOME_NET 172.26.12.0/22 – make this match your internal network;
Line #48 - ipvar EXTERNAL_NET !$HOME_NET
Line #104 - var RULE_PATH rules
Line #109 - var WHITE_LIST_PATH rules
Line #110 - var BLACK_LIST_PATH rules
Line #293 - add this to the end after “decompress_depth 65535” max_gzip_mem 104857600
Line #521 - add this line - output unified2: filename snort.log, limit 128
Line #543 - delete or comment out all of the “include $RULE_PATH” lines except:
include $RULE_PATH/local.rules
include $RULE_PATH/snort.rules – add after local.rules
20. 7. Make sure at line #265 the following rules are uncommented:
preprocessor normalize_ip4
preprocessor normalize_tcp: ips ecn stream
preprocessor normalize_icmp4
preprocessor normalize_ip6
preprocessor normalize_icmp6
8. On line #188 at the end of step #2 of snort.cong add:
config policy_mode:inline
9. Configure daq at line #159 in snort.cong
config daq: afpacket
config daq_dir: /usr/local/lib/daq
config daq_mode: inline
config daq_var: buffer_size_mb=1024
10. Save changes to snort.conf
21. Usando el comando “snort -v”
El servidor tiene una ip
192.168.1.4 y el cliente tiene la
ip 192.168.1.5
Se hace un ping desde el
cliente al servidor.
Puede apreciarse la
información delos paquetes
enviados desde el cliente y los
de respuesta del servidor
22. Al terminar la
ejecución del
comando, se muestra
un resumen de la
actividad