Ver destacados

Cómo monitorizar seguridad con Osquery en Ubuntu 17.04

Tutorial con los pasos para poder saber todo lo que ocurre a nivel de seguridad en tu sistema monitorizando tu Ubuntu 17 con Osquery.
Escrito por
6.1K Visitas  |  Publicado abr 18 2017 13:25
Favorito
Compartir
Comparte esta pagina a tus Amigos y Contactos usando las siguientes Redes Sociales


Mantener en óptimas condiciones nuestros equipos es uno de los objetivos fundamentales de todo administrador de sistemas y personal de soporte o gestión IT ya que de esto depende que toda la arquitectura funcione adecuadamente.

 

Las herramientas forenses son una utilidad que viene bien tener siempre a mano pues pueden ayudarnos a detectar movimientos negativos en nuestro sistema. A veces nuestro equipo parece esta fuera de sí y realizar comportamientos extraños y es por ello que herramientas como la que hoy presentamos pueden salvarnos de un final peor.

 

Aunque existen múltiples herramientas que nos permiten llevar un control sobre diversos aspectos tanto a nivel de hardware como de software en esta oportunidad hablaremos de una herramienta que nos dará la posibilidad de transformar nuestro Sistema Operativo en una base de datos para realizar las diversas consultas, en tiempo real, sobre el estado de múltiples parámetros: Osquery.

 

Qué es Osquery
Osquery es una herramienta desarrollada en SQL que nos permite realizar un monitoreo y análisis constante del sistema en búsqueda de fallas para tomar acciones inmediatas preservando la integridad del mismo. Osquery puede ser implementada en ambientes Linux, Mac OS o Windows lo cual la convierte en una de las mejores herramientas multiplataforma para el análisis de un sistema operativo.

 

Su funcionamiento está basado en consultas, similar a SQWL, mediante las cuales podremos realizar tareas como:

  • Comprobar el estado y administración del Firewall.
  • Verificar la integridad de los directorios.
  • Realizar auditorías de seguridad, entre muchas otras tareas
Cuando instalamos Osquery accedemos a las siguientes utilidades:
  • Osqueryi: Es el Shell interactivo de la aplicación mediante el cual podremos realizar las consultas en tiempo real.
  • Osqueryd: Es un daemon o demonio para configurar y realizar consultas en segundo plano.
  • Osqueryctl: Es un conjunto de comandos para validar la configuración de Osquery.

 


1. Cómo instalar Osquery en Ubuntu 17.04

 

Paso 1

En primer lugar será necesario instalar el repositorio oficial para que todo funcione de la forma esperada, para ello ejecutamos lo siguiente:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B

 

Paso 2

Una vez instalada la llave procedemos a instalar el repositorio:
sudo add-apt-repository "deb [arch=amd64] https://osquery-packages.s3.amazonaws.com/xenial xenial main"

 

Paso 3

Una vez instalado actualizamos los paquetes del repositorio ejecutando el siguiente comando:
sudo apt-get update
Paso 4

Una vez actualizado procedemos con la instalación de Osquery ejecutando lo siguiente:
sudo apt-get install osquery

 

 

Paso 5

Una vez instalado podremos ver los diversos parámetros a usar ejecutando el siguiente comando:
osqueryd –help

 

Paso 6

Si deseamos visualizar las opciones de los flags ejecutaremos lo siguiente:
osqueryi --help
Paso 7

Ejecutar Osqueryi es la forma más común para consultar todas las tablas de consulta ofrecidas por la aplicación, podemos ejecutar lo siguiente.
osqueryi –verbose
Paso 8

Esta es la Shell interactiva de la aplicación. Para salir de la consola ejecutaremos .exit.

 

 

 


2. Cómo configurar el acceso de Osquery al log del sistema Ubuntu 17.04

 

Paso 1

Para permitir que Osquery acceda al log del sistema operativo con el fin de realizar las consultas de una manera mucho más avanzada debemos modificar el archivo /etc/rsyslog.conf usando el editor preferido:
sudo nano /etc/rsyslog.conf

 

Paso 2

En este archivo agregaremos lo siguiente:
template(
  name="OsqueryCsvFormat"
  type="string"
  string="%timestamp:::date-rfc3339,csv%,%hostname:::csv%,%syslogseverity:::csv%,%syslogfacility-text:::csv%,%syslogtag:::csv%,%msg:::csv%\n"
)
*.* action(type="ompipe" Pipe="/var/osquery/syslog_pipe" template="OsqueryCsvFormat")

 

Paso 3

Guardamos los cambios usando las teclas Ctrl + O y salimos del editor usando Ctrl + X. Reiniciamos el demonio Syslog para aplicar los cambios ejecutando lo siguiente:
sudo systemctl restart rsyslog

3. Cómo crear el archivo de configuración de Osquery en Ubuntu 17.04

 

Es importante crear un archivo de configuración de Osquery ya que de este modo facilitamos la ejecución del mismo.

 

Paso 1

Aunque Osquery no cuenta con un archivo de configuración por defecto, si incluye un archivo de ejemplo en la ruta /etc/osquery. Deben existir tres secciones en el archivo de configuración:
  • Una lista de consultas programadas listas para ser ejecutadas
  • Una lista de demonios y ajustes de características.
  • Una lista de paquetes a usar.
Paso 2

A continuación desplegamos las opciones que usaremos con Osquery en Ubuntu 17.04:
  • Config_plugin: Allí es donde Osquery leerá los parámetros de configuración.
  • Logger_plugin: Indica donde serán escritos los resultados de las consultas.
  • Logger_path: Es la ruta del directorio donde se encontrará información como advertencias, errores y demás resultados.
  • Disable_logging: Si establecemos su valor en false de habilitar el registro.
  • Log_result_events: Si establecemos su valor en verdadero cada línea indicará un cambio de estado.
  • Schedule_splay_percent: Limita el número de consultas.
  • Pidfile: Identifica el proceso Osquery.
  • Events_expiry: Indica el tiempo en segundos en que la consulta permanecerá disponible.
  • Database_path: Es la ruta a la base de datos de Osquery.
  • Verbose: Activa o desactiva mensajes.
  • Worker_threads: Hace referencia al número de subprocesos usados al ejecutar la consulta.
  • Enable_monitor: Activa o desactiva el monitor de programación.
  • Disable_events: Nos permite deshabilitar el registro de eventos de osquery.
  • Disable_audit: Deshabilita el proceso de auditoría del sistema operativo.
  • Audit_allow_config: Habilita al auditor de auditoria a modificar la configuración de auditoria.
  • Audit_allow_sockets: Permite al auditor agregar reglas de asociadas a los sockets.
  • Host_identifier: identifica el equipo donde se está ejecutando Osquery.
  • Enable_syslog: Permite que Osquery recopile la información del Syslog de Ubuntu.
  • Schedule_default_interval: Permite establecer el valor de una consulta programada.

 

Paso 3

A continuación crearemos el archivo osquery.conf ejecutando lo siguiente:
sudo nano /etc/osquery/osquery.conf
Paso 4

Este archivo usará el formato JSON. Allí debemos registrar las siguientes líneas:
{
  "options": {
    "config_plugin": "filesystem",
    "logger_plugin": "filesystem",
    "logger_path": "/var/log/osquery",
    "disable_logging": "false",
    "log_result_events": "true",
    "schedule_splay_percent": "10",
    "pidfile": "/var/osquery/osquery.pidfile",
    "events_expiry": "3600",
    "database_path": "/var/osquery/osquery.db",
    "verbose": "false",
    "worker_threads": "2",
    "enable_monitor": "true",
    "disable_events": "false",
    "disable_audit": "false",
    "audit_allow_config": "true",
    "host_identifier": "hostname",
    "enable_syslog": "true",
    "audit_allow_sockets": "true",
    "schedule_default_interval": "3600"
  },

 

Paso 5

Ahora agregaremos las siguientes líneas asociadas a la programación de las consultas:
"schedule": {
    "crontab": {
	  "query": "SELECT * FROM crontab;",
	  "interval": 300
    }
  },
Paso 6

Adicional podremos agregar otro tipo de consultas llamada Decoradores las cuales preceden a los datos de consultas ya ejecutadas.
Para esto agregaremos lo siguiente:
"decorators": {
    "load": [
	  "SELECT uuid AS host_uuid FROM system_info;",
	  "SELECT user AS username FROM logged_in_users ***** BY time DESC LIMIT 1;"
    ]
  },
Paso 7

Finalmente podemos especificar a donde se dirige Osquery para listar paquetes, para ello agregamos lo siguiente:
"packs": {
	 "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf",
	 "incident-response": "/usr/share/osquery/packs/incident-response.conf",
	 "it-compliance": "/usr/share/osquery/packs/it-compliance.conf",
	 "vuln-management": "/usr/share/osquery/packs/vuln-management.conf"
  }
}
Paso 8

Guardamos los cambios usando las teclas Ctrl + O y salimos del editor. Podemos comprobar el archivo ejecutando el siguiente comando:
sudo osqueryctl config-check

4. Cómo usar Osquery en Ubuntu 17.04

 

Paso 1

Una vez configurado estos archivos podremos iniciar Osquery con un archivo de configuración, para ello ejecutaremos lo siguiente:
sudo osqueryi --config_path /etc/osquery/osquery.conf –verbose
Paso 2

Una vez accedamos a la consola ingresaremos lo siguiente:
; select * from logged_in_users ;

 

Paso 3

Con esta consulta vemos que usuario están conectados actualmente, para conocer los anteriores inicios de sesión ejecutaremos lo siguiente:
; select * from last ;

 

Paso 4

Para visualizar las tareas programadas en crontab usaremos la siguiente línea:
; select command, path from crontab ;

 

Paso 5

Así es como contamos con múltiples tipos de consulta usando Osquery en Ubuntu 17. Siempre podremos iniciar la herramienta ejecutando el siguiente comando.
sudo systemctl start osqueryd
Si quieres tener el control sobre todo lo que ocurre en tu equipo es bueno que utilices herramientas como esta, sobre todo, para temas de seguridad. Además de ello también puedes monitorizar tu sistema Ubuntu y ver todo lo que ocurre en él con el siguiente tutorial.

 

¿Te ayudó este Tutorial?

Ayuda a mejorar este Tutorial!
¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 0 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!