Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – IDS Fundamentals

TryHackMe – IDS Fundamentals

Hola hacketones! Bienvenidos a un nuevo CTF para la Certificación SEC1 de la ruta Cyber Security 101 de TryHackMe – IDS Fundamentals

¿Qué es un IDS?

En la sesión anterior, Introducción a los Firewalls , estudiamos la función de un firewall , una solución de seguridad que generalmente se implementa en los límites de una red para proteger el tráfico entrante y saliente. El firewall analiza el tráfico cuando se establece una conexión y la deniega si infringe sus reglas . Sin embargo, debe existir un sistema de seguridad que detecte las actividades de la conexión que lo atraviesa y que ya se han producido. Por lo tanto, si un atacante logra eludir un firewall mediante una conexión aparentemente legítima y luego realiza actividades maliciosas dentro de la red, debe existir un mecanismo para detectarlo a tiempo. Para ello, contamos con una solución de seguridad dentro de la red, conocida como Sistema de Detección de Intrusiones ( IDS ).

Piense en un ejemplo de la seguridad de un edificio. Un firewall actúa como un portero, controlando la entrada y salida de personas. Siempre existe la posibilidad de que algún malintencionado se colé y cometiera actividades maliciosas. No lo detectaron en la puerta, pero ¿y si lo detectamos incluso después de entrar? Esto se puede lograr mediante las cámaras de vigilancia presentes en todo el edificio. El IDS cumple la función de las cámaras de vigilancia. Ubicado en una esquina, monitorea el tráfico de la red basándose en sus detecciones basadas en firmas y anomalías, y detecta cualquier tráfico anormal que salga o entre en la red. Ante cada detección, se genera una alerta para los administradores de seguridad. El IDS no actúa sobre estas detecciones; solo notifica a los administradores de seguridad sobre la actividad maliciosa.

Responda las siguientes preguntas

¿Puede un sistema de detección de intrusiones (IDS) prevenir la amenaza después de detectarla? Sí/No

Nay

Tipos de IDS

Los sistemas de detección de intrusos (IDS) pueden clasificarse de diferentes maneras según ciertos factores. La principal clasificación de un IDS depende de sus modos de implementación y detección.

Modos de implementación

Los IDS se pueden implementar de las siguientes maneras:

  • Sistema de Detección de Intrusiones en el Host ( HIDS ): Las soluciones IDS basadas en el host se instalan individualmente en cada host y se encargan de detectar únicamente las posibles amenazas de seguridad asociadas a ese host en particular. Proporcionan visibilidad detallada de las actividades del host. Sin embargo, la gestión de los sistemas de detección de intrusiones en el host puede ser difícil en redes grandes, ya que consumen muchos recursos y requieren administración en cada host.
  • Sistema de Detección de Intrusiones en la Red ( NIDS ): Las soluciones de IDS basadas en red son cruciales para detectar actividades potencialmente maliciosas en toda la red, independientemente de los hosts. Monitorean el tráfico de red de todos los hosts involucrados para detectar actividades sospechosas. Proporcionan una vista centralizada de todas las detecciones dentro de la red.

Modos de detección

  • Sistemas de Identificación Basados ​​en Firmas : A diario se producen numerosos ataques. Cada ataque tiene un patrón único, conocido como firma. Los sistemas de identificación (IDS) conservan estas firmas en sus bases de datos para que, si se repite el mismo ataque en el futuro, se detecte mediante su firma y se informe a los administradores de seguridad para que tomen medidas. Cuanto más sólida sea la base de datos de firmas del IDS , mayor será la eficiencia con la que detectará las amenazas conocidas. Sin embargo, los IDS basados ​​en firmas no pueden detectar ataques de día cero. Estos ataques no tienen firmas (patrones) previas y no se guardan en las bases de datos del IDS . Por lo tanto, los IDS basados ​​en firmas solo pueden detectar los ataques anteriores, y sus firmas (patrones) se guardan en la base de datos. En las próximas tareas, exploraremos un IDS basado en firmas llamado Snort.
  • IDS basado en anomalías : este tipo de IDS primero aprende el comportamiento normal (línea base) de la red o sistema y realiza detecciones si hay alguna desviación del comportamiento normal. Los IDS basados ​​en anomalías también pueden detectar ataques de día cero porque no se basan en las firmas disponibles para las detecciones, sino que detectan anomalías dentro de la red o sistema comparando el estado actual con el comportamiento normal (línea base). Sin embargo, este tipo de IDS puede generar muchos falsos positivos (marcando actividades benignas como maliciosas) porque la naturaleza de la mayoría de los programas legítimos coincide con la de los maliciosos. Los IDS basados ​​en anomalías los marcarían como maliciosos y creerían que cualquier comportamiento inusual es malicioso. También podemos reducir los falsos positivos generados por los IDS basados ​​en anomalías ajustándolos (definiendo manualmente el comportamiento normal en el IDS ).
  • Sistema de Detección de Intrusos (IDS) Híbrido : Un IDS híbrido combina los métodos de detección de los IDS basados ​​en firmas y los basados ​​en anomalías para aprovechar las ventajas de cada enfoque. Algunas amenazas conocidas podrían ya tener firmas en la base de datos del IDS ; en este caso, el IDS híbrido utilizaría la técnica de detección del IDS basado en firmas . Si detecta una nueva amenaza, puede aprovechar el método de detección del IDS basado en anomalías .

Los sistemas de detección de intrusos (IDS) basados ​​en firmas pueden detectar amenazas rápidamente, mientras que otros sistemas de detección de intrusos (IDS) pueden tener una alta sobrecarga de procesamiento. Sin embargo, también es fundamental considerar los IDS en función de diversos factores. Los IDS basados ​​en firmas pueden ser una buena opción para cubrir una pequeña superficie de amenaza. Los IDS basados ​​en anomalías y los IDS híbridos pueden ayudar a detectar los ataques de día cero modernos, que aumentan a diario y pueden causar daños masivos a las organizaciones.

Responda las siguientes preguntas

¿Qué tipo de sistema de detección de intrusiones (IDS) se implementa para detectar amenazas en toda la red?

Network Intrusion Detection System

¿Qué sistema de detección de intrusiones (IDS) utiliza técnicas de detección basadas tanto en firmas como en anomalías?

Hybrid IDS

Ejemplo de IDS: Snort

Snort es una de las soluciones IDS de código abierto más utilizadas, desarrollada en 1998. Utiliza detecciones basadas en firmas y anomalías para identificar amenazas conocidas. Estas se definen en los archivos de reglas de la herramienta Snort. Varios archivos de reglas integrados vienen preinstalados en el paquete de esta herramienta. Estos archivos de reglas integrados contienen diversos patrones de ataque conocidos. Las reglas integradas de Snort pueden detectar una gran cantidad de tráfico malicioso. Sin embargo, puede configurar Snort para que detecte tipos específicos de tráfico de red que no están cubiertos por los archivos de reglas predeterminados. Puede crear reglas personalizadas según sus requisitos para detectar tráfico específico. También puede deshabilitar cualquier regla de detección integrada si no apunta a tráfico dañino para su sistema o red y definir algunas reglas personalizadas en su lugar. En la próxima tarea, exploraremos las reglas integradas y crearemos reglas personalizadas para detectar tráfico específico.

Modos de Snort

ModoDescripciónCaso de uso
Modo rastreador de paquetesEste modo lee y muestra los paquetes de red sin analizarlos. El modo de rastreo de paquetes de Snort no está directamente relacionado con las funciones de IDS , pero puede ser útil para la monitorización y la resolución de problemas de red. En algunos casos, los administradores de sistemas podrían necesitar leer el flujo de tráfico sin realizar ninguna detección para diagnosticar problemas específicos. En este caso, pueden utilizar el modo de rastreo de paquetes de Snort. Este modo permite mostrar el tráfico de red en la consola o incluso exportarlo en un archivo.El equipo de red observa algunos problemas de rendimiento de la red. Para diagnosticarlos, necesitan información detallada del tráfico de la red. Para ello, pueden utilizar el modo de rastreo de paquetes de Snort.
Modo de registro de paquetesSnort detecta el tráfico de red en tiempo real y muestra las detecciones como alertas en la consola para que los administradores de seguridad puedan tomar medidas. Sin embargo, en algunos casos, es necesario registrar el tráfico de red para su posterior análisis. El modo de registro de paquetes de Snort permite registrar el tráfico de red como un archivo PCAP (formato estándar de captura de paquetes). Esto incluye todo el tráfico de red y cualquier detección derivada de él. Los investigadores forenses pueden usar estos archivos de registro de Snort para analizar la causa raíz de ataques anteriores.El equipo de seguridad necesita iniciar una investigación forense de un ataque de red. Necesitarán los registros de tráfico para realizar el análisis de la causa raíz. El tráfico de red registrado mediante el modo de registro de paquetes de Snort puede serles útil.
Modo de sistema de detección de intrusiones en la redEl modo NIDS de Snort es el modo principal que monitorea el tráfico de red en tiempo real y aplica sus archivos de reglas para identificar cualquier coincidencia con los patrones de ataque conocidos almacenados como firmas. Si existe una coincidencia, se genera una alerta. Este modo proporciona la funcionalidad principal de una solución IDS .El equipo de seguridad debe supervisar proactivamente su red o sistemas para detectar posibles amenazas. Para ello, pueden aprovechar el modo NIDS de Snort.

El uso más relevante de Snort como IDS proviene de su modo NIDS . Sin embargo, Snort puede utilizarse en cualquiera de los modos mencionados, según las necesidades.

Responda las siguientes preguntas

¿Qué modo de Snort nos ayuda a registrar el tráfico de red en un archivo PCAP?

Packet Logging Mode

¿Cómo se llama el modo principal de Snort?

Network Intrusion Detection System Mode

Uso de Snort

Durante la instalación de Snort, debe proporcionar su interfaz y rango de red. Puede ejecutar Snort normalmente, capturando únicamente el tráfico destinado a su host. Sin embargo, si desea usar Snort para capturar y detectar intrusiones en toda su red, debe activar el modo promiscuo de la interfaz de red de su host. 

Primero, iniciemos la máquina virtual pulsando el botón «Iniciar máquina» que aparece a continuación. La máquina se iniciará en vista dividida. Si la máquina virtual no está visible, utilice el botón azul » Mostrar vista dividida» en la parte superior de la página.

Snort cuenta con archivos de reglas integrados, un archivo de configuración y otros archivos. Estos se almacenan en el /etc/snortdirectorio. El archivo clave de Snort es su archivo de configuración snort.conf, donde se pueden especificar los archivos de reglas que se habilitarán, el rango de red que se monitoreará y se habilitarán otras configuraciones. Los archivos de reglas se almacenan en la rulescarpeta. Usemos el lscomando para listar todos los archivos y carpetas presentes en el directorio principal de Snort:

Directorio de Snort

ubuntu@tryhackme:~$ls/etc/snortclassification.config  reference.config  snort.debian.conf
community-sid-msg.map  rules             threshold.conf
gen-msg.map            snort.conf        unicode.map

Formato de la regla

Ahora, analicemos cómo se crean las reglas en Snort. Existe una forma específica de escribirlas. A continuación, se muestra un ejemplo de regla que detectaría paquetes ICMP (usualmente usados ​​al hacer ping a un host) provenientes de cualquier dirección IP y puerto, y que llegan a la red doméstica (el rango de red se define en el archivo de configuración de Snort) a cualquier puerto. Una vez detectado dicho tráfico, se generan alertas de «Ping detectado».

A continuación se detallan los componentes involucrados en esta regla:

  • Acción: Especifica la acción a tomar cuando se activa la regla. En este caso, la acción es «alertar» cuando el tráfico coincide con esta regla.
  • Protocolo: Se refiere al protocolo que cumple con esta regla. En este caso, usamos el protocolo «ICMP», que se utiliza al hacer ping a un host.
  • IP de origen: Determina la IP de origen del tráfico. Como queremos detectar tráfico de cualquier IP de origen, la configuramos como «cualquiera».
  • Puerto de origen: Determina el puerto desde el que se origina el tráfico. Dado que queremos detectar tráfico desde cualquier puerto de origen, lo configuramos como «cualquiera».
  • IP de destino: Especifica la IP de destino a la que llega el tráfico coincidente; genera la alerta. En este caso, usamos «$HOME_NET». Esta es una variable, y su valor se define como el rango completo de nuestra red en el archivo de configuración de Snort.
  • Puerto de destino: Especifica el puerto al que llegará el tráfico. Como queremos detectar el tráfico que llega a cualquier puerto, lo configuramos como «cualquiera».
  • Metadatos de la regla: Cada regla contiene metadatos. Estos se definen al final de la regla, entre paréntesis. Sus componentes son los siguientes:
    • Mensaje (msg): Describe el mensaje que se mostrará cuando se active la regla del asunto. El mensaje debe indicar el tipo de actividad detectada. En este caso, usamos «Ping detectado».
    • ID de firma (sid): Cada regla tiene un identificador único que la diferencia de las demás. Este identificador se denomina ID de firma (sid). En este caso, el sid es «10001».
    • Revisión de la regla (rev): Establece el número de revisión de la regla. Cada vez que se modifica la regla, su número de revisión se incrementa. Esto facilita el seguimiento de los cambios en cualquier regla.

Creación de reglas

Peguemos la regla de muestra explicada anteriormente en el archivo «local.rules» personalizado en el directorio de reglas de Snort.

En primer lugar, abra el archivo «local.rules» en un editor de texto:

Editar archivo de reglas personalizadas

ubuntu@tryhackme:~$sudonano/etc/snort/rules/local.rules

Ahora, agregue la siguiente regla después de las reglas ya presentes en el archivo:

alert icmp any any -> 127.0.0.1 any (msg:»Loopback Ping Detected»; sid:10003; rev:1;)

Nota: Necesitaremos las otras reglas ya presentes en la próxima tarea, así que no las elimine.

Una vez que haya editado el archivo correctamente, presione «Ctrl+X» y se le pedirá que presione «Y» si desea guardar los cambios. Presione «Y» para guardar los cambios.

Prueba de reglas

Primero, iniciemos la herramienta Snort para detectar cualquier intrusión definida en el archivo de reglas. Para ello, ejecutemos el siguiente comando con privilegios de sudo en nuestra consola:

Ejecución de Snort para detecciones

ubuntu@tryhackme:~$sudosnort -q-l/var/log/snort -ilo -Aconsole -c/etc/snort/snort.conf

Nota:  En caso de que su interfaz de bucle invertido no se llame  «lo»,  reemplácela con el nombre de interfaz correcto. 

Como esta regla está diseñada para alertarnos sobre cualquier paquete ICMP a nuestra dirección de loopback, intentemos hacer ping a nuestra dirección de loopback para ver si nuestra regla funciona:

Host de ping

ubuntu@tryhackme:~$ping127.0.0.1

La siguiente captura de pantalla muestra la alerta «Ping de bucle invertido detectado» generada por Snort al hacer ping a la IP de bucle invertido de nuestro host. Esto significa que nuestra regla funciona correctamente.

Ejecución de Snort para detecciones

ubuntu@tryhackme:~$sudo snort -q-l/var/log/snort -ilo -Aconsole -c/etc/snort/snort.conf

07/24-10:46:52.401504  [**] [1:1000001:1] Loopback Ping Detected [**] [Priority: 0] {ICMP} 127.0.0.1 -> 127.0.0.1
07/24-10:46:53.406552  [**] [1:1000001:1] Loopback Ping Detected [**] [Priority: 0] {ICMP} 127.0.0.1 -> 127.0.0.1
07/24-10:46:54.410544  [**] [1:1000001:1] Loopback Ping Detected [**] [Priority: 0] {ICMP} 127.0.0.1 -> 127.0.0.1

Ejecución de Snort en archivos PCAP

Vimos cómo Snort puede utilizarse para la detección de intrusiones en el tráfico en tiempo real. Sin embargo, a veces puede encontrarse con un caso en el que tenga el tráfico de red histórico registrado en un archivo y sea necesario realizar una investigación forense para determinar cualquier indicio de intrusión a través de dicho tráfico. Este tráfico suele registrarse en el formato estándar de captura de paquetes » PCAP «. Snort también puede realizar detecciones en estos archivos PCAP que contienen el tráfico de red histórico.

Se puede utilizar el siguiente comando con privilegio sudo para realizar esta acción:

Corriendo Snort en PCAP

ubuntu@tryhackme:~$sudo snort -q-l/var/log/snort -rTask.pcap-Aconsole -c/etc/snort/snort.conf

Nota: Reemplace «Task. pcap » con la ruta a su archivo PCAP para su análisis.

Responda las siguientes preguntas

¿Dónde se encuentra el directorio principal de Snort donde se almacenan sus archivos?

/etc/snort

¿Qué campo de la regla de Snort indica el número de revisión de la regla?

rev

¿Qué protocolo se define en la regla de ejemplo creada en la tarea?

icmp

¿Cuál es el nombre del archivo que contiene las reglas personalizadas para Snort?

local.rules

Laboratorio práctico

Ejercicio

Escenario: Eres un investigador forense externo. Una empresa te contacta para investigar un ataque reciente a su red. Le entregaron un archivo PCAP llamado » Intro_to_IDS.pcap «, que contenía el tráfico de red capturado durante el ataque. Tu tarea consiste en ejecutar Snort en este archivo PCAP y responder a las preguntas planteadas.

Nota: El archivo PCAPIntro_to_IDS.pcap se encuentra en el /etc/snort/directorio. Debe cambiar el directorio a [nombre del directorio] /etc/snorty ejecutar el comando de análisis PCAP en ese nuevo archivo PCAP , tal como lo hicimos en la tarea 4.

Responda las siguientes preguntas

¿Cuál es la dirección IP de la máquina que intentó conectarse a la máquina en cuestión mediante SSH?

10.11.90.211

¿Qué otro mensaje de regla, además del mensaje SSH, se detecta en el archivo PCAP? 

Ping Detected

¿Cuál es el side de la regla que detecta SSH?

1000002

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *