Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se basa en la herramienta de captura de paquetes. Las reglas son bastante fáciles de crear e
implementar y se pueden implementar en cualquier tipo de sistema operativo y entorno de red.
La principal razón de la popularidad de este IDS sobre otros es que es un software de uso
gratuito y también de código abierto, por lo que cualquier usuario puede usarlo de la manera que
desee.
Componentes de Snort
El primer componente es el decodificador, que se encarga de formar paquetes para ser utilizados
por los demás componentes. Tiene la función de determinar qué protocolos subyacentes se
utilizan en el paquete, así como de determinar la ubicación y el tamaño de los datos del paquete
que luego se utilizan en componentes posteriores.
Los siguientes componentes son los preprocesadores. Estos componentes funcionan como
complementos y pueden organizar o modificar paquetes de datos. Esto permite que los servicios
(como HTTP o FTP) tengan un preprocesador correspondiente para verificar anomalías
específicas de ese servicio. Su trabajo es, en última instancia, intentar hacer más difícil engañar
al motor de detección.
Si un paquete coincide con una regla, el sistema de alerta y registro generará la alerta. Por
supuesto, el mensaje y los contenidos generados por este componente se pueden configurar a
través del archivo de configuración. Si un paquete activa varias reglas, el nivel de alerta más alto
es lo que realmente generará este componente.
Finalmente, después de que se genera una alerta o registro, pasa por el componente Módulos de
salida. Este componente tiene la tarea de controlar el tipo de salida generada, utiliza un sistema
de complementos que le da flexibilidad al usuario y también es altamente configurable.
Reglas Snort
Las reglas se pueden aplicar a los encabezados de la capa de red y transporte (IP, TCP, UDP,
ICMP) o incluso a los encabezados de la capa de aplicación (FTP, HTTP, etc.), pero por
supuesto, las reglas también se pueden aplicar a los paquetes de datos.
Las reglas se componen de dos partes, un encabezado de regla, que especifica qué acción se debe
tomar en caso de una coincidencia, el tipo de paquete (TCP, UDP, etc.), así como las direcciones
IP de origen y destino y los números de puerto. La última parte son las Opciones de regla, que
especifica el contenido que marca los paquetes como una coincidencia, la regla general tomará la
siguiente forma:
Ejemplos
Aquí usamos el puerto de destino para especificar los paquetes que van a los servidores
de correo (smtp se puede reemplazar por 25). Se requieren barras invertidas en la opción
PCRE para escapar de las comillas. El PCRE utilizado busca cualquier cadena que
comience con una comilla doble, seguida de una mayúscula, con un total de 4-7 letras de
longitud, por lo tanto, la capital más 3 a 6 letras ( [a-zA-Z]{3,6}), seguida de una comilla
doble.
3. El rule header, es decir, la primera parte de una regla Snort, contiene los siguientes datos
que debes ingresar:
Action (acción).
Protocol (protocolo).
Source address (dirección IP de la fuente).
Source port (puerto de la fuente).
Direction (o dirección).
Destination address (dirección de destino).
Destination port (puerto de destino).
4. El rule option corresponde a la respuesta que debe emitir Snort cuando se cumplan las
condiciones especificadas por el rule header. Un ejemplo de opción de regla sería:
El comando “msg” significa que la medida que tomará el programa será emitir un
mensaje de alerta. Es decir, que esta es una regla con función de detección.
El mensaje indica el tipo de ataque o incidente que queramos registrar. Es una de las
ventajas de construir reglas propias, que permiten identificar ataques dirigidos.
El “sid” es un número de identificación que podrás crear fácilmente cuando te registres
en la plataforma de Snort.
Acción de la regla: alert
Protocolo: tcp
Direccion IP origen: $EXTERNAL_NET (toda la red)
Puerto IP origen: any (cualquiera)
Direccion IP destino: $HOME_NET (toda nuestra red)
Puerto IP destino: any (cualquiera)
Dirección de la operación: -> (puede ser ->, <-, )
Mensaje: msg
Opciones: flags:A;ack:0; reference:arachnids..(1)