Reglas de Snort en Seguridad Informática
Reglas de Snort en Seguridad Informática
Por:
Yony Coyla Jarita
Asesor:
Ing. Jorge Eddy Otazu Luque
En primer lugar, a Dios por haberme guiado por el camino de la felicidad hasta
ahora; en segundo lugar, a cada uno de los que son parte de mi familia a mi padre Roberto
Coila Pari, mi madre, Valeriana Jarita Charca y no menos importante; a mis hermanos, a
todos mis tíos y a mis amigos más cercanos, por siempre haberme dado su fuerza y apoyo
incondicional que me han ayudado y llevado hasta donde estoy ahora.
IV
AGRADECIMIENTOS
V
ÍNDICE GENERAL
DEDICATORIA ............................................................................................................. IV
AGRADECIMIENTOS ....................................................................................................V
RESUMEN .................................................................................................................... XV
CAPÍTULO I. El problema............................................................................................. 17
1.4. Objetivos.................................................................................................................. 19
2.3.4. Barnyard2.............................................................................................................. 46
2.3.6. Snorby................................................................................................................... 46
VIII
ÍNDICE DE TABLAS
IX
ÍNDICE DE FIGURAS
XI
Figura 68. Ataque DDoS con slowloris fallido ............................................................ 103
Figura 69. Bloqueo de ataque DDoS por snortIPS ....................................................... 103
XII
ÍNDICE DE ANEXOS
XIII
SÍMBOLOS USADOS
XIV
RESUMEN
Este proyecto se realiza con el propósito de poder brindar una herramienta adicional de
detección y prevención de intrusos con el cual puedan monitorear el tráfico de la red y de
esa manera evitar problemas de ataques o accesos a usuarios con permisos no autorizados.
Snort es un sistema de detección de intrusiones (IDS) que permite el monitoreo del tráfico
de red y la generación de alertas cuando los paquetes obtenidos indican que hay
comportamientos sospechosos. Iniciamos esta investigación con la revisión de los
componentes de Snort y todas las funcionalidades que nos puede brindar, luego procedemos
a crear máquinas virtuales para que nos pueda ayudar a simular el monitoreo del tráfico así
como algunos ataques, continuamos configurando snort en modo IDS/IPS, luego pasamos a
crear reglas que nos ayuden a detectar los ataques y monitorizar el tráfico que se realizan y
finalmente comprobamos la eficacia de su detección y prevención, para poder tener un buen
control de la red usaremos la norma ISO 27001 el cual nos ayuda a conocer los métodos de
evaluación del trafico mediante las etapas que esta nos brinda, se inicia con la fase de
planificación donde analizaremos y diseñaremos las reglas según el trafico de la institución,
pasamos a la fase de implementación donde elegimos a snort como IDS/IPS, configuramos
el motor de amenazas así como nuestras reglas, continuamos con la fase de medir para
evaluar que snort cumple con las necesidades que se espera y terminamos con la fase de
mejorar haciendo algunas pruebas. En los resultados más relevantes tenemos las pruebas con
ataques de denegación de servicio hacia la red configurada, snort cumple con su trabajo al
detectar y bloquear las múltiples peticiones hechas por el usuario, así como el bloqueo del
ingreso de los usuarios hacia nuestro servidor. Concluimos que snort es una muy buena
herramienta opensource en el ámbito de IDS/IPS es posible implementarlo no solo en la
UPeU si no en empresas que tengan deficiencias en el área de seguridad de la información.
XV
ABSTRACT
This project is carried out with the purpose of being able to provide an additional tool of
detection and prevention of intruders with which they can monitor the traffic of the network
and in this way avoid problems of attacks or access to users with unauthorized permissions.
Snort is an intrusion detection system (IDS) that allows the monitoring of network traffic
and the generation of alerts when the packages obtained indicate suspicious behavior. We
initiate this investigation with the revision of the components of Snort and all the
functionalities that can offer us, then we proceed to create virtual machines so that it can
help us to simulate the monitoring of the traffic as well as some attacks, we continue
configuring snort in IDS / IPS mode , then we go on to create rules that help us detect the
attacks and monitor the traffic that is carried out and finally we verify the effectiveness of
their detection and prevention, in order to have a good control of the network we will use
the ISO 27001 standard which helps us know the methods of evaluation of the traffic through
the stages that this provides, begins with the planning phase where we analyze and design
the rules according to the traffic of the institution, we move to the implementation phase
where we choose snort as IDS / IPS, we configure the threat engine as well as our rules, we
continue with the measurement phase to evaluate which snort meets the necessary we expect
and finish with the improvement phase doing some tests. In the most relevant results we
have the tests with denial of service attacks against the configured network, snort
accomplishes its work by detecting and blocking the multiple requests made by the user, as
well as blocking the entry of users to our server. We conclude that snort is a very good
opensource tool in the scope of IDS / IPS, it is possible to implement it not only in UPeU
but also in companies that have deficiencies in the area of information security.
XVI
CAPÍTULO I. El problema
Según el informe del Banco Inter Americano de Desarrollo (BID) que se encarga del
financiamiento de proyectos viables económico, social e institucional en la región de américa
latina y la OEA anuncia que Perú hoy en día aún no cuenta con una estrategia nacional de
ciberseguridad, sin embargo, si tiene lo necesario para combatir las amenazas del
ciberespacio. Viendo todos estos detalles llegamos a la conclusión de que cualquier empresa
ya sea una institución educativa es importante que pueda contar con una buena seguridad de
su información (PortalAndina, 2017, p. 3).
Según el estudio realizado por el diario la republica muestra que Perú es el quinto
país con más ataques cibernéticos en Latinoamérica este estudio también revela que en el
sector financiero sufre más de 6.6 millones de ataques por día, con un 11.22% Perú ha
llegado a ser el quinto país de Latinoamérica que recibe más ataques cibernéticos
(LaRepública, 2015, p. 5).
17
dispositivo este aplicativo que se instala silenciosamente también puede reunir información
y reenviar detalles del dispositivo. También tenemos el conjunto de red de robots llamado
botnet el cual se encarga de controlar nuestros ordenadores o servidores de forma remota
pudiendo de esa manera realizar ataques de denegación de servicio DDoS.
1.2 Justificación
Para poder contrarrestar este tipo de problemas es que se optó por usar un (IDS/IPS)
ya que nos ayuda a tener un mejor control y una buena seguridad en nuestras redes
cibernéticas, ambos sistemas de (IDS/IPS) nos ayudaran a monitorear de manera más
eficiente los servicios que se tienen (Martinez, Bermúdez, & Ocampo, 2017).
18
Snort es un Sistema de Detección y prevención de Intrusos (IDS/IPS) open source
que también cuenta con un lenguaje de reglas configurables, una de las ventajas de usar Snort
es que también tiene la capacidad de poder usarse como un sniffer con el cual podremos ver
en tiempo real lo que sucede en nuestra red, todo el tráfico que se genera, también nos
permite guardar en un archivo log el trafico escaneado para luego poder hacer un análisis
fuera de la red Roesch (2010).
1.4 Objetivos
Objetivo general.
Objetivos específicos.
Analizar y diseñar las reglas según el tráfico y los ataques más relevantes en
la comunidad.
Instalar y configurar el IDS/IPS Snort
19
Monitorear y análisar del tráfico de datos, seguridad y disponibilidad en la
red.
Pruebas del análisis del tráfico de la red y bloqueo de tráfico no permitido.
20
CAPÍTULO II. Revisión de la literatura
21
dimensionadas a las exigencias de las normativas de la red telemática. En los resultados se
determinó que el promedio de ataques de accesos no autorizados exitosos antes de la
implementación del sistema que fue de 104.5 con desviación estándar de 98.33 ingresos, sin
embargo después de la implementación el promedio fue de tan solo del 4.88 con una
desviación estándar de 3.18 ingresos, se puede observar existe una diferencia del 99.63 de
ataques de accesos no autorizados exitosos en promedio a favor del firewall de seguridad
perimetral, también se puede observar que el número máximo y mínimo de ingresos antes
de la implementación del firewall fue de 150 y 10 respectivamente, mientras que después de
la implementación fue de 10 y 1 respectivamente.
En la tesis de maestría en conectividad y redes realizado por Diaz (2018) con el título
de estudio. Propuesta metodológica y simulación de la implementación de un siem basado
en la norma iso 27001 y/o 27002. Desarrolló una Metodología de implementación del SIEM,
para cubrir su ausencia a nivel global, capaz de ser utilizada en modelos de negocios de TI
(Tecnología de la información), como herramienta práctica, eficaz y eficiente que facilite la
compleja tarea de implementación de la tecnología mencionada a profesionales de la rama,
interesados en proteger los activos de información de la organización. En la metodología
propuesta opto por usar los métodos que nos brindan la norma ISO 27001 e ISO 27002. Los
resultados obtenidos por cada uno de sus subprocesos y sus actividades respectivamente,
donde la mayoría de ellos fueron éxitos y otros destacan algunos problemas que deben ser
tomados en cuenta para su corrección.
22
informativa se une la ventaja de saber si alguna persona desapercibida está conectada a la
red.
Estas formas de malware que pueden desempeñar una función de archivos dañinos
al convertir una computadora inutilizable, destruir datos importantes que almacena, otorgar
el control completo de una PC a otra persona. Permitir que alguien robe los datos en su
computadora, registrar sus pulsaciones de teclado y otorgarle acceso a un tercero a su cuenta
bancaria en línea, permitir que alguien use su computadora para atacar una computadora que
pertenece a otra persona.
23
Autenticación: Estás seguro que realmente estas comunicándote con los que piensas
que te estás comunicando.
2.2.3 IDS/IPS.
2.2.3.1 IDS.
24
adaptadores de red exclusivos del sistema en modo promiscuo. Éste es una especie de modo
intangible en el que no tienen dirección IP. Ni tienen una serie de protocolos asignados. Es
común hallar diversos IDS en diferentes partes de la red. Por lo frecuente, se colocan
sistemas de detección fuera de la red para observar los posibles ataques, así como también
se colocan sistemas internos para examinar solicitudes que hayan pasado a través del firewall
o que se han realizado internamente (SeguridadGJSA, 2015, p. 4).
Los principales métodos que usa un N-IDS para informar y bloquear intrusiones son:
“Envío de una trampa SNMP a un hipervisor externo: Envío de una alerta (y detalles
de los datos involucrados) en forma de un datagrama SNMP a una consola externa como HP
Open View Tivoli, Cabletron, Spectrum, etc” (SeguridadGJSA, 2015, .p 5).
25
“Registro del ataque: Se guardan los detalles de la alerta en una base de datos central,
incluyendo información como el registro de fecha, la dirección IP del intruso, la dirección
IP del destino, el protocolo utilizado y la carga útil” (SeguridadGJSA, 2015, p. 5).
“Apertura de una aplicación: Se lanza un programa externo que realice una acción
específica (envío de un mensaje de texto SMS o la emisión de una alarma sonora)”
(SeguridadGJSA, 2015, p. 5).
“Notificación visual de una alerta: Se muestra una alerta en una o más de las consolas
de administración” (SeguridadGJSA, 2015, p. 5).
2.2.3.4 IPS
26
Otras funciones de estos dispositivos de red, son las de grabar información histórica
de esta actividad y generar reportes para dar un mejor seguimiento.
Según SeguridadGJSA (2015, p. 4), los IPS se clasifican en cuatro diferentes tipos:
Basados en Red Lan (NIPS): monitorizan la red lan en busca de tráfico de red
sospechoso al analizar la actividad por protocolo de comunicación lan.
Basados en Red Wireless (WIPS): monitorean la red inalámbrica en busca de tráfico
sospechoso al analizar la actividad por protocolo de comunicación inalámbrico.
Análisis de comportamiento de red (NBA): Examina el tráfico de red para identificar
amenazas que generan tráfico inusual, como ataques de denegación de servicio
ciertas formas de malware y violaciones a políticas de red.
Basados en Host (HIPS): Se efectúa mediante la instalación de paquetes de software
que monitoriza un host único en busca de actividad sospechosa.
El IPS puede cuadrar las interrupciones, prestar poca atención a la convención del
tráfico y reconfigurar un dispositivo externo. Esto implica que el IPS puede canalizar y
cuadrar parcelas en modo local, utiliza estrategias, por ejemplo, eliminando una asociación,
eliminando paquetes de restricción, obstaculizando un interloper, etc. (SeguridadGJSA,
2015, p. 5).
27
2.2.4 Herramientas IDS/IPS Open Source
2.2.4.1 Snort
El sitio web de Snort señala: A diferencia de las firmas, las reglas se basan en la
detección de la vulnerabilidad real, no en un exploit o en una pieza de datos única.
Desarrollar una regla requiere una comprensión aguda de cómo funciona realmente la
vulnerabilidad.
Para decirlo de otra manera, Snort Rules proporciona una definición simple que
ayuda a especificar características únicas del tráfico de red, activa una alerta cuando se
cumplen esas condiciones y elimina o bloquea la comunicación según lo desee la
configuración del usuario.
Una de las principales desventajas de Snort es que no cuenta con una interfaz gráfica
administrable, por ende, no es fácil de administrar. Pero, existen herramientas opensource
que pueden compensar eso, como Snorby o Squil.
2.2.4.2 Suricata
“Podríamos decir que la única razón para no utilizar Snort es estar utilizando
Suricata. Aunque se trata de una herramienta IDS de arquitectura distinta, se comporta de la
misma manera que Snort y usa las mismas firmas.” (Márquez, 2017, p. 3).
28
“Multi-hilo: Snort se ejecuta en modo uni-hilo y por tanto solo puede aprovechar un
núcleo de la CPU al mismo tiempo. Suricata aprovecha los procesadores multi-
núcleo y multi-threading. Existen benchmarks que demuestran una considerable
diferencia de rendimiento” (Márquez, 2017, p. 4).
“Aceleración mediante hardware: es posible utilizar tarjetas gráficas para
inspeccionar tráfico de red” (Márquez, 2017, p. 4).
“Extracción de ficheros: si alguien se descarga malware en nuestro entorno, es
posible capturarlo y estudiarlo desde Suricata” (Márquez, 2017, p. 4).
“LuaJIT: nos proporcionará el poder que nos falta mediante scripting, pudiendo
combinar varias reglas, para buscar elementos con mayor eficiencia” (Márquez,
2017, p. 4).
“Más que paquetes: Suricata no solo es capaz de analizar paquetes, también puede
revisar los certificados TLS/SSL, peticiones DNS, solicitudes HTT” (Márquez,
2017, p. 4).
Al igual que Snort, Suricata depende de los estándares y, a pesar de que ofrece
similitud con las reglas de Snort, también presentó diferentes cadenas, que se compara con
el límite hipotético de las pautas más en los sistemas más rápidos, en los volúmenes de
tráfico. Más enorme, en un equipo similar, (Márquez, 2017, p. 4).
2.2.4.3 Bro
Si bien Bro puede ser utilizado como un IDS tradicional, los usuarios usan Bro con
más frecuencia para registrar el comportamiento detallado de la red. Por ejemplo, se puede
usar para mantener registros a largo plazo de todas las solicitudes y resultados HTTP, o
tablas que correlacionan direcciones MAC e IP.
29
2.2.4.4 Kismet (Wireless)
WIDS encontrará, por ejemplo, Puntos de entrada falsos o simulados (Rogue AP)
que inclusive podrían ser creados sin malicia por un empleado de la compańía, abriendo una
grieta en la red. En cualquier caso, si nuestra red dispone de repetidores y puntos de entrada
WiFi, es espléndido para impedir intentos de substitución de nuestra SSID/Mac y por
consiguiente, impedir ataques MiTM (Márquez, 2017, p. 3).
30
Gestión de Stonesoft. La carpeta de productos se diferencia a través de tecnologías únicas
de concurrencia y armonía de carga basadas en la tecnología más antigua StoneBeat de la
compañía, desarrollada originalmente para Check Point FireWall-1. (Forcepoint, 2018, p.
5).
Cisco Sourcefire recibe nuevas reglas de política y firmas cada dos horas, por lo que
su seguridad está siempre actualizada. Cisco Talos aprovecha la red de detección de
amenazas más inmensa del mundo para ofrecer efectividad de seguridad a cada producto de
seguridad de Cisco. Este alcance de amenazas líder en la competencia funciona como un
sistema de alerta temprana que se actualiza frecuentemente para detectar nuevas amenazas
(Cisco, 2018, p. 7).
La seguridad perimetral que protege tus redes debe cumplir cuatro funciones básicas:
31
Resistir a los ataques externos.
Identificar los ataques sufridos y alertar de ellos.
Aislar y segmentar los distintos servicios y sistemas en función de su exposición a
ataques.
Filtrar y bloquear el tráfico, permitiendo únicamente aquel que sea absolutamente
necesario (accensit, 2016).
“Las herramientas que hay en la seguridad perimetral son los cortafuegos, los sistemas
detección y prevención de intrusos, honeypots, pasarelas, antivirus y antispam.” (accensit,
2016, p. 4).
Una de las ventajas de este sistema es que puede trabajar como sniffer podemos
visualizar en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico, lista
de paquetes, permite almacenar en un archivo los logs para su posterior análisis, un examen
offline o como un IDS estándar en este caso NIDS. Cuando un paquete coincide con algún
patrón establecido en las reglas de configuración, así se sabe cuándo, de dónde y cómo se
produjo el ataque (Ortego Delgado, 2017, p. 8).
32
Hyperscan, los patrones rápidos de expresiones regulares hacen que las reglas sean
más rápidas y más precisas.
HTTP: Se tiene un inspector de HTTP nuevo y con estado que actualmente maneja
el 99 por ciento de los casos de HTTP Evader, y pronto se cubrirán todos. También
hay muchas características nuevas, incluyendo nuevas opciones de reglas. El soporte
HTTP / 2 que está en desarrollo.
Rendimiento: Se mejoró sustancialmente el rendimiento de la inspección profunda
de paquetes. Snort 3 es compatible con múltiples subprocesos de procesamiento de
paquetes, y se escala de forma lineal con una cantidad de memoria mucho menor
requerida para configuraciones compartidas, como los motores de reglas.
Registro de eventos JSON: se pueden utilizar para integrarse con herramientas
como Elastic Stack.
Complementos: Snort 3 fue diseñado para ser extensible y hay más de 225
complementos de varios tipos. Es fácil agregar su propio códec, inspector, acción de
regla, opción de regla o registrador. Las reglas de SO son complementos también, y
es mucho más fácil agregar los que queremos usar.
Tabla 1.
Comparación de snort con otros IDS open source
Características Bro Snort Suricata
Multi-hilo No Si Si
Soporte para IPv6 Si Si Si
Ip reputación Algo Si Si
Detección automática de protocolos Si Si Si
Aceleración con GPU No Si Si
Variables globales Si Si Si
GeoIP Si Si Si
Análisis Avanzado de HTTP Si Si Si
Login de acceso para HTTP Si Si Si
Login de acceso para SMB Si Si Si
Fuente: Alegria (2016).
33
2.2.7.1 Arquitectura de snort
Snort IDS permite monitorear todos los paquetes que atraviesan la red en la cual se
ha instalado. Estos paquetes son analizados y es posible establecer qué acciones se llevarán
a cabo a partir de reglas. La postura de Snort se establece a partir de un registro de
configuración que responde al nombre de snort.conf. En este registro se especifican las
distintas opciones que delimitan cómo se comportará Snort y de qué manera trabajará. De
este modo, para iniciar snort en modo promiscuo y empezar a ver los paquetes por consola,
se debe ejecutar el siguiente comando: snort –v –o [interfaz]. Una vez que snort ya se está
ejecutando, podrá visualizarse en la consola todas aquellas actividades que ocurran a nivel
de red previa configuración hecha (Cotoira, 2014).
34
2.2.7.3 Snort IPS
Esta labor utiliza la solución de código abierto Snort para permitir IPS e IDS. Snort
realiza las siguientes acciones:
Sensor de snort: controla el tráfico para detectar anomalías según las políticas de
seguridad configuradas (que, incluyendo las firmas, estadísticas, análisis de
protocolo, etc.) y envía mensajes de alerta a Alert / Reporting servidor. El sensor
Snort se implementa como un servicio de contenedor virtual en el enrutador.
Almacén de firmas: aloja los paquetes de firmas de Cisco que se actualizan
periódicamente. Los paquetes se descargan a los sensores ya sea periódicamente o a
pedido. Paquetes de firmas validados se publican en Cisco.com. Según la
configuración, los paquetes de firmas se pueden descargar desde Cisco.com.
Las reglas o firmas son los modelos que se buscan internamente en los paquetes de
datos. Las reglas de Snort son utilizadas por el motor de detección para examinar los
paquetes recibidos y generar las alertas en caso de existir similitud entre el contenido de los
paquetes y las firmas. El archivo snort.conf permite añadir o eliminar clases enteras de
reglas. Se pueden desactivar toda una categoría de reglas comentando la línea de la misma
o bien algunas que veamos que no son necesarias (Roesch, 2012).
35
2.2.7.5 Categoría de reglas
Hay cuatro categorías de reglas para estimar un paquete. Donde se especifica dicha
regla especifica o una establecida por Snort. Estas cuatro categorías están divididas a su vez
en dos grupos, las que tienen contenido y las que no tienen contenido. Hay reglas de
protocolo, reglas de contenido genéricas, reglas de paquetes mal formados y reglas IP.
Reglas de Protocolo. Las reglas de protocolo son reglas las cuales son dependientes
del protocolo que se está analizando, por ejemplo, en el protocolo Http está la palabra
reservada uricontent.
Reglas de Contenido Genéricas. Este tipo de reglas permite especificar patrones para
buscar en el campo de datos del paquete, los patrones de búsqueda pueden ser
binarios o en modo ASCII, esto es muy útil para buscar exploits los cuales suelen
terminar en cadenas de tipo “/bin/sh”.
Reglas de Paquetes Malformados. Este tipo de reglas especifica características sobre
los paquetes, concretamente sobre sus cabeceras las cuales indican que se está
produciendo algún tipo de anomalía, este tipo de reglas no miran en el contenido ya
que primero se comprueban las cabeceras en busca de incoherencias u otro tipo de
anomalía.
Reglas IP. Este tipo de reglas se aplican directamente sobre la capa IP, y son
comprobadas para cada datagrama IP, si el datagrama luego es Tcp, Udp o Icmp se
realizará un análisis del datagrama con su correspondiente capa de protocolo, este
tipo de reglas analiza con contenido y sin él Roesch (2012, p .15).
En una forma básica, una regla de Snort está compuesta en dos partes qu son
encabezado y opciones
36
2.2.7.7 Cabecera de una regla
Tabla 2.
Estructura de cabecera regla en snort.
Estructura de la cabecera de una regla snort
Acción Protocolo Red origen Puerto Dirección Red destino Puerto
origen destino
Alert Tcp $EXTERNARL_NET Any -> $HOME_NET 53
Fuente: Roesch (2012).
37
pass: Ignora el paquete.
activate: Alerta y luego activa otra regla dinámica.
dynamic: Permanece ocioso hasta que se active una regla, entonces actúa como
un inspector de reglas Roesch (2012).
Las opciones están separadas entre sí, por (;) y las claves de las opciones están
separadas por (:). Hay cuatro tipos de opciones:
msg. Informa al motor de alerta que mensaje debe de mostrar. Los caracteres
especiales de las reglas como: y; deben de colocarse dentro de la opción msg con el
carácter \.
flow. Se usa junto con los flujos TCP, para indicar qué reglas deberían de aplicarse
sólo a ciertos tipos de tráfico.
content. Permite que Snort realice una búsqueda sensitiva para un contenido
específico del payload del paquete.
referente. Define un enlace a sistemas de identificación de ataques externos, como
bugtraq, con id 788.
classtype. Indica qué tipo de ataques intentó el paquete. La opción classtype, usa las
classifications definidas en el archivo de configuración de Snort y que se encuentran
en archivos como classification.config.
La sintaxis del classification.config es:
<nombre_clase>, <descripción_clase >, <priorididad_por_defecto >.
38
La prioridad es un valor entero, normalmente 1 para prioridad alta, 2 para media y 3
para baja.
La opción classification para el attempted-admin que aparece en
classification.config, es la siguiente:
config classification: attempted-admin Administrator Privilege Gain,1
La opción sid, en combinación con la opción rev, unicamente identifica una regla
Snort, correlacionando el ID de la regla individual con la revisión de la regla.
(Roesch, 2012).
Nos encontramos en un tiempo en el cual, cada vez que pasa, se descubren nuevas
vulnerabilidades con respecto al software, y quizás alguien con malas intenciones intente
aprovecharse de los fallos encontrados, para hacer un nuevo tipo de ataque y que nuestros
sistemas informáticos de seguridad no se percaten de dicha intrusión para de esa manera
evadir nuestra seguridad. PulledPork es un script escrito en Perl que descarga, combina,
instala y actualiza conjuntos de reglas de varios sitios que serán usados por el IDS Snort.
Mediante un Oinkcode que se adquiere al registrase en la página oficial de snort
gratuitamente podremos adquirir una gran cantidad de reglas para nuestro sistema. (Llopis,
2017).
39
2.2.10 Mysql
MySQL es la base de datos de código abierto más famosa de los clientes. Gracias a
su beneficio probado, a su fiabilidad y a su facilidad de uso, MySQL se ha transformado en
la base de datos líder elegida para las aplicaciones basadas en web y utilizada por
propiedades web de perfil alto, como Facebook, Twitter, YouTube y los cinco sitios web
principales. (Oracle, 2015).
Las interfaces web nos sirven para poder administrar de una manera más amigable y
más entendible el tráfico de la red. Snort cuenta con GUIs que puede usar para visualizar el
tráfico, mencionaremos algunos de ellos:
2.2.12 Pentesting
2.2.13 DDoS
Existen varios tipos de ataques DDoS, mencionaremos cuales son los más
conocidos/comunes.
41
no pueden combinarse y el servidor debe reaccionar a la solicitud diciendo que
objetivo no es accesible (Servidorinfo, 2018, p. 6).
Inundación del DNS. Otro ataque que ve a un servidor individual lesionado se ve
obstaculizado por solicitudes que parecen ser genuinas. En una inundación de DNS,
el servidor DNS está asediado por demandas UDP. Un servidor de marco de nombres
de área o DNS se encarga de realizar una interpretación del nombre del espacio a su
dirección IP para que su dispositivo pueda alcanzar ese espacio a través de Internet,
de modo que cuando un servidor DNS se encuentre con la gestión de las falsas
demandas de una inundación de DNS, no tiene recursos accesibles para dirigir a
clientes reales al sitio al que intentan acceder (Servidorinfo, 2018, p. 6).
Inundación HTTP. Es una especie de asalto DDoS que incluye enviar solicitudes
HTTP a un servidor que requiere que el servidor asigne la mayor medida de activos
a su reacción. Estas solicitudes son frecuentemente demandas HTTP-POST que son
demandas de sustancias dinámicas que deben ser producidas por el servidor. Los
agresores completan regularmente un pequeño compromiso con su objetivo en una
inundación de HTTP para determinar qué activos o sustancias requieren la
preparación más seria del servidor, de esta manera gastando la mayor parte de los
activos en cada solicitud (Servidorinfo, 2018, p. 6).
SYN flood. En este tipo de inundación, un sistema bot de asalto llega al
desafortunado servidor de víctimas con una enorme cantidad de solicitudes o
sincronización SYN, la fase inicial en la configuración de una asociación entre el
programa y el servidor del sitio. El servidor en ese punto reacciona a las demandas
de SYN con el SYN-ACK normal, dejando un puerto abierto para cada una de las
solicitudes. El programa o el lado asaltante nunca reacciona a estas reacciones,
dejando los puertos abiertos mientras el servidor lucha para mantenerse al tanto del
número considerable de respuestas que necesita enviar, sin dejar nada para los
clientes reales, (Servidorinfo, 2018, p. 6).
Amplificación DNS. No confunda esto con una inundación de DNS. En la
amplificación de DNS, los atacantes envían solicitudes a varios solucionadores de
DNS disponibles públicamente, con solicitudes falsificadas para que parezca que
provienen de la víctima. Todos los solucionadores de DNS responden a las
solicitudes utilizando la IP de la víctima, golpeándola con un gran número de
respuestas a la vez. Esto se denomina ataque de reflexión y se puede amplificar
42
(como sugiere su nombre) mediante el envío de pequeñas solicitudes que requieren
grandes respuestas de los resolutores de DNS, (Servidorinfo, 2018, p. 6).
Amplificación NTP. Los servidores NTP son servidores comunitarios que permiten
que los dispositivos asociados con Internet sincronicen sus cronometradores. Estos
servidores también permiten demandas de datos sobre los últimos 600 hosts
asociados con el servidor. Los agresores hacen un mal uso de esto al enviar estas
solicitudes desde una IP falsa, por lo que da la impresión de que se originó en la
persona en cuestión, lo que hace que los servidores NTP reaccionen con estos
registros gigantescos, que dominan los activos del servidor (Servidorinfo, 2018, p.
6).
43
Elementos o fases para la implementación de un SGSI. El Sistema de Gestión de La
Seguridad de la Información que propone la Norma ISO 27001 se puede resumir en las
siguientes fases que se detallan en la figura 4.
En diferentes eventos, hemos discutido los controles del sistema que dependen del
estándar ISO 27001, ya que hemos discutido los servidores de seguridad y la desagregación
del sistema. A pesar del hecho de que estas alternativas mejoran la seguridad del sistema,
crean un impacto básico: los controles identificados con la periferia, que no pueden disparar
en las ocasiones que ocurren dentro de las zonas de aseguramiento, (SGSI, 2016).
“Para mejorar la eficiencia del NIDS, una empresa debe tener en cuenta que el NIDS
se colocará en la red, y debe conocer todos los métodos de evaluación de tráfico y los modos
en los que se utilizarán. La norma ISO 27001 es una gran aliada en este tema.” (SGSI, 2016).
44
Un NIDS debe configurarse en un punto donde pueda controlar el tráfico hacia y
desde todos los dispositivos en el sistema. Algunos lugares propuestos son cortafuegos y
servidores básicos. Debe transmitirse un NIDS para distinguir las interrupciones más
ampliamente reconocidas. Con respecto a los servidores, un NIDS puesto allí puede ofrecer
la ventaja de los ejemplos de tráfico explícitos para configurar sus configuraciones y
distinguir incluso las interrupciones más discretas, (SGSI, 2016).
2.3.1 IDS
Según Tiwari (2011) “IDS es una evolución que mejora la seguridad de la red. Y
salvaguarda los datos de la organización. El IDS ayuda al administrador de la red para
detectar cualquier actividad maliciosa en la red y alerta al administrador para obtener los
datos seguros tomando las acciones apropiadas contra esos ataques. Una intrusión se refiere
a cualquier acceso no autorizado o malicioso utilizando los recursos de información. Un
intruso o un atacante es una entidad del mundo real que trata de encontrar un medio para
ganar el acceso no autorizado a la información, causando daños o participando en otras
actividades maliciosas.”
2.3.2 IPS
Según Roesch (2010) “El término Sistema de Prevención de Intrusión IPS, es usado
para combinar o unificar los conceptos de sistema de detección y de sistema de prevención.
Es importante tener en cuenta que la definición sólo se ajusta a ataques conocidos. Así pues,
un sistema de prevención de intrusos inline o de red es cualquier dispositivo de hardware o
software que tiene la capacidad de detectar y prevenir ataques conocidos.”
2.3.3 Snort
45
ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier
anomalía previamente definida como patrones.”
Snort es uno de los motores más usados en cuanto a detección de intrusos y trabaja
bajo licencia GPL, es gratuito y está disponible para las plataformas Windows y GNU/Linux.
2.3.4 Barnyard2
Según Belda (2011) “Barnyard2 es una herramienta para procesar ficheros Unified2
que permite múltiples configuraciones de salida; la más utilizada, la escritura en Base de
datos.”
Barnyard2 es un intérprete para las alertas que va recopilando snort, nos ayuda a
convertir las alertas en un lenguaje legible para que se pueda almacenar en una base de datos
MySQL. Una vez guardada en base de datos ya podemos hacer diferentes estudios de las
alertas que se tienen tanto en días, horas, meses o años.
2.3.5 PulledPork
Según Llopis (2017) “PulledPork es un script escrito en Perl que descarga, combina,
instala y actualiza conjuntos de reglas de varios sitios que serán usados por el IDS Snort.”
2.3.6 Snorby
Snorby es una aplicación web de Ruby on Rails para la seguridad del sistema que se
interconecta con los marcos de identificación de interloper convencionales actuales (Snort,
Suricata y Sagan). Las ideas esenciales que impulsan a Snorby son la facilidad, la asociación
y el poder. Snorby es una aplicación gratuita, de código abierto y muy enfocado para la
observación de sistemas para uso privado y comercial.
46
marcos que procesan. La norma ISO 27001: 2013 para Sistemas de Gestión de Seguridad de
la Información permite a las asociaciones estudiar el peligro y aplicar los controles
fundamentales para aliviarlos o eliminarlos.
47
CAPÍTULO III. Materiales y métodos
3.2 Materiales
Recursos Humanos: Jefe de proyecto, Jefe de redes del departamento de DTI, Jefe
de Servidores del departamento de DTI.
Tabla 3
Materiales, software y hardware
Software y hardware Cantidad
PC o Laptop - Capacidades básicas 1
S.O. Kali Linux 64bits 1
S.O. Windows (Con licencia) 64 bits 1
Tarjetas de red Intel 4
Servidor - Dell Xeon - 16 GB Ram 1
S.O. Ubuntu Server 16.04 1
Ssh Putty 1
Internet -
Electricidad -
USB 1
PulledPork -
Barnyard2 -
VMware Esxi 6.5 -
Mysql -
Snorby -
Otros gastos
Fuente: Elaboracion propia, (2018).
48
3.3 Metodología
49
Basado en la norma ISO 27001, donde nos recomienda colocar el IDS en un punto donde pueda monitorizar el tráfico. Y cumpliento las 4
etapas de planificar, implementar, medir y mejorar.
50
3.3.3 Diseño de la implementación con la metodología de la investigación
3.3.4.1 Planear
Se estableció el objetivo del análisis y diseño de las reglas según las amenazas más
frecuentes mostrados por el fortigate, para mejorar la seguridad de la información de la
organización, como también la evaluación de reglas globales existentes para el monitoreo
del tráfico.
3.3.4.2 Implementar
51
3.3.4.2.2 Módulo de configuración de snort en modo NIDS
Para la instalación de Snort se necesitó ciertos requisitos previos para que Snort
pueda funcionar correctamente. Fueron necesarias las librerías (libpcap-dev), (libpcre3-dev)
y (libdumbnet-dev). De igual manera se necesitó hacer uso de snort DAQ que es la biblioteca
de adquisición de datos para snort.
Para que snort pueda iniciarse junto con el S.O. se procedió a crear un archivo
demonio indicando los parámetros y la interfaz de red que se va a escanear.
Para la configuración de snort en modo IPS o dicho de otro modo en modo inline el
cual se trabajó con afpacket, es necesario instalar la librería de NFQ una vez ya instalada
dicha libreria se procedio a instalar configurar el archivo snort.conf, es muy importante
ingresar las líneas: config daq = afpacket y config daq_mode = inline, de esta manera le
estamos diciendo a snort que corra en modo IPS.
Para snort en modo IPS tenemos ciertas acciones adicionales para las reglas estas
son:
Para poder usar Barnyard2 es necesario instalar algunas librerías como libtool e
instalar mysql. Se procedió a configurar barnyard2.conf para ingresar el usuario la
contraseña y el nombre de la base de datos. Como también se cambió el permiso de lectura
52
de dicho archivo. Como anteriormente se mencionó que Barnyard2 nos ayuda en la
optimización de recursos, se optó por usar Barnyard2 y crear una base de datos llamada snort
para que todo el tráfico encontrado se pueda almacenar en la base de datos mysql y de esa
manera ver, buscar y perfilar eventos.
Para que barnyard2 pueda cargar los datos en la base datos se procedió a configurar
un archivo demonio que pueda iniciarse junto con el S.O.
Al instalar snort viene con algunas reglas por defecto de instalación y ya que nosotros
no quisimos usar esas reglas optamos por usar pulledpork y para poder adquirir esas reglas
se necesitó adquirir un oinkcode creándonos una cuenta en la página oficial de snort. Y de
esa manera obtuvimos una mayor cantidad de reglas como también de la comunidad de snort,
para poder hacer uso de estas reglas se procedió a configurar el archivo pulledpork.conf e
introducir el oinkcode y editando algunas líneas que son necesarias para el funcionamiento
de la descarga de pulledpork. Una vez terminada la configuración para pulledpork, no se
creó un archivo demonio si no, se procedió a crear un crontab para que a diario pueda obtener
las reglas.
Para poder instalar snorby fue necesario la instalación de apache y ruby en la versión
2.3 como también de algunas gemas necesarias como bundler, rails y rake. Para que snorby
pueda conectarse a la base de datos se procedió a crear una base de datos con el nombre
snorby y una contraseña una vez creado nuestra base de datos se procedió a configurar el
archivo database.yml estando en ese archivo se introdujo el usuario y la contraseña de la
base de datos creada. Se instaló el módulo phusion passenger que es un servidor de
aplicaciones para apache y de esa manera lanzar snorby.
Se configuró el módulo passenger y se creó el sitio web para snorby poniendo snorby
en el puerto 80, para que snorby pueda conectarse a nuestra base de datos de barnyard2 se
configuro el archivo barnyard2.conf e introducir la base de datos el cual se almacena el
trafico guardado.
53
De igual manera se procedió a crear un demonio para que pueda iniciarse cuando el
S.O. encienda. Una vez configurado todo y entrando en la interfaz web se procedió a crear
un usuario y contraseña para el logueo en snorby.
3.3.4.3 Medir
Se estableció el objetivo del monitoreo y el análisis del tráfico de datos mediante los
reportes que snorby nos brinda a través de la interfaz web.
3.3.4.4 Mejorar
54
CAPÍTULO IV. Desarrollo del sistema
Para la primera fase de nuestra metodología tendremos el análisis de las reglas según
los reportes del tráfico malicioso del equipo fortigate que la Universidad Peruana Unión –
Juliaca cuenta. Una vez analizada vemos que en la categoría de tráfico malicioso tenemos
como sitios web maliciosos, ataques de inyección como también evadir el control del
firewall entre otros. Anexo C - H. viendo este reporte empezamos a investigar qué tipo de
reglas son las que pueden bloquear este tipo de tráfico malicioso. Nos guiamos de Quadrant
(2019) para las reglas propuestas.
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Not Suspicious
Traffic"; program: snort; content: "Classification|3a| Not Suspicious Traffic"; classtype: not-
suspicious; normalize; sid: 5000976; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Bad Traffic";
program: snort; content: "Classification|3a| Bad Traffic"; classtype: bad-unknown;
normalize; sid: 5000978; rev:5;)
55
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Large Scale
Information Leak"; program: snort; content: "Classification|3a| Large Scale Information
Leak"; classtype: successful-recon-largescale; xbits: set,recon,track ip_src, expire 86400;
normalize; sid: 5000981; rev:6;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Attempted Denial
of Service"; program: snort; content: "Classification|3a| Attempted Denial of Service";
classtype: attempted-dos; normalize; sid: 5000982; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Attempted User
Privilege Gain"; program: snort; content: "Classification|3a| Attempted User Privilege
Gain"; classtype: attempted-user; normalize; sid: 5000984; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Successful User
Privilege Gain"; program: snort; content: "Classification|3a| Successful User Privilege
Gain"; classtype: successful-user; normalize; sid: 5000986; rev:5;)
56
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Decode of an RPC
Query"; program: snort; content: "Classification|3a| Decode of an RPC Query"; classtype:
rpc-portmap-decode; normalize; sid: 5000989; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Executable code
was detected"; program: snort; content: "Classification|3a| Executable code was detected";
classtype: shellcode-detect; normalize; sid: 5000990; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] A system call was
detected"; program: snort; content: "Classification|3a| A system call was detected";
classtype: system-call-detect; normalize; sid: 5000995; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] A TCP connection
was detected"; program: snort; content: "Classification|3a| A TCP connection was detected";
classtype: tcp-connection; normalize; sid: 5000996; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] A Network Trojan
was detected"; program: snort; content: "Classification|3a| A Network Trojan was detected";
classtype: trojan-activity; normalize; sid: 5000997; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] A client was using
an unusual port"; program: snort; content: "Classification|3a| A client was using an unusual
port"; classtype: unusual-client-port-connection; normalize; sid: 5000998; rev:5;)
57
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Detection of a
Network Scan"; program: snort; content: "Classification: Detection of a Network Scan";
classtype: network-scan; normalize; sid: 5000999; rev:5;)
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Suspected TCP injection";
flow:to_client; window:1; fragbits:!D;sid:1000000; rev:2;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Generic Protocol
Command Decode"; program: snort; content: "Classification|3a| Generic Protocol Command
Decode"; classtype: protocol-command-decode; normalize; sid: 5001002; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Web Application
Attack"; program: snort; content: "Classification|3a| Web Application Attack"; classtype:
web-application-activity; normalize; sid: 5001004; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Misc activity";
program: snort; content: "Classification|3a| Misc activity"; classtype: misc-activity;
normalize; sid: 5001005; rev:5;)
58
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Misc Attack";
program: snort; content: "Classification|3a| Misc Attack"; classtype: misc-attack; normalize;
sid: 5001006; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Generic ICMP
event"; program: snort; content: "Classification: Generic ICMP event"; classtype: icmp-
event; normalize; sid: 5001007; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] SCORE! Get the
lotion! [Porn]"; program: snort; content: "Classification|3a| SCORE! Get the lotion!";
classtype: kickass-porn; normalize; sid: 5001008; rev:5;)
alert any $EXTERNAL_NET any -> $HOME_NET any (msg:"[SNORT] Attempt to login
by a default username and password"; program: snort; content: "Classification|3a| Attempt
to login by a default username and password"; classtype: default-login-attempt; normalize;
sid: 5001010; rev:5;)
En cuanto al S.O. se instaló el S.O. Ubuntu Server 16.04 se inició con la selección
de nuestro archivo ISO y se procedió con la instalación. Tal como nos muestra en la Figura
7.
59
Figura 6. Configuración del servidor en VMware
Fuente: Elaboración propia (2018).
60
Se usó Update para ver que el sistema este actualizado y se instaló openssh para poder
usar el sistema de forma remota y por último se reinició nuestro sistema para que los cambios
surtan efecto.
Se configuro la tarjeta de red ya que por defecto al instalarse viene con la descarga
de recepción grande (GRO) y genérica (LRO) si estas características están habilitadas puede
que cause algún tipo de problema en la configuración de nuestro IDS/IPS Snort, para poder
desactivar el GRO y LRO se hizo uso del comando ethtool: sudo apt-get install –y ethtool
una vez instalada se hizo la desactivación respectiva en el archivo /etc/network/interfaces de
nuestra red correspondiente. Tal como nos muestra la Figura 8.
61
Figura 9. Generic y Large desactivadas.
Fuente: Elaboración propia (2018).
Para la instalación de Snort se necesitó ciertos requisitos previos para que Snort
pueda funcionar correctamente. Fueron necesarias las librerías (libpcap-dev), (libpcre3-dev)
y (libdumbnet-dev). Tal como nos muestra la Figura 10.
Para poder trabajar de una manera más ordenada y tener todos nuestros paquetes de
instalación de un solo lugar se creó una carpeta llamada snort_src, para poder hacer uso de
Snort DAQ que es la biblioteca de adquisición de datos se instaló un requisito previo: sudo
62
apt-get install –y bison flex una vez instalada se procedió con la descarga e instalación de
SnortDAQ de su última versión 2.0.6 de la página oficial de snort.org. Tal como nos muestra
la Figura 11.
cd ~/snort_src
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
tar -xvzf daq-2.0.6.tar.gz
cd daq-2.0.6
./configure
make
sudo make install
63
Figura 12. Requisitos Adicionales para configurar Snort.
Fuente: Elaboración propia (2018).
cd ~/snort_src
wget https://snort.org/downloads/snort/snort-2.9.12.tar.gz
tar -xvzf snort-2.9.12.tar.gz
cd snort-2.9.12
./configure --enable-sourcefire
make
sudo make install
64
Figura 13. Descarga de snort 2.9.12.
Fuente: Elaboración propia (2018).
Una vez instalado Snort se ejecutó el siguiente comando para para actualizar las
bibliotecas compartidas: sudo ldconfig y realizo un enlace simbólico al binario Snort: sudo
ln -s /usr/local/bin/snort /usr/sbin/snort.
Para ver que Snort se ha instalado correctamente se usó el comando snort –v. Tal
como nos muestra en la Figura 14.
65
4.5 Configuración de snort en modo NIDS
66
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules
cd ~/snort_src/snort-2.9.8.2/etc/
Al ya tener instalado Snort y el cual lleva consigo las reglas que se instalan por
defecto, se optó por comentar dichas reglas ya que se uso PulledPork para administrar
67
nuestro conjunto de reglas, editando el archivo principal snort.conf con el siguiente
comando: Sudo sed -i "s/include \$RULE\_PATH/#include \$RULE\_PATH/"
/etc/snort/snort.conf
Al realizar este comando lo que se hizo fue comentar todas las palabras que conllevan
"s/include \$RULE\_PATH/#include \$RULE\_PATH/" el cual son las reglas instaladas por
defecto. Se cambió manualmente algunas configuraciones en el archivo principal snort.conf.
Cambiando la siguiente línea ipvar HOME_NET any. Por ipvar HOME_NET
192.168.96.0/24 que es nuestra red principal. Tal como nos muestra la Figura 16.
68
También habilitamos la línea include $RULE_PATH/local.rules para facilitar las
pruebas de Snort. Figura 18.
Una vez que ya terminamos de configurar todo se usamos el siguiente comando para
verificar que nuestro archivo snort.conf está configurado correctamente: sudo snort -T -i
ens160 -c /etc/snort/snort.conf para ver que todos los archivos necesarios estén correctos.
Figura 19.
Para ver que que snort ya detecta intrusos escribimos una simple regla, se editó el
archivo /etc/snort/rules/local.rules y se definió una regla. Figura 20.
69
Figura 20. Regla de Ping desde otra máquina hacia Snort.
Fuente: Elaboración propia (2018).
Como se trabajó con Barnyard2 y Barnyard2 no lee la meta información de las alertas
del archivo local.rules, entonces al agregar nuevas reglas generara errores con PulledPork
entonces se configuro el archivo /etc/snort/sid-msg.map para que pueda agregar las reglas
correctamente. Figura 21.
70
Ahora para probar que Snort en verdad hizo su trabajo se ejecutó snort con el
siguiente comando: Figura 23. sudo /usr/local/bin/snort -A console -q -u snort -g snort -c
/etc/snort/snort.conf -i ens160
Vemos que al ejecutar Snort no nos mostró nada, sin embargo, al realizar un ping a
nuestro servidor desde otra máquina vimos que Snort si analiza los paquetes según la regla
previamente puesta. Figura 24.
Para poner snort en modo IPS debemos de volver a compilar el DAQ la razón es
porque al instalar en modo NIDS no instala el paquete NFQ que es necesario para que snort
pueda funcionar en modo IPS. Instalaremos esta librerías adicionales sudo apt-get install -y
71
libnghttp2-dev para el funcionamiento de IPS también instalaremos el paquete faltante de
NFQ, con el siguiente comando sudo apt-get install libnetfilter-queue-dev, nos dirigimos al
directorio de daq y volvemos a ejecutar el comando sudo ./configure ahora veremos que ya
tenemos instalado el paquete NFQ. Figura 25.
72
Figura 26. Configuración modo IPS.
Fuente: Elaboración propia (2018).
Como estamos trabajando con afpacket en la configuración de snort para iniciar snort
se ejecuta mencionando 2 interfaces graficas a escuchar como en el siguiente comando:
El IDS snort requiere de muchos recursos para realizar los eventos para que el usuario
pueda ver, ya que al realizar el monitoreo del tráfico de la red snort almacena toda esa
información en archivos log entonces para optimizar estas operaciones haremos uso de
Barnyard2 para que pueda almacenar toda esa información en una base de datos MYSQL
para de esa manera poder ver, buscar y perfilar los eventos, entonces ahora configuraremos
snort para que genere eventos en formato binario en un solo lugar para que de esa manera
Barnyard2 lea los eventos y los guarde en nuestra base de datos MySQL. Requisitos que se
instaló para la utilización de Barnyard2. Figura 27.
73
Figura 27. Requisitos para instalar Barnyard2.
Fuente: Elaboración propia (2018).
Una vez se instaló los requisitos para Barnyard2 se indicó a Snort que debe permitir
emitir sus alertas en formato binario para que Barnyard2 pueda procesarlo se edito el archivo
/etc/snort/snort.conf y se introdujo la siguiente línea: output unified2: filename snort.u2,
limit 128. Figura 28.
74
Figura 29. Descargando e instalando Barnyard2.
Fuente: Elaboración propia (2018).
Barnyard2 necesita hacer uso de la biblioteca dnet.h asi que se creó un enlace flexible
de dnet.h a dubdnet.h para evitar problemas se utilizó el siguiente comando:
sudo ldconfig
Una vez realizado eso se indicó la instalación de la biblioteca MySql con el siguiente
comando:
Make
Make install
75
Figura 30. Copiar y crear archivos para el funcionamiento de Barnyard2.
Fuente: Elaboración propia (2018).
Ya que Barnyard2 guarda nuestras alertas en nuestra base de datos MySql se procedió
a crear la base de datos snort, generar tablas y crear usuario. Figura 31,32 y 33.
76
Figura 33. Creando usuario y contraseña.
Fuente: Elaboración propia (2018).
Ahora para que Barnayard2 pueda conectarse a la base de datos MySql se edito el
archivo /etc/snort/barnyard2.conf y se introdujo al final del archivo la siguiente línea:
77
Para ver que Barnyard2 se instaló y configuro correctamente se introdujo el siguiente
comando: Figura 35.
Para verificar los eventos en la base de datos y ver que Barnyard2 en verdad escribió
los eventos se introdujo el siguiente comando: mysql -u snort -p -D snort -e "select count(*)
from event".
Utilizaremos las reglas que nos brindan al tener una cuenta en snort.org y haremos
uso de nuestro Oinkcode.
78
Descargamos nuestras reglas con nuestro respectivo Oinkcode y editaremos el
archivo pulledpork.conf que se encuentra en sudo nano /etc/snort/pulledpork.conf. Como
nos muestra en la figura 37.
Veremos que ya tenemos más de 60000 reglas descargadas el cual daremos uso para
monitorear todo el tráfico de la red de la Universidad Peruana Unión – FJ. Figura 38.
79
Figura 38. Reglas descargadas con el oinkcode.
Fuente: Elaboración propia
Ahora que ya descargo satisfactoriamente las reglas se debio haber creado un archivo
llamado snort.rules dentro de la carpeta /etc/snort/rules/snort.rules es en ese archivo donde
se guardaron todas las reglas descargadas, ya que ahora tenemos un nuevo archivo debemos
editar nuestra configuración de snort y decirle que use estas reglas, realizamos esto abriendo
el archivo de configuración de snort /etc/snort/snort.conf. Figura 39.
80
Figura 39. Incluyendo el archivo de reglas en snort.conf.
Fuente: Elaboración propia (2018).
81
Figura 40. Configurando crontab para pulledpork.
Fuente: Elaboración propia (2018).
Ahora ya tenemos todo configurado sin embargo los sistemas no se están iniciando
solos, entonces crearemos los demonios para snort y para barnyard2 para que puedan iniciar
junto con el sistema operativo. Crearemos un archivo para el inicio de snort en la siguiente
dirección, sudo vim /lib/systemd/system/snort.service estando dentro de este archivo
pondremos lo siguiente: Figura 41.
Terminado de crear ejecutamos los siguientes comandos para decirle al systemD que
inicie en el arranque del sistema.
82
sudo systemctl enable snort
De igual manera configuramos este archivo para que inicie en el arranque del sistema.
Para poder tener una mejor visualización del monitoreo del tráfico de la red se optó
por configurar una interfaz web para snort. Para esta investigación se usó el GUI snorby
porque es una interfaz web un poco más amigable que los otros GUIs.
Para hacer uso de snorby se requieren ciertas librerías como requisito previo a la
instalación. Las librerías requeridas son las siguientes. Figura 43.
83
Figura 43. Librerias necesarias para snorby.
Fuente: Elaboración propia (2018).
Snorby utiliza Ruby on Rays para proporcionar una interfaz web, instalaremos ruby
en una versión específica para eso necesitamos instalar el repositorio Brightbox.
Una vez instalada el repositorio de Brightbox pasamos a descargar Ruby 2.3. Figura
44
Ya que ruby trabaja a base de gemas procederemos a descargar las gemas necesarias
para la instalación de snorby. Las gemas requeridas son las siguientes:
Una vez ya instalada las gemas iremos al repositorio de Git donde esta alojado snorby
y procederemos a descargar snorby git clone https://github.com/Snorby/snorby.git. Una vez
descargado snorby copiaremos el directorio snorby a nuestro directorio de servidor web con
84
el siguiente comando sudo cp -r ./snorby/ /var/www/snorby/. Ingresamos a l directorio
/var/www/snorby/. Una vez dentrol directorio ejecutaremos el comando sudo gem update –
system para que reconozca las gemas instaladas, ahora ingresamos el comando bundle install
para descargar las demás gemas necesarias para usar snorby. Figura 45.
85
Figura 46. Configuración para conexion a la base de datos.
Fuente: Elaboración propia (2018).
sudo cp /var/www/snorby/config/snorby_config.yml.example
/var/www/snorby/config/snorby_config.yml
86
Figura 47. Instalando snorby y creacion de db.
Fuente: Elaboración propia (2018).
Ahora editamos la base de datos para dar privilegios y crear un nuevo usuario. Figura
48.
Ahora que tenemos un nuevo usuario en mysql para snorby editamos el archivo
database.yml e introducimos nuestro usuario y contraseña. Figura 49.
87
Figura 49. Configuración de conexión a base de datos.
Fuente: Elaboración propia (2018).
88
Figura 51. Interfaz gráfica snorby.
Fuente: Elaboración propia (2018).
Antes instalaremos la clave PGP del pasajero y el soporte HTTPS. Con los siguientes
comandos
89
Una vez instalado passegner habilitamos el modulo apache y reiniciaremos:
90
Figura 53. Modulo passenger.
Fuente: Elaboración propia (2018).
Ahora crearemos el sitio web para snorby en la siguiente dirección: sudo nano
/etc/apache2/sites-available/snorby.conf ingresamos lo siguiente: Figura 54.
cd /etc/apache2/sites-available/
91
cd /etc/apache2/sites-enabled
92
Figura 56. Archivo daemon snorby.
Fuente: Elaboración propia (2018).
Ahora procedemos a ejecutar el script y decirle que se inicie junto con el arranque
del sistema.
Una vez ya terminado todo abriremos un navegador web e ingresamos la ruta para
iniciar snorby, en la parte del login el usuario y contraseña que nos da por defecto es user:
[email protected] pass: snorby, una vez ingresado procedemos a cambiar este usuario
y contraseña. Figura 57.
93
4.11 Monitoreando el tráfico de datos – Medición ISO 27001
Una vez logueado esperamos 10 min para que pueda cargarnos en la pantalla el
monitoreo del tráfico, terminado ese lapso de tiempo veremos que nos muestra los eventos
que suceden en la red monitoreada. Figura 58.
94
CAPÍTULO V. Resultados y discusión
Para la fase de planificación se analisó y diseñó las reglas según el trafico mostrado
por los reportes brindados del equipo fortigate el cual cuenta la Universidad Peruana Unón,
las reglas mas relevantes que se describieron fueron las de intento de ataque de inyección,
sitios web maliciosos, intento de escaneo de puertos y ataques de denegación de servicios
DDoS.
Podremos ver mas a detalle las reglas descritas, en el capitulo iv de análisis y diseño
de reglas. Posteriormente se hizo uso de las reglas que nos brinda snort a travez de un
oinkcode ya que nos brinda una gran variedad de reglas de ataques y tráfico malicioso
conocidos además de que snort nos brinda gran cantidad de reglas, la comunidad de snort
también nos ayuda con reglas que el mismo snort no posee. También tenemos un archivo
local en donde guardamos nuestras propias reglas creadas según hayamos visto el tráfico que
queramos detectar o bloquear.
95
5.1.1 Discusión resultado 1
Estos resultados guardan relación con Yauri Lozano (2017) con respecto a la
planificación de las reglas propuestas, dicho investigador nos dice que las reglas diseñadas
funcionan siempre en cuando esten establecidas y continuamente actualizadas. Dicho
resultado es acorde con lo que en esta investigación se halla. Sin embargo en lo que no
concuerdo con el autor Lozano es que nos dice que pulled pork y dumpig se encargan de
actualizar y detectar errores de dramática, pero según mi punto de vista se debe dar mas
énfasis a los requerimientos que la institución brinda al realizar un monitoreo previo.
96
Figura 59. Usuario haciendo ping a ip dentro de la red.
Fuente: Elaboración propia (2018).
97
Figura 60. Bloqueo de tráfico en Snort IPS.
Fuente: Elaboración propia (2018).
Estos resultados guardan relación con Jimenez Alegria (2016) con respecto a la
implementación de la instalación y configuración de snort, el investigador nos dice que la
forma de tener un mejor monitoreo de un IDS/IPS es con una interfaz web. Dicho resultado
es acorde con lo que en esta investigación se halla. Sin embargo en lo que no concuerdo con
el autor Jimenez es que menciona que configurar una interfaz web para el IDS/IPS nos ayuda
a tener un mejor control y por ende monitoreo del tráfico.
98
En lo que respecta al monitoreo del IPS podría funcionar simplemente desde la
consola ya que la función que tiene es el de bloquear accesos y de esa manera consumir
menos recursos de nuestro servidor IDS/IPS.
En la figura 63 vemos el tráfico de datos interno, snorby nos muestra el resultado del
tráfico mediante tres tipos de clasificación, la primera clasificación está compuesta por el
tráfico de baja severidad y es de color verde normalmente en esta clasificación es detectada
por las reglas básicas compuestas por pocos parámetros en la regla, la siguiente clasificación
es la de severidad media y es de color amarillo en esta clasificación snorby detecta el tráfico
que intenta burlar la autorización permitida del usuario, algunos ejemplos que tenemos son
el escaneo de puertos abiertos, sitios webs con archivos maliciosos o algunos ataques de
denegación de servicio (DoS). La ultima clasificación es la de severidad alta de color rojo
en esta clasificación nosotros indicamos en nuestras reglas que dicho tráfico sea alertado con
una severidad alta pueden ser algunos virus nuevos.
99
Figura 62. Monitoreo del tráfico de nuestra red hacia redes externas.
Fuente: Elaboración propia (2018).
En la figura 64 vemos el tráfico de la red con redes externas osea los usuarios
interactuando con la navegación en internet si nos fijamos en la parte de eventos de firmas
vemos que tenemos el siguiente mensaje reputation: packet is blacklisted, esto nos dice que
esos paquetes externos están registrados en nuestra lista negra de reglas, existen algunas
reglas las cuales se tiene que monitorear detalladamente simplemente por lo desconocido del
paquete.
Estos resultados guardan relación con Carbajal Troya (2015) con respecto a la fase
de medición del monitoreo del trafico de la red, el investigador menciona que al monitorizar
accesos de alta capacidad hacen que el rendimiento del hardware pueda convertirse en un
cuello de botella. Dicho resultado es acorde con lo que en esta investigación se halla. Sin
embargo en lo que no concuerdo es, que es cierto que pueda bajar el rendimiento del
hardware pero eso pasaría por querer usar la herramienta IDS/IPS para toda la red entonces
en lo que respecta esta investigación haciendo uso de la ISO 27001 se propone implementar
un IDS/IPS en distintos lugares donde se quiera monitorear el trafico.
100
ya sea agregando nueva funcionalidades o configurando algo específico o como también la
unión con suricata.
Intentaremos ingresar a nuestro servidor mediante telnet o ssh, se usó una maquina
Windows como usuario1 y una máquina virtual kali Linux como usuario2.
En la figura 65. Tenemos como resultado que snort bloquea el ingreso a nuestro
servidor mediante ssh y telnet. Para poder ver el mensaje de bloqueo, se abrió la consola de
VMware Exsi, en donde está alojado nuestro snort, podemos visualizar que por la
herramienta putty del usuario1 la conexión fue rechazada de igual forma para el usuario2
ingresando por telnet nos muestra que la conexión fue rechazada.
101
Figura 64. Ataque DDoS con slowloris.
Fuente: Elaboración propia (2018).
En la figura 67. Tenemos como resultado que nuestro snort en modo NIDS nos
detecta el ataque. Podemos visualizar en el evento el IP origen del ataque como también al
IP de destino de ataque también podemos ver que en un solo envio de paquete hubo 4846
peticiones a nuestro servidor.
102
Figura 66. Ataque DDoS con slowloris fallido.
Fuente: Elaboración propia (2018).
Con la regla configurada para los ataques de DDoS para apache con slowloris, vemos
en la figura 69. Que tenemos como resultado que snort IPS bloquea todas las peticiones.
Estos resultados guardan relación con Jimenez Alegria (2016) con respecto a la fase
de mejora haciendo el análisis y las pruebas del bloqueo del trafico no permitido, el
investigador menciona que para el caso de ataques de DDoS la configuración que usa es la
configuración por defecto de snort. Dicho resultado es acorde con lo que en esta
investigación se halla. Sin embargo en lo que no concuerdo es que la configuración por
103
defecto que nos trae snort esque es muy básica se necesita de ciertos elementos para poder
bloquear estos ataques ya que existen diversos tipos de ataques de DDoS.
104
CAPÍTULO VI. Conclusiones y recomendaciones
6.1 Conclusiones
Con respecto al cuarto objetivo se logró realizar las pruebas necesarias para verificar
la funcionalidad de la herramienta snort como solución de una buena seguridad de la
información, realizando pruebas en la red perimetral.
105
6.2 Recomendaciones
Se recomienda dar un mejor seguimiento a los paquetes desconocidos para así poder
crear las reglas respectivas y poder tener actualizadas nuestro conjunto de reglas.
106
REFERENCIAS
107
Jimenez Alegria, L. C. (2016). Universidad catolica de santa maria.
LaRepública. (2015). Perú es el quinto país con más ataques cibernéticos en Latinoamérica
| LaRepublica.pe. Retrieved April 9, 2019, from
https://larepublica.pe/sociedad/714455-peru-es-el-quinto-pais-con-mayor-cantidad-
de-ataques-ciberneticos-en-latinoamerica
Llopis, J. (2017). Actualización automática de reglas Snort con PulledPork - Security Art
Work. Retrieved March 31, 2019, from
https://www.securityartwork.es/2017/01/27/actualizacion-automatica-reglas-snort-
pulledpork/
McAfee, L. (2018). Sistema de prevención de intrusiones - Plataforma de seguridad de red |
Productos McAfee. Retrieved March 31, 2019, from
https://www.mcafee.com/enterprise/en-us/products/network-security-platform.html
McCranie, K. D., Faulkner, M., French, D., Daddis, G. A., Gow, J., & Long, A. (2011). Book
Reviews. Journal of Strategic Studies, 34(2), 281–293.
https://doi.org/10.1080/01402390.2011.569130
Normas ISO. (2015). ISO 27001 - Seguridad de la información: norma ISO IEC
27001/27002. Retrieved April 1, 2019, from https://www.normas-iso.com/iso-27001/
OpenWebinars. (2015). ¿Qué es el Pentesting? | OpenWebinars.net. Retrieved October 13,
2018, from https://openwebinars.net/blog/que-es-el-pentesting/
Oracle. (2015). MySQL | La base de datos de código abierto más popular del mercado |
Oracle España. Retrieved March 31, 2019, from https://www.oracle.com/es/mysql/
Ortego Delgado, D. (2017). Qué es Snort | OpenWebinars. Retrieved March 31, 2019, from
https://openwebinars.net/blog/que-es-snort/
PandaSecurity. (2018). ¿A qué se denomina Sistema de Prevención de Intrusos o IPS? -
Soporte Técnico Panda Security. Retrieved October 12, 2018, from
https://www.pandasecurity.com/usa-es/support/card?id=31452
PortalAndina. (2017). Día de Internet: ciberseguridad en la mira | Especiales | Agencia
Peruana de Noticias ANDINA. Retrieved April 9, 2019, from
http://portal.andina.pe/edpespeciales/2017/ciberseguridad/index.html
Quadrant. (2019). Enterprise Security, Network Security, Managed Security Services,
Managed SIEM, Sagan Technology | Quadrant Information Security. Retrieved April
17, 2019, from https://quadrantsec.com/
Radware, D. (2018). DefensePro DDoS Protection IPS y modelos de protección de
108
comportamiento. Retrieved March 31, 2019, from
https://www.radware.com/products/defensepro-models/
Robalino Diaz, J. W. (2018). Propuestas Metodológica Y Simulación De La Implementación
De Un Siem Basado En La Norma Iso 27001 Y/O 27002.
Roesch, M. (2010a). 4. Snort, 1–31.
Roesch, M. (2010b). Introducción, 1–23.
Roesch, M. (2012). Introducción Elementos de Snort.
Ruiz Vieira, K. E., & Delgado Ramos, W. (2018). Universidad de lambayeque facultad de
ciencias de ingeniería escuela profesional de ingeniería de sistemas.
Sánchez Márquez, A. (2017). Mejores IDS Opensource para Detección de Intrusiones –
Proteger mi PC. Retrieved October 10, 2018, from
https://protegermipc.net/2017/02/22/mejores-ids-opensource-deteccion-de-
intrusiones/
SeguridadGJSA. (2015). IDS/IPS | seguridadenredesgjsa. Retrieved September 9, 2018,
from https://seguridadenredesgjsa.wordpress.com/firewall-y-otros-medios-de-
defensa/idsips/
SeguridadYredes. (2019). Snort. Preprocesadores ( I ) Parte. | Seguridad y Redes. Retrieved
March 31, 2019, from https://seguridadyredes.wordpress.com/2009/03/03/snort-
preprocesadores-i-parte/
Servidorinfo. (2018). ¿Qué es un ataque DDoS? Retrieved April 7, 2019, from
http://www.servidorinfo.info/ataques-ddos/
SGSI. (2016). Norma ISO 27001 y la detección de intrusos en el sistema. Retrieved April 1,
2019, from https://www.pmg-ssi.com/2016/07/como-utilizar-los-sistemas-de-
deteccion-de-intrusos-para-cumplir-con-la-norma-iso-27001/
Snort, blog. (2011). Snort Blog: GUIs para Snort. Retrieved March 31, 2019, from
https://blog.snort.org/2011/01/guis-for-snort.html
Solarte Martinez, G. R., Castro Bermúdez, Y. V., & Ocampo, C. A. (2017). Sistema de
detección de intrusos en redes corporativas. Scientia et Technica, 22(1), 60.
https://doi.org/10.22517/23447214.9105
Tiwari, M. (2011). Intrusion Detection System, (April), 39–57.
https://doi.org/10.1142/9781848164482_0004
Universidad Internacional de Valencia. (2016). ¿Qué es la seguridad informática y cómo
puede ayudarme? | VIU. Retrieved September 9, 2018, from
109
https://www.universidadviu.es/la-seguridad-informatica-puede-ayudarme/
Yauri Lozano, E. (2017). U NIVERSIDAD N ACIONAL DE T UCUMAN F acultad de C
iencias N aturales e I nstituto M iguel L illo T esista ׀M aría J osefina R uiz.
110
ANEXOS
111
Anexo C. Reporte de Fortinet sobre el análisis de amenazas a la UPeU- FJ de la fecha
2018/08/13
112
Anexo E. Reporte de Fortinet sobre el análisis de amenazas a la UPeU- FJ de la fecha
2019/02/01
113
Anexo G. Reporte de Fortinet sobre el análisis de amenazas a la UPeU- FJ de la fecha
2019/02/23
114
Anexo I. Constancia de autorizacion del area de DTI para realizar el proyecto de
tesis
115