Cómo monitorear la seguridad del servidor Linux con Osquery


Osquery es un marco de instrumentación, monitoreo y análisis de sistemas operativos de código abierto, poderoso y multiplataforma basado en SQL para sistemas Linux, FreeBSD, Windows y Mac/OS X, creado por Facebook. Es un explorador de sistema operativo simple y fácil de usar.

Combina una serie de herramientas que realizan análisis y monitoreo de SO de bajo nivel; estas herramientas revelan un sistema operativo como una base de datos relacional de alto rendimiento como MySQL/MariaDB, PostgreSQL y más, donde los conceptos del sistema operativo se representan en forma tabular, lo que permite a los usuarios emplear comandos SQL para llevar a cabo el monitoreo y análisis del sistema.

Osquery utiliza un complemento simple y una API de extensiones para implementar tablas SQL, existe una colección de tablas listas para usar y se están escribiendo más. Algunas tablas solo se pueden encontrar en un sistema operativo específico, por ejemplo, solo se encuentra la tabla kernel_modules en sistemas Linux.

Además, puede ejecutar consultas para monitorear y analizar el estado del sistema operativo en un solo host a través del shell osqueryi, o en varios hosts en una red a través de un programador o ejecutarlas desde cualquiera de sus aplicaciones personalizadas usando osquery Thrift API.

Cómo instalar Osquery en Linux

Osquery se puede instalar desde el repositorio oficial utilizando la herramienta de administración de paquetes dnf en su distribución de Linux respectiva, como se muestra.

$ 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
$ curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
$ sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
$ sudo yum-config-manager --enable osquery-s3-rpm-repo
$ sudo yum install osquery
$ curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
$ dnf config-manager --add-repo --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
$ sudo dnf config-manager --set-enabled osquery-s3-rpm
$ sudo dnf install osquery

Cómo monitorear y analizar Linux usando Osquery

Una vez que haya instalado con éxito Osquery en su sistema, inicie el shell osqueryi para comenzar a consultar el estado de su sistema operativo como se muestra.

$ osqueryi

Using a virtual database. Need help, type '.help'
osquery> 

Para obtener una información resumida del sistema Linux, ejecute el siguiente comando.

osquery> SELECT  * FROM system_info;

Para obtener una lista bien formateada de todos los usuarios del sistema Linux, ejecute la siguiente consulta.

osquery> SELECT * FROM users;

Para obtener una lista de todos los módulos del kernel de Linux y su estado, ejecute la siguiente consulta.

osquery> SELECT * FROM kernel_modules;

Para obtener una lista de todos los paquetes RPM instalados en CentOS, RHEL y Fedora, ejecute la siguiente consulta.

osquery> .all rpm_packages;

Para obtener información sobre la ejecución de procesos de Linux, ejecute la siguiente consulta.

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';

Si está ejecutando osquery en un escritorio y tiene Firefox o Chrome instalado, puede enumerar todos sus complementos mediante la siguiente consulta.

osquery> .all firefox_addons;
osquery> .all  chrome_extensions;

Para mostrar una lista de todas las tablas implementadas en Linux, use el comando .tables como se muestra.

osquery> .tables;	#list all implemented tables
osquery> .help; 	#view help message

Osquery también proporciona monitoreo de integridad de archivos (FIM) y funciones de auditoría de procesos y sockets y más, por lo que es una herramienta de detección de intrusiones, pero esto requiere ciertas configuraciones antes de que pueda implementarlo para tal propósito. Puede encontrar más información en el repositorio de Osquery Github.