INTRODUCCIÓN El presente documento trata acerca de un Sistema de

Detección de Intrusos (IDS, siglas en Inglés) llamado Snort desarrollado por
SourceFire. Para llegar a hablar de dicho sistema se definirá lo que es un IDS
primeramente. A continuación, se hablará de lo que es Snort, como funciona y
todos los aspectos básicos del mismo. Como requerimiento de la entrega de
éste informe, se explicará detalladamente el proceso de instalación y
configuración de Snort, al mismo tiempo que se ilustrarán ejemplos de algunos
de los comandos que éste sistema IDS tiene como funcionalidades

1. ¿QUÉ ES UN IDS? Cortafuegos vs IDS Un IDS es un sistema que intenta
detectar y alertar sobre las intrusiones intentadas en un sistema o en
una red, considerando intrusión a toda actividad no autorizada o no que
no debería ocurrir en ese sistema. Según esta definición, muchos
podrían pensar que ese trabajo ya se realiza mediante los cortafuegos o
firewalls. La principal diferencia, es que un cortafuegos es una
herramienta basada en la aplicación de un sistema de restricciones y
excepciones sujeta a muchos tipos de ataques, desde los ataques
“tunneling”(saltos de barrera) a los ataques basados en las aplicaciones.
Los cortafuegos filtran los paquetes y permiten su paso o los bloquean
por medio de una tabla de decisiones basadas en el protocolo de red
utilizado. Las reglas verifican contra una base de datos que determina si
está permitido un protocolo determinado y permite o no el paso del
paquete basándose en atributos tales como las direcciones de origen y
de destino, el número de puerto, etc... Esto se convierte en un problema
cuando un atacante enmascara el tráfico que debería ser analizado por
el cortafuegos o utiliza un programa para comunicarse directamente con
una aplicación remota. Estos aspectos se escapan a las funcionalidades
previstas en el diseño inicial de los cortafuegos. Es aquí dónde entran los
IDS, ya que estos son capaces de detectar cuando ocurren estos fallos.
Definición Un sistema de detección de intrusos (o IDS de sus siglas en
inglés Intrusion Detection System) es un programa usado para detectar
accesos no autorizados a un computador o a una red. Estos accesos
pueden ser ataques de habilidosos hackers, o de Script Kiddies que usan
herramientas automáticas. El IDS suele tener sensores virtuales (por
ejemplo, un sniffer de red) con los que el núcleo del IDS puede obtener
datos externos (generalmente sobre el tráfico de red). El IDS detecta,
gracias a dichos sensores, anomalías que pueden ser indicio de la
presencia de ataques o falsas alarmas. Algunas de las características
deseables para un IDS son: • Deben estar continuamente en ejecución
con un mínimo de supervisión. • Se deben recuperar de las posibles
caídas o problemas con la red. • Debe poderse analizar él mismo y
detectar si ha sido modificado por un atacante. • Debe utilizar los
mínimos recursos posibles. • Debe estar configurado acorde con la
política de seguridad seguida por la organización. • Debe de adaptarse a

Dichas firmas permiten al IDS distinguir entre el uso normal del PC y el uso fraudulento... clasificados según el tipo de situación física. excepto los que trabajan conjuntamente en un dispositivo de puerta de enlace con funcionalidad de firewall. Clasificación por situación Según la función del software IDS. sino que también revisa el contenido y su comportamiento. del tipo de detección que posee o de su naturaleza y reacción cuando detecta un posible ataque. los HIDS analizan el tráfico sobre un servidor o un PC. se preocupan de lo que está sucediendo en cada host y son capaces de detectar situaciones como los intentos fallidos de acceso o modificaciones en archivos considerados críticos. y/o entre el tráfico normal de la red y el tráfico que puede ser resultado de un ataque o intento del mismo. Normalmente esta herramienta se integra con un firewall. examinando los paquetes individualmente. Tipos de IDS Existen varios tipos de IDS. el cual al entrar al analizador es comparado con firmas de ataques conocidos. Las principales ventajas del NIDS son: Detectan accesos no deseados a la red. al ser el punto donde forzosamente deben pasar los paquetes y pueden ser bloqueados antes de penetrar en la red. comprendiendo todas las diferentes opciones que pueden coexistir dentro de un paquete de red y detectando paquetes armados maliciosamente y diseñados para no ser detectados por los cortafuegos. La solución más sencilla es colocar diversos sensores. etc. Pueden buscar cual es el programa en particular del servidor de web al que se está accediendo y con que opciones y producir alertas cuando un atacante intenta explotar algún fallo en este programa. En cambio. estos pueden ser: • NIDS (Network Intrusion Detection System) • HIDS (Host Intrusion Detection System) Los NIDS analizan el tráfico de la red completa. ficheros abiertos. No necesitan instalar software adicional en los servidores en producción. Los NIDS tienen dos componentes: Un sensor: situado en un segmento de la red. Los IDS suelen disponer de una base de datos de “firmas” de ataques conocidos. El IDS no sólo analiza qué tipo de tráfico es. Funcionamiento El funcionamiento de estas herramientas se basa en el análisis pormenorizado del tráfico de red.. paquetes malformados. Tiende a tener menor número de falsos-positivos que . como puede ser el escaneo de puertos. Pueden generar tráfico en la red. convirtiéndose en una herramienta muy poderosa ya que se une la inteligencia del IDS y el poder de bloqueo del firewall. Ataques con sesiones encriptadas son difíciles de detectar. pero no puede detectar un ataque en diferentes segmentos de la red. Las ventajas que aporta el HIDS son: Herramienta potente. El detector de intrusos es incapaz de detener los ataques por sí solo. la monitoriza en busca de tráfico sospechoso Una Consola: recibe las alarmas del sensor o sensores y dependiendo de la configuración reacciona a las alarmas recibidas. Como principales desventajas se encuentran: Examinan el tráfico de la red en el segmento en el cual se conecta. o comportamientos sospechosos. registra comandos utilizados.los cambios de sistemas y usuarios y ser fácilmente actualizable. Fácil instalación y actualización por que se ejecutan en un sistema dedicado.

Menor riesgo en las respuestas activas que los IDS de red. ¿QUÉ ES SNORT? Snort es un sniffer de paquetes y un detector de intrusos basado en red (se monitoriza todo un dominio de colisión). registran la información y genera una alerta. ataques web. Reactivos. lo que supone una carga adicional para el sistema. Puede . sacando al usuario del sistema o mediante la reprogramación del cortafuegos para impedir el tráfico desde una fuente hostil. Los IDS pasivos detectan una posible violación de la seguridad. Implementa un motor de detección de ataques y barrido de puertos que permite registrar. La detección de actividades anómalas se apoya en estadísticas tras comprender cual es el tráfico “normal” en la red del que no lo es. Clasificación según los modelos de detecciones Los dos tipos de detecciones que pueden realizar los IDS son: • Detección del mal uso. DDoS. • Detección del uso anómalo. alertar y responder ante cualquier anomalía previamente definida.. Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor. potente y sencillo. FTP. Así mismo existen herramientas de terceros para mostrar informes en tiempo real (ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos. La detección del mal uso involucra la verificación sobre tipos ilegales de tráfico de red. Los inconvenientes son: Requiere instalación en la máquina local que se quiere proteger.. combinaciones dentro de un paquete que no se podrían dar legítimamente. Esto se consigue realizando un modelo estadístico que contenga una métrica definida y compararlo con los datos reales analizados en busca de desviaciones estadísticas significantes. describiéndolos mediante unos patrones o una secuencia de eventos o datos (“firma”) que serán interpretados por el IDS.los NIDS. Tienden a confiar en las capacidades de auditoria y logging de la máquina en sí. finger. Los IDS reactivos están diseñados para responder ante una actividad ilegal. Este IDS implementa un lenguaje de creación de reglas flexible. Clasificación según su naturaleza Un tercer y último tipo básico de clasificación sería respecto a la reacción del IDS frente a un posible ataque: Pasivos. por ejemplo. CGI. “sniffers”). entendiendo falsos-positivos a los paquetes etiquetados como posibles ataques cuando no lo son. Este modelo de detección se realiza detectando cambios en los patrones de utilización o comportamiento del sistema. Nmap. por ejemplo. Este tipo de detección puede incluir los intentos de un usuario por ejecutar programas sin permiso (por ejemplo. Un claro ejemplo de actividad anómala sería la detección de tráfico fuera de horario de oficina o el acceso repetitivo desde una máquina remota (rastreo de puertos). Los modelos de detección basado en el mal uso se implementan observando como se pueden explotar los puntos débiles de los sistemas. 2. Es un software muy flexible que ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos abiertas como lo es MySQL.

en el que se motoriza por pantalla en tiempo real toda la actividad en la red en que Snort es configurado. 3. en el que se almacena en un sistema de log toda la actividad de la red en que se ha configurado Snort para un posterior análisis. así como actualizaciones constantes ante casos de ataques. el usuario tiende a utilizar un elevado número patrones para protegerse. Los usuarios pueden crear 'firmas' basadas en las características de los nuevos ataques de red y enviarlas a la lista de correo de firmas de Snort. se logea. toda la actividad de la red a través de un fichero de configuración en el que se especifican las reglas y patrones a filtrar para estudiar los posibles ataques.funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en nuestra red. no se considera un verdadero IDS puesto que no analiza ni señala paquetes por anomalías. marca las transmisiones que sean potencialmente maliciosas y las almacena en un registro formateado. Snort puede funcionar en: • Modo sniffer. así. Intuitivamente. ya que no todos los ataques que Snort es capaz de detectar son útiles (para el atacante) en el segmento de red que monitorizamos y en cambio corremos el riesgo de sobrecargar la herramienta. • Modo IDS. que dejará pasar todos los paquetes que no pueda analizar. Una vez hemos instalado correctamente el programa y lo ponemos en funcionamiento. Snort está disponible bajo licencia GPL. Para utilizarlo correctamente. Dispone de una gran cantidad de filtros o patrones ya predefinidos. para que así todos los usuarios de Snort se puedan beneficiar. La característica más apreciada de Snort. Esta ética de comunidad y compartir ha convertido a Snort en uno de los IDSes basados en red más populares. todo nuestro tráfico). en el que se motoriza por pantalla o en un sistema basado en log. tcpdump imprime toda la información de paquetes a la salida en pantalla o a un archivo de registro sin ningún tipo de análisis. es necesario instalar WinPcap. • Modo packet logger (registro de paquetes). además de su funcionalidad. gratuito y funciona bajo plataformas Windows y UNIX/Linux. Este software consiste en un driver que extiende el sistema operativo para permitir un acceso de bajo nivel a la red y una librería que facilita a las aplicaciones acceder a la capa de enlace saltándose la pila de protocolos. registro de paquetes (permite guardar en un archivo los logs para su posterior análisis. o bien . un análisis offline) o como un IDS normal (en este caso NIDS). Cuando un paquete coincide con algún patrón establecido en las reglas de configuración. Snort tiene una base de datos de ataques que se está actualizando constantemente y a la cual se puede añadir o actualizar a través de la Internet. o bien reconfigurar la base de datos. de dónde y cómo se produjo el ataque. debemos introducir en la base de patrones de ataques los que queremos utilizar para detectar actividades sospechosas contra nuestra red. también es necesario estudiar los patrones de tráfico que circulan por el segmento donde el sensor escucha para detectar falsos positivos y. Snort utiliza la biblioteca estándar libcap y tcpdump como registro de paquetes en el fondo. Un verdadero IDS analiza los paquetes. barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad. actualizados y robustos. ¿CÓMO FUNCIONA SNORT? En la versión de Windows. pero paradójicamente esto puede perjudicar la seguridad. es su subsistema flexible de firmas de ataques. Aún cuando tcpdump es considerada una herramienta de auditoría muy útil. Así se sabe cuándo.

traps SNMP. rearmar o modificar datos. //(Win32 only)//  -f Turn off fflush() calls after binary log writes  -F Read BPF filters from file  -h Home network =  -i Listen on interface  -I Add Interface name to alert output  -k Checksum mode // (all. COMANDOS DE SNORT Los siguientes son los comandos que se pueden utilizar en Snort para obtener las diferentes funcionalidades:  -A Set alert mode: fast.none)//  -l Log to directory  -L Log to this tcpdump file  -n Exit after receiving packets  -N Turn off logging (alerts still work)  -o Change the rule testing order to Pass|Alert|Log  -O Obfuscate the logged IP addresses  -p Disable promiscuous mode sniffing  -P Set explicit snaplen of packet //(default: 1514)//  -q Quiet.noicmp. • El decodificador de paquete. Don't show banner and status report  -r Read and process tcpdump file  -R Include 'id' in snort_intf. • Loggin y sistema de alerta.noip. Dependiendo que detecte el motor dentro de un paquete. el logging y sistema de alerta. toma los paquetes de diferentes tipos de interfaces de red. • Motor de detección (Comparación contra firmas). Los preprocesadores son componentes o plugins que pueden ser usados con Snort para arreglar. Postgres. syslog. Plugins de salida: • Bases de datos (MySql.noudp. Funcionamiento del motor de Snort El motor de Snort se divide en los siguientes componentes: • Decodificador del paquete. la acción configurada en la misma es ejecutada.notcp. se encarga de loguear o generar una alerta. Los logs son almacenados en archivos de texto. El motor utiliza las reglas que han sido definidas para este propósito. es un apoyo que no puede sustituir la tarea del responsable de seguridad que es quien debe analizar toda la información de forma minuciosa y continuada. or none //(alert file alerts only)//  -b Log packets in tcpdump format //(much faster!)//  -c Use Rules File  -C Print out payloads with character data only //(no hex)//  -d Dump the Application Layer  -e Display the second layer header info  -E Log alert messages to NT Eventlog. y prepara el paquete para ser preprocesado o enviado al motor de detección. archivos con formato tcpdump u otro formato. El motor de detección es la responsable de detectar si alguna actividad de intrusión existe en un paquete. etc) • Syslog • XML • Traps SNMP • Mensajes SMB 4. pese a todas las facilidades y automatizaciones y como casi todas las herramientas de seguridad. Son muy importantes porque preparan los datos para ser analizados contra reglas en el motor de detección. Por ejemplo: enviar emails. Si un paquete machea una regla. Las reglas (o cadenas) son macheadas contra todos los paquetes. antes que el motor de detección haga alguna operación para encontrar si el paquete esta siendo enviado por un intruso. • Preprocesadores. Los plugins de salida toman la salida del sistema de alerta y permiten almacenarlas en distintos formatos o reaccionar antes el mismo. full.eliminar los patrones que los generan. etc.pid file name  -s Log alert messages to syslog  -S Set rules file variable n equal to value v  -T Test and report on the current Snort configuration  -U Use UTC for timestamps  -v Be verbose  -V Show version number  -W Lists available . • Plugins de salida. insertar en una base de datos. Algunos preprocesadores realizan detección buscando anomalías en las cabeceras de los paquetes y generando alertas. En definitiva. console.

INSTALACIÓN Y CONFIGURACIÓN DEL IDS SNORT La instalación se realizó una distribución Linux (Ubuntu 12.interfaces. 2. Abrir una terminal 2. En seguida se iniciará la instalación.04 propiamente dicho) por medio de la terminal de línea de comandos. match on established sesions //(for TCP)//  -? Show this information 4. escribiendo la contraseña en la siguiente línea. A continuación pedirá la siguiente opción de configuración . Se siguieron los siguientes pasos: 1. Escribir el comando de instalación de paquete sudo apt-get install snort Dando permisos de superusuario para poder realizar la instalación (debido al sistema de permisos utilizado por las distribuciones de Linux). //(Win32 only)//  -w Dump 802.11 management and control frames  -X Dump the raw packet data starting at the link layer  -y Include year in timestamp in the alert and log files  -z Set assurance mode.

Una vez finalizado el proceso de instalación se puede realizar la configuración completa por medio del comando. Preguntará que opción de arranque se desea configurar: . En este punto puede haber 3 opciones de configuración:  Si es una única dirección se colocará con máscara de sub red /32  Si es un bloque de 256 IPs se utilizará la máscara /24  Si es una red más amplia se utilizará la máscara /16 4. En este paso pide la dirección de red local (la cual va a ser la que se estará monitoreando). 4.3.

En este caso se escogerá la configuración del arranque manual. Se explica que se puede utilizar el siguiente comando para encontrar la interface . Siguiente viene una ventana de explicación de lo que será el próximo requisito a pedir. la interface de red que se escaneará. 6.Se ve explicado claramente qué es cada tipo de arranque.

En la siguiente opción se escribe la interface obtenida en la anterior instrucción 8. Ahora se deberá escribir la dirección de red que se desea escanear (paso similar al realizado durante la instalación. Opción de habilitar o deshabilitar el “Modo promiscuo” . 7. 9. paso 3).Con lo cual se nota que la interface necesaria en la wlan0 (ya que la conexión se está realizando de manera inalámbrica).

Modo Promiscuo significa que se analizará todos los paquetes que pasen por el segmento aunque no sean de una conexión propia. 11. .Recibir resúmenes electrónicos por correo de las alertas encontradas.

12. Se especifica el correo electrónico en que se desea recibir los resúmenes diarios. 13. Ahora se pregunta la cantidad de informes que se incluyen por alerta .

14.Finalmente la solicitud del comando al finalizar para recargar las configuraciones hechas.Una vez finalizado el asistente de configuración. se ejecuta el comando mostrado en la anterior instrucción . 15.

El anterior comando abrirá un nuevo archivo del programa gedit con el nombre dado. Crear un nuevo archivo .rules el cual contendrá reglas sobre:  El usuario ingresa a la página de google  El usuario ingresa a la página de facebook  Se está realizando un ping sobre la máquina host.PROCESO PARA LA INSERCIÓN DE UNA NUEVA REGLA 1. . 2.rules en la carpeta /etc/snort/rules/ En este ejemplo se está creando el archivo sites.

El cual se encuentra en la ruta mostrada en la siguiente imagen. 3. Se guarda y se cierra el archivo.Como se dijo en el anterior paso se está realizando las 3 reglas. Al ejecutar el comando se abrirá nuevamente gedit con el archivo de configuración de snort De esta manera se ingresa la regla recientemente creada en el archivo de configuración y ya está cargada para ser revisada. . De vuelta en la terminal se abrirá ahora el archivo de configuración de snort.

5. Nos dirigimos hacia el directorio de snort 2. Ejecutamos snort . Ejecución de snort 1. Ejemplo de las reglas anteriormente creadas en funcionamiento: En este ejemplo se pueden notar tanto la regla de Facebook como la regla de Ping en funcionamiento.

En éste caso estamos utilizando los comandos –A. Inicia el proceso de snort 4. Nuevamente se muestra la aplicación mostrando las reglas establecidas anteriormente . -c y –i con lo cuales estamos estableciendo las salidas. el archivo de configuración a utilizar y la interface a escanear. 3.