La seguridad siempre debe ser una de las principales razones por las cuales buscamos soluciones integrales tanto internas como externas a nivel de hardware, servicios, procesos y los propios usuarios. Sin duda que en ambientes Linux podemos echar mano de las diversas soluciones que son desarrolladas para mejorar la seguridad de nuestros sistemas y es por esta razón que Solvetic explicara una especial llamada OSQuery y podremos comprender como gracias a ella se añade un nivel más de seguridad a nuestro sistema y como administradores o grupo de IT estaremos algo más confiados, pero sin nunca desistir de los consejos tradicionales de seguridad.
OSQuery hace uso de un plugin simple y de una API de extensiones con el fin de implementar tablas SQL, pero allí ya existe una colección de tablas listas para su uso, algunas de estas tablas solo están disponibles para un sistema especial, por ejemplo, en el caso de Linux solo veremos la tabla kernel_modules.
Para comprender el funcionamiento de OSQuery, esta herramienta expone el sistema operativo como una base de datos relacional de alto rendimiento de forma que, gracias a esta exposición, se permite escribir consultas SQL para explorar datos del sistema operativo de una forma mucho más profunda. Al usar OSQuery, las tablas SQL están representadas como conceptos abstractos similares a procesos en ejecución, módulos kernel cargados, conexiones de red abiertas, eventos de hardware, hashes de archivos o más.
Dentro de las diferentes características de OSQuery encontramos:
- Posee un daemon de monitoreo de host distribuido de alto rendimiento, pero de bajo consumo de huella, llamado osqueryd, gracias al cual será posible programar consultas para que se ejecuten en toda la infraestructura montada en la organización.
- El registro generado por osqueryd puede ser integrado a los registros internos gracias a una arquitectura de complementos para así tener siempre disponible mejores opciones de seguridad.
- Posee una consola de consulta interactiva, llamada osqueryi, la cual es una interfaz SQL desarrollada probar nuevas consultas y explorar a fondo el sistema operativo, esta consola posee todos los beneficios del lenguaje SQL completo y cuenta con cientos de tablas integradas las cuales serán vitales ante respuesta a incidentes, diagnósticos de problema a nivel de operaciones del sistema y más.
- OSQuery es una plataforma cruzada, independiente de que esta aplicación haga uso de las API del sistema operativo de bajo nivel, estamos en la posibilidad de construir y usar OSQuery en sistemas Windows, macOS, Ubuntu, CentOS y otras distribuciones de Linux a nivel de empresas.
- OSQuery cuenta con paquetes nativos para todos los sistemas operativos compatibles, asimismo existen herramientas y bastante documentación sobre la creación de paquetes con lo cual contamos con recursos para su administración.
- El código base de OSQuery está compuesto por componentes modulares de alto rendimiento usando API públicas para expandir sus beneficios.
Ahora vamos a ver como instalar OSQuery en Linux.
1. Instalar OSQuery en Linux
OSQuery puede ser instalado desde el repositorio oficial haciendo uso de las herramientas de gestión de paquetes apt, yum o dnf según la distribución usada así:
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 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
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 sudo yum install osquery
Pero para CentOS 7 contamos con la posibilidad de instalar el RPM "auto-repo-add" o agregar el destino del repositorio. Estos RPM funcionan en cualquier Linux x86-64 con una instalación base a partir del año 2011 y en primer lugar ejecutamos lo siguiente:
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
Luego ejecutamos la instalación de OSQuery así.
sudo yum install osquery
Ingresamos la letra y para confirmar la descarga e instalación de OSQuery en CentOS 7. En algún punto de la instalación debemos autorizar la instalación de la clave GPG:
Ingresamos la letra s para confirmar esto y veremos que se instala de forma correcta OSQuery en CentOS 7.
2. Usar OSQuery para analizar Linux
Una vez instalado de forma correcta OSQuery en CentOS 7, vamos a iniciar el shell osqueryi para dar inicio a las consultas del estado del sistema operativo, para ello ejecutamos:
osqueryi
Para obtener una información resumida de nuestro sistema operativo Linux, vamos a ejecutar el siguiente comando:
SELECT * FROM system_info;
En los resultados veremos detalles como:
- Nombre de host
- Dirección IP
- Tipo de CPU usado
- UUID y mas
Si deseamos obtener una lista de todos los usuarios en el sistema Linux, vamos a ejecutar la siguiente consulta OSQuery:
SELECT * FROM users;
Para obtener una lista de todos los módulos del kernel de Linux y su respectivo estado, vamos a ejecutar lo siguiente.
SELECT * FROM kernel_modules;
Si es necesario acceder a la lista de todos los paquetes RPM instalados en CentOS, RHEL y Fedora, vamos a ejecutar la siguiente consulta:
.all rpm_packages;
Para acceder a la información sobre cómo ejecutar procesos en Linux, será útil la siguiente consulta:
SELECT DISTINCT processes.name, listening_ports.port, processes.pid FROM listening_ports JOIN processes USING (pid) WHERE listening_ports.address = '0.0.0.0';
Para listar todas las tablas implementadas ejecutamos:
.tables
Para listar el esquema (columnas, tipos) de una tabla específica ejecutamos alguna de las siguientes líneas:
.schema table_name pragma table_info (table_name);
Para desplegar la ayuda general vamos a ejecutar lo siguiente:
.help
Para salir de OSQuery ejecutamos:
.exitCon OSQuery será posible acceder a información detallada de muchos parámetros del sistema con el objetivo de mejorar las tareas de administración y siempre contar con grandes prestaciones de funcionalidad.