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.
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:
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt update
sudo apt install osquery
En RHEL, CentOS, Scientific Linux y deriviados :
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
yum-config-manager --enable osquery-s3-rpm
yum install osquery
En Fedora, a partir de la versión 22:
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
sudo dnf config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
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:
$ osqueryi
Using a virtual database. Need help, type '.help'
osquery>
Si, por ejemplo, que visualizar un resumen de la información del sistema:
osquery> SELECT * FROM system_info;
Con resultado, en mi caso:
O por ejemplo listar los usuarios del sistema:
osquery> SELECT * FROM users;
En mi caso me muestra esta información:
Una consulta interesante es listar los procesos actualmente funcionando:
osquery> SELECT DISTINCT processes.name, listening_ports.port, processes.pid
FROM listening_ports JOIN processes USING (pid)
WHERE listening_ports.address = '0.0.0.0';
Una muestra:
Para salir de la consola podemos escribir:
.exit
#o bien
.quit
Si queremos incluso podemos importar la información resultante de una consulta, a un fichero JSON, por ejemplo:
osqueryi --json "SELECT * FROM users;"
La herramienta tiene infinidad de opciones, os recomiendo consultar su documentación:
Aquí lo dejamos, espero que en algún momento os sea útil este artículo. Nos vamos leyendo ^.^