Systell

Compatibilità
Salva(0)
Condividi
Saltar al contenido

Systell

Systell

Enmanuel A. Naranjo Nápoles 

  • Support developer and Security analyst at Vintegris
  • Alumno de la 11ª edición del Máster en Ciberseguridad del Campus Internacional de Ciberseguridad.

Enmanuel A. Naranjo Nápoles 

  • Support developer and Security analyst at Vintegris
  • Alumno de la 11ª edición del Máster en Ciberseguridad del Campus Internacional de Ciberseguridad.

Systell es una herramienta joven creada para facilitar la obtención y validación de información de seguridad en entornos Linux. Brinda algunas de las funcionalidades más comunes en este tipo de herramientas de una manera ligera y sencilla. En esta entrada os hablaremos un poco más de ella.

¿Qué es Systell?​

Systell es una herramienta desarrollada en Python con el objetivo de facilitar al usuario la obtención y análisis de información basándose en reglas. Está diseñada para entornos Linux y posee integraciones con algunos componentes fundamentales de este tales como systemd, el journal y los gestores de paquetes.

¿Cómo funciona?

El principio funcional básico de Systell es que sus funcionalidades están divididas en módulos según el alcance del análisis. Teniendo un módulo para el análisis de registros, otro para el análisis de configuraciones, otro para binarios, etc. El usuario define que elementos desea analizar y que reglas va a emplear, posteriormente ejecuta el/los módulos correspondientes y el sistema le genera un reporte con la información solicitada.

¿Cómo utilizarlo?

El primer paso es instalar la herramienta. Actualmente para ello, han de seguirse los pasos que se describen en la documentación del proyecto, siendo estos:

  • Descargar o clonar el repositorio de systell que se encuentra en github: https://github.com/IlabSentuser/systell 
  • Instalar las dependencias necesarias, estas son: python3, nmap, y las librerías de python python-nmap, psutil, distro y systemd-python.
  • Configurar los componentes y reglas del análisis.
  • Ejecutar la herramienta, para ello se puede escribir: python systell.py.

Opcional: se puede utilizar la bandera -h para consultar la ayuda de la herramienta, por ejemplo: python systell.py -h

¿Cómo configurarlo?

Primeramente recordar que existen varios módulos, por ejemplo los módulos LOG, CONF y PACKAGE utilizan una configuración basada en definiciones y reglas, mientras que otros módulos utilizan listas.

Módulos LOG, CONF y PACKAGE

Estos módulos utilizan una sintaxis de configuración sencilla basada en ficheros de inicialización (.INI). La configuración se divide generalmente en dospartes. El qué, que son definiciones de objetos y el cómo que son las reglas. Por ejemplo una definición de objeto contiene entradas como estas:

En este ejemplo se definen una serie de elementos a analizar, como por ejemplo el resultado de la ejecución del comando sudo pacman -Qkk o el fichero /etc/passwd. En cada caso se específica un identificador que es la sección, una descripción en el nombre, que es orientativo y puede ser cualquier cosa, el objeto a analizar, que puede ser un fichero o el resultado de ejecutar un comando y el fichero de reglas que es el que contendrá cada una de las reglas a aplicar durante el análisis de ese objeto.

¿Y las reglas?

Los ficheros de reglas poseen una sintaxis similar a la siguiente:

Donde cada regla tiene un identificador, un tipo y otros campos que dependen del tipo de regla. Las reglas pueden ser de tipo Regex, Filtered o Combined. Esto significa que podemos utilizar expresiones regulares para la extracción de información; en el caso de los filtros son reglas más sencillas que simplemente verifican la existencia de ciertos elementos en la entrada, y las reglas combinadas realizan una combinación de ambas, permitiendo filtrar la entrada y posteriormente extraer la información con expresiones regulares. Es importante notar que si bien el campo tipo es obligatorio en cada caso, los campos Regex y Filters solo son necesarios cuando el tipo de regla así lo requiera.

Otros módulos

Los módulos LOCAL y REMOTE utilizan otra sintaxis para sus definiciones, por ejemplo el módulo local permite definir listas de ficheros a verificar junto a sus propiedades:

Recapiti
Estefanía Dominguez de la Iglesia