Hola Fronters, espero que estén excelentemente bien. El día de hoy les traigo un artículo sobre una herramienta que descubrí el año pasado y que la verdad me gusta mucho: OSQuery.

Qué es OSQuery

OSQuery es un Framework o entorno de trabajo, cuya funcionalidad es la de recabar información de nuestro sistema operativo, bien sea Linux, Windows o Mac OSX, sin embargo NO es un sistema cualquiera, sino que utiliza como sintaxis, el Structured Query Language (SQL), como línea de comandos.

Es sumamente flexible y amigable y así como podemos estructurar nuestras consultas SQL en un motor de base de datos de los ya conocidos, como por ejemplo: MySQL; con OSQuery también podemos llevar a cabo nuestras consultas, pero de datos relacionados con nuestros equipos y servidores.

En este HowTo les enseñaré como instalar OSQuery y realizar sus primeras consultas.

Instalación y configuración

Hay varias formas de instalar OSQuery en nuestro ordenador o servidor. Vamos a explicar las más comunes:

a) En Debian 11 / Ubuntu 22.04):

Actualizamos repositorios e instalamos dependencias:

Agregamos el repositorio de OSQuery:

Actualizamos repositorios e instalamos OSQuery:

b) En RHEL, CentOS Stream y derivados:

Los pasos para instalar OSQuery en RHEL. CentOS, Rocky Linux, AlmaLinux son los siguientes:

Ya instalado OSQuery, lo que haremos es comprobar la instalación, consultando la versión del paquete instalado:

Para entrar en la interface de comandos:

Para mostrar la ayuda:

Para salir de OSQuery:

Para ver las tablas disponibles:

Si queremos ver el schema de una tabla en particular:

Ejemplos de Consultas SQL en OSQuery

Para ver el nombre del proceso, puerto de escucha y el PID en donde la dirección de escucha sea «0.0.0.0»:

Visualizando lo siguiente:

osquery 1

Para obtener todos los programas que están cargados y ejecutándose desde Systemd (con descripción)

Obteniendo la siguiente salida:

osquery 2

Para obtener todos los programas que están cargados y ejecutándose desde Systemd (sin descripción)

Obteniendo esta salida:

osquery 3

Mostrar el PID, nombre y la ruta. uniendo los procesos conforme al PID con JOIN y utilizándolo como clave primaria, en este caso con la tabla de osquery_info:

Para visualizar los atributos de un fichero en especifico, en este caso, el /dev/zero:

Y los mostrará en formato de tabla. Aunque se puede apreciar la info, resulta un poco incomodo o inmanejable la forma de visualizarla.

Para cambiar el modo de visualización podremos escribir y volvemos a ejecutar la consulta:

Y ahora al volver a ejecutar la consulta:

Y ahora si podemos ver la consulta en modo lineal, siendo más legible:

Modos de Visualización de datos en OSQuery

Existen varios modos adicionales de salida o de visualización que nos ayudan a presentar los datos de forma más adecuada, según sea el contexto o la necesidad:

Para elegir como queremos visualizar la salida de OSQuery:

Esto nos traerá el hash del ultimo archivo modificado en la ruta /etc:

Para saber si los servidores tienen el plugin de let’sEncrypt para cPanel instalado:

Palabras finales

OSQuery es una herramienta altamente customizable y con un amplio margen de posibilidades de implementación y consulta, e incluso, puede llegar a servir como base para otros sistemas o herramientas que buscan hacer la vida más fácil a los Administradores de sistemas a la hora de obtener datos de su Infraestructura.

Espero que les haya gustado este contenido y, de ser así, comenta y comparte.

Hasta luego fronters!

Referencias

https://github.com/osquery/osquery

https://osquery.readthedocs.io/en/latest/introduction/sql/

https://osquery.io/schema/5.3.0/

https://blog.trailofbits.com/2020/10/14/osquery-using-d-bus-to-query-systemd-data/

https://osquery.readthedocs.io/en/stable/introduction/sql/

https://linuxhint.com/install_osquery_ubuntu/

https://medium.com/uptycs/sql-introduction-for-osquery-2e6c8dff3ee0

https://www.liquidweb.com/kb/install-osquery-centos/

📊 Infografía: Consultas SQL esenciales de OSQUERY

📥 Puedes descargar la infografía aquí

Infografía OSQUERY