OSQuery: Nuestro Linux controlado en todo momento

La herramienta de la que vamos a hablar hoy es realmente interesante, se trata de OSQuery. Se trata de una framework que expone nuestro sistema operativo como de una base de datos relacional se tratase. Esto le permite utilizar sentencias SQL para explorar datos de un sistema dado. Con OSQuery, las tablas SQL presentan conceptos tales como los procesos de ejecución, los módulos del kernel cargados, las conexiones a de red abiertas, los complementos del navegador de turno, eventos del hardware entre otras cosas.

OSQuery logo

Se trata de un producto de software libre, ya que utiliza una licencia Apache en su versión 2. En su origen fue creado por el equipo de Facebook y está escrito en C++ Sigue la filosofía de desarrollo de código abierto y es multiplataforma. Está disponible para sistemas operativos GNU/Linux, como CentOS 6 y 7, Ubuntu 14.04 y 16.04, además de FreeBSD 11, Windows o mac OS.

Cuéntame un poco más sobre osquery

Ya hemos dicho que es un framework, pues bien, este utiliza múltiples herramientas que realizan un análisis y supervisión de nuestro sistema operativo a bajo nivel. Todas las partes del S.O. están representados en forma de tabla, por lo que esto permite elaborar consultas simples o complejas SQL.

Las tablas SQL se implementan a través de un plugin simple y una API.

Instalación de osquery en GNU/Linux

En sistemas Debian, Ubuntu, Linux Mint y derivados, debemos seguir los siguientes pasos:

  1. export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
  2. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
  3. sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
  4. sudo apt update
  5. sudo apt install osquery

En RHEL, CentOS, Scientific Linux y deriviados :

  1. curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
  2. yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
  3. yum-config-manager --enable osquery-s3-rpm
  4. yum install osquery

En Fedora, a partir de la versión 22:

  1. curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
  2. sudo dnf config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
  3. sudo dnf install osquery

¿Cómo se utiliza osquery?

Para trabajar con la herramienta en nuestro sistema operativo, debemos lanzar el comando “osqueryi” para tener disponible la consola que nos permitirá realizar las consultas:

  1. $ osqueryi
  2. Using a virtual database. Need help, type '.help'
  3. osquery>

Si, por ejemplo, que visualizar un resumen de la información del sistema:

  1. osquery> SELECT * FROM system_info;

Con resultado, en mi caso:

O por ejemplo listar los usuarios del sistema:

  1. osquery> SELECT * FROM users;

En mi caso me muestra esta información:

Una consulta interesante es listar los procesos actualmente funcionando:

  1. osquery> SELECT DISTINCT processes.name, listening_ports.port, processes.pid 
  2. FROM listening_ports JOIN processes USING (pid) 
  3. WHERE listening_ports.address = '0.0.0.0';

Una muestra:

Para salir de la consola podemos escribir:

  1. .exit
  2. #o bien
  3. .quit

Si queremos incluso podemos importar la información resultante de una consulta, a un fichero JSON, por ejemplo:

  1. osqueryi --json "SELECT * FROM users;"

La herramienta tiene infinidad de opciones, os recomiendo consultar su documentación:

OSQuery – Read the docs

Aquí lo dejamos, espero que en algún momento os sea útil este artículo. Nos vamos leyendo ^.^