Cómo monitorear la seguridad del servidor Linux con Osquery


Osquery es un marco de trabajo de código abierto, potente y multiplataforma basado en SQL de instrumentación, monitoreo y análisis para sistemas Linux, FreeBSD, Windows y Mac/OS X, creado por Facebook . Es un explorador de sistemas operativos 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 se representan los conceptos de SO forma tabular, lo que permite a los usuarios emplear comandos SQL para llevar a cabo el monitoreo y análisis del sistema.

Osquery usa 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 osqueryi shell , o en varios hosts en una red a través de un programador o ejecutarlas desde cualquiera de sus aplicaciones personalizadas utilizando osquery Thrift APIs.

Cómo instalar Osquery en Linux

El Osquery se puede instalar desde el repositorio oficial usando la herramienta de administración de paquetes apt yum o dnf en su respectiva distribución de Linux 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 formada de todos los usuarios en el 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 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 utilizando 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 socket, y por lo tanto es una herramienta de detección de intrusos, pero esto requiere ciertas configuraciones antes de poder desplegarlo para tal fin. Puede encontrar más información en el repositorio Osquery Github.