1. Experto en Administración
y Seguridad de
Sistemas Informáticos
Módulo: Sistemas de Detección de Intrusos
Profesor: Juan Antonio Gil Martínez-Abarca
Curso Escolar: 2006/2007
Experto en Administración y Seguridad de Sistemas Informáticos
2. Tabla de Contenidos
• Snort: Sistema de detección de
intrusos basado en Software Libre
• Características
• Instalación
• Funcionamiento
• Configuración
• Prácticas
Experto en Administración y Seguridad de Sistemas Informáticos
3. Funcionamiento y Características
• NIDS basado en Software Libre
• http://www.snort.org
• Multiplataforma: Windows y Linux
• Windows: Necesita el paquete
winpcap para la captación de
paquetes
• IDS basado en firmas y, con el
módulo Spade Detección de
anomalías.
Experto en Administración y Seguridad de Sistemas Informáticos
4. Características
• Ligero, lo que permite buen ancho de
banda
• Snort tiene una arquitectura dividida en
tres subsistemas:
– Decodificador de paquetes
– Motor de detección
– Loggins y alertas
• Personalización de reglas.
Experto en Administración y Seguridad de Sistemas Informáticos
5. Instalación
• Necesita en Linux del paquete
libpcap
• Decargamos los fuentes (o paquete
de la distribución)
– Fuentes:
./configure; make; make install
– Paquetes: dpkg/apt-get/rpm …
apt-get install snort
Experto en Administración y Seguridad de Sistemas Informáticos
6. Instalación
• Archivos importantes:
– /etc/snort/snort.conf Fichero de
configuración por defecto
– /etc/snort/snort<equipo>.conf
Configuración para <equipo>
– /etc/snort/snort<NIC>.conf
Configuración para el dispositivo de red
<NIC>
– /etc/snort/rules/* Reglas de filtrado
Experto en Administración y Seguridad de Sistemas Informáticos
7. Funcionamiento
• Se ejecuta desde la línea de comandos.
• 3 modos:
– Sniffer de paquetes No filtra
– Registro de paquetes
– IDS Registro de paquetes que merecen una
consideración especial
Experto en Administración y Seguridad de Sistemas Informáticos
8. Funcionamiento
-c configfile Indica fichero de configuración para
manejar los paquetes que registra
Por defecto usa /etc/snort/snort.conf
snort –h 172.20.40.0/24 –c /etc/snort/snort.conf
DATO: NO –v para evitar sobrecarga de trabajo, sobre
todo para redes con alta densidad de tráfico
-l /var/log/snort directorio en el que registra los
paquetes
-h red/mask especifica la dirección de red local
-b fichero registra los datos secuencialmente en
‘fichero’
Ejemplos de uso: snort –vde –l /var/log/snort –h 172.20.40.0/24
Experto en Administración y Seguridad de Sistemas Informáticos
9. Funcionamiento
-v Imprime en la pantalla los encabezados de los
paquetes TCP/IP en Ethernet
-d Igual que la opcion anterior pero ademas imprime
los datos de la capa de aplicacion
-e Igual que la opcion anterior pero ademas imprime
la capa de enlace de datos
Ejemplos de uso:
snort –v
snort -vde
Experto en Administración y Seguridad de Sistemas Informáticos
10. Funcionamiento
• Modo de alerta. Opciones de alerta
– -A full Informacion completa de la alerta,
incluyendo datos de aplicacion. Es el modo
predeterminado de alerta y se utilizara cuando no
especiquemos nada.
– -A fast Modo rapido. Registra solo la informacion
de encabezado del paquete y el tipo de alerta. Es util
para redes muy rapidas pero si se necesita mas
informacion forense hay que utilizar el modicador full.
– -A unsock Envía la alerta a un socket
– -A none Desactiva las alertas.
Experto en Administración y Seguridad de Sistemas Informáticos
11. Funcionamiento
• Tambien podemos utilizar las opciones:
– SMB Alertas al servicio de menú
emergente de windows. Exige compilación con
el parámetro –enable-smbalerts
snort –c /etc/snort/snort.conf –M Pcwindows
– SYSLOG Alertas al sistema de gestión
de eventos de Unix (syslog)
– Bases de datos: mysql, PostgreSQL,
Oracle y unixODBC.
Experto en Administración y Seguridad de Sistemas Informáticos
12. Configuración
• Sintonización para su buen
funcionamiento.
• Personalización del
/etc/snort/snort.conf
• Red local:
var HOME_NET address[,a2]
var HOME_NET $ NIC (ej: eth0) Utiliza
IP/MASK del la interfaz como para obtener la
red local
• Variable EXTERNAL_NET
Experto en Administración y Seguridad de Sistemas Informáticos
13. Configuración
• Definición de los nuestros servicios:
web, mail, DNS, SQL,…
var SMTP 192.168.1.10
var HTTP_SERVERS
192.168.1.10,192.168.1.20
var SQL_SERVERS 192.168.1.10,192.168.1.20
var LOCAL_HOSTS
192.168.1.1,192.168.1.100,192.168.1.110,1
92.168.1.254
Experto en Administración y Seguridad de Sistemas Informáticos
14. Configuración
• Preprocesadores: código que se
ejecuta antes que las reglas para
formatear, recomponer paquetes
fragmentados o tratar paquetes en
masa
• Módulos de salida: definir el formato
con el que se registran los eventos.
Formato general:
ouput module_name: configuration options
Experto en Administración y Seguridad de Sistemas Informáticos
15. Configuración
• Para syslog:
output alert_syslog: LOG_AUTH LOG_ALERT
output alert_syslog: host= hostname:port,
LOG_AUTH LOG_ALERT
• Para base de datos:
output database: log, mysql, user= usuario, password=
contraseña, dbname= bd, host= servidorBD
• Para binario (para exportar datos a
otros programas):
output alert_unified: filename snort.alert, limit 128
Experto en Administración y Seguridad de Sistemas Informáticos
16. Configuración
• Personalización de los conjuntos de reglas.
Se permite añadir o eliminar clases
enteras. Por ejemplo:
– desactivar todas las reglas icmp-info para
reducir los falsos positivos del tráfico ping o
todas las reglas NetBIOS si no tenemos
maquinas Windows en nuestra red. También
podemos encontrar
• disponibles conjuntos de reglas que se han
ajustado para entornos específicos.
Experto en Administración y Seguridad de Sistemas Informáticos
17. Configuración
• Reglas personalizadas para:
– Registrar el acceso hacia o desde
determinados servidores.
– Buscar determinados tipos de nombres
de archivos específicos de nuestra
organizacion.
– Vigilar determinados tipos de tráfico que
no pertenecen a nuestra propia red.
• Simples declaraciones de texto
dentro de un fichero.
Experto en Administración y Seguridad de Sistemas Informáticos
18. Configuración
• En su forma básica, una regla de
Snort consta de dos partes:
– Un encabezado de regla
– Las opciones de la regla
• Ejemplo:
alert tcp any any 192.168.0.0/24 /
(content:"|00 05 A4 6F 2E|";msg:"Test Alert";)
Experto en Administración y Seguridad de Sistemas Informáticos
19. Configuración
############ Fichero de configuración para Snort #################
#### Variables que definen nuestra red ####
var INTERNAL 150.244.x.x/24
var EXTERNAL !150.244.x.x/24
var HOME_NET 150.244..x.x /24
var DNSSERVERS 150.244 .x.x 150.244 .x.x 150.244 .x.x
var RUIDOSOS 150.244 .x.x 150.244 .x.x 150.244 .x.x 150.244 .x.x
#### Preprocesadores del trafico ####
preprocessor http_decode: 80 443 8080
preprocessor minfrag: 128
preprocessor portscan: 150.244.x.x /24 6 2 /var/log/snort/snort_portscan.log
preprocessor portscan-ignorehosts: $RUIDOSOS $DNSSERVERS
#### Tipo de login ####
output alert_syslog: LOG_LOCAL1 LOG_ALERT
#### Reglas de filtrado ####
include /etc/snort/10102k.rules
include /etc/snort/vision.conf
###### Puedes incluir aqui tus propio fichero de reglas ##########
# include /etc/snort/misreglas.conf
Experto en Administración y Seguridad de Sistemas Informáticos
20. Configuración
• Cabecera de la regla:
Alert tcp !$HOME_NET any <>
$HOME_NET any
• Opciones de la regla:
(msg: "Transferencia de mp3"; flags:
AP; content: ".mp3 ";)
Experto en Administración y Seguridad de Sistemas Informáticos
21. Configuración
• Acciones (Lo que hace la regla si se
cumple el patrón):
– Log Registra
– Pass Ignora el paquete
– Activate Activa una regla dinámica tras avisar
– Dynamic Permanece inactiva hasta que se active por
una regla Activate y actúa a continuación como una
regla de registro.
– Alert Genera una alerta
• Protocolos: tcp, udp, icmp o ip.
• Ips y Puertos de origen y destino (múltiples si se
escriben entre corchetes y separadas por comas)
Experto en Administración y Seguridad de Sistemas Informáticos
22. Configuración
Opción Descripci_on
Msg Proporciona la descripción del texto de una
alerta.
Logto Registra el paquete para un nombre de
archivo específico de un usuario en lugar del
archivo de salida estándar
Ttl Prueba el valor del campo TTL del
encabezado IP.
Tos Prueba el valor del campo TOS del
encabezado IP.
Id Prueba el campo ID del fragmento del
encabezado IP para un valor específico.
Ipoption Vigila los campos de opción IP buscando
códigos específicos.
Fragbits Prueba los bits de fragmentación del
encabezado IP.
Dsize Prueba el tamaño de carga útil del paquete
frente a un valor.
Ags Prueba los indicadores TCP para
determinados valores.
Seq Prueba el campo de número de secuencia
TCP para un valor específico.
Ack Prueba el campo de reconocimiento TCP para
un valor específico.
Itype Prueba el campo de tipo ICMP frente a un
valor específico.
Icode Prueba el campo de código ICMP frente a un
valor específico.
icmp id Prueba el campo ICMP ECHO ID frente a un
valor específico
icmp seq Prueba el número de secuencia ICMP ECHO
frente a un valor específico.
Experto en Administración y Seguridad de Sistemas Informáticos
23. Configuración
Opción Descripci_on
content Busca un patrón en la carga útil del paquete.
content-list Busca un conjunto de patrones en la carga útil
del paquete.
o_set Modificador para la opción de contenido.
Establece la compensación en el intento de
coincidencia con el patrón
depth Modificador para la opción de contenido.
Establece la profundidad de búsqueda para un
intento de coincidencia con el patrón
react Respuesta activa. Responde con un conjunto
de comportamientos cifrados (por ejemplo,
bloquear determinados sitios web).
referernce Los ID de referencia de ataques externos.
sid ID de regla Snort.
rev N_umero de revisión de regla.
classtype Identificador de clasificación de regla.
priority I Identificador de severidad de regla.
uricontent Busca un patrón en la parte URI del paquete.
tag Acciones de registro avanzadas para las
reglas.
ip proto Valor de protocolo del encabezado IP.
sameip Determina si la IP de origen es igual a la IP de
destino.
stateless Válido independientemente del estado del
flujo.
regex Coincidencia de patrón de caracteres
comodín.
byte test Evaluaci_on numérica.
distance Obliga a que la coincidencia de patrón relativa
omita determinado número de bytes en el
paquete.
byte test Prueba numérica del patrón.
byte jump Prueba numérica del patrón y ajuste de
compensación
Experto en Administración y Seguridad de Sistemas Informáticos
24. Configuración
var MY_NET
[192.168.1.0/24,10.1.1.0/24]
alert tcp any any -> $MY_NET any
(flags:S; msg:"paquete SYN";)
alert tcp !10.1.1.0/24 any ->
10.1.1.0/24 any (flags: SF; msg:
“SYN-FIN Scan”;)
alert tcp any any -> 10.1.1.0/24
100:600 (flags: S; msg: “TRAP!”;)
Experto en Administración y Seguridad de Sistemas Informáticos
25. Configuración
• Nota: FlexResp. Permite, dada una
conexión que emita tráfico malicioso, darle
de baja (DROP) mediante el envío de un
paquete con el flag RST activo, cortando
las conexiones que cumplan ciertas reglas
predefinidas.
• No sólo corta la conexiones ya que puede
realizar otras muchas acciones.
• No sólo es con la línea de comandos:
Webmin
Experto en Administración y Seguridad de Sistemas Informáticos
26. Herramientas de análisis
• ACID: Consola de Análisis para bases de
datos de Intrusión
• Proporciona un panel de control basado en
Web para visualizar y manipular
resultados de la detección
• Admite cualquier base de datos y
cualquier servidor web, así como múltiples
sensores, alertas snort y archivos de
registros del sistema
Experto en Administración y Seguridad de Sistemas Informáticos
27. Herramientas de análisis
• ACID+MySQL+Apache+SNORT + …
• ADObd capa de abstracción de la base
de datos
• PHPLot Crear gráficos
• JpGraph Gráficos de color
• GD Biblioteca de manipulación de
imágenes de PHP
– libpng PNG para GD
– libjpeg-6b JPEG para GD
– Zlib Soporte de compresión para GD
Experto en Administración y Seguridad de Sistemas Informáticos
28. Herramientas de análisis
• Uso de Mysql
• Opción –with-mysql=/usr/local/mysql
• Configurar la salida de snort (visto antes)
• ACID usa una base de datos llamada snort
• Configurar IP y usuario del servidor de la
base de datos
• Configuración ideal: snort, ACID y MySQL
en máquinas distintas.
Experto en Administración y Seguridad de Sistemas Informáticos
29. Herramientas de análisis
• Instalación de ACID
• Descaga del programa (http:..)
• Descomprimimos en /www/htdocs
• Editamos acid_conf.php y cambiamos los
valores de las variables por los apropiados
para nuestro sistema
• Abrimos explorardor Web y nos
conectamos al anfitrión ACID, al recurso
local /acid/acid_main.php Interfaz de
configuración de ACID
Experto en Administración y Seguridad de Sistemas Informáticos
30. Herramientas de análisis
• AG: Grupo de alertas, compuesto por uno o más
sensores SNORT.
• Si se desea registrar diferentes grupos, se deben
crear diferentes bases de datos, una por grupo
• Las consultas sólo son sobre una AG, por l que
debemos aseguranos que se agrupan
correctamente
• Se puede usar ACID para la sintonización del IDS
• Se guardan datos confidenciales, por lo que se
debe proteger especialmente la BD de ACID
Experto en Administración y Seguridad de Sistemas Informáticos
31. Patrocina:
Organiza:
Enseñanzas Propias
Universidad de Almería
Escuela Politécnica Superior
Universidad de Almería
Experto en Administración y Seguridad de Sistemas Informáticos