Después de unos cuántos meses publicando más bien poco ( 🙏🏻 ), retomamos este 2024 cargado de energías. Una pequeña pausa necesaria, que unida a un pequeño de casi 2 años era necesario tomar. 

En este tiempo han ocurrido grandes cosas, como el premio a la divulgación de ESET (sobre el que realizaré un post específico) y otras muchas. Un tiempo de mucho trabajo, pero también de mucha reflexión.

Por lo que arrancamos es de 2024 instalando una sonda Open Source en nuestro entorno virtualizado, que nos dará una visibilidad ampliada de lo que posiblemente ya estemos viendo en nuestro firewall (sí disponemos de un licenciamiento IDS), en las distintas variantes que tienen los fabricantes, o en caso de no disponer de dicho licenciamiento, nos dará una gran visibilidad de lo que ocurre en nuestra red.

Por ello nos hemos basado en una alternativa conocida ampliamente en el sector que es Suricata, pero sobre la que en muchas ocasiones es difícil trabajar debido a la falta de un entorno gráfico o posibles herramientas de búsqueda más sencillas. Por eso hoy venimos con SELKS


SELKS es una plataforma de seguridad de red de código abierto que se ofrece de forma gratuita bajo la licencia GPLv3 de Stamus Networks . Esta potente herramienta se basa en sistemas de Detección y Prevención de Intrusiones (IDS/IPS) y Monitorización de Seguridad de Red (Network Security Monitoring).

La instalación de SELKS es extremadamente versátil y sencilla, ya que puede ser desplegada en sistemas operativos Linux o Windows mediante Docker Compose, y una vez que se completa la instalación, SELKS se encuentra completamente operativo y listo para ser utilizado como una solución de seguridad integral y lista para su uso.

Ademas de ello, y como veremos hoy , SELKS ofrece la flexibilidad de ser implementado mediante imágenes ISO en entornos con restricciones de conectividad o para su nuestra instalación en hardware físico o máquinas virtuales (VM). En nuestro caso un ESXI, aprovechando que estamos haciendo un Port mirror de todo el trafico de la red ( Veremos como configurarlo en ESXI, que con lo sencillo que es, me trajo de cabeza por la falta de información al respecto ).

SELKS

Como os trasladaba anteriormente , SELKS, es una interfaz basada en Suricata , pero vitaminada , y de ahí las iniciales , con un conjunto de aplicaciones que le dan su nombre:

Como podéis ver, el acrónimo se estableció antes de la adición de Arkime, EveBox y nuestro famoso cocinero, CyberChef.

El potencial de SELKS , podemos verlo desde el inicio, en uno de los muchos paneles que vienen configurados en la plataforma, creados por profesionales ampliamente reconocidos en el sector:

Paneles adaptables de SELKS

Quitando las ya conocidas herramientas , Elasticsearch, Logstash y Kibana , podríamos describir de una forma rápida el resto de herramientas :

  • Suricata IDPS/NSM (Intrusion Detection and Prevention System/Network Security Monitor):
    • Suricata es un sistema de detección y prevención de intrusiones de red (IDPS) y un monitor de seguridad de red (NSM) de código abierto.
    • Se utiliza para analizar el tráfico de red en busca de patrones sospechosos o amenazas, como ataques de intrusión, malware, o actividades maliciosas.
  • Scirius:
    • Scirius es una interfaz de usuario web que proporciona una capa de gestión para Suricata.
    • Facilita la configuración, monitorización y administración de reglas de seguridad en Suricata.
  • EveBox:
    • EveBox es una aplicación web que se utiliza para visualizar y analizar registros de eventos de seguridad generados por Suricata y otros sistemas de seguridad.
    • Ofrece gráficos, búsquedas avanzadas y capacidades de análisis para ayudar a los administradores de seguridad a comprender mejor las amenazas y los incidentes en su red.
  • Arkime (anteriormente conocido como Moloch):
    • Arkime es una plataforma de código abierto diseñada para la captura, indexación y búsqueda de tráfico de red a gran escala.
    • Permite el almacenamiento de paquetes de red y su análisis posterior, lo que facilita la investigación de incidentes y la identificación de amenazas.
  • CyberChef ( Un viejo conocido ):
    • CyberChef es una herramienta de código abierto que proporciona una amplia gama de funciones para el análisis y manipulación de datos en formato hexadecimal, base64 y otros.
    • Es útil para decodificar, codificar, encriptar, desencriptar y realizar diversas operaciones en datos de manera eficiente.

Instalar SELKS de una forma fácil y rápida

Si vamos directamente a la pagina de SELKS , podemos observar que tenemos varias formas de realizar la instalación, aunque convergen todas en un punto central, que es la instalación de Docker y los distintos paquetes que lo incluyen ( diferenciado por las distintas herramientas que hemos visto )

Opciones de instalación de SELKS

En nuestro caso y para poder mostrar el contenido de SELKS de una forma más visual, y fácil de montar en el entorno de laboratorio, hemos optado por descargar la imagen .ISO y montarla en un ESXI.

PD: Si, los Reyes me han autorregalado un Mac. ;)

Descarga de imagen .iso de SELKS

Una vez descargada la imagen , y cargada en el datastore de nuestro ESXI para que pueda arrancar como imagen en el bootable de la unidad óptica , podemos proceder a crear una nueva máquina virtual.

En la imagen veis que la distribución puse que se basa en Debian 9 , fallo mio, aunque no tiene ninguna implicación, se basa en Debian 11.

Creación de la maquina SELKS para ESXI

Tras alguna prueba , os dejo los requisitos mínimos que veo que debe tener la máquina para que funcione correctamente, que básicamente son 16Gb de memoria , el disco que estiméis para almacenar ( lo usara elásticsearch ) , y por supuesto, dos tarjetas de red, sobre la que administraremos y sobre la que haremos el portmirror de la red:

Configuración SELKS tarjetas de red

Una de las cosas más sencillas y que más me dio dolores de cabeza , fue el realizar el portmirror en ESXI , en el que no conseguía que me llegase a funcionar. En muchos foros podréis ver que hablan de poner el ID VLAN a 0 ( cero ) , pues , todo lo contrario, con VLAN ID 0 , lo que estamos indicando al ESXI, es que las VLANs vienen sin tagear ( cada vlan tiene un id tag ) . Por lo que tras varias pruebas y muchos foros , vimos que el tagid , solo llega hasta el 4094, lo que hace que si indicamos 4095 , coja todos los tagid , cuestión imprescindible para poder ver todo el trafico del portmirror.

Si indicásemos un VLAN ID concreto, podríamos llegar a ver el trafico concreto de solo la VLAN ID que queremos, el cual podría llegar a ser el caso concreto que nos gustaría implementar.

Portmirror en ESXI

Una vez, levantada la maquina , configurado las distintas tarjetas en nuestro ESXI, ya podemos proceder a arrancar la imagen e iniciar la instalación.

Maquina con Port Mirror en Vmware ESXI

Una vez iniciada la imagen , tenemos la posibilidad de lanzarla como un Live CD sin necesidad de instalar, pero en nuestro caso, queremos realizar la instalación de SELKS de forma permanente , lanzando las alertas incluso al SIEM. Por ello, procedemos con la instalación.

Terminal ESXI instalación de SELKS

Como os trasladaba anteriormente , una distribución basada en Debian 11:

Debian 11 IDS

Si todo fue correcto, la propia instalación detectará ( sin asignación de IP aún ), las dos tarjetas de red que hemos indicado en la creación de la máquina ( una para administración - otra el Port Mirror ).

Tarjetas de red para hacer el Port Mirror IDS SELKS

En la imagen , nos solicita la ip que queremos como principal. Esta no es la IP sobre la que queremos aplicar el IDS, que más adelante veremos como configurarla , si no la propia tarjeta que usara la máquina , y sobre la que deberemos dar una ip, mascara y unos DNS para que pueda proceder con la instalación.

Una vez finalizada la instalación de la imagen , dispondremos en nuestro caso, de un sistema sobre el que podremos hacer login, y sobre el que en primera instancia , tardara algo en dar un posterior acabado SELKS.

Login en IDS SELKS

Las credenciales que nos solicitan , podemos obtenerlas de la WIKI Github de SELKS:

IMPORTANTE: aunque en la captura veis que indica que para el usuario root la contraseña es StamusNetworks , a mi no me funcionó, siendo la misma que indica para el SO ( selks-user ).

Credenciales SELKS

Pero ojo, de momento , no tenemos instalado SELKS , si no que tenemos instalado el SO que soportará SELKS con todo lo necesario para su instalación, encontrándonos en el propio escritorio , el documento con los comandos necesarios para lanzar la instalación. En nuestro caso, instalación guiada, ya que no sabíamos que necesitaríamos , como interfaces donde será monitorizado el trafico.

Instalación IDS SELKS

La instalación tarda aproximadamente 10-15 minutos , por lo que tener paciencia , ya que debe montar todos los Dockers necesarios para levantar el entorno.

Instalación de Docker de SELKS

Una vez concluido el despliegue , nos solicitará la interfaz sobre la que queremos monitorizar, que si recordáis en nuestro caso, dividimos en interfaz de gestión de la propia plataforma ( ens194 ) , y sobre la que hacíamos el PortMirror como podéis ver en las capturas de arriba ( ens224 ).

Por lo que una vez seleccionada la interfaz a monitorizar ( ens224 ), se levanta el propio sistema con dicha configuración.

Levantamiento IDS SELKS

Pero ojo, que no arranca, por lo que necesitamos un ultimo paso. Creo que el sistema lo traslada en sus mensajes, si no, esta el documento , y si no ... ya lo sabéis:

Todo en orden:

Docker Compose Suricata IDS SELKS

Ahora si que si, podemos entrar en el SELKS ( no en el SO ) , accediendo directamente desde la ip que hayamos asignado al equipo ( gestión ) , para poder ver la monitorización de Port Mirror.

Donde veréis en un lateral , las distintas APPS desplegadas:

Herramientas SELKS

Y ya podemos por ejemplo ver el resultado en menos de 24h de desplegar una herramienta de este tipo en nuestra organización a coste 0, y es que nos da muchísima visibilidad en puntos , donde tal vez un NGFW distorsione tanta información que obtiene .

Resultado de ello a cortisimo plazo, se han identificado accesos con dyndns , herramientas para p2p muy especificas que el FW no detectaba y que ya podemos controlar, sistemas que trabajaban con password en texto plano .... y mucho más ( En cada casa tenemos lo nuestro ... por si algún iluminado le da por indicar que como es posible ... fruto de no mirarse al ombligo ) .

Threat hunting Suricata

La vista anterior, es la que mas me gusta , de "Hunting" , pero por ejemplo, podemos tener una mas extensa en Everbox:

Vista Everbox Suricata SELKS

Pero que nos trae toda la información de la firma en sí:

Firma Suricata

Fruto de varias pruebas , creo que la configuración de sistema es la correcta. Incluso podríamos bajar algo la CPU. El disco no, ya que nos gustaría mantener algo el tiempo de retención ( los logs rotarán al llegar al máximo )

Como punto importante , trasladar que podemos , como buen sistema IDS , importar nuestras propias reglas YARA

Integrando SELKS son SIEM / SOAR

Uno de los grandes puntos de SELKS, es la propia integración de Elasticsearch / Kibana , que nos proporciona una amplísima visibilidad del estado de la seguridad.

ELK en SELKS nos proporciona de forma predeterminada, distintos Dashboard y tablas , lo que hace que podamos realizar la integración directamente desde ELK a nuestro SIEM / SOAR de una forma "filtrada" , siendo como es normal estos sistemas , quienes nos alerten con nuestros flujos predefinidos del SOC.

Como podeis observar , este es uno de los Dashboard que trae SELKS, y la gran visibilidad que nos da ( Este solo es un ejemplo, pero ya veis arriba todos los que trae ):

Espero que disfrutaseis el post . Os animo a que lo despleguéis , aunque sea de pruebas , y ante todo , os pido disculpas por tardar tanto en actualizar el blog.

Un fuerte abrazo .... arrancamos 2024.